确保可靠性的TCP协议【杂谈】
回首这几年,凡是做的好的东西背后都有【习惯】在支撑,凡是做的不好的东西背后都缺乏稳定【习惯】。习惯就是【系统】。
今天给大家简单聊一聊【确保可靠性的TCP协议】。
按层次分,TCP位于传输层,提供可靠的字节流服务。
所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。而可靠的传输服务是指,能够把数据准确可靠地传给对方。一言以蔽之,TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方。
为了准确无误地将数据送达目标处,TCP协议采用了三次握手(three-way handshaking)建立连接。用TCP协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志(flag)--SYN(synchronize)和ACK(acknowledgement).
发送端首先发送一个带 SYN 标志的数据包给对方。接收端收到后,回传一个带有 SYN / ACK 标志的数据包以示传达确认信息。最后,发送端再回传一个带 ACK 标志的数据包,代表 “握手” 结束。
若在握手过程中某个阶段莫名终断,TCP协议会再次以相同的顺序发送相同的数据包。
除了上次三次握手,TCP协议还有其他各种手段来保证通信的可靠性。
协议对比:
1、TCP
- TCP 是面向连接的传输控制协议。
- TCP 具有高可靠性,确保传输数据的正确性,不出现丢失或乱序。
- TCP 协议可以保证接收端毫无差错地接收到发送端发出的字节流,为应用程序提供可靠的通信服务。(对可靠性要求高的通信系统往往使用 TCP 传输数据。比如 HTTP 运用 TCP 进行数据的传输。)
2、UDP
- UDP 提供了无连接的数据报服务。
- UDP 在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作。
- UDP 具有较好的实时性,工作效率较 TCP 协议高。
- UDP 段结构比 TCP 的段结构简单,因此网络开销也小。
以下为历史文章链接:
【软件测试基础】
【互联网协议】
以上原文来自我的公众号【不只是测试】,扫描加关注哦O(∩_∩)O~


浙公网安备 33010602011771号