拥塞代价
- 1.当分组的到达速率接近链路容量时,分组经历巨大的排队时延。
- 2.发送方必须执行重传以补偿因为缓存溢出而丢弃的分组。
- 3.发送方在遇到大时延时所进行的不必要重传会引起路由器利用其链路带宽来转发不必要的分组父本。
- 4.当一个分组沿一条路径被丢弃时,每个上游路由器用于转发该分组到丢弃该分组而使用的传输容量最终被浪费掉了
拥塞控制方法
根据网络层是否为运输层拥塞控制提供了显式帮助,将拥塞控制方法分为两种
端到端拥塞控制:网络层没有为运输层拥塞控制提供显式支持。 通过网络行为观察(如分组丢失与时延)来推断
网络辅助的拥塞控制:网络层构建(即路由器)向发送发提供关于网络中拥塞状态的显式反馈信息。 拥塞信息从网络反馈到发送方通常有两种形式:(1)反馈信息由路由器直接发送给发送方(2)路由器标记或更新从发送方流向接收方的分组中的某个字段来指示拥塞的产生。一旦收到一个标记的分组后,接收方就会向发送方通知该网络拥塞指示。(至少一个完整往返时间)
TCP拥塞控制
TCP必须使用端到端拥塞控制而不是使网络辅助的拥塞控制,因为IP层不向端系统提供显式的网络拥塞反馈。
TCP采用的方法是让每一个发送方根据所感知到的网络拥塞程度来限制其能向连接发送流量的速率。那么有下面3个方面的问题:
1.TCP发送方如何限制它向其连接发送流量的速率?
之前讲到过TCP连接的每一端都是由一个接收缓存、一个发送缓存和几个变量组成。运行在发送方的TCP拥塞控制机制跟踪一个额外的变量,即拥塞窗口(cwnd),它对一个TCP发送方能向网络中发送流量的速率进行了限制。下面的约束限制了发送方中未被确认的数据量,因此间接地限制了发送方的发送速率。