• 以太网 TCP协议(三次握手、四次挥手)


    2.7.0 以太网 TCP协议(三次握手、四次挥手)

    传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的传输层通信协议。

    面向连接:指使用TCP协议的程序在使用的时候,需要预先进行建立一个数据通信连接。

    可靠:TCP协议在建立的时候需要先进行三次握手,保证对方的可连接性。

    环境介绍:

     1、客户端访问FTP服务器进行下载文件,由于FTP是基于TCP协议进行工作的,所以客户端在访问FTP服务器时必然会进行建立TCP连接。

     2、通过在交换机上对任意端口进行抓包,来分析TCP的三次握手建立连接过程,以及TCP连接断开时的四次挥手过程
    在这里插入图片描述

    一、三次握手过程

    简单描述:

    • 1、客户端主动向服务器》发起FTP访问,激活TCP建立。主动发送SYN置位的TCP报文,意为请求建立TCP连接。
    • 2、服务器收到客户端》SYN置位的TCP报文。回复SYN、ACK置位的TCP报文,意为同意建立TCP连接。
    • 3、客户端收到服务器》回复的SYN、ACK置位的TCP报文,知道服务器同意建立。将回复ACK置位的TCP报文,意为同意建立TCP连接。
      • 服务器收到客户端》ACK置位的TCP报文后,TCP连接建立成功,直接进行发送FTP数据。

    报文交互描述:

    注释:因为主机刚开机,且是第刚进行报文交互,所以Seq报文序号从0开始。

    • 1、客户端主动向服务器》发送Flags-SYN置位1、Seq报文序号0、ack确认序号0、窗口大小8192、源端口2051、目的端口21的TCP报文
    • 2、服务器收到客户端的SYN置位TCP报文》回复Flags-SYN、ACK置位1、Seq序号0、ack确认序号1、窗口大小8192、源端口21、目的端口2051的TCP报文
    • 3、客户端收到服务器的SYN、ACK置位TCP报文》回复Flags-ACK置位1、Seq序号1、ack确认序号1、窗口大小8192、源端口2051、目的端口21的TCP报文
      • 此刻客户端与服务器之间的TCP链路成功建立,立即进行FTP认证交互。

    在这里插入图片描述

    华为官网教材截图(HCIA-02 网络参考模型):

    在这里插入图片描述

    二、四次挥手过程

    TCP客户端主动向TCP服务器发送’QUIT’指令,通知FTP服务器需要断开连接。

    • 1、服务器向客户端发送》Goodbye信息,表示请求与客户端进行断开TCP连接。
    • 2、客户端收到服务器Goodbye信息》回复Flags-ACK置位1的TCP报文,表示收到断开信息,且FTP客户端也开始清除FTP进程。
      • 收到ACK后的时服务器,TCP连接将单向断开。
    • 3、当FTP客户端清除FTP进程之后,向服务器发送Flags-FIN、ACK置位1的TCP报文通知服务器,自己准备好断开连接了,就差你的ACK回复了!
    • 4、服务器收到客户端FIN、ACK置位的TCP报文》回复Flags-ACK置位1的TCP报文,表示收到断开信息。
      • 客户端收到服务器回复的ACK置位报文》此刻双方才真正断开TCP连接。

    在这里插入图片描述

    华为官网教材截图(HCIA-02 网络参考模型):

    在这里插入图片描述

  • 相关阅读:
    图的拓扑序列
    代码随想录算法训练营15期 Day 2 | 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II 、总结
    交换高级特性 —— DTP协商(trunk链路动态协商)+(交换机接口速率+双工模式 协商问题)+ 光接口无法UP常见的原因
    混凝土和砖石设计:IES Quick Suite Crack
    “金九银十”这几天刚整理出炉的两份最全“Java 面试宝典+Java 核心知识集”
    IB数学的备战技巧有哪些?
    【数据结构】栈、队列和数组
    05-5.4.2 树、森林和二叉树的转换
    thinkphp+vue+antpro前后端权限管理系统
    vertx hello gradle 打包jar
  • 原文地址:https://blog.csdn.net/qq_45443704/article/details/128167572