3)退出,关闭WinSocket,释放资源
1
2
3
4
5
6
|
vuser_end() { lrs_close_socket( "socket0" ); return 0; } |
4)定义WinSocket发送的数据内容buf1
1
2
3
4
5
6
|
;WSRData 2 1 send buf1 50 "backtracker and simon welcome you to visit www.neversaydie.cc" -1 |
5)编译脚本
3.执行脚本并用Wireshark抓包
在LR所在的机器运行wireshark,Capture Filter设置为“tcp and port 4001”,开始抓包,然后运行LR脚本。抓包结果如下图:
SocketsEcho程序运行结果如下图:
四、实验结果分析
1.三次握手
1)前两桢数据客户端发送SYN包到服务器,并进入SYN_SEND状态,等待服务器确认;
2)第三桢服务器收到SYN包,必须确认客户的SYN,同时自己也发送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态;
3)第四桢客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入ESTABLISHED状态
此时完成三次握手,建立了TCP连接。
2.发送数据
第六桢发送数据,从截图上可以看出数据已经发送了。
3.四次握手
1)客户端发送一个FIN报文给服务器,表示我将关闭客户端到服务器端这个方向的连接。
2)服务器收到报文后,发送一个ACK报文给客户端
3)服务器发送一个FIN报文给客户端,表示自己也将关闭服务器端到客户端这个方向的连接。
4)客户端收到报文后,发回一个ACK报文给服务器
此时完成四次挥手,关闭了TCP连接。