wanna be dev 🧑‍💻

Cool 하고 Sick한 개발자가 되고 싶은 uzun입니다

A.K.A. Kick-snare, hyjhyj0901, h_uz99 solvedac-logo

Computer Science/Computer Network

📡 [Network] IP 데이터그램(datagram)이란? 구조와 포멧 (IPv4)

Kick_snare 2022. 12. 10. 20:12
728x90

본 포스팅은 <컴퓨터 네트워킹 하향식접근[8판] James F.Kurose, Keith W.Ross 저/최종원,강현국,김기태>을 참고하여 작성되었습니다.

IP 인터넷 프로토콜이란?

인터넷 프로토콜(IP, Internet Protocol)은 송신 호스트와 수신 호스트가 패킷 교환 네트워크(패킷 스위칭 네트워크, Packet Switching Network)에서 정보를 주고받는 데 사용하는 정보 위주의 규약(프로토콜)이며, OSI 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당한다. 줄여서 아이피(IP)라고도 한다.

IP의 정보는 패킷 혹은 데이터그램이라고 하는 덩어리로 나뉘어 전송된다. IP에서는 이전에 통신한 적 없는 호스트에 패킷을 보낼 때 경로 설정이 필요없다.

IP는 비신뢰성(unreliability)과 비연결성(connectionlessness)이 특징이다. 비신뢰성은 흐름에 관여하지 않기 때문에 보낸 정보가 제대로 갔는지 보장하지 않는다는 뜻이다. 예를 들어 전송과정에서 패킷이 손상될 수도 있고, 같은 호스트에서 전송한 패킷의 순서가 뒤죽박죽이 될 수도 있고, 같은 패킷이 두 번 전송될 수도 있으며, 아예 패킷이 사라질 수도 있다. 패킷 전송과 정확한 순서를 보장하려면 TCP 프로토콜과 같은 IP의 상위 프로토콜을 이용해야 한다.

현재 인터넷에서 사용하는 표준 프로토콜은 인터넷 프로토콜의 4번째 판인 IPv4이다. 그러나 IPv4는 주소공간 고갈 문제를 겪고 있어 조만간 6번째 판인 IPv6가 대중화될 것으로 보인다. 마이크로소프트 윈도우 7, OS X, 리눅스 등 현재 널리 쓰이고 있는 대부분의 운영 체제는 IPv6 프로토콜을 지원한다.

참고

 

 

인터넷 프로토콜 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 이 문서는 특정한 프로토콜 기술에 관한 것입니다. 인터넷 관련 프로토콜의 전체 설정에 대해서는 인터넷 프로토콜 스위트 문서를 참고하십시오. 비슷한 뜻에

ko.wikipedia.org

 

IPv4 프로토콜

IPv4 데이터그램의 구조 (포맷)

32비트 IP 패킷의 format

  • 버전 :
    • 4비트로 IP 프로토콜 버전을 명시한다. (v4, v6)
  • 헤더 길이 :
    • IPv4는 헤더에 가변길이의 옵션을 포함하므로 4비트로 이를 표시하여 페이로드가 시작하는 시점을 표기한다.
    • 대부분의 IPv4 패킷은 옵션을 포함하지 않음으로 20바이트이다
    • 가변 길이로 인한 오버헤드가 커서 option 필드는 최근에 사용하지 않는다
  • 서비스 타입 (TOS) :
    • 어떤 네트워크 서비스를 담고 있는지 구분. 예로 실시간(VoIP)과 비실시간(FTP)를 구분한다.
    • TOS 비트 중 2비트는 명시적 혼잡 알림 (ECN)에 사용된다.
  • 데이터그램 길이 :
    • 바이트로 계산한 IP 데이터그램의 헤더를 포함한 전체 길이
    • 16비트로 이론상 65535바이트까지 가능하지만 대부분 1500바이트 이하이다.
  • 식별자, 플래스, 단편화 오프셋 :
    • IP 단편화와 관련된 필드이다.
    • 최근(v6)에는 단편화를 사용하지 않는다.
  • TTL(time-to-live) :
    • 패킷이 네트워크에서 무한히 순환하지 않도록 한다. (라우팅루프)
    • TTL이 0이 되면 라우터가 데이터그램을 폐기한다.
  • 프로토콜 :
    • IP 데이터그램이 최종 목적지에 도착했을 때 사용된다.
    • 목적지의 트랜스포트 계층 프로토콜을 명시한다. (TCP / UDP)
  • 헤더 체크섬 :
    • 수신한 IP 데이터그램의 비트 오류를 탐지한다.
    • 라우터는 수신한 각 IP 패킷마다 헤더 체크섬을 계산하여 비교한다.
  • 32비트 출발지/ 도착지 IP 주소 :
    • 출발지와 도착지의 IP 주소를 필드에 삽입한다.
  • 옵션 :
    • 옵션 필드는 IP 헤더를 확장한다.
    • 오버헤드를 해결하기 위해 모든 데이터그램 헤더 옵션 필드는 사용하지 않는다.
    • 가변길이로 시작점이 유동적이여 계산하기 복잡해지기 때문이다.

 

일반적인 패킷의 길이는 MSS 1460B + SH 20B + NH 20B = 1500B이다.

 

728x90