Socket.DontFragment 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
Socket에서 IP(인터넷 프로토콜) 데이터그램의 조각화를 허용하는지 여부를 나타내는 값을 가져오거나 설정합니다.
public:
property bool DontFragment { bool get(); void set(bool value); };
public bool DontFragment { get; set; }
member this.DontFragment : bool with get, set
Public Property DontFragment As Boolean
속성 값
true
가 Socket 데이터그램 조각화를 허용하지 않으면 이고, false
그렇지 않으면 입니다. 기본값은 true
입니다.
예외
소켓이 패밀리에 InterNetwork 없습니다.
소켓에 액세스하는 동안 오류가 발생했습니다.
Socket이 닫혔습니다.
예제
다음 코드 예제에서는 DontFragment 속성입니다.
static void ConfigureUdpSocket(Socket^ udpSocket)
{
// Set the Don't Fragment flag.
udpSocket->DontFragment = true;
// Enable broadcast.
udpSocket->EnableBroadcast = true;
// Disable multicast loopback.
udpSocket->MulticastLoopback = false;
Console::WriteLine("Udp Socket configured:");
Console::WriteLine(" DontFragment {0}",
udpSocket->DontFragment);
Console::WriteLine(" EnableBroadcast {0}",
udpSocket->EnableBroadcast);
Console::WriteLine(" MulticastLoopback {0}",
udpSocket->MulticastLoopback);
}
static void ConfigureUdpSocket(Socket udpSocket)
{
// set the Don't Fragment flag.
udpSocket.DontFragment = true;
// Enable broadcast.
udpSocket.EnableBroadcast = true;
// Disable multicast loopback.
udpSocket.MulticastLoopback = false;
Console.WriteLine("Udp Socket configured:");
Console.WriteLine($" DontFragment {udpSocket.DontFragment}");
Console.WriteLine($" EnableBroadcast {udpSocket.EnableBroadcast}");
Console.WriteLine($" MulticastLoopback {udpSocket.MulticastLoopback}");
}
설명
데이터그램의 크기가 전송 매체의 MTU(최대 전송 단위)를 초과하는 경우 조각화가 필요합니다. 데이터그램은 전송 호스트(모든 인터넷 프로토콜 버전) 또는 중간 라우터(인터넷 프로토콜 버전 4에만 해당)에 의해 조각화될 수 있습니다. 데이터그램을 조각화해야 하고 DontFragment 옵션을 설정하면 데이터그램이 삭제되고 ICMP(Internet Control Message Protocol) 오류 메시지가 데이터그램의 보낸 사람에게 다시 전송됩니다.
TCP(Transmission Control Protocol) 소켓에서 이 속성을 설정해도 아무런 효과가 없습니다.
적용 대상
.NET