Why does UDP have a length field in the header and TCP does not?
I am guessing that the length of the segment in TCP is inferred from the IP header but one should be able to do the same for a UDP datagram
According to TCP/IP Illustrated Volume 1, the length field is redundant. That's all Stevens says on the matter.
I personally believe it was to make the UDP header length (in bits) divisible by 32 :)