Computer Science/CS 네트워트 편

[Network] 5. IP 프로토콜 ( 3계층 프로토콜 )

미스터로즈 2021. 8. 10. 07:34

네트워크 관련된 유튜브 강의 정리 내용입니다.

정확한 내용을 학습하고 싶으면 네트워크 기초를 참고하시면 됩니다.


IPv4 프로토콜

IPv4가 하는 일

네트워크 상에서  데이터를 교환하기 위한 프로토콜입니다.

데이터가 정확하게 전달될 것을 보장하지는 않습니다.

중복된 패킷을 전달하거나 패킷의 순서를 잘못 전달할 가능성도 있습니다.

데이터의 정확하고 순차적인 전달은 그보다 상위 프로토콜인 TCP에서 보장을 합니다.

 

IPv4 구조

Version 

인터넷 프로토콜의 버전을 의미한다. IPv4, IPv5, IPv6 등의 버전이 들어갈 수 있다.

IHL

헤더의 길이이다. 헤더의 길이는 최소 20바이트부터 최대 60바이트의 크기를 가지기에 0부터 15까지의 수를 표현할 수 있는 4비트를 가지고 60바이트까지 표현하기 위해서 4를 곱한다. 0~15 표현 범위에 4를 곱하면 0~60까지를 표현할 수 있다. IPv6에서는 헤더의 크기가 항상 320바이트이기에 이 필드가 없다.

TOS

IP 데이터그램의 서비스 형태를 알린다. 이 필드를 통해 이 패킷이 얼마나 중요하고 긴급한 것인지를 알 수 있기에 QoS(Quality of Service)를 구현할 수 있다. IPv6에서는 Traffic Class로 이름이 바뀌었다. 이 필드는 6비트의 DSCP(Differenctiated Service Code Point)와 2비트의 ECN(Explicit Congestion Notification)라는 필드로 구분된다.

Total Length

헤더의 크기까지 포함한 IP데이터그램의 크기를 의미한다.

Identification

IP 데이터그램을 구분하기 위해서 쓴다. 예를 들어 IP 데이터그램이 단편화(fragmentation)되었을 때 단편화된 데이터그램이 원래 어떤 데이터그램에 속해 있는 지를 알 수 있다. IPv6에서는 라우터가 패킷을 단편화하지 않기 때문에 이 필드는 삭제되었다.

Flags

IP 데이터그램이 단편화됬는지를 나타내는 필드이다. 마찬가지로 IPv6에서는 삭제되었다.

Fragment Offset

단편화된 데이터그램의 순서를 나타낸다. 역시나 IPv6에서는 삭제되었다.

Time To Live

패킷이 라우터를 최대 몇 번 거쳐서까지 살아남을 것인지를 나타내는 필드이다. 패킷이 라우터를 거칠 때마다 이 필드의 값이 1씩 감소되며 0이 되면 버려진다. 흔히 TTL로 줄여 부른다.

Protocol

IP 데이터그램의 데이터(페이로드)에 담겨져 있는 상위 계층의 프로토콜을 알려준다. IPv6에서는 Next Header로 이름이 변경되었다.

Header Checksum

Header 필드의 오류를 검출할 수 있는 정보가 담긴 필드이다. 하위 계층에서 원홉오류검출을 하고 상위계층에서 종단 간 오류 검출을 하는 데도 불구하고 네트워크 계층의 프로토콜에 이 필드가 있는 이유는 다음과 같다. 과거에는 이웃 노드 간 통신 중에 패킷이 깨지는 경우가 너무 빈번하였기에 라우터에서 한번 더 오류 검출하기 위해 정의한 필드라고 한다. 현재는 기술이 많이 발전하여 유선에서는 사실 거의 패킷 유실(Packet loss)이 발생하지 않는다. 그래서 IPv6에서는 지워진 필드다.

Source Address

패킷을 보낸 노드의 IP 주소가 담긴다.

Destination Address

패킷이 도착해야하는 목적지의 IP 주소가 담긴다.