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:最大报文段)。

  • 相关阅读:
    浏览器能正常访问的url,superagent不能正常访问
    Reactor模式理解
    牛客网剑指offer 二维数组的查找
    在C语言结构体中添加成员函数
    html页面字体相关
    html页面背景设定相关
    快速排序
    html页面边框的另一种写法
    2018暑期北航软件能力培养师资培训有感
    web.xml文件介绍
  • 原文地址:https://www.cnblogs.com/cing/p/8622545.html
Copyright © 2011-2022 走看看