在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:
建立连接时,客户端发送syn包到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:
服务器收到syn包,必须确认客户的SYN,同时自己也发送一个SYN包),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:
客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据.
TCP报文结构图:
以下是我用wireshark抓的自己写的TCP C/S的三次握手包,三个tcp包(包含了物理帧+IP头+TCP头):(这操蛋的排版,我决定忽视这个问题了)
1
0000 48 5b 39 e9 e5 c0 b8 70 f4 1c c3 0808 00 45 00
以颜色为单位,分别是物理帧下的目的MAC,源MAC,协议类型(0800是IP协议)
0010 00 34 21 52 40 00 80 06 78 a4 73 9b 3c be73 9b
IP段我挑着解释,毕竟不是本文的重点,若读者有兴趣,可以去看我解释ICMP的那篇文章
还是以颜色为单位,发送者IP(伪造后别人就很难追查了),目的IP
0020 3c d9 0c 2a