1. TCP 可靠性如何保证?
- 信道可靠:用三次握手、四次挥手保证连接正确;
- 数据正确:分区编号、校验和、超时重传;
- 传输控制:流量控制、拥塞控制
2.1 超时重传 TCP协议要求在发送端每发送一个报文段 , 就启动一个定时器并等待确认信息;接收端成功接收新数据后返回确认信息 。若在定时器超时前数据未能被确认 , TCP就认为报文段中的数据已丢失或损坏 , 需要对报文段中的数据重新组织和重传 。
2.2 快速重传 ?如果收到一个失序的报文段时 , TCP需要立刻产生一个ACK , 这个ACK不应该被延时 , 目的在于让对方知道收到一个失序的报文 , 并告诉对方自己希望收到的报文seq , 我们不知道这个重复的ACK的原因 , 因为还是会等待少量的重复ACK到来 , 如果连续收到3个或者3个以上的dup ACK , 就被判断这个报文被丢失了 , 于是就需要立即重传丢失的数据段 , 这个地方不用等待定时器溢出 。
3. 滑动窗口协议 在TCP协议中 , 发送方和接受方通过各自维护自己的缓冲区 。通过商定包的重传机制等一系列操作 , 来解决不可靠的问题 。为了增加网络的吞吐量 , 想将数据包一起发送过去 , 便产生了“滑动窗口”协议。
滑动窗口实现
文章插图
在图中 , 我们可看出灰色1号2号3号包已经发送完毕 , 并且已经收到Ack 。这些包就已经是过去式 。4、5、6、7号包是黄色的 , 表示已经发送了 。但是并没有收到对方的Ack , 所以也不知道接收方有没有收到 。8、9、10号包是绿色的 。是我们还没有发送的 。这些绿色也就是我们接下来马上要发送的包 。可以看出我们的窗口正好是11个 。后面的11-16还没有被读进内存 。要等4号-10号包有接下来的动作后 , 我们的包才会继续往下发送 。
正常情况
文章插图
可以看到4号包对方已经被接收到 , 所以被涂成了灰色 。“窗口”百思特网就往右移一格 , 这里只要保证“百思特网窗口”是7格的 。我们就把11号包读进了我们的缓存 。进入了“待发送”的状态 。8、9号包已经变成了黄色 , 表示已经发送出去了 。接下来的操作就是一样的了 , 确认包后 , 窗口往后移继续将未发送的包读进缓存 , 把“待发送“状态的包变为”已发送“ 。
丢包情况
文章插图
有可能我们爆发过去 , 对方的Ack丢了 。也有可能我们的包并没有发送过去 。从发送方角度看就是我们没有收到Ack 。
发生的情况:一直在等Ack 。如果一直等不到的话 , 我们也会把读进缓存的待发送的包也一起发过去 。但是 , 这个时候我们的窗口已经发满了 。所以并不能把12号包读进来 , 而是始终在等待5号包的Ack 。
超时重发
文章插图
这个Ack是要按顺序的 。必须要等到5的Ack收到 , 才会把6-11的Ack发送过去 。这样就保证了滑动窗口的一个顺序 。这时候可以看出5号包已经接受到Ack , 后面的6、7、8号包也已经发送过去已Ack 。窗口便继续向后移动 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 6缸自然吸气轿车排行 v6发动机的车有哪些
- 驾驶证D证,可以驾驶哪些车型 摩托车驾驶证准驾车型对照表
- 结婚戒指女生应该戴哪只手
- 博谈天下:翡翠酸洗主要洗的是什么?翡翠注胶需要用到哪些东西
- 吾爱破解:翡翠的进货渠道有哪些?具体问题具体分析
- 吾爱破解:玻璃种翡翠为什么是极品翡翠,其具有的哪些特点?
- 全球手游排行榜2021前十名 火爆的全球手游有哪些 现在最火的手游排行前10名
- 母亲节是哪一天 母亲节的由来简介 母亲节2022年是几月几日
- 排名前四的航天航空大学,南昌航空大学位居第三名 航空学院有哪些学校
- 中国航空航天类大学哪所好?附:2021年校友会排名详情 中国有名的航空学校