- Version(4bit)
: IP의 버전 정보.
Ox4일 경우 IPv4를 의미한다.
- Header Length(4bit)
: IP 헤더의 길이.
필드의 값이 5이면 헤더 길이가 20 byte이다.(최대 20byte)
- Type of Service(8bit)
: 패킷의 우선순위 결정
- Total Length(16bit)
: DATA까지 포함된 길이를 정의한다.
- Identification(16bit)
: 송신측에서 만드는 Data packet에 대한 Unique Value이다.
즉 이 값이 같은 값끼리 다시 합쳐서 패킷을 만든다.
IP Duplication을 검사하는 값으로 사용된다.
- IP Duplication의 key
: Source IP Address + Destination IP Address + Identification
- Flags (3bit)
: 패킷의 분열된 상태를 알려준다.
bit 0 : 항상 0으로 예약
bit 1 : 0 -> 분열 가능, 1 -> 분열 불가능
bit 2 : 0 -> 마지막 패킷, 1 -> 분열된 패킷
- Fragment offset (13bit)
: 분열된 패킷의 삽입될 위치를 정의한다.
정의된 값에 8을 곱한 위치가 삽입 위치이다.
- Frags + Fragment Offset
- Fragment의 이유 : 패킷이 Route 되는 network 간의 MTU가 현재 패킷보다 작을 경우
Fragment하여 패킷을 전송한다.
Fragment는 보내는 송신측이 아닌 Network Route 간의
Switch 단에서 발생한다.
- Frags는 Don't Fragment(DF), More Fragment (MF)를 설정한다.
- Offset 값을 이용해 재조립시 위치를 결정한다.
* TTL [Time to Live] (8bit)
: 홉의 개수를 정의한다.
홉은 라우터와 라우터 사이를 가르킨다.
홉의 개수가 0이 되면 패킷은 폐지된다.
- Protocol (8bit)
: 상위 프로토콜을 정의한다.
따로 정리
- Header Checksum (16bit)
: IP HEADER의 무결성을 검사
Checksum 패킷의 손실을 확인할 수 있는 비교 값
필요없을 경우 0으로 처리하여 패킷 처리를 빠르게 한다.
- Source IP address (32bit)
: 근원지의 IP 주소를 정의한다.
- Destination IP address (32bit)
: 목적지의 IP 주소를 정의한다.
- Options (variable)
: 선택적으로 붙는다.
만일 32bit로 안채워지면 padding이 붙는다.
- DATA : 실제 데이터
위에 Protocol 필드는 상위 프로토콜의 종류를 정의하기 때문에 패킷 스니핑을 할 때 많이 사용된다.
- Protocol value
* ICMP : 1
* IGMP : 2
* IP : 4
* TCP : 6
* IGRP : 9
* UDP : 17
나머지는 위 ip header 그림을 참조하면 되겠습니다.
'network 이론 > basic network' 카테고리의 다른 글
DNS(Domain name System) (0) | 2016.08.31 |
---|---|
ARP (0) | 2016.08.07 |
OSI 7 Layer (0) | 2016.08.07 |
UDP Header (0) | 2016.08.07 |
TCP Header (0) | 2016.08.07 |