- IPv4
Internet Protocol version 4
- VER(4)
버전 정보
IPv4는 항상 4
- HLEN(4)
헤더 길이
4바이트 단위
최소 5(20바이트)~최대 15(60바이트)
- Service Type(8)
Code Point(6) + Unused(2)
서비스 유형 및 우선 순위에 사용
TOS(Type Of Services)로 불렀음
Differentiated Services로도 부름
XXX000: 우선순위
XXXX11: 지역 기관에서 서비스 의미
XXXX01:임시 실험
XXXXX0: IETF에서 서비스 의미
- Total Length(16)
전체 길이
헤더길이 +Data 길이
단위는 바이트
- Identification(16)
IP 패킷을 구분하기 위해 부여한 번호
단편화 패킷을 조립할 때 사용
- Flags(3)
첫 번째 비트는 사용 안 함
두 번째 비트는 DF(Don’t Fragment)
1:단편화하지 마라
2: 단편화해도 된다.
세 번째 비트는 MF(More Fragment)
0이면 마지막 패킷(단편화하지 않은 패킷도)
1이면 뒤에 단편화 패킷이 더 있음
- Fragmentation offset(13)
단편화하기 전에 패킷의 위치 정보
단위는 8바이트
예) 4000 바이트 크기의 패킷을 1000바이트 씩 단편화하여 보내면
첫 번째 단편화: 0
두 번째 단편화: 125
세 번째 단편화: 250
네 번째 단편화: 375
- Time To Live(8)
경유할 수 있는 라우터 수
라우터를 거쳐갈 때마다 1 감소
- Protocol(8)
ICMP(1), IGMP(2), TCP(6), UDP(17), OSPF(89)
- Header Checksum(16)
패킷이 유효한지 계산하기 위한 필드
헤더 부분만 계산
// reference Unix Network Programming written by Stevens u_short cal_checksum(u_short *base,int len){ int nleft = len; int sum = 0; u_short *w = base; u_short answer = 0; while(nleft>1){ sum += *w; w++; nleft -= 2; }//while if(nleft == 1){ *(u_short *)(&answer) = *(u_char *)w; sum += answer; }//if sum = (sum>>16) + (sum & 0xFFFF); sum += (sum >>16); answer = ~sum; return (answer); }
- Source IP Address(32)
발신지 주소
- Destination IP Address(32)
목적지 주소
Option and Padding(0~40 바이트)