一、DHCP協議
一個主機如何獲得IP地址
- 硬編碼:靜態配置
- 動態主機配置協議(DHCP,Dynamic Host ConfigurationProtocol)
1. 動態主機配置協議(DHCP,Dynamic Host ConfigurationProtocol)
- 從服務器動態獲取:
- IP地址
- 子網掩碼
- 默認網關地址
- DNS服務器名稱與IP地址
- 即插即用
- 允許地址重用
- 支持在用地址續租
- 支持移動用戶加入網絡
2. DHCP實現過程
- 主機廣播“DHCP discover" (發現報文)
- DHCP服務器利用“ DHCP offer”(提供報文)進行響應
- 主機請求IP地址:“ DHCP request”(請求報文)
- DHCP服務器分配IP地址:“ DHCP ack”(確認報文)
3. DHCP協議在應用層實現
請求報文封裝到UDP數據報中
- IP廣播
- 鏈路層廣播(e.g.以太網廣播)
- DHCP服務器內建於路由器中。
DHCP服務器構造ACK報文
- 包括分配給客戶的IP地址、子網掩碼、默認網關、DNS服務器地址
二、網絡地址轉換(NAT)
1. 動機
- 只需/能從ISP申請一個IP地址
- IPv4地址耗盡
- 本地網絡設備IP地址的變更,無需通告外界網絡
- 變更ISP時,無需修改內部網絡設備IP地址
- 內部網絡設備對外界網絡不可見,即不可直接尋址(安全)
2. 實現
替換:利用(NATIP地址,新端口號)替換每個外出IP數據報的(源IP地址,源端口號);
記錄:將每對(NAT IP地址,新端口號)與(源IP地址,源端口號)的替換信息存儲到NAT轉換表中;
替換:根據NAT轉換表,利用(源IP地址, 源端口號)替換每個進入內網IP數據報的(目的IP地址,目的端口號),即(NAT IP地址,新端口號)。
3. NAT主要爭議
- 路由器應該只處理第三層功能;
- 違背端到端的通信原則(應用開發者必須考慮到NAT的存在,如P2P應用)
- 地址短缺問題應該由IPv6來解決
三、互聯網控制報文協議(ICMP)
1. 互聯網控制報文協議(ICMP)支持主機或路由器:
- 差錯(或異常)報告
- 網絡探詢
2. 兩類ICMP報文:
-
差錯報告報文(5種)
- 目的不可達
- 源抑制(Source Quench)
- 超時/超期
- 參數問題
- 重定向
-
網絡探詢報文(2組)
- 回聲(Echo)請求 與 應答報文(Reply)
- 時間戳請求與應答報文
3. 例外情況
幾種不發送ICMP差錯報告報文的特殊情況:
- 對ICMP差錯報告報文不再發送ICMP差錯報告報文
- 除第1個IP數據報分片外,對所有後續分片均不發送ICMP差錯報告報文
- 對所有多播IP數據報均不發送ICMP差錯報告報文
- 對具有特殊地址( 如127.0.0.0或0.0.0.0) 的IP數據報不發送ICMP差錯報告報文
幾種ICMP報文已不再使用
- 信息請求與應答報文
- 子網掩碼請求和應答報文
- 路由器詢問和通告報文
4. 報文格式:頭部+數據
- 報文封裝到IP數據報中傳輸。
四、IPv6
1. 動機
- 最初動機: 32位IPv4地址空間已分配殆盡
- 其他動機:改進首部格式
- 快速處理/轉發數據報
- 支持QoS
2. IPv6數據報格式
- 固定長度的40字節基本首部,載荷(擴展首部+數據)
- 優先級(priority):標識數據報的優先級
- 流標籤(flow Label):標識同一“流"中的數據報
- 下一個首部(next header):標識下一個選項首部或上層協議首部(如TCP首部)
- 不允許分片
3. 其他改變 Vs IPv4
- 校驗和(checksum):徹底移除,以減少每跳處理時間;
- 選項(options):允許,但是從基本首部移出,定義多個選項首部,通過“下一個首部”字段指示;
- **ICMPv6:**新版ICMP
- 附加報文類型,e.g. “Packet Too Big”
- 多播組管理功能
4. IPv6地址表示形式
-
地址空間超級大
-
冒號分隔的16進製表示
- 一般形式: 1080:0:FF:0:8:800:200C:417A
- 壓縮形式: FF01:0:0:0:0:0:0:43 → FF01::43
- IPv4-嵌入形式:0:0:0:0:0:FFFF:13.1.68.3
-
地址前綴: 2002:43c:476b::/48
(注: IPv6不再使用掩碼!)
-
URLs: http://[3FFE::1:800:200C:417A]:8000
5. IPv6基本地址類型
- 單播:一對一通信
- 多播:一對多通信
- 任意播:一對一組之一通信(最近一個)
6. IPv4 向 IPv6 過渡
- 不可能在某個時刻所有路由器同時被更新爲IPv6
- 不會有“標誌性的日期”
- IPv4和IPv6路由器共存的網絡如何運行?
- 隧道(tunneling): IPv6數據報作爲IPv4數據報的載荷進行封裝,穿越IPv4網絡。