发送/接收数据包缓冲区是否具有相同的预分配内存

时间:2011-04-13 08:22:07

标签: windows udp buffer-overflow

我有一个Windows应用程序消耗大量传入的udp流量并发送少量udp数据包'keep alive'消息。我看到传入和传出都有少量掉落。我很惊讶,少量的传出数据正在下降所以我使用netMon捕获数据包并看到它们都被发送出服务器,3帧只发送2到达linux服务器。

我想知道以下内容: 1. NetMon是否是sock_buffer上的克隆,因此数据可能会丢弃在数据包缓冲区而不是实际发送给服务器? 2.发送和接收的数据包缓冲存储器是否相同(即,如果接收数据包缓冲区正在使用预先分配的所有缓冲存储器,这会导致少量传出流量上的数据包丢失)?

1 个答案:

答案 0 :(得分:0)

第一件事:发送和接收数据包缓冲区具有单独的内存。 第二件事:NetMon适用于较低的网络层,而不是套接字层。 第三件事:请记住,UDP是不可靠的协议,您无法确保从一端发送的所有数据包都将在另一端接收。如果您需要可靠性,则应考虑TCP或其他一些可靠的协议。

顺便说一下,发送方和接收方都在同一个局域网或互联网上?他们是如何联系的?如果你能描述它,那么也许有人可以建议别的东西来进一步调试这个问题。