博客
关于我
5.8.1 拥塞控制的一般原理
阅读量:276 次
发布时间:2019-03-01

本文共 1536 字,大约阅读时间需要 5 分钟。

  • 网络的资源

    计算机网络中的链路容量(即带宽),交换结点中的缓存和处理机等

  • 拥塞

    若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能会变坏。
    拥塞的条件:∑对资源的需求 > 可用资源

  • 任意增加一些资源,不能解决拥塞问题,可能使网络的性能更坏。

  • 网络拥塞往往是由许多因素引起的。

    如:
    某个结点缓存的容量太小了,到达该结点的分组因无存储空间暂存而不得不被丢弃。
    现在设想将该结点缓存的容量扩展到非常大,于是凡到达该结点的分组均可在结点的缓存队列中排队,不受任何限制。
    但由于输出链路的容量和处理机的速度并未提高,因此在这队列中的绝大多数分组的排队等待时间会大大增加,导致上层软件只好把它们进行重传(因为早已超时了)。
    由此可见简单地扩大缓存的存储空间同样会造成网络资源的严重浪费,并不能解决网络拥塞的问题。
    又如:
    处理机处理的速率太慢可能引起网络的阻塞。
    简单地将处理机的速率提高,可能会使上述情况缓解一些,但往往又会将瓶颈转移到其他地方
    问题的实质往往是整个系统的各个部分不匹配。只有所有的部分平衡了,问题才会得到解决。单纯的增加一些资源并不能解决网络拥塞的问题。

  • 网络拥塞通常会趋于恶化。

    若一个路由器无足够的缓存空间,它就会丢弃一些新到的分组。
    当分组被丢弃时,发送这一分组的源主机就会重传这一分组,甚至可能要重传多次。
    如此会引起更多的分组流入网络和被网络中的路由器丢弃。
    如此拥塞引起的重传并不会缓解网络的拥塞,反而加剧网络的拥塞。

  • 拥塞控制:

    拥塞控制是防止过多的数据注入网络中,使得网络中的路由器或链路不至于过载。
    拥塞控制的前提是:网络能够承受现有的网络负荷。
    拥塞控制是一个全局性的过程,涉及所有的主机、路由器以及与降低网络传输性能有关的所有因素。
    一般TCP连接的端点只要不能收到对方的确认信息,就认为网络中某处发生了拥塞。

  • 流量控制:

    流量控制要做的是抑制发送端发送数据的速率,以便接收端来的及接收。
    往往是指点对点通信的量的控制,只是端到端的问题。

  • 在设计拥塞控制策略时,需要获得网络内部流量分布的信息,全面衡量得失。

  • 如下图:

    横坐标是提供的负载:代表单位时间内输入网络的分组数目。
    纵坐标是吞吐量:代表单位时间呢从网络输出的分组数目。
    1、具有理想拥塞控制的网络:在吞吐量饱和之前网络吞吐量应该等于提供的负载,此阶段吞吐量曲线是45°的斜线;
    当提供的负载超过某一限度,由于网络资源受限,吞吐量不再增长而保持水平线,即吞吐量达到饱和。如此表明提供的负载有一部分损失掉了(如输入到网络的某些分组被某个结点丢弃了)。
    在这里插入图片描述
    2、实际网络情况下,随着提供的负载的增大,网络吞吐量的增长率逐渐减小。即在网络吞吐量还未达到饱和时就有一部分的输入分组被丢弃了。
    当网络的吞吐量明显小于理想的吞吐量时,网络就进入了轻度拥塞的状态。
    当提供的负载达到某一数值(拥塞点),网络的吞吐量随着提供的负载的增大而下降,此时网络进入拥塞状态。
    当提供的负载继续增大到某一数值时,网络的吞吐量就下降到0,网络已经无法工作,此为死锁状态。
    实际的拥塞控制目的是:做到拥塞点右移,随着负载增加,拥塞点晚些到来;一旦到达拥塞点,网络性能急剧下降

  • 从原理上来讲,寻找拥塞控制的方案就是是下列不等式不再成立:

    ∑对资源的需求 > 可用资源
    可以增大网络的某些可用资源,可以减小用户对某些资源的需求。
    采取上述两种措施的任一种都可能造成其它影响。

  • 分组的丢失预示着快要发生网络拥塞了

  • 拥塞控制可以分为开环控制和闭环控制

    开环控制:设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。一旦整个系统运行起来就不再中途进行改正了。
    闭环控制:基于反馈环路的概念。

转载地址:http://cqyx.baihongyu.com/

你可能感兴趣的文章
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>
Metasploit CGI网关接口渗透测试实战
查看>>
Metasploit Web服务器渗透测试实战
查看>>
MFC模态对话框和非模态对话框
查看>>
Moment.js常见用法总结
查看>>
MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
查看>>
mxGraph改变图形大小重置overlay位置
查看>>
MongoDB可视化客户端管理工具之NoSQLbooster4mongo
查看>>
Mongodb学习总结(1)——常用NoSql数据库比较
查看>>
MongoDB学习笔记(8)--索引及优化索引
查看>>
mongodb定时备份数据库
查看>>
mppt算法详解-ChatGPT4o作答
查看>>
mpvue的使用(一)必要的开发环境
查看>>
MQ 重复消费如何解决?
查看>>
mqtt broker服务端
查看>>
MQTT 保留消息
查看>>
MQTT 持久会话与 Clean Session 详解
查看>>
MQTT工作笔记0007---剩余长度
查看>>