標籤:

計算機網路教程之網路層與網路互連

計算機網路教程之網路層與網路互連

4 人贊了文章

本文是看謝鈞老師《計算機網路教程》的讀書筆記,若有侵權的地方,還望告知。

計算機網路讀書筆記 - 閑漁的文章 - 知乎專欄

本章討論網路互連問題,也就是討論多個網路通過路由器互連成為一個互連網路(或互聯網)的相關問題。本章的核心內容國際協議IP

網路層概述

網路層關注的是如何將分組從源主機沿著網路路徑送達目的主機,網路層必須知道整個網路的拓撲結構,並且在拓撲結構中選擇適當的轉發路徑。因此,網路中的每台主機和路由器都必須具有網路層功能,網路層最核心的功能就是:分組轉發路由選擇

網路的主要任務就是將分組從源主機傳送到目的主機,細分為兩種重要功能:

  • 分組轉發。當一個分組到達某個路由器的一條輸入鏈路時,該路由器必須將該分組轉發到適當的輸出鏈路。在每個路由器中需要有一個轉發表(forwarding table),路由器在轉發分組時,要根據到達分組首部中的轉發標識在轉發表中查詢。
  • 路由選擇。當分組從發送方流向接收方時,網路層必須決定這些分組所採用的路由或路徑,這就是路由選擇(routing)。路由選擇的結果就是生成供分組轉發使用的轉發表。

路由選擇直接生成的是路由表(routing table),然後再由路由表生成最終的轉發表。

當前的計算機網路體系結構中,網路層或提供主機到主機的無連接服務,或提供主機到主機的面向連接服務,但不同時提供兩種服務。在網路層提供面向連接服務的計算機網路被稱為虛電路網路(virtual-circuit network),而在網路層提供無連接服務的計算機網路被稱為數據報網路(datagram network)。網際網路採取的設計思路:網路層向上只提供簡單靈活的、無連接的、盡最大努力(best effort)交付的數據報服務。網路在發送分組時不需要先建立連接,每個分組(也就是IP數據報)獨立發送。網路層不提供服務質量(Quality of Service,QoS)的承諾。這種設計思想稱作「端到端原則(end-to-end arguments),即將複雜的網路處理功能置於網際網路邊緣,將相對簡單的盡最大努力的分組交付功能置於網際網路的核心。

網際協議IP

網際協議IP是TCP/IP體系中兩個最主要的協議之一,與IP協議配套使用的還有4個協議:地址解析協議(Address Resolution Protocol,ARP)、逆地址解析協議(Reverse Address Resolution Protocol,RARP)、網際控制報文協議(Internet Control Message Protocol,ICMP)、網際組管理協議(Internet Group Management Protocol,IGMP)。

一般來說,沒有一種單一的網路能夠適應所有用戶的需求,將網路互相連接起來要使用一些中間設備:物理層使用的中間設備叫做轉發器(repeater);數據鏈路層使用的中間設備叫做網橋橋接器(bridge);網路層使用的中間設備叫做路由器(router);在網路層以上使用的中間設備叫做網關(gateway),用網關連接兩個不兼容的系統需要在高層進行協議的轉換。

整個網際網路就是一個單一的邏輯網路,IP地址給網際網路上的每一個主機(或路由器)的每一個介面分配一個全世界範圍是惟一的32位標識符。為了提高可讀性,常常把32位的IP地址中的每8位用其等效的十進位數字表示,並且在這些數字之間加上一個點,稱作點分十進位記法(dotted decimal notation)。

子網掩碼是一個網路的重要屬性,不同的子網掩碼對應的最大地址不同,容納的最大主機數也不一樣,因此,在每個主機的網路連接屬性中不僅要配置主機的IP地址,還要配置所在網路的子網掩碼。當前網路的IP地址一般採用無分類域間路由選擇(Classless Inter-Domain Routing,CIDR),CIDR一般採用斜線記法(slash notation),即在IP地址後面加上斜線」/」,然後寫上網路前綴所佔的位數,也就是地址掩碼中1的個數

IP地址放在IP數據報的首部,而物理地址則放在MAC幀的首部。在網路層和網路層以上使用的是IP地址,而數據鏈路層及以下使用的是物理地址。因而在數據鏈路層看不見數據報的IP地址。

實際應用中,經常遇到已經知道了一個機器(主機或路由器)的IP地址,需要找出其相應的物理地址;或反過來,已經知道了物理地址,需要找出相應的IP地址,這時就需要地址解析協議ARP。

IP數據報由首部和數據兩部分組成,首部的前一部分是固定長度,共20位元組,是所有IP數據報必須具有的。首部的固定部分後面是一些可選欄位,其長度是可變的。首部其中一部分內容是生存時間(Time To Live,TTL),佔8位,表明數據報在網路中的壽命,最初設計以秒為單位,但後來TTL欄位功能改為「跳數限制」(名稱不變),指明數據在網際網路中至多可經過多少路由器。顯然最大值是255,若設置為1,就表示這個數據報只能在本區域網中傳送。

網際控制報文協議

為了更有效地轉發IP數據報和提高交付成功的機會,在網際層使用了網際控制報文協議(Internet Control Message Protocol,ICMP)。ICMP的一個重要應用就是分組網間探測(Packet InterNet Grouper,PING),用來測試兩個主機之間連通性。PING使用了ICMP回送請求與回頭回答報文。PING是應用層直接使用網路層ICMP的一個例子,沒有通過運輸層的TCP或UDP。

路由器的工作原理

整個路由器結構可劃分為兩大部分:路由選擇部分分組轉發部分。其中,路由轉發部分也叫做控制部分,核心構件是路由選擇處理機,任務是根據所選定的路由選擇構造出路由表,並不斷地更新和維護路由表。分組轉發部分由3個部分組成:交換結構、一級輸入埠和一組輸出埠(這裡的埠是硬體埠)。

路由器和交換機的比較:路由器工作在網路層,利用網路層地址轉發分組;交換機工作在數據鏈路層,利用MAC地址轉發分組。

交換機的最大優點是即插即用,

並具有相對高的分組過濾和轉發速度。即插即用是因為主機完全感覺不到交換機的存在(即對主機「透明」),網路管理員也無需進行特殊配置就可用它進行組網。轉發速度快是因為交換機只需處理通過第二層傳送上來的分組,而路由還必須通過第三層傳送上來的幀。交換機的缺點是由於MAC地址是平坦的,一個大型交換機網路要求交換機維護大的轉發表,也將要求在主機中維護大的ARP表,並會產生和處理大量的ARP廣播。交換機網路的邏輯拓撲結構被限制為一棵生成樹,即使在物理上存在冗餘鏈路,也不可能為每對主機提供最佳路徑。

路由器則剛好相反,優點是能提供更加智能的路由選擇,並能隔離廣播域。路由器互連的網路中,網路拓撲不再被限制為一棵生成樹,可以通過路由選擇協議為源和目的之間存在多條冗餘路徑中選擇一條最佳路徑。但路由器不是即插即用的,需要為路由器的每個介面小心地配置IP地址,用戶需要在他們的主機中配置默認路由器的IP地址。

兩者的選擇:包含幾百台主機的小網路,交換機就足夠了,因為無需任何IP地址的配置就可以互連這些主機,並提供高性能的數據交換。但包含幾千台主機的更大網路,通常在網路中使用路由器(除了交換機之外)將整個網路劃分為多個區域網並構成一個互連網路。

VPN與NAT

考慮到IP地址的緊缺和網際網路的安全問題(一個機構內不需要所有主機接入外部的網際網路),實際上很多時候主機主要還是和本機構內的其他主機進行通信,這樣就可以由本機構自行分配IP地址,也就是說,讓計算機使用僅在本機構有效的IP地址(本地地址),從而大大節約寶貴的全球IP地址資源。

但是,如果任意選擇一些IP地址作為本機構內部使用的本地地址,可能引起一些麻煩(比如IP地址的二義性問題)。為了解決這個問題,RFC 1918指明了一些專用地址(private address),這些地址只能用於一個機構的內部通信,不能用於和網際網路上的主機通信。也就是說,專用地址只能用作本地地址而不能用作全球地址。在網際網路中的所有路由器,對目的地址是專用地址的數據報一律不進行轉發

採用專用IP地址的互連網路稱作專用互聯網本地互聯網。專用IP地址也叫做可重用地址(reusable address)。有時分布在不同地點的專用網路需要經常通信,可以利用公用的網際網路作為本機構各專用網之間的通信載體,這樣的專用網雙稱為虛擬專用網(Virtual Private Network,VPN)。由於專用網不同網點之間的通信必須經過公用的網際網路,所以所有通過網際網路傳送的數據都必須加密。

由於網際網路用戶數目的激增,IP地址空間面臨耗盡的危險一直存在,1994年提出了一種網路地址轉換(Network Address Translation,NAT)方法兩次緩解IP地址空間耗盡的問題。NAT能使用大量內部專用地址的專用網路用戶共享少量外部全球地址來訪問網際網路上的主機和資源。這種方法需要在專用網路連接到網際網路的路由器上安裝NAT軟體。裝有NAT軟體的路由器叫做NAT路由器,它至少有一個有效的全球地址IP_G

下一代的網際協議IPv6

IPv6是解決IP地址耗盡的根本措施。IPv6提供更大的地址空間和許多其他的變化。而IPv4向IPv6的過濾只能採用逐步演進的辦法,同時必須使新的IPv6系統能夠向後兼容。


推薦閱讀:

第三章:運輸層 |《計算機網路:自頂向下方法》
EPOLLET VS EPOLLLT
第二章:應用層 |《計算機網路:自頂向下方法》
LBS基站定位如何營救來自手機的「致命呼救」

TAG:計算機網路 |