<100分> 关于UDP通讯超时重发的"时机"问题!!!(顶着有分!)

jiudon 2005-09-27 05:19:34
环境:
udp协议/大文件传输/
问题:
采用时钟来控制超时重发, 感觉效果不理想, 不能根据网络的状况来动态的调整重发的时间!
求:
1. 怎么测试当前网络的状况(延时长短)?<最好有算法描述!丷哈>

2. 一般使用udp协议传数据采用什么样的"重发机制"效果比较好?!

3. 大家讨论"p2p Nat穿越"的时候, 总谈到"cone nat"不能穿透, 那么有没有办法识别nat的类型? 若有,怎么识别?
...全文
711 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
jiudon 2005-10-21
谢谢各位了, 经过大家的指点,我看了TCP/IP协议的重发机制, 终于搞出来一个比较晚上的解决方案,呵呵!!
回复
skykeen 2005-10-17
1. 怎么测试当前网络的状况(延时长短)?<最好有算法描述!丷哈>
==>取上一次数据发送接收的往返RTT作为参考时间,本次波动时间RT_WAVE(取常量,属经验值,视),则本次网络延时预测为 RT_NOW = a*RTT+(1-a)RT_WAVE [a,RT_WAVE为经验值,取常量,0<=a<=1]

若超时则采用快速递减,若未超时则慢启动(步增一个段),具体方案见 flashboy(爱写程序的小绵羊)的发言

2. 一般使用udp协议传数据采用什么样的"重发机制"效果比较好?!
==>普通是滑动窗口,但其效率不算太高,理解了这个机制,可以在其基础上写自己的选择重传协议


3. 大家讨论"p2p Nat穿越"的时候, 总谈到"cone nat"不能穿透, 那么有没有办法识别nat的类型? 若有,怎么识别?
cone nat 容易穿透的
symmetric NAT很困难,能否穿透看你运气如何啦
如何区分cone,symmetric等NAT类型,你须要看cone,symmetric具体表示什么,明白后是很容易写出检测程序的,建议参考一下 shootingstars那个贴子

大约是这样(实际情况比这复杂):
假如内网一台终端c对于外部节点M,N
M发现c的映射地址为a1:p1
N发现c的映射地址为a2:p2
若a1=a2,p1=p2,则你的NAT为cone型;本型具体还可分IP受限,与Port受限
若p1!=p2(或者a1~=a2)则你的NAT为symmetric型
最完整的测试大约最少需要9个轮回发送接收解析
你需要准备两个外网(相对于内网来说)地址,即M,N
回复
dingpiao 2005-10-17
自己做包一级别的滑动窗口啊
回复
yayaniuniu502 2005-10-07
顶!关注
回复
flashboy 2005-10-06
超时时间可以动态调整的, 这也是TCP实现中的一种标准算法. 大致做法是:
系统中有一个最小超时时间min 和一个最大超时时间max.
 如果当前当前初始化超时时间为n, 如果在发送数据后<n内收到确认, 则对n减小固定步长值m, n=n-m , 并且判断n不能够小于min. 如果n内没有收到确认, 则 n=n+m, 但是要判断n不能大于MAX.

就这样,可以根据网络动态变化情况实现动态调整超时间.
回复
jiudon 2005-09-30
TCP的重发机制我看过了,算法有点复杂,有没有人有类似的简单点的算法啊!!!
回复
tanggt006 2005-09-29
up
回复
胜佑 2005-09-29
看看TCP里的重发机制。
回复
weiziyuner 2005-09-28
1.就是接收字节数除以时间~
2.自己设计包头,用包的序列号。
3.已经有人做了,设计了源代码,好像也不是太准确(对于具体的运用)。
回复
DerryZhang 2005-09-28
UP
回复
load888 2005-09-28
嘻嘻,顶喽
回复
rageliu 2005-09-28
ding
回复
jiudon 2005-09-28
我顶!!1
回复
dingpiao 2005-09-28
忙就不重发了??
回复
zhchyg100 2005-09-27
http://community.csdn.net/Expert/topic/4297/4297692.xml?temp=.9950373
回复
laofang 2005-09-27
发送数据包时计算当前发送速度(发送字节数/所用时间),如果速度低于设定阀值,停止发送,隔一段时间再继续发送,重复此发送过程。

就像windows资源浏览器打开一个ftp站点拷贝文件就是动态计算速度,得出剩下时间。
回复
发帖
网络编程
创建于2007-09-28

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2005-09-27 05:19
社区公告
暂无公告