在传输层工作着两种传输协议:用户数据报协议UDP与传输控制协议TCP。前者简单,只负责数据的发送,提供不可靠的信息传输服务;后者相对复杂,但提供更好的服务质量,不仅可以保证可靠的信息传输还具有拥塞控制机制。传统的TCP协议(Reno)的拥塞控制机制是根据有线的Internet网络的特点而设计的,在有线的网络环境下表现良好,但在相对复杂的无线Ad hoc环境中TCP Reno表现出严重的性能问题。因此,为了使TCP适应MANET随机拓扑的特点,必须对传统的TCP协议进行改进。
一、传统TCP拥塞控制机制
传统TCP的拥塞控制机制 是一个AIMD(AdditiveIncrease Multiplicative Decrease)型的算法,主要采用了四个部分组成,分别是慢启动(slow start)、拥塞避免(congestion avoidance)、快速重传(fast retransmit)和快速恢复算法(fast recovery),TCP的有限状态机如图1所示。
图1 TCP Reno的有限状态机
在初始时,拥塞窗口cwnd(congestion window)被设置为1个最大报文段长度MSS (Maximum Segment Size),cwnd小于慢启动门限ssthresh(slow start threshold),TCP进入慢启动阶段,为了更快地探知网络的可用带宽,发送方每收到一个ACK都会使cwnd加1MSS,使cwnd保持线性的增加;当cwnd增长到大于ssthresh时,TCP的状态进入了拥塞避免阶段,当收到发送窗口内所有数据的ACK信息后使cwnd加1MSS,这样就降低了cwnd增长速度,使其探测出准确的网络可用带宽。当发送端检测到丢包时,认为网络出现拥塞。TCP通过两种方法检测数据报的丢失:定时器发生了超时或连续收到三个或三个以上的重复ACK(dupack)。如果拥塞是由超时引起的,则ssthresh被设为当前cwnd的一半,cwnd被设为MSS,重新进入慢启动阶段;如果拥塞是由重复ACK引起的,则认为网络拥塞并不严重,无需要进入慢启动阶段,执行快速重传算法与快速恢复算法。
二、传统TCP在无线环境中存在的问题
一、传统TCP拥塞控制机制
传统TCP的拥塞控制机制 是一个AIMD(AdditiveIncrease Multiplicative Decrease)型的算法,主要采用了四个部分组成,分别是慢启动(slow start)、拥塞避免(congestion avoidance)、快速重传(fast retransmit)和快速恢复算法(fast recovery),TCP的有限状态机如图1所示。

图1 TCP Reno的有限状态机
在初始时,拥塞窗口cwnd(congestion window)被设置为1个最大报文段长度MSS (Maximum Segment Size),cwnd小于慢启动门限ssthresh(slow start threshold),TCP进入慢启动阶段,为了更快地探知网络的可用带宽,发送方每收到一个ACK都会使cwnd加1MSS,使cwnd保持线性的增加;当cwnd增长到大于ssthresh时,TCP的状态进入了拥塞避免阶段,当收到发送窗口内所有数据的ACK信息后使cwnd加1MSS,这样就降低了cwnd增长速度,使其探测出准确的网络可用带宽。当发送端检测到丢包时,认为网络出现拥塞。TCP通过两种方法检测数据报的丢失:定时器发生了超时或连续收到三个或三个以上的重复ACK(dupack)。如果拥塞是由超时引起的,则ssthresh被设为当前cwnd的一半,cwnd被设为MSS,重新进入慢启动阶段;如果拥塞是由重复ACK引起的,则认为网络拥塞并不严重,无需要进入慢启动阶段,执行快速重传算法与快速恢复算法。
二、传统TCP在无线环境中存在的问题
传统TCP的拥塞避免机制假设由于分组损坏而引起丢失是非常少的(远低于1%),因此,若发