>일반적인 문제 >IP 데이터그램의 형식은 무엇입니까

IP 데이터그램의 형식은 무엇입니까

醉折花枝作酒筹
醉折花枝作酒筹원래의
2021-06-17 15:55:0020057검색

TCP/IP 프로토콜은 헤더와 데이터 부분으로 구성된 IP 데이터그램이라고 하는 인터넷에서 전송되는 패킷을 정의합니다. 헤더의 첫 번째 부분은 총 20바이트의 고정 길이이며 모든 IP 데이터그램에 필요합니다. 헤더의 고정 부분 뒤에는 길이가 가변적인 일부 선택적 필드가 있습니다.

IP 데이터그램의 형식은 무엇입니까

이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.

TCP/IP 프로토콜은 IP 데이터그램이라고 불리는 인터넷 상에서 전송되는 패킷을 정의합니다. 이는 하드웨어와 관련이 없으며 헤더와 데이터로 구성되는 가상 패킷입니다. 모든 IP 데이터그램에는 총 20바이트가 필요합니다. 헤더의 고정 부분 뒤에는 길이가 가변적인 일부 선택적 필드가 있습니다. IP 프로토콜은 신뢰할 수 없는 비연결 데이터그램 전송 서비스를 제공합니다. IP 계층에서 제공하는 서비스는 캡슐화를 통해 실현됩니다. IP 계층에 의한 데이터그램의 캡슐화 해제. IP 데이터그램의 형식은 헤더 영역과 데이터 영역의 두 부분으로 나누어집니다. 헤더 영역은 상위 수준 데이터의 올바른 전송을 위해 추가되는 다양한 제어 정보입니다. 데이터 영역에는 상위 수준 프로토콜에 필요한 데이터가 포함됩니다. 전송하다.

IP 데이터그램의 형식은 다음과 같습니다.

IP 데이터그램의 형식은 무엇입니까위 그림에 표시된 데이터에서 가장 높은 비트는 왼쪽에 있고 가장 낮은 비트는 오른쪽에 0비트로 기록됩니다. 31비트로 기록됩니다. 네트워크에서 데이터를 전송할 때 비트 0~7이 먼저 전송되고, 다음으로 비트 8~15, 비트 16~23, 마지막으로 비트 24~31이 전송됩니다. 네트워크를 통해 전송될 때 TCP/IP 프로토콜 헤더의 모든 이진수는 이 순서대로 이루어져야 하므로 이를 네트워크 바이트 순서라고 합니다. 실제 프로그래밍에서 다른 형태로 저장된 이진수는 데이터를 전송하기 전에 네트워크 프로그래밍 API의 해당 기능을 사용하여 헤더를 네트워크 바이트 순서로 변환해야 합니다.

IP 데이터그램의 각 필드의 기능은 다음과 같습니다.

1) 버전 번호: 4자리 이진수를 차지하며 IP 데이터그램에서 사용하는 IP 프로토콜 버전을 나타냅니다. 현재 인터넷은 주로 TCP/IP 프로토콜 제품군의 버전 번호 4인 IP 프로토콜을 사용합니다.

2) 헤더 길이: 4진수 비트를 차지합니다. 이 필드는 전체 헤더의 길이(옵션 포함)를 나타냅니다. 길이는 32비트 이진수를 기준으로 하며 수신측에서는 헤더가 어디에 있는지 계산할 수 있습니다. 이 필드를 통해 데이터가 끝나고 데이터 읽기가 시작됩니다. 일반 IP 데이터그램(옵션 없음)의 경우 이 필드의 값은 5(즉, 길이 20바이트)입니다.

3) 서비스 유형(TOS, 서비스 유형): 8개의 바이너리 비트를 차지하며 이 데이터그램의 처리 방법을 지정하는 데 사용됩니다. 서비스 유형 필드의 8비트는 5개의 하위 필드로 나뉩니다.

IP 데이터그램의 형식은 무엇입니까(1) - 우선순위(0-7) 숫자가 클수록 데이터그램의 우선순위가 높아집니다. 네트워크의 라우터는 혼잡 제어를 위해 우선순위를 사용할 수 있습니다. 예를 들어, 네트워크에서 혼잡이 발생하면 데이터그램의 우선순위를 사용하여 선택할 데이터그램을 결정할 수 있습니다.

(2) - 짧은 지연 비트 D(지연): 이 비트가 1이면 데이터그램 요청이 짧은 지연 채널을 통해 전송되고 0은 일반 지연을 나타냅니다.

(3) - 높은 처리량 비트 T(처리량): 이 비트가 1이면 데이터그램이 높은 처리량 채널에서 전송되도록 요청하고, 0은 정상을 의미합니다.

(4) - 높은 신뢰성 비트 R(신뢰성): 이 비트가 1이면 데이터그램이 높은 신뢰성 채널에서 전송되도록 요청하고, 0은 정상을 의미합니다.

(5)—예약된 비트입니다.

현재 인터넷에서 사용되는 TCP/IP 프로토콜은 대부분 TOS를 처리하지 않지만, 실제 프로그래밍에서는 이 필드의 각 도메인을 설정하는 특별한 기능이 있습니다. 일부 중요한 인터넷 애플리케이션 프로토콜은 권장 TOS 값을 설정했습니다.

IP 데이터그램의 형식은 무엇입니까위 표에서 볼 수 있듯이 사용자와 직접 상호 작용하는 애플리케이션의 경우 일반적으로 많은 양의 데이터가 필요한 애플리케이션의 경우 짧은 지연이 사용됩니다. 전송 애플리케이션의 경우 일반적으로 데이터그램이 제어 정보를 전송해야 하는 애플리케이션의 경우 높은 처리량이 선택되며 높은 신뢰성이 선택됩니다. 데이터그램 수명 동안 TOS가 지원되지 않으면 TOS 필드는 0x00으로 설정됩니다.

4) 총 길이: 16개의 바이너리 비트를 차지하며, 총 길이 필드는 전체 IP 데이터그램(헤더 영역 + 데이터 영역)의 길이를 바이트 단위로 나타냅니다. IP 데이터그램의 데이터 내용의 시작 위치와 길이는 헤더 길이 필드와 전체 길이 필드를 사용하여 계산할 수 있습니다. 이 필드의 길이는 16비트 이진수이므로 이론적 IP 데이터그램은 최대 65536바이트까지 가능합니다(실제로 물리적 네트워크의 한계로 인해 이 값보다 훨씬 작습니다).

5) TTL(Time to Live): 8개의 바이너리 비트를 차지하며 네트워크에서 데이터그램이 전송될 수 있는 최대 시간을 지정합니다. 실제 애플리케이션에서 수명 필드는 데이터그램이 통과할 수 있는 최대 라우터 수로 설정됩니다. TTL의 초기값은 소스 호스트(보통 32, 64, 128, 256)에 의해 설정되며 이를 처리하는 라우터를 통과하면 값이 1씩 감소합니다. 이 필드가 0이면 데이터그램이 삭제되고 소스 호스트에 알리기 위해 ICMP 메시지가 전송됩니다. 이는 루프에 들어갈 때 데이터그램이 끝없이 전송되는 것을 방지합니다.

6) 상위 계층 프로토콜 식별자: IP 프로토콜은 8개의 바이너리 비트를 차지하며, 프로토콜 식별자를 기반으로 다양한 상위 계층 프로토콜을 전달할 수 있습니다. 대상은 수신된 IP 데이터를 TCP 또는 UDP와 같은 상위 계층 프로토콜로 전송할 수 있습니다. 메시지. .

일반적으로 사용되는 인터넷 프로토콜 번호:

IP 데이터그램의 형식은 무엇입니까

7) 체크섬: 16비트 이진수를 차지하며 프로토콜 헤더 데이터의 유효성을 확인하는 데 사용되며, 이는 IP 헤더 영역의 정확성과 무결성을 보장할 수 있습니다. 전송 중. 헤더 체크섬 필드는 IP 프로토콜 헤더를 기반으로 계산된 체크섬이며 헤더 뒤의 데이터를 계산하지 않습니다.

원리: 발신자는 먼저 체크섬 필드를 0으로 설정한 다음 헤더의 각 16비트 이진수에 대해 보수 합계 연산을 수행하고 결과를 체크섬 필드에 저장합니다. 수신자는 계산 과정에서 송신자가 헤더에 넣은 체크섬을 포함하므로 전송 중 헤더에 오류가 발생하지 않으면 수신자의 계산 결과는 모두 1이 되어야 합니다.

8) 소스 주소: 32비트 이진수를 차지하며 송신 IP 주소를 나타냅니다.

9) 대상 주소 : 32비트 이진수를 차지하며 대상 IP 주소를 표현합니다.

======================IP 데이터그램 조각화 및 재조립===================== = ==

최대 전송 단위:

IP 데이터그램이 인터넷에서 전송될 때 소스에서 대상으로 전송되기 위해 여러 물리적 네트워크를 통과해야 할 수도 있습니다. 네트워크마다 링크 계층과 매체의 물리적 특성이 다르기 때문에 데이터 전송 시 데이터 프레임의 최대 길이에 제한이 있습니다. 이 제한 값은 MTU(최대 전송 단위)입니다. 네트워크에 두 개의 호스트가 있는 경우 네트워크의 MTU 값이 결정되며 조각화 문제가 없습니다. 조각화 문제는 일반적으로 MTU 값이 다른 인터넷에만 존재합니다. 현재 인터넷은 네트워크 연결을 위해 주로 라우터를 사용하므로 일반적으로 샤딩 작업은 라우터에서 처리됩니다.

두 호스트 간의 통신이 서로 다른 MTU 값을 갖는 여러 네트워크를 통과할 때 MTU 병목 현상은 통신 경로에서 가장 작은 MTU 값, 이를 경로 MTU라고 합니다. 라우팅은 반드시 대칭이 아니므로(A에서 B로의 경로는 B에서 A로의 경로와 다를 수 있음), 경로 MTU가 반드시 양방향에서 일치하지는 않습니다. 다음 표는 일반적으로 사용되는 여러 네트워크의 MTU입니다.

IP 데이터그램의 형식은 무엇입니까조각화:

네트워크 전송에 맞게 데이터그램을 여러 데이터그램으로 나누는 프로세스를 조각화라고 합니다. 조각난 각 IP 데이터그램은 서로 다른 경로를 통해 대상 호스트에 도달할 수 있습니다.

IP 데이터그램은 전송 중에 조각화될 수도 있고 그렇지 않을 수도 있습니다. 조각화된 경우 조각화된 IP 데이터그램은 조각화되지 않은 원본 IP 데이터그램과 동일한 구조를 갖습니다. 즉, IP 헤더와 IP 데이터 영역의 두 부분으로 구성됩니다.

IP 데이터그램의 형식은 무엇입니까조각화된 IP 데이터그램, 데이터 영역은 원래 IP 데이터그램 데이터 영역의 연속 부분인 헤더는 원래 IP 데이터그램 헤더의 복사본이지만 조각화되지 않은 원래 IP 데이터그램 헤더와는 두 가지 주요 차이점이 있습니다: 플래그 및 조각 오프셋:

(1)-플래그: 거기 3자리 이진수로 표시되는 IP 데이터그램 헤더의 "플래그"라는 필드입니다.

IP 데이터그램의 형식은 무엇입니까Do not Fragment DF(Do not Fragment) 플래그 if 1로 설정하면 전송 중에 데이터그램을 조각화할 수 없습니다. 예를 들어, 네트워크 연결 테스트 명령 ping은 -F 매개변수를 사용하여 데이터 전송 중에 조각화되지 않도록 설정할 수 있지만 이 경우 데이터가 더 작은 MTU를 가진 네트워크를 통과할 수 없으므로 데이터 도달 불가 오류가 발생합니다.

조각 미완성 MF(More Fragment) 플래그가 1로 설정되면 해당 데이터그램이 조각화 후 마지막 데이터그램이 아니며 마지막 데이터그램의 비트가 0으로 설정된다는 의미입니다.

(2) - 조각 오프셋: IP 데이터그램이 조각화된 후 원래 IP 데이터 영역의 각 조각 데이터 영역의 위치는 13비트 조각 오프셋으로 표시됩니다. 위 그림에서 프래그먼트 1의 오프셋은 0이고, 프래그먼트 2의 오프셋은 600이고, 프래그먼트 3의 오프셋은 1200입니다. 실제로 IP 주소에서는 오프셋이 8바이트 단위로 계산되므로 , IP 데이터그램의 조각 1의 오프셋은 0이고 조각 2의 오프셋은 75이고 조각 3의 오프셋은 150입니다.

재조립:

조각난 IP 데이터그램이 최종 대상 호스트에 도달하면 대상 호스트는 각 조각을 조립하여 소스 호스트가 보낸 IP 데이터그램으로 복원합니다. 이 프로세스를 IP 데이터그램 재조립이라고 합니다.

IP 데이터그램 헤더에서 식별자는 호스트가 보낸 각 데이터그램을 고유하게 식별하는 16비트 이진수로 표시됩니다. 데이터그램이 조각화되면 각 조각은 데이터그램의 "식별" 필드 값만 복사하므로 데이터그램의 모든 조각은 동일한 ID를 갖습니다.

대상 호스트에 의한 데이터그램 재조립 원칙은 다음과 같습니다.

(1) - "식별" 필드에 따라 수신된 조각이 어떤 IP 데이터그램에 속하는지 확인할 수 있습니다.

(2) - "Flag" 필드의 "Unfinished MF" 하위 필드에 따라 해당 조각이 마지막 조각인지 확인할 수 있습니다.

(3) - "Offset" 필드에 따라 조각은 원래 데이터그램 위치에 있습니다.

더 많은 컴퓨터 관련 지식을 알고 싶으시면 FAQ 칼럼을 방문해주세요!

위 내용은 IP 데이터그램의 형식은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.