打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
HTTP请求过程(二)—— TCP报文结构以及三次握手

上一篇文章我们介绍了HTTP请求过程过的第一步:DNS解析过程。

今天要介绍的是TCP三次握手,四次挥手断开连接的内容就留到下一篇再说。

不知道TCP是啥的请先自行脑补,我们直接来看下报文结构:

TCP数据报结构

下面这几个缩写需要重点了解

Seq:序列号,用来标识数据包;

Ack:确认号,表示确认;

SYN:建立新连接的标识;

FIN:断开连接的标识。

三次握手过程

1.当客户端请求建立连接后,TCP协议会设置SYN标志位和Seq序号。向服务器端发送数据包,然后进入了SYN-SEND状态。

2.服务器端收到该数据包后,检测到SYN标志位,同时会设置SYN和ACK标志位,返回数据包给客户端,之后进入SYN-RECV状态。

3.客户端收到确认包后,会检测ACK标志位的值,如果正确,客户端进入ESTABLISED状态,连接建立成功。

4.服务器端收确认包后,检测ACK标志位,如果正确,服务器也进入ESTABLISED状态,至此,双向连接建立成功。

经过上面的三次握手,双向连接建立成功之后,就可以开始发送数据了。为了保证数据的准确性,Seq和Ack需要约定好:

第一次消息发送时Seq为系统生成;

Ack号 = Seq号 + 传递的字节数 + 1

而之后发送的Seq号与接收到的Ack数值相同

为什么握手需要三次?

以上图为例,假如服务端最后没有收到Ack确认包,就无法知道客户端是否建立连接成功,这样服务端将拒收任何来自客户端的消息。

超时重传

假如在一定时间内发送方没有收到目标机器传回的确认包,那么就会启动超时重传机制,重传的次数一般为3次,也可自定义。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
三十三个计算机网络核心知识点
梳理50道经典计算机网络面试题(收藏版)
TCP报文之
一文搞定 Wireshark 网络数据包分析
一文秒懂 TCP/IP实际五层结构(下篇)
大厂最爱考的前端面试题:计算机网络基础
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服