前文回顧:第三章:傳輸層
- 運輸層依賴于網絡層的主機到主機的通信服務,提供各種形式的進程到進程的通信。
- 網絡層與傳輸層和應用層不同的是,在網絡中的每一臺主機和路由器中都有一個網絡層部分。正因如此,網絡層協(xié)議是協(xié)議棧中最具挑戰(zhàn)性的部分。
- 網絡層分為數(shù)據平面和控制平面,本章節(jié)先學習數(shù)據平面,即網絡層中每臺路由器的功能,該數(shù)據平面功能決定到達路由器輸入鏈路之一的數(shù)據報如何轉發(fā)到該路由器的輸出鏈路之一。
目錄
??網絡層概述
??轉發(fā)和路由選擇
??網絡服務模型
??路由器工作原理
??輸入端口處理和基于目的地轉發(fā)
??交換
??輸出端口處理
??何處出現(xiàn)排隊
??輸入排隊
??輸出排隊
??分組調度
??先進先出
??優(yōu)先權排隊
??循環(huán)和加權公平排隊
??網際協(xié)議:IPv4、尋址、IPv6及其他
??IPv4數(shù)據報格式
??IPv4數(shù)據報分片
??IPv4編址
??網絡地址轉換
??IPv6
??通用轉發(fā)和SDN
??匹配
??動作
??小結
??網絡層概述
??轉發(fā)和路由選擇
網絡層的作用:將分組從一臺發(fā)送主機移動到一臺接收主機。
轉發(fā) | 路由選擇 |
---|---|
當一個分組到達某路由器的一條輸入鏈路時,該路由器必須將該分組移動到適當?shù)妮敵鲦溌?。 | 當分組從發(fā)送方流向接收方時,網絡層必須決定這些分組采用的路由或路徑。計算這些路徑的算法被稱為路由選擇算法 。 |
將分組從一個輸入鏈路接口轉移到適當?shù)妮敵鲦溌方涌诘?span style="color:#1c7892;">路由器本地動作。 |
指確定分組從源到目的地所采取的端到端路徑的網絡范圍處理過程。 |
轉發(fā)發(fā)生的時間尺度很短(通常為幾納秒),因此通常用硬件來實現(xiàn)。 | 路由選擇發(fā)生的時間尺度長得多(通常為幾秒),因此通常用軟件來實現(xiàn)。 |
- 我們可以認為轉發(fā)就像通過單個立交橋的過程:一輛汽車從其道路上進入立交橋的一個入口,并且決定應當走那條路來離開該立交橋。
- 我們可以把路由選擇看作是規(guī)劃從北京到上海行程的過程:在著手行程之前,駕駛員已經查閱了地圖并在許多可能的路徑中選擇了一條,其中每條路徑都有一系列經立交橋連接的路段組成。
每臺網絡路由器中有一個關鍵元素就是它的轉發(fā)表。路由器檢查分組首部字段值來轉發(fā)分組,使用該值在轉發(fā)表索引查詢。該值指出了該分組將被轉發(fā)的路由器輸出鏈路接口。
轉發(fā)是由網絡層的數(shù)據平面執(zhí)行的主要功能,路由選擇算法決定了插入路由器轉發(fā)表中的值。
??網絡服務模型
網絡服務模型定義了分組在發(fā)送與接收端系統(tǒng)之間的端到端運輸特性。網絡層能提供的某些可能的服務,這些服務(IP并沒有這些服務 )可能包括:
- 確保交付。該服務確保分組將最終到達目的地。
- 具有時延上界的確保交付。該服務不僅確保分組的交付,而且在特定的主機到主機時延上界內交付。
- 有序分組交付。該服務確保分組以它們發(fā)送的順序到達目的地。
- 確保最小帶寬。這種網絡層服務模仿在發(fā)送和接收主機之間一條特定比特率的傳輸鏈路的行為。只要發(fā)送主機以低于特定比特率的速率傳輸比特,則所有分組最終會交付到目的主機。
- 安全性。網絡層能夠在源加密所有數(shù)據報并在目的地解密這些分組,從而對所有運輸層報文段提供機密性。
因特網的網絡層IP協(xié)議提供單一服務,盡力而為服務,無帶寬保證,無丟包保證,無順序保證,不定時,無擁塞指示。
??路由器工作原理
我們將約定術語分組交換機是指一臺通用分組交換設備,它根據分組首部字段的值,從輸入鏈路接口到輸出鏈路接口轉移分組。
- 某些分組交換機稱為鏈路層交換機(詳見后續(xù)第六章),基于鏈路層幀中的字段值做出轉發(fā)決定,這些交換機因此被稱為鏈路層設備。
- 其他分組交換機稱為路由器,基于網絡層數(shù)據報中的首部字段值做出轉發(fā)決定。
-
輸入端口:
- 在路由器中執(zhí)行終結入物理鏈路的物理層功能。
- 與位于入鏈路遠端的數(shù)據鏈路層交互的數(shù)據鏈路層功能。
- 在輸入端口完成查找功能?。通過查詢轉發(fā)表決定路由器的輸出端口。
- 控制分組從輸入端口轉發(fā)到路由選擇處理器。
- 交換結構:將路由的輸入端口與輸出端口相連接。
- 輸出端口:從交換結構接收分組,并通過執(zhí)行必要的鏈路層和物理層功能在輸出鏈路上傳輸這些分組。
- 路由選擇處理器:執(zhí)行路由選擇協(xié)議,維護路由選擇表以及連接的鏈路狀態(tài)信息,并為路由器計算轉發(fā)表。還執(zhí)行網絡管理功能。
??輸入端口處理和基于目的地轉發(fā)
- 輸入端口的線路端接功能與鏈路層處理實現(xiàn)了用于各種輸入鏈路的物理層和鏈路層。
- 路由器使用轉發(fā)表來查找輸出端口,使得到達的分組能經過交換結構轉發(fā)到該輸出端口。
- 轉發(fā)表是由路由選擇處理器計算和更新的,從路由選擇處理器經過獨立總線復制到(輸入)線路卡(影子副本)。 有了轉發(fā)表副本,轉發(fā)決策能在每個輸入端口本地做出,無須調動路由選擇處理器,避免集中式處理 。
- 查找確定了某分組輸出端口,分組就能發(fā)送進入交換結構。一個被阻塞的分組必須在輸入端口處排隊。
怎樣處理規(guī)模問題???
在32比特IP地址的情況下,假設我們的路由器具有4條鏈路,編號0到3,分組以如下方式轉發(fā)到鏈路接口:
?但顯然,路由器的轉發(fā)表中沒有必要有40億個表項。我們可以用以下僅包括4個表項的轉發(fā)表:
即路由器用分組目的地址的前綴與該表中的表項進行匹配 。
一個目的地址可能與不止一個表項相匹配???
例如,地址11001000 00010111 000111000 10101010的前24比特與表中的第二項(即鏈路接口1)匹配,而該地址的前21比特與表中的第三項匹配。當有多個匹配時,該路由器使用最長前綴匹配規(guī)則。即在該表中尋找最長的匹配項,并向與最長前綴匹配相關聯(lián)的鏈路接口轉發(fā)分組。
如此,假定轉發(fā)表已存在,硬件邏輯只需要搜索轉發(fā)表查找最長前綴匹配。但在吉比特速率下,這種查找必須在納秒級執(zhí)行。
- 因此,不僅要用硬件執(zhí)行查找,而且需要對大型轉發(fā)表使用超出簡單線性搜索的技術。
- 同時必須對內存訪問時間給予特別關注,這導致用嵌入式片上DRAM和更快的SRAM內存來設計。實踐中也警察使用三態(tài)內容可尋址存儲器(TCAM)來查找。
輸入端口查找目的IP地址(“匹配”),然后發(fā)送該分組進入交換結構(“動作”)的步驟是一種更為一般的“匹配加動作”抽象的特定情況,這種抽象在許多網絡設備中執(zhí)行,而不僅在路由器中。
??交換
交換結構位于一臺路由器的核心部位,正是通過這種交換結構,分組才能實際地從一個輸入端口交換(轉發(fā))到一個輸出端口中。交換可以用許多方式完成:
-
經內存交換:
- 一個分組到達輸入端口時,該端口先通過中斷方式向路由選擇處理器發(fā)出信號。
- 于是,該分組從輸入端口被復制到處理器內存中。
- 路由選擇處理器從其首部中提取目的地址,在轉發(fā)表中查找輸出端口,并將該分組復制到輸出端口的緩存中。
- 不能同時轉發(fā)兩個分組,即使它們有不同的端口號,因為經過共享系統(tǒng)總線一次僅能執(zhí)行一個內存讀/寫。
-
經總線交換:
- 輸入端口經一根共享總線將分組直接傳送到輸出端口,不需要路由選擇處理器的干預。
- 讓輸入端口為分組預先計劃一個交換機內部標簽(首部),指示本地輸出端口,使分組在總線上傳送和傳輸?shù)捷敵龆丝凇?/li>
- 該分組能由所有輸出端口收到,但只有與該標簽匹配的端口才能保存該分組。
- 然后標簽在輸出端口被去除。
- 一次只有一個分組能夠跨越總線,其余分組必須等待。
-
經互聯(lián)網絡交換:克服單一、共享式總線帶寬限制的一種方法是使用一個更復雜的互聯(lián)網絡。
- 如上圖,每條垂直的總線和水平的總線在交叉點處交叉,交叉點通過交換結構控制器(其邏輯是交換結構自身的一部分)能夠在任何時候開啟和閉合。
- 當某分組到達端口A,需要轉發(fā)到端口Y時,交換機控制器閉合總線A和Y交叉部位的交叉點,然后端口A在其總線上發(fā)送該分組,該分組僅由總線Y接收。此時,來自端口B的一個分組在同一時間能夠轉發(fā)到端口X,因為A到Y和B到X的分組使用不同的輸入輸出總線。
- 因此,與前面兩種交換方法不同,縱橫式網絡能夠并行轉發(fā)多個分組??v橫式交換機是非阻塞的,即只要沒有其他分組當前被轉發(fā)到該輸出端口,轉發(fā)到輸出端口的分組將不會被到達輸出端口的分組阻塞。
- 若來自兩個不同輸入端口的兩個分組其目的地為相同的輸出端口,則一個分組必須在輸入端等待。因為在某個時刻經給定總線僅有一個分組能夠發(fā)送。
??輸出端口處理
基本執(zhí)行的是和輸入端口相反的操作。取出存放在輸出端口緩存中的分組并將其發(fā)送到輸出鏈路上。包括選擇和取出排隊的分組進行傳輸,執(zhí)行所需的鏈路層和物理層傳輸功能。
??何處出現(xiàn)排隊
在輸入和輸出端口都能夠形成分組隊列。隨著這些隊列的增長,路由器的緩存空間最終將會耗盡,此時如果有新的分組到達,會導致丟包 (packet loss)。
??輸入排隊
- 如果交換結構的處理速度沒有輸入隊列到達的速度快,在這種情況下,輸入端口將會出現(xiàn)排隊情況,到達交換結構前的分組會加入輸入端口隊列中,以等待通過交換結構傳送到輸出端口。
- 為了描述清楚輸入隊列,我們假設以下情況:
- 使用網絡互聯(lián)的交換方式;
- 假定所有鏈路速度相同;
- 一個分組能夠以一條輸入鏈路接收一個分組所用的相同的時間量,從任意一個輸入端口傳送到給定的輸出端口;
- 分組按照 FCFS 的方式,只要輸出端口不同,就可以進行并行傳送。
- 在 A 隊列中,輸入隊列中的兩個分組會發(fā)送至同一個目的地 X,假設在交換結構正要發(fā)送 A 中的分組,在這個時候,C 隊列中也有一個分組發(fā)送至 X,在這種情況下,C 中發(fā)送至 X 的分組將會等待,不僅如此,C 隊列中發(fā)送至 Y 輸出端口的分組也會等待,即使 Y 中沒有出現(xiàn)競爭的情況。這種現(xiàn)象叫做線路前部阻塞(Head-Of-The-Line, HOL) 。
??輸出排隊
- 假設線路速度相同,交換機以3倍于線路速度的速度運行。
- 因為輸出端口在一個單位時間內只能傳輸一個分組,那么N個分組將會等待。然而在等待 N 個分組被處理的過程中,同時又有 N 個分組到達,所以 ,分組隊列能夠在輸出端口形成。這種情況下最終會因為分組數(shù)量變的足夠大,從而耗盡輸出端口的可用內存。
- 如果沒有足夠的內存來緩存分組的話,就必須考慮其他的方式,主要有兩種:一種是丟失分組,采用棄尾(drop-tail) 的方法;一種是刪除一個或多個已經排隊的分組,從而來為新的分組騰出空間。
- 在某些情況下,在緩沖填滿之前便丟棄一個分組的做法是有利的,這可以向發(fā)送方提供一個擁塞信號。
- 如上圖所示,A B C 每個輸入端口都到達了一個分組,而且這個分組都是發(fā)往 X 的。
- 一個時間單位以后,所有三個初始分組都被傳送到輸出端口,并排隊等待傳輸。在下一個時間單位中,這三個分組中的一個將通過輸出鏈路發(fā)送出去。
- 在這個例子中,又有兩個新分組已到達交換機的入端;這些分組之一要發(fā)往最上側的輸出端口。輸出端口的分組調度會在這些排隊分組中選擇一個分組來傳輸。
??分組調度
分組調度是確定次序的問題,即排隊的分組如何經輸出鏈路傳輸?shù)膯栴}。
??先進先出
- 先進先出映射為數(shù)據結構中的隊列,排隊模型的抽象。
- FIFO 調度規(guī)則按照分組到達輸出鏈路隊列的相同次序來選擇分組在鏈路上傳輸,先到達隊列的分組將先會被轉發(fā)。在這種抽象模型中,如果隊列已滿,那么棄尾的分組將是隊列末尾的后面一個。?
??優(yōu)先權排隊
- 優(yōu)先級排隊是先進先出的改良版本,到達輸出鏈路的分組被分類放入輸出隊列中的優(yōu)先權類。
- 當選擇一個分組傳輸時,優(yōu)先權規(guī)則將從隊列為非空的最高優(yōu)先權類中傳輸一個分組。在同一優(yōu)先權類的分組之間的選擇通常以FIFO方式完成。
- ?在非搶占式優(yōu)先權排隊規(guī)則下,一旦分組開始傳輸,就不能打斷。
??循環(huán)和加權公平排隊
- 分組像使用優(yōu)先級那樣被分類。然而,在類之間卻不存在嚴格的服務優(yōu)先權。循環(huán)調度器在這些類之間循環(huán)輪流提供服務。相當于平級的小組,一組一次輪著來(如果有輪換需求的話)。
??網際協(xié)議:IPv4、尋址、IPv6及其他
??IPv4數(shù)據報格式
- 版本號(IPv4、IPv6):不同IP版本使用不同的數(shù)據報格式。
- 首部長度:數(shù)據報可包含可變數(shù)量的選項。不過大多數(shù)數(shù)據報不包含選項,所以一般的IP數(shù)據報具有20字節(jié)的首部。
- 服務類型:區(qū)分不同類型的IP數(shù)據報。
- 數(shù)據報長度:首部+數(shù)據的長度。該字段16bit,然而一般數(shù)據報很少超過1500字節(jié)。
- 標識、標志、片偏移:IP分片相關。不過IPv6不允許在路由器上對分組分片。
- 壽命TTL:壽命字段確保數(shù)據報不會永遠在網絡中循環(huán)。每當一臺路由器處理數(shù)據報時,該字段的值減1。若TTL字段減為0,則該數(shù)據報必須丟棄。
- 協(xié)議:到達最終目的地才有用,指示了IP數(shù)據報的數(shù)據部分應該交給哪個特定的運輸層協(xié)議。如6交給TCP,如17交給UDP。協(xié)議號是將網絡層與運輸層綁定到一起的粘合劑;端口號是將運輸層和應用層綁定的粘合劑。
- 首部檢驗和:幫忙路由器檢測收到IP數(shù)據報中首部的比特錯誤,有錯一般丟棄。每臺路由器上必須重新計算檢驗和。IP層僅對IP首部計算檢驗和,而TCP/UDP檢驗和是對整個TCP/UDP報文段進行的。
- 源和目的IP地址:源主機通過DNS查找目的地址。
- 選項:選項字段允許IP首部被擴展,IPv6已拋棄選項字段。
- 數(shù)據(有效載荷):在大多數(shù)情況下,IP數(shù)據報中的數(shù)據字段包含要交付給目的地的運輸層報文段(TCP或UDP),或ICMP報文段。
- 一個IP數(shù)據報有長為20字節(jié)的首部,如果數(shù)據報承載一個TCP報文段,則每個無分片數(shù)據報承載總長40字節(jié)的首部(20字節(jié)的IP首部加上20字節(jié)的TCP首部)以及應用層報文。
??IPv4數(shù)據報分片
為什么要分片???
- 并不是所有鏈路層協(xié)議都能承載相同長度的網絡層分組。例如以太網幀能夠承載不超過1500字節(jié)的數(shù)據,而某些廣域網鏈路的幀能夠承載不超過576字節(jié)的數(shù)據。
- 一個鏈路層幀能夠承載的最大數(shù)據量叫作最大傳送單元MTU。
- 因為每個IP數(shù)據報封裝在鏈路層幀中從一臺路由器傳輸?shù)较乱慌_路由器中,所以鏈路層協(xié)議的MTU嚴格地限制著IP數(shù)據報的長度。對IP數(shù)據報長度具有嚴格的限制并不是主要問題。
- 主要問題是在發(fā)送方與目的地路徑上的每段鏈路可能使用不同的鏈路層協(xié)議,且每種協(xié)議可能具有不同的MTU。
分片的應用場景???
假定你從某條鏈路收到一個IP數(shù)據報,通過檢查轉發(fā)表確定出鏈路,并且該條出鏈路的MTU比IP數(shù)據報的長度小。那該怎么辦?
- 將IP數(shù)據報中的數(shù)據分片成兩個或多個較小的IP數(shù)據報,用單獨的鏈路層幀封裝這些較小的IP數(shù)據報,然后通過輸出鏈路發(fā)送這些幀。每個較小的數(shù)據報都被稱為片。
怎么進行分片???
正如前面所說,要滿足MTU的要求,就要把數(shù)據報分片去傳輸,那既然要分片,肯定就需要組裝。為了不影響路由器的性能,設計者決定將這些數(shù)據報的重新組裝工作放到端系統(tǒng),而不是放在路由器。
- 標識:當生成一個數(shù)據報時,發(fā)送主機在為該數(shù)據報設置源和目的地址的同時貼上標識號。發(fā)送主機為它發(fā)送的每個數(shù)據報的標識號加1。當目的地從同一發(fā)送主機收到一系列的數(shù)據報時,能夠檢查數(shù)據報的標識號來確定哪些數(shù)據報實際上是同一數(shù)據段的片。
- 標志:IP是一個不可靠的服務,一個或多個片可能永遠到達不了目的地。為了讓目的主機絕對地相信它已經收到它收到了初始數(shù)據段的最后一個片, 最后一個片的標志比特設置為0,其他它片的標志為1。
- 偏移字段:為了讓目的主機確定是否丟失了一個片(且能夠按照正確的順序重新組裝片),使用偏移字段指定該片應該放在初始IP數(shù)據報的哪個位置。
??IPv4編址
主機與路由器連入網絡的方法???
- 一臺主機通常只有一條鏈路連接到網絡;當主機中的IP想發(fā)送一個數(shù)據報時,它就在該鏈路上發(fā)送。
- 主機與物理鏈路的邊界叫接口,一臺路由器有多個接口,每個接口有其鏈路。
- 因為每臺主機與路由器都能發(fā)送和接收IP數(shù)據報,IP要求每臺主機和路由器都有自己的IP地址。
- 因此一個IP地址實際上是與每一個接口相關聯(lián),而不是與包括該接口的主機或路由器相關聯(lián)。
- 每個IP地址長度32bit(4字節(jié)),總共2^32個可能的IP地址,約40億個。這些地址通常按照所謂點分十進制記法書寫,如193.32.216.9。
- 一個接口的IP地址的一部分需要由其連接的子網決定。如互聯(lián)3個主機接口與1個路由器接口的網絡形成一個子網,IP編址為這個子網分配一個地址:223.1.1.0/24,/24記法稱為子網掩碼,指示了32bit中的最左側24bit定義了子網地址。
- 為了確定子網,分開主機和路由器的每個接口,產生幾個隔離的網絡島,使用接口端接這些隔離的網絡的端點,這些隔離的網絡中每一個都叫做一個子網。
- 因特網地址分配策略:無類別域間路由選擇CDIR。CDIR將子網尋址的概念一般化了。當使用子網尋址時,32比特的IP地址被劃分為兩部分,并且也具有點分十進制數(shù)形式a.b.c.d/x,其中x指示了地址的第一部分中的比特數(shù)。
- a.b.c.d/x的地址的x最高比特構成IP地址的網絡部分,稱為該地址的前綴,一個組織通常被分配一塊連續(xù)的地址,即具有相同前綴的一段地址。BGP路由選擇協(xié)議中,該組織網絡外的路由器僅考慮x,減少了轉發(fā)表的長度,因為形式為a.b.c.d/x單一表項足以將數(shù)據報轉發(fā)到該組織內的任何目的地。
- 地址聚合(路由聚合):使用單個網絡前綴通告多個網絡的能力。
如何獲取地址、分配地址???
-
獲取一塊地址
- 子網獲取IP地址:由ISP從它大塊地址中分配 ISP獲取IP地址——IP地址由因特網名字和編號分配機構ICANN管理(也管理DNS根服務器、AS標識號)。
- ICANN向區(qū)域性因特網注冊機構分配地址,處理本地域內的地址分配/管理。
-
獲取主機地址:動態(tài)主機配置協(xié)議
- 某組織一旦獲得了一塊地址,它就可為組織內的主機、路由器接口逐個分配IP地址。
- 主機地址能手動配置,但是這項任務目前更多的是使用動態(tài)主機配置協(xié)議DHCP來完成。
動態(tài)主機配置協(xié)議DHCP---UDP
- DHCP允許主機自動獲取一個IP地址。
- 網絡管理員能夠配置DHCP,以使主機每次連網獲得相同IP地址,也可每次分配一個臨時IP地址。
- DHCP允許主機查看子網掩碼、默認網關(第一跳路由器地址)、本地DNS服務器地址。
- DHCP具有將主機連接進一個網絡的網絡相關方面的自動能力,常被稱為即插即用協(xié)議或零配置協(xié)議。
- DHCP是一個客戶-服務器協(xié)議??蛻敉ǔJ切碌竭_的主機,它要獲得包括自身使用的IP地址在內的網絡配置信息。
- 在最簡單場合下,每個子網都有一臺DHCP服務器。若子網沒有DHCP服務器,則由一個路由器做DHCP中繼代理,該代理知道該網絡的DHCP服務器地址。
?新主機到來時,DHCP協(xié)議的四個步驟
-
DHCP服務器發(fā)現(xiàn)
- 一臺新到達的主機的首要任務是發(fā)現(xiàn)一個要與其交互的DHCP服務器。
- 這可通過使用DHCP發(fā)現(xiàn)報文來完成,客戶在UDP分組中向端口67發(fā)送該發(fā)現(xiàn)報文。該UDP分組封裝在一個IP數(shù)據報中。
- 必須用廣播目的地址255.255.255.255,源地址是0.0.0.0 ?。
- DCHP客戶將該IP數(shù)據報傳遞給鏈路層,鏈路層然后將該幀廣播到所有與該子網連接的節(jié)點。
-
DHCP服務器提供 ?
- DHCP收到DHCP發(fā)現(xiàn)報文后,響應一個DHCP提供報文,仍然使用廣播地址,因為此時新客戶并沒有IP地址。?
- 可能有多臺DHCP服務器,每臺服務器提供的報文中,有向客戶主機推薦的IP地址、網絡掩碼以及IP地址租用期(一般幾天或幾小時)。
-
DHCP請求 ?
- 新到達的客戶從一個或多個服務器提供中選擇一個,并向選中的服務器提供用DHCP請求報文進行響應,回顯配置的參數(shù)。
-
DHCP ACK ?
- 服務器用DHCP ACK報文對DHCP請求報文進行響應,證實所傳參數(shù) ?
客戶收到ACK后,交互完成,在租期內使用DHCP分配的IP地址。DHCP提供了機制允許客戶更新對一個IP地址的租用。當一個移動結點在子網之間移動時,就不能維持與遠程應用的TCP連接。
??網絡地址轉換
應用場景:
- 地址10.0.0.0/8是保留的3個IP地址空間之一,這些地址用于家庭網絡等專用網絡或具有專用地址的地域。具有專用地址的地域是指其地址僅對該網絡中的設備有意義的網絡。
- 當ISP已經為SOHO網絡當前地址范圍分配過一塊連續(xù)地址,而SOHO內主機越來也多時,需要用到NAT(比如電信給我們家里分配一個動態(tài)IP地址,但家里頭要好幾臺手機電腦聯(lián)網需要用一個IP地址,則需要用到NAT)。
- NAT路由器對外界來看像一個具有單一IP地址的單一設備。例如,家里有一個NAT使能路由器,其IP地址138.76.29.7(如下圖),且進入和離開家庭的報文都有同樣的該地址。
- NAT路由器對外隱藏了家庭網絡的細節(jié)。
- NAT路由器從ISP的DHCP服務器得到它的地址,并且路由器運行一個DHCP服務器,為位于NAT-DHCP路由器控制的家庭網絡地址空間中的主機提供地址。
NAT轉換表中的WAN端指的是公網接口,也就是連接Internet的那一側;而LAN端則指的是私有網絡接口,也就是連接內部局域網的那一側。在NAT轉換表中,通過記錄WAN端和LAN端之間的映射關系,實現(xiàn)了內部網絡與外部網絡的通信。
NAT通俗的理解就是如果我們每人一個公網IP地址的話,IPv4是不夠分配的。但是通過NAT協(xié)議就可以將一個公網IP轉化為多個內網IP,從而完美地解決了IP地址不足的問題,而且還能夠有效地避免來自網絡外部的攻擊,隱藏并保護網絡內部的計算機。
??IPv6
IPv4地址有耗盡的時候,開發(fā)IPv6的同時也可升級強化IPv4某些方面。
?IPv6數(shù)據報格式(改進的地方)??
-
擴大的地址容量
- 從32bit變?yōu)榱?28bit,這樣就用不完了。
- 除了單播多播地址,引入任播地址,使數(shù)據報交付給一組主機中的任意一個。
- 簡化高效的40字節(jié)首部
- 流標簽與優(yōu)先級。 如音頻流、視頻流、高優(yōu)先級用戶承載的流量。
- 分片/重組。 只能在源與目的地進行。
- 選項放到了『下一個首部』位置,使得IP首部定長40字節(jié)
- 去除首部檢驗和。
??IPv6字段??
- 版本:不同的IP協(xié)議版本使用不同的數(shù)據報格式。
- 流量類型:使得源節(jié)點和路由器能夠識別IPv6信息包的優(yōu)先級。與IPv4服務類型TOS字段含義類似。
- 流標簽:標記那些需要IPv6路由器特殊處理(如一種非默認服務質量或實時服務)的信息包順序。
- 有效負載長度:定長40字節(jié)數(shù)據報首部后面的字節(jié)數(shù)量,包括擴展報頭和負載數(shù)據,
- 下一個首部:當IPv6沒有擴展報頭時,該字段的作用和IPv4的上層協(xié)議字段一樣。當含有擴展報頭時,該字段的值即為第一個擴展報頭的類型。
- 跳限制:轉發(fā)數(shù)據報的每臺路由器對該字段的值減1,若減為0則丟棄該數(shù)據報。
- 源和目的IP地址(Source/Destination Address)
- 數(shù)據:當數(shù)據報到達目的地時,該有效載荷就從IP數(shù)據報移出,并交給下一個首部字段中指定的協(xié)議。
IPv4到IPv6的遷移
- 雙棧:同時使用IPv4和IPv6,這種結點有兩種地址。DNS可解析兩種地址。如果發(fā)送方和接收方中任意一個僅為IPv4使能的,則必須使用IPv4數(shù)據報。
??通用轉發(fā)和SDN
回顧基于目的地轉發(fā)的特征總結為兩個步驟:查找目的地址(“匹配”),然后將分組發(fā)送到有特定輸出端口的交換結構(“動作”)。
現(xiàn)在我們考慮另外一種方式,通過通用的“匹配加動作”范式來進行:
- 對協(xié)議棧中的多個首部字段進行“匹配”,這些首部字段是與不同層次的不同協(xié)議相關聯(lián)的。
- 然后執(zhí)行“動作”,包括將分組轉發(fā)到一個或多個輸出端口(就像在基于目的地轉發(fā)中一樣),跨越多個通向服務的離開接口進行負載均衡分組,重寫首部值(就像在NAT中一樣),有意識地阻攔/丟棄某個分組(就像在防火墻中一樣),為進一步處理和動作而向某個特定的服務器發(fā)送一個分組等等。
OpenFlow是一個得到高度認可和成功的標準,他已經稱為匹配加動作轉發(fā)抽象、控制器以及更為一般的SDN革命等概念的先驅。匹配加動作轉發(fā)表在OpenFlow中稱為流表,它的每個表項包括:
- 首部字段值的集合:入分組將與之匹配。
- 計數(shù)器集合:計數(shù)器可以包括已經與該表項匹配的分組數(shù)量以及自從該表項上次更新以來的時間。
- 當匹配分配流表項時所采取的動作集合:這些動作可能將分組轉發(fā)到給定的輸出端口、丟棄該分組、復制該分組和將它們發(fā)送到多個輸出端口以及重寫所選的首部字段。
??匹配
- 到達一臺分組交換機的一個鏈路層幀將包含一個網絡層數(shù)據報作為其有效載荷,該載荷通常依次將包含一個運輸層報文段。
- 入端口是指分組交換機上接受分組的輸入端口,流表項也可以有通配符。
??動作
每個流表項都有零個或多個動作列表:
- 轉發(fā):一個入分組可以轉發(fā)到一個特定的物理輸出端口,廣播到所有端口,或通過所選的端口集合進行多播。該分組可能被封裝并發(fā)送用于該設備的遠程控制器,該控制器則可能對該分組采取某些動作。
- 丟棄:沒有動作的流表項表明某個匹配的分組應當被丟棄。
- 修改字段:在分組被轉發(fā)到所選的輸出端口之前,分組的首部10個字段中的值可以重寫。
??小結
在本章中,我們討論了網絡層的數(shù)據平面功能,即每臺路由器的如下功能:
- 決定到達路由器的輸入鏈路之一的分組如何轉發(fā)到該路由器的輸出鏈路之一。
- 我們從仔細觀察路由器的內部操作開始,學習輸入和輸出端口功能,以及基于目的地的轉發(fā)、路由器的內部交換機制、分組排隊管理等等。
- 我們涉及傳統(tǒng)的IP轉發(fā)(其中轉發(fā)基于數(shù)據報的目的地址進行)和通用轉發(fā)(其中轉發(fā)和其他功能可以使用數(shù)據報首部中的幾個不同的字段值來進行)。
- 我們還詳細地學習了IPv4和IPv6協(xié)議以及因特網編址。
參考博客:文章來源:http://www.zghlxwxcb.cn/news/detail-531700.html
- 路由器體系結構
-
VLSM 與CIDR的比較/什么是CIDR/什么是VLSM文章來源地址http://www.zghlxwxcb.cn/news/detail-531700.html
到了這里,關于計算機網絡|第四章:網絡層:數(shù)據平面的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!