• [计算机网络实验] 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,也就是四次挥手的开始,标志着传输的结束。

  • 相关阅读:
    Java GUI图形编程 使用awt和swing 制作简易计算器的工具包含源码和讲解 / java练习项目
    【威纶通触摸屏 按键保护(元件安全设置)】
    【MyBatis框架】动态SQL
    使用map函数,对list中的每个元素进行操作 好像不用map
    linux系统docker的使用命令
    计算机视觉的应用13-基于SSD模型的城市道路积水识别的应用项目
    虚拟摄像头驱动程序彻底分析
    Java集合之List
    工业物联网关-整体框架
    【面试题】sychronized
  • 原文地址:https://blog.csdn.net/Jeff_12138/article/details/125434070