Day7: TCP:面向连接的传输、TCP:可靠数据传输、TCP:流量控制、TCP:连接管理

加油!偷博仔

今天的看到的诗,是灰色的

天是灰色的
路是灰色的
楼是灰色的
雨是灰色的
在一片死灰之中
走过两个孩子
一个鲜红
一个淡绿
————《感觉》1980年7月


进入正题

一、 TCP:面向连接的传输

1.TCP:概述 (RFCs: 793, 1122, 1323, 2018, 2581)

在这里插入图片描述

Explanation:
·
所谓没有报文边界
发送方发两个小报文,也许接收方收到1个大的报文,或者反过来。
发送和接收缓存
为了超时重发或者检错重传,匹配Send和receive的速度不一致
·
MTU:
Maximum Transmission Unit,最大数据传输单元,网络传输最大报文包;以太网MTU最大值是1500B
MSS:
Maxitum Segment Size应用进程发给传输层TCP实体的报文段,要根据MSS的大小进行切分和加TCP头部信息,变成TCP报文段(segment)
·
所以,(Message 转换成字节流,再被划分成一个个的MSS)
MSS+TCP头部信息+IP头部信息 <= MTU(比如以太网MTU1500B),(“于是就不存在一个分片的问题?”什么分片…)
·
否则,如果要发送的IP数据报比数据链路层的MTU大,则无法发送该数据报。
还可以参考一下这位网友的分享:MSS与MTU的关系


2.TCP报文段结构

在这里插入图片描述

Make some explanation:
16bits 源端口,16bits目标端口
32 bits 序号、确认号。
所以,聪明的,同理可得:可选项32bits;校验和等等16bits
字节序号:
对于应用层交下来到Message,划分层一个个的MSS,每一个TCP报文段(segment)的body部分,就是载荷部分(对应MSS),而载荷部分第一个Byte(字节)在整个字节流的offset(偏移量) 就是字节序号

3.TCP 序号, 确认号

在这里插入图片描述

接收方处理乱序的segment 可以缓存也可以drop,没有规定。取决于…
在这里插入图片描述
Explanation:

  • Host A → Host B Seq=42, ACK=79, data = ‘C’:
    HostA,商量的初始序号是Seq = 42,并且希望Host B 初始序号从 79号开始,要求回显字节C
  • 接着Host B → Host A Seq=79, ACK=43, data = ‘C‘:
    由于此前Host B 收到了Seq42,处理完后确认ACK=43。同时ACK=43说明Host B已经收到42及以前,并且希望Host A从43开始。
    …于是就这样了

4.TCP往返延时(RTT)和超时

设置和测量/估计RTT都要得当啊。

  • Q&#

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

adingable

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

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

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

打赏作者

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

抵扣说明:

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

余额充值