【計算機(jī)網(wǎng)絡(luò)】4.1 網(wǎng)絡(luò)層

1.概述

網(wǎng)絡(luò)層向上只提供簡單靈活的、無連接的、盡最大努力交互的數(shù)據(jù)報服務(wù)。網(wǎng)絡(luò)層的作用:將分組(數(shù)據(jù)分割成小塊)從一臺主機(jī)移動到另一臺主機(jī),從而提供了主機(jī)到主機(jī)的通信服務(wù)、各種形式的進(jìn)程到進(jìn)程之間的通信。通過IP 協(xié)議,可以把異構(gòu)的物理網(wǎng)絡(luò)連接起來,使得在網(wǎng)絡(luò)層看起來好像是一個統(tǒng)一的網(wǎng)絡(luò)。

網(wǎng)絡(luò)層的作用

?IP 協(xié)議配套使用的有三個協(xié)議:

(1)地址解析協(xié)議 ARP(Address Resolution Protocol)

(2)網(wǎng)際控制報文協(xié)議 ICMP(Internet Control Message Protocol)

(3)網(wǎng)際組管理協(xié)議 IGMP(Internet Group Management Protocol)

2. IP 數(shù)據(jù)報格式

IP數(shù)據(jù)報的格式

(1)版本

?有 4(IPv4)和 6(IPv6)兩個值。

(2)首部長度

占 4 位,因此最大值為 15,最小值為5(固定部分長度為 20 字節(jié))。值為 1 表示的是 1 個 32 位字即 4 字節(jié),所以首部長度的取值是5*4個字節(jié)~15*4個字節(jié)。如果可選字段的長度不是 4 字節(jié)的整數(shù)倍,就用尾部的填充部分來填充。

(3)區(qū)分服務(wù)

用來獲得更好的服務(wù),一般情況下不使用。

(4)總長度

包括首部長度和數(shù)據(jù)部分長度。

(5)標(biāo)識

在數(shù)據(jù)報長度過長從而發(fā)生分片的情況下,相同數(shù)據(jù)報的不同分片具有相同的標(biāo)識符。

(6)片偏移

和標(biāo)識符一起,用于發(fā)生分片的情況。片偏移的單位為 8 字節(jié)

數(shù)據(jù)報分片

(7)生存時間

TTL,它的存在是為了防止無法交付的數(shù)據(jù)報在互聯(lián)網(wǎng)中不斷兜圈子。以路由器跳數(shù)為單位,當(dāng) TTL 為 0 時就丟棄數(shù)據(jù)報。

(8)協(xié)議

指出攜帶的數(shù)據(jù)應(yīng)該上交給哪個協(xié)議進(jìn)行處理,例如 ICMP、TCP、UDP 等。

(9)首部檢驗和

因為數(shù)據(jù)報每經(jīng)過一個路由器,都要重新計算檢驗和,因此檢驗和不包含數(shù)據(jù)部分可以減少計算的工作量。

3. IP 地址編址方式

3.1 分類

IP地址是有兩部分組成:網(wǎng)絡(luò)號主機(jī)號,其中不同分類具有不同的網(wǎng)絡(luò)號長度,并且是固定的。

IP 地址 ::= {< 網(wǎng)絡(luò)號 >, < 主機(jī)號 >}

IP地址分類

下面以IPv4為例:

3.1.1 IP地址的格式

常見的類似192.168.1.2這種格式的就是IPv4。IPv4的IP地址由4段組成,段之間用點隔開,每段由8位二進(jìn)制數(shù)組成,所以其范圍用二進(jìn)制表示就是00000000-11111111,用十進(jìn)制表示就是0-255之間。所以IP地址由4段共32位組成,其二進(jìn)制范圍是00000000.00000000.00000000.00000000—11111111.11111111.11111111.11111111,十進(jìn)制表示就是0.0.0.0–255.255.255.255,一共是(4294967296,近43億)個IP地址。

3.1.2 IP地址分類

(1)A類IP地址

A類IP地址

(2)B類IP地址

B類IP地址的前16位是網(wǎng)絡(luò)地址,網(wǎng)絡(luò)地址的前兩位必須是10,所以B類網(wǎng)絡(luò)地址共有2^14=16384個。后16位是主機(jī)地址,但全0和全1的主機(jī)地址被保留,所以每個B類網(wǎng)絡(luò)可以容納2^16-2=65534臺主機(jī)。B類IP地址的范圍是128.0.0.1-191.255.255.254(二進(jìn)制為10000000.00000000.00000000.00000001 - 10111111.11111111.11111111.11111110)。B類IP地址一般用于中型網(wǎng)絡(luò)。

B類IP地址

(3)C類IP地址

C類IP地址的前24位是網(wǎng)絡(luò)地址,網(wǎng)絡(luò)地址的前兩位必須是110,所以C類網(wǎng)絡(luò)地址共有2^21=2097152個。后8位是主機(jī)地址,但全0和全1的主機(jī)地址被保留,所以每個C類網(wǎng)絡(luò)可以容納2^8-2= 254臺主機(jī)。C類IP地址的范圍是192.0.0.1-233.255.255.254(二進(jìn)制為11000000.00000000.00000000.00000001 - 11011111.11111111.11111111.11111110)。C類IP地址一般用于小型網(wǎng)絡(luò)。

C類IP地址

3.2 子網(wǎng)劃分

通過在主機(jī)號中拿一部分作為子網(wǎng)號,把兩級 IP 地址劃分為三級 IP 地址。

IP 地址 ::= {< 網(wǎng)絡(luò)號 >, < 子網(wǎng)號 >, < 主機(jī)號 >}

要使用子網(wǎng),必須配置子網(wǎng)掩碼。一個 B 類地址的默認(rèn)子網(wǎng)掩碼為 255.255.0.0,如果 B 類地址的子網(wǎng)占兩個比特,那么子網(wǎng)掩碼為 11111111 11111111 11000000 00000000,也就是 255.255.192.0。

注意:外部網(wǎng)絡(luò)看不到子網(wǎng)的存在

3.2.1 子網(wǎng)掩碼的組成

子網(wǎng)掩碼和IP地址相同點:分成4段,每段用點隔開,用二進(jìn)制表示每段都是8位。不同點:子網(wǎng)掩碼的前面部分全部是1,后面部分全部是0。如下例子:

A類IP地址的默認(rèn)子網(wǎng)掩碼是255.0.0.0,即11111111 00000000 00000000 00000000

B類IP地址的默認(rèn)子網(wǎng)掩碼是255.255.0.0,即11111111 11111111 00000000 00000000

C類IP地址的默認(rèn)子網(wǎng)掩碼是255.255.255.0,即11111111 11111111 11111111 00000000

3.2.2?子網(wǎng)掩碼的含義

子網(wǎng)掩碼是用于將一個IP地址劃分成網(wǎng)絡(luò)地址和主機(jī)地址2個部分,必須和IP地址一起使用。子網(wǎng)掩碼中1的個數(shù)表示IP地址的前面多少位表示網(wǎng)絡(luò)地址,0的格式表示IP地址后面多少位表示主機(jī)地址。

例子:一個規(guī)模100人的公司申請了一個C類IP地址網(wǎng)段218.17.21.0,可以容納254臺主機(jī)。公司分行政、財務(wù)、市場、銷售、售后、研發(fā)六個部門,每個部門有十幾臺主機(jī),現(xiàn)在需要按照部門來劃分子網(wǎng),使用子網(wǎng)掩碼怎么劃分呢?說明:C類IP地址網(wǎng)段218.17.21.0默認(rèn)前面3段(24位)表示網(wǎng)絡(luò)地址,最后面1段(8位)表示主機(jī)地址,即默認(rèn)子網(wǎng)掩碼是255.255.255.0。

步驟1:將IP地址的最后8位(00000001~11111110)再分成2部分,前面一部分表示子網(wǎng)地址,后面一部分表示主機(jī)地址。

步驟2:由于公司有6個部門,使用前面3位表示子網(wǎng)地址,后面5位表示主機(jī)地址,這樣可以劃分成2^3=8個子網(wǎng),每個子網(wǎng)有2^5-2=30臺主機(jī)。因此,前面27位表示網(wǎng)絡(luò)地址,后面5位表示主機(jī)地址。

步驟3:行政部的子網(wǎng)地址是11111111 11111111 11111111 00100000,主機(jī)地址是11111111 11111111 11111111 00100001~11111111 11111111 11111111 00111110(實際IP地址范圍是218.17.21.1–218.17.21.30)。說明:主機(jī)地址全0和全1是保留的。

步驟4:同理,市場部的子網(wǎng)地址是11111111 11111111 11111111 01000000,主機(jī)地址是11111111 11111111 11111111 01000001~11111111 11111111 11111111 01011110(實際IP地址范圍是218.17.21.33–218.17.21.62)。

3.3 無分類

無分類編址 CIDR 消除了傳統(tǒng) A 類、B 類和 C 類地址以及劃分子網(wǎng)的概念,使用網(wǎng)絡(luò)前綴和主機(jī)號來對 IP 地址進(jìn)行編碼,網(wǎng)絡(luò)前綴的長度可以根據(jù)需要變化。

IP 地址 ::= {< 網(wǎng)絡(luò)前綴號 >, < 主機(jī)號 >}

CIDR 的記法上采用在 IP 地址后面加上網(wǎng)絡(luò)前綴長度的方法,例如 128.14.35.7/20 表示前 20 位為網(wǎng)絡(luò)前綴。

CIDR 的地址掩碼可以繼續(xù)稱為子網(wǎng)掩碼,子網(wǎng)掩碼首 1 長度為網(wǎng)絡(luò)前綴的長度。

一個 CIDR 地址塊中有很多地址,一個 CIDR 表示的網(wǎng)絡(luò)就可以表示原來的很多個網(wǎng)絡(luò),并且在路由表中只需要一個路由就可以代替原來的多個路由,減少了路由表項的數(shù)量。把這種通過使用網(wǎng)絡(luò)前綴來減少路由表項的方式稱為路由聚合,也稱為?構(gòu)成超網(wǎng)?。

在路由表中的項目由“網(wǎng)絡(luò)前綴”和“下一跳地址”組成,在查找時可能會得到不止一個匹配結(jié)果,應(yīng)當(dāng)采用最長前綴匹配來確定應(yīng)該匹配哪一個。

4. 地址解析協(xié)議 ARP

網(wǎng)絡(luò)層實現(xiàn)主機(jī)之間的通信,而鏈路層實現(xiàn)具體每段鏈路之間的通信。因此在通信過程中,IP 數(shù)據(jù)報的源地址和目的地址始終不變,而 MAC 地址隨著鏈路的改變而改變。

網(wǎng)絡(luò)配置

ARP 協(xié)議實現(xiàn)由 IP 地址得到 MAC 地址:

ARP協(xié)議的作用

每個主機(jī)都有一個 ARP 高速緩存,里面有本局域網(wǎng)上的各主機(jī)和路由器的 IP 地址到 MAC 地址的映射表。

如果主機(jī) A 知道主機(jī) B 的 IP 地址,但是 ARP 高速緩存中沒有該 IP 地址到 MAC 地址的映射,此時主機(jī) A 通過廣播的方式發(fā)送 ARP 請求分組,主機(jī) B 收到該請求后會發(fā)送 ARP 響應(yīng)分組給主機(jī) A 告知其 MAC 地址,隨后主機(jī) A 向其高速緩存中寫入主機(jī) B 的 IP 地址到 MAC 地址的映射。

ARP協(xié)議的工作原理

5. 網(wǎng)際控制報文協(xié)議 ICMP

ICMP 是為了更有效地轉(zhuǎn)發(fā) IP 數(shù)據(jù)報和提高交付成功的機(jī)會,封裝在 IP 數(shù)據(jù)報中,不屬于高層協(xié)議。

ICMP 報文分為差錯報告報文和詢問報文,常見 ICMP 報文類型,如下所示:

常見ICMP報文類型

(1)Ping

Ping 是 ICMP 的一個重要應(yīng)用,主要用來測試兩臺主機(jī)之間的連通性。

Ping 的原理是通過向目的主機(jī)發(fā)送 ICMP Echo 請求報文,目的主機(jī)收到之后會發(fā)送 Echo 回答報文。Ping 會根據(jù)時間和成功響應(yīng)的次數(shù)估算出數(shù)據(jù)包往返時間以及丟包率。

(2)Traceroute

Traceroute 是 ICMP 的另一個應(yīng)用,用來跟蹤一個分組從源點到終點的路徑。

Traceroute 發(fā)送的 IP 數(shù)據(jù)報封裝的是無法交付的 UDP 用戶數(shù)據(jù)報,并由目的主機(jī)發(fā)送終點不可達(dá)差錯報告報文,步驟如下。

①源主機(jī)向目的主機(jī)發(fā)送一連串的 IP 數(shù)據(jù)報。第一個數(shù)據(jù)報 P1 的生存時間 TTL 設(shè)置為 1,當(dāng) P1 到達(dá)路徑上的第一個路由器 R1 時,R1 收下它并把 TTL 減 1,此時 TTL 等于 0,R1 就把 P1 丟棄,并向源主機(jī)發(fā)送一個 ICMP 時間超過差錯報告報文;

②源主機(jī)接著發(fā)送第二個數(shù)據(jù)報 P2,并把 TTL 設(shè)置為 2。P2 先到達(dá) R1,R1 收下后把 TTL 減 1 再轉(zhuǎn)發(fā)給 R2,R2 收下后也把 TTL 減 1,由于此時 TTL 等于 0,R2 就丟棄 P2,并向源主機(jī)發(fā)送一個 ICMP 時間超過差錯報文。

③不斷執(zhí)行這樣的步驟,直到最后一個數(shù)據(jù)報剛剛到達(dá)目的主機(jī),主機(jī)不轉(zhuǎn)發(fā)數(shù)據(jù)報,也不把 TTL 值減 1。但是因為數(shù)據(jù)報封裝的是無法交付的 UDP,因此目的主機(jī)要向源主機(jī)發(fā)送 ICMP 終點不可達(dá)差錯報告報文。

④之后源主機(jī)知道了到達(dá)目的主機(jī)所經(jīng)過的路由器 IP 地址以及到達(dá)每個路由器的往返時間。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容