拥塞原因与代价
情况1:两个发送方和一台具有无穷大缓存的路由器
假设主机A和主机B都以 字节/秒的速率发送数据。A和B的分组通过一台路由器,在容量为 的共享输出链路上传输。该路由器带有缓存,假设有无限大的缓存空间,分组到达速率超过该输出链路的容量时存储入分组。
由于共享链路,分别的吞吐量上限为 ,当发送速率接近 的时候,平均时延会越来越大。
分组的到达速率接近链路容量时,分组经历巨大的时延。
情况2:两个发送方和一台具有有限缓存的路由器
假设分组到达一个已满的缓存时会被丢弃。如果一个包含有运输层报文段的分组在路由器中被丢弃,那么它最终会被发送方重传。
:表示应用程序将初始数据发送到套接字中的速率
:运输层向网络中发送报文段的速率,也被称为网络的供给载荷(含有初始数据或重传数据)
若假设不会发生分组丢失,则吞吐量等于,平均发送速率不会超过
网络拥塞的代价:
- 发送方必须执行重传以补偿因为缓存溢出而丢失的分组
- 发送方在遇到大时延时所进行的不必要重传会引起路由器利用其链路带宽来转发不必要的分组副本
情况3:4个发送方和具有有限缓存的多台路由器及多跳路径
每台都通过交叠的两跳路径传输。
当一个分组沿着一条路径被丢弃时,每个上游路由器用于转发该分组到丢弃该分组而使用的传输容量最终被浪费。
拥塞控制方法
- 端到端拥塞控制:网络层没有为运输层拥塞控制提供显式支持-TCP的拥塞控制
- 网络辅助的拥塞控制:网络层构件即路由器向发送方提供关于网络中拥塞状态的显式反馈信息。可以用一个比特来指示。
- 阻塞分组
- 路由器标记或更新从发送方流向接收方的分组中的某个字段来指示拥塞的产生
网络辅助的拥塞控制例子:ATM ABR拥塞控制
ATM采用面向虚电路的方法处理分组交换,每台交换机都将维护VC的状态即可以跟踪各个发送方的行为并采取特定源的拥塞控制动作。
ABR已经被设计成一种弹性数据传输服务,网络轻载时,ABR服务会充分利用空闲的可用带宽,网络拥塞时,ABR服务会将其传输速率抑制为某些预先确定的最小传输速率
RM:资源管理信元,信元即分组,RM信元用来在主机和交换机之间传递和拥塞相关的信息
ATM ABR拥塞控制是基于速率的方法,发送方明确的计算出所能发送的最大速率,并据此对自己进行相应的调整。提供三种机制从交换机向接收方发送与拥塞相关的信令信息:
- EFCI比特。每个数据信元包含1比特的显示转发拥塞指示比特。如果多个数据信元的EFCI都为1,目的地会将RM信元中的CI比特置为1,并将RM信元回送发送方。
- CI和NI比特。RM信元的夹杂比率是一个可调参数,默认32个数据信元中有一个RM信元。RM中有一个拥塞指示CI和无增长NI比特。轻微拥塞时NI置为1,严重拥塞时CI置为1
- ER的设置。ER是显式速率字段。一个拥塞的交换机也许会降低经过的RM信元中ER字段所包含的值。ER可以被设置为所有交换机的最小支持速率