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

true se o Socket não permitir fragmentação de datagrama; 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 internet) ou por um roteador intermediário (somente o Protocolo de 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 de Mensagem de Controle da Internet) será enviada de volta ao remetente do datagrama.

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

Aplica-se a