当前位置:网站首页>TCP的三次握手和四次挥手
TCP的三次握手和四次挥手
2022-08-02 14:12:00 【叶子yes】
HTTP请求是在TCP连接的基础上去进行的。
TCP保证通信的三个步骤:三次握手,传输内容,四次挥手。
三次握手是建立连接的过程,四次挥手是关闭连接的过程。
三次握手
三次握手的主要目的是为了确认进行通信的两台主机(客户端和服务端)都具备收消息和发消息的能力。
三次握手实际上就是客户端和服务端之间发送了三条消息,客户端需要确认服务端可以收也可以发,服务端也需要确认客户端可以发也可以收。
第一次握手:
客户端向服务器端发送消息
主要传递两个信息:一是请求建立连接(SYN=1),二是发出一个序列号(seq=n,n为一个数)
第一次握手可以让服务端知道客户端能够发送消息
第二次握手:
服务器端向客户端发送消息
传递三个信息:一是同意建立连接(SYN=1),二是确认收到刚才的消息(ack=刚才的seq+1),三是发出自己的序列号(seq=x,x为一个数)
第二次握手可以让客户端知道服务端能够发消息也能收消息
第三次握手:
客户端向服务端发送消息
传递三个信息:一是表示现在开始发送(SYN=0),二是确认收到刚才的消息(ack=刚才的seq+1),三是消息序列号(seq=最开始发出的序列号+1)
第三次握手可以让服务端知道客户端能够接收消息

四次挥手
四次挥手主要是为了确认客户端已经发完消息,以及服务端已经接收完消息。
所以四次挥手是:发完了,知道发完了,收完了,知道收完了。
第一次挥手:
传递两个信息:一是请求连接终止(FIN=1),二是发出序列号(seq=n)
第一次挥手客户端告诉服务端数据发完了
第二次挥手:
传递三个信息:一是确认收到终止信号(ACK=1),二是确认收到刚才的消息(ack=n+1),三是发送自己的序列号(seq=x)
第二次挥手服务端知道客户端数据发完了
第三次挥手:
传递三个信息:一是已经准备好释放连接(FIN=1,ACK=1),二是确认号(ack=n+1),三是发送自己的序列号(seq=y)
第三次挥手服务端告诉客户端数据收完了
第四次挥手:
传递三个信息:一是接收到服务器准备好终止连接的信号(ACK=1),二是发送确认号(ack=y+1),三是序列号(seq=n+1)
第四次挥手客户端知道服务端数据收完了

边栏推荐
猜你喜欢
随机推荐
word方框怎么打勾?
2. Log out, log in state examination, verification code
Project: combing the database table
线性结构,顺序结构
MATLAB绘制平面填充图入门详解
3. User upload avatar
Unity-存档与读档
动态数组-vector
Unity Line-Renderer
5. Transaction management
第二十五章:一文掌握while循环
casbin模型
第三十一章:二叉树的概念与性质
剑指offer:删除链表中重复的节点
富文本编辑
shader 和 ray marching
Masters and Masters
IDEA 单元测试报错:Class not found
冷读123
测试用例练习









