• [计算机网络实验] TCP协议


    [计算机网络实验] TCP协议

    Written by Landasika

    跟踪TCP流

    三次握手四次挥手的过程

    在这里插入图片描述TCP的三次握手标志传输的开始

    在这里插入图片描述服务器向主机发送OK的包并且FIN的值是1,也就是四次挥手的开始,标志着传输的结束。

    跟踪TCP流找到发送的包

    在这里插入图片描述
    选定一个TCP流进行跟踪

    在这里插入图片描述
    可以发现这个是一个GET请求的一个HTTP报文。

    继续分析。
    在这里插入图片描述第一个GET请求是请求这个图片,然后通过tcp传输。
    在这里插入图片描述

    最后GET请求回复OK,表名传输完成。

    在这里插入图片描述找到OK传输完成的HTTP包,选中JPEG的包。
    Ctrl+Shift+O
    在这里插入图片描述
    这里可以查看到传输的图片。

    分析TCP快重传的过程

    主机报文重传是TCP最基本的错误恢复功能,它的目的是防止报文丢失。

    在这里插入图片描述

    在这里插入图片描述

    一般快速重传算法在收到三次冗余的Ack,即三次[TCP dup ack XXX#X]后,发送端进行快速重传。
    为什么是三次呢?因为两次 duplicated ACK 肯定是乱序造成的,丢包肯定会造成三次 duplicated ACK。

    在这里插入图片描述

    在这里插入图片描述

    分析TCP重传过程

    在这里插入图片描述
    这个地方网络异常导致重传,观察第一个包发现校验和是并没有校验的。
    那么就是包丢失,进行超时重传。
    超时重传,如果一个包的丢了,又没有后续包可以在接收方触发[Dup Ack],或者**[Dup Ack]也丢失**的情况下,TCP会触发超时重传机制。
    在这里插入图片描述

    分析TCP累计确认过程

    访问一个网站,随便跟踪一个TCP流
    在这里插入图片描述TCP的三次握手标志传输的开始

    在这里插入图片描述

    本机向服务器发送序号为1,长度为410字节的TCP段。同时期望收到序号为1的数据。

    在这里插入图片描述

    服务器确认收到序号为1的字段,并发送长度为0字节的TCP字段,告诉服务器,表示我已经收到确认了。

    在这里插入图片描述
    服务器向本机传输数据,希望得到序号为411的确认包

    在这里插入图片描述
    主机向服务器发送序号为411,希望得到序号为13601的确认包。告诉服务器,你之前发送的数据我都接受到了。

    在这里插入图片描述服务器继续向主机发送数据,期望得到序号为411的确认包。

    在这里插入图片描述服务器向主机发送OK的包并且FIN的值是1,也就是四次挥手的开始,标志着传输的结束。

  • 相关阅读:
    某商业银行关键系统应用场景存储选型运维实践
    Python傅立叶变换
    半边数据结构【Half Edge】
    接口请求一次成功,一次失败,50%成功率
    Python学习:获取对象信息
    solidworks导入stl保持为曲面且可编译的注意项
    IP地址详解 IP地址的分类
    openvino多输入多输出动态尺寸样例记录
    asio中的定时器steady_timer和deadline_timer
    sql注入(其他)
  • 原文地址:https://blog.csdn.net/Jeff_12138/article/details/125434070