IP TCP UDP 報文格式

2021-07-10 22:24:20 字數 2855 閱讀 9329

**:

ip資料報

版本:v4

報頭長度:它是以32位元為單位的。最常見的是5(不含ip選項,20b),也有為6的(含ip選項,24b)。

tos(業務型別):ip協議是乙個不保證質量的協議。它通過 

tos來彌補一下其qos的不足。其8個位元的含義如下:

三個位元的優先順序指明本資料報的優先順序,允許傳送方表示資料報的重要程度。優先順序從0到7,其中「0」表示普通使用者優先順序,「7」表示網路控制優先順序。

d、t、r表示本資料報希望的傳輸型別。d=1表示低時延,t=1表示高吞吐量,r=1表示高可靠性。注意,優先順序對網路沒有強制性,目前大多數網路對此一般不作處理,但為技術的進一步的提供了手段。

總長度:指明ip資料報的長度,以位元組為單位。資料報最長為216=64k位元組

識別符號、標誌和分片偏移量:它們用於分片和重組,下面一同介紹。

分片和重組的具體過程:

在將資料報分片時,先將原資料報的報頭複製到每個資料報片中,然後填入「標誌」域,它一共有3個位元,第乙個位元指明是否要對資料報分片,為『1』表明這是乙個分片資料報;第二個位元指明該分片是否是這個資料報的最後乙個分片,『1』表示不是最後乙個分片,也就是說分片未完;第三個位元未用。其中的識別符號指明了它原來屬於哪乙個資料報。然後填入「偏移量」域,它指明該分片的資料在原來資料只能中從資料頭開始的位元組偏移量,第乙個分片的偏移量為0,這樣可以確定資料片在原資料中的位置,以便到終端進行重組。它還要填入「總長度」域,它指明分片的長度。

當各分片通過各種路徑到達接收機的時候,通過「標誌」域的第一位可以知道這是乙個分片,並且由「識別符號」知道它屬於哪乙個資料報;由第二位知道是否收到了最後乙個分片,如果收到了最後乙個分片,由該分片中的「偏移量」和所有屬於該資料報的資料總長度就可以知道是否收到了所有的分片,從而可以進行重組。重組好資料報後就可以交給ip層去處理。

ttl(time to live,生存期):它用來處理時延。它以秒為單位,指明了資料報在網路中的最長有效時間。路由器處理報頭時,從ttl中減1;若資料報在路由器中排隊而被延遲;則要從ttl中減去等待時間;若ttl=0則將它從網路中刪除。

協議:它指明資料區中的資料格式,說明在ip的上一層(傳輸層)所採用的協議,如(tcp、udp)。當ip資料報到達對端以後,將按照「協議」來將資料報交給傳輸層進行相應處理。

頭部校驗和:對報頭的crc。

ip選項:包括時間戳、源站路由、記錄路由,ip資料報中可以沒有這些選項。

ping程式為我們提供了檢視ip記錄路由(rr)選項的機會。大多數不同版本的ping程式都提供-r選項,以提供記錄路由的功能。它使得ping程式在傳送出去的ip資料報中設定iprr選項(該ip資料報包含icmp回顯請求報文)。這樣,每個處理該資料報的路由器都把它的ip位址放入選項欄位中。當資料報到達目的端時,ip位址清單應該複製到icmp回顯應答中,這樣返回途中所經過的路由器位址也被加入清單中。當ping程式收到回顯應答時,它就列印出這份ip位址清單。但由於ip選項長度有限,利用這種方式檢視路由,只能查到9跳

tcp報文

序號:指出段中資料在傳送端資料流中的位置。

確認號:指出本機希望下乙個接收的位元組的序號。

頭長:指出以32位元為單位的段頭長度。它是針對便長的「選項」域設計的。

碼位:有些報文段是用於傳輸資料的,但有些報文段僅僅攜帶了確認資訊,另一些報文段攜帶的是建立和關閉連線的請求。它使用「碼位」來指出段的目的與內容。這6個位元各位的意義如圖:

0  urg,緊急指標字段可用

1  ack,確認字段可用

2  psh,本報文段請求急迫(push)操作

3  rst,連線復位

4  syn,序號同步,用於建立連線中的同步

5  fin,傳送方位元組流結束

由於有時傳送方希望終止操作,不想接收方接收完所有的位元。如遠端主機上的程式錯誤時就需要這種訊號。tcp將資料指定為「緊急」型,接收方收到這種資料後,會不必排隊而盡快通知應用程式。urg位元為1時,表明它是緊急的,其中的「緊急指標」指出了緊急資料在報文段中的結束位置。

當所有的緊急資料消失之後,tcp軟體會告訴應用程式恢復正常的操作狀態。push位提供了資料強迫傳輸機制,以強迫傳輸當前流中的資料,而不必等待緩衝區滿。遠端登入中,終端的擊鍵訊號就是用push操作來提供的。

視窗(滑動視窗):用於通知接收端接收緩衝區的大小。

理解tcp的面向連線特性:

一條tcp連線是一條虛電路,它通過主機ip位址和埠號來標識一條連線。如(192.168.2.37,21;192.168.2.30,21)就標識了一條tcp連線。所以兩個程式可以共享主機上的同一埠,因為連線不同。

連線的建立和拆除需要得到對方的認可,而udp中,一方傳送資料是不需要得到對方的認可的。

連線能保持狀態並實現可靠性,而無連線不能保持狀態。一般來說,控制資訊是通過tcp來傳遞的。

它是在無連線的協議,ip協議之上來實現面向連線的。

udp報文

udp信宿埠:乙個udp埠是乙個可讀寫的軟體結構,內部有乙個接收報文緩衝區。接收資料時,udp軟體要判斷此信宿埠是否與當前使用的埠匹配,如是,則將資料報放入相應的接收佇列,否則,拋棄該資料並向信源埠傳送「埠不可達」的差錯訊息報文。

長度:以位元組計的整個報文長度,最小為8,只有報頭。

校驗和:它是乙個可選項,以提高效率。

mysql報文格式 Mysql 報文格式

mysql client和server端之間的的資料根據不同的協議規則的進行組織傳送。每包資料在傳送的時候都要新增上協議頭。mysql原始碼採用5.7.10版本 協議頭 每個協議頭共4個位元組 包資料長度 前三個位元組表示資料部分的長度 不包括協議頭 三位元組能表示的最大長度是16m 1 2 24 ...

mysql報文格式 Mysql 報文格式

mysql client和server端之間的的資料根據不同的協議規則的進行組織傳送。每包資料在傳送的時候都要新增上協議頭。mysql原始碼採用5.7.10版本 協議頭 每個協議頭共4個位元組 包資料長度 前三個位元組表示資料部分的長度 不包括協議頭 三位元組能表示的最大長度是16m 1 2 24 ...

TCP報文格式 UDP報文格式 MAC幀格式

tcp和udp的區別 1 tcp是面向連線的,而udp是無連線的 2 tcp提供可靠服務,而udp不提供可靠服務,只是盡最大努力交付報文 3 tcp面向位元組流,tcp把資料看成一串無結構的位元組流,而udp是面向報文的 udp資料報 ip頭部 ip資料報 4 tcp有擁塞控制,udp沒有擁塞控制 ...