图解TCP协议的三次握手和四次挥手

      最后更新:2022-03-14 16:44:58 手机定位技术交流文章

      确定TCP协议的三个握手和四个波浪。

      • 前言
      • TCP基本概念
      • TCP 条目的第一个格式
      • TCP连接机构(三次握手)
      • 释放TCP连接(四波)
        • 为什么要四次挥手
      • 参考文献

      前言

      本文描述我本人对TCP协议的三节握手和四节手的解释,

      TCP基本概念

      • 贸易点方案是一个以连通性为导向的运输层协定,它以互不连接和不稳定的IP网络服务为基础,提供可削减的服务,为此,在IP数据报告服务的基础上,采取了若干可靠性措施。
      • 主要特点
        • TCP是一项以连接为导向的运输层次协定。
        • TCP连接只能有两个端点(端点),只能是点对点** (一对一)**。
        • TCP提供可靠的服务。
        • TCP允许连续通信。
        • TCP连接是一种虚构的联系,不是真正的身体联系。
        • 面向字节流
          • 在TCP中,“流”是指代表流入或流出过程的字节序列。
          • “网络流”:虽然程序与TCP一个数据块一次互动,但TCP将应用程序提供的数据视为无结构字节流的序列。
            在这里插入图片描述
            在这里插入图片描述

      TCP 条目的第一个格式

      在这里插入图片描述

      • 港口是运输层与应用层之间的服务界面,运输层的再利用和分离功能将通过港口实现。

      • 序列号字段长4字节。在通过TCP连接传输的数据流中,为每个字节指定一个序列号。序列号字段的价值与在这一报告领域交付的数据的第一个字节的编号相对应。 例如,报告字段序列号的实地价值是301。有100字节的信息。这意味着,本报告最初字节编号中的数据为后数=301。Seq=400是序列号的最后字节。

      • 确认编号字段 - 4 字节是预期从以下报告字段接收数据的初始字节编号。如果确认,计数= N 表示所有N-1序列号的数据均成功收到。

      • 数据偏差(即第一部) - 四个位,显示TCP条目的数据从TCP条目开始的距离。“数据偏差”单位为32位(以四个字节计)。

      • 保留外地——6个点——供今后使用,但目前应该是0个点。

      • 紧急 URL - 当 URL = 1 时, 紧急指针字段是有效的。 它提醒系统, 报告中有紧急数据应该尽快提供( 相当于高度优先数据 ) 。

      • 确认 ACK - 只有在 ACK = 1 的情况下才能接受确认编号字段。

      • 发送 PSH (PuSH) - 从 TCP 接收 PSH = 1, 并尽快交付, 而不是等待缓存完全填满 。

      • 调整 RST (ReSet) 大小 - 当 RST=1时,它表明在TCP 连接中发生了重大过失(例如,在重新建立运输连接之前必须放弃连接(由于主机坠毁或其他原因)。

      • 同步 SYN - 同步 SYN = 1 表示连接请求或接收信件的连接 。

      • 终止 FIN( FIN( FINIS) -- -- 用于关闭连接。 FIN=1 信号显示此电文发件人提供的数据已经发送,运输连接必须关闭。

      • 窗口字段 - 2 字节,即对面方以字节设置传输窗口的基础。

      • 在计算测试和在TCP条目之前添加12字节假页眉时,测试和实地测试的范围涵盖第一部分和数据。

      • 紧急指针字段 - 16个地点,显示本报告中有多少字节的紧急数据(本报告中数据前的紧急数据)。

      • TCP最初只给出了一种选择,即报告期最长期限。MSS告知 TCP : “我的缓存在报告字段中可以接受的最大数据字段长度是 MSS 字节。 我不知道我该怎么办。”

      TCP连接机构(三次握手)

      • 握手程序用于建立TCP连接。
      • 握手需要在客户端和服务器之间交换三个 TCP 信息。 这被称为3个字母的握手, 或3次的握手 。
        在这里插入图片描述
        虽然在我们典型的在线对话中,这些都被视为胡言乱语,但显然,这保证了两个人能够相互沟通、接收和及时提供反馈,从而建立了能够可靠地提供服务的联系。
      • 三份报告被用来握握手,主要是为了防止意外发送取消的链接请求部分,造成问题。
      • 如果没有三次握手,可能会发生一些事情。例如:
        在这里插入图片描述

      在这里插入图片描述

      • B 的 TCP 服务器程序首先建造传输控制区块 TCB, 该区块准备接受客户程序的连接请求。
      • A 的 TCP 向 B 发送连接请求电文, 其初始 SYN = 1同步, 序列号后序号为 x, 表示在数据传输时第一个数据字节为 x 。
      • 如经商定,B型TCP在收到连接请求后即回复确认。
      • 在确认报告中,B应设定SYN = 1,ACK = 1,其确认编号 ack = x + 1,及其选定的序列号后数 = y。
      • 当A收到这一段时,他用ACK=1确认给B,确认号是y+1。
      • TCP信息告知高级应用程序已经建立了连接。
      • 在获得东道主A的确认后,B的TCP还告诉高级应用程序,TCP连接已经建立。

      释放TCP连接(四波)

      • 释放TCP连接的程序更为复杂。
      • 数据传输完成后,对话双方可重新连接。
      • TCP连接释放程序发出四次信号,还有人要求4份报纸或4只手握手。
        在这里插入图片描述

      在这里插入图片描述

      • 数据传输完成后,对话双方可重新连接。
      • 申请程序现在向 TCP 发送连接发布信息, 停止数据传输, 并自愿退出 TCP 连接 。
      • A 发送 FIN = 1, 序列号后序号 = u,来自报告第一节,等待B确认。
      • B 发送确认函,确认号为 u+1,序列号为 seconds = v.
      • TCP服务器程序为高级别应用程序提供信息。
      • 从 A 到 B 的连接被解除, TCP 连接是半封闭的。 如果数据被传输, A 仍必须接收它 。
      • 如果B没有向A转发的任何数据,申请程序指示TCP关闭连接。
      • 收到链接释放部分后,必须发送确认文件。
      • ACK = 1,确认号数 = w + 1,以及确认报告中的确认报告中的确认号后序号 = u + 1。

      为什么要四次挥手

      在服务器B从客户A收到FIN信息后,最初应该用一个ACK来回应这个信息。服务端 B 可能有需要处理和发送的数据(通常,但不总是单独发送服务端 B的ACK 和 FIN )。不止一次握手 超过三次握手 因为这是我第一次握手如果服务器 B 无法再次交付数据,刚把FIN的留言发给客户 同意现在关闭连接
      在现实中,你可以连续三次挥手,即将ACK和FIN混为一谈,但在多数情况下,没有。

      参考文献

      [1] 计算机网络,第七版,电子工业出版社,北京,2017年。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/20095.html

          热门文章

          文章分类