社区
网络通信/分布式开发
帖子详情
UDP包过大,如何解决多次发送,接收问题?
lxj_com2006
2007-02-28 10:13:01
UDP包过大,如何解决多次发送,接收问题?
...全文
1257
7
打赏
收藏
UDP包过大,如何解决多次发送,接收问题?
UDP包过大,如何解决多次发送,接收问题?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xxc028
2007-03-03
打赏
举报
回复
zhangxuyu1118(zxy)
对你的方法我很欣赏,你有没有具体代码拿出来让我学习一下
小呆之家
2007-03-02
打赏
举报
回复
用“滑动窗口”方法是比较好的。
数据包定义:
起始字节,总包数,包号,包长度,数据区,CRC,结束字节
应答包定义:
起始字节,总包数,包号,接收结果,CRC,结束字节
constantine
2007-02-28
打赏
举报
回复
即使用TCP也一样要考虑协议的问题,包的格式还是要定义的,而且同样有MTU的限制,差别不大
constantine
2007-02-28
打赏
举报
回复
head+body
包头需要包括一些描述性的东西,比如包的类型,包的编号,甚至子编号,结束标记之类...
body就是你要发送的具体内容
把【head+body】当一个包发送,接收端先读取包头,判断类型区分处理,然后就是根据包头进行读取包身内容进行处理,没有收到结束标记不用停。
udp的包一般不1k多点就行了,太大会受MTU限制,路由要重新拆包,没有效率,太小也一样。
numbbb
2007-02-28
打赏
举报
回复
建议用TCP/IP传输
zhangxuyu1118
2007-02-28
打赏
举报
回复
自定义协议,分包处理。
我的方法是:
协议:包头 + 包类型 + 包内容 + 包尾。
分包处理:首先发送包:描述包的ID、大小、分几次发送等内容;
然后分批发包(包序号、大小、内容);
然后发送发完标志;
然后是检查包的完整性,
然后请求重发,
最后拼包
dragonki
2007-02-28
打赏
举报
回复
你发送的数据包,应该有个定义有一个固定长度的包头,接收取数据,先读出来,里面应该有本次发送数据的总长度,然后就等接收剩下的数据或超时了。
UDP
解决
丢包
问题
总结
收包率低/丢包率高的原因分析 (1) 缓存太小,不能及时
接收
数据。 连续多个
UDP
包超过了
UDP
接收
缓冲区大小 ,比如: 如:
UDP
包过
大 如:
UDP
发包速率过快,突发大数据流量超过了缓冲区上限 (2)recvfrom()
接收
到数据之后处理速度太慢 如果数据
接收
和处理是连续进行的,那么可能由于数据处理过慢,两次recvfrom调用的时间间隔里发过来的包丢失 对应的
解决
方法 UD...
面试:TCP/
UDP
如何
解决
丢包
问题
?
目录TCP传输协议中如何
解决
丢包
问题
首先TPC为什么会丢包?如何
解决
TCP丢包的
问题
UDP
丢包的
问题
一、主要丢包原因
解决
UDP
丢包的
问题
TCP传输协议中如何
解决
丢包
问题
首先TPC为什么会丢包? TCP是基于不可靠的网路实现可靠传输,肯定会存在丢包
问题
。 如果在通信过程中,发现缺少数据或者丢包,那边么最大的可能性是程序
发送
过程或者接受过程中出现
问题
。 如何
解决
TCP丢包的
问题
TCP协议丢包后,如何
解决
丢包的
问题
为了满足TCP协议不丢包。TCP协议有如下规定: 数据分片:
发送
端对数据进
udp
丢包原因和
解决
一、主要丢包原因1、
接收
端处理时间过长导致丢包:调用recv方法
接收
端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改
接收
端,将包
接收
后存入一个缓冲区,然后迅速返回继续recv。2、
发送
的包巨大丢包:虽然send方法会帮你做大包切割成小包
发送
的事情,但包太大也不行。例如超过50K的一个
udp
包,不切割直接通过send方法
发送
udp
协议本身是否能确保数据报的
发送
和
接收
顺序?_TCP和
UDP
首先强调一点,TCP/IP协议是一个协议簇。里面包括很多协议的,
UDP
只是其中的一个, 之所以命名为TCP/IP协议,因为TCP、IP协议是两个很重要的协议,就用他两命名了。两个协议的区别实际使用时,只需要记住“TCP正常连接
发送
数据时一般不会产生丢包(排除上下层其他因素),而
UDP
产生丢包是很常见的事。”1 下面着重讲解一下TCP协议和
UDP
协议的区别1、基于连接与无连接;2、对系统资...
【Socket】
解决
UDP
丢包
问题
UDP
(用户数据报协议)是一种无连接的传输层协议,因其不保证数据包的顺序到达和不具备内置重传机制,导致在网络拥塞、
接收
缓冲区溢出或
发送
频率过快等情况下容易出现丢包现象。为应对这些
问题
,可以在应用层实现重传机制、使用前向纠错码等方法。这些方法在一定程度上可以缓解
UDP
通信中的丢包
问题
,提高数据传输的可靠性和效率。
网络通信/分布式开发
1,594
社区成员
32,958
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章