zoukankan      html  css  js  c++  java
  • 网络拥塞和死锁

    什么是网络拥塞?

      网络拥塞是数据链路层、网络层、传输层都会考虑的问题。与流量控制相比,是全局的概念,流量控制是针对点对点的,二网络拥塞可能是大量的发送消息来不及处理,导致网络性能下降。

    严重时甚至导致网络通信业务陷入停顿,即出现死锁现象。

    判断网络是否进入拥塞状态的方法?

      网络负载增加,但是网络的吞吐量明显小于正常的吞吐量。

    网络拥塞的原因?

     1)大量分组涌入,到达同一个分组。

     2)路由器处理比较慢,存在大量的缓冲区排队。

    防止拥塞的方法

      1)数据链路层:停止-等待协议,滑动窗口协议。

      2)网络层:

      3)传输层:

    TCP拥塞控制的算法

      慢开始,拥塞避免,快重传,快恢复。

     

      慢开始

      TCP刚连接好并开始发送TCP报文段时,先令拥塞窗口 cwnd = 1。

      然后每经过一个RTT,cwnd就会加倍,指数式增长,直到达到慢开始门限。

      拥塞避免

      每经过一个RTT,cwnd就会增加一个 MSS,线性增加。

      超时,慢开始门限减半,(乘法减少)

      网络拥塞的处理

      发生超时的时候,拥塞窗口 cwnd = 1,慢开始门限减半为发生拥塞时的拥塞窗口。

      快重传

      更早地重传丢失的报文段。发送方连续收到三个重复的ACK报文(失序),可以认为网络可能已经出现了拥塞,直接重传不必等待重

      传计时器超时。

      快恢复

      发送方连续收到三个重复的ACK报文,cwnd = 1/2(发生拥塞的拥塞窗口),窗口线性增加。

      总结:

      慢开始和拥塞避免是针对超时;收到冗余ACK,采用快重传和快恢复。

      

      

  • 相关阅读:
    javascript学习笔记-数据类型
    chrome console.log API
    Mysql下SELECT的结果集作为UPDATE的WHERE条件时的SQL语法
    Ajax、Comet、Websocket、SSE
    Model View Controller(MVC) in PHP
    区别Transform、Transition、Animation
    WAI-ARIA无障碍网页应用属性完全展示
    理解 PHP output buffer
    清除Jquery动画的队列
    git常用命令
  • 原文地址:https://www.cnblogs.com/juanzhi/p/12813619.html
Copyright © 2011-2022 走看看