社区
网络编程
帖子详情
udp编程发送端丢包问题?
space_006
2011-12-18 04:36:06
参加论文答辩,老师提了个发送端丢包的问题。
socket会有缓冲区,网卡也有缓冲区,如果发送端socket提交数据速率过快,可能会冲掉网卡缓冲区里的内容,导致丢包。
有什么措施可以防止丢包呢?或者应该查阅下哪方面的资料呢?以前没有留意过这个问题。
...全文
245
9
打赏
收藏
udp编程发送端丢包问题?
参加论文答辩,老师提了个发送端丢包的问题。 socket会有缓冲区,网卡也有缓冲区,如果发送端socket提交数据速率过快,可能会冲掉网卡缓冲区里的内容,导致丢包。 有什么措施可以防止丢包呢?或者应该查阅下哪方面的资料呢?以前没有留意过这个问题。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kyotrue
2011-12-20
打赏
举报
回复
这个没研究过。。。不过网卡缓冲区是网卡驱动管理的,看驱动程序怎么处理了
雪狼__
2011-12-20
打赏
举报
回复
不可靠传输,丢包重发
zhongguoren666
2011-12-19
打赏
举报
回复
楼上都没有个正解呀,在误导人家呀。
UDP本身丢失数据包是可能的,跟网络有关的。
但是如果是非常重要的数据可以这样处理:应答包(自己定义),如:@数据包ID|1。
也就是说你给客户端发送发送后,他接收到后,给你发送应答包,当你收到应答包后,就不再给客户端发送了。
否则一直发,或是设定发送时间或次数。
fishion
2011-12-19
打赏
举报
回复
[Quote=引用 3 楼 space_006 的回复:]
引用 2 楼 yupeng1949 的回复:
TCP一般不会发生丢包,除非window buffer填满了,可以在send时检查对方是否可写
用UDP 丢包是无可避免的。可以使用超时重发,或者每次发送加确认,百度udp丢包应该就有很多资料啦。
不是这个意思,老师的意思是数据包在发送端就已经丢了,在提交给网卡的缓冲区时没有提交成功,没有发出去,而不是在网络传输的过程中丢包。
[/Quote]
就是得让对方进行确认返回你就知道有没有丢包了。当然你说“交给网卡的缓冲区时没有提交成功”那应该可以检测sendto的返回值看看
enic
2011-12-19
打赏
举报
回复
[Quote=引用 3 楼 space_006 的回复:]
引用 2 楼 yupeng1949 的回复:
TCP一般不会发生丢包,除非window buffer填满了,可以在send时检查对方是否可写
用UDP 丢包是无可避免的。可以使用超时重发,或者每次发送加确认,百度udp丢包应该就有很多资料啦。
不是这个意思,老师的意思是数据包在发送端就已经丢了,在提交给网卡的缓冲区时没有提交成功,没有发出去,而不是在网络传输的过程中丢包。
[/Quote]
你们老师SB了,或者你没理解,,,
在本地发送端是可以根据函数返回值判断的,如果出现这种情况返回值会异常了,,,
只要本地返回值无异常,就应该相信系统。
否则你还有什么可信?
quwei197874
2011-12-18
打赏
举报
回复
发心跳包检测,重发
space_006
2011-12-18
打赏
举报
回复
[Quote=引用 2 楼 yupeng1949 的回复:]
TCP一般不会发生丢包,除非window buffer填满了,可以在send时检查对方是否可写
用UDP 丢包是无可避免的。可以使用超时重发,或者每次发送加确认,百度udp丢包应该就有很多资料啦。
[/Quote]
不是这个意思,老师的意思是数据包在发送端就已经丢了,在提交给网卡的缓冲区时没有提交成功,没有发出去,而不是在网络传输的过程中丢包。
YuPeng1949
2011-12-18
打赏
举报
回复
TCP一般不会发生丢包,除非window buffer填满了,可以在send时检查对方是否可写
用UDP 丢包是无可避免的。可以使用超时重发,或者每次发送加确认,百度udp丢包应该就有很多资料啦。
Eleven
2011-12-18
打赏
举报
回复
需要自己加个校检机制,或者可以参考UDT,Google一下啊
QT网络
编程
概念与实践
QT网络
编程
概念与实践视频课程, 讲解了以下技术主题: TCP
编程
概念与实践
UDP
编程
概念与实践 网络文件传输
编程
概念与实践, HTTP客户
端
编程
概念与实践 WebSocket
编程
概念与实践 通过学习这个课程,您将获得以下QT...
UDP
丢包
问题
详解
UDP
丢包
问题
详解
UDP
包过大,缓存太小,不能及时接收数据。
UDP
发包速率过快,突发大数据流量超过了缓冲区上限recvfrom()接收到数据之后处理速度太慢最复杂的方式
UDP
包过大,缓存太小,不能及时接收数据。 解决方法:...
Qt网络
编程
中
UDP
套接字
丢包
问题
然而,有时候会遇到
UDP
套接字
丢包
的
问题
,即
发送
的数据在传输过程中丢失了一部分或全部。然而,需要注意的是,以上方法仅仅是一些简单的示例,实际应用中可能需要更复杂的处理逻辑来应对不同的网络环境和数据传输...
UDP
接收
端
缓冲区和
丢包
问题
实习项目需要用Winsock内核模式驱动提供的sockets方法,,这...通过测试发现,
发送
端
是相机,采用
udp
协议,
发送
的图像数据包有3428个,并且通过wireshark抓取到全部的包,但是接收
端
只能接收到3000个包左右,出现了
丢包
UDP
主要
丢包
原因及具体
问题
分析
UDP
主要
丢包
原因及具体
问题
分析 一、主要
丢包
原因 1、接收
端
处理时间过长导致
丢包
:调用recv方法接收
端
收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章