tcp三次握手
2020-02-24 本文已影响0人
ahqrt
tcp三次握手
tcp有六种标示:SYN(建立连接), ACK(确认), PSH(传送), FIN(结束), RST(重置), URG(紧急)
tcp三次握手.png一、第一次握手
客户端向服务器发出连接请求报文,这时报文首部中的同步位SYN=1,同时随机生成初始序列号seq=x,此时,tcp客户端进程进入了SYN-SENT(同步已发送状态)状态。TCP规定,SYN报文段(STYN=1的报文段)不能携带数据,但需要消耗一个序列号。这个三次握手的开始,表示客户端想要和服务端建立连接。
第二次握手
TCP服务器收到请求以后,如果同意连接,则发出确认报文。确认报文中应该 ACK=1,SYN=1,确认号是ack=x+1,同时也要为自己随机初始化一个序列号 seq=y,此时,TCP服务器进程进入了SYN-RCVD(同步收到)状态。这个报文也不能携带数据,但是同样要消耗一个序号。这个报文带有SYN(建立连接)和ACK(确认标志),询问客户端是否准备好。
第三次握手
TCP客户端进程收到确认后,还要向服务器给出确认。确认报文的ACK=1,ack=y+1, 此时,TCP连接建立,客户端进入ESTABLISHED(已建立连接)状态。
TCP规定,ACK报文段可以携带数据,但是如果不携带数据则不消耗序号,这里客户端表示我已经准备好。