(출처: https://www.educba.com/ipv4-header-format/)
헤더 컴포넌트 | 크기 | 설명 |
---|---|---|
Version | 4Bit | IP 프로토콜의 버전이 오며 IPv4의 경우 4가 들어옴 |
IHL (Header Length) | 4Bit | 헤더(프로토콜)의 길이를 4로 나눈 값이 들어옴 |
TOS (Type of Service) | 1Byte | 데이터의 형식에 따라 값이 변하는 구간이나 아주 이전에 사용하였고 현재는 사용하지 않아 보통 0이 들어감 |
Total Length | 2Byte | 패킷 전체의 길이 |
Identification | 2Byte | 쪼개진 패킷들이 원래는 하나였음을 알 수 있게 하기 위한 ID |
IP Flags | 3 Bit | 첫번째 비트는 사용하지 않고 두번째 비트는 D(do not fragment) 세번째 비트는 M(more fragment)이다. 때문에 첫번째 비트에는 0이 들어오며, D에는 패킷 조각화를 진행하지 않으려면 1이 들어오고, M에는 보내려는 데이터가 최대 전송 크기보다 커 현재 패킷 이후에 조각화 된 패킷이 더 와야할 때 1의 값이 들어간다. |
Fragment Offset | 13Bit | 조각화 된 패킷이 원본에서 시작부분으로부터 얼마나 떨어져있는지, 즉 원 패킷에서의 위치를 알려주는 값이 들어간다. |
Time To Live (TTL) | 1Byte | 패킷이 살아있을 수 있는 시간을 지정. 패킷이 네트워크 장비를 지날 때마다 해당 값이 1씩 감소함 (정상 전송이 되지 않은 패킷들이 죽지 않고 계속 살아있으면 네트워크에 부하 발생) |
Protocol | 1Byte | 상위 프로토콜이 무엇인지 기재됨. (ICMP(3계층): 01 / TCP(4계층) : 06 / UDP(4계층) : 17) |
Header Checksum | 2Byte | 해당 헤더에 오류가 있는지 확인할 수 있는 값. 패킷의 리시버가 헤더의 속성값들을 더하여 Header Checksum과 비교. 만약 같다면 오류 없이 전달 받은 것. |
Source Address | 4Byte | 발신 호스트의 IP 주소 |
Destination Address | 4Byte | 수신 호스트의 IP 주소 |
IP options | 0~40Byte | IHL이 5이상의 값(24바이트 이상)일 때 값을 갖으며, 보안과 관련된 값이나 설정이 들어온다.(Record route, time stamp, ...) |
(* 유튜브 [따라하면서 배우는 IT] 채널의 "06. 멀리 있는 컴퓨터끼리는 이렇게 데이터를 주고받는다 - IP 프로토콜 구조" 강의를 요약한 내용입니다. )