• TCP的流量控制


    TCP协议通过'''滑动窗口(SlidingWindow)'''机制解决这一问题。

    1. 发送端发起连接,声明最大段尺寸是1460,初始序号是0,窗口大小是4K,表示“我的接收缓冲区还有4K字节空闲,你发的数据不要超过4K”。接收端应答连接请求,声明最大段尺寸是1024,初始序号是8000,窗口大小是6K。发送端应答,三方握手结束。

    2. 发送端发出段4-9,每个段带1K的数据,发送端根据窗口大小知道接收端的缓冲区满了,因此停止发送数据。

    3. 接收端的应用程序提走2K数据,接收缓冲区又有了2K空闲,接收端发出段10,在应答已收到6K数据的同时声明窗口大小为2K。

    4. 接收端的应用程序又提走2K数据,接收缓冲区有4K空闲,接收端发出段11,重新声明窗口大小为4K。

    5. 发送端发出段12-13,每个段带2K数据,段13同时还包含FIN位。

    6. 接收端应答接收到的2K数据(6145-8192),再加上FIN位占一个序号8193,因此应答序号是8194,连接处于半关闭状态,接收端同时声明窗口大小为2K。

    7. 接收端的应用程序提走2K数据,接收端重新声明窗口大小为4K。

    8. 接收端的应用程序提走剩下的2K数据,接收缓冲区全空,接收端重新声明窗口大小为6K。

    9. 接收端的应用程序在提走全部数据后,决定关闭连接,发出段17包含FIN位,发送端应答,连接完全关闭。


    syn是该协议中的一个标志位。如果该位被置为1,则表示这个报文是一个请求建立连接的报文。
    ack也是该协议的一个标志位。如果该位被置为1,则表示这个报文是一个用于确认的报文。 





  • 相关阅读:
    oracle基本语句
    java Scanner和异常
    流Stream 文件File 流IO
    java基本方法
    jsp页面展示更加商品的分类,控制商品的显示
    使用jquery select2实现下拉框搜索功能
    JSONObject和JSONArray
    GsonUtils.getGson().fromJson() 转泛型集合用法
    java 实现图片上传功能
    mysql :将其中两个数据的某一个字段合拼成一句
  • 原文地址:https://www.cnblogs.com/bugY/p/2227375.html
Copyright © 2020-2023  润新知