最近又弄了几天的网络编程,主要是基于UDP的,实现了优先级,包的排序,拆分与重组,重传及速度控制等功能。
其中的速度控制机制,个人觉得有点类似于电路中的负反馈机制。 与UDP不同,其中只有一部分是要求可靠传输的,而多数包是不可靠的,因此类似于TCP的速率与慢启动等机制有些不好实现。在实际的实现中采用了接收端定时向发送端反馈实际的接收速度等统计信息来达成控制速度。设置一个合适的初始速度,如果丢包率比较低,则加快发送速度,如果丢包率超过了允许的范围,则降低发送速度。
实际测试,一般发送速度可以稳定在网络能力的上限附近,平均值能接近网络能力的90%~95%, 额外负载就是定时的速度反馈,这个反馈的周期可以根据实际情况确定一个合适的值。
发表于 @ 2007年06月09日 21:15:00|评论(loading...)|编辑