How come only the first part of my datagram is getting through?
Answer / chaitanya
This has to do with the maximum size of a datagram on the two machines involved. This depends on the sytems involved, and the MTU (Maximum Transmission Unit). According to "UNIX Network Programming", all TCP/IP implementations must support a minimum IP datagram size of 576 bytes, regardless of the MTU. Assuming a 20 byte IP header and 8 byte UDP header, this leaves 548 bytes as a safe maximum size for UDP messages. The maximum size is 65516 bytes. Some platforms support IP fragmentation which will allow datagrams to be broken up (because of MTU values) and then re-assembled on the other end, but not all implementations support this.
Is This Answer Correct ? | 0 Yes | 0 No |
How to find other end of unix socket connection?
Can a socket have multiple ports?
What is the difference between SO_REUSEADDR and SO_REUSEPORT?
Is there any advantage to handling the signal, rather than just ignoring it and checking for the EPIPE error? Are there any useful parameters passed to the signal catching function?
How many sockets can a cpu have?
of the socket? Does doing a connect() call affect the receive behaviour?
Why does the sockets buffer fill up sooner than expected?
What is the difference between close() and shutdown()?
How can I force a socket to send the data in its buffer?
What is difference between socket and websocket?
How can I be sure that UDP messages are received in order?
How do I convert a string into an internet address?