第一章 MAC地址
- 每一個網卡都有一個6字節(48bit)的MAC地址(Media Access Control Address)
- 全球唯一, 固化在了網卡的ROM中, 由IEEE802標准規定
- 前3字節: OUI(Organizationally Unique Identifier), 組織唯一標識符(代表網卡的生產廠家),由IEEE的注冊管理機構分配給廠商
- 后3字節: 網絡接口標識符,由廠商自行分配
MAC地址表示格式
- Windows
- 40-55-82-0A-8C-6D
- Linux, Android, Mac, iOS
- 40:55:82:0A:8C:6D
- Packet Tracer
- 4055.820A.8C6D
注:當48位全為1時,代表廣播地址:FF-FF-FF-FF-FF-FF
獲取MAC地址
當不知道對方主機的MAC地址時,可以通過發送ARP廣播獲取對方的MAC地址- 獲取成功后,會緩存IP地址、MAC地址的映射信息,俗稱:ARP緩存
- 通過ARP廣播獲取的MAC地址,屬於 動態(dynamic)緩存,存儲時間比較短(默認是2分鍾),過期就自動刪除
arp -d [主機地址]:刪除ARP緩存
arp -s 主機地址 MAC地址:增加一條緩存信息(這是靜態緩存,存儲時間較久,不同系統的存儲時間不同)
ARP/RARP
ARP (Address Resolution Protocol),地址解析協議- 作用:通過 IP地址 獲取 MAC地址
- 使用與ARP相同的報頭結構
- 作用與ARP相反,用於將MAC地址轉換為IP地址
- 后來被 BOOTP、DHCP 所取代
ICMP
ICMP (Internet Control Message Protocol),互聯網控制消息協議- IPv4中的ICMP被稱作 ICMPv4,IPv6中的ICMP則被稱作 ICMPv6
- 通常用於返回錯誤信息
- 比如 TTL值過期、目的不可達
- ICMP的錯誤消息總是包括了源數據並返回給發送者
第二章 IP地址
IP地址 (Internet Protocol Address):互聯網上的每一個主機都有一個IP地址
- 最初是 IPv4 版本,32bit(4字節),2019年11月25日,全球的IP地址已經用完
- 后面推出了 IPv6 版本,128bit(16字節)
- 我們在學習中討論的都是 IPV4
IP地址的組成
IP地址 由2部分組成:網絡標識(網絡ID)、主機標識(主機ID)
通過子網掩碼(subnet mask)可以得知 網絡ID 、主機ID
主機所在的網段 = 子網掩碼 & IP地址
例如:
IP地址:192.168.1.10 子網掩碼:255.255.255.0 1100 0000 . 1010 1000 . 0000 0001 . 0000 1010 & 1111 1111 . 1111 1111 . 1111 1111 . 0000 0000 ---------------------------------------------------- 1100 0000 . 1010 1000 . 0000 0001 . 0000 0000 網段:192.168.1.0
網段是由子網掩碼計算得出,只有IP地址無法得知網段。
IP地址:130.168.1.10 子網掩碼:255.255.0.0 網段:130.168.0.0 該網段最多有 256*256-2 個IP地址 -2是因為: 全0代表網段,全1代表廣播 網段和廣播無法分配IP地址.
計算機和其他計算機通信前,會先判斷目標主機和自己是否在同一網段:
- 同一網段:不需要由路由器進行轉發
- 不同網段:交由路由器進行轉發
IP地址的分類
注:判斷IP地址的類別只要看第一部分即可。
只有 A\B\C 類地址才能分配給主機
- 主機ID為 全0,表示主機所在的網段,如 192.168.1.0
- 主機ID為 全1,表示主機所在網段的全部主機(廣播),如 192.168.1.255
- 可以嘗試用ping給某個網段的全部主機發數據
A類地址
默認子網掩碼是 255.0.0.0
網絡ID
- 0 不能用,127 作為保留網段。
- 其中 127.0.0.1 是 本地環回地址(Loopback),代表本機地址
- 可以分配給主機的第1部分的取值范圍是:1~126
主機ID
- 第2、3、4部分的取值范圍是:0~255
- 每個A類網絡能容納的最大主機數是:256*256*256–2 = 224–2 = 16777214
B類地址
默認子網掩碼是 255.255.0.0
網絡ID
- 第1部分的取值范圍是:128~191
- 第2部分的取值范圍是:0~255
主機ID
- 第3、4部分的取值范圍是:0~255
- 每個B類網絡能容納的最大主機數是:256*256-2 = 216-2 = 65534
C類地址
默認子網掩碼是 255.255.255.0
目前用的最多的是 C類地址!
網絡ID
- 第1部分的取值范圍是:192~223
- 第2、3部分的取值范圍是:0~255
主機ID
- 第4部分的取值范圍是:0~255
- 每個C類網絡能容納的最大主機數是:256-2 = 254
D類地址
沒有子網掩碼,用於多播(組播)地址
以 1110 開頭,多播地址
第一部分取值是:224~239
E類地址
以 1111 開頭,保留為今后使用
第一部分取值是:240~255
特殊地址
- 127.0.0.1:回環地址。該地址指電腦本身,主要預留測試本機的TCP/IP協議是否正常。只要使用這個地址發送數據,則數據包不會出現在網絡傳輸過程中。
- 10.x.x.x、172.16.x.x~172.31.x.x、192.168.x.x:這些地址被用做內網中。用做私網地址,這些地址不與外網相連。
- 255.255.255.255:廣播地址
- 0.0.0.0:這個IP地址在IP數據報中只能用作源IP地址,這發生在當設備啟動時但又不知道自己的IP地址情況下
所有網絡號為127的地址都被稱之為回環地址,所以回環地址!=127.0.0.1,它們是包含關系,即回環地址包含127.0.0.1。
127.0.0.1:數據出不去自己的網卡,也就說在本機器調試的話可以用;
0.0.0.0 :是可以接受網絡中所有“發給自己”的數據,數據是可以來自其他的地方
綁定到127.0.0.1只會監聽來自本地的請求,綁定到0.0.0.0是監聽所有來源的請求
子網掩碼的CIDR表示方法
CIDR (Classless Inter-Domain Routing),無類別域間路由
子網掩碼的CIDR表示方法
- 192.168.1.100/24,代表子網掩碼有24個1,也就是 255.255.255.0
- 123.210.100.200/16,代表子網掩碼有16個1,也就是 255.255.0.0
計算工具:https://www.sojson.com/convert/subnetmask.html
第三章 子網划分
為什么要進行子網划分?
如果需要讓 200 台主機在同一個網段內,可以分配一個 C類網段,比如192.168.1.0/24
- 共 254 個可用IP地址:192.168.1.1 ~ 192.168.1.254
- 多出 54 個空閑的IP地址,這種情況並不算浪費資源
如果需要讓 500 台主機在同一個網段內,那就分配一個 B類網段,比如191.100.0.0/16
- 共 65534 個可用IP地址:191.100.0.1 ~ 191.100.255.254
- 多出 65034 個空閑的IP地址,這種情況屬於極大的浪費資源
如何盡量避免浪費IP地址資源?
- 合理進行 子網划分
子網划分:借用主機位作子網位,划分出多個子網
- 等長子網划分:將一個網段等分成多個子網,每個子網的可用IP地址數量一樣
- 變長子網划分:每個子網的可用IP地址數量可以是不一樣的
子網划分器:http://www.ab126.com/web/3552.html
子網划分的步驟
- 確定子網的子網掩碼長度
- 確定子網中第1個、最后1個主機可用的IP地址
等長子網划分
以C類子網划分(2、4、8等分)為例:
本來有一個C類網段: 192.168.0.0/24 划分成兩個子網后: A子網: 192.168.0.0/25 子網掩碼: 255.255.255.128 可用IP地址: 192.168.0.1 ~ 192.168.0.126 共 126 個 B子網: 192.168.0.128/25 子網掩碼: 255.255.255.128 可用IP地址: 192.168.0.129 ~ 192.168.0.254 共 126 個
等分成 2 個子網:
等分成 4 個子網:
等分成 8 個子網:
變長子網划分
思考題:雙方子網掩碼不同,計算對方所處網段
問:下列兩台計算機可以正常通信嗎?
答:不可以。計算機0 想要發送數據包,先判斷計算機1是否和自己處於同一個網段,計算網段的方法是:IP地址 & 子網掩碼,計算機0判斷計算機1的網段為 192.168.10.10 & 255.255.255.0 = 192.168.10.0,而計算機0判斷自身所處網段為 192.168.0.10 & 255.255.255.0 = 192.168.0.0,雙方不處於同一網段,所以計算機0無法將數據包發給計算機1(不同網段的數據通信需要路由器)
解決方案:利用路由器。
第四章 超網
跟子網反過來,它是將多個連續的網段合並成一個更大的網段
需求:原本有200台計算機使用 192.168.0.0/24 網段,現在希望增加200台設備到同一個網段
- 200台在 192.168.0.0/24 網段,200台在 192.168.1.0/24 網段
- 合並 192.168.0.0/24、192.168.1.0/24 為一個網段:192.168.0.0/23
(子網掩碼往左移動1位)
問:192.168.0.255/23 這個IP地址,可以分配給計算機使用么?
192.168.0.255/24 是廣播,不能分配給計算機。
192.168.0.255/23 如下:
在這里插入圖片描述
主機部分並不全為1,所以是可以分配給計算機使用的。
合並4個網段
子網掩碼向左移動 2 位,可以合並 4 個網段
將 192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24 合並為192.168.0.0/22 網段
子網合並的規律
假設 n 是 2 的 k 次冪(k≥1),子網掩碼左移 k 位能夠將能夠合並 n 個網段
假設 n 是 2 的 k 次冪(k≥1),如果第一個網段的網絡號能被 n 整除,那么由它開始連續的 n 個網段,能通過左移 k 位子網掩碼進行合並。
第一個網段的網絡號以二進制 0 結尾,那么由它開始連續的 2 個網段,能通過左移1位子網掩碼進行合並
第一個網段的網絡號以二進制 00 結尾,那么由它開始連續的 4 個網段,能通過左移2位子網掩碼進行合並
第一個網段的網絡號以二進制 000 結尾,那么由它開始連續的 8 個網段,能通過左移3位子網掩碼進行合並
判斷一個網段是子網還是超網
首先看該網段的類型,是A類網絡、B類網絡、C類網絡?
- A類子網掩碼的位數是8(255.0.0.0)
- B類子網掩碼的位數是16(255.255.0.0)
- C類子網掩碼的位數是24(255.255.255.0)
如果該網段的子網掩碼位數比默認子網掩碼多,就是子網
如果該網段的子網掩碼位數比默認子網掩碼少,則是超網
例如:
判斷 25.100.0.0/16 是子網還是超網:
- 根據 25 判斷出這是個 A 類網絡,默認子網掩碼 8 位
- 由於該網段子網掩碼 16 位,比默認多,所以是子網
判斷 200.100.0.0/16 是子網還是超網:
- 根據 200 判斷出這是個 C 類網絡,默認子網掩碼 24 位
- 由於該網段子網掩碼 16 位,比默認少,所以是超網