我正在使用UDP客户端每秒发送大约20k个请求,并且每个请求都包含<1k数据。我需要通过Java实现UDP服务器。 编码如下:
public void startRecieve() throws IOException {
udpSocket = new DatagramSocket(Constant.PORT);
byte[] buffer = new byte[Constant.SIZE];
udpPacket = new DatagramPacket(buffer, buffer.length);
int len;
while (true) {
udpSocket.receive(udpPacket);
len = udpPacket.getLength();
if (len > 0) {
// handing the data using other thread pool
}
}
}
有没有办法让UDP服务器丢包率降低?
感谢。
答案 0 :(得分:2)
数据包丢失在网络中,唯一的编程选项是
最好的解决方案几乎总是修复网络以减少损失,但是有一种策略可以接受一些损失。
注意:由于UDP是一种有损协议,但TCP不是,许多路由器都经过优化,可以在TCP负载增加时丢弃UDP数据包(因为路由器预计任何丢弃的TCP数据包都会再次发送)
这可能意味着在负载下,UDP可以看到比TCP更高的数据包丢失。