TCP如何保证可靠性

作者: 元素周期表的十七君 | 来源:发表于2017-08-03 09:55 被阅读16次

1、将数据截断为合理的长度

应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。

2、超时重发

当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。

3、对于收到的请求,给出确认响应

当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒 。(之所以推迟,可能是要对包做完整校验)

4、 校验出包有错,丢弃报文段,不给出响应,TCP发送数据端,超时时会重发数据

TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段。

5、对失序数据进行重新排序,然后才交给应用层

既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。

6、对于重复数据,能够丢弃重复数据

既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。

7、TCP可以进行流量控制,防止较快主机致使较慢主机的缓冲区溢出

TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。TCP使用的流量控制协议是可变大小的滑动窗口协议

相关文章

  • TCP 如何保证可靠性

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

  • TCP 除了三次握手你还需要知道的东西

    TCP 的可靠性 就一个问题:众所周知,TCP 是需要可靠连接的通信,那 TCP 是如何保证可靠性的? 前景提要:...

  • TCP超时重传代码解析

    Linux TCP拥塞控制的代码实现 如果发送的报文丢失,TCP需要重传丢失的报文以保证可靠性。那TCP如何知道报...

  • TCP如何保证可靠性

    1、将数据截断为合理的长度 应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报...

  • tcp和udp的区别,tcp如何实现可靠

    TCP如何保证消息顺序以及可靠性到达参考连接:https://blog.csdn.net/dccmxj/artic...

  • 网络知识点总结

    1、tcp如何保证传输的可靠性 合理分片:将数据分割成最适合tcp发送的数据块超时重传:tcp发送端发送数据后会启...

  • TCP 如何保证可靠性传输

    检验和:这是一个端到端的检验和,目的是用于检测数据在传输过程中有没有发生变化,如果接受到的 TCP 报文段检验和发...

  • TCP协议

    TCP的可靠性 TCP提供了一种面向连接的、可靠的字节流服务。TCP的可靠性主要有下面方式所保证的。 应用数据被分...

  • TCP 可靠性保证

    1、确认应答(ACK)机制 TCP 将每个字节的数据都进行了编号,即为序列号。确认序号 = 序号 + 1 每个 A...

  • 阿里 Java 二面必问:8张图带你解决所有TCP可靠传输问题

    1. TCP 可靠性如何保证?信道可靠:用三次握手、四次挥手保证连接正确;数据正确:分区编号、校验和、超时重传;传...

网友评论

    本文标题:TCP如何保证可靠性

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