IP(Internet Protocol)

Network/Network Theory 2015. 12. 11. 18:08

<IP(Internet Protocol)>

네트워크 계층에 해당하고 전송 경로의 확립이나 네트워크 주소와 호스트 주소의 정의에 의한 네트워크의 논리적 관리 등을 담당한다.

모든 TCP/UDP, ICMP, IGMP 데이터는 IP 데이터그램을 사용하여 전송된다.

 

1. 비신뢰성(Unreliable)

IP 데이터그램이 목적지에 성공적으로 도달한다는 것을 보장하지 않는다는 의미이며, 최선의 서비스만을 제공한다.

 

2. 비접속형(Connectionless)

IP가 연속되는 데이터그램에 대한 어떠한 상태 정보도 유지하지 않는다는 것을 의미하며, 이것은 IP 데이터그램이 어긋난 순서로 배달될 수 있다는 것을 의미한다.

 

3. 주소 지정

네트워크 상에 접속해 있는 노드의 주소를 지정해주며, 이를 통해 목적지를 지정해 주는 역할을 한다. 각 호스트마다 주어진 IP주소를 말하며, 네트워크 상에 접속해 있는 각각의 노드를 식별하는 역할을 한다.

 

4. 경로 설정

목적지의 주소를 가지고 패킷을 전송하기 위하여 최적의 경로를 설정해주는 역할을 한다. 특정 목적지로 데이터를 전송할 때 어떤 경로를 경유하여 전송할지 결정하는 것이며, 이렇게 결정된 경로를 통하여 데이터 전송이 이루어지게 된다.

 

<IP 패킷 헤더>



1. 버전

현재 프로토콜 버전은 4이며 IPv4를 의미한다.

 

2. 헤더길이(Header Length)

option을 포함한 헤더의 길이를 나타낸다. 4bit필드이기 때문에 헤더를 60바이트로 제한한다. 4바이트를 기준으로 하기 때문에 헤더의 옵션필드가 없을 경우, 헤더길이가 5라면 4*5 = 20바이트를 말한다.

 

3. Type-Of-Service(TOS)

3비트의 우선권(Precedence)필드와 4비트의 TOS 필드, 그리고 값이 0인 사용되지 않는 1비트로 구성



4. 전체 길이(Total Length)

IP데이터그램의 전체 길이를 바이트로 나타낸다. 이 필드는 16비트이므로 IP 데이터그램의 최대 크기는 65,535바이트이다.

ex) 0030 -> 48byte (20byte(헤더) + 28byte(페이로드))

 

5. 식별자(Identification)

16비트이며, 호스트가 보낸 각 데이터그램을 유일하게 식별한다. 단편화가 이루어질 때 플래그 필드와 단편화 옵셋필드가 사용된다. 분할된 패킷들은 동일한 식별자 값을 얻는다.

 

6. 플래그(Flag)

3비트이며, 첫 번째 비트는 예약되어 있다. 사용하지 않음.



DF(Don’t Fragmentation) : 단편화금지 비트

0: 데이터그램 패킷을 분할 가능

1: 분할 불가능

 

MF(More Fragmentation) : 분할된 패킷이 마지막 것인지를 나타냄

0: 마지막 패킷

1: 마지막 패킷이 아님

 

7. 단편화 옵셋

13비트이며, 단편화된 조각들을 하나의 데이터그램으로 합칠 때, 전체 데이터그램에서의 상대적인 위치를 나타낸다.

Fragment가 완성된 메시지에서 어디에 속하는가를 표시


8. TTL(Time to Live)

데이터그램이 경유할 수 있는 라우터의 수에 대한 수를 결정한다. 데이터그램의 생존 시간을 제한하는 역할을 한다. 이 필드는 송신지에서 초기화되고, 각 라우터를 지날 때마다 라우터에 의하여 1씩 감소된다. 0이되면 데이터그램을 버려지고 송신자는 ICMP 메시지를 받게된다. 무한 루프를 방지하기 위해 사용된다.

 

9. 프로토콜

데이터그램의 상위 프로토콜이 어느 것이 사용되는지를 나타내 주는 필드이다. ICMP는 1, TCP는 6, UDP는 17이다.

 

10. 헤더 체크섬(Header Checksum)

IP헤더에 대해서만 계산된다. 데이터는 체크하지 않음.

내보내는 데이터그램에 대한 IP 체크섬을 계산하기 위해 먼저 체크섬 필드의 값은 0으로 설정된다. 그리고 헤더에 대한 16비트의 1의 보수의 합이 계산된다. 수신지의 계산된 체크섬은 송신지에서 저장한 체크섬을 가지고 있기 때문에 헤더 안에 아무것도 수정하지 않았다면 수신지의 체크섬이 모두 1비트일 것이다.

[방법/순서]

1) 송신자는 IP 데이터그램의 검사합 필드를 0으로 만든다.
2) 패킷을 16비트 단위로 나눈 후, 모두 합한다.
3) 구해진 합의 1의 보수를 구한다.
4) 구해진 검사합은 다시 검사합 필드에 저장한다.
5) 수신자는 받은 패킷을 16비트 단위로 나눈 후, 모두 합한다.
6) 만약 그 값이 모두 1이 나왔으면 패킷을 받아들이고, 그렇지 않으면 패킷을 폐기한다.

 


posted by 경원구