네트워크

IPv4 Header 형식

개발정리 2024. 10. 14. 14:48

L2 Frame은 구조가 단순한 반면 IP Header 부터는 복잡한 형식을 갖추고 있다. 

 

 

패킷의 최대 크기를 MTU라 하며 통상 1500byte이다. 이 중 IP Header는 위 그림에서 표시된 'Option' 이 붙지 않는다면 20byte 정도된다. 이 경우 Payload 크기는 약 1480byte가 될 수 있음을 짐작할 수 있다. 

 

 

하지만 위 그림의 Data 영역을 보면 최대 크기가 65,515byte 로 표시되어 있다. IP 패킷의 크기가 64k까지도 될 수 있지만 실제로는 그렇지 않고 MTU에 맞춰 운영이 된다. (늘어나는 사례가 있다.)

 

 

위 그림을 보면 32bit 단위로 데이터를 끊은 것이다. 

8bit = 1byte 이다. 그리고 8bit = 4bit + 4bit의 조합인데, 4bit가 나올 수 있는 경우의 수가 2의4제곱 (=16)이다 보니 16진수로 패킷의 데이터 혹은 헤더를 많이 표기한다. 

 

 

...

 

 

 

 

다시 이미지로 돌아가서,

 

1) version 항목은 IPv4 이기에 4 이다. 

 

2) IHL (Internet Header Length) 값은 보통 5이다. (5행으로 이루어져 있음) 그리고 한 행당 4byte(=32bit)이니 5x4 로 계산하면

20byter가 된다. 

 

3) Total Length 항목은 패킷의 길이를 말한다. 16bit로 되어있으며 나올 수 있는 경우의 수가 2의 16 제곱 (=65,536)  가 나오고 header 길이 20을 빼면 대략 65,515 이다. 그렇기에 IP 패킷은 이론 상 64kb가 가장 큰 숫자이다. 

 

4) 두번 째 행부터는 전부 단편화와 관련이 있다.

단편화란, 패킷 MTU는 통상 1,500인데 어떤 패킷은 MTU가 1,300 밖에 되지 않을 수 있다. 이 경우 패킷을 잘라야하며 이를 단편화라 한다. 

 

5) TTL 항목은 8bit로 최대 크기가 255이다. 이 값이 0이되면 패킷은 버려진다.  유통 과정에서 TTL 값은 HOP 이라는 단위를 지날 때마다 감소한다. 

 

6) Protocol 항목은 Payload 에 또 다른 Header가 올 수 있다. 이 때 Header값을 어떠한 형태로 해석할 지에 대한 정보를 나타낸다. 보통은 IP 패킷 Paylaod에 TCP 헤더가 많이 온다. 프로토콜마다 고유 번호를 부여해 놓은 것이 있기 때문이 이를 참조해서 해석하자. 

 

7) Header Checksum은 패킷이 송수신되는 과정에서 손상이 있었는지에 대해 체크하는 값이다. 

 

8) source address, destination address는 각각 32bit로 되어 있으며 출발지와 목적지 정보를 나타낸다. 

 

 

...

 

 

Wireshark 프로그램을 설치해서 직접 실습해보자. 

 

 

https://nanyoungkim.tistory.com/232

 

세미나 2차 - MacOS에서 Wireshark 실습하기 / 네트워크 지연

MacOS에서 Wireshark로 패킷 분석 실습을 해보자. 먼저 아래 링크에서 WireShark를 다운받는다. https://www.wireshark.org/download.html Wireshark · Download Wireshark: The world's most popular network protocol analyzer www.wireshark.o

nanyoungkim.tistory.com

 

 


Wireshark 프로그램으로 네트워크를 분석하기 위해선 16진수를 어느정도 읽을 수 있어야 한다.

 

 

 

 

 

'네트워크' 카테고리의 다른 글

Broadcast IP주소  (1) 2024.10.17
서브넷 마스크와 CIDR  (2) 2024.10.16
TCP/IP 송수신 구조  (1) 2024.10.12
계층별 데이터 단위  (0) 2024.10.10
패킷의 생성, 전달, 소멸 과정  (1) 2024.10.10