tcp/ip三次握手详解

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请求关闭 ->对方确认并发送->对方确认并发送->确认并关闭)

 

你可能感兴趣的:(web)