自學網路協議(五) 網間通訊 子網掩碼

2021-10-01 11:32:45 字數 2997 閱讀 5994

前文回顧:

自學網路協議(一):http請求與響應——get和post真的不一樣嗎?

自學網路協議(二):osi第一層——物理層physical layer

自學網路協議(三):osi第二層——機器通訊那點事

自學網路協議(四):osi第三層——網路層的作用(上)

前面說osi第3層的作用是「互連網路」。

我們也開始了ip的學習,ip —— internet protocol,即「網際網路協議」,它毫無疑問是網路協議中主要的協議簇。

而ip位址,它實際上分為兩部分 —— 網路位址 & 機器位址。

實際上,我們在網際網路上定位乙個主機,就類似於去乙個小區找人:首先通過網路位址找到這個人是哪個小區的,再用主機位址(機器位址)從小區中找到這個人。

那麼,我們怎麼知道ip位址中的哪個部分代表什麼呢?

子網掩碼算是乙個「額外的資訊」了。它和ip位址是密不可分的。因為正是子網掩碼指明了ip位址的哪一部分是網路位址,哪一部分是主機位址。

還記得ifconfig / ipconfig嗎?它不僅包含了mac位址,還有ip位址和子網掩碼:enp0s3(乙太網介面)、inet(ip位址)、netmask(子網掩碼)

我們看到,子網掩碼和ipv4的ip位址格式一致——4個位元組,用點分十進位制表示,是因為ipv6格式的位址不需要子網掩碼。

子網掩碼中為1的二進位制位代表ip位址中的網路部分。

因為二進位制只由0、1組成,因此:子網掩碼中為0的二進位制位代表ip位址的主機部分。

255.255.0.0 -> 11111111.11111111.00000000.00000000

192.168.0.1 -> 11000000.10101000.00000000.00000001

如上,二進位制中黃色部分代表ip的網路位址,其餘代表主機位址。

然而,上述只是非常簡單的乙個例子。眾所周知,分割經常會發生在乙個位元組的中間:

255.255.240.0 -> 11111111.11111111.1111 0000.00000000

192.168.0.1 -> 11000000.10101000.0000 0000.00000000

這次分割又變成了這樣!

其實,子網掩碼中位元組可以取的值是特定的。這是由於子網掩碼中0和1的排列造成的。

二進位制位的連續性

事實上,在二進位制子網掩碼中,為1的位必須在左邊,為0的位必須在右邊,不能混用0和1

所以… 子網掩碼這樣寫:11111111.11100011.00000000.00000000是錯的!

!也就是說,子網掩碼的4個位元組中的每乙個位元組能取的值將始終是以下值:

00000000

->

010000000

->

12811000000

->

19211100000

->

22411110000

->

24011111000

->

24811111100

->

25211111110

->

25411111111

->

255

我們知道,乙個網路中,往往不只有一台主機。就像你乙個小區裡面,雖然我mxc使用者可以通過查詢我的網路位址和主機位址來確定,但我也很想知道,這個小區可以容納多少住戶,這些住戶的可用位址又是在哪個範圍裡的。

ip位址範圍的計算—— 計算第乙個和最後乙個位址

我們還是將目光放向了192.168.0.1255.255.240.0相關聯。

要知道,屬於同一網路的所有主機,他們的網路位址的所有位都是相同的!

對於這個例子,顯然,他們的網路位址都等於11000000.10101000.0000

然而,其中主機位址是可以變化的

在這個網路中,主機位址可以取很多值 —— 這取決於我們將主機位址的某些為設定為0還是1。

總的來說,他們(這些ip位址)將是:

如此,我們通過改變ip位址中主機位址的位,就找到了此網路中所有可被主機所用的ip位址。

網路的第乙個ip位址是主機位址所有位皆為0的位址;

網路的最後乙個ip位址是主機位址所有位皆為1的位址;

那麼問題又來了,此網路中有多少個真正可用ip位址?

若主機位址有兩位,那就有2的2次方個可能的位址(00、01、10、11)…

以此類推,要找到網路中的位址數量,只需知道主機位址的二進位制位數即可。

而ip位址中的主機位址是由子網掩碼定義的,也就是說,網路中的可用主機數取決於子網掩碼!

那麼,我們完全可以定義:網路中可用的ip數=2的「子網掩碼中0的個數」次方個

網路位址和廣播位址當我們向某網路的廣播位址傳送訊息時,此網路上的所有主機都將收到此訊息。

因此,假設乙個網路有 16 個可用的 ip 位址,網路中的主機卻只能使用 14 個位址,因為第乙個和最後乙個將保留給該網路的位址和廣播位址。這條規則對於任何網路都是如此,總是有 2 個不能為主機所用的位址。

上乙個例子,就是相關聯的 ip 位址192.168.0.1和子網掩碼255.255.240.0的示例中,網路中的主機可以使用的位址數是 4096(2的12次方) - 2 = 4094 個,因此理論上此網路可以容納 4094 臺主機。

網路通訊原理 五層協議

1.定義 任意兩台計算機正常通訊,需要通過一套統一的標準協議規範,這一系列協議就是 網際網路協議 網際網路協議的功能 定義計算機如何接入internet,以及接入internet的計算機通訊的標準。2.tcp ip五層協議 網際網路協議分為好多種,下面通過tcp ip五層協議為例舉例說明。a 物理層...

面試題系列(五) 網路協議

udp 是使用者資料報協議 主要用在實時性要求高以及對質量相對較弱的地方,但面對現在高質量的線路不是容易丟包除非是一些擁塞條件下,如流 tcp 是傳輸控制協議 是面連線的,那麼執行環境必然要求其可靠性不可丟包有良好的擁塞控制機制如http ftp telnet 等 三次握手 第一次握手 建立連線時,...

29 網路程式設計之TCP通訊協議

tcp通訊協議特點 1 tcp 協議是基於io流進行資料的傳輸,是 面向鏈結的。2 tcp 進行資料傳輸的時候,資料沒有大小限制的。3 面向鏈結,通過三次握手的機制,保證資料的完整性,是乙個可靠的協議。4 tcp 面向連線,所以速度稍微慢一點。5 tcp 是區分客戶端和服務端的。三次握手機制 保證網...