微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决是发送/接收数据包缓冲区是相同的预分配内存

| 我有一个Windows应用程序,它消耗大量传入的udp流量,并发送少量的udp数据包“保持活动”消息。我看到传入和传出的邮件都有少量下降。令我惊讶的是,少量的传出数据正在掉落,因此我使用netMon捕获了数据包,并看到它们都是通过服务器发送出去的,只有3个发送的帧到达了Linux服务器。 我想知道以下内容: 1. NetMon是否是sock_buffer上的克隆,因此数据可能会被丢弃在数据包缓冲区中,而实际上并未从服务器发送? 2.发送和接收的数据包缓冲存储器是否相同(即,如果接收数据包缓冲器使用了所有预先分配的缓冲存储器,这会导致少量传出流量导致数据包丢失)吗?     

解决方法

第一件事:发送和接收数据包缓冲区具有单独的内存。 第二件事:NetMon在较低的网络层而不是套接字层上工作。 第三件事:请记住,UDP是不可靠的协议,您不能确保从一端发送的所有数据包都会在另一端收到。如果需要可靠性,则应考虑使用TCP或其他一些可靠的协议。 顺便说一下,发送者和接收者都在同一局域网或互联网上?它们如何连接?如果您可以描述它,那么也许有人可以提出其他建议来进一步调试问题。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。