Tag: udp

什么会导致UDP数据包被发送到localhost时被丢弃?

我正在发送非常大(64000字节)的数据报。 我意识到MTU远小于64000字节(典型值大约是1500字节,从我的读数开始),但我怀疑会发生两件事之一 – 要么没有数据报就能通过(所有大于1500字节)会被静默删除或导致抛出错误/exception)或64000字节数据报将被分成大约43个1500字节的消息并透明地传输。 从长远来看(2000+ 64000字节数据报),数据报的大约1%(即使是LAN似乎exception高)也会被丢弃。 我可能期望通过网络,数据报可能无序到达,被丢弃,过滤等等。 但是,在localhost上运行时我没想到这一点。 是什么导致无法在本地发送/接收数据? 我意识到UDP是不可靠的,但我没想到它在localhost上如此不可靠。 我想知道它是否只是一个时间问题,因为发送和接收组件都在同一台机器上。 为了完整起见,我已经包含了发送/接收数据报的代码。 发送: DatagramSocket socket = new DatagramSocket(senderPort); int valueToSend = 0; while (valueToSend < valuesToSend || valuesToSend == -1) { byte[] intBytes = intToBytes(valueToSend); byte[] buffer = new byte[bufferSize – 4]; //this makes sure that the data is put into an array of the […]