博客
关于我
TCP三次握手四次挥手
阅读量:697 次
发布时间:2019-03-15

本文共 972 字,大约阅读时间需要 3 分钟。

TCP三次握手与四次挥手

一、从TCP报文段内容上分析

TCP协议的三次握手过程中,SSM(序号同步)机制是核心所在。序号seq字段为32位,用于标记数据段的顺序。TCP将连接中发送的所有数据视为无结构但有序的字节流。每个字节都会被编上序号,序号的起始值由本地随机生成,并按照顺序分配给报文段的第一个字节。序列号seq即为当前报文段的第一个字节的数据编号。

确认号ack字段也是32位,与序号类似,但其作用不同。ack字段用来指定期待收到对方下一个报文段的第一个数据字节的序号。序号表示当前携带数据的第一个字节编号,ack则表示期望下次报文段的第一个字节编号。确认位ACK字段则用于标记确认号字段是否有效,ACK=1时确认号字段有效,ACK=0则无效。

TCP通过确认号字段和ACK字段来实现SSM机制。这一机制保证了两端对数据传输顺序的认识一致,从而使得数据可以准确地校验和重组。此外,SYN标记建立连接,FIN标记终止连接,同时窗口字段用于流量控制和拥塞控制。

二、三次握手

TCP三次握手的核心目的是协商出双方的初始序号并建立可信的通信序列号关系。三次握手过程中,SYN和ACK标志位起着关键作用。

C S
SYN=1,seq=client_isn
ACK=1,ack=client_isn+1
ACK=1,seq=server_isn SYN=0

为什么需要三次握手而不是两次或四次?三次握手的核心在于通过双方的序号信息建立可靠的通信基础。这一过程确保了双方对数据传输顺序的完全一致,从而使得后续数据传输得以准确校验和重组。

如果使用两次握手,可能导致确认号无法正确校验对方的序号信息;而三次握手则通过三次通信请求,确保双方序号信息的可靠同步。至于四次握手,则只多了一次确认,无必要且不必要。

三、四次挥手

四次挥手的过程主要用于终止TCP连接。连接的终止涉及四次专门的 UserControl码(即FIN段)。四次挥手的核心作用是确保双方能够知晓彼此已完成连接终止操作,从而避免数据传递错误或重复。

C S
FIN=1
ACK=1
ACK=1 FIN=1
ACK=1

在四次挥手过程中,客户端和服务器交换FIN和ACK字段,最终确认双方都已完成连接终止。这种双向确认机制确保了连接的安全性和可靠性。

内容如有错误请指出,感谢您的解读!

转载地址:http://wlgmz.baihongyu.com/

你可能感兴趣的文章
OpenCV学堂 | CV开发者必须懂的9种距离度量方法,内含欧氏距离、切比雪夫距离等(建议收藏)
查看>>
OpenCV学堂 | OpenCV中支持的人脸检测方法整理与汇总
查看>>
OpenCV学堂 | OpenCV案例 | 基于轮廓分析对象提取
查看>>
OpenCV学堂 | YOLOv8与YOLO11自定义数据集迁移学习效果对比
查看>>
OpenCV学堂 | YOLOv8官方团队宣布YOLOv11 发布了
查看>>
OpenCV学堂 | YOLOv8实战 | 荧光显微镜细胞图像检测
查看>>
OpenCV学堂 | 汇总 | 深度学习图像去模糊技术与模型
查看>>
OpenCV安装
查看>>
OpenCV官方文档 理解k - means聚类
查看>>
opencv实现多路播放
查看>>
opencv常用函数
查看>>
OpenCV探索
查看>>
OpenCV添加中文(五)
查看>>
opencv源码查看
查看>>
OpenCV点目标检测未找到所有目标,并且找到的圆圈偏移
查看>>
opencv特征提取1-Harris角点检测
查看>>
OpenCV环境搭建(一)
查看>>
OpenCV的视频读取
查看>>
openCV目标识别 目标跟踪 YOLO5深度学习 Python 计算机视觉 计算机毕业设计 源码下载
查看>>
opencv笔记(1):图像缩放
查看>>