IP 데이터그램의 단편화 및 조립 원리는 무엇입니까?

WBOY
풀어 주다: 2023-05-24 11:12:13
앞으로
3132명이 탐색했습니다.


한 호스트가 다른 호스트로 데이터를 보낼 때 데이터는 여러 라우팅 계층을 통해 전달되어야 합니다. 라우팅 계층에서 IP 전달 프로세스는 상대적으로 복잡합니다. 대상 호스트가 보낸 데이터그램을 처리하는 방법은 무엇입니까?

먼저 데이터그램의 형식을 이해해야 합니다.

IP 데이터그램의 단편화 및 조립 원리는 무엇입니까?

IP 전달 및 제어는 IP 데이터그램의 헤더에 의해 결정됩니다.

4비트 헤더 길이의 값은 4바이트 단위입니다. 최소값은 5이며, 이는 최소 헤더 길이가 4x5=20바이트이며, 이는 옵션이 없는 IP 헤더임을 의미합니다. 4비트 에너지 테이블이 나타내는 최대값은 15이며, 이는 최대 헤더 길이를 의미합니다. 섹션

8비트 TOS 필드에는 IP 데이터그램의 우선순위(현재는 사용되지 않음)를 지정하는 데 사용되는 3비트와 최소 지연, 최대 처리량 및 최대 신뢰성을 포함하여 선택 사항을 나타내는 4비트가 있습니다. 서비스 유형 성별 및 최소 비용이며 총 비트는 항상 0입니다.

총 길이 16비트는 전체 데이터그램(IP 헤더 및 IP 계층 페이로드 포함)의 바이트 수입니다.

IP 데이터그램이 전송될 때마다 16비트 식별자는 1

씩 증가하며, 이는 데이터그램을 조각화하고 재조립하는 데 사용될 수 있습니다.

슬라이싱을 위한 3비트 플래그 및 13비트 슬라이스 오프셋.

TTL(Time to live)은 다음과 같이 사용됩니다. :소스 호스트는 데이터 패킷의 생존 시간을 64와 같이 설정합니다. 라우터

를 통과할 때마다 값이 1씩 감소합니다. 시간이 지나도 목적지 호스트의 네트워크를 찾지 못하면 해당 패킷은 폐기됩니다. 따라서 이 생존 시간의 단위는 초가 아닌 홉입니다.

프로토콜 필드는 상위 계층 프로토콜이 TCP, UDP, ICMP 또는 IGMP인지 여부를 나타냅니다. 그리고 IP 헤더만 확인하는 체크섬이 있습니다. 데이터 확인은 상위 계층 프로토콜에 의해 처리됩니다.

IPv4의 IP 주소 길이는 32비트입니다.

IP 데이터그램에서 전체 길이는 16비트 필드이고 데이터그램의 최대 길이는 2^16-1입니다. 가능한 가장 긴 데이터그램이 전송 효율성을 향상시킬 수 있지만 1500바이트를 초과하는 경우는 거의 없습니다. 여기서는 1500바이트를 초과하므로 이 데이터그램을 조각화해야 한다고 간주됩니다. IP 데이터그램이 조각화되면 각 조각은 IP 헤더로 패킷을 형성하고 독립적으로 라우팅됩니다. 대상 호스트에 도착한 후 대상 호스트의 IP 계층은 조각을 전송 계층으로 전송하기 전에 수신된 모든 조각을 처리합니다. 데이터그램으로 재조립됩니다.

1. IP 조각화

1. IP 조각화 원리:

조각화 및 재조립 과정은 전송 계층에 투명합니다. 그 이유는 IP 데이터그램이 조각화된 후에만 다음 스테이션에 도달할 수 있기 때문입니다. 조각화된 데이터그램은 필요에 따라 다시 조각화될 수 있습니다.

IP 조각과 전체 메시지는 거의 동일한 IP 헤더, ID 필드 쌍을 갖습니다. 미국과 영국 조각은 일관성이 있습니다. 동일한 IP 데이터 패킷 조각이 조립 중에 식별될 수 있도록 합니다. IP 헤더에서 16비트 식별 번호는 IP 패킷의 ID를 고유하게 기록하고 동일한 ID를 가진 IP 조각이 재조립되는 반면 13비트 조각 오프셋은 전체 패킷에 대한 IP 조각의 위치를 ​​기록합니다. ; 두 테이블 중간에 있는 3비트 플래그는 이 조각 뒤에 새 조각이 있는지 여부를 표시합니다. 수신기는 IP 조각화를 구성하는 모든 정보인 이 세 가지 필드에 제공된 정보를 사용하여 IP 데이터를 재조립할 수 있습니다.

(1) 플래그 필드의 역할

0 DF MF

플래그 필드에는 세 자리 숫자가 있으며, 가장 높은 비트는 0이며, 이 값은 모든 그룹에 복사되어야 합니다.

Do not Fragment(DF) 값은 다음과 같아야 합니다. 복사되었습니다. DF=1은 수신 호스트가 패킷을 조각화할 수 없음을 의미합니다. 패킷을 조각화할 수 없지만 길이가 MTU를 초과하는 경우 패킷을 삭제할 수만 있으며 소스 호스트에 알리기 위해 ICMP 오류 메시지를 사용해야 합니다. DF=0은 조각화될 수 있음을 의미합니다.

Fragmentation(MF)은 조각이 마지막 조각인지 여부를 나타내고, MF=1은 허용된 조각이 마지막 조각이 아님을 의미하며, MF=0은 허용된 조각이 마지막 조각임을 의미합니다. 모든 조각 대신 일부 IP 조각을 의도적으로 보내면 대상 호스트는 항상 조각이 소비되고 시스템 리소스를 차지할 때까지 기다리게 됩니다.

2. MTU(최대 전송 단위) 원리

두 개의 원격 CP가 상호 연결되면 해당 데이터가 반대쪽 끝에 도달하기 위해 많은 라우터와 다양한 네트워크 미디어를 통과해야 합니다

, 네트워크의 미디어가 다릅니다. MTU는 다릅니다. 서로 다른 두께(다른 MTU)의 수도관으로 구성된 긴 수도관 부분과 같습니다. 이 수도관 부분을 통과하는 물의 최대량은 중간에 있는 가장 얇은 수도관에 의해 결정됩니다.

네트워크 계층의 상위 계층 프로토콜(여기서는 TCP/IP 프로토콜 클러스터를 예로 들겠습니다)의 경우 수도관의 두께는 네트워크의 문제라고 생각하기 때문에 신경 쓰지 않습니다. 네트워크 계층에서 IP 프로토콜은 상위 계층 프로토콜에서 전송되는 각 데이터 패킷의 크기를 감지하고 시스템의 MTU 크기를 기반으로 조각화가 필요한지 여부를 결정합니다. 샤딩의 가장 큰 단점은 전송 성능이 저하되고, 한 번 완료할 수 있는 작업을 여러 프로세스로 나누어야 한다는 점입니다. 따라서 네트워크의 상위 계층(전송 계층 구현)은 종종 이에 주의를 기울입니다. 일부 상위 계층에서는 어떤 이유로 패킷을 조각화할 수 없도록 요구할 수 있으며 인덱스는 IP 헤더에 레이블을 추가하기 때문입니다. datagram. :DF IP 데이터 패킷이 대규모 네트워크 세그먼트를 통해 전송될 때 MTU가 데이터 패킷보다 작으면 전달 장치는 상황에 따라 데이터 패킷을 삭제합니다. 그러면 송신자에게 오류 메시지가 반환되는데, 이로 인해 종종 통신 문제가 발생합니다. 다행스럽게도 대부분의 네트워크 링크 MTU는 1500 이상입니다. UDP의 경우 프로토콜 자체는 데이터 패킷의 도착 순서에 상관이 없습니다. 정확하므로 일반적으로 UDP에는 조각화에 대한 요구 사항이 많지 않습니다. 이 프로토콜은 연결 지향 프로토콜입니다. TCP의 경우 데이터 패킷의 도착 순서에 매우 관심이 있습니다. 전송 프로세스 중에 오류가 발생하므로 일부 TCP 애플리케이션에는 조각화에 대한 요구 사항이 있습니다---조각화될 수 없습니다

3.MSS(최대 세그먼트 길이) 원칙

MSS는 TCP 패킷이 매번 가질 수 있는 데이터의 양입니다. 최상의 전송 성능을 달성하기 위해 TCP 프로토콜은 일반적으로 연결을 설정할 때 양쪽 당사자의 MSS 값을 협상합니다. 이 값은 TCP 프로토콜이 구현될 때 MTU로 대체됩니다. IP 데이터 패킷) 20비트 및 TCP 데이터 세그먼트 헤더 20BITES)이므로 MSS 크기는 대개 1460입니다. 양 당사자는 제공된 최소 MSS 값을 기반으로 이 연결의 최대 MSS 값을 결정합니다

II IP 조각화 단계

.

조각화되지 않은 데이터그램 조각화 정보 필드는 모두 0입니다. 즉, 여러 조각화 플래그는 0이고 오프셋은 0입니다. 데이터그램을 조각화하려면 다음 단계를 거쳐야 합니다

(1) DF 플래그를 확인하여 조각화가 허용되는지 확인하세요. 이 비트가 설정되면 데이터그램이 삭제되고 ICMP 오류가 소스에 반환됩니다.

(2) MTU 값에 따라 데이터 필드는 두 부분 또는 쌍으로 나뉩니다. 마지막 데이터 부분을 제외하고 모두 새로운 데이터 옵션 길이는 8바이트의 배수여야 합니다

(3) 각 데이터는 IP 데이터그램에 들어가고, 이 데이터그램의 헤더는 원래 헤더를 약간 변경합니다

(4) 마지막 데이터그램을 제외하고 모든 조각에는 여러 조각화 플래그가 설정되어 있습니다. (5) 각 조각의 조각 오프셋 필드는 원본 데이터그램의 이 데이터 부분이 차지하는 위치로 설정됩니다. 조각화되지 않은 원본 데이터그램.

(6) 원본 데이터그램에 옵션이 포함된 경우 옵션 유형 바이트의 상위 바이트에 따라 이 정보가 모든 조각화된 데이터그램에 복사되는지 아니면 첫 번째 데이터그램에만 복사되는지가 결정됩니다.

(7) 새 데이터그램의 헤더 필드와 전체 길이 필드를 설정합니다.

(8) 메시지 헤더의 체크섬 필드를 다시 계산합니다.

이때 이러한 조각난 데이터그램은 완전한 IP 데이터그램처럼 전달됩니다. IP는 각 데이터그램 조각을 독립적으로 처리합니다. 데이터그램 조각이 해당 규정을 통과하면 더 작은 경로를 통해 목적지에 도달할 수 있습니다

대상 호스트에서 데이터는 원본 데이터그램으로 재조립되고 송신 호스트가 설정한 식별 필드와 위안 IP 주소 및 데이터그램의 대상 IP 주소가 함께 사용되며 조각화 프로세스는 이 필드를 변경하지 않습니다


3. 재조립

이러한 데이터그램의 조각을 재구성하기 위해 수신 호스트는 첫 번째 조각이 도착할 때 저장 버퍼를 할당합니다. 이 호스트는 타이머도 시작합니다. 데이터그램의 후속 조각이 도착하면 데이터는 조각 오프셋으로 지정된 위치의 버퍼 메모리에 복사되고, 모든 조각이 도착하면 조각화되지 않은 완전한 원본 데이터그램이 복원됩니다.

타이머가 만료되고 샤드가 승인되지 않은 상태로 남아 있으면 데이터가 유지되지 않습니다. 이 타이머의 초기 값은 IP 데이터그램의 수명 값입니다. 이는 구현에 따라 다르며 일부 구현에서는 이를 구성할 수 있습니다.

재조립 단계

수신 측에서는 보낸 사람이 보낸 원본 데이터 IP 패킷이 상위 계층 프로토콜에 제출되기 전에 모든 조각을 재조립합니다. 재조립할 각 IP 데이터그램은 ipq 구조를 사용하여

In을 나타냅니다. 조각 집합을 효과적으로 개선하려면 조각 저장에 사용되는 구조가 다음 사항을 달성해야 합니다.

(1) 특정 데이터그램의 패킷 그룹을 빠르게 찾습니다.

(2) 특정 데이터그램에 속합니다. 데이터그램의 조각 집합

(3) 데이터그램의 모든 조각이 수신되었는지 효과적으로 확인합니다

(4) 재조립 시간 초과 메커니즘이 있습니다. 시간 초과가 만료되면 데이터그램의 모든 내용이 삭제되세요

위 내용은 IP 데이터그램의 단편화 및 조립 원리는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
ip
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿