Socket.DontFragment Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia wartość określającą, czy Socket zezwala na fragmentacje datagramów protokołu internetowego (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
Wartość właściwości
true
jeśli element Socket nie zezwala na fragmentację datagramu; w przeciwnym razie false
. Wartość domyślna to true
.
Wyjątki
Gniazdo nie znajduje się w InterNetwork rodzinie.
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Została zamknięta Socket .
Przykłady
Poniższy przykład kodu przedstawia użycie DontFragment właściwości.
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}");
}
Uwagi
Datagramy wymagają fragmentacji, gdy ich rozmiar przekracza maksymalną jednostkę transferu (MTU) nośnika transmisji. Datagramy mogą być fragmentowane przez hosta wysyłającego (wszystkie wersje protokołu internetowego) lub routera pośredniego (tylko protokół internetowy w wersji 4). Jeśli datagram musi zostać podzielony na fragmenty, a DontFragment opcja zostanie ustawiona, datagram zostanie odrzucony, a komunikat o błędzie protokołu ICMP (Internet Control Message Protocol) zostanie wysłany z powrotem do nadawcy datagramu.
Ustawienie tej właściwości w gniazdie protokołu TCP (Transmission Control Protocol) nie ma wpływu.