专注SIP通讯产品与方案

电话网络TCP拥塞控制

TCP拥塞控制
  TCP拥塞控制也采用窗口机制,称为拥塞窗口,窗口大小根据网络拥塞情况动态调整。由于目前通信线路大都采用光纤,误码率极低,报文段重发的原因基本上是传输时延过长,因此可以用超时重发作为网络拥塞的检测标志。
拥塞窗口调整有两种常用算法:
1.慢速起动算法
  拥塞窗口初值置为连接的最大段长。发送方一开始就发送一个最大报文段。如果在定时器到时前收到确认,则拥塞窗口大小加倍、发送方再发送两个最大报文段。一般来说,如果拥塞窗口为n个最大段长,发出n个最大报文段都收到正常确认,则拥塞窗口大小增加为2n;接若如果发出2n个最大报文段后发生超时重传,则拥塞窗口退回n。该算法名为慢速起动,实际上窗口大小呈几何级数增长,速度非常快。这是所有TCP实现必须支持的基本算法。
2.门限算法
  在慢速算法的基础上增加一个门限参数。门限初值为64kB。当发生超时重传时,门限值减为当前拥塞窗口的一半,拥塞窗口复位到一个最大段长。然后用慢速起动算法逐渐加大拥塞窗口。当拥塞窗口大小达到门限值后,转为线性增长,也就是每发出一组长度等于拥塞窗口的报文并正常确认后,拥塞窗口增加一个最大段长。
  图2.40说明这一过程:
拥塞控制的门限算法
设,连接的最大段长为1KB,拥塞窗口初值为64kB,发生超时重传,于是门限减半为32kB,拥塞窗口退为1KB,按慢速起动法儿何增长。至第6次发送时拥塞窗口到达32kB,其后改为线性增长。至第13次发送40kB报文后发生重传,于是门限又减半为16kB,拥塞窗口重新回到1KB,重复以上过程。
  需要指出的是,考虑到拥塞控制后,TCP层有两个窗口:传输滑功窗口和拥塞窗口,前者由接收方根据缓冲区可用空间动态调整,后者由发送方根据重传情况自适应调整。TCP实际允许发送的字节数为两个窗口中的较小值。
用户数据协议(UDP)
  UDP提供的是无连接的运输层服务,过程简单,但不可靠。许多只包含一次请求和一次响应的客户-服务器应用都采用UDP,因为它无需建连和拆连。话音、视频等实时信号传送只能U用DP,因为它们无法重传。
UDP的头部结构如图2.41所示:
UDP段的头部结构
  其长度为8个字节。源和目的端口的意义和TCP相同。由于它们是两个不同的协议(NSAP),因此可以独立分配各自的端口号。如果一个进程既能使用TCP,也能使用UDP服务,一般倾向于在两个协议中分配相同的端口号。UDP长UDP段的头部结构度包括头部和数据部分。UDP校验和的计算和TCP相同,校验对象包括段头部、数据部分和图2.33所示的伪头部。