0
点赞
收藏
分享

微信扫一扫

计网协议 | TCP(1-可靠传输)

毅会 2022-01-31 阅读 78

前言

何为可靠传输?
保证接收方进程从缓存中读出的字节流和发送方输出的字节流一毛一样(顺序以及数量以及内容)

1 序号和校验

  1. 通过在报文段增加伪首部(UDP也是通过伪首部校验),其中报文段内容的一个字节占用一个序号(序号字段指一个报文段第一个字节的序号)
  2. TCP传输的过程中,每次接收方收到数据后,都会对传输方进行确认应答。也就是发送ACK报文。
  3. 这个ACK报文当中带有对应的确认序列号,告诉发送方,接收到了哪些数据,下一次的数据从哪里发。

在这里插入图片描述

2 确认

假设发送方在发送缓存中有某报文段A,在发送到接收方的接收缓存中后,不会立刻删除报文段A,而是等待接收方返回一个确认信息,再删除报文段,防止发送途中丢失该报文段A
在这里插入图片描述
要注意的是:

  1. 接收方返回的确认报文段不一定单独发送,有可能也会随着一些数据的发送而被携带上;
  2. 确认报文段首部确认号为已传输数据最大的序号+1,如已发送1,2,3,则确认报文段首部确认号字段为4;
  3. TPC使用累计确认

何为累计确认:

3 重传

确认重传不分家,TCP发送方在规定时间内没收到确认就会重传已发送的数据报,简称 “超时重传”

TCP协议为了解决以上问题,采取了自适应算法:动态改变重传时间RTTs(加权平均往返时间)

简单介绍下RTTs的原理:

那么此时又又又出现一个小问题:

嘿嘿你都能想到这个问题,设计TCP的大佬想不到吗~

举报

相关推荐

0 条评论