보안 / AI / 프로그래밍

[0x432] 네트워크 계층 (OSI 3계층) / IP HEADER 본문

Hacking :: The Art Of Exploitation/0x400 :: 네트워킹

[0x432] 네트워크 계층 (OSI 3계층) / IP HEADER

DevKTW 2021. 2. 3. 22:12

[0x432] 네트워크 계층

- 네트워크 계층은 IP 프로토콜을 사용하며 대부분 IP 버전 4 (= IPv4) 를 사용한다.

- IP 주소는 xx.xx.xx.xx 형태의 4바이트 배열 형식으로 구성된다.

- 네트워크 계층의 패킷 IP 헤더는 보통 20바이트 이고, 여러 필드와 비트플래그로 구성된다.


[0x432] 네트워크 계층 - IP 헤더 내부 구조

IP 헤더 내부 구조 ( 출처 : IPv4 헤더 [정보통신기술용어해설] (ktword.co.kr))

 

ㅇ Verson ( 4 bits )

- IP 버전을 나타내며 현재는 보통 IPv4 를 사용한다. 

 

ㅇ IHL ( = Header Length ) ( 4 bits )

- Internet Header Length 의 약자이며 헤더의 길이를 나타낸다.

- 4 Byte (32 bits / WORD) 단위로 헤더 길이를 표시한다. 즉, IHL 의 4배한 값이 헤더의 Byte 길이 이다.

- IHL 은 5 ~ 15 까지의 값을 가진다. 즉 20 Byte ( 5 x 4 ) ~ 60 Byte ( 15 x 4 ) 크기가 헤더의 길이 제한 범위이다.

 

ㅇ TOS ( Type Of Service ) ( 8 bits )

- 요구되는 서비스 품질을 나타낸다.

 

ㅇ Total Packet Length ( 16 bits )

- IP 헤더 및 데이터를 포함한 IP 패킷 전체의 길이를 Byte 단위로 길이를 표시한다.

- 최대값은 65,535 = (216 - 1) 이다.

- RFC 791 권고 : 68 ~ 65,535 Byte 범위로써 가능

 

ㅇ Identifier ( 16 bits )

- 각 조각이 동일한 데이터그램에 속하면 같은 일련번호를 공유한다.

 

ㅇ Flags ( 3 bits )

- 분열의 특성을 나타내는 플래그이다.

 

ㅇ Offset ( 13 bits )

- 조각나기 전 원래의 데이터그램의 8 Byte 단위의 위치

 

# Identifier, Flags, Offset 은 패킷 분할에 사용된다.

 

ㅇ TTL ( Time To Live ) ( 8 bits )

- IP 패킷의 수명을 의미한다.

 

ㅇ Protocol ID ( 8 bits )

- 어느 상위계층 프로토콜이 데이터 내에 포함되었는가를 보여준다.

- 예시) ICMP = 1 / IGMP = 2 / TCP = 6 / UDP = 17 ..

- Protocol ID  에 대한 정보는 이 사이트를 참조하자.

- 캡슐화 / 역캡슐화 를 이해했다면 '어느 상위계층 프로토콜이  데이터 내에 포함되었다는 사실' 을 이해할 것이다.

 

ㅇ Header CheckSum ( 16 bits )

- 헤더에 대한 오류 검출을 나타낸다

 

ㅇ Source IP Address ( 32 bits )

- 송신처 IP 주소를 나타낸다.

- IP 주소는 xx.xx.xx.xx 형태로 4 Byte ( = 32 bits ) 임을 기억하자.

 

ㅇ Destination IP Address ( 32 bits )

- 목적지 IP 주소를 나타낸다.

- IP 주소는 xx.xx.xx.xx 형태로 4 Byte ( = 32 bits ) 임을 기억하자.

 

ㅇ IP Header Option ( 가변 길이 bits ) ( RFC791 Page 15 ~ 22 )

- 임의로 옵션을 부여할 수 있다.

- 4 Byte 단위로 가변적 확장이 이루어진다. 자세한 것은 사이트를 참조하자.

- 현재는 거의 사용하지 않는다.

 

ㅇ Padding ( RFC791 Page 23 )

- 인터넷 헤더 패딩은 인터넷 헤더가 4 Byte 경계에서 끝나도록 보장한다.

- 이 의미는 IHL이 왜 4Byte 단위로 헤더의 길이를 나타내는지 이해하도록 돕는다.

- IP Header 는 4 Byte 의 배수 크기로 틀에 탁탁 맞춰 만들어지는 구조이다.

- padding 의 값은 0으로 채워진다.

- 쉽게말해 틀맞추기 이다.


[참고자료]

IPv4 헤더 [정보통신기술용어해설] (ktword.co.kr)

RFC 791 - Internet Protocol (ietf.org)

Type of service - Wikipedia

IP 단편화 [정보통신기술용어해설] (ktword.co.kr)

IPv4 헤더 옵션 [정보통신기술용어해설] (ktword.co.kr)

Comments