TCP协议中,A和B相互通信具体流程

这篇具有很好参考价值的文章主要介绍了TCP协议中,A和B相互通信具体流程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 TCP是一种面向连接的协议,通信双方需要先建立连接,然后才能传输数据.TCP协议中,A和B相互通信的流程如下:

1.建立连接(三次握手)

A向B发送一个SYN数据包,请求与B建立连接,B收到SYN数据包后,发送一个SYN+ACK数据包作为响应,最后A再向B返回一个ACK作为响应,说明A已经收到了B发来的数据了.此时连接建立完成

2.相互通信

连接建立后,A就可以向B发送数据了,A将要发送的数据分成若干个数据段,每个数据段都有一个序号表示数据段的第一个字节在整个字节流的位置,B收到A发送的数据后,会发送一个ACK作为响应,这个ACK数据包中有一个确认序号,是A发送的最后一个字节的序列号+1,表示期望收到下一个字节的序号.

提高效率

为了进一步提高效率我们会有滑动窗口,延时应答捎带应答的机制.滑动窗口可以不等待的发送一批数据,使用同一份时间等待这组ACK,把不需要等待,直接发送的数据最大值称为窗口大小.窗口越大,传输效率就越高.这个窗口大小是根据接收放的处理能力中间节点的处理能力共同决定的,延时应答让接收方的先处理一些数据,返回ACK,这样可以让窗口更大一些,同样延时应答也可以少返回一些ACK,节省了一些资源.捎带应答可以让本来分几个数据包发送的数据合并一份(前提是发送时机相同),这样就节省了一些资源.提高了传输效率.

避免网络拥堵和延时

当然为了避免网络拥堵和网络延时,会对窗口大小进行限制.此时就有流量控制拥塞控制等机制,流量控制考虑了接收方的处理能力,会告诉发送方接收方接收缓冲区剩余空间大小,以此让发送方调节窗口大小.拥塞控制考虑的是网络中间节点设备的处理能力,通过实验的方式得到一个合理的中间节点的处理能力,发送方再据此调节窗口大小

通信过程中丢包处理

通信过程中丢包了,会有超时重传的机制,一旦丢包发送方就会收不到接收方的ACK,此时发送方会等待一段时间(2MSL),如果超过这个时间就会重新发送刚刚的数据包.在数据密集使用滑动窗口的传输中,超时重传会变成快速重传,当接收方连续收到三个发送方相同的确认序号时,就会重新发送确认序号索要的数据

通信过程中出现异常处理

如果是进程崩溃,比如A进程崩溃,会立即向B发送一个FIN,断开连接,此时会触发四次挥手,但四次挥手不一定能完成,由于连接已经断开了,A不能收到B的FIN和ACK给B返回ACK.只能等待超时再断开连接失败后关闭.如果是关机,关机前会杀进程,A会正常完成四次挥手操作.如果是主机掉电/网线断开,此时触发不了四次挥手,只能等待超时后关闭了

3.断开连接(四次挥手)

A发送完所有数据后,会发送一个FIN数据包作为结束标志.B收到FIN数据包后,发送一个ACK数据包作为响应,表示已经收到了A的FIN,然后B也会发一个FIN数据包,A收到FIN后,发送一个ACK作为响应,表示已收到B发来的FIN,连接已关闭文章来源地址https://www.toymoban.com/news/detail-414660.html

到了这里,关于TCP协议中,A和B相互通信具体流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (学习笔记)如何理解TCP是面向字节流的协议,UDP是面向报文的协议?

    之所以会说TCP是面向字节流的协议,UDP是面向报文的协议,是因为操作系统对TCP和UDP协议的发送方的机制不同,也就是问题原因在发送方 为什么UDP协议是面向报文的协议?  当用户消息通过UDP协议传输时, 操作系统不会对消息进行拆分 ,在组装好UDP头部后就交给网络层来处

    2024年02月16日
    浏览(40)
  • Linux内核--网络协议栈(五)TCP IP栈的实现原理与具体过程

    一、引言 二、Linux内核的结构 三、Linux网络子系统 四、TCP/IP协议栈 ------4.1、网络架构 ------4.2、协议无关接口 ------4.3、套接口缓存 ------4.4、重要的数据结构 五、网络信息处理流程 ------5.1、硬中断处理 ------5.2、ksoftirqd内核线程处理软中断 ------5.3、网络协议栈处理 ------5.4、

    2024年01月21日
    浏览(76)
  • TIA博途中S7-1200进行MODBUS TCP通信(作为服务器)的具体方法演示

    如下图所示,打开TIA博途软件,添加一个1200的PLC,并设置该PLC的IP地址,这里以192.168.0.2为例进行说明, 如下图所示,打开OB1,在通信指令—其他中找到MB_SERVER,并拖拽到OB1中, MB_SERVER指令的具体使用方法可参考以下内容( 管脚的功能定义 ): 如下图所示,添加一个DB块用

    2024年02月08日
    浏览(40)
  • S7-200SMART 实现MODBUS TCP通信的具体方法示例(客户端读写+服务器响应)

    前面和大家介绍了MODBUS TCP的基本使用方法,具体可参考以下链接中的内容: S7-200SMART实现MODBUS TCP通信(客户端+服务器)的具体方法和步骤示例 本次继续和大家分享S7-200SMART 中实现MODBUS TCP通信的具体方法 , 任务要求:

    2024年02月16日
    浏览(52)
  • 计算机网络——20面向连接的传输:TCP

    点对点 一个发送方、一个接收方 可靠的、按顺序的字节流 没有报文边界 管道化(流水线) TCP拥塞控制和流量控制设置窗口大小 发送和接收缓存 全双工数据 在同一连接中数据流双向流动 MSS:最大报文段大小 面向连接 在数据交换之前,通过握手(交换控制报文)初始化发

    2024年02月21日
    浏览(45)
  • 中科大计网学习记录笔记(十六):面向连接的传输:TCP

    前前言❤️:本节课的内容及其重要也比较难懂,涉及到了传说中的三次握手和四次挥手的知识,为了避免出现纰漏我也是看了两遍才敢动笔写这篇补充笔记,举例和整理都花了不少时间,希望能对大家有帮助;其次是本节和上一节关系比较密切,建议先彻底搞懂再来看这节

    2024年03月10日
    浏览(48)
  • Java中网络的基本介绍。网络通信,网络,ip地址,域名,端口,网络通信协议,TCP/IP传输过程,网络通信协议模型,TCP协议,UDP协议

    - 网络通信 概念:网络通信是指 通过计算机网络进行信息传输的过程 ,包括数据传输、语音通话、视频会议等。在网络通信中,数据被分成一系列的数据包,并通过网络传输到目的地。在数据传输过程中,需要确保数据的完整性、准确性和安全性。常见的网络通信协议有T

    2024年02月10日
    浏览(71)
  • 计算机网络必会:TCP和UDP,面向连接,无连接,可靠与不可靠

    我在学习计算机网络的过程中,遇到了TCP和UDP解释,其中,无连接,面向连接,对我有很多新启发,下面就简单来聊聊,有兴趣多点个赞收藏一下,有错误可以私信反馈,欢迎打扰 TCP的主要特点: 1、TCP是面向连接的传输层协议。 2、每一条TCP连接只能有两个端点,TCP连接只

    2024年02月06日
    浏览(62)
  • Modbus TCP通信协议详解

    一、Modbus TCP通信概述 MODBUS/TCP是简单的、中立厂商的用于管理和控制自动化设备的MODBUS系列通讯协议的派生产品,显而易见,它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境中MODBUS报文的用途。协议的最通用用途是为诸如PLC,I/O模块,以及连接其它简单域总线或I/O模块的

    2024年02月08日
    浏览(161)
  • Android网络功能开发(6)——TCP协议通信

    TCP通信的双方需要建立连接,所以先由一方监听某个端口,等待其他设备来连接,这一方称为服务器端。另一方向服务器端发起连接请求,称为客户端。服务器端接受客户端的连接请求后,双方之间的连接建立起来。连接建立后,双方对于连接的使用是相同的,都可以通过连

    2024年02月09日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包