tcp协议传输可靠性方法解析

tcp的特点

  • 面向字节流
  • 可靠传输
  • 面向连接

tcp协议保证数据传输可靠性

  • 效检和
  • 序列号
  • 确认应答
  • 超时重传
  • 连接管理
  • 流量控制
  • 拥塞控制

1、TCP判断怎么丢包的?

  • 通过序列号确认应答

确认应答与序列号

序列号:TCP传输时将每个字节数据进行了编号

确定应答:TCP传输过程中,每次接受到对方数据都会确认应答。也就是发送ACK报文。这个ACK报文的确认序列号,告诉发送方,接收到了哪些数据,下一次的数据从哪里发。

序列号的作用不仅仅是应答的作用,有了序列号能将接收到的数据根据序列号排列,并且去掉重复序列号的数据。这也是TCP传输可靠性的保证之一。

2、丢包优化方案

  • 超时重传
  • 流量控制
  • 拥塞控制

超时重传

简单的理解就是在发送数据的一段时间内,如果没有接收到接收方的ACK响应,那么刚刚发送的数据需要重新发送。

对应两种情况:

  1. 如果是发送方的问题,数据重新发送,数据

接收方进行响应ACK

  1. 如果是接收方的问题,数据发生过来之后,接收方根据序列号判断是否重复数据,如果是直接丢弃,然后继续返回ack响应。

流量控制

定义:TCP根据接收端对数据处理的能力,决定发送速度。

原理:在TCP协议的报头信息当中,有一个16位字段的窗口大小。窗口大小内容实际上是接收端接收缓冲区的剩余大小。这个数字越大,网络的吞吐量也越大。接收端在应答ACK报文时,将自己窗口大小填入,并跟随ACK报文一起发送过去,而发送根据ACK报文里的窗口大小值进而改变自己发送的速度。如果接收端窗口大小为0,那么发送将停止发送数据。并定期向接收端发送窗口探测数据段,让接收端把窗口大小告诉发送端。

拥塞控制

定义:TCP的慢启动机制,在开始发送数据时,先发送少量的数据探路。探清当前的网络状态如何,再觉得多大的速度进行传输。

实现:发送刚开始定义拥塞窗口为1,每次接收到ACK应答,拥塞窗口加1。在发送数据之前,首先将拥塞窗口接收端反馈大小对比,取较小的值作为实际发送的窗口。

原理:拥塞窗口增长是指数级别的。设置一个拥塞窗口的阈值,当窗口大小超过阈值时,不能再按照指数来增长,而是线性增长。在慢启动开始时,慢启动的阈值等于窗口的最大值,一旦造成网络拥塞,发生超时重传时,慢启动的阈值就会是原来的一半,同时拥塞窗口重置为1。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

影风莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值