Compartilhar via


Socket.DontFragment Propriedade

Definição

Obtém ou define um valor que especifica se os Socket datagramas de IP (Protocolo de Internet) são 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 não Socket permitir a fragmentação de datagram; caso contrário, false. O padrão é true.

Exceções

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

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 {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 datagrams podem ser fragmentados pelo host de envio (todas as versões do Protocolo da 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 (Internet Control Message Protocol) 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