社区
网络编程
帖子详情
<100分> 关于UDP通讯超时重发的"时机"问题!!!(顶着有分!)
jiudon
2005-09-27 05:19:34
环境:
udp协议/大文件传输/
问题:
采用时钟来控制超时重发, 感觉效果不理想, 不能根据网络的状况来动态的调整重发的时间!
求:
1. 怎么测试当前网络的状况(延时长短)?<最好有算法描述!丷哈>
2. 一般使用udp协议传数据采用什么样的"重发机制"效果比较好?!
3. 大家讨论"p2p Nat穿越"的时候, 总谈到"cone nat"不能穿透, 那么有没有办法识别nat的类型? 若有,怎么识别?
...全文
767
16
打赏
收藏
<100分> 关于UDP通讯超时重发的"时机"问题!!!(顶着有分!)
环境: udp协议/大文件传输/ 问题: 采用时钟来控制超时重发, 感觉效果不理想, 不能根据网络的状况来动态的调整重发的时间! 求: 1. 怎么测试当前网络的状况(延时长短)? 2. 一般使用udp协议传数据采用什么样的"重发机制"效果比较好?! 3. 大家讨论"p2p Nat穿越"的时候, 总谈到"cone nat"不能穿透, 那么有没有办法识别nat的类型? 若有,怎么识别?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
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站点拷贝文件就是动态计算速度,得出剩下时间。
不归类
2、大数据类型转小数据类型 像大杯子里的水倒进小杯 会出现溢出 4、对象就好像是一张张工牌,工牌的形式早已规定好。类就好比是对象的蓝图,java虚拟机根据蓝图来创建对象。(抽象类或者接口则是留白更多的蓝图) 对象本身已知的事物被称作是实例变量,对象可以执行的动作称为方法。 面向对象的过程:a、找出几个类中的共同部
分
;b、将共同有的特性与方法而提取出新的类。 继而子类可以继承父类的状态与方法,子类覆...
前端面试--111
<script type="text/javascript"> var obj = {} Object.defineProperty(obj, 'txt', { get: function () { return obj },
小青龙的Java面试笔记
计算机网络 一、谈下你对五层网络协议体系结构的理解? 1)应用层 应用层(application-layer)的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程(进程:主机中正在运行的程序)间的通信和交互的规则。对于不同的网络应用需要不同的应用层协议。在互联网中应用层协议很多,如域名系统 DNS,支持万维网应用的 HTTP 协议,支持电子邮件的 SMTP 协议等等。我们把应用层交互的数据单元称为报文。 2)运输层 运输层(transport layer)的主要任务就是负责向两台主机
100
00字讲解TCP协议(确认应答,
超时
重传,三次握手,四次挥手等等众多机制)以及
UDP
协议(
UDP
报文,校验和)
本篇文章主要讲解了TCP报文,确认应答,
超时
重传,三次握手,四次挥手,流量控制,拥塞控制,滑动窗口,捎带应答,延时应答等众多重要机制以及粘包
问题
,TCP和
UDP
的区别总结
TCP/IP协议簇之传输层
文章目录传输层再谈端口号端口号范围划
分
认识知名端口号(Well-Know Port Number)两个
问题
netstatpidof
UDP
协议长链接与短链接
UDP
协议端格式
UDP
的特点面向数据报
UDP
的缓冲区
UDP
使用注意事项基于
UDP
的应用层协议TCP协议TCP协议段格式确认应答(ACK)机制
超时
重传机制连接管理机制如何理解链接?为什么一定要是三次握手?理解TIME_WAIT状态解决TIME_WAIT状态引起的bind失败的方法理解 CLOSE_WAIT 状态TCP以段为单位发送数据滑动窗口流量控制拥塞控制
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章