我有一个windows应用程序,它消耗大量传入的udp流量,并发送少量的udp数据包“保持活动”消息。我看到传入和传出都有少量的下降。我很惊讶传出的少量数据正在经历丢失,所以我使用netMon捕获了数据包,并看到它们都从服务器发送出去,3帧发送只有2帧到达linux服务器。
我想知道以下几点: 1. NetMon是sock_buffer上的克隆吗?因此数据可能会被丢弃在数据包缓冲区,而不是服务器实际发送的数据? 2.发送和接收的数据包缓冲存储器是否相同(即,如果接收包缓冲器正在使用所有预先分配的缓冲存储器,这是否会导致少量传出流量的包丢失?
发布于 2011-04-14 01:36:22
第一件事:发送和接收数据包缓冲区有不同的内存。第二件事: NetMon工作在较低的网络层,而不是套接字层。第三件事:请记住,UDP是不可靠的协议,您不能确保从一端发送的所有数据包都会在另一端收到。如果您需要可靠性,您应该考虑TCP或其他可靠协议。
顺便说一下,发送者和接收者都在同一个LAN或Internet上??它们是如何联系在一起的?如果你可以描述它,那么也许有人可以提出其他建议来进一步调试这个问题。
https://stackoverflow.com/questions/5646343
复制相似问题