【网络】tcp三次握手协议
原理:
http协议实例:
第一次握手:
114(client)向服务方207(server)发送Connection establish request请求(SYN):
此时随机产生的sequence number=0,为方便理解,标记为client_seq_num=x
第二次握手:
207向114发送一个响应报文Connection establish acknowledge (SYN+ACK):
此时随机产生的sequence number=0,为了方便理解,表示为server_seq_num=y,ack number=1,为了便于理解,表示为server_ack_num=x+1
第三次握手:
114做出回应
此时先校验ack number是否等于x+1,即server_ack_num=client_seq_num+1,再确认ACK=1,若都符合,则开始建立连接。
tcp协议的三次握手协议分析:
名词解释:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)
第一次握手:
随机产生seq number=3228637477,将数据包发生到8003。
17:04:31.246377 IP xx.xx.xx.xx.39450 > xx.xx.xx.xx.8003: S 3228637477:3228637477(0) win 32792 <mss 16396,sackOK,timestamp 1964359825 0,nop,wscale 7>
第二次握手:
向39450发送ack number=3228637478,即39450发来的seq number+1
17:04:31.246387 IP xx.xx.xx.xx.8003 > xx.xx.xx.xx.39450: S 3227472167:3227472167(0) ack 3228637478 win 32768 <mss 16396,sackOK,timestamp 1964359825 1964359825,nop,wscale 7> xx.xx.xx.xx.
17:04:31.246387 IP xx.xx.xx.xx.8003 > xx.xx.xx.xx.39450: S 3227472167:3227472167(0) ack 3228637478 win 32768 <mss 16396,sackOK,timestamp 1964359825 1964359825,nop,wscale 7> xx.xx.xx.xx.
第三次握手:
39450确认ack number正确,即为第一次握手的seq number+1,且ack=1,则建立连接成功
17:04:31.246394 IP xx.xx.xx.xx.39450 > xx.xx.xx.xx. 8003: ack 1 win 257 <nop,nop,timestamp 1964359825 1964359825>39450 > 10.20.110.36.8003: . ack 1 win 257 <nop,nop,timestamp 1964359825 1964359825>
17:04:31.246394 IP xx.xx.xx.xx.39450 > xx.xx.xx.xx. 8003: ack 1 win 257 <nop,nop,timestamp 1964359825 1964359825>39450 > 10.20.110.36.8003: . ack 1 win 257 <nop,nop,timestamp 1964359825 1964359825>