IP → L3 layer (OSI 7 Layer 중)
IP Header
**IP 헤더와 Payload 전체를 포함한 IP 패킷의 전체 길이를 "바이트 단위"**로 표시.
⇒ IP Header 길이(4 * 5 Byte) + Payload 길이(28 Byte) = 48 Byte (icmp 가 상위 계층일 때)
최대 표현 가능한 길이 : 16비트이므로 65535 바이트 (2^16 -1)
MTU (Maximum Transmission Unit)
IP 헤더 구조체 정의
typedef struct IpHeader {
unsigned char verIhl; // version(4bit) + IHL(4bit), 구분 시 '>>' bit 연산자 사용
unsigned char tos;
unsigned short length; // totalLength (16bit = 2Byte)
unsigned short id;
unsigned short fragOffset;
unsigned char ttl; // TTL (8bit = 1Byte)
unsigned char protocol;
unsigned short checksum;
unsigned char srcIp[4];
unsigned char dstIp[4];
} IpHeader;
verIhl 을 version 과 IHL 로 분리
unsigned char version = (verIhl >> 4) & 0x0F; // 상위 4비트
unsigned char IHL = verIhl & 0x0F; // 하위 4비트