1. 程式人生 > >第4章 IP協議

第4章 IP協議

第4章 IP網際協議

  • 主要負責將資料包傳送給最終的目標計算機,IP能夠讓世界上任何兩臺計算機之間進行通訊。
  • 鑑於目前的IP(IPv4)已無法應對網際網路的需求,於是出現了更高版本的IP協議 IPv6
  • 網路層可以 跨越不同的資料鏈路 ,即使是在不同的資料鏈路上也能夠實現兩段節點之間的資料包傳輸
  • IP的主要作用就是在複雜的網路環境中 將資料包發給最終的目標地址

網路層與資料鏈路層

  • 資料鏈路層提供 直連兩個裝置 之間的通訊功能。
  • 網路層的IP負責在 沒有直連的兩個網路 之間進行通訊傳輸。
  • 總結:假設從源地址0到目標地址n+1要經過n臺裝置,資料鏈路層負責x-y(y-x=1)之間的通訊,ip負責0到n+1的通訊,ip協議在整個過程中不變,資料鏈路協議在會更換n次。

地址

  • 資料鏈路層的MAC地址用來標識同一個鏈路中不同計算機的一種識別碼
  • 網路層Ip地址用於在 連線到網路中的所有主機中識別出進行通訊的目標地址 ,因此在TCP/IP通訊中所有主機或路由器必須設定自己的IP地址

分片

  • 不同的資料鏈路,它們各自最大的傳輸單位( MTU: Maximum Transmission Unit)可能不同(乙太網:1500位元組,FDDI:4352位元組,ATM:9180位元組)
  • 如果IP的上一層可能會要求傳送比這些MTU更多位元組的資料,所以IP進行 分片處理(IP Fragmentation)

無連線與有連線

  • 有連線 : 在面向有連線的情況下,需要事先建立連線。如果對端主機關機或不存在,也就不能建立連線。
  • 無連線 :即使對端主機關機或不存在,資料包還是會被髮送出去。

IP屬於面向無連線型

  • 對於一臺主機來說,它會何時從哪裡收到資料也是不得而知的。通常應該進行網路監控,讓主機只接收發給自己的資料包。若沒有做好準備很有可能會錯過一些該收的包。因此,在面向無連線的方式下可能會有很多冗餘的通訊

為什麼IP要採用面向無連線?

  1. 簡化:管理連線時一個相當繁瑣的事情。
  2. 提速:每次通訊之前都要事先建立連線,會降低處理速度。需要有連線時,可以委託上一層(傳輸層TCP)提供此項服務。

為了提高可靠性,上一層的TCP採用面向有連線型

  1. IP只盡最大努力把資料包傳送到最終目標地址,不做最終收到與否的驗證,還會發生丟包、錯位以及資料量翻倍等問題。
  2. 網路分層協議在上一層傳輸層TCP協議中提供可靠的性服務,保證對端主機確實接收到資料。

網路分層的意義

  • 簡化具體實施和程式設計
  • 如果要一種協議規定所有的功能和作用,那麼該協議的具體實施和程式設計就會變得非常複雜,無法輕易事項。
  • 明確TCP與IP各自協議的最終目的,也有利於後續對這些協議進行擴充套件和效能上的優化。

IP地址

  • 網路標識:區分不同的網段,作為路由的依據
  • 主機標識:區分同一網段的不同主機
  • 子網掩碼:區分網路標識和主機標識

IP地址的分類

通過開頭和標識位位數就可以推斷出網路標識位

  • A類地址:A類IP地址以 0 開頭的地址,第 1-8 為網路標識位(0.0.0.0 ~ 127.0.0.0)
  • B類地址:B類IP地址以10 開頭的地址,第 1-16位 為網路標識位(128.0.0.1 ~ 191.255.0.0)
  • C類地址:C類IP地址以110開頭的地址,第 1-24位 為網路標識位(192.168.0.0 ~ 239.255.255.0)
  • D類地址:D類IP地址以1110開頭的地址,第 1-32位 為網路標識位(224.0.0.0 ~ 239.255.255.255)

廣播

  • 0:對應的網路地址或IP地址不可獲知
  • 1:作為廣播地址
  • 本地廣播ip: 本地網段網路標識+全為1的主機標識
  • 直接廣播ip: 其他網段網路標識+全為1的主機標識

多播

相對於廣播,多播既可以穿透路由,又可以實現只給那些必要的組傳送資料包

  • 廣播:A,B,C類地址,主機標識全為1
  • 多播:D類地址(1110 + 28位組編號)

子網掩碼

  • 子網掩碼**(網路標識位全為1,主機位全為0)**
  • 子網掩碼使一個IP地址可以不再受限於自己的類別(ABCD),而是可以用子網掩碼自由的定位自己的網路標識長度。

二進位制

  • 00000001: 1
  • 00000010: 2
  • 00000100: 4
  • 00001000: 8
  • 00010000: 16
  • 00100000: 32
  • 01000000: 64
  • 10000000: 128

子網掩碼

  • 直接使用A類、B類、C類地址會顯得浪費資源,為此人們使用子網掩碼的組合方式減少這種浪費,實際使用的過程中都是使用子網掩碼而非A、B、C類地址。
  • 子網掩碼網路標識位全為1主機標識位全為0。一個IP地址不在受限於自己所屬的類別,而是由子網掩碼自由的定位自己的網路標識長度。

子網掩碼兩種表示方式

  • IP地址   172. 20. 100. 52(..*.00110100)
  • 網路地址  172. 20. 100. 0(IP地址&子網掩碼)
  • 廣播地址  172. 20. 100. 63(..*.0011111111網路地址主機號為1)
  • 子網掩碼  255. 255. 255. 192( ..*.11000000)
  • IP地址   172. 20. 100. 52 /26

延緩IP地址耗盡問題

CIDR(Classless Inter-Domain Routing)

  • 定義:採用任意長度分割IP地址的網路標識和主機標識(無型別域間選路)
  • 對應利用子網掩碼,區分網路標識位和主機位,將通過(IP地址&子網掩碼)結果相同的主機,劃分為統一個網段

VLSM(Variable Length Subnet Mask)

  • 同一組織下的不同部門所擁有的主機數不同,為此人們提出組織內要使用可變長度的、高效的IP地址分配方式。

全域性地址與私有地址

  • 它不要求為每一臺主機或路由器分配一個固定的IP地址,而是在必要的時候只為相應數量的裝置分配唯一的IP地址
  • 尤其對於那些沒有連線網際網路的獨立網路中的主機,只要保證在這個網路內地址唯一,可以不用考慮網路即可配置相應的IP地址。
  • 私有網路的IP地址
    • 10.0.0.0 ~ 10.255.255.255 (10/8) A類
    • 172.16.0.0 ~ 172.31.255.255 (172.16/12) B類
    • 192.168.0.0 ~ 192.168.255.255 (192.168/16) C類(現在公司用的也是192.168)
  • 除私有IP之外的為全域性IP(公網IP)
  • NAT : 互換私有IP與全域性IP的技術,配有私有地址的主機與配有全域性地址的網際網路主機實現通訊(現在有很多學校、家庭、公司內部正採用在每個終端設定私有IP,而在路由器(寬頻路由器)火災必要的伺服器上設定全域性IP地址,如果配有私有IP的地址主機連網時,則通過NAT進行通訊)。

網際網路現狀

  • IPv6可以解決使用私有地址的各種限制,但還沒有得到普及,IPv4地址又即將耗盡
  • 努力使用IPv4結合NAT技術解決現有問題

路由控制

路由控制表(Routing Table)的形成方式

  1. 管理員手動設定(靜態路由控制)
  2. 路由器與其他路由器相互交換資訊時自動重新整理(動態路由控制)
  3. 用途 : 路由控制表中記錄著網路地址與下一步應該傳送至路由器的地址
  4. 預設路由標記 : 0.0.0.0/0
  5. 主機路由 : “IP地址/32”,整個IP地址的所有位都將參與路由,基於主機上網絡卡配置的IP地址本身。
  6. 環回地址 : 同一臺計算機上的程式之間進行網路通訊時所使用的一個預設地址127.0.0.1,與該地址具有相同意義的是一個叫做localhost的主機名。

路由控制表的聚合

  • 對內即使有多個子網掩碼,對外呈現的也是同一個網路地址。
  • 路由器A: 192.168.2.0/24
  • 路由器B: 192.168.3.0/24
  • 路由器C: 聚合A,B對外呈現為192.168.2.0/23

路徑MTU發現

  • 找到資料鏈路中最小的MTU,傳送主機按照最小MTU的大小將資料報分片後傳送,避免在中途的路由器上進行分片處理,提升效能以及網路的利用率。
  • 主機通過ICMP的不可達資訊獲得MTU的值,主機進行分片處理重新發送,重複操作直到主機不再受到ICMP不可達資訊。

在這裡插入圖片描述

IPv6

  • 8個16位位元組

IPv4首部

  • 版本(Version):4位元位,標識IP首部的版本號。IPv4的版本號為4
  • 首部長度(IHL:Internet Header Length):4位元位,表明IP首部的大小,單位為4位元組。對於沒有可選項的IP包,首部長度則設定為5(20位元組)
  • 總長度(Total Length):16位元位,表示IP首部與資料部分合起來的總位元組數,IP包的最大長度為65535位元組
  • 協議(Protocol):8位元位,表示IP首部的下一個首部隸屬於哪個協議(IP:4、TCP:6、ICMP:1…)
  • 源地址(Source Address):32位位元位
  • 目標地址(Destination Address):32位位元位

術語

  • BGP(Border Gateway Protocol):邊界閘道器協議
  • ICANN (Internet Corporation for Assigned Names and Numbers):網際網路名稱與數字地址分配機構