計算機網絡(二十四):網際協議:因特網中的轉發和編址

在這裏插入圖片描述
因特網編址和轉發是網際協議 (IP) 的重要組件。因特網的網絡層有三個主要組件 第一個組件是IP協議,第二個主要組件是路由選擇部分,它決定了數據報從源到目的地所流經的路徑。最後一個組件是報告數據報中的差錯和對某些網絡層信息請求進行響應的設施,即五聯網控制報文協議 (ICMP)。

1、數據報(網絡層分組)格式:

IPv4 數據報格式如圖
在這裏插入圖片描述
①、版本號:這4比特規定了數據報的IP協議版本。通過查看版本號,路由器能夠確定如何解釋IP數據報的剩餘部分。不同的IP版本使用不同的數據報格式。
②、首部長度:因爲一個 IPv4 數據報可包含一些可變數量的選項(這些選項包括在IPv4 數據報首部巾) ,故需要用這4比特來確定IP數據報中數據部分實際從哪裏開始。大多數IP數據報不包含選項,所以一般的IP數據報具有20字節的首部。
③、服務類型TOS:使不同類型的IP數據報(例如,一些特別要求低時延、高吞吐量或可靠性的數據報)能相互區別開來。
④、數據報長度:這是 IP 數據報的總氏度(首部加上數據) ,以字節計。因爲該字段長爲 16 比特,所以 數據報的理論最大長度爲 65535 字節 然而,數據報很少有超過 15 字節的。
⑤、標識、標誌、片偏移:這三個字段與所謂IP分片有關,但,新版本的 IP(IPv6)不允許在路由器上對分組分片
⑥、壽命TTL:段用來確保數據報不會永遠(如由於長時間的路由選擇環路)在網絡中循環。每當數據報由一臺路由器處理時,該字段的值減1,TTL字段減爲0,則該數據報必須丟棄。
⑦、協議:該字段僅在一個IP數據報到達其最終目的地纔會有用。該字段值指示了IP數據報的數據部分應交給哪個特定的運輸層協議。在 IP 數據報中的協議號所起的作用,類似於運輸層報文段中端口號字段所起的作用。協議號是將網絡層與運輸層綁定到一起的粘合劑,而端口號是將運輸層和應用層綁定到一起的粘合劑。
⑧、首部檢驗和:首部檢驗和用於幫助路由器檢測收到的IP數據報中的比特錯誤。首部檢驗和是這樣計算的:將首部中的每2個字節當作一個數,用反碼運算對這些數求和。
⑨、源和目的IP地址:當某源生成一個數據報時,它在源IP字段中插入它的IP地址,在目的IP地址字段中插人其最終目的地的地址。通常源主機通過DNS查找來決定目的地址。
⑩、選項:選項字段允許IP首部被擴展。首部選項意味着很少使用,因此決定對每個數據報首部不包括選項字段中的信息,這樣能夠節約開銷。然而,選項的可能存在的確是件複雜的事,因爲數據報頭長度可變,故不能預先確定數據字段從何處開始。而且還因爲有些數據報要求處理選項,而有些數據報則不要求,故導致一臺路由器處理一個IP數據報所需的時間變化很大,這些考慮對於高性能路由器和主機上的IP處理來說特別重要。由於這樣或那樣的原因,在IPv6首部已去掉了IP選項。
數據(有效載荷):在大多數情況下,IP數據報中的數據字段包含要交付給目的地的運輸層報文段(TCP/UDP)然而,該數據宇段也可承載其他類型的數據,如ICMP報文。
IP數據報有總長爲20字節的首部(假設無選項) 如果數據報承載一個TCP 報文段,則每個(無分片的)數據報共承載了總長40字節的首部(20字節的IP首部加上20字節的TCP首部)以及應用層報文。
一個鏈路層幀能承載的最大數據量叫做最大傳送單元MTU。因爲每個據報封裝在鏈路層幀中從一臺路由器傳輸到下一臺路由器,故鏈路層協議的MTU嚴格地限制着IP數據報的長度
問題在於在發送方與目的地路徑上的每段鏈路可能使用不同的鏈路層協議,且每種協議可能具有不同MTU。即假定從某條鏈路收到一個IP數據報,通過檢查轉發表確定出鏈路,並且該出鏈路的 MTU 比該IP數據報的長度要小。此時需要確定如何將這個過大的IP分組壓縮進鏈路層幀的有效載荷字段。可以將數據報中的數據分片成兩個或更多個較小的IP數據報,用單獨的鏈路層幀封裝這些較小的數據報;然後向輸出鏈路上發送這些幀。每個這些較小的數據報都稱爲片。片在其到達目的地運輸層以前需要重新組裝。)爲堅持網絡內核保持簡單的原則, IPv4的設計者決定將數據報的重新組裝工作放到端系統中,而不是放到網絡路由器中。
在這裏插入圖片描述
當一臺目的主機從相同源收到一系列數據報時,它需要確定這些數據報中的某些是否是一些原來較大的數據報的片。如果某些數據報是片的話,則它必須進 步確定何時收到了最後一片,並且如何將這些接收到的片拼接到一起以形成初始的數據報。爲了讓目的主機執行這些重新組裝任務,IPv4 的設計者將標識、標誌和片偏移字段放在IP數據報首部中。當生成一個數據報時,發送主機在爲該數據報設置源和目的地址的同時再貼上標識號。發送主機通常將爲它發送的每個數據報的標識號加1。當某路由器需要對一個數據報分片時,形成的每個數據報(即片)具有初始數據報的源地址、目的地址與標識號。當目的地從同一發送主機收到一系列數據報時,它能夠檢查數據報的標識號以確定哪些數據報實際上是同一較大數據報的片。由於lP是一種不可靠的服務,一個或多個片可能永遠到達不了目的地。因爲這種原因,爲了讓目的主機絕對地相信它已收到了初始數據報的最後一個片,最後一個片的標誌比特被設爲0,而所有其他片的標誌比特被設爲1。另外,爲了讓目的主機確定是再丟失了一個片(且能按正確的順序重新組裝片) ,使用偏移字段指定該片應放在初始IP數據報的哪個位置。
簡單地講,就是把一個大的IP數據報切分爲符合當前協議的MTU的數據報,並且數據報的標誌除了最後一個爲0,其餘都是1。其中首部字節爲20,其餘的MTU-20字節均爲數據字節。偏移量爲字節數/8

2、IPv4編址:

一臺主機通常只有1條鏈路連接到網絡;當主機中的IP想發送一個數據報時,它就在該鏈路上發送。主機與物理鏈路之間的邊界叫做接口。現在考慮一臺路由器及其接口。因爲路由器的任務是從鏈路上接收數據報並從某些其他鏈路轉發出去,路由器必須擁有兩條或更多條鏈路與它連接。路由器與它的任意一條鏈路之間的邊界也叫做接口。一臺路由器因此有多個接口,每個接口有其鏈路。因爲每臺主機與路由器都能發送和接收IP數據報,IP要求每臺主機和路由器接口擁有自己的IP地址。因此,一個IP地址技術上是與一個接口相關聯的,而不是與包括該接口的主機或路由器相關聯的。
即主機與鏈路一般只有一個接口,所以一個主機一般只有一個IP地址作爲索引;而一臺路由器與多個鏈路相連作爲十字路口,所以每一個接口對應一個IP地址作爲索引
每個IP地址長度爲32比特(等價爲4字節),因此總共有232個可能的IP地址。由於210近似地表示103,故容易看出約有40億個可能的IP地址。這些地址一般按所謂點分十進制記法書寫,即地址中的每個字節用它的十進制形式書寫,各字節間以句號(點)隔開。例如,考慮IP地址193.32.216.9,193是該地址第一個8比特的十進制等價數,32是該地址第二個8比特的十進制等價數,依次類推。因此,地址193.32.216.9 的二進制記法是:
11000001 00100000 11011000 00001001
在全球因特網中的每臺主機和路由器上的每個接口,必須有一個全球唯一的lP地址(在NAT後面的接口除外)。然而,這些地址不能隨意地自由選擇。一個接口的IP地址的一部分需要由其連接的子網來決定。
在這裏插入圖片描述
上圖中,,一臺路由器(具有7個接口)用於互聯7臺主機。左上側部分的3臺主機以及它們連接的路由器接口,都有一個形如 223.1.1.xxx的IP地址。這就是說,在它們的IP地址中,最左側的24比特是相同的。這4個接口也通過一個並不包含路由器的網絡互聯起來。
用IP的術語來說,互聯這3個主機接口與1個路由器接口的網絡形成一個子網。IP編址爲這個子網分配一個地址: 223.1.1.0/24,其中的/24 記法,有時稱爲子網掩碼,指示了32比特中的最左側24比特定義了子網地址。因此子網 223.1.1.0/24 是由3臺主機接口(223.1.1.1、223.1.1.、223.1.1.3)和1個路由器接口(223.1.1.4)組成。任何其他要連到223.1.1.0/24網絡的主機都要求其地址具有223.1.1.xxx的形式。
簡單地講,就是,沒一個字節可以代表一個分支,不同的分支構成了一顆四層的樹,而每一個分支可以看做一個小的子網,一般是最左邊最大,越往右越下層。子網中無需通過路由器就能夠物理上互相到達
子網的表示方法:
①、子網掩碼:用從最高位開始的連續1表示IP地址中的子網號部分
②、前綴/長度:223.1.1.0/24,表示前24位爲子網號部分
因特網的地址分配策略被稱爲無類別域間路由選擇,CIDR將子網尋址的概念一般化了。因爲對於子網尋址,32比特的IP地址被劃分爲兩部分,並且也具有點分十進制數形式a,b,c,d/x,其中x指示了地址的第一部分中的比特數。
形式爲 b. c. d/x 的地址的x最高比特構成了IP地址的網絡部分,並且經常被稱爲該地址的前綴(或網絡前綴)。一個組織通常被分配一塊連續的地址,即具有相同前綴的一段地址在這種情況下,該組織內部的設備的IP地址將共享共同的前綴。
在這裏插入圖片描述
假設某ISP向外界通告,它應該發送所有地址的前20比特與200.23.16.0/20相符的數據報,外界的其他部分不需要知道在地址塊200.23.16.0/20內實際上還存在8個其他組織,每個組織有自己的子網。這種使用單個網絡前綴通告多個網絡的能力通常稱爲地址聚合,也稱爲路由聚合或路由摘要。
即當子網掩碼爲20的時候,外界只需要知道他的前20位,即他能轉發到符合前20位的IP地址,而不需要關心後12位的具體內容,即不需要知道他能轉發到的具體地址
一個地址的剩餘32 -x比特可認爲是用於區分該組織內部設備的,其中的所有設備具有相同的網絡前綴。當該組織內部的路由器轉發分組時,纔會考慮這些比特。這些較低階比特可能(或可能不)具有另外的子網結構。假設某CIDR化的地址a.b.c.d/21的前21比特定義了該組織的網絡前綴,它對該組織中的所有主機的IP地址來說是共同的。其餘的11比特標識了該組織內的主機。該組織的內部結構可以採用這樣的方式,使用這最右邊的11比特在該組織中劃分子網,例如 a. b. c. d/24 可能表示該組織內的特定子網
IP廣播地址255.255.255.255。當一 臺主機發出-個目的地址爲255.255.255.255的數據報時,報文會交付給同一個網絡中的所有主機。路由器也會有選擇地向鄰近的子網轉發該報文(雖然它們通常不這樣做)。

①、獲取一塊地址:

爲了獲取一塊IP地址用於一個組織的子網,某網絡管理員也許首先會與他的ISP聯繫,該ISP可能會從已分給它的更大地址塊中提供一些地址。例如,該ISP也許自己已被分配了地址塊200.23.16.0/20。ISP可以依次將該地址塊分成8個長度相等的連續地址塊,爲本ISP支持的最多達8個組織中的一個分配這些地址塊中的一塊。

②、獲取主機地址:動態主機配置協議

某組織一且獲得了一塊地址,它就可爲本組織內的主機與路由器接口逐個分配IP地址。系統管理員通常手工配置路由器中的IP地址(常常在遠程通過網絡管理工具進行配置)主機地址也能手動配置,但是這項任務目前通常更多的是使用動態主機配置協議來完成。DHCP允許主機自動獲取(被分配)一個IP地址。網絡管理員能夠配置DHCP,以使某給定主機每次與網絡連接時能得到一個相同的IP地址,或者某主機將被分配一個臨時的IP地址,該地址在每次與網絡連接時也許是不同的。除了主機IP地址分配外,DHCP還允許一臺主機得知其他信息,例如它的子網掩碼、它的第一跳路由器地址(常稱爲默認網關)與它的本地DNS服務器的地址。
由於DHCP具有能將主機連接進一個網絡的網絡相關方面的自動能力,故它又常被稱爲即插即用協議。DHCP還廣泛地使用於住宅因特網接入網與無線局域網中,其中的主機頻繁地加入和離開網絡。當主機加入或離開時,DHCP服務器要更新其可用IP地址表。每當一臺主機加入時,DHCP服務器從其當前可用的地址池中分配一個任意的地址給它;每當一臺主機離開時,其地址便被收回這個池中。
簡單地講,就是定義了一個ip地址池,其前綴與子網掩碼相同,後綴隨機進行分配。每當一個主機進入時,自動給予一個IP地址;當一個主機離開時,回收該IP地址。可分配IP地址範圍是:子網地址-廣播地址
對於一臺新到達的主機而言,DHCP協議是一個4個步驟的過程:
·DHCP服務器發現:新到的主機的首要任務是發現一個要與其交互的DHCP服務器。這可通過使用DHCP發現報文來完成,客戶在UDP分組中向端口67的發送該發現報文。客戶生成包含DHCP發現報文的IP數據報,使用廣播目的地址 255.255.255.255並且使用"本主機"源地址 O.O.O.0。DHCP客戶將該IP數據報傳遞給鏈路層,鏈路層然後將該幀廣播到所有與該子網連接的子網。
·DHCP服務器提供。DHCP服務器收到一個DHCP發現報文時,用一個DHCP提供報文向客戶作出響應,仍然使用IP廣播地址255.255.255.255,因爲在子網中可能有幾個DHCP服務器,該客戶也許會發現它處於能在幾個提供者之間進行選擇。每臺服務器提供的報文包含有收到的發現報文的事務ID、向客戶推薦的IP地址、網絡掩碼以及IP地址租用期,即IP地址有效的時間量。 服務器租用期通常設置爲幾小時或幾天。
·DHCP請求:新到達的客戶從一個或多個服務器提供中選擇一個,並向選中的服務器提供用一個DHCP請求報文進行響應,回顯配置參數。
·DHCP ACK:服務器用DHCP ACK報文對DHCP請求報文進行響應,證實所要求的參數。
簡單地講,就是首先客戶機廣播發送發現報文,企圖發現服務器。在發現報文的傳播範圍內,所有的服務器產生迴應,廣播發送提供報文。在客戶機接收到不同的提供報文後,選擇最優併發送請求報文,基於參數,請求建立連接。然後服務器用ACK報文產生迴應,證實已收到參數
在這裏插入圖片描述

③、網絡地址轉換NAT:

NAT使能路由器對於外部世界來說甚至不像一臺路由器NAT路由器對外界的行爲反過來就如同一個具有單一IP地址的單一設備。下圖中,所有離開家庭路由器流向更大因特網的報文都擁有一個源IP地址138.76.29.7,且所有進入家庭的報文都擁有同個目的回地址138.76.29.7。
在這裏插入圖片描述
即把內部私有網絡地址翻譯成合法網絡IP地址的技術。能夠改變本地網絡中的設備地址,而不必通知外部。本地網絡中的設備不顯式地可尋址、由外部所見 (增強安全性)。簡單地講,就是把一個家庭網絡的對外IP進行了改變。從本質上講,NAT使能路由器對外界隱藏了家庭網絡的細節
使用在NAT路由器上的一張NAT轉換表,並且在表項中包含了端口號及其IP地址。

3、因特網控制報文協議ICMP:

被主機和路由器用來彼此溝通網絡層的信息。ICMP最典型的用途是差錯報告。ICMP通常被認爲是IP的一部分,但從體系結構上講它是位於IP之上的,因爲ICMP報文是承載在IP分組中的.這就是說,lCMP報文是作爲IP有效載荷(數據)承載的,就像TCP/UDP報文段作爲IP有效載荷被承載那樣。類似地,當一臺主機收到一個指明上層協議爲ICMP的IP數據報時,它分解出該數據報的內容給ICMP,就像分解出一個數據報的內容給TCP/UDP一樣。
ICMP報文有一個類型字段和一個編碼字段,並且包含引起該ICMP報文首次生成的IP數據報的首部和前4?字節內容。

4、IPv6:

由於新的子網和IP結點以驚人的增長率連到因特網上(並被分配唯一的IP地址),32比特的IP地址空間即將用盡。爲了應對這種對大IP地址空間的需求,開發了一種新的IP協議,即IPv6。
首部格式有助於提高處理/轉發速率。首部變化以促進QoS。
IPV6 地址:IPv6地址長度爲128位
IPv6較IPv4的特點:
①、檢查和:完全去除以減小每跳的處理時間
②、選項:允許,但在首部之外,由“下一個首部” 字段指示
③、新版本的ICMP
IPv4到IPv6的遷移:IPv6向後兼容,可以發送、路由和接收IPv4數據報。但IPv4確不能處理IPv6數據報

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