網絡的關鍵知識及linux上的ip配置


Table of Contents

  1. 網絡模型
    1. OSI 七層模型
      1. 七層的基本原則
      2. 不同層的功能
    2. TCP/IP 五層模型
      1. 不同層的功能
  2. ip 地址
    1. ip 地址的分類
    2. 子網掩碼
  3. 傳輸層協議
    1. TCP
    2. UDP
  4. linux 上 IP 配置方法
    1. 命令即時生效
    2. 命令保存配置:僅 centos7 以后
    3. 更改配置文件

網絡模型

OSI 七層模型

+----------+                                                             +----------+
|  應用層   |<----------------------------------------------------------->|  應用層   |
+----+-----+                                                             +----+-----+
     |                                                                        |
+----+-----+                                                             +----+-----+
|  表示層   |<----------------------------------------------------------->|  表示層   |
+----+-----+                                                             +----+-----+
     |                                                                        |
+----+-----+                                                             +----+-----+
|  會話層   |<----------------------------------------------------------->|  會話層   |
+----+-----+                                                             +----+-----+
     |                                                                        |
+----+-----+                                                             +----+-----+
|  傳輸層   |<----------------------------------------------------------->|  傳輸層   |
+----+-----+                                                             +----+-----+
     |            +------------------------------------------+                |
+----+-----+      |   +----------+           +----------+    |           +----+-----+
|  網絡層   |<-----+-->|  網絡層   |<--------->|  網絡層   |<---+---------->|  網絡層   |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
     |            |        |                      |          |                |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
| 數據鏈路  |<-----+-->| 數據鏈路   |<--------->| 數據鏈路  |<---+---------->| 數據鏈路  |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
     |            |        |        內部子網       |          |                |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
|  物理層   |<-----+-->|  物理層   |<--------->|  物理層   |<---+---------->|  物理層   |
+----------+      |   +----------+           +----------+    |           +----------+
                  +------------------------------------------+

七層的基本原則

  1. 應該在需要一個不同抽象體的地方創建一層
  2. 每一層都應該執行一個明確定義的功能
  3. 每一層功能的選擇應該向定義國際標准化協議的目標看齊
  4. 層與層邊界的選擇應該使跨越接口的信息流最小
  5. 層數應該足夠多,保證不同的功能不會被混雜在同一層中,但同時層數不能太多,以免體系變得過於龐大

不同層的功能

  1. 物理層 :關注於信道上傳輸的原始比特,問題集中在如何通信,物理接口,以及傳輸介質等.實現傳輸方法.
  2. 數據鏈路層 :關注差錯檢測,流量控制,介質訪問控制等.實現數據的傳遞.
  3. 網絡層 :主要控制子網運行,將數據包從源端路由到接收方,處理擁塞,關注服務質量.實現主機間的通信.
  4. 傳輸層 :必要時將上層數據分成小單元,高效實現上下隔離以防止下層變化導致上層協議不可用,實現主機間進程與進程的通信.
  5. 會話層 :允許用戶建立會話,並提供各種服務.
  6. 表示層 :將下層的數據轉化為信息.
  7. 應用層 :最高層應用之間交換數據的標准,

TCP/IP 五層模型

+----------+                                                             +----------+
|  應用層   |<----------------------------------------------------------->|  應用層  |
+----+-----+                                                             +----+-----+
     |                                                                        |
+----+-----+                                                             +----+-----+
|  傳輸層   |<----------------------------------------------------------->|  傳輸層   |
+----+-----+                                                             +----+-----+
     |            +------------------------------------------+                |
+----+-----+      |   +----------+           +----------+    |           +----+-----+
|internet層|<-----+-->|internet層 |<--------->|internet層|<---+---------->|internet層 |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
     |            |        |        內部子網      |          |                |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
|  鏈路層   |<-----+-->|  鏈路層   |<--------->|  鏈路層   |<---+---------->|  鏈路層   |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
     |            |        |                      |          |                |
+----+-----+      |   +----+-----+           +----+-----+    |           +----+-----+
|  物理層   |<-----+-->|  物理層   |<--------->|  物理層   |<---+---------->|  物理層   |
+----------+      |   +----------+           +----------+    |           +----------+
                  +------------------------------------------+

不同層的功能

  1. 物理層 :和 OSI 中相同
  2. 鏈路層 :對應 OSI 數據鏈路層,模型選擇數據包交換網絡,是主機與傳輸線路的接口.傳輸單位為幀.
  3. internet 層 :對應 OSI 網絡層,允許主機將數據包注入任何網絡,並讓數據包獨立到達接收方,同時還要考慮擁塞控制.
    傳輸單位為包.
  4. 傳輸層 :對應 OSI 傳輸層,有兩個協議,TCP 與 UDP,前者是一個可靠的面向連接的協議,后者是一個不可靠無連接的協議.
  5. 應用層 :對應 OSI 應用層,會話層與表示層對大多數應用來說並沒有太大用處.

ip 地址

ip 協議采用"網絡號.主機號"的形式編址.ip 地址總長 32 位,當網絡號占的位數多時,可存在的子網也會變多,相應的每個子網所能擁
有的主機數就少.

ip 地址的分類

通常根據網絡號,我們將網絡地址分為 5 類.
將地址轉為 2 進制:

以 0 開頭的地址 從 1.0.0.0 到 127.255.255.255 A 類地址 前 8 位代表網絡號,可以有 28 個網絡 后 24 位代表主機號,最大支持 224-2 台主機
以 10 開頭的地址 從 128.0.0.0 到 191.255.255.255 B 類地址 前 16 位代表網絡號,可以有 216 個網絡 后 16 位代表主機號,最大支持 216-2 台主機
以 110 開頭的地址 從 191.0.0.0 到 223.255.255.255 C 類地址 前 24 位代表網絡號,可以有 224 個網絡 后 8 位代表主機號,最大支持 28-2 台主機
以 1110 開頭的地址 從 224.0.0.0 到 239.255.255.255 D 類地址 廣播地址  
以 11110 開頭的地址 從 240.0.0.0 到 255.255.255.255 E 類地址 保留的地址  

子網掩碼

  • 根據 ip 地址的分類,我們可看出,A 類地址的一個網段的主機數最多為 16777214 個,而 C 類地址的主機只能有 254 個.
    而現實情況是 A 類地址,很少有要用到一個網段這么多主機的情況,而 C 類地址一個網段能容納的主機太少了.
  • 所以出現了 VLSM 的編址方案:
    • 將大的網段地址拆分成小的網段,這種小的網段叫子網
    • 將小的網段地址合並為大的網段,這種城合並的網段叫超網

傳輸層協議

主要分為 TCP 和 UDP:

  • TCP 可靠,但存在頭部開銷,有 3 次握手
  • UDP 不可靠,TCP 實時性不如 UDP

TCP

  • 全稱:Transmission Control Protocol,傳輸控制協議

  • TCP 提供面向連接的,可靠的傳輸服務

  • TCP 頭部中較重要的字段:

    • 源端口,目的端口 :用於明確兩邊的服務訪問點
    • 順序號 :TCP 在發送數據時,通常會將數據分段,順序號可以讓接收方正確組合數據
    • 偏置值 :明確 TCP 頭的大小
    • 標志字段 :用於表示控制信息
    • 窗口 :用於流控
    • 校驗和 :判斷傳輸是否有誤
  • TCP 的三次握手和四次揮手

      +----------+                                          +-----------+
      |  Client  |                                          |   Server  |
      +----+-----+                                          +----+------+
           |             SYN,seq=x                               | listen
      syn- |---------------------------------------------------->|         
     sent  |                                                     |         
           |             SYN,ACK,ack=x+1,seq=y                   | syn-  
           |<----------------------------------------------------| rcvd  
     estab-|                                                     |       
     lished|             ACK,DATA,ack=y+1,seq=x+1                |       
           |---------------------------------------------------->|
           |                                                     | estab-
           |                     ...                             | lished
           |                     ...                             |
           |                     ...                             |
           |                                                     |
     fin-  |             FIN,ack=n,seq=z                         |
    wait-1 |---------------------------------------------------->|
           |                                                     |
           |                                                     | close-
           |             DATA,ACK.......                         | wait
      fin- |<----------------------------------------------------|
     wait-2|                .......                              |
           |                                                     |
           |               FIN                                   |
           |<----------------------------------------------------|
           |                                                     |
           |                                                     | last-
     time- |                ACK                                  | ack
     wait  |---------------------------------------------------->|      
           |                                                     |
           |                                                     | close
           |                                                     |
    

UDP

  • 全稱:User Datagram Protocol,用戶數據報協議
  • UDP,面向無連接
  • UDP 頭部中較重要的字段:
    • 源端口,目的端口 :用於明確兩邊的服務訪問點
    • 段長 :表示整個 UDP 的大小
    • 校驗和 :判斷傳輸是否有誤

linux 上 IP 配置方法

命令即時生效

  1. ifconfig

    ifconfig 網絡設備名 IP/掩碼
    ifconfig 網絡設備名 IP netmask 點分掩碼
    

    例如:

    # centos7
    ifconfig enp0s3 192.168.0.50/24
    ifconfig enp0s3 192.168.0.50 netmask 255.255.255.0
    
    # centos6
    ifconfig eth0 192.168.0.51/24
    ifconfig eth0 192.168.0.51 netmask 255.255.255.0
    
  2. ip
    這個命令可以為網卡分配多個 ip

    # 增加IP
    ip address add IP/掩碼 dev 設備名
    
    # 刪除IP
    ip address del IP/掩碼 dev 設備名
    

    例子:

    # 增加IP
    ip address add 192.168.0.58/24 dev enp0s3 # centos7
    ip address add 192.168.0.59/24 dev eht1 # centos6
    
    # 刪除IP
    ip address del 192.168.0.20 dev enp0s3
    ip address del 192.168.0.22 dev eth1
    

命令保存配置:僅 centos7 以后

可用 nmcli 命令,這個命令可以直接將更改內容保存為配置.
nmcli connection modify DEV ipv4.addresses IP/MASK

nmcli connection modify enp0s3 ipv4.addresses 192.168.10.5/24 ipv4.method manual

更改配置文件

/etc/sysconfig/network-script/ifcfg-設備名
將文件中的兩個字段更改:

BOOTPROTO=static
IPADDR=192.168.10.7
PREFIX=255.255.255.0

其中 BOOTPROTO 代表 IP 的獲取方法,這里用手動,IPADDR 后面跟 IP 地址,PREFIX后面接掩碼.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM