第七章 IPv4各字段和分片

2021-05-28 05:04:05 字數 3243 閱讀 6511

1:網路層分組稱為資料報,各個字段含義依次如下

1:版本:ip協議版本,如果乙個裝置不支援此版本分組,則資料報會被丟棄而不是進行錯誤的解讀

2:首部長度:ip資料報首部長度,20~60位元組

3:服務型別:可以定義優先順序,當網路擁塞的時候,優先丟棄優先順序低的資料報,該字段還可以定義區分服務(具體神馬玩意兒我也不曉得),以前的協議此字段還可定義延時,吞吐量等,但現在ietf已經重新解讀了該字段

4:總長度:首部加資料總長度,此字段是16位,所以ip資料報最大長度為65535位元組,乙太網幀裡面資料的長度為46~1500位元組,如果ip資料報太短,必須填充到46位元組,這也是這個字段存在的意義,因為通過幀首部和尾部,其實可以計算出封裝在裡面資料的大小

5:標識,標誌,分片偏移:分片相關的3個字段,後面解釋

6:生存時間:現在定義為資料報的最大跳數,當分組到達路由器,首先將此字段-1,如果減後為零,則丟棄此資料報,此字段是為了防止資料報在網路中的死迴圈,此數值約為網路中任意兩台主機最大跳數*2,如果想限制乙個分組只能在區域網中流動,則可設此字段為1

7:協議:定義此ip資料報封裝了什麼協議的資料,如tcp,udp,icmp等

8:首部校驗和:後面解釋

9:源ip位址

10:目的ip位址

11:選項+填充(0~40個位元組)

1:mtu

1:mtu:可封裝在幀中的最大資料長度,乙太網區域網1500位元組,ppp296位元組

2:不同的資料鏈路層會有不同的幀格式和長度,乙個分組到達乙個路由器前採用一種幀格式,在路由器中取出ip資料報,然後被打包成傳送介面所在資料鏈路層的幀格式,如果mtu變小,資料報就會被分片,

3:源點通常不會對ip資料報進行分片,因為運輸層會把資料劃分成與源點資料鏈路層相適應的大小,只有目的主機才會進行分片的重灌,分片可能會經過不同的路由到達目的主機

4:只有資料報中的資料會被分片,而首部會被複製,但有些欄位值會被改變,標誌,分片偏移,總長度一定會被改變,校驗和會被重新計算

2:與分片相關的字段

1:標識(id):16位,資料報離開源主機時,會被分配乙個正整數標識,然後標識遞增1,當資料報被分片時,標識會被複製,這樣相同的分片也就有相同的標識,這有利於目的主機的重灌

2:標誌(flag):3位,第一位保留,第二位"不可分片位",為1則此資料報不能被分片,如果mtu不支援此資料報通過,則資料報被丟棄,並向源主機傳送icmp差錯報文,第三位"還有分片位",為1則表示還有分片,為0表示此分片是最後乙個分片

3:分片偏移:13位,假設乙個4000個位元組的資料報被分成3個分片,分別攜帶資料段為0~1399,1400~2799,2800~3999,每個分片此標誌值為a=0/8=0,b=1400/8=175,c=2800/8=350,之所以要除以8,是因為此欄位13位太短了,路由器分片時,會選擇能被8整除的起始位址,從這裡也可以看出,每個資料報在自己內部起始資料索引都是0,如果被分片的資料再次分片,則會繼承原始資料報的分片索引

3:分片組裝過程

1:標識相同的情況下,找到偏移為0的分片,此為第乙個分片

2:用第乙個分片的大小/8,就是下乙個分片的偏移,

3:把第乙個和第二個分片大小之和/8,就是下下個分片的偏移,以此類推

4:直到找到標誌位"還有分片位"為0的分片

選項最長40位元組,定義了一些可選功能,選項由tlv(type-length-value)構成

1:記錄路由:資料報每經過乙個路由器,路由器負責將其出口ip位址填入選項,最多可記錄9個

2:嚴格的源路由:最多填充9個ip,資料報必須按照此ip流動,如果到達未被記錄的路由,則資料報被丟棄,並傳送差錯報文,如果資料報到達終點但填充的ip沒經過完,同樣丟棄此報文並傳送差錯報文

3:不嚴格的源路由:在2的基礎上,資料報可以經過未列出的路由,但所有列出的路由同樣必須經過

4:時間戳:有三種選擇

(1):經過每個路由器時,路由器必須填寫自己的本地時間

(2):經過每個路由器時,路由器填寫本地時間和ip

(3):填充給出ip,當經過此ip路由器時,路由器填充自己的時間

1:計算方法

(1):把分組劃分為k段,每段長度都是n位

(2):將每個段相加,和取反,得到的值即為檢驗和

2:檢驗方法

(1):將目的資料劃分為相同的k段,每段長n位

(2):相加,並且加上檢驗和,取反,如果為0,則檢驗正確

3:ip分組中的檢驗和

原理同上,計算過程中把首部用於計算,計算時去除檢驗和,檢驗時不去除

1:基礎:

1: atm是交換廣域網,它與區域網,點對點廣域網傳輸ip資料報情況不同

2:ip資料報使用的是atm中的aal5層,此層最大能接受65535個位元組資料報,並封裝為48位元組信元

3:整個過程是:ip資料報進入路由器(進入點路由器),通過進入點路由器進入atm網,在進入點路由器中,ip資料報被封裝為48位元組的信元,信元會將ip資料報封裝在其首部和尾部中,一直到達離去點路由器,然後信元將被組裝成ip資料報

4:在進入點路由器,解析ip資料報,得到目的ip位址,通過atmarp(類似於arp)獲得實體地址,然後建立虛連線併發送信元

1:分組竊取:複製ip資料報

2:分組篡改:獲取分組,改變其中的內容,然後傳送出去,此攻擊可以被資料完整性機制檢測到

3:ip偽裝:偽裝為一ip向被攻擊者發包,此攻擊可以被起源鑑別機制檢測到

ipsec能檢測6提到的3種攻擊,此協議是與ip協議結合在一起使用的,它在兩個實體間建立了一種面向連線的服務,提供以下四種服務

1:定義演算法和金鑰

2:分組加密

3:資料完整性:如果接受到的分組不能通過資料完整性測試,則此分組會被丟棄

4:起源鑑別

第七章 常量和字段

字段修飾符 const 常量的值時在編譯時確定的,被視為型別的一部分,是靜態成員.會導致建立元資料.引用這個常量時會把這個值直接嵌入il 中.static 靜態字段,型別的一部分,占用的記憶體是在型別物件中分配的.型別物件時在該型別第一次被訪問到的時候載入的.對於例項欄位則是在建立例項時分配的.而且...

第七章 常量和字段

目錄 7.1 常量 7.2 字段 常量是值從不變化的符號。定義常量符號時,它的值必須能在編譯時確定。確定後,編譯器將常量值儲存到程式集元資料中。意味著只能定義編譯器可以識別的基元型別常量。然而c 也可以定義非基元型別的常量變數,前提是把值設為null。基元型別有 boolean,char,byte,...

第七章 建立計算字段

本章介紹計算字段,如何建立以及從應用程式使用別名引用它們 1.我們需要直接從資料庫中檢索出轉換 計算或格式化過得資料。2.字段 field 基本上與列 column 的意思相同,經常互換使用,不過資料庫列一般稱為列,而術語字段通常用在計算欄位的連線上。3.拼接字段 拼接 concatenate 將值...