【计算机网络笔记】传输层——拥塞控制原理与解决方法

本文详细介绍了计算机网络的基础概念、数据交换方式、网络性能指标、OSI和TCP/IP模型,重点讨论了拥塞控制原理、与流量控制的区别,以及ATM和ABR拥塞控制方法。通过实例分析了拥塞的成因、代价和解决策略。
摘要由CSDN通过智能技术生成

系列文章目录

什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)——速率、带宽、延迟
计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念
OSI参考模型基本概念
OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍
OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍
TCP/IP参考模型基本概念,包括五层参考模型
网络应用的体系结构
网络应用进程通信
网络应用对传输服务的需求
Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式)
Cookie技术
Web缓存/代理服务器技术
传输层服务概述、传输层 vs. 网络层
传输层——多路复用和多路分用
传输层——UDP简介
传输层——可靠数据传输原理之Rdt协议
传输层——可靠数据传输之流水线机制与滑动窗口协议
传输层——TCP特点与段结构
传输层——TCP的可靠数据传输
TCP连接管理(图解三次握手和四次挥手)



拥塞控制原理

前面学习的可靠数据传输是网络Top10问题之一,这里的拥塞控制也位列Top10。

我们在现实中或多或少可能都经历过拥塞,比如小长假高速堵车,堵车之后这个路就像瘫痪一样,基本上没有什么通行能力了。网络当中也会出现这种情况。

拥塞(Congestion):

  • 非正式定义:太多发送主机发送了太多数据或者发送速度太快,以至于网络无法处理。
  • 拥塞的表现:
    • 分组丢失(路由器缓存溢出)
    • 分组延迟过大(在路由器缓存中排队)

可靠数据传输 vs. 拥塞控制

可靠数据传输更多地考虑端-端的,个体的利益。而拥塞控制更多地是从群体利益角度来考虑。为了大家都能使用网络,这时候大家可能会做出一些牺牲。所以需要一种机制来控制网络负载。当然拥塞控制和可靠数据传输是有很大关系的,大家可以自己思考一下。

拥塞控制 vs. 流量控制

它们是不一样的,流量控制是发送方不要发送的太快太多以致于接收方处理不了。是站在接收方的角度去看的。而拥塞控制是针对接收方与发送方之间的网络的。

拥塞的成因以及产生拥塞的代价

假设这样一个理想的情况:

在这里插入图片描述

用C表示路由器出口的链路的带宽,用λin表示发送方发送数据的速率,用λout表示接收方接收数据的速率。这里假设路由器有无限的缓存,在这种情况下,不管发送方发送的数据有多大有多快,分组是不会丢失的,那么发送方也就不需要重传这个机制的。那在这种情况下,关于吞吐率和时延:

在这里插入图片描述

  • λin不管多大,λout最大就是C/2。也就达到了最大的吞吐量。
  • 而当λin接近C/2,时延快速增大。

可以看到,拥塞的第一个代价就是分组的延迟太大

下面看第二个场景:路由器的链路带宽是R。路由器的缓存是有限的,既然是有限缓存,当数据过多过快的时候就必然会有丢失,那发送方就要重传。引入新符号λin’ ,代表原始数据加上要重传的数据。在这种场景下:

  • 情况a:Sender能够通过某种机制获知路由器buffer信息,这样就当路由器buffer有空闲的时候才发数据。这是分组不会丢,也就不会重传,λin=λin’,λin=λout。并且λin不可能大于R/2。

    在这里插入图片描述

  • 情况b:无法在发送之前提前或追路由器有没有空闲的buffer。这种情况下,确定分组丢失后才重发。λin‘>λin,λin’=λout。这意味着有效的吞吐率变低了。也就造成了网络资源的浪费。

    在这里插入图片描述

  • 情况 c:不仅在确定分组丢失之后重传,而且定时器超时后也重传,所以λin‘变得更大。那么有效吞吐率更低。

    在这里插入图片描述

可以看到,拥塞的代价是需要重传,造成资源的浪费

下面看第三个场景:使用多跳的网络。现在有四个发送方,四个接收方。这样一个路由器会转发来自两个主机的数据,这就可能会发生竞争。并且,在多跳网络中,当分组被drop时,任何用于该分组的“上游”传输能力全都被浪费掉。那么整个网络的吞吐率就变得更差了。

在这里插入图片描述

在这里插入图片描述

拥塞控制的方法

也就是控制发送方的发送速率。

  • 端到端拥塞控制:是端系统来进行。网络层也就是路由器不需要显式的提供支持。端系统通过观察loss,delay等 网络行为判断是否发生拥塞。Internet网络中的TCP采取的就是这种方法。
  • 网络辅助的拥塞控制:路由器向发送方显式地反馈网络拥塞信息,端系统利用这个信息调整自己数据的发送速率。典型的就是ATM网络。

ATM ABR拥塞控制

ATM提供一种叫做ABR的服务。ABR是一种网络辅助的拥塞控制。

ABR:available bit rate。提供弹性服务,如果发送方发现路径的负载比较低,就尽可能地使用可用的带宽,如果发现路径拥塞,就将发送速率降到最低保障速率。

为什么说ABR是一种网络辅助的拥塞控制,是因为在数据传输中(这里传输的是cell而非分组),穿插着RM(resource management 资源管理) cells。它由发送方发送,交换设备能够设置RM cell位(网络辅助体现在这里):NI位代表速率不许再增长,CI位代表拥塞了。RM cell由接收方返回给发送方或者由交换设备直接向发送方发送。这样就能控制发送方的发送速率。

至于Internet网络中的TCP的拥塞控制机制,下一篇文章再具体介绍。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不怕娜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值