談談網路協議 – 基礎知識

悠悠清風~發表於2021-05-21

基本概念

網際網路 (internet)

網際網路就是各種終端通過轉發裝置(交換機,路由器)進行環型的連線形成一個圖的結構,使之每個裝置都能夠互相連通,如下圖:

計算機之間的連線方式

  • 同臺電腦直連
  • 同軸電纜(Coaxial)
  • 集線器(hub)
  • 網橋(Bridge)
  • 交換機(Swtch)
  • 路由器(Router)

上面的裝置都是用於連線終端裝置的,發展使也是從上往下

RJ45介面 與 網線

image-20210310164101034

直通線與交叉線

  • 直通線:介面兩端同樣的顏色會對應同一個介面位

  • 交叉線:有些線的位置需要調整,如下圖

同臺電腦直連

直接使用網線將兩臺PC連線,需要使用 直通線

同軸電纜(Coaxial)

image-20210310164452383

image-20210310164510323

特點

  • 半雙工通訊(傳送和接收不能同時進行)
  • 容易衝突
  • 不安全
  • 中間斷了,整個網路都癱瘓

集線器(hub)

image-20210310164707989

用於連線多臺PC終端,所有PC都需要在同一網段

特點

  • 半雙工通訊(傳送和接收不能同時進行)
  • 容易衝突
  • 不安全
  • 和同軸電纜一樣:沒有智商

網橋(Bridge)

image-20210310164822638

主要用於隔絕衝突域,連線2邊的集線器,能夠通過自學習得到每個介面那側的MAC地址

所以它會快取兩邊的PC的MAC地址,當發起ARP(Address Resolution Protocol 地址解析協議)的時候就不需要再去廣播了,所以說它是有智商的

交換機(Switch)

image-20210310165952084

image-20210310165957917

特點

  • 相當於介面更多的網橋
  • 全雙工通訊(可以同時接和收)
  • 比集線器安全
  • 智慧

路由器(Router)

image-20210310170242616

特點

  • 隔絕廣播域
  • 可以在不同網段之間轉發資料
  • 路由器兩端也必須是不同網段

網線直連、同軸電纜、集線器、網橋、交換機

  • 連線的裝置必需在同一網段

  • 連線的裝置處在同一廣播域(廣播是針對同一網段的)

MAC地址、IP地址

MAC地址

image-20210310171346300

  • 每個網路卡都有一個唯一6位元組(48bit)的MAC地址(Media Access Control Address
  • 全球唯一,固化在網路卡的ROM中,由IEEE802標準規定
  • 前3位元組:OUI(Orgnaizationally Unique Identifier),組織唯一識別符號,由IEEEE的註冊管理機構分析給廠商
  • 後3位元組:網路介面識別符號,由廠商自行分配

OUI查詢

http://standards-oui.ieee.org/oui/oui.txt

https://mac.bmcx.com/

MAC地址表示格式

  • Windows
    • 60-38-78-10-8C-34
  • Linux、Android、Mac、iOS
    • 60:38:78:10:8C:34
  • Packet Tracer
    • 6038.7810.8C34
  • 當48位全為1時,代表廣播地址
    • FF-FF-FF-FF-FF-FF

MAC地址操作

  • 檢視MAC地址
    • windows: ipconfig /all
    • linux: ifconfig
  • 修改MAC地址
    • 更改介面卡選項 -> 屬性 -> 配置 -> 高階 -> 網路地址
    • 填寫時需要把減號(-)去掉

image-20210310171940142

MAC地址的獲取

  • 當不知道對方主機的MAC地址時,可以通過傳送ARP廣播獲取對方的MAC地址
    • 獲取成功後,會快取IP地址、MAC地址的對映資訊,俗稱:ARP快取
    • 通過ARP廣播獲取的MAC地址,屬於動態(dynamic)快取
      • 儲存時間比較短(預設是2分鐘),過期後自動刪除
  • 相關命令
    • arp -a [主機地址]: 查詢當前裝置或指定IP的ARP快取
    • arp -d [主機地址]: 刪除AR快取
    • arps -s 主機地址 MAC地址: 手動增加一條ARP快取,屬於靜態快取,不同系統儲存時長不同

ARP欺騙

ARP攻擊就是通過偽造IP地址和MAC地址實現ARP欺騙,能夠在網路中產生大量的ARP通訊量使網路阻塞,攻擊者只要持續不斷的發出偽造的ARP響應包就能更改目標主機ARP快取中的IP-MAC條目,造成網路中斷或中間人攻擊

image-20210310172943204

攻擊主機PC2傳送ARP應答包給被攻擊主機PC1和閘道器,分別修改它們的ARP快取表, 將它們的ip地址所對應的MAC地址,全修改為攻擊主機PC2的MAC地址,這樣它們之間資料都被攻擊主機PC2截獲

簡單描述:

我是PC2,PC1是被攻擊者,我通過ARP包告訴閘道器我是PC1,告訴PC1我是閘道器,這樣他們傳送的資料就都會發給我,從而實現資料攔截(可以實現對目標進行限速等操作)

IP地址

image-20210310173526602

  • IP地址(Internet Protocol Address):網際網路上的每一個主機都有一個IP地址

    • 最初是IPv4版本,32bit(4位元組),2019年11月25日,全球的IP地址已經用完

    • 後面推出了IPv6版本,128bit(16位元組),目前使用的還是IPv4,特殊地方才用IP6

IP地址的組成

  • IP地址由2部分組成:網路標識(網路ID)、主機標識(主機ID)
    • 通過子網掩碼(subnet mask)可以得到網路ID、主機ID
  • 主機所在的網段:子網掩碼 & IP地址
  • 計算機再與其它計算機通訊前,會先判斷是否在同一網段
    • 同一網段:不需要路由器進行轉發
    • 不同網段:需要路由器進行轉發

網段計算

image-20210310174638246

上面的IP地址與子網掩碼計算的網段為:192.168.1.0

&操作

只有當兩個都為1的時候才為1,其它為0

IP地址的分類

  • A類地址:子網掩碼預設是255.0.0.0

    image-20210310174957316

  • B類地址:子網掩碼預設是255.255.0.0

    image-20210310175048913

  • C類地址:子網掩碼預設是255.255.255.0

    image-20210310175110430

  • D類地址:以1110開頭,多播地址

  • E類地址:以1111開頭,保留為今後使用

  • 只有A\B\C類地址才能分配給主機
    • 主機ID為全0,表示主機所在的網段
    • 主機ID為全1 ,表示主機所在的網段所有主 要(用於廣播)
    • 使用ping廣播地址可以實現獲取當前網段內的所有線上主機

A類地址

image-20210310175719428

  • 網路ID
    • 0不能用,127作為保留網段。其中 127.0.0.1 是本地環回地址(Loopback),代表本地地址
    • 1~126 為可以分配給主機用
  • 主機ID
    • 第2、3、4部分的取值範圍:0~255
    • A類網路最大能容納主機數:256 * 256* 256 - 2 = 2的24次方 - 2 = 16777214
      • 減2原因:0不能用,網段不能用

B類地址

image-20210310180255567

  • 網路ID
    • 可分配給主機的
      • 第1部分:128~191
      • 第2部分:0~255
  • 主機ID
    • 第3、4部分的取值範圍:0~255
    • B類網路最大能容納主機數:256 * 256 - 2 = 2的16次方 - 2 = 65534

C類地址

image-20210310180512081

  • 網路ID
    • 可分配給主機的
      • 第1部分:192~223
      • 第2、3部分:0~255
  • 主機ID
    • 第4部分的取值範圍:255
    • B類網路最大能容納主機數:256 - 2 = 254

D類地址

image-20210310180755259

  • 沒有子網掩碼,用於多播(組播)地址
  • 第1部分取值範圍:224~239

E類地址

image-20210310180829985

  • 沒有子網掩碼,用於多播(組播)地址

  • 第1部分取值範圍:240~255

子網掩碼的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
  • 計算工具

子網劃分

為什麼要進行子網劃分

  • 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地址資源,就需要進行子網劃分

如何子網劃分

  • 借用主機位做子網位,劃分出多個子網
  • 2種劃分方式
    • 等長子網劃分:將一個子網劃分成多個子網,並且每個子網可用IP地址數一樣
    • 變長子網劃分:劃分成多個可用IP地址不一樣的子網
  • 子網線上劃分器:http://www.ab126.com/web/3552.html
  • 子網劃分步驟:
    • 確定子網的子網掩碼長度
    • 確定子網中第1個、最後1個主機可用IP地址

等長子網劃分

等分成2個子網

image-20210311100004364

上圖是將 192.168.0.0/24 C類網段劃分成兩個子網

  • A子網

    • 可用IP地址:192.168.0.1 ~ 192.168.0.126 (0 和 127 不能用,0是網段,127是廣播地址)
  • B子網

    • 可用IP地址:192.168.0.129 ~ 192.168.0.254(128 和 255 不能用,128是網段,255是廣播地址)
  • 2個網段的子網掩碼都是:255.255.255.128/25,每個網段可用主機數為:126

演算法解析

如上圖,將網路位往主機部借1位時,主機部分可用的位數就只有7位,此時網路部分可分為 :

  • A子網:192.168.0|0
  • B子網:192.168.0|1

主機部分全0和全1是不能做為可用IP地址的,全0是網段,全1就是廣播地址

  • A子網的主機部分可用IP就是 0|0000001 ~ 0|1111110 (1~126)
  • B子網的主機部分可用IP就是 1|0000001 ~ 1|1111110 (129~254)
  • 注:雖然向主機位借位,但計算主機IP個數時還是按之前的8位來算,需要加上被借的那1位
等分成4個子網

image-20210311101559349

  • A子網:192.168.0.1 ~ 192.168.0.62
  • B子網:192.168.0.65 ~ 192.168.0.126
  • C子網:192.168.0.129 ~ 192.168.0.190
  • D子網:192.168.0.193 ~ 192.168.0.254
  • 4個子網的子網掩碼都是:255.255.255.192/26,每個網段可用主機數:62
等分成8個子網

image-20210311101851062

  • A子網:192.168.0.1~192.168.0.30

  • B子網:192.168.0.33~192.168.0.62

  • C子網:192.168.0.65~192.168.0.94

  • D子網:192.168.0.97~192.168.0.126

  • E子網:192.168.0.129~192.168.0.158

  • F子網:192.168.0.161~192.168.0.190

  • G子網:192.168.0.193~192.168.0.222

  • H子網:192.168.0.225~192.168.0.254

  • 8個子網的子網掩碼都是:255.255.255.224/27,每個網段可用主機數:30

規律

如果一個子網是是原來網路2/1,子網掩碼往後移1位就行,如果是4/1,移2位,是8/1,移3位,簡單點就是 移幾位就是2的幾次方

  • 1位 = 2^1 = 2

  • 2位 = 2^2 = 4

  • 3位 = 2^3 = 8

變長子網劃分

  • 等長子網劃分是每個子網都使用 **相同 **的子網掩碼
  • 變長子網劃分是每個子網都使用 **不同 **的子網掩碼

例子

對 192.168.100.0/24 網段進行變長子網劃分,需要主機數分別為 A: 80,B: 50,C: 24,D: 10 不同數量的網段,如果使用等長子網劃分,劃分成4個網段,那樣每個網段的主機數只有 62個,不滿足 80 個主機的要求,此時就可以使用變長子網劃分

步驟:

  • 滿足A:先將 192.168.100.0/24 往後移一位,劃分出 192.168.100.0/25 與 192.168.100.128/25 兩個網段,將 192.168.100.0/25 網段的 126 個地址分配給 A 用
  • 滿足B:再將剩餘的 192.168.100.128/25 網段再往後移一位,劃分出 192.168.100.128/26 與 192.168.100.192/26 兩個網段,將 192.168.100.128/26 網段的 62個地址分配給B用
  • 滿足C:再將 192.168.100.192/26 再往後移一位,劃分出 192.168.100.192/27 與 192.168.100.224/27 兩個網段,將 192.168.100.192/27 網段的 30個地址分配給C用
  • 滿足D:再將 192.168.100.224/27 再往後移一位,劃分出 192.168.100.224/28 與 192.168.100.240/28 兩個網段,將 192.168.100.224/28 網段的 13個地址分配給D用

image-20210311113313094

思考問題

【PC1】 192.168.0.10/24 與 【PC2】192.168.10.10/16 能進行通訊嗎?

思路:先將兩臺PC的網段算出來,看是不是同一網段

  • PC1:192.168.0.0/24
  • PC2:192.168.0.0/16

看上去好像兩個是同一網段,實際是不能進行通訊的,為什麼呢?當一臺裝置與另一臺裝置進行通訊之前是怎麼處理的?首先它並不知道目標裝置的子網掩碼,只知道目標裝置的IP地址,所以它要判斷該裝置是否和自己是同一網段,它是直接拿自己的子網掩碼去和目標IP進行&運算得到網段,網段一樣才會通訊,計算如下:

【PC1=>PC2】 192.168.10.10/24 = 192.168.10.0 與自己的網段 192.168.0.0 不一樣,所以無法通訊

【PC2=>PC1】 192.168.0.10/16 = 192.168.0.0 與自己的網段 192.168.0.0 一樣,可以通訊

注意:PC1 不能發給 PC2,但 PC2 能發給 PC1,只有兩同裝置都能夠互相通訊,才能真正通訊

超網

  • 它和子網是反過來,將多個連續的網段合併成一個更大的網段
  • 比如原來有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位)
合併2個子網

image-20210311170558783

合併4個子網

image-20210311171017984

思考:下面這2個網段向左移一位能合併嗎?

image-20210311171137710

答案是不可以的,為什麼呢?因為如果只向左移一位的話,它們的網段還是不相同的,當然就不是同一網段了,所以至少移2位才可以

判斷一個網段是子網還是超網

  • 首頁判斷IP地址的型別,是A類、B類、C類?
  • A類子網掩碼是8位,就是 255.0.0.0,如果 當前IP地址是A類,再看子網掩碼是往左移位還是往右移位,往左移位就是超網,往右移位就是子網
  • B類是16位
  • C類是24位

相關文章