可靠传输TCP

2023-06-18  本文已影响0人  xxttw

HTTP是基于TCP协议传输的, 所以在这我们先了解下TCP协议

TCP包头格式

我们先看看TCP报文头部的格式:


image.png

首先 源端口号和目标端口号是必不可少的, 没有没有这两个端口,数据就不知道应该发给哪个应用
序号: 是为了解决发送包的乱序问题
确认号: 是为了确认发出去的包对象是否有收到, 如果没有收到,就应该重新发送, 直到送到为止, 这就是为了解决丢包问题

接下来就是状态位. TCP是面向连接的, 因而双方需要维护连接的状态, 这些带状态的数据包发送, 会引起双方的连接状态变更
SYN 发起一个连接,
ACK回复,
RST重新连接,
FIN结束连接

窗口大小: TCP要做流量控制, 通信双方各生成一个窗口(缓存大小), 标识自己当前能够处理的数据的能力, 别发送的太快, 撑死我, 也别发送的太慢, 饿死了

拥塞控制: 对于真正的道路堵不堵车, 它无能为力, 唯一能做的就是控制自己, 也及控制发送的速度,

TCP传输数据之前,要先建立三次握手

在HTTP传输数据之前, 首先需要TCP连接, TCP连接建立, 通常称为三次握手
这个所谓的[连接] 只是双方计算机里维护一个状态, 在连接建立的过程中, 双方的状态变为时序图就想这样

image.png
上一篇 下一篇

猜你喜欢

热点阅读