實驗二傳輸層協議分析

2021-03-04 02:16:33 字數 2639 閱讀 1983

理解tcp報文首部格式和字段的作用,tcp連線的建立和釋放過程,tcp資料傳輸中編號與確認的作用。

應用tcp應用程式傳輸檔案,擷取tcp報文,分析tcp報文首部資訊,tcp連線的建立過程,tcp資料的編號和確認機制。

tcp協議是傳輸控制協議的簡稱,工作在網路層協議之上,是面向連線的,可靠的,端到端的傳輸層協議。

tcp報文段分為頭部和資料兩部分,如圖1:

圖1 tcp報文段的總體結構

tcp報文段首部又分為固定部分和選項部分,固定部分為20b,如圖2所示,這些欄位的組合實現了tcp的所有功能。

圖2 tcp報文段的首部

01531

tcp採用傳輸輸連線的方式傳送tcp報文,傳輸連線包括連線建立、資料傳輸和連線釋放三個階段。

tcp連線建立採用「3次握手」方式。

首先,主機a的tcp向主機b的tcp發出連線請求報文段,其首部中的同步位syn應置1,同時選擇乙個序號x,表明在後面傳送資料時的第乙個資料位元組的序號是x+1,如圖3所示:

圖3 tcp連線建立的3次握手過程

然後,主機b的tcp收到連線請求報文段後,若同意,則發回確認。在確認報文段中應將syn和ack都置1,確認號應為x+1,同時也為自己選擇乙個序號y。

最後,主機a的tcp收到b的確認後,要向b發回確認,其ack置1,確認號為y+1,而自己的序號為x+1。tcp的標準規定,syn置1的報文段都要消耗掉乙個序號。同時,執行客戶程序的主機a的tcp通知上層應用程序,連線已經建立。

當主機a向b傳送第乙個資料報文段時,其序號仍為x+1,因為前乙個確認報文段並不消耗序號。

當執行伺服器程序的主機b的tcp收到主機a的確認後,也通知其上層應用程序,連線已經建立。

另外,在tcp連線建立的過程中,還利用tcp報文段首部的選項字段進行雙方最大報文段長度mss協商,確定報文段的資料字段的最大長度。雙方都將自己能夠支援的mss寫入選項字段,比較之後,取較小的值賦給mss,並應用於資料傳送階段。

為了保證tcp傳輸的可靠性,tcp採用面向位元組的方式,將報文段的資料部分進行編號,每個位元組對應乙個序號。並在連線建立時,雙方商定初始序號。在報文段首部中,序號欄位和資料部分長度可以確定傳送方傳送資料的每乙個位元組的序號,確認號字段則表示接收方希望下次收到的資料的第乙個位元組的序號,即表示這個序號之前的資料位元組均已收到。

這樣既做到了可靠傳輸,又做到了全雙工通訊。

當然,資料傳送階段有許多複雜的問題和情況,如流量控制、擁塞控制、重傳機制等,本次實驗不**。

在資料傳輸結束後,通訊的雙方都可以發出釋放連線的請求。tcp連線的釋放採用「4次握手」。如圖

圖4 tcp連線釋放的4次握手過程

首先,設圖4中主機a的應用程序先向其tcp發出釋放連線的請求,並且不再傳送資料。tcp通知對方要釋放從a到b這個方向的連線,將發往主機b的tcp報文段首部的中止位置1,其序號x等於前面已傳送過的資料的最後乙個位元組的序號加1。

主機b的tcp收到釋放連線通知後即發出確認,其序號為y,確認號為x+1,同時通知高層應用程序,如圖中的箭頭①。這樣從a到b的連線就被釋放了,連線處於半關閉狀態,相當於主機a對主機b說「我已經沒有資料傳送了。但是如果你還有資料要傳送,我仍然接收。

」此後,主機b不再接收a發來的資料。但若主機b還有一些資料要發給a,則可以繼續傳送(這種情況很少)。主機a只要正確收到資料,仍然向b傳送確認。

若主機b不再向主機a傳送資料,其應用程序就通知tcp釋放連線,如圖中的箭頭②。主機b發出的連線釋放報文段必須將中止位fin和確認位ack置1,並使其序號仍為y(因為簽名傳送的確認報文段不消耗序號),但是還必須重複上次已經傳送過的ack=x+1。主機a必須對此發出確認,將ack置1,ack=y+1,而自己的序號仍然是x+1,因為根據tcp標準,前面傳送過的fin報文段要消耗掉乙個序號。

這樣就把b到a的反方向的連線釋放掉。主機a的tcp再向其應用程序報告,整個連線已經全部釋放。

步驟1 在wireshark中設定過濾條件,協議為tcp http,位址為本機->any,並開始截獲報文;

步驟2開啟完成後,儲存截獲的報文並命名為「tcp學號」,分析捕獲的報文。

這裡,tcp的連線和建立採用的是:三次握手方式,本機是120.192.249.45,遠端主機是111.20.240.144。

步驟3 分析tcp連線建立過程的前3個報文,填寫下表1:

表1 tcp建立過程的三個報文資訊

步驟4 分析截獲報文中資料傳送部分的第一條tcp報文及其確認報文,將報文中的字段值填寫在**2

表2 tcp報文首部資訊

表2 tcp報文首部資訊

步驟5 tcp連線建立時,其報文首部與其它tcp報文不同,有乙個字段,它的作用是什麼?結合ieee802.3協議規定的乙太網最大幀長分析此資料是怎麼得出來的?

答:option選項字段實現的是特殊功能。比如時間截,sack,max segment

步驟6分析tcp資料傳送階段的前8個報文,將報文資訊填入表3:

表3 tcp資料傳送部分的前8個報文

在實驗中,通過分析截獲的tcp報文首部資訊,可以看到首部中的序號、確認號等字段是tcp可靠連線的基礎。

分析tcp頭部資訊,分析「3次握手」過程。通過對資料傳送階段報文的初步分析,了解資料的編碼和確認機制。

總之,tcp協議中的各項設定都是為了在資料傳輸時提供可靠的面向連線的服務。

使用c語言構造udp資料報程式。

1) udp首部和偽首部結構體定義

2)構建udp報文資料

一種高效的無線傳輸層安全握手協議

第 卷第 期 計算機工程 年 月 安全技術 文章鱅號文獻標識碼 中圈分類號 一種高效的無線傳輸層安全握手協議 諶雙雙,陳澤茂,王浩 海軍工程大學電子工程學院,武漢 攮要 現有的無線傳輸層安全 握手協議通訊量大,且不能對伺服器證書的有效性進行 驗證。針對上述問題,提出一種改進 的 協議。在無線通訊客戶...

北航訊號與測試技術實驗二感測器實驗報告

訊號與測試技術實驗報告 實驗二感測器實驗 院系 自動化科學與電氣工程學院 姓名 學號 班級 一 實驗目的 1.掌握壓力感測器的原理 2.掌握壓力測量系統的組成 3.掌握壓力感測器靜態校準實驗和靜態校準資料處理的一般方法。二 實驗裝置 本實驗系統由活塞式壓力計,矽壓阻式壓力感測器,訊號調理電路,4 位...

協議分析實驗三

分析ip資料報的格式,對icmp協議進行分析。使用ethereal對icmp協議資料報檔案進行分析。教材的動手實踐專案4 1 教材的動手實踐專案4 2 ip 192.168.234.67 教材的動手實踐專案4 3 2.18位元組 3.20位元組 4.8位元組 5.mtu的值為1472 6.ping ...