본문 바로가기
카테고리 없음

Fream & Packet

by 뇌 속의 통 2024. 11. 12.

WAN을 이용하여 데이터를 전달하면서 MAC 주소만으로는 전달이 불가능해 IP주소를 사용하게 되었고,

이로 인해 Frame 안에 Packet을 추가하여 전송하게 된다.

 

Packet

IP(Internet Protocol) Packet

 

Source Address : src IP 주소

Destination Address : dst IP 주소

Data : 보낼 정보

 

* 라우팅

라우터에 전달되기 전까지는 Frame을 이용하여 정보가 전달되고, 라우터에 전달된 이후부터는 내부 Packet을 이용하여 다음 라우터까지 전달된다.

라우터가 다시 HUB, Switch로 전달하면서 Packet을 Frame으로 감싸고 이 Frame을 이용하여 최종 기기까지 정보가 도달하게 된다.

 

LAN에서 WAN으로 진입하는 과정 

우선 라우터의 MAC 주소를 알아서 LAN에서 라우터로 정보를 전달하는데 라우터의 MAC 주소를 모른다.

→ MAC주소는 랜덤하게 할당되기 때문이다. 공장의 일련번호와 같다.

 

그래도 IP주소는 알고 있기 때문에 IP주소를 이용하게된다.

→ IP주소는 할당 시 전략적으로 할당이 되기 때문이다. 사람이 할당할 수 있으며 애초에 논리적인 네트워크 구성을 위해 계층적인 구조로 관리되기 때문. 또한, 네트워크를 맨처음 설계 시 컴퓨터에게 미리 IP주소를 알려주기 때문에 알고있다.

 

Address Resolution Protocol(ARP)

IP 주소를 이용하여 MAC 주소를 알아내는 기능

Frame에 추가한 Packet을 자세히 들여다 보면 아래와 같은 추가적인 정보가 들어가 있다.

 

ARP Request Packet

Hardware Type : 네트워크 타입을 나타낸다. Ethernet은 1 (2byte)

Protocol Type : IPv4(0800H) (2byte)

Hardware Length : MAC 주소의 길이 6 (1byte)

Protocol Length : IP 주소의 길이 4 (1byte)

Operation : Request는 1, Reply는 2 (2byte) == 1

Sender Hardware Address : Src MAC 주소 == 컴퓨터의 MAC 주소

Sender Protocol Address : Src IP 주소 == 컴퓨터의 IP 주소

Target Hardware Address : Dst MAC 주소 == 00:00:00:00

Target Protocol Address : Dst IP 주소 == Router의 IP 주소

 

ARP Reply Packet

Operation : Request는 1, Reply는 2 (2byte) == 2

Sender Hardware Address : Router MAC 주소

Sender Protocol Address : Router IP 주소

Target Hardware Address : 컴퓨터 MAC 주소

Target Protocol Address : 컴퓨터 IP 주소

 

 

 

* MAC, IP 주소를 기재할 때에는 당연히 16진법을 2진법으로 변환하여 넣는다.

  1. 우선 Frame과 Request ARP Packet을 생성하여 LAN으로 연결된 모든 기기에 보낸다. 이때 목적지의 MAC 주소는 모르므로 00:00:00:00으로 기재하며 물어보는 Packet이므로 Operation에는 1이 들어간다.
  2. 모든 기기에 보내는 일종의 명령어로 Frame의 Destination Address에서 ff:ff:ff:ff:ff:ff:ff:ff를 기재하면 된다.
  3. 전달받은 기기들은 ARP Packet에 들어있는 IP주소가 본인과 일치하는지 확인한다.
  4. 일치한다면 Frame과 Reply ARP Packet을 생성하여 자신이 받은 Packet에 기재된 Sender Protocol Address로 전송한다. 이때 Sender Hardware Address에 본인의 MAC 주소를 기재하며, Reply이므로 Operation은 2를 기입한다.
  5. 최종적으로 전송할 Frame과 IP Packet을 생성하여 알아낸 MAC 주소로 전달한다.

위와 같은 과정을 통해 알아낸 MAC 주소로 Frame과 IP Packet을 전송한다.

IP Packet에는 우리가 실제로 전송할 Data와 전송될 IP Address를 기재하여 전달한다.

 

 

Ethernet Frame for ARP Request

PREAMBLE : 1과 0이 반복하여 들어간다.(1010101010….)

SFD(Start of Frame Delimiter) : 10101011

Destination Address : 우리가 모르고 있기 때문에 ff:ff:ff:ff:ff:ff:ff:ff로 기재되어 전달(브로드캐스팅 MAC주소)

Source Address : 발송지의 MAC 주소

Length : 이 Frame의 총 길이를 나타낸다.

Ethernet Type : 이 뒤의 데이터가 어떤 데이터인지 알림(이 뒤부터는 ARP Packet(0X0806)이다. 0X0800은 IP Packet을 의미한다.)

Data : ARP Request Packet을 넣음.

CRC(Cyclic Redundancy Check : 해시패턴으로 앞에서부터 코드에 따라 특정 패턴을 만들어내는데 이게 보내는 쪽과 받는 쪽이 일치한다면 제대로 정보가 전달되었다고 인지한다.

 

Ethernet Frame for ARP Reply

Destination Address : 컴퓨터의 MAC 주소

Source Address : Router의 MAC 주소

Data : ARP Reply Packet을 넣음.

 

Ethernet Frame for IP Packet

Destination Address : Router MAC 주소

Source Address : 컴퓨터 MAC 주소

Ethernet Type : 0X0800

Data : IP Packet을 넣음.

 

 

IP Packet

Version : IP Version

IP Packet Header Length(IHL) : IP Header의 길이. 이 Packet의 Options 이전까지의 길이를 물어보는 것

Type Of Service(TOS) : IP Packet의 전달방식

Total Length : IP Packet의 총 길이 version ~ Data 까지

Identification : IP Packet의 식별 ID. WAN 안에 존재하는 수많은 Packet들을 각각 식별하는 ID

Flags : IP Packet의 단편화 여부. IP Packet을 한번에 보내는게 아니라 너무 커서 쪼갰는지 확인하는 것

Fragment Offset : IP Packet의 단편 순서. 조각들의 순서를 알려주는 것. 모든 조각들이 전송되면 이 순서를 바탕으로 다시 IP Packet을 합치게 된다.

Time To Live(TTL) : 이 Packet의 수명. 이 시간이 지나도록 전송되지 않는 경우 Packet은 버린다. 안 그러면 WAN에 너무 많은 Packet들이 있어 느려지기 때문

Protocol : 어떤 프로토콜을 사용할 것인지. 1 == ICMP, 6 == TCP, 17 == UDP

Source Address : 보내는 IP 주소

Destination Address : 받는 IP 주소

Opetions : 거의 사용하지 않음.

 

 

WAN에서 라우터와 라우터 간의 Packet 전달

Router가 전달받은 Packet을 보고 Dst IP 주소를 확인한다.

그리고 Router 안에 존재하는 Routing Table을 열어 이 IP주소인 경우 어떤 라우터에게 보내야 하는지 확인하고 해당 Router에게 전달한다.

 

라우터에서 라우터로 Packet을 보낼때도 Frame이 필요하다.(Point to Point Frame 등등)

이 Packet의 시작과 끝을 알아야 정확하게 보내기 때문

 

Ethernet Frame은 MAC의 주소를 활용한다면 PPP(Point to Point Frame)은 다이렉트로 Router간 연결되어 있어서 MAC 주소를 사용하지 않는다.

 

WAN에서 LAN으로 Packet 전달

 

Router가 받은 Packet의 IP 주소를 Routing Table을 열어 확인하는데 이때 Local인 경우 Router에서 Local로 정보를 전달한다.

 

이때 LAN에서는 MAC을 사용하므로 Router 입장에서는 해당 기기의 MAC 주소를 알아야 Packet을 Ethernet Frame으로 만들어서 전달하는데 모른다.

 

다만, 여기도 마찬가지로 IP주소는 알고 있으므로 이를 활용한다.

전과 같이 ARP Request를 모든 기기로 브로드캐스팅하여 해당 기기의 MAC 주소를 알아내고 이를 바탕으로 Ethernet Frame에 Packet을 추가하여 전달한다.

 

기타 네트워크 용어 정리

 

1. Internet Protocol

IPv4 : 0~255. 0~255. 0~255. 0~255 총 4Byte

약 43억개의 IP주소를 나타낼 수 있다.

 

183.125.20.3

IP주소는 Network 부분Host 부분으로 나뉘어져 있다.

무조건 앞의 2Byte가 Network는 아니고 1~3 Byte까지 Network 부분이 될 수 있다.

 

Network : 어떤 Network인지 식별한다.

Host : Network에 연결된 Device를 식별한다.

 

    • Class A Network
      • 126.125.20.3
      • 적은 Network에 많은 Device를 연결할 수 있는 구조
      • 보통 거대 기업, 거대 인터넷 제공 기업들이 사용
      • Network 부분은 0~126까지, 나머지는 0~255까지 범위를 사용
      • 즉 앞의 값이 0~126 사이라면 Class A Network임을 알 수 있다.
    • Class B Network
      • 191.125.20.3
      • 적당한 Network와 적당한 Device를 연결할 수 있는 구조
      • 많은 인터넷 제공 기업들이 사용
      • 첫 Byte는 128~191 사이를 갖는다.
    • Class C Network
      • 223.125.20.3
      • 많은 Network와 적은 Device를 연결할 수 있는 구조
      • 작은 기업이나 개인용으로 사용
      • 첫 Byte는 192~223 사이를 갖는다.

* 첫 Byte가 127인 경우는 따로 Local Host라고 정해져 있다.

Operating System과 Network가 제대로 연결되어 있는지 확인하는 주소다.

 

* 마지막 Byte의 0은 Network 주소, 255은 브로드캐스트 주소(DHCP)로 사용

이를 제외한 1~254까지만 사용할 수 있다.

 

2. Subnet Mask

IPv4 주소가 어떤 Class인지 알 수 있는 기능

IPv4 주소에서 Network 부분만 나타내는 것이다.

 

class A Subnet Mask : 255.0.0.0

class B Subnet MasK : 255.255.0.0

class C Subnet Mask : 255.255.255.0

 

* 비슷한 방식으로 Slash Notation이라고 1이 몇개인가를 알려주는 것이 있다.

Subnet Mask를 바탕으로 해당 4Byte에서 1인이 몇개인지를 확인하는 것이다.

class A : 8

class B : 16

class C : 24

 

3. Subnetting

IP 주소를 더욱 효율적으로 사용하는 방식

하나의 네트워크를 사용하는 경우(200.100.100.X)

1~254까지 Device가 사용가능하며, Router 없이 Switch만으로 설계할 수 있다.

 

그러나 각기 다른 Network을 사용해야하는 경우(200.100.100.X || 200.100.200.X || 200.200.100.X)

LAN을 연결시키지 않도록 하여 보안을 강화, 서로 파일을 볼 수 없도록 기밀 유지하기 위한 경우

Router가 필요하다.

 

아니면 200.100.100.X를 쪼개는 방법도 가능하다.

1~254까지 사용가능한 마지막 Byte에서 몇개의 Bit를 Network용으로 사용하는 것이다.

이런경우 사용할 수 있는 Device의 갯수가 줄지만 하나의 Network에서 여러개의 Network로 변경되므로 굳이 새로운 Network를 추가하지 않아도 분리가 된다. 이를 Subnetting이라고 한다.

 

예를 들어 1bit만 Network용으로 사용한다면, 앞이 0 또는 1인 두가지 경우의 Host를 만들 수 있다.

마치 unsigned이면 0~255이지만, signed면 -128~127까지 사용할 수 있는 것처럼.

이러면 Slash Notation은 25가 된다.

즉 맨 앞의 bit가 1로 고정된 뒤 7자리 bit와 0으로 고정된 7자리 bit로 각각 나누어 사용하는 것이다.

 

2bit를 빌려온다면 SN은 26이 되며, 00~11까지 총 4개의 Network로 분리된다.

빌려올 수 있는 최대 Bit 수는 6개다.

적어도 연결할 Device가 2개이상은 되어야 Network가 형성된다.

4. Public, Private 주소

IPv4주소가 바닥나기 시작했고, 이로 인해 Private IP 주소가 생겨났다.

 

Public : 공인 주소로 등록되어 있으며, 인터넷 서비스 공급자가 제공한다. 전세계에서 유일한 IP 주소를 갖으며 위치 정보를 가지고 있다. Routing이 가능하다.

 

Private : 등록되어 있지 않으며, 누구나 사용 가능하다. 위치 정보를 갖지 않고 재사용이 가능하다. Routing이 불가능하다.

 

Private IP Address

class A : 10.0.0.0 ~

class B : 172.16~31.0.0 ~

class C : 192.168.0.0 ~

 

그래서 Router를 중심으로 WAN에서는 Public IP주소를 갖으며 LAN에서는 Private IP주소를 할당하여 Network를 설계한다.

(Router도 Private를 갖는다.)

 

대신 Router는 NAT(Network Address Translation)를 사용해 Private IP 주소를 Internet과 통신할땐 Public으로 변환하여 사용한다.