首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果线路上有UDP数据包,我能保证在应用层得到它们吗?

如果线路上有UDP数据包,我能保证在应用层得到它们吗?
EN

Stack Overflow用户
提问于 2012-06-08 15:33:04
回答 1查看 415关注 0票数 4

首先,我意识到UDP不是一个可靠的协议,也不能保证我可以通过网络接收数据包。

但是,如果数据包确实到达我的机器,我是否可以保证在应用程序级别接收它,或者网络堆栈是否可以将其丢弃而不受惩罚?

我问的原因是,我似乎偶尔会丢失数据包,即使我知道它们在网络上(简单的EtherCAT总线,所以数据包总是循环回来)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-08 16:57:37

不,即使数据包到达您的机器,也不能保证它们会到达您的应用程序。

内核的UDP接收队列是有限的,如果数据包到达的速度超过了应用程序的处理能力,队列将被填满,一些数据包将被丢弃。

您可以增加接收缓冲区的大小(请参阅this question),但不能使其无限制。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10944755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档