UDP는 MTU에 대해 아무것도 모릅니다. UDP 패킷의 크기는 8에서 65535 바이트입니다. UDP 아래의 프로토콜 계층은 특정 크기의 패킷을 보내거나 너무 큰 경우 오류가 발생하여 해당 패킷을 보내지 않을 수 있습니다.
UDP 아래 계층은 일반적으로 IP, IPv4 또는 IPv6입니다. IP 패킷의 크기는 20 (IPv4) / 40 (IPv6)에서 65535 바이트 사이이며 UDP와 동일한 최대 크기입니다. 그러나 IP는 조각화 라는 메커니즘을 지원합니다 . IP 패킷의 크기가 아래 계층이 전송할 수있는 것보다 큰 경우 IP는 단일 패킷을 조각이라는 여러 패킷으로 분할 할 수 있습니다. 모든 프래그먼트는 실제로 자체 IP 패킷을 가지며 (자체 IP 헤더를 가짐) 또한 자체적으로 목적지로 전송됩니다. 수신 된 데이터를 다음 상위 계층 (예 : UDP)으로 전달하기 전에 모든 프래그먼트를 수집하고 전체 패킷을 다시 빌드하는 것이 대상의 작업입니다.
이더넷 프로토콜은 페이로드가 46에서 1500 바이트 사이 인 프레임 만 전송할 수 있습니다 (예외는 있지만이 응답 범위를 벗어남). 페이로드 데이터가 46 바이트보다 작은 경우,이 값은 46 바이트로 채워집니다. 페이로드 데이터가 1500 바이트를 초과하면 인터페이스가이를 거부합니다. 이 경우 패킷을 조각화하기로 결정하는 것은 이제 IP 계층에 달려 있으므로 1500 바이트를 초과하는 조각은 발생하지 않으며이 특정 연결에 대해 조각화가 비활성화되거나 금지 된 경우 다음 상위 계층에 오류를보고합니다.
조각화는 일반적으로 피해야합니다.
- 발신자 측에서 리소스를 낭비합니다.
- 수신자 측에서 자원을 낭비합니다.
- 동일한 양의 페이로드 데이터에 대한 프로토콜 오버 헤드가 증가합니다.
- 단일 조각이 손실되면 전체 패킷이 손실됩니다.
- 단일 조각이 손상된 경우 전체 패킷이 손상됩니다.
- 재전송의 경우 모든 조각을 재전송해야합니다.
그렇기 때문에 TCP는 프레임 크기를 지능적으로 채택하여 패킷을 조각화하기 위해 IP가 필요하지 않습니다. 이는 패킷을 조각화하는 IP를 금지하여 수행 할 수 있으며, IP가 패킷이 너무 커서 전송되지 않는다고보고하면 TCP는 더 이상 오류가보고되지 않을 때까지 프레임 크기를 줄이고 다시 시도합니다.
UDP의 경우 UDP는 "멍청한"프로토콜이기 때문에 응용 프로그램 자체의 작업이 될 것입니다. UDP에는 자체의 관리 논리가 없으므로 매우 유연하고 빠르며 간단합니다.
IP 표준에 따라 모든 IP 호스트가 IP 패킷을 수신 할 수 있어야하므로 항상 전송 가능한 것으로 믿을 수있는 유일한 UDP 크기는 576-8 바이트 UDP 헤더 및-20 (v4) / 40 (v6) 바이트 IP 헤더입니다. 총 크기는 576 바이트입니다. 해당 크기 이상의 패킷을 수락 할 수없는 경우 프로토콜 구현이 표준을 준수하지 않습니다. 그러나 표준에서는 조각화없이 576이라고 말하지 않으므로 576 바이트 IP 패킷조차도 두 호스트간에 조각화 될 수 있습니다.
조각화없이 전송할 수있는 유일한 패킷 크기는 IPv4의 경우 24 바이트, IPv6의 56 바이트입니다. 조각의 가장 작은 IP 헤더는 20/48 바이트 (v4 / v6)이고 조각의 크기는 4/8 이상이어야합니다. 바이트 (v4 / v6) 페이로드 데이터. 따라서, 이러한 크기의 패킷을 전송할 수없는 IP 계층 아래의 전송 시스템은 IP 트래픽을 전송하는 데 사용할 수 없습니다.
IPv6 헤더에는 40 바이트 만 있다고 언급하기 전에, 맞습니다. 그러나 IPv4 헤더와 달리 표준 IPv6 헤더에는 조각화를위한 헤더 필드가 없습니다. 패킷을 조각화해야하는 경우 조각화 확장 헤더를 IPv6 기본 헤더 아래에 추가해야하며이 확장 헤더의 길이는 8 바이트입니다. 또한 IPv4와 달리 IPv6의 조각화 오프셋은 4 바이트 단위가 아닌 8 바이트로 계산되므로 IPv6의 경우 조각은 8 바이트의 배수 인 페이로드 만 전송할 수 있습니다.