<IP Header Format>
1. Version
2. IHL (IP Header Length )
가변길이이다. 기본길이는 20 Byte이며 60 Byte 까지이다.
IP 헤더의 길이는 반드시 지정되어야 하며 이 필드의 값는 Option이 없는 경우 기본적으로 5 이다.
필드 값이 5보다 작다 : 잘못된 헤더의 길이
필드 값이 5이다 : 기본 헤더의 길이 ( 5X4 = 20 Byte )
필드 값이 5보다 크다 : IP 헤더에 Option 필드가 있다.
오후 9:53 2013-07-04
* Wireshark로 IP 헤더를 보면 Ethernet 헤더 끝 부분에 0800 다음에 45 ( 01000101 ) 부터 IP Header 의 시작이다.
IP Option은 항상 32비트로 끝나야 한다. 최소 20->24->28>-32비트 ,무조건 4바이트단위로 커진다.
Option은 0 Byte ~ 40 Byte 이며 항상 4의 배수이다.
2. TOS ( Type of Service )
* TOS - 패킷의 우선순위비트와 TOS 비트의 두가지 방법으로 QOS( Quality of Service ) 한다.
모든 네트워크 장비들은 TOS 처리능력을 갖추고 있지 않고 있기 때문에 이 필드들을 무시하지만 TOS 서비스 유형 비트의 DTRC 의 반영 유무에 따라 라우터에 세팅 할 수도 있다. 세팅을 하지 않으면 라우터는 이 값들을 변경하지 않고 다음 라우터에게 넘긴다.
< 데이터의 우선순위 >
Binary Value Field Meaning
111 National network control
110 Internetwork control
101 CRTIC / ECP
100 Flash override
011 Flash
010 Immediate
001 Priority
000 Routine
- 여기에 있는 숫자(000-111)가 높을 수록 긴급 데이터로서 빨리 처리하라 라는 의미이다.
< TOS 서비스 유형 비트>
(1) Delay bit ( 지연 비트 ) : 1 이면 최소한의 지연으로 데이터 전송 요청
(2) Throughput bit ( 처리량 비트 ) : 1 이면 IP 라우터는 가장 처리량이 큰 경로를 따라 데이터그램을 전송
(3) Reliability bit ( 신뢰성 비트 ): 1로 설정되고 경로상의 모든 라우터들이 이 기능을 지원할 때만 손실 없는 전송 보장
(4) Cost bit ( 비용 비트 ) : 데이터가 최소의 금전적인 비용으로 목적지에 도달할 수 있도록 해준다. (Cost가 싼 쪽으로 가게되있다. 속도가 빠르면 cost 낮다)
** DS (Differentiated Services : 차등 서비스
모든 라우터는 이 DS를 이해하지 못하고 장비를 업그레이드 해야 이해한다.
ECN capable =1 -> 나를 혼잡한 경로로 보내지 말아주세요라는 의미
Congestion experienced =1
3. Total Length
IP Header + IP Payload 를 포함하는 IP 데이터그램의 전체 크기
Ex ) Total Length = IP Header + Payload ( ICMP Header + ICMP Payload )
1500 Byte 일때 = IP Header * 3 = 60 Byte a Fragmentation 한 패킷 3개를 합쳐서 .
여기에 ICMP 8 Byte 까지 더하면 68 Byte
IP 패킷의 최대크기는 65535 바이트이다. (이 필드가 16bits -> 2의 16승 -> 65535 Byte )
->3계층에서 모든 데이터는 65535보다 클때는 다 짤린다는 것이다.
2 계층 헤더인 Ethernet v2f를 사용하기 때문에 Ethernet v2 의 MTU ( Maximum Transmission Unit )인 1500(0x05DC)Byte를 넘을 수 없다. 이 MTU 때문에 1500 Byte 보다 큰 데이터 전송시 데이터를 분할하여 보내게 된다. 이것을 단편화 ( Fragmentation ) 이라고 한다.
** 데이터의 크기
Total Length – ( IP Header + ICMP Header )
데이터의 크기를 알 수 있다. 또, ping 명령어 사용 시 반송 ( Echo )되는 데이터도 알 수가 있다. ICMP의 echo reply 를 이용하는 ping의 경우에는 IP의 Payload에 실리는 ICMP 패킷의 헤더길이가 8 Byte 이기 때문이다.
4. Identification – Packet의 순서를 나타내는 번호이다. id의 순서대로 Packet의 순서를 조합
5. IP Flags
X – 0 으로 값을 고정하고 사용하지 않는다. -a Reserved , 0
D (don't Fragment) - set -> 0 ( 분열 ) , Do Fragment
- not set -> 1 ( 분열 X ) , Don’t Fragment
M (More Fragment) : 더 이상 분열, 쪼갤 수가 없다.
Fragment - 조각이란 의미 ex) 디스크조각모음
6. Fragment Offset ( 32 bit ) : 패킷이 분열되고 나서 다시 재 조립되었을 때의 시작 위치.
0 1500 3000 4500 5000
1 |
2 |
3 |
4 |
M=1 M=1 M = 1 M = 0
OFF=0 OFF=1500 OFF=3000 OFF=4500
TL=1500 TL=1500 TL=1500 TL=500
* 분열이 일어난 게 아니면 Offset 은 항상 0 이다.
* 표 안의 1,2,3,4 는 단순히 ID를 의미
7. TTL(Time To Live) : 0~255의 값을 가진다. 패킷이 라우터를 넘어 목적지 까지 가기까지 살아있을 수 있는 시간, IP packet이 목적지까지 가기 위한 차비, 이 값은 출발지에 있는 운영체제에 따라 결정된다. (Windows : 128, linux : 64 )
네트워크 장비의 설정 이상으로 Looping 발생--> 패킷이 갈 곳이 없으면 블랙홀 처럼 계속 돌고 돌다가 소멸하며, 이것이 쌓이고 쌓이다 보면 네트워크 장비가 죽는다. 그렇기 때문에 TTL 을 다 쓰면 스스로 소멸 되게끔 한 것이다.
운영체제마다 차비, TTL 값이 다 다르다. -> 보안적인 관점에서 보면 운영체제의 TTL , 곧 운영체제를 알 수가 있다는 것이다.
전세계 어딜가든 라우터 30개를 넘을 수 없고 일반적으로 20개 정도 이다. 30개가 넘었다는 것은 Loop가 발생했다는 의미이다.
8. Protocol – 자신의 패킷의 Payload에 가지고 있는 프로토콜의 TYPE이 들어간다. Ex) 4계층에서 어떤 프로토콜을 쓰고 있느냐 하는 것-> TCP 아니면 UDP
< Protocol >
1 ICMP 17 UDP 57 SKIP
2 IGMP 47 GRE 88 EIGRP
6 TCP 50 ESP 89 OSPF
9 IGRP 51 AH 115 L2TP
9. Header Checksum
- 2계층 프레임의 packet구조에서 Footer라고도 불리운다. 2계층을 제외하고는 footer는Header에 포함되지 않는다. 왜 헤더가 끝나지 않았는데 계산을 하느냐면은 IP는 도중에 바뀔 수 있기 때문에.
- Header 부분만 Checksum하며 Payload 부분은 고려하지 않는다.
10. Source Address - 32bit (4 Byte)
11. Destination Address – 32bit (4 Byte)
'Network' 카테고리의 다른 글
L2, L3, L4 스위치 정의 및 개념 정리 (0) | 2014.09.22 |
---|---|
IP class와 Subneting 네트워크 기초 (0) | 2014.09.22 |
전용선(Leased Line) 네트워크 기초 (0) | 2014.09.22 |
OSI 7 Layer (OSI 7 계층 정리) (0) | 2014.09.22 |
OSI 7 Layer (0) | 2014.09.22 |