日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IPv4数据报格式及其语义

發(fā)布時間:2023/12/2 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IPv4数据报格式及其语义 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
IPv4數(shù)據(jù)報格式及其語義

一、IP數(shù)據(jù)報的格式如下圖所示

版本

首部長度

服務(wù)類型

數(shù)據(jù)報長度

16比特標(biāo)識

標(biāo)志

13比特片偏移

壽命

上層協(xié)議

首部檢驗和

32比特源IP地址

32比特目的IP地址

選項(如果有的話)

數(shù)據(jù)

IPv4數(shù)據(jù)報格式

二、各部分語義

1)版本(號):4bit,規(guī)定了數(shù)據(jù)包的IP協(xié)議版本;通過查看版本號,路由器能夠確定如何解釋IP數(shù)據(jù)報的剩余部分

2)首部長度:因為IPV4數(shù)據(jù)報可包含一些可變數(shù)量的選項,所以需要用這4bit來確定首部的長度,以確定IP數(shù)據(jù)報的數(shù)據(jù)部分實際從哪里開始。大多數(shù)IP數(shù)據(jù)報不包含選項,所以一般IP數(shù)據(jù)報具有20字節(jié)的首部

3)服務(wù)類型:8bit,服務(wù)類型包含在首部中以使不同類型的IP數(shù)據(jù)報能相互區(qū)分開來,例如,將實時數(shù)據(jù)報(如用于IP電話應(yīng)用)與非實時流量(如FTP)區(qū)分開來也許是有用,提供特定等級的服務(wù)是一個由路由器管理員決定的策略問題

4)數(shù)據(jù)報長度:這是IP數(shù)據(jù)報的總長度(首部加上數(shù)據(jù)),以字節(jié)計,因為該字段長為16bit,所以IP數(shù)據(jù)報的理論最大長度為65535字節(jié),然而數(shù)據(jù)報很少有超過1500字節(jié)的(因為IP數(shù)據(jù)還要靠數(shù)據(jù)鏈路層運輸?shù)?#xff0c;而鏈路層幀能承載的最大數(shù)據(jù)量為叫做最大運輸單元(Maximum Transmission Unit,MTU))

5)標(biāo)識、標(biāo)志、片偏移:

  要理解這三個內(nèi)容,要先理解一些其他知識

  (1)分片:把IP數(shù)據(jù)報中的數(shù)據(jù)分成兩個或者更多個較小的IP數(shù)據(jù)報,用單獨的鏈路層幀封裝成較小的IP數(shù)據(jù)報,每個這些較小的數(shù)據(jù)報稱為片

  (2)為什么要分片:因為每個IP數(shù)據(jù)報封裝在鏈路層幀中從一臺路由器傳輸?shù)较乱慌_路由器,而鏈路層幀能承載的最大數(shù)據(jù)量(最大運輸單? 元(Maximum Transmission Unit,MTU)是一定的,故鏈路層幀嚴(yán)格限制著IP數(shù)據(jù)報的長度;而且發(fā)送方和與目的路徑上的每段鏈路可能使用不同的鏈路層協(xié)議,且每種協(xié)議可能具有不同的MTU,所以就更有可能需要分片了,以便能夠使得數(shù)據(jù)報能夠順利的傳遞數(shù)據(jù)報

  (3)組裝:目的主機(jī)從相同源收到一系列數(shù)據(jù)報時,需要確定哪些數(shù)據(jù)報是分片,如果是分片的話,還要進(jìn)一步指導(dǎo)何時收到最后一個分片,如何將接收到的分片拼接起來以形成初始的數(shù)據(jù)報,故IPV4的設(shè)計者將標(biāo)識、標(biāo)志和片偏移字段放在IP數(shù)據(jù)報首部中,當(dāng)生成一個數(shù)據(jù)報時,發(fā)送主機(jī)為該數(shù)據(jù)報設(shè)置源和目的地址的同時,再填上標(biāo)識號

標(biāo)識:16bit,源主機(jī)發(fā)送IP數(shù)據(jù)報的時候,通常為它發(fā)送的每個數(shù)據(jù)報的標(biāo)識號加1,所以當(dāng)某個路由器需要對某一個數(shù)據(jù)報分片時,形成的每個數(shù)據(jù)報(分片)具有初始數(shù)據(jù)報的源地址、目的地址、與標(biāo)識號,這樣目的主機(jī)就可以判別哪些分片是屬于一個初始數(shù)據(jù)報的

標(biāo)志:3bit,由于IP是一種不可靠服務(wù),一個或者多個片可能永遠(yuǎn)到不了目的地,所以為了讓目的主機(jī)絕對的相信它已經(jīng)收到了初始數(shù)據(jù)報的最后一個片,最后一個片的標(biāo)志比特被設(shè)置為0,而所有其他片的標(biāo)志比特被設(shè)置為1

片偏移:13bit,標(biāo)示數(shù)據(jù)相對于初始數(shù)據(jù)報的偏移值,并且偏移值應(yīng)當(dāng)被規(guī)定以8字節(jié)塊為單位。所以除了最后一個片的所有初始有效載荷數(shù)據(jù)的數(shù)量應(yīng)當(dāng)是8字節(jié)的倍數(shù)

6)壽命:8bit,壽命(Time-To_Live ,TTL )字段是用來確保數(shù)據(jù)報不會永遠(yuǎn)(如由于長時間的路由選擇環(huán)路)在網(wǎng)絡(luò)中循環(huán),每當(dāng)數(shù)據(jù)報由一臺路由器處理時,該字段的值減1。若TTL字段減為0,則該數(shù)據(jù)報必須丟棄。

7)協(xié)議:8 bit,該字段僅當(dāng)一個IP數(shù)據(jù)報到達(dá)其最終目的地才會有用,改字段指示了IP數(shù)據(jù)報的數(shù)據(jù)部分應(yīng)交給哪個特定的運輸層協(xié)議,如:值為6應(yīng)該交給TCP,而值為17表示數(shù)據(jù)部分要交給UDP ,其他可能值查看? ?https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml

8)首部檢驗和: 16bit,首部檢驗和用于幫助路由器檢測收到的IP數(shù)據(jù)報中的比特錯誤。首部檢驗和是這樣計算的:將首部中的每2個字節(jié)當(dāng)做一個數(shù),用反碼運算對這些數(shù)求和;具體到發(fā)送方或接收方計算如下:

  在發(fā)送數(shù)據(jù)時,為了計算IP數(shù)據(jù)包的校驗和。應(yīng)該按如下步驟:
  (1)把IP數(shù)據(jù)包的校驗和字段置為0;
  (2)把首部看成以16位為單位的數(shù)字組成,依次進(jìn)行二進(jìn)制反碼求和;
  (3)把得到的結(jié)果存入校驗和字段中。
 ? ? 在接收數(shù)據(jù)時,計算數(shù)據(jù)包的校驗和相對簡單,按如下步驟:
  (1)把首部看成以16位為單位的數(shù)字組成,依次進(jìn)行二進(jìn)制反碼求和,包括校驗和字段;
  (2)檢查計算出的校驗和的結(jié)果是否等于零(反碼應(yīng)為16個0);
  (3)如果等于零,說明被整除,校驗和正確。否則,校驗和就是錯誤的,協(xié)議棧要拋棄這個數(shù)據(jù)包。

路由器要對每個收到的IP數(shù)據(jù)報計算其首部檢驗和,如果數(shù)據(jù)報首部中攜帶的檢驗和與計算得到的檢驗和不一致,則檢驗出是個差錯,路由器一般會丟棄檢測出錯誤的數(shù)據(jù)報

9)源和目的IP地址:32bit,當(dāng)某源生成一個數(shù)據(jù)報時,在這兩個字段中插入發(fā)送主機(jī)的IP地址和目的地的IP地址,通常源主機(jī)DNS查找來決定目的地址

10)選項:32bit,選項字段允許IP首部被擴(kuò)展。首部選項意味著很少使用,因此決定對每個數(shù)據(jù)報首部不包括選項字段的信息,這樣能夠節(jié)約開銷,但是因為有些數(shù)據(jù)報有選項,有些數(shù)據(jù)報沒有選項,故導(dǎo)致一臺路由器處理一個IP數(shù)據(jù)報所需的時間變化很大。

11)數(shù)據(jù)(有效荷載):32bit,這是數(shù)據(jù)報存在的首要理由!大多數(shù)情況下,IP數(shù)據(jù)報中的數(shù)據(jù)字段包含要交付給目的地運輸層報文段(UDP或TCP)

注:注意到一個IP數(shù)據(jù)報有總長為20字節(jié)的首部(假設(shè)無選項)如果一個數(shù)據(jù)報承載一個TCP報文,則每個(無分片的)數(shù)據(jù)報共承載了總長40字節(jié)的首部(20字節(jié)的IP數(shù)據(jù)報加上20字節(jié)的TCP首部)以及應(yīng)用文報文

三、關(guān)于標(biāo)識、標(biāo)志、片偏移的例子

  假設(shè)一個4000字節(jié)的數(shù)據(jù)報(20字節(jié)加上3980字節(jié)IP數(shù)據(jù)有效荷載)到達(dá)路由器,且必須被轉(zhuǎn)發(fā)到一條MTU為1500字節(jié)鏈路上,該如何進(jìn)行分片?

  答:初始數(shù)據(jù)報會被分為3個片,其中的每個片也是一個IP數(shù)據(jù)報,假定該數(shù)據(jù)報的發(fā)送時,主機(jī)給予的標(biāo)識號為777,三個片的特點如下:

字節(jié)

ID

偏移

標(biāo)志

第一片

1480

?

ID=777

Offset=0

Flag=1

第二片

1480

?

ID=777

Offset=185

Flag=1

第三片

1020(3980-1480*2)

ID=777

Offset=370

Flag=0


注:此時就需要4040個字節(jié)來運輸初始數(shù)據(jù)報,所以分片是需要開銷的

?

?

?

?

?

?

?

?

?

?

posted on 2019-06-24 22:20?初妍 閱讀(...) 評論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/alphabetical/p/11079902.html

總結(jié)

以上是生活随笔為你收集整理的IPv4数据报格式及其语义的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。