zoukankan      html  css  js  c++  java
  • TCP的可靠性

    原因:

    1.确认和重传机制

    2.序列号

    3.流量控制(窗口)

    4.拥塞控制(慢启动,拥塞避免,快速重传,快速恢复)

    http://blog.csdn.net/baidu_35692628/article/details/78255476?locationNum=4&fps=1

    Tcp:1)流量控制:防止较快主机使较慢主机缓冲区溢出,是点对点;2)拥塞控制:  全局性,防止过多的数据注入网络。

    tcp 采用滑动窗口进行流量控制,滑动窗口大小可变,窗口大小的单位是字节。

    发送窗口在连接建立时由双方确定,但在通信过程中,接收端可以根据自己的资源情况, 随时动态的调整对方的发送窗口上限制。

    拥塞控制:慢开始、拥塞避免、快重传、快恢复。

    接收端窗口:这是接收端根据其目前的接收缓存大小所许诺的最新窗口值,是来自接收端的流量控制。接收端将此窗口值放在 tcp 报文的首部中的窗口字段,传送给发送端,是来自接收端的流量控制。

    拥塞窗口:这是发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制。

    当网络发生拥塞时,路由器就会丢掉分组,因此,只要发送端没有按时收到应当到达的确认报文 ack,就可认为网络出现了拥塞。

    发送窗口上限=min{接收窗口,拥塞窗口}。

    慢开始:由小到大逐渐增大发送端的拥塞窗口数值。

    为了防止拥塞,窗口 cwnd 的增长引起网络拥塞,还需要慢开始门限 ssthresh。

    当 cwnd<ssthresh, 使用慢开始算法; 当 cwnd>ssthresh, ,使用拥塞避免算法; 当

    cwnd=ssthresh,既可用慢开始算法也可用拥塞避免算法。

    无论是慢开始还是拥塞避免,只要发送端发现网络阻塞,就将慢开始门限设为出现拥塞时的发送窗口值的一半,然后拥塞窗口为一,并执行慢开始算法。这样做的目的是迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。

    快重传算法规定:发送端只要一连收到三个重复 ack,即可断定有分组丢失,就应该立即重传丢失的报文,而不需要等待为该报文设置的重传计时器超时。

    与慢开始不同,拥塞窗口不设为 1,,而设为慢开始门限+3*mss(mss:最大报文段)。

  • 相关阅读:
    NOIP201208同余方程
    NOIP模拟赛 最佳组合
    NOIP模拟赛 拓展
    CF1253E Antenna Coverage(DP)
    LOJ6033「雅礼集训 2017 Day2」棋盘游戏 (博弈论,二分图,匈牙利算法)
    CF582E Boolean Function(DP,状态压缩,FMT)
    CF750G New Year and Binary Tree Paths(DP)
    Codeforces Round 596 题解
    AGC008E Next or Nextnext(组合计数,神奇思路)
    ARC082E ConvexScore(神奇思路)
  • 原文地址:https://www.cnblogs.com/cing/p/8622545.html
Copyright © 2011-2022 走看看