From: Michael Kerrisk Date: Sat, 25 Nov 2006 19:17:22 +0000 (+0000) Subject: Describe the correct default for UDP/RAW path MTU discovery. X-Git-Tag: man-pages-2.43~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=edd260bc5dd1c6cd4edf5b65b58ffdcb97b29ca1;p=thirdparty%2Fman-pages.git Describe the correct default for UDP/RAW path MTU discovery. --- diff --git a/man7/raw.7 b/man7/raw.7 index 2222662882..60ffc70783 100644 --- a/man7/raw.7 +++ b/man7/raw.7 @@ -127,14 +127,23 @@ In addition all socket options valid for datagram sockets are supported. .SH NOTES -Raw sockets fragment a packet when its total length exceeds the -interface MTU -(but see BUGS). -A more network friendly and faster alternative is to implement path MTU -discovery as described in the -.B IP_MTU_DISCOVER -section of -.BR ip (7). +By default raw sockets do path MTU (Maximum Transmission Unit) discovery. +This means the kernel +will keep track of the MTU to a specific target IP address and return +.I EMSGSIZE +when a raw packet write exceeds it. +When this happens the application should decrease the packet size. +Path MTU discovery can be also turned off using the +.B IP_MTU_DISCOVER +socket option or the +.B ip_no_pmtu_disc +sysctl, see +.BR ip(7) +for details. +When turned off raw sockets will fragment outgoing packets +that exceed the interface MTU. +However disabling it is not recommended +for performance and reliability reasons. A raw socket can be bound to a specific local address using the .BR bind (2) diff --git a/man7/udp.7 b/man7/udp.7 index b55b5ba7fe..9268d86e66 100644 --- a/man7/udp.7 +++ b/man7/udp.7 @@ -69,13 +69,23 @@ When the flag is set on sending the destination address must refer to an local interface address and the packet is only sent to that interface. -UDP fragments a packet when its total length exceeds the interface MTU -(Maximum Transmission Unit). -A more network friendly alternative is to use path MTU discovery -as described in the -.B IP_MTU_DISCOVER -section of -.BR ip (7). +By default Linux UDP does path MTU (Maximum Transmission Unit) discovery. +This means the kernel +will keep track of the MTU to a specific target IP address and return +.I EMSGSIZE +when a UDP packet write exceeds it. +When this happens the application should decrease the packet size. +Path MTU discovery can be also turned off using the +.B IP_MTU_DISCOVER +socket option or the +.B ip_no_pmtu_disc +sysctl, see +.BR ip(7) +for details. +When turned off UDP will fragment outgoing UDP packets +that exceed the interface MTU. +However disabling it is not recommended +for performance and reliability reasons. .SH "ADDRESS FORMAT" UDP uses the IPv4