美文网首页
TCP是如何保证包的顺序传输?

TCP是如何保证包的顺序传输?

作者: VincentHK | 来源:发表于2017-09-17 18:31 被阅读0次

我和大家一起讨论下TCP在保证可靠传输数据的前提下,是怎样对传输的数据进行顺序化操作的。
大家都知道,TCP提供了最可靠的数据传输,它给发送的每个数据包做顺序化(这看起来非常烦琐),然而,如果TCP没有这样烦琐的操作,那么,可能会造成更多的麻烦。如造成数据包的重传、顺序的颠倒甚至造成数据包的丢失。
那么,TCP具体是通过怎样的方式来保证数据的顺序化传输呢?
主机每次发送数据时,TCP就给每个数据包分配一个序列号并且在一个特定的时间内等待接收主机对分配的这个序列号进行确认,如果发送主机在一个特定时间内没有收到接收主机的确认,则发送主机会重传此数据包。接收主机利用序列号对接收的数据进行确认,以便检测对方发送的数据是否有丢失或者乱序等,接收主机一旦收到已经顺序化的数据,它就将这些数据按正确的顺序重组成数据流并传递到高层进行处理。

具体步骤如下:
(1)为了保证数据包的可靠传递,发送方必须把已发送的数据包保留在缓冲区;

(2)并为每个已发送的数据包启动一个超时定时器;

(3)如在定时器超时之前收到了对方发来的应答信息(可能是对本包的应答,也可以是对本包后续包的应答),则释放该数据包占用的缓冲区;

(4)否则,重传该数据包,直到收到应答或重传次数超过规定的最大次数为止。

(5)接收方收到数据包后,先进行CRC校验,如果正确则把数据交给上层协议,然后给发送方发送一个累计应答包,表明该数据已收到,如果接收方正好也有数据要发给发送方,应答包也可方在数据包中捎带过去。

相关文章

  • TCP是如何保证包的顺序传输?

    我和大家一起讨论下TCP在保证可靠传输数据的前提下,是怎样对传输的数据进行顺序化操作的。大家都知道,TCP提供了最...

  • TCP 和 UDP的区别

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

  • TCP如何保证可靠传输

    TCP和UDP的区别之一:TCP是可靠传输,UDP是不可靠传输,那么可能一不小心就会被追问TCP是如何保证可靠传输...

  • TCP+TLS

    TCP 传输是保证到达和按顺序的。 UDP的话是不保证一定传到也不保证顺序。 那为什么还要用UDP? 因为有一些实...

  • TCP/UDP

    TCP:TCP提供一对一的、面向连接的可靠通信服务(保证数据正确性和顺序,并恢复在传输过程中丢失的数据包)、用于传...

  • TCP(II) 超时重传

    查看原文 TCP 提供可靠数据传输服务,为保证传输正确性,TCP 重传其认为已经丢失的包。TCP 有两套重传机制,...

  • 网络

    1、http协议内容 2、TCP具体是通过怎样的方式来保证数据的顺序化传输呢? 主机每次发送数据时,TCP就给每个...

  • socket通信(tcp/udp区别及JAVA的实现方式)

    TCP——传输控制协议,具有极高的可靠性,保证数据包按照顺序准确到达,但其也有着很高的额外负担。 UDP——使用者...

  • 读<了不起的Node.js>-08.TCP协议

    传输控制协议(TCP) TCP 是一个面向连接的协议,它保证了两台计算机之间的数据传输的可靠性,和顺序 简而言之,...

  • TCP 如何保证可靠性

    [TOC] 参考 1. TCP可靠性的保证机制总结 2. 网络基础:TCP协议-如何保证传输可靠性 3. TCP协...

网友评论

      本文标题:TCP是如何保证包的顺序传输?

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