美文网首页软件
TCP数据的传输过程

TCP数据的传输过程

作者: JumboWu | 来源:发表于2016-10-22 16:49 被阅读193次
建立连接后,两台主机就可以相互传输数据了。如下图所示:

图1:TCP 套接字的数据交换过程

上图给出了主机A分2次(分2个数据包)向主机B传递200字节的过程。首先,主机A通过1个数据包发送100个字节的数据,数据包的 Seq 号设置为 1200。主机B为了确认这一点,向主机A发送 ACK 包,并将 Ack 号设置为 1301。为了保证数据准确到达,目标机器在收到数据包(包括SYN包、FIN包、普通数据包等)包后必须立即回传ACK包,这样发送方才能确认数据传输成功。
此时 Ack 号为 1301 而不是 1201,原因在于 Ack 号的增量为传输的数据字节数。假设每次 Ack 号不加传输的字节数,这样虽然可以确认数据包的传输,但无法明确100字节全部正确传递还是丢失了一部分,比如只传递了80字节。因此按如下的公式确认 Ack 号:Ack号 = Seq号 + 传递的字节数 + 1

与三次握手协议相同,最后加 1 是为了告诉对方要传递的 Seq 号。下面分析传输过程中数据包丢失的情况,如下图所示: 图2:TCP套接字数据传输过程中发生错误

上图表示通过 Seq 1301 数据包向主机B传递100字节的数据,但中间发生了错误,主机B未收到。经过一段时间后,主机A仍未收到对于 Seq 1301 的ACK确认,因此尝试重传数据。为了完成数据包的重传,TCP套接字每次发送数据包时都会启动定时器,如果在一定时间内没有收到目标机器传回的 ACK 包,那么定时器超时,数据包会重传。上图演示的是数据包丢失的情况,也会有 ACK 包丢失的情况,一样会重传。
重传超时时间(RTO, Retransmission Time Out)
这个值太大了会导致不必要的等待,太小会导致不必要的重传,理论上最好是网络 RTT 时间,但又受制于网络距离与瞬态时延变化,所以实际上使用自适应的动态算法(例如 Jacobson 算法和 Karn 算法等)来确定超时时间。往返时间(RTT,Round-Trip Time)表示从发送端发送数据开始,到发送端收到来自接收端的 ACK 确认包(接收端收到数据后便立即确认),总共经历的时延。
重传次数
TCP数据包重传次数根据系统设置的不同而有所区别。有些系统,一个数据包只会被重传3次,如果重传3次后还未收到该数据包的 ACK 确认,就不再尝试重传。但有些要求很高的业务系统,会不断地重传丢失的数据包,以尽最大可能保证业务数据的正常交互。最后需要说明的是,发送端只有在收到对方的 ACK 确认包后,才会清空输出缓冲区中的数据。

相关文章

  • HTTPS从入门到放弃

    使用socket进行tcp数据传输的简单过程 Socket是TCP/UDP传输层的API, HTTP是在tcp上的...

  • TCP协议数据传输的基本机制:滑动窗口运行过程详解

    TCP协议为了尽可能保证数据传输的可靠性,因此数据的传输过程就比较复杂和烦琐。TCP为了保证数据传输速率,它需要一...

  • TCP数据的传输过程

    图1:TCP 套接字的数据交换过程 上图给出了主机A分2次(分2个数据包)向主机B传递200字节的过程。首先,主机...

  • TCP协议:三次握手和四次挥手过程详解

    TCP通信过程包括三个步骤:建立TCP连接通道,传输数据,断开TCP连接通道。如图1所示,给出了TCP通信过程的示...

  • 三次握手、七次握手、四次挥手

    TCP/IP 传输协议的 TCP 协议是面向连接的,也就是传输数据之前,必须建立可靠的连接。建立连接的过程中,需交...

  • 数据转发过程

    简介 TCP/IP协议簇和底层协议配合,保证了数据能够实现端到端的传输。数据传输过程是一个非常复杂的过程,例如数据...

  • TCP 和 UDP的区别

    TCP 和 UDP的区别 TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、...

  • 视频会议方案

    利用TCP进行开发 使用TCP直接进行传输模块的开发,在传输过程中数据不会丢包,我们可以采用OICP的完成端口来进...

  • 传输协议

    常见传输协议TCP、UDP TCP传输控制协议(可靠协议) 建立连接,形成数据通道 在连接中进行数据传输,数据大小...

  • 2018-09-12:窗口滑动

    TCP的优势 从传输数据来讲,TCP/UDP以及其他协议都可以完成数据的传输,从一端传输到另外一端,TCP比较出众...

网友评论

    本文标题:TCP数据的传输过程

    本文链接:https://www.haomeiwen.com/subject/ogrhuttx.html