以太網幀,IP,TCP,UDP首部結構

1.以太網幀的格式

這裏寫圖片描述

2.IP報頭格式

IP是TCP/IP協議簇中最爲重要的協議。所有的TCP,UDP, ICMP和IGMP數據都以IP數據報格式傳輸。IP提供的是不可靠、無連接的協議。

這裏寫圖片描述

普通的IP首部長爲20個字節,除非含有選項字段。

4位版本:目前協議版本號是4,因此IP有時也稱作IPV4.

4位首部長度:首部長度指的是首部佔32bit字的數目,包括任何選項。由於它是一個4比特字段,因此首部長度最長爲60個字節。

服務類型(TOS):服務類型字段包括一個3bit的優先權字段(現在已經被忽略),4bit的TOS子字段和1bit未用位必須置0。4bit的TOS分別代表:最小時延,最大吞吐量,最高可靠性和最小費用。4bit中只能置其中1比特。如果所有4bit均爲0,那麼就意味着是一般服務。

總長度:總長度字段是指整個IP數據報的長度,以字節爲單位。利用首部長度和總長度字段,就可以知道IP數據報中數據內容的起始位置和長度。由於該字段長16bit,所以IP數據報最長可達65535字節。當數據報被分片時,該字段的值也隨着變化。

標識字段:標識字段唯一地標識主機發送的每一份數據報。通常每發送一份報文它的值就會加1。

生存時間:T T L(time-to-live)生存時間字段設置了數據報可以經過的最多路由器數。它指定了數據報的生存時間。T T L的初始值由源主機設置(通常爲 3 2或6 4),一旦經過一個處理它的路由器,它的值就減去 1。當該字段的值爲 0時,數據報就被丟棄,併發送 I C M P報文通知源主機。

首部檢驗和:首部檢驗和字段是根據 I P首部計算的檢驗和碼。它不對首部後面的數據進行計算。 I C M P、
I G M P、U D P和T C P在它們各自的首部中均含有同時覆蓋首部和數據檢驗和碼。

3.TCP首部格式

  儘管T C P和U D P都使用相同的網絡層( I P),T C P卻嚮應用層提供與U D P完全不同的服務。T C P提供一種面向連接的、可靠的字節流服務。

  如果不計任選字段,它通常是 2 0個字節。

這裏寫圖片描述

源端口號和目的端口號:用於尋找發端和收端應用進程。這兩個值加上I P首部中的源端I P地址和目的端I P地址唯一確定一個T C P連接。

序號字段:序號用來標識從T C P發端向T C P收端發送的數據字節流,它表示在這個報文段中的的第一個數據字節。如果將字節流看作在兩個應用程序間的單向流動,則 T C P用序號對每個字節進行計數。序號是32 bit的無符號數,序號到達 232-1後又從0開始。

當建立一個新的連接時,SYN標誌變1。序號字段包含由這個主機選擇的該連接的初始序號ISN(Initial Sequence Number)。該主機要發送數據的第一個字節序號爲這個ISN加1,因爲SYN標誌消耗了一個序號(將在下章詳細介紹如何建立和終止連接,屆時我們將看到 F I N標誌也要佔用一個序號)

確認序號:既然每個傳輸的字節都被計數,確認序號包含發送確認的一端所期望收到的下一個序號。因此,確認序號應當是上次已成功收到數據字節序號加 1。只有ACK標誌(下面介紹)爲 1時確認序號字段纔有效。發送ACK無需任何代價,因爲 32 bit的確認序號字段和A C K標誌一樣,總是T C P首部的一
部分。因此,我們看到一旦一個連接建立起來,這個字段總是被設置, ACK標誌也總是被設置爲1。TCP爲應用層提供全雙工服務。這意味數據能在兩個方向上獨立地進行傳輸。因此,連接的每一端必須保持每個方向上的傳輸數據序號。

首都長度:首部長度給出首部中 32 bit字的數目。需要這個值是因爲任選字段的長度是可變的。這個字段佔4 bit,因此T C P最多有6 0字節的首部。然而,沒有任選字段,正常的長度是 2 0字節。

標誌字段:在T C P首部中有 6個標誌比特。它們中的多個可同時被設置爲1.
    URG緊急指針(u rgent pointer)有效。
    ACK確認序號有效。
    PSH接收方應該儘快將這個報文段交給應用層。
    RST重建連接。
    SYN同步序號用來發起一個連接。這個標誌和下一個標誌將在第 1 8章介紹。
    FIN發端完成發送任務。

窗口大小:T C P的流量控制由連接的每一端通過聲明的窗口大小來提供。窗口大小爲字節數,起始於確認序號字段指明的值,這個值是接收端正期望接收的字節。窗口大小是一個 16 bit字段,因而窗口大小最大爲 65535字節。

檢驗和:檢驗和覆蓋了整個的 T C P報文段:T C P首部和T C P數據。這是一個強制性的字段,一定是由發端計算和存儲,並由收端進行驗證。

緊急指針:只有當URG標誌置1時緊急指針纔有效。緊急指針是一個正的偏移量,和序號字段中的值相加表示緊急數據最後一個字節的序號。 T C P的緊急方式是發送端向另一端發送緊急數據的一種方式。

選項:最常見的可選字段是最長報文大小,又稱爲 MSS (Maximum Segment Size)。每個連接方通常都在通信的第一個報文段(爲建立連接而設置 S Y N標誌的那個段)中指明這個選項。它指明本端所能接收的最大長度的報文段。

4. UDP首部

UDP是一個簡單的面向數據報的運輸層協議:進程的每個輸出操作都正好產生一個UDP數據報,並組裝成一份待發送的 I P數據報。這與面向流字符的協議不同,如 T C P,應用程序產生的全體數據與真正發送的單個 I P數據報可能沒有什麼聯繫。

這裏寫圖片描述

端口號:用來表示發送和接受進程。由於 I P層已經把I P數據報分配給T C P或U D P(根據I P首部中協議字段值),因此T C P端口號由T C P來查看,而 U D P端口號由UDP來查看。T C P端口號與UDP端口號是相互獨立的。

長度:UDP長度字段指的是UDP首部和UDP數據的字節長度。該字段的最小值爲 8字節(發送一份0字節的UDP數據報是 O K)。

檢驗和:UDP檢驗和是一個端到端的檢驗和。它由發送端計算,然後由接收端驗證。其目的是爲了發現UDP首部和數據在發送端到接收端之間發生的任何改動。

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