社区
C++ 语言
帖子详情
【引领一个讨论话题:UDP超时重传与确认的实现,讨论结束后前去实现】
qq120848369
2011-09-14 03:57:35
核心概念:
1:超时重传
2:确认
核心问题:
1,发送方包丢失
2,发送方包乱序
3,确认包丢失
4,确认包乱序
设计问题:
一个SOCKET对应一套设施 ?
所有SOCKET对应一个定时器 ?
接收端,发送端分别需要哪些基本数据结构 ?
参考连续ARQ协议进行讨论,有经验人士快支招吧。
...全文
507
52
打赏
收藏
【引领一个讨论话题:UDP超时重传与确认的实现,讨论结束后前去实现】
核心概念: 1:超时重传 2:确认 核心问题: 1,发送方包丢失 2,发送方包乱序 3,确认包丢失 4,确认包乱序 设计问题: 一个SOCKET对应一套设施 ? 所有SOCKET对应一个定时器 ? 接收端,发送端分别需要哪些基本数据结构 ? 参考连续ARQ协议进行讨论,有经验人士快支招吧。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
52 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dfasri
2011-09-15
打赏
举报
回复
只要代码不加注释, 要看懂是很难的了.
架构复杂的代码, 就算注释到处都有, 也是很难看懂的.
有很多特殊的做法, 其目的为的是什么, 这类要推敲的也是很难搞的, 必须经验丰富才能够顺利推敲出来其用意. 放弃研究它, 直接使用它吧, 只要适合用就可以了.
qq120848369
2011-09-15
打赏
举报
回复
[Quote=引用 44 楼 dfasri 的回复:]
引用 41 楼 qq120848369 的回复:
UDT官网有性能展示的,牛逼不解释,API封装的妥妥的,完全膜拜。
具体的性能测试没有吧, 论坛上也找不到, 普遍说点用CPU较高, 而且设计似乎主要用于P2P类型的. 貌似本机测试的性能稍差.
[/Quote]
我也不太了解,源码读的比较痛苦,已经释然了=,=
dfasri
2011-09-15
打赏
举报
回复
[Quote=引用 41 楼 qq120848369 的回复:]
UDT官网有性能展示的,牛逼不解释,API封装的妥妥的,完全膜拜。
[/Quote]
具体的性能测试没有吧, 论坛上也找不到, 普遍说点用CPU较高, 而且设计似乎主要用于P2P类型的. 貌似本机测试的性能稍差.
冻结
2011-09-15
打赏
举报
回复
把TCP简化一下加在UDP上,就是一个可靠的UDP了。
要多可靠,就看减多少东西了。
gold_water
2011-09-15
打赏
举报
回复
路过,顺顶。。。
qq120848369
2011-09-15
打赏
举报
回复
[Quote=引用 40 楼 dfasri 的回复:]
引用 35 楼 qq120848369 的回复:
你去钻研一下UDT源码,我目前在看了。
看过的了, 感觉对我的工程没什么可用之处, 假如你有兴趣, 可以测试一下这个UDT的性能发布一下, 我会非常感激, 目前还在测试自己的服务器, 信心还不是很足够.
[/Quote]
UDT官网有性能展示的,牛逼不解释,API封装的妥妥的,完全膜拜。
dfasri
2011-09-15
打赏
举报
回复
[Quote=引用 35 楼 qq120848369 的回复:]
你去钻研一下UDT源码,我目前在看了。
[/Quote]
看过的了, 感觉对我的工程没什么可用之处, 假如你有兴趣, 可以测试一下这个UDT的性能发布一下, 我会非常感激, 目前还在测试自己的服务器, 信心还不是很足够.
luciferisnotsatan
2011-09-15
打赏
举报
回复
最近 高朋网 不行了,大规模裁员了。
前几月,网上到处都是高朋的广告
luciferisnotsatan
2011-09-15
打赏
举报
回复
前两月还有个新闻,好像南美一对20岁左右的姐弟,建了个myyearbook,1亿美金被收购了。
qq120848369
2011-09-15
打赏
举报
回复
[Quote=引用 36 楼 luciferisnotsatan 的回复:]
引用 32 楼 babilife 的回复:
引用 29 楼 dizuo 的回复:
哎,坛子里搞网络的真多。。。现在感觉网络有点过火了。。。
一般都是项目用到学一下,筒子们除非是专门搞网络的,很难系统的全面接触了解,其实水还是蛮深的
过火的是网站应用,如社交网站,团购网什么的。我也觉得过火了。
网络通信这种,应该不会过火,哪都用得到。
[/Quote]
网络好赚钱~~~~~
luciferisnotsatan
2011-09-15
打赏
举报
回复
[Quote=引用 32 楼 babilife 的回复:]
引用 29 楼 dizuo 的回复:
哎,坛子里搞网络的真多。。。现在感觉网络有点过火了。。。
一般都是项目用到学一下,筒子们除非是专门搞网络的,很难系统的全面接触了解,其实水还是蛮深的
[/Quote]
过火的是网站应用,如社交网站,团购网什么的。我也觉得过火了。
网络通信这种,应该不会过火,哪都用得到。
qq120848369
2011-09-15
打赏
举报
回复
[Quote=引用 31 楼 dfasri 的回复:]
引用 24 楼 qq120848369 的回复:
求指导...求源码.
源码是不可能有的了, 死心吧. 指导的话, 其实我发布或回复的贴子都有相关的流程.
UDP要安全发送, 流程基本上都一至的, 而协议格式也基本上会是一至的. UDP的安全发送是分情况的, 我写的是专门的CS架构UDP. 要发送数据只能够用C, 要接收数据只能够用S的这种专用模式, 跟TCP是一至的, 必须要有……
[/Quote]
你去钻研一下UDT源码,我目前在看了。
downmooner
2011-09-15
打赏
举报
回复
http://zh.wikipedia.org/zh/UDT
这个就是建立在udp协议上,实现了tcp协议特征的应用层协议
downmooner
2011-09-15
打赏
举报
回复
有个开源的udt啊
至善者善之敌
2011-09-15
打赏
举报
回复
[Quote=引用 29 楼 dizuo 的回复:]
哎,坛子里搞网络的真多。。。现在感觉网络有点过火了。。。
[/Quote]
一般都是项目用到学一下,筒子们除非是专门搞网络的,很难系统的全面接触了解,其实水还是蛮深的
dfasri
2011-09-15
打赏
举报
回复
[Quote=引用 24 楼 qq120848369 的回复:]
求指导...求源码.
[/Quote]
源码是不可能有的了, 死心吧. 指导的话, 其实我发布或回复的贴子都有相关的流程.
UDP要安全发送, 流程基本上都一至的, 而协议格式也基本上会是一至的. UDP的安全发送是分情况的, 我写的是专门的CS架构UDP. 要发送数据只能够用C, 要接收数据只能够用S的这种专用模式, 跟TCP是一至的, 必须要有一个Server进行Listen, 有个Client进行Connect才能够通信的.
不是那种: 只要开了一个UDP, 就能够接收能够发送.
ly_littlefish
2011-09-15
打赏
举报
回复
网络哪里都要用到,不会过火的
前段时间做过视频监控就要这个
最后实在是没有头绪,只能用tcp来做
udp也做过一个,但是不如tcp,最后放弃[Quote=引用 29 楼 dizuo 的回复:]
哎,坛子里搞网络的真多。。。现在感觉网络有点过火了。。。
[/Quote]
dfasri
2011-09-15
打赏
举报
回复
[Quote=引用 48 楼 jackyjkchen 的回复:]
楼主啊,如果真搞到UDP也得connect建立连接的地步,何必再用udp呢……
[/Quote]
UDP的connect跟TCP的connect, 意义相差甚远...TCP就是内部connect而已. UDP则是客户端有没有权connect. TCP跟UDP, 哪怕是写安全发送也好, 相差实在太远了.
qq120848369
2011-09-15
打赏
举报
回复
[Quote=引用 50 楼 shenyi0106 的回复:]
这个IM软件的消息传递部分,不要求可靠撒,可靠也没用,就一包一包的,丢了就丢了,(貌似QQ有简单确认);文件传输可以用可靠的,也可以用不可靠的,一包一包发,一包一包确认,效率差些而已;视频语音这个就跟无所谓了,丢了几个包根本不影响它显示
[/Quote]
额.
shenyi0106
2011-09-15
打赏
举报
回复
这个IM软件的消息传递部分,不要求可靠撒,可靠也没用,就一包一包的,丢了就丢了,(貌似QQ有简单确认);文件传输可以用可靠的,也可以用不可靠的,一包一包发,一包一包确认,效率差些而已;视频语音这个就跟无所谓了,丢了几个包根本不影响它显示
加载更多回复(32)
C#的Socket
实现
UDP
协议通信
C#的Socket
实现
UDP
协议通信 CSharp
Socket编程例子
Socket编程例子
UDP
超时
重传
机制
问题来源: 老式方法:
UDP
传输设定
超时
未N秒,发送
一个
请求后等待N秒钟,若
超时
都没有收到
确认
,则重发请求,重发一定次数后便丢弃。 老式方法不合理的原因:由于网络上影响因素的不同,可能RTT差别较大,设定
一个
固定的
超时
时间使资源不能得到合理应用。 较好的方法:根据实测的RTT及其他因素考虑在内来估计
超时
时间。 术语 RTO:
重传
超时
Srtt:平滑化的RTT估算因子 Reevar:平滑化平均偏差估
java
实现
UDP
超时
重传
_
UDP
实现
简单的
超时
重传
UDP
实现
简单的
超时
重传
众所周知~
UDP
是
一个
无连接协议,因此靠它来传输的话是不可靠的,即使是数据包丢失也不会报错。但是,在编写Linux上的socket程序时,却可以用简单的方法,在应用层
实现
超时
重传
,让
UDP
可靠一些。(这次说的方法最好用于两个程序间通信——也许只能用于两台机器通信)首先~我介绍一下Linux下,I/O操作的阻塞模式:在Linux下,I/O操作有四种模式,分别为:阻塞式I/O,...
udp
套接字及应用层
udp
超时
重传
编写
udp
服务器1.注意要点:
udp
是无连接,不稳定,面向数据报的一种传输层协议; 既然他不可靠为什么还要用呢?其一:当应用程序使用广播或多播时只能使用
UDP
协议; 其二:由于他是无连接的,所以速度快 如果一方的数据报丢失,那另一方将无限等待,解决办法是设置
一个
超时
重传
机制; 建立
UDP
套接口时socket函数的第二个参数应该是SOCK_DGRAM,说明是建立
一个
UDP
套接口; 由于
UDP
是无连接
C++ 语言
65,210
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章