TCP协议

      最后更新:2022-04-05 11:14:28 手机定位技术交流文章

      TCP是一种以字节为基础的传输层通信议定书,具有连通性和可靠性。
      特点:
      * 连接:在数据传输之前,必须建立连接。
      * 连续:双向传输
      * 字节流:数据大小不受限制,数据被捆绑到报告字段,有条不紊的接收得到保证,重复的信息立即删除。
      * 流动缓冲:解决双方处理能力差距悬殊的问题
      * 依赖性传输服务:在投放一个包时,通过改道系统实现可靠和可靠的供应。
      * 应急管理:防止恶性网络堵塞

      TCP连接管理

      一、TCP连接:

      [源地址、源港口、目的地地址、目的地港]是一个四位数组。

      二. TCP 三次握握手,建立连通性

      在最初状态下,客户和服务器都处于CLOSED状态;启动连接的客户是主动的,启动连接的服务器是被动的。

      1. TCP服务器程序始于生成一个传输控制区块TCB, 该区块准备接收客户程序连接请求, 然后服务器进入 Listen(电话)模式。
      2. TCP客户程序也从开发传输控制区开始,该控制区缩为TCB。最后,向服务器提出了连接请求,并向服务器提交了连接请求。报告第一部分输入SYN=1。同时,选择初始序号后序号。SYN-SENT(同步发送)随后由TCP客户程序输入。TCP称,SYN输入无法传输数据。因此,必须吃掉序列号。
      3. (第二次握手) TCP 服务器收到请求后,可采取以下行动:如果同意连接,则发出确认报文。经确认,该报告包括了ACK=1, 以及以下信息:SYN=1,确认值为 k=x+1。创建序列号后序号@ info: whatsthis此后,TCP服务器程序进入SYN-RCVD(同步接收)模式。
      4. (第三次握手)一旦TCP客户程序得到确认,您也必须向服务器提供确认 。确认报告是ACK=1状态ack=y+1,他的个人序列号是后序号x+1。TCP连接是此时确定的。客户进入创建(连接)模式。TCP规定,数据可以通过ACK报告部分传送。然而,如果您不传输数据,则不使用序列号。
      5. 服务器在收到客户的确认后,也将处于既定状态,允许双方互动。

      TCP客户端最后发送确认函的目的是什么?

      具体地说,为了避免将失败的连接请求发送回服务器,这会导致错误。
      如果你用握手两次当客户提交最初的连接请求时,无法找到解决问题的办法,因为它在网络节点停留的时间太长。TCP客户不能这样做,因为他们很晚才收到确认信息。我以为服务器错过了此场合连接消息已重新发送到服务器 。此后,客户和服务器通过两次握手连接。传输数据,然后关闭连接。先前的请求随后与服务器连接。这份报纸的文字不应该是真实的。尽管如此,两个握手程序将使客户和服务器能够重新连接。过度错误和资源浪费
      如果握手三次,即使收到无效电文,服务器还是收到无效电文,并对确认作出答复,但客户不会重复确认,因为服务器没有收到确认。

      三. TCP 四次挥手终止连接。

      数据传输完成后, 双方可以断开 。 客户端和服务器一开始都处于创建状态, 之后客户端会主动关闭, 服务器会被动关闭 。
      一. 客户程序发送连接发布信息(第一波)。并且停止发送数据。最初FIN=1的数据发布。序号是后序号=u(等于最后一个字节加先前发送的数据之一)。目前,客户已进入FIN-WAIT-1(终止等待1)条件。
      two. (第二波) 服务器收到了连接发布信息 。由ACK=1发送确认信。ack=u+1,另外,它的序号是续v,目前,服务器进入CLOSE-WAIT(关闭等候)状态。TCP服务器与高级别应用程序进行通信。客户被放行 并引导到服务器上。这是一个半封闭期。用户无进一步信息可发送 。然而,如果服务器提供数据,客户端依然要接受。目前的状况将持续一段时间。这是CLOSE-WAIT州的长度。
      3. 一旦客户收到服务器的确认请求,客户将进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接发布信息(前提是事先收到服务器的最终数据)。
      四.(第三波)服务器发送最终数据后,如果您发送连接发布信息 FIN=1, 您也可以将信息传送给您的客户端 。ack=u+1,由于在半关闭状态,服务器几乎肯定会发送更多数据。假设目前的序号是后序号 = w,服务器现在处于 LAST-ACK( 最后确认) 状态 。等待客户端的确认
      五. (第四波) 收到服务器连接中断后,客户必须发送确认,ACK=1,ack=w+1,此外,他的序列号是后号=u+1。客户现在处于时间-时间等待(时间等待)模式。似乎TCP的连接还没有被放弃允许政府在2*MSL(报告存续最长期限)之后利用互联网作为帮助该国居民的工具。当客户撤回相关TCB时,我们目前才处于封闭状态。
      第六,服务器一旦收到客户的确认,即进入CLOSED状态,类似地结束TCP连接,在 TCB 退出后结束。 从可以看出,服务器在客户之前停止TCP连接。

      为什么顾客最后要等2MSL?

      TCP允许各种表演者为MSL(最大保障有限公司)规定不同的MSL等级。
      第一,客户先前的 ACK 信息保证访问服务器。因此,这份ACK报告可能错位了。从服务器的角度来说服务器递交了 FIN+ACK 信件终止的请求 。客户端还没有回应,因此,服务器不得不重新发送信息。客户可以在下一个 2MSL 期间收到此再次发送的信息。接着给出响应报文,此外,将重新启动2MSL时限。
      第二,为了防止在这方面出现联系请求,例如已经过期的请求,在客户发出最后确认信息后在这个2MSL时区最后,它将能够从互联网上删除在连接寿命期间创建的所有条款。因此,在新的连接中,没有要求先前的连接。

      字节流协议

      TCP是一种以字节为基础的协议。TCP将数据视为无结构字节流的序列。TCP并不在意一个应用程序会同时向 TCP 缓存发送多少信息 。相反,它根据另一方提供的窗口价值和目前的网络拥堵量,决定报告中的字节数。
      如下图所示,考虑到在整个网络的数据传输过程中,传送20字节的数据(几乎与真正的媒体一样少)。数据将分解成传输过程中文本的分节。因此,4个字节0123将先到达。导致乱序的问题,现在将根据数据输入每段的序号对TCP重新排序。还将处理数据重复和数据缺失问题。根据字节流动协议,TCP必须做到这一点。

      数据可靠性传输

      I. 避免浪费时间等待协议(效率低下):

      二、重传机制:
      1.ack报文丢失

      2.请求报文丢失

      关于幻灯片窗口和累积确认(延迟日志)的协议

      由于以前的传输方式是一次只发送一条信息,而这种信息效率低下,现在每次发送5份报告,12345份,如果服务器只接收了1245条信息,没有收到3条信息,客户被指示重新发送3条信息(345条)。

      参考资料

      1. https://blog.csdn.net/qzcsu/article/details/72861891

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

          热门文章

          文章分类