当前位置:  开发笔记 > 开发工具 > 正文

确保UDP中的数据包顺序

如何解决《确保UDP中的数据包顺序》经验,为你挑选了3个好方法。

我使用2台计算机与一个应用程序发送和接收udp数据报. 当我通过应用程序将文件作为udp数据报发送时,经常
没有流量控制(ICMP禁用)
,我得到2个包改变他们的顺序,因此 - 包丢失.

有没有办法确保winsock和send()将以相同的方式发送数据包?
或者操作系统在做什么?我已经禁用了防火墙,并且计算机之间没有连接硬件开关(它们是直接连接的).需要网络设备配置?
谢谢



1> PaulG..:

UDP是一种轻量级协议,设计上不处理数据包排序等问题.如果您需要强大的数据包传输和排序,TCP是更好的选择.

UDP通常设计用于丢包可接受或优于TCP必须重新请求数据包时发生的延迟的应用程序.因此,UDP通常用于媒体流.

如果您仅限于使用UDP,则必须开发一种识别无序数据包并重新排序的方法.



2> crazyscot..:

UDP不保证您的数据包将按顺序到达.(它甚至不能保证您的数据包将全部到达.)如果您需要这种级别的健壮性,那么最好使用TCP.或者,您可以在数据报中添加序列标记,并在另一端重新排列它们,但为什么要重新发明轮子呢?



3> Steve-o..:
有没有办法确保winsock和send()将以与到达目的地相同的方式发送数据包?

它称为TCP。

或者,尝试使用可靠的UDP协议(例如UDT)。我猜您可能在小型嵌入式平台上,因此您需要像Bell Lab的RUDP这样的更紧凑的协议。

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有