TCP协议

      最后更新:2022-04-17 06:34:17 手机定位技术交流文章

      一.TCP协议

      传输控制议定书(TCP, 传输控制议定书)是一份以字节为基础的传输层通信议定书,是相互联系和可靠的。

      特点:

      1)基于流的方式;

      (2) 连接(对话前需要三次握手)

      (3) 可靠的通信方法;(确保数据不丢失)

      (4) 降低系统带宽费用,因为当网络状况不佳时再传送;(人群控制)

      (5) 通信连接的维持针对两个通信端点,独立于中间段或节点。

      由于交通拥挤管理和可靠的数据传输的必要性,TCP协议的效率低于UDP,尽管效率不如UDP。

      二. TCP 议定书演示格式

      在这里插入图片描述

      让我们首先界定港口号及其作用:首先,我们必须理解,当两个不同的东道方之间的进程应该完成沟通时,它就是通过插座(内建接口)完成的。在同一主机上,Socket作为应用层与运输层之间的接口。对于发送端,数据从应用层传送到套接字,然后传送到传输层。在接收端,数据通过插座从传输层读取。正在发送到应用程序层 。

      那么问题来了,当一个软件包接收或提供数据时,我们如何确定服务的性质?这是一种电子邮件服务因此,开发了港口号(港口),以确定个别服务。这表明,某一港口号是指某一特定服务。另一方面,袜子则用于通过指定不同的港口号来分散服务。

      一. 源端口号:电文发送端口。

      2. 目的地港口号:收到信息后,立即指定目的地港口号。

      三号序列号(Seq)和确认号(ack):这两个领域及其在TCP可靠数据交付中的重要性。

      序号(序列号):传输电文数据组成部分的每个字节在TCP传输期间传输结束时的字节中都有其编号。

      序号(序列号)和SYN控制符号(控制)的含义。
      Bits 值很重要。 取决于控制符号( 控制比特) 中的 SYN 是否为 1, 序列号( 序列) 将有所不同 。
      校对:Portnoy

      (1) 当SYN = 1发生在连接形成阶段时,序号为初始ISN(序号)。
      使用算法随机生成序列号;

      (2) 当数据传输开始时SYN=0时,初次提交的编号为ISN+。
      1,后面的报文的序号,是先前提交材料的SN值加上TCP提交材料的净字节(不包括TCP的头部)。比如,如果发件人的TCP框架净值为12字节,序号为5,然后当下一个数据包由发送者发送时,序号数值应定为5+12=17。

      核实序列号:

      如果ACK控制位置已经就位,则确认的序列号值表示将要收到的物品的序号,同时铭记它与将要收到的货包有关,即将交付的下一个产品的序号。

      4.控制标志位

      控制符号( 控制)
      Bits含有六位元,标记如下:URG、ACK、PSH、RST、SYN、FIN。 6个标记的解释见下表。
      URG占1位,此值表示紧急指针字段在活动。在URG表示时,上项(数据)被标为“紧急”数据。当URG=1时,下一个紧急指针提供紧急数据在当前数据字段中的位置(相对于当前序列号的字节偏差,这是数据编号变化的结果)。要求TCP接收器向高级别实体发出警报。
      ACK占1位,ACK=1 表示确认号字段是合法的;根据TCP协议,对于所有建立后的联系人, ACK必须是 1; 当ACK = 0,该数据带不包含任何确认信息。当ACK=1时,该条指出,该条包括成功接收文本的经确认的序号 " 致谢号 " 。序号也是划界案预测的序号。
      有了PSH=1,接收者在收到数据后立即将数据转移到上层,而不是等待整个缓冲区满员。
      RST 占据一个空格; RST=1 表示移动 TCP 连接; 它被用来重置已经混淆的连接, 也可以用来拒绝错误的数据段或连接请求。 如果数据段设置在 RST 空格上, 则表示与发送者有错误 。
      SYN占1位,链接建立后,序列号同步。如果SYN=1和ACK=0,则使用SYN=1和ACK=0。这表明这是一个连接请求。如果另一方同意,建立联系是可行的。在答复报告中,使用了SYN=1和ACK=1。 综合一下,SYN 1表示它是连接请求或电文接收连接。
      当 FIN = 1 时, 显示电文发件人的数据已经发送, 并请求发布连接。 当 FIN = 2 时, 显示电文发件人的数据已经发送, 已要求发布连接 。

      如果在连接的三节握手中只有单一的SYN存在,它只是请求形成连接。如果SYN和ACK都设定为1,它表示连接创建后的反应。

      5.窗口大小:

      此字段用于交通管理,长16位元,共两个字节。字节数为流量控制的字节数,即最后预计会收到的字节数。

      6.检验和:

      检查并计算完整的TCP提交材料,即TCP头和TCP数据,接收端用于验证收到的数据包。

      三. TCP 三指握握手和四指波

      三次握手过程
      建立TCP连接需要双方进行三次握手,具体如下:

      (1) 客户到达SYN-Sent州时,首先握手。发送 SYN 包以主动打开传输频道 。框架上的 SYN 表示设为 1 。在此期间,客户的SN序列号将随他携带。Sn 是一个取决于时间的随机值 。一般而言,每4毫秒乘以1乘以4毫秒。除此之外,MMS(报告期最长期限)也是SYN框架中的一个可选变量。表示客户可以发送的最大数据区块长度。

      (2) 第二次握手:收到SYN框架后,服务器用它作为工具。将使用 SYN_RCVD。同时,他们又回到Clit的SYN+ACK框架。首要目标是通知客户。#服务员收到SYN软件包。现在需要进行确认。服务器 SYN+ACK 传输的 ACK 标记设置为 1 。确认编号 AN(确认)
      该号码设置在客户端的 SN+1 上,SYN+ACK的SYN标识设置在 1 上。SN值表示从服务器端创建的 SN 序列号,而SYN+ACK 框架的MSS(报告期最长长度)代表服务器端生成的数据块的最大长度。

      (3) 第三次握手:Clit在第二次握手期间得到了服务器SYN+ACK确认。第一步是将您的身份从 SYN_Sent 转换为建立 。连接频道已经有效地形成,显示它正在朝着它的方向前进。现在客户端可以向服务器提交数据 。然后,Clit将确认框架传送给服务器。ACK框架的ACK标记设置为 1 。确认编号 AN(确认)
      在服务器端端,数字值被设置为 SN 序列号+1 。 在另一种情况下,客户可以将ACK 框架与第一个框中将交付的数据合并,并联合发送到服务器端。

      (4) 在一天结束时,在收到Clit的ACK框架后,服务器它将从SYN_RCVD阶段发展到建立状态。至此,服务器方向的频道连接已成功创建 。数据可从服务器发送到客户端 。TCP的全时双人连接已经建立。

      三次握手的图解
      以下图表描述了三个互动式握手过程:


      在这里插入图片描述

      双方在客户端和服务器三次握手后开始数据传输阶段,在数据传输完成后,将切断连接,断开连接的过程需要四波波。

      TCP的四次挥手
      在商业数据传输完成后,TCP连接开始断开(或拆开)程序,其中每个端的连接都可以单独和主动地启动,以及断开程序,其中TCP协议采用四道波波操作完成商业数据传输,TCP连接开始断开(或拆开)程序,其中每个端的连接可以单独和主动地启动,以及断开程序,其中TCP协议采用了四道波操作。

      四次挥手具体过程
      产生了四个不同的波,如下所示:

      (1) 第一波:主动断开(可能是客户端或服务器),向对方发送FIN关闭请求电文,该电文设为1,并适当设定为 " equience " 。
      确认和编号(序列号)
      编号 。 一旦发送完成, 主动断开器将进入 FIN_ WAIT_ 1 状态, 表明它没有可相互交流的业务数据, 并准备关闭 SOCKET 连接 。

      (2) 第二波:通常,在收到活跃的分裂方要求FIN分手的请求后,被动的分裂方发出ACK回信 " 确认 " 。
      号码(承认的号码)值是请求断开的序列号。
      (序列号)加1,致电确认信息表明,该信息的意思是“我同意你关于停止连接的请求。”之后,被动断开已发展到CLOSE-WAIT(近距离等待)状态。TCP协议服务处随时向高层通报申请过程的最新情况。与当地方向的联系已被切断。没有进一步的信息可发送。如果您仍需要在地方一级相互传输数据,您必须这样做。对方依然会接受。被动断线的CLOSE-WAIT(关闭和等待)阶段将持续一段时间。也就是说,CLOSE-WAIT状态的长度。

      收到 " ACK " 呈件后,主动断开器从FIN_WAIT_1改为FIN_WAIT_2状态。

      (3) 第三波:收到ACK报告后,被动断开器还可以继续分发操作数据。这篇文章是全球之声在线特稿的一部分。或者,在CLOSE-WAIT关闭后,被动断开器向主动断开器发送 FIN+ACK 回复结束信息 。这意味着关于被动断开的所有数据都已发送。然后,被动断开器已到达 LAST -ACK 状态 。

      (4) 第四波是FIN+ACK解体后收到的主动断线。还要求最后批准。被动断开器收到AACK确认信息然后,我在时间日,我在时间日, 我在时间日, 我在时间日, 我在时间日, 我在时间日, 我在时间日, 我在时间日, 我在T等待超时结束连接 。一种活跃的断开器 在时间-时间-时间-时间-世界状态中在等待完成2MSL后,如果在此期间没有收到其他报告,它在我国历史上首次被关闭。最后,断开与断开的侧面的链接。

      被动断开器最终终止了连接,在收到解除作用方最后的ACK信息后,没有留下任何东西。


      如下图所示,所有四波相互作用过程:

      在这里插入图片描述

      一种活跃的断开器 在时间-时间-时间-时间-世界状态中在等待完成2MSL后,才真正关闭连接通道,其等待的时间为什么是2MSL呢?

      2MSL翻译为MSL的两倍。MSL是最高安全度的缩写。
      Lifetime,这是TCP叙述在互联网上蓬勃发展的最重要的时刻。具体来说,2MSL是传递和接收电文(一次发送和一次答复)的最长必要时间。如果直到2MSL,破坏合同的一方没有从另一方收到补充信息(如FIN报告)。可以安全地假定, " ACK " 是另一方成功接收的。此时,主动断开将最终断开它自己的 TCP 连接 。所以,TCP的时代世界状态也称为2MSL等候状态。

      MSL的确切期限,在2分钟内,建议达成RFC 1122协定。SICS(瑞典计算机科学院)生产的小型开放源TCP/IP-LwIP仓库的MSL设定为1分钟。随着伯克利的 TCP 实施, 默认的MSL长度为 30 秒 。总体来说,Time_WAIT (2MSL) 等待状态的持续时间, 以毫秒计 。一般而言,限制在1至4分钟之内。

      进行了3次握手连接和4次放弃连接,建立和拆解了1次TCP连接,并进行了至少7次通信。

      以三次握手和四次波进行四次正常面谈。
      技术访谈过程高频率的重点和复杂性是,对TCP联系的三次握手和拆散进行了四次波动式访谈,其中最常见的问题如下:

      问题1:为什么你必须挥手四次才能关闭连接,
      关闭连接时,当被动断电机接到另一FIN要求关闭时,他说:公司数据可能还没送到立即切断连接是不可行的。被动方仅限于一次对一次的ACK答复作出反应。"你给我发了FIN的讯息,我收到了只有当我公司的所有报告都完成的时候我才能真正的结束,在结束之前,我会给你发FIN+ACK信息你先等着”。所以,这篇文章是全球之声在线特稿的一部分。需要拆开成为两步,一般说来,手挥有四个过程。

      在建立这一联系方面,服务器的反应可能简单些Server收到Clitend的SYN请求后写道:ACK表示对答复请求的答复。SYN信息显示,服务连接是同步的。此外,在ACK和SYN报告之间,没有要发送的附加信息 。故而可以合二为一,直线 SYN+ACK 消息可以发送 。所以,在建立连接时,只有三次握手

      问题2:为什么与三节握手挂钩,这三节握手本来可以减为两节?
      三个握手履行两项关键职能:第一,双方准备交流数据,双方都知道对方的准备状态;第二,双方完成了关于第一个SN序列号的磋商,该序列号是在握手期间发送和核实的,履行两项关键职能:第一,双方准备交流数据,双方都知道对方的准备状态;第二,双方完成了关于SN序列号的磋商,该序列号是在握手期间发送和确认的。

      如果三节握手被降为两节握手,可能会发生死亡锁。 在两节握手中,客户对ACK框架的第二次确认并不存在,虚构的TCP连接被两次挥动,如下图所示:


      在这里插入图片描述

      在所谓的TCP连线第二次握手时Clit要求服务器提供一个SYN请求框架。服务器对 SYN+ACK 框架进行了响应, 收到后有一个确认回答 。两项握手协议规定:因此,根据服务器,该连接已经成功创建。您现在可以开始传输数据框 。这个过程中,如果确定SYN+ACK反应框架在传输过程中丢失,可以找到解决问题的补救办法。Clit没听懂客户端不会知道服务器是否为此做好准备 。我不知道服务器里SN的序列号 但我不确定它是什么Clit认为,这一联系尚未确定。服务器提供的任何数据分组将被忽略 。它一直在等待服务器上的 SYN+ACK 来验证响应框架 。在服务器公布数据框架之后如果匹配的ACK没有确认的话,那会很费时间。同一数据框架重复使用。这样就形成了死锁。

      为什么主动断开器必须在时空状态下等待 2MSL?
      其中一个解释是,主动断开等待 2MSL 。其目的是保证最终结束这两个目的。如果网络不可靠,则不可靠。FIN+ACK报告是在被动断开后发送的。提案国的ACK回答可能丢失。被动断开器现在处于LAST -ACK状态由于未能获得ACK确认,被动方无法以通常的方式进入封闭状态。在这种场景下,随着时间的推移,被动断开器将重复FIN+ACK的分手报告。如果激活断开器在目前 2MSL 范围内,这是FIN+ACK报告 一直受到不满。ACK报告将再次重印。随后,两个MSL重新开通并等待。这样,这是确保被动断开器 收到ACK的唯一方法这将保证被动方对《封闭区协定》的地位持被动态度。只有这样,双方都有能力结束局势。反过来说,如果主动断线器是在ACK反应后发送的,那么就有可能找到摆脱困境的方法。我不是在时间轴状态, 所以我不等待2MSL时间。而是立即释放连接,被动方重新发送的FIN+ACK通信不可行。因此,不再印发ACK确认报告。目前,被动断开器处于LAST-ACK状态。我无法正确进入封闭区

      原因二 : 防止在新连接中出现“ 从上一个连接中删除的数据报告 ” 。主动的断开方在提交上次的ACK报告后找到了摆脱困境的方法。再经过2MSL,最后,港口将关闭和开放。这就意味着,与同一港口的新的TCP连接已经建立。在2MSL时间过后才能够正常的建立。大约这个时候,两ML前一连接的数据全部列出。他们从互联网上消失了从而,保证在下一个新连接中不出现先前的这种连接请求。

      问题(4):如果建立了连接,但在阴极端突然失效,怎么办?
      TCP还有一个实时计时器。如果在阴蒂末端出事了@Serverend:#Serverend 只是不能再等了。 #ServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerServerer.这是浪费系统资源。每次你拿到Clit客户的数据框架 就会得到它服务器上的实时计时器将被重置 。定时器的超时通常定在2小时如果两小时后不能从Clitend的尽头 得到任何数据框架 我们就能收集更多的数据这是服务器在年底首次提交搜索报告。之后每75秒发一次如果一连串的十份检测报告没有反应 很难找到摆脱困境的方法因此, " 阴蒂 " 号无法运作。接着就关闭连接。如果你认为两个实时计时器之间的两小时延迟是过分的,TCP连接的活参数可以独立修改。

      此项目是埃及2011年抗争特别报导的一部分。

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

          热门文章

          文章分类