计网基础-传输层之流量控制和拥塞控制

UDP无流量控制和拥塞控制,因此,我们主要讨论的是TCP的拥塞控制和流量控制,并要注意两者的区别。

 

拥塞Congestion

太多发送主机发送了太多数据或者速度过快,以至于网络无法处理

表现:

- 分组丢失(路由器缓存溢出)

- 分组延迟过大,甚至导致路由器不可用(在路由器缓存排队)

 

Q:rdt(可靠数据传输)已经解决了分组丢失的问题,为什么要学习拥塞控制?

A:这是两个不同的问题,rdt解决的是端到端,针对个体利益的角度,使用确认、重传机制;拥塞控制是社会机制,从群体利益角度,使得每一个主机做出一定的牺牲,采用某种机制来控制整个网络的负载。

 

Q:流量控制和拥塞控制有什么不同?

A:流量控制是发送方不要发送的太快,导致接收方处理不了;而拥塞控制是不要让整个网络处理不了

 


 拥塞的成因和代价

1. 两个senders,两个receivers,一个路由器(无限缓存),没用重传

导致:

C为带宽bandwidth,in和out是速率

- (右图)拥塞时分组延迟delay太大

- (左图)达到最大throughput吞吐量,<C/2时,线性增长,直至达到maxC

 

2. 一跳/一个路由器(有限的缓存),sender可以重传分组

导致:

备注:

- 情况b,不能提前获知路由器的缓存信息,只能通过确定丢失才重传

- 情况b相对于a,意味着有效的吞吐量降低了,由于拥塞,由于丢失,需要重传,(网络资源是有限的)造成了网络资源的浪费

- 情况c,不仅确定分组丢失之后才重传,而且会等待一定时间后重传,这时候将有更多的重传,所以吞吐量更低了

 

3. 四个sender,多跳/四个路由器(有限缓存),超时/重传

 导致:

红线绿线竞争,都要使用R2,由于拥塞,吞吐量也变低了,会造成不断的丢失

Q:假如红线已经在前一个路由器正常转发,但是到达R2后由于竞争拥塞,则会产生什么代价?

A:相对于一跳,多跳拥塞会产生另一个代价——任何用于该分组的”上游“传输能力全被浪费

前半段:in速率和out速率线性增加

后半段:当in速率增大到一定程度的时候,out速率基本等于0——>大家都在往里面发数据,但是,几乎没用数据被正确的接收,意味着网络瘫痪了/网络所有的资源都被浪费掉了

 

 


 

进行拥塞的控制,解决拥塞产生的代价

传输层或者网络层进行控制/管制数据、网络的负载(成因)

 

方法(2种)

- 端到端的拥塞控制(在传输层,TCP就是使用这种方法)

网络层或者网络层的设备,比如路由器路由器并不需要显式的支持,而是端系统通过管制/控制自己的发送速率,通过观察loss、delay等网络行为判断是否发生拥塞

 

- 网络辅助的拥塞控制(在网络层,典型的ATM就是使用这种方式)

路由器向发送方显式的反馈网络拥塞信息

简单的拥塞指示(1bit):SNA、DECbit、TCP/IP ECN、ATM

指示发送方应该使用何种速率

 

 

 

 

 

 

posted @ 2018-06-19 16:15  hoanfir  阅读(715)  评论(0编辑  收藏  举报