• 【计算机网络】详解TCP协议(下) 滑动窗口 | 流量控制 | 拥塞控制


    创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
    主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
    更多计算机网络知识专栏:计算机网络🔥
    给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

    在这里插入图片描述


    一、滑动窗口

    1.窗口

    窗口是一段被发送者发送的连续的字节序列

    发送多少数据之后进行累计应答,由窗口决定

    窗口大小指⽆需等待确认应答,⽽可以继续发送数据的最⼤值

    窗⼝的⼤⼩通常由接收⽅的窗⼝⼤⼩来决定。
    发送⽅发送的数据⼤⼩不能超过接收⽅的窗⼝⼤⼩,否则接收⽅就⽆法正常接收到数据。

    滑动窗口是一个大小可变的窗口,左右两端方向一致的向前滑动

    2.发送方的滑动窗口

    发送方的滑动窗口主要用于控制发送数据的流量

    窗口的大小由接收方决定,接收方通过TCP头部中的窗口大小字段来通知发送方目前还可以接收多少字节的数据

    在这里插入图片描述

    发送方在收到接收方的窗口大小后,会根据窗口大小来控制发送的数据量

    • 如果窗口大小为0,则发送方将停止发送数据,直到接收到非0的窗口大小通知

    • 如果窗口大小不为0,则发送方可以继续发送数据,但不能超过窗口大小所允许的范围

    3.接收方的滑动窗口

    接收方的滑动窗口主要用于控制接收数据的流量

    窗口的大小由接收方根据自身的处理能力和网络状况来决定,并通过TCP头部中的窗口大小字段来通知发送方

    在这里插入图片描述

    接收方在收到发送方发送的数据后,会将其放入接收缓冲区中,并通过ACK确认号来通知发送方哪些数据已经被成功接收

    接收方在发送确认号时,会将窗口大小字段设置为接收缓冲区中还可以接收的数据量,从而控制发送方发送的数据量

    • 如果接收缓冲区已满,接收方会将窗口大小设置为0,暂停接收数据
    • 直到缓冲区中有足够的空间可以继续接收数据

    二、流量控制

    发送⽅根据接收⽅的实际接收能⼒控制发送的数据量

    流量控制为端到端的控制

    在这里插入图片描述

    三、拥塞控制

    拥塞控制的⽬的是避免发送⽅的数据填满整个⽹络

    只要发送⽅没有在规定时间内接收到 ACK 应答报⽂,也就是发⽣了超时重传,就会认为⽹络出现了拥塞

    出现拥塞的条件:
    对资源需求的总和 > 可用资源

    网络中有许多资源同时呈现供应不足—>网络性能变坏—>网络吞吐量将随输入负荷增大而下降

    拥塞控制:
    防止过多的数据注入到网络中。

    1.慢启动

    慢启动——指数增长

    慢启动的增加的大小是已确认段的数目

    在这里插入图片描述

    达到慢启动⻔限ssthresh,由慢启动转为拥塞避免

    2.拥塞避免

    到达拥塞避免后,每次加1

    在这里插入图片描述
    发生超时重传后:

    将慢启动门限设为超时时的一半,窗口大小重置为1

    在这里插入图片描述

    3.快重传

    当发送方连续收到多个重复的确认应答时,它会立即重传对方尚未收到的报文段,而不必等待重传计时器超时

    标志:收到 3 个重复的 ACK

    快重传快恢复⼀般同时使⽤

    4.快恢复

    当发送方连续收到多个重复的确认应答时,它会将慢启动阈值ssthresh减半,然后将拥塞窗口cwnd设置为ssthresh+3倍的报文段大小,然后开始执行拥塞避免算

    在这里插入图片描述


    在这里插入图片描述

    大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。
    大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●)
  • 相关阅读:
    运算符与运算表达式
    当鼠标移动到table的时候行列都有样式
    Linux常用命令-2
    神经网络的样本要求多大,神经网络只有10个样本
    win11 通过防火墙设置-开通本地端口
    维护香港服务器安全的9个关键措施
    react路由v6版本NavLink的两个小坑及解决
    Anaconda、Conda、pip、Virtualenv的区别
    硬盘插在苹果电脑上显示不出来怎么办? 苹果电脑怎么扩容硬盘?
    Kubernetes(k8s)pod 探针检测
  • 原文地址:https://blog.csdn.net/TiSg0/article/details/133470712