目的:了解三次握手和四次挥手的意义
TCP是一个很严谨的协议,他不允许在网络不好的情况下出现丢包出错的情况,所以在主机与服务器进行通信的时候TCP会进行三次握手来确保TCP连接已经建立,在信息传送完成之后会进行四次挥手确保两方信息都已经传送结束
1. 何为三次握手?三次握手的具体过程?
大家对TCP头部不熟悉的请看我之前的博客
https://blog.csdn.net/qq_44406549/article/details/125599241?spm=1001.2014.3001.5502
SYN:请求建立连接
ACK:确认收到
PSH:psh=1表示不需要等待缓存区满,直接将流量发出
RST:表示重新建立连接
FIN:请求断开连接
为了提升发送效率,也可以一次性发送多段数据,由接收方统一确认
Seq(序列号) 只有一个作用就是对发送端的报文做一个标识
Ack(确认序列号)有两个作用一是对发送端的报文做一个隐式确认 二是告诉发送端下次发报文时的Seq
所以我们可以总结出一个规律:
当没有数据传输时Ack=上个报文的Seq+1 表示对上次报文做一个隐试确认
当有数据传输时Ack=上个报文的Seq+数据长度 表示对上次报文做一个隐试确认
Ack等于下一个报文的Seq
2. 何为四次挥手?四次挥手的具体过程?
当PC1发送FIN = 1时表示我想要断开连接了,但是如果PC2不想断开连接可以继续发送数据,等发送完毕再发送FIN = 1来断开连接