TCP三次握手
tcp标志位如下6种:
syn = 0(synchronous 建立联机)seq = 0(顺序号码)
psh = 0 (传送)
fin = 0(finish 结束)
ack = 0(acknowledgement 确认)ackn = 0 (acknowledge number 确认号码)
rst (重置)
urg(urgent 紧急)
pc与http服务器进行三次握手来建立连接。
1.pc:seq=0 ackn=0 syn=1 ack=0 发送给服务器建立同步请求。(客户端发送syn包到服务器,进入syn_send状态,等待服务器确认)
2.server:seq=0 ackn=1 syn=1 ack=1 发送给客户端建立同步响应。(server收到syn,确认pc的syn正确即ackn = 1,并向pc 发送一个syn 即ack=1 这时server进入syn_recv状态,等待pc发送确认位码)
3.pc:seq=1 ackn=1 syn=0 ack=1 发送给服务器,三次握手完成建立同步信息成功。(客户端收到服务器的ack包,向服务器发送ackn,此包发送完毕,客户端和服务器端都进入established状态,完成三次握手)
至此连接已建立,下面是数据信息发送
4.pc产生http数据消息,向服务器发送get请求.
5.server:收到请求并发送TCP确认,然后发送http数据信息给客户端的浏览器.
6.pc:收到服务器的http信息,然后发送TCP确认信息给服务器.
7.pc:发送FIN+ACK给服务器,要求结束数据传输.
8.server:发送TCP确认消息用于确认pc的TCP的FIN消息
9.server:向客户端发送FIN+ACK消息用于结束TCP会话.
10.pc:发送确认信息给服务器,整个会话结束.
断开连接经过四次握手,pc和server多了一个fin状态(pc或者server请求关闭 ->对方确认并发送->对方确认并发送->确认并关闭)