TCP三次握手和四次挥手抓包详解 |
您所在的位置:网站首页 › 握手包要抓多久 › TCP三次握手和四次挥手抓包详解 |
这是我在ensp上搭建的小实验,并通过Wireshark抓包观察TCP握手过全过程; 服务器配置 图2 客户端访问 图3 抓包观察 图4 1)第一次握手 TCP 协议规定,SYN 置 1 的报文段不能携带数据,但是要消耗一个序号 第一次握手:客户端发送syn包(seq=x)到服务器,并进入SYN_SENT状态,等待服务器确认; 图5 2)第二次握手 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(seq=y),即SYN+ACK包,此时服务器进入SYN_RECV状态; 图6 3)第三次握手 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。 握手过程中传送的包里不包含数据,三次握手完毕后,也通知其上层应用进程:TCP连接已经建立,客户端与服务器才正式开始传送数据。 四次挥手与建立连接的“三次握手”类似,断开一个TCP连接则需要“四次握手”。 TCP 的标准规定,FIN报文即使不携带数据信息,也需要消耗一个seq 图7 图8 1)第一次挥手 客户端给服务端发送TCP包,用来关闭客户端到服务端的数据传送,FIN=1,ACK=1,seq=158,ack=308。 图9 2)第二次挥手 服务端收到客户端的FIN报文段后,回应一个应答,ACK=1,seq=308,ack=159,及y+1。 图10 3)第三次挥手 客户端口连接已释放,第三次握手是服务器端释放连接表示我的数据已经传输完了,发送FIN报文段,FIN=1,ACK=1,seq=308,ack=159。 图11 4)第四次挥手 客户端收到服务端的FIN报文后,回应应答,发回ACK确认,ACK=1,seq=159,ack=309。 end |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |