IP數據報格式,IP分片,IP編址,子網掩碼

一、Internet網絡層

Internet網絡層是典型的數據報網絡。主要功能是進行路由和轉發。
在這裏插入圖片描述

二、IP數據報格式

在這裏插入圖片描述

  • 版本號:4 bit,版本爲4或6。
  • 首部長度:以4個字爲單位。
  • 服務類型:8 bit,指示期望獲得那種類型的服務。只有在網絡提供區分服務(DiffServ)時使用。一般不使用。
  • 總長度:16 bit,表示IP分組的總字節數(首部+數據)。
  • 標識:16 bit,標識一個IP分組。IP協議利用一個計數器,每產生IP分組,計數器加1,作爲該IP分組的標識。
  • 標誌位:3 bit,第一個bit位保留;
    第二個DF(Don’t Fragment)比特位,標識路由器是否允許分片。
    DF=1:禁止分片;DF=0:允許分片。
    第三個MF(More Fragment)比特位,
    MF=1:非最後一片;MF=0:最後一片(或未分片)。
  • 片偏移:13 bit,以8個字節爲單位。一個IP分組分片封裝原IP分組數據的相對便宜量。未分片時,偏移量爲0。根據片偏移大小就可以判斷MF=0時具體是哪種情況。
  • 生存時間:8 bit,表示IP分組在網絡中可以通過的路由器數(或跳步數)。路由器轉發一次分組,TTL減1。如果TTL=0,路由器則丟棄該IP分組。
  • 協議:8 bit,指示IP分組封裝的是哪個協議的數據報。6爲TCP,表示封裝的是TCP段;17爲UDP,表示封裝的是UDP數據報。
  • 首部校驗和:16 bit,實現對IP分組首部的差錯檢測。每次路由器轉發時都重新校驗。即採用逐跳校驗。
  • 源IP地址:32 bit,標識發送分組的源主機/路由器(網絡接口)的IP地址。
  • 目的IP地址:32 bit,標識接收分組的主機/路由器(網絡接口)的IP地址。
  • 選項:長度可變,範圍在1~40 B之間,攜帶安全、源選路徑、時間戳和路由記錄等內容。實際很少使用。
  • 填充:長度可變,1~3 B之間,目的是補齊整個首部,符合32位對齊。即保證首部長度是4字節的倍數。

三、IP分片

MTU(最大傳輸單元):鏈路層數據幀可封裝數據的上限。
不同鏈路的MTU不同
當大IP分組向較小MTU鏈路轉發時,可以被“分片”(fragmented),IP分片到達目的主機後進行“重組”(reassembled)。
若不允許被分片,則丟棄分組。
注意:路由器只分片不重組,只有目的主機能進行重組。如果傳輸過程中有分片丟掉,目的主機收不全分片,則會把所有分片丟掉。
與分片有關的字段:總長度,標識,標誌位,片偏移。

IP分片過程:
假設原IP分組總長度爲L,待轉發鏈路的MTU爲M
若L>M,且DF=0,則可以/需要分片
分片時每個分片的標識複製原IP分組的標識
通常分片時,除最後一個分片,其他分片均分爲MTU允許的最大分片
一個最大分片可封裝的數據應是8的倍數,因此,一個最大分片可封裝的數據爲(公式中的20位首部長度):
d=M208×8d =\lfloor\frac{M - 20}{8}\rfloor×8
需要的總片數爲:
n=L20dn =\lceil\frac{L - 20}{d}\rceil
每片的片偏移字段取值爲:
Fi=d8×(i1),1inF{_i} =\frac{d}{8}×(i-1),\quad\quad1\leq i \leq n
每片的總長度字段爲:
Li={d+201i<nL(n1)di=n L{_i}=\left\{ \begin{aligned} d+20\quad\quad\quad1\leq i < n \\ L-(n-1)d\quad\quad i = n \end{aligned} \right.
每片的MF標誌位爲:
MFi={11i<n0i=nMF{_i=\left\{ \begin{aligned} 1\quad\quad1\leq i < n \\ 0\quad\quad\quad\quad i = n \end{aligned} \right.}

四、IP編址(addressing)

接口(interface):主機/路由器與物理鏈路的鏈接。
接口能實現網絡層功能。路由器通常有多個接口,主機通常只有一個或兩個接口。
IP地址:32比特(IPv4),編號標識主機、路由器的接口。
在這裏插入圖片描述
IP地址與每個接口關聯。

IP地址:
網絡號(NetID)- 高位比特
主機號(HostID)- 低位比特

IP子網:
IP地址具有相同的網絡號的設備接口。
不跨越路由器(第三及上層網絡設備)可以彼此物理聯通的接口。
在這裏插入圖片描述

“有類”編址:
在這裏插入圖片描述

特殊IP地址
在這裏插入圖片描述

私有IP地址:所謂私有地址就是在A、B、C三類IP地址中保留下來爲企業內部網絡分配地址時所使用的IP地址。
私有地址主要用於在局域網中進行分配,在 Internet上是無效的。這樣可以很好地隔離局域網和 Internet。私有地址在公網上是不能被識別的,必須通過NAT將內部IP地址轉換成公網上可用的IP地址,從而實現內部IP地址與外部公網的通信。公有地址是在廣域網內使用的地址,但在局域網中同樣也可以使用,除了私有地址以外的地址都是公有地址。

Class NetIDs Blocks
A 10 1
A 172.16 to 172.31 16
A 192.168.0 to 192.168.255 256

五、子網劃分與子網掩碼

子網劃分:沒有劃分子網時,IP地址是兩級結構。劃分子網後IP地址變爲三級結構。劃分子網只是把IP地址的主機號這部分進行再劃分,而不改變IP地址原來的網絡號。
IP地址:
網絡號(NetID)- 高比特位
子網號(SubID)- 原網絡主機號部分比特
主機號(HostID)- 低比特位
在這裏插入圖片描述

子網掩碼:從IP數據報首部無法看出源主機或目的主機所連接的網絡是否進行了子網劃分,因此引用子網源碼進行區分。

形如IP地址,有32位,點分十進制形式;NetID、SubID位全取1,HostID位全取0。

例如:
A網的默認子網掩碼爲:255.0.0.0
B網的默認子網掩碼爲:255.255.0.0
C網的默認子網掩碼爲:255.255.255.0
借用3比特劃分子網的B網的子網掩碼爲:255.255.224.0

作用:分割網絡;計算網絡號。
例如:
子網201.2.3.0,255.255.255.0劃分爲等長的4個子網,分別是:
201.2.3.0 , 255.255.255.192
201.2.3.64 , 255.255.255.192
201.2.3.128 , 255.255.255.192
201.2.3.192 , 255.255.255.192
此時SubID佔2個比特位

Q:路由器如何確定應該將IP分組轉發到哪個子網?
A:將IP分組的目的IP地址與子網掩碼按位與運算,提取子網網絡地址。

使用子網時分組的轉發

使用子網劃分後,路由表必須包含以下三個內容:目的網絡地址子網掩碼下一跳地址
在劃分子網情況下,路由器轉發分組算法如下:

  1. 從收到的數據報的首部提取目的IP地址D。
  2. 先判斷是否爲直接交付。對路由器直接相連的網絡逐個進行檢查:用各網絡的子網掩碼和D逐位相“與”,看結果是否和相應的網絡地址匹配。若匹配,則把分組進行直接交付(當然還需要把D轉換成物理地址,把數據報封裝成幀發出去),轉發任務結束。否則就是間接交付,執行3。
  3. 若路由表中有目的地址爲D的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行4。
  4. 對路由表中的每一行(目的網絡地址,子網掩碼,下一跳地址),用其中的子網掩碼和D逐位相“與”,其結果爲N。若N與該行的目的網絡地址匹配,則把數據報傳送給該行指明的下一跳路由器;否則,執行5。
  5. 若路由器中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;否則,執行6。
  6. 報告轉發分組出錯。

六、無分類編址CIDR

CIDR記法:在IP地址後面加上斜線“/”,然後寫上網絡前綴所佔的位數。

CIDR的主要特點:

  1. CIDR消除了傳統的A類、B類和C類地址以及劃分子網的概念。前面部分是“網絡前綴”,用來指明網絡,後面的部分則用來指明主機。因此CIDR使IP地址從三級編址(使用子網掩碼)又回到了二級編址,但這已經是無分類的二級編址。
  2. CIDR把網絡前綴都相同的連續IP地址組成一個“CIDR地址塊”。

由於一個CIDR地址塊中有很多地址,所以在路由表中就利用CIDR地址塊來查找目的網絡。這種地址的聚合常稱爲路由聚合,它使得路由表中的一個項目可以表示原來傳統分類地址的很多個路由。路由聚合又稱爲構成超網

Q:如何進行路由聚集?
A:選擇更具體的路由,最長前綴匹配優先。

參考文獻:
哈爾濱工業大學網課《計算機網絡之探賾索隱》李全龍
《計算機網絡第六版》謝希仁

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