TCP是如何保证可靠传输的?

记录一下自己背的八股文

与UDP不同,TCP是面向连接的,有可靠传输的协议

1:数据分段

TCP以二进制流的方式进行数据传输,在传输过程中TCP会将这些二进制流分为多个二进制段

2:序列号机制

TCP将数据分为多个二进制段后,会为每个二进制段分配一个序列号,这样能够保证接收端能够按顺序对TCP数据进行接收,同时还可以根据已经接收到的二进制段的序列号来判断数据是否完整

3:确认应答机制

接收端在接收到发送端的一个消息后,都会为发送端回传一个ACK来表示接收端接收到了这个数据,如果发送端长时间未收到接收端的ACK,那么就会触发超时重传机制,重新发送这个报文(超时重传也有最大重传次数限制,到达最大重传次数就会丢弃该报文)

4:校验和

TCP会为TCP头部添加伪校验和机制,用于验证数据在传输过程中是否完整

5:最大消息长度

建立TCP连接时候,双方会约定一个最大消息长度,来保证双方消息不会超出这个限制(超过了可能会导致网络出现延迟等情况)

6:滑动窗口

TCP会维护一个window,来表示可发送的数据和接收的数据,进而来控制消息发送的速度和接收的速度,防止无限制发送消息,导致接收端来不及消费这些数据

7:拥塞控制

TCP在启动时候会通过慢启动的方式,每次能发送的数据是上一次的一倍大小,到达一定限度后就会进行拥塞避免,此时每次发送消息的数量比上一次多一,在出现快速重传时,拥塞控制曲线会降低到原来的一半,然后直接进入拥塞避免状态,如果出现超时重传,那么拥塞控制曲线将会重新开始

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值