티스토리 뷰

Network

IP header

Heavy_Rain 2014. 10. 2. 19:48












IP header구조에 대해 알아보겠습니다.

 

 

 

 

 

1. Version(4bit) : 

-Version버전 정보로 IPv6 IPv4 를 나타냅니다.


2. IHL(4bit) : 

-IHL(ip header length) ip  헤더의 길이를 나타내는 값입니다.

 

와이어 샤크로 확인해 봅시다.


Version 4 로 IPv4인 것을 알려줍니다.

Header length는 5로 나올텐데, 이는 20byte 입니다. 

 

참고로 IP header 길이가 5보다 작다면 잘못된 헤더의 길이
                                  5의 크기이면  기본 헤더의 길이
                                  5보다 크다면 IP헤더의 옵션 필드가 존재 합니다.

3. ​
TOS(Type of Service) (1byte):
- TOS비트는 순서대로 지연(delay), 처리량(Throughput), 신뢰성(Reliablity),비용(cost)을 의미 합니다.

 

4. Total Length(2byte) :

-IP의 총 길이를 나타냅니다.



총 길이는 현재 60으로 나오네요.

 

5.Identification(2byte) :

해당 패킷을 구별하는 고유 식별번호로, 패킷을 보낼때 마다 일반적으로 1씩 증가합니다. 

단편화된 패킷의 Identification은 같아 단편화된 패킷을 ID를 이용하여 하나의 패킷임을 알 수 있습니다.


6.IP Flag (3bit) + fragment Offset(13 bit) :


 

 

첫 번째 비트는 현재 잘 사용하지 않습니다.

두 번째 비트는Don't fragment 로 1을 셋 하면 단편화 시키지 않겠다는 뜻입니다. 

                          Don't fragment 는 일반적으로 0으로 셋 되어 있어 단편화를 가능하게 합니다.

세 번째 비트는 More fragment로 이 값이 1로 셋되어 있으면 현재 단편화된 패킷이 더 있다는 것을 나타냅니다.

 

fragment offset은 데이터의 시작하는 곳의 위치를 알려줍니다.

 

7. TTL (Time to live)(1byte) : 
-TTL은 목적지를 찾지 못한 패킷이 계속 떠돌아 다니지 않고 없에 버리기 위해 만든 값으로, 일반적으로 라우터를 하나 경유할 때 마다 TTL값이 1 감소 하며, TTL값이 1이되면 다음 라우터로 보내지 않고 해당 패킷을 없에 버립니다.

1byte이므로 최대 128개의 라우터를 경유할수 있습니다. 



8. Protocol (1byte):  

-상위 프로토콜의 정보를 나타냅니다.

 

       16진수 10진수 프로토콜
     - OX01   / 1    /   ICMP
     - OX06   / 6    /   TCP
     - OX08   / 8    /   EGP
     - OX11   / 17  /   UDP
     - OX59   / 89  /   OSPF
     - OX58   / 88  /   EIGRP

 

현재 프로토콜은 0x01로 상위 프토로콜이 ICMP임을 알 수있습니다.




9. Header Checksum : 

IP헤더가 넘어오면서 에러가 있을수 있는데 있으면 원래 값을 알려주는 것을 의미하며 '0'이 정상을 의미합니다.(무결성 체크)

현재 체크섬 값은 0x0000으로 변조되지 않았음을 알 수 있습니다.


10. Source Address :

 송신자의 32비트 인터넷 주소가 4바이트의 16진수 코드로 표현됩니다.
 

 11. Destination Address :

목적지의 32비트 인터넷 주소가 4바이트의 16진수 코드로 표현됩니다.

12. IP Option : 

IP에 전달에 걸리는 시간을 물어 본다든가, 네트워크의 트래픽 정도라든가, 네트워크에 있는 라우터에게 특별한 명령을 하는 것과 같은 여러가지 유용한 옵션을 사용할 수 있습니다. 

 

 

댓글