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)
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