zoukankan      html  css  js  c++  java
  • 对TCP/IP协议的一些看法(11):窗口

    在TCP首部的格式中,有一个窗口值,它包括发送窗口和接收窗口。发送窗口即发送方一次所能发送的数据大小。若一次发送的数据太小,则效率太低;反之接收方如果不能接受所有数据,就会将其丢弃。因此收发双方在进行数据传输前要协商好所传输的数据大小,可以通过SYN报文来调节。

    此外发送方处还有滑动窗口的概念,它的作用如下:原本发送方发送一个数据后要等待接收方的确认后才能发送下一个数据,但这样效率太低,滑动窗口允许发送方在接收到确认之前发送多个数据报文,然后接收方用一个报文来对之前收到的所有报文进行确认。这种确认方法叫捎带确认,即piggyback。这样可以减少网络的流量。

    窗口大小为16位,因此一次最多能传输的数据量为65535字节。决定滑动窗口的大小的因素包括网络带宽、可靠性及需要传输的数据量。若窗口大小变为0,则表示发送方不能再发送数据。除了滑动窗口之外,还有一个拥塞窗口,用于进行拥塞控制。拥塞控制的作用是防止过多的数据流入网络。拥塞窗口的工作原理如下:

    1.当建立连接时,发送方将拥塞窗口大小初始化微该连接所用的最大的数据包长度值,并随后发送一个最大长度的数据包。

    2.若数据报在定时器超时前得到确认,那么发送方将拥塞窗口的大小再增加一个数据包的长度,然后发送两个数据包。

    3.若数据报在定时器超时前得到确认,那么发送方将拥塞窗口的大小再增加一个数据包的长度,然后发送三个数据包。

    4.重复上述步骤,直到所有N个数据包都得到响应。

  • 相关阅读:
    静态邻接表dijkstra
    最短路径系列【最短路径、哈密顿路等】
    python 给多人发送邮件,且将结果添加为附件
    Excel调换数据位置
    try ... except...,好处是执行失败后,仍然可以继续运行
    制作表头,2种方式
    工资表变工资条,2种方式
    C言语教程第一章: C言语概论 (4)
    从红旗5.0说起——看Linux的内存解决
    红旗Linux桌面4.1文本安装历程图解(二)
  • 原文地址:https://www.cnblogs.com/elninohjh/p/4243992.html
Copyright © 2011-2022 走看看