field@elvis.cs.pitt.edu (Gus) (10/23/90)
I've got an application that would like to send the largest UDP packet it can. (sun3 - sun3 running 4.0.3 over 10MB ethernet). The only reference to max UDP packet size is in the RPC section where it says the max size the UDP transport mechanism can handle is 8K bytes. (sendto () does not return EMSGSIZE until I try to send >9000 bytes per datagram). Anyway, when I send 8K byte packets, sendto () doesn't complain, but the packets never arrive at the receiver. In fact, if I attempt to send a datagram larger than 2048 bytes, it never arrives at the receiver. Running etherfind on a third machine, and watching the traffic between the UDP src and dst's I see: ----- 2048 byte packet: 1514 udp pebbles wilma 1788 4343 * 610 udp This datagram is delivered correctly to the destination application. ----- 2049 byte packet: 1066 udp pebbles wilma 1790 4343 * 611 udp Now, something is definitely wrong here. ----- So, what is the limit on UDP size messages (besides the 16 bit length field limit)? Is 2048 bytes per UDP datagram the limit? Thanks Brian ----- field@cs.pitt.edu
e85rw@efd.lth.se (Ricard Wolf) (10/26/90)
In article <8945@pitt.UUCP> field@elvis.cs.pitt.edu (Gus) writes: > >I've got an application that would like to send the largest UDP packet >it can. (sun3 - sun3 running 4.0.3 over 10MB ethernet). The only >reference to max UDP packet size is in the RPC section where it says >the max size the UDP transport mechanism can handle is 8K bytes. >(sendto () does not return EMSGSIZE until I try to send >9000 >bytes per datagram). Anyway, when I send 8K byte packets, sendto () >doesn't complain, but the packets never arrive at the receiver. In >fact, if I attempt to send a datagram larger than 2048 bytes, it never >arrives at the receiver. Running etherfind on a third machine, and >watching the traffic between the UDP src and dst's I see: > >----- >2048 byte packet: > > 1514 udp pebbles wilma 1788 4343 >* 610 udp > >This datagram is delivered correctly to the destination application. > >----- >2049 byte packet: > > 1066 udp pebbles wilma 1790 4343 >* 611 udp > >Now, something is definitely wrong here. > >----- > > >So, what is the limit on UDP size messages (besides the 16 bit length >field limit)? Is 2048 bytes per UDP datagram the limit? > >Thanks >Brian >----- >field@cs.pitt.edu Sending more than (1500-UDP&IP header length) over an ethernet connection requires IP to fragment the data upon transmission. This isn't a very common case, since protocols like TCP automatically reduce transmitted packets to a reasonably size (like 1K or 536 bytes). Since IP isn't called to fragment upon transmission very often, it isn't very well tested. Even a UDP based protocol like TFTP automatically blocks data into 512 data bytes, so IP never has to fragment here either. I remember having similar weird problems when testing an IP implementation. In order to test the IP reassembly,we sent UDP packets from a Sun 3/80 that were roughly 2K in length. At a certain size, things just didn't work right, and after several hours of head scratching and network monitoring we finally deduced that something was amiss in the Sun UDP transmission. We didn't pursue the thing further, though; we had no intention of debugging the whole Sun network code! :-) I don't even remember at what size things went wrong, but your 2K rings a bell... -- Ricard Wolf +--------------------------+-------------------------------------+ | Ricard Wolf | Lund Institute of Technology | | email: e85rw@efd.lth.se | If you can't buy 'em - build 'em !! | +--------------------------+-------------------------------------+