計算機網絡-網絡層2

IP 協議-CIDR 與路由聚合

CIDR

無類域間路由(CIDR: Classless InterDomain Routing)安全

  • 消除傳統的 A 類、B 類和 C 類地址界限
    • NetID+SubID→Network Prefix (Prefix)能夠任意長度
  • 融合子網地址與子網掩碼,方便子網劃分
    • 無類地址格式:a.b.c.d/x,其中x爲前綴長度

CIDR 與路由聚合

無類域間路由(CIDR: Classless InterDomain Routing)服務器

  • 提升IPv4 地址空間分配效率
  • 提升路由效率
    • 將多個子網聚合爲一個較大的子網
    • 構造超網(supernetting)
    • 路由聚合(route aggregation)




層級編址使得路由信息通告更高效:
網絡

DHCP 協議

如何得到IP 地址?

動態主機配置協議(DHCP)

  • 主機廣播 「DHCP discover」(發現報文)
  • DHCP服務器利用 「DHCP offer」 (提供報文) 進行響應
  • 主機請求IP地址: 「DHCP request」 (請求報文)
  • DHCP服務器分配IP地址: 「DHCP ack」 (確認報文)


  • DHCP協議在應用層實現less

    • 請求報文封裝到UDP數據報中
    • IP廣播
    • 鏈路層廣播(e.g. 以太網廣播)
  • DHCP服務器構造ACK報文學習

    • 包括分配給客戶的IP地址、子網掩碼、默認網關、DNS服務器地址

網絡地址 轉換 換(NAT)


動機:3d

  • 只需/能從ISP申請一個IP地址
    • IPv4地址耗盡
  • 本地網絡設備IP地址的變動,無需通告外界網絡
  • 變動ISP時,無需修改內部網絡設備IP地址
  • 內部網絡設備對外界網絡不可見,即不可直接尋址(安全)

實現:blog

  • 替換
    • 利用(NAT IP 地址, 新端口號)替換每一個外出IP數據報的( 源IP 地址, 源端口號)
  • 記錄
    • 將每對(NAT IP 地址, 新端口號) 與( 源IP 地址, 源端口號)的替換信息存儲到NAT轉換表中
  • 替換
    • 根據NAT轉換表,利用( 源IP 地址, 源 源 端口號)替換每一個進入內網IP數據報的( 目的IP 地址, 目的端口號),即(NAT IP地址, 新端口號)
  • 16-bit端口號字段:
    • 能夠同時支持60,000多並行鏈接!
  • NAT主要爭議:
    • 路由器應該只處理第3層功能
    • 違背端到端通訊原則
      • 應用開發者必須考慮到NAT的存在,e.g., P2P應用
    • 地址短缺問題應該由IPv6來解決

NAT 穿透問題

  • 客戶指望鏈接內網地址爲10.0.0.1的服務器ip

    • 客戶不能直接利用地址10.0.0.1直接訪問服務器
    • 對外惟一可見的地址是NAT地址: 138.76.29.7
  • 解決方案1: 靜態配置NAT,將特定端口的鏈接請求轉發給服務器ssl

    • e.g., (138.76.29.7, 2500) 老是轉發給(10.0.0.1, 25000)
  • 解決方案2: 利用UPnP(Universal Plug and Play)互聯網網關設備協議 (IGD-Internet Gateway Device )自動配置:ci

    • 學習到NAT公共IP地址(138.76.29.7)
    • 在NAT轉換表中,增刪端口映射
  • 解決方案3: 中繼(如Skype)

    • NAT內部的客戶與中繼服務器創建鏈接
    • 外部客戶也與中繼服務器創建鏈接
    • 中繼服務器橋接兩個鏈接的分組

互聯網控制報文協議(ICMP)

+互聯網控制報文協議 ICMP (Internet Control MessageProtocol)支持主機或路由器:

  • 差錯(或異常)報告
  • 網絡探詢
  • 兩類ICMP 報文:
    • 差錯報告報文(5種)
      • 目的不可達
      • 源抑制(Source Quench)
      • 超時/超期
      • 參數問題
      • 重定向 (Redirect)
    • 網絡探詢報文(2組)
      • 回聲(Echo)請求與應答報文(Reply)
      • 時間戳請求與應答報文

ICMP報文

例外狀況

  • 幾種不發送 ICMP差錯報告報文的特殊狀況:
    • 對ICMP差錯報告報文再也不發送 ICMP差錯報告報文
    • 除第1個IP數據報分片外,對全部後續分片均不發送ICMP差錯報告報文
    • 對全部多播IP數據報均不發送 ICMP差錯報告報文
    • 對具備特殊地址(如127.0.0.0 或 0.0.0.0)的IP數據報不發送ICMP 差錯報告報文
    • 幾種 ICMP 報文已再也不使用
    • 信息請求與應答報文
    • 子網掩碼請求和應答報文
    • 路由器詢問和通告報文
  • 幾種 ICMP 報文已再也不使用
    • 信息請求與應答報文
    • 子網掩碼請求和應答報文
    • 路由器詢問和通告報文

ICMP 報文式

ICMP 差錯 報告

ICMP 的應用: 舉例:Traceroute

IPv6 簡介

  • 最初動機: 32位IPv4地址空間已分配殆盡

  • 其餘動機: 改進首部格式

    • 快速處理/轉發數據報
    • 支持QoS
      I+ Pv6數據報格式:
    • 固定長度的40字節基本首部
    • 不容許分片
  • 優先級(priority): 標識數據報的優先級

  • 流標籤(flow Label): 標識同一「流」中的數據報

  • 下一個首部(next header): 標識下一個選項首部或上層協議首部(如TCP首部)

其餘變 改變 vs IPv4

  • 校驗和(checksum): 完全移除,以減小每跳處理時間
  • 選項(options): 容許,可是從基本首部移出,定義多個選項首部,經過「下一個首部」字段指示
  • ICMPv6: 新版ICMP
    • 附加報文類型,e.g. 「Packet Too Big」
    • 多播組管理功能

IPv6 地址表示形式

IPv6 基本地址類型

IPv4 向IPv6過渡

  • 不可能在某個時刻全部路由器同時被更新爲IPv6
    • 不會有 「標誌性的日期」
    • IPv4和IPv6路由器共存的網絡如何運行?
  • 隧道(tunneling): IPv6數據報做爲IPv4數據報的載荷進行封裝,穿越IPv4網絡

隧道(tunneling

相關文章
相關標籤/搜索