TCP協議分析

TCP協議分析

一,實驗目的

1.掌握TCP協議的首部格式。

2.掌握TCP協議的序號確認機制。

3.掌握TCP協議的流量控制機制。

4.學會協議分析軟件發送自定義數據包的方法。

二,實驗原理

1.TCP協議是面向連接服務和提供可靠數據傳輸的協議,通過抓包分析TCP如何建立連接,數據傳輸,釋放連接來分析TCP協議。

2.TCP協議是通過三次握手來建立連接,通過序列號和確認號來維護雙方的通信,通過發送窗口的大小來控制流量。

3.通過多臺電腦建立一臺電腦的TCP連接,可以分析流量控制的實質。

三,實驗步驟


1.在IP地址爲 192.168.0.250的主機A的命令行窗口裏輸入telnet 218.65.113.46 會發現連接不上,因爲23號端口沒有打開。打開IP地址爲218.65.113.46的主機B的瀏覽器和主機A的抓包軟件Irris,然後在主機A命令行輸入telnet 218.65.113.46 80,過濾TCP及80,23端口,捕獲TCP協議數據包,並分析。  


(1)

這是第一次握手: IP地址爲192.168.0.250的主機A向IP地址爲218.65.113.46的主機B發送連接請求,A隨機初始化自己的序列號50596762,確認號爲0,初始化A的接收窗口大小爲16384,發送SYN=1,此時ACK=0。

 (2)

這是第二次握手: B 隨機初始化自己的序列號804733534,確認號爲A第一次握手的序號加1(期望對方發送的下一個數據的第一個字節的編號)做確認,爲50596763,初始化B的接收窗口大小,發送SYN=1,ACK。

(3)

第三次握手:  主機A對主機B做確認,SYN=0,ACK=1,序列號爲上一幀的確認號,確認號爲B第二次握手的序號加1。

  (4)第4至9幀。


第四幀爲IP地址爲192.168.0.250的主機A向IP地址爲218.65.113.46的主機B發送的幀


 

(5)第五幀爲B向A發送的:

(7)第7幀還是B向A發送的:

(11)由於有條件的抓包,有些特殊情況不特別列出來分析。

TCP協議有正常斷開連接和非正常斷開連接。RST爲1表示爲異常斷開連接。RST復位重置標記,表示TCP連接中出現嚴重錯誤,必須強行釋放連接。

注意:在TCP中,特殊報文(SYN=1,FIN=1,RST=1)的確認號加1。

實驗分析

(1)TCP 協議是面向字節的。TCP 將所要傳送的報文看成是字節組成的數據流,並使每一個字節對應於一個序號。在連接建立時,雙方要商定初始序號。TCP 每次發送的報文段的首部中的序號字段數值表示該報文段中的數據部分的第一個字節的序號。 TCP 的確認是對接收到的數據的最高序號表示確認,表示接收端期望下次收到的數據中的第一個數據字節的序號。TCP是期望確認和累積確認。

(2)TCP屬於SR(選擇性重傳),即發送方某個分組出錯或丟失只重傳該分組。接收方增加接受窗口(接受緩存),若收到的分組在接收窗口內且亂序,緩存該分組,等到分組按序後一起提交,接受窗口的大小一般等於發送方窗口的大小。

(3)TCP建立連接的過程稱爲3次握手,第一次握手(syn=1,ack=0,sn1=隨機數,ackno=0),第二次握手(syn=1,ack=1,sn2=隨機數,ackno=sn1+1),第三次握手只是對第二次作確認。TCP 釋放連接的過程置FIN標記爲1。

(4)TCP的流量控制指的是接收方明確地通過接收窗口大小,限制發送方發送窗口的最大值,從而達到接收方能夠擁有足夠的緩存接收數據的目的。TCP流量控制:發送端如果發送的數據很小,第一次會照常發送,後面的會等待(這裏windows是200ms)等發送數據較大時再放入TCP段中發送。可以在命令行輸入telnet IP地址 21,IP地址主機打開ftp服務器,連接上後,輸入ab,會分別打包a,b發送個對方。如果快速的輸入abc,則第一次發a,第二次就會有bc一起發送出去。(這裏不抓包做實驗分析。)

 

wKioL1haIpOAXvFWAAKfksmzLg0394.png

wKioL1haIpWT-x9NAAOTKhAQmoU920.png

wKioL1haIpXhDBCUAAHplaxV0IA853.png

wKiom1haIpeS9-XqAAJmnCqsIjI239.png

wKioL1haIpjiEUHSAAKbSuS1aEc967.png

wKiom1haIpnQTUQPAALHm6cotWA730.png

wKioL1haIpqB3kRhAALHm6cotWA638.png


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章