Socket.DontFragment Propriedade

Definição

Obtém ou define um valor que especifica se o Socket permite que datagramas de protocolo IP sejam fragmentados.

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

Valor da propriedade

Boolean

true se não permitir a Socket fragmentação de datagram; caso contrário, false. O padrão é true.

Exceções

O soquete não está na InterNetwork família.

Ocorreu um erro ao tentar acessar o soquete.

Exemplos

O exemplo de código a seguir demonstra o uso da DontFragment propriedade.

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}");
}

Comentários

Os datagramas exigem fragmentação quando seu tamanho excede a MTU (Unidade de Transferência Máxima) do meio de transmissão. Os datagramas podem ser fragmentados pelo host de envio (todas as versões do Protocolo da Internet) ou por um roteador intermediário (somente o Protocolo da Internet versão 4). Se um datagram precisar ser fragmentado e a opção DontFragment estiver definida, o datagrama será descartado e uma mensagem de erro ICMP (Protocolo ICMP) será enviada de volta ao remetente do datagram.

Definir essa propriedade em um soquete TCP (Protocolo de Controle de Transmissão) não tem efeito.

Aplica-se a