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連接。
原文轉自:http://www.anti-gravitydesign.com