计算机网络核心知识(中)
前言
轉(zhuǎn)載請聲明轉(zhuǎn)載并標明本博客鏈接。
(1) 毒性逆轉(zhuǎn)
(2) 乒乓環(huán)路
(3) TOS
(4) 網(wǎng)絡(luò)前綴聚合
(5) 滑動窗口協(xié)議
上面的是還未搞明白的知識點。
文章目錄
- 前言
- 5 網(wǎng)絡(luò)層(上)
- 5.1 網(wǎng)絡(luò)層服務(wù)
- 網(wǎng)絡(luò)層核心功能-轉(zhuǎn)發(fā)與路由
- 網(wǎng)絡(luò)層核心功能-連接建立
- 網(wǎng)絡(luò)層服務(wù)模型
- 5.2 虛電路網(wǎng)絡(luò)與數(shù)據(jù)報網(wǎng)絡(luò)
- 5.2.1 虛電路網(wǎng)絡(luò)
- 連接服務(wù)與無連接服務(wù)
- 虛電路(Virtual circuits)
- VC的具體實現(xiàn)
- VC轉(zhuǎn)發(fā)表
- 虛電路信令協(xié)議(signaling protocols)
- 5.2.2 數(shù)據(jù)報網(wǎng)絡(luò)
- 數(shù)據(jù)報轉(zhuǎn)發(fā)表
- 最長前綴匹配優(yōu)先
- 5.2.3 數(shù)據(jù)報網(wǎng)絡(luò)與VC網(wǎng)絡(luò)的對比
- 5.3 IPv4協(xié)議
- 5.3.1 IP協(xié)議(1)-IP數(shù)據(jù)報
- IP數(shù)據(jù)報(分組)格式
- 5.3.2 IP協(xié)議(2)-IP分片
- 最大傳輸單元(MTU)
- IP分片與重組
- IP分組格式
- IP分片過程
- 5.3.3 IP協(xié)議(3)-IP編址
- IP編址(addressing)
- IP子網(wǎng)(Subnets)
- 5.3.4 IP協(xié)議(4)-有類IP地址
- 有類IP地址
- 5.3.5 IP協(xié)議(4)-IP子網(wǎng)劃分與子網(wǎng)掩碼
- 如何進行子網(wǎng)劃分(Subnetting)?
- 子網(wǎng)劃分
- 子網(wǎng)掩碼的應(yīng)用
- 6 網(wǎng)絡(luò)層(中)
- 6.1 CIDR與路由聚合
- CIDR與路由聚合的作用
- 路由聚合
- 6.2 DHCP協(xié)議
- 6.3 網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)
- 6.3.1 NAT的實現(xiàn)
- 6.3.2 NAT穿透問題
- 6.4 互聯(lián)網(wǎng)控制報文協(xié)議(ICMP)
- 6.4.1 ICMP報文的格式
- 6.4.2 ICMP差錯報告報文數(shù)據(jù)封裝
- 6.4.3 ICMP的應(yīng)用舉例:Traceroute
- 6.5 IPv6簡介
- 6.5.1 IPv6的研發(fā)動機
- 6.5.2 IPv6數(shù)據(jù)報格式
- 6.5.3 其他改變 vs IPv4
- 6.5.4 IPv6地址表示形式
- 6.5.5 IPv6基本地址類型
- 6.5.6 IPv4向IPv6過渡
- 6.6 典例講解
- 7 網(wǎng)絡(luò)層(下)
- 7.1 路由算法概述
- 7.2 鏈路狀態(tài)路由算法
- 7.2.1 Dijkstra 算法
- 7.3 距離向量路由算法(1)
- 7.4 距離向量路由算法(2)
- 7.4.1 距離向量DV: 無窮計數(shù)問題
- 7.5 層次路由
- 7.5.1 研發(fā)層次路由的動機
- 7.5.2 層次路由詳述
- 互連的AS
- 自治系統(tǒng)間(Inter-AS)路由任務(wù)
- 舉例說明層次路由
- 7.6 RIP協(xié)議
- 7.6.1 AS內(nèi)部路由
- 7.6.2 RIP
- 7.7 OSPF協(xié)議簡介
- 7.7.1 OSPF優(yōu)點(RIP不具備)
- 7.7.2 分層的OSPF
- 7.8 BGP協(xié)議簡介
- 7.8.1 BGP基礎(chǔ)
- 7.8.2 BGP基礎(chǔ): 分發(fā)路徑信息
- 7.8.3 路徑屬性與BGP路由(route)
- 7.8.4 BGP路由選擇
- 7.8.5 BGP路由選擇策略舉例
- 7.8.6 為什么采用不同的AS內(nèi)與AS間路由協(xié)議?
- 8 數(shù)據(jù)鏈路層
- 8.1 數(shù)據(jù)鏈路層服務(wù)
- 8.1.1 概述
- 8.1.2 鏈路層服務(wù)
- 8.1.3 鏈路層的具體實現(xiàn)?
- 8.1.4 網(wǎng)卡間通信
- 8.2 差錯編碼
- 8.2.1 差錯編碼的檢錯能力
- 8.2.2 奇偶校驗碼
- 8.2.3 Internet校驗和(Checksum)
- 8.2.4 循環(huán)冗余校驗碼(CRC)
- 8.3 多路訪問控制(MAC)協(xié)議
- 8.3.1 理想MAC協(xié)議
- 8.3.2 MAC協(xié)議分類
- 8.3.3 信道劃分MAC協(xié)議
- TDMA
- FDMA
- 8.3.5 隨機訪問MAC協(xié)議
- 時隙ALOHA協(xié)議 (S-ALOHA)
- ALOHA協(xié)議
- CSMA協(xié)議
- CSMA/CD協(xié)議
- 8.3.6 輪轉(zhuǎn)訪問MAC協(xié)議
- 輪轉(zhuǎn)訪問MAC協(xié)議簡介
- 8.3.7 MAC協(xié)議總結(jié)
- 9 局域網(wǎng)
- 9.1 ARP協(xié)議
- 9.1.1 ARP協(xié)議簡介
- 9.1.2 ARP: 地址解析協(xié)議
- 9.1.3 ARP協(xié)議在同一局域網(wǎng)內(nèi)的工作機制(尋址)
- 9.1.4 ARP協(xié)議在不同局域網(wǎng)間的工作機制(尋址)
- 9.2 以太網(wǎng)
- 9.2.1 以太網(wǎng)
- 以太網(wǎng):物理拓撲
- 以太網(wǎng):不可靠、無連接服務(wù)
- 以太網(wǎng)CSMA/CD算法
- 以太網(wǎng)幀結(jié)構(gòu)
- 802.3以太網(wǎng)標準: 鏈路與物理層
- 9.2.2 交換機
- 交換機: 多端口間同時傳輸
- 交換機轉(zhuǎn)發(fā)表:交換表
- 交換機: 自學(xué)習(xí)
- 交換機: 幀過濾/轉(zhuǎn)發(fā)
- 自學(xué)習(xí)與轉(zhuǎn)發(fā)過程舉例
- 交換機互聯(lián)
- 多交換機自學(xué)習(xí)舉例
- 組織機構(gòu)(Institutional)網(wǎng)絡(luò)
- 9.2.3 交換機 vs. 路由器
- 9.2.4 網(wǎng)絡(luò)設(shè)備對比
- 9.2.5 虛擬局域網(wǎng)(VLAN)
- VLANs的研發(fā)動機
- VLANs
- 基于端口的VLAN
- 跨越多交換機的VLAN
- 802.1Q VLAN幀格式
- 9.3 PPP協(xié)議
- 9.3.1 點對點數(shù)據(jù)鏈路控制
- 9.3.2 PPP設(shè)計需求[RFC 1557]
- 9.3.3 PPP無需支持的功能
- 9.3.4 PPP數(shù)據(jù)幀
- 9.3.5 字節(jié)填充(Byte Stuffing)
- 9.3.6 PPP數(shù)據(jù)控制協(xié)議
- 9.4 802.11無線局域網(wǎng)
- 9.4.1 IEEE 802.11無線局域網(wǎng)
- 9.4.2 IEEE 802.11體系結(jié)構(gòu)
- 9.4.3 802.11:信道與AP關(guān)聯(lián)
- 9.4.4 802.11AP關(guān)聯(lián):被動掃描與主動掃描
- 9.4.5 802.11:多路訪問控制
- 9.4.6 IEEE 802.11 MAC協(xié)議: CSMA/CA
- 9.4.7 IEEE 802.11 MAC協(xié)議: CSMA/CA
- 9.4.8 沖突避免(CA): RTS-CTS交換
- 9.4.9 IEEE 802.11 MAC幀
5 網(wǎng)絡(luò)層(上)
5.1 網(wǎng)絡(luò)層服務(wù)
- 從發(fā)送主機向接收主機傳送數(shù)據(jù)段(segment)
- 發(fā)送主機:將數(shù)據(jù)段封裝到數(shù)據(jù)報(datagram)中
- 接收主機:向傳輸層交付數(shù)據(jù)段(segment)
- 每個主機和路由器都運行網(wǎng)絡(luò)層協(xié)議
- 路由器檢驗所有穿越它的IP數(shù)據(jù)報的頭部域
- 決策如何處理IP數(shù)據(jù)報
網(wǎng)絡(luò)層核心功能-轉(zhuǎn)發(fā)與路由
- 轉(zhuǎn)發(fā)(forwarding): 將分組從路由器的輸入端口轉(zhuǎn)移到合 適的輸出端口
- 路由(routing): 確定 分組從源到目的經(jīng)過的路徑
- 路由算法 (routing algorithms)
- 路由算法 (routing algorithms)
網(wǎng)絡(luò)層核心功能-連接建立
- 某些網(wǎng)絡(luò)的重要功能:
- ATM, 幀中繼, X.25
- 數(shù)據(jù)分組傳輸之前兩端主機需要首先建立虛擬/邏輯連接
- 網(wǎng)絡(luò)設(shè)備(如路由器)參與連接的建立
- 網(wǎng)絡(luò)層連接與傳輸層連接的對比:
- 網(wǎng)絡(luò)層連接: 兩個主機之間 (路 徑上的路由器等網(wǎng)絡(luò)設(shè)備參與 其中)
- 傳輸層連接: 兩個應(yīng)用進程之間(對中間網(wǎng)絡(luò)設(shè)備透明)
網(wǎng)絡(luò)層服務(wù)模型
-
Q: 網(wǎng)絡(luò)層為發(fā)送端(主機)到接收端(主機)的數(shù)據(jù)報傳送 “通道(channel)”提供什么樣的服務(wù)模型(service model)?
-
無連接服務(wù)(connection-less service):
- 不事先為系列分組的傳輸確定傳輸路徑
- 每個分組獨立確定傳輸路徑
- 不同分組可能傳輸路徑不同
- 數(shù)據(jù)報網(wǎng)絡(luò)(datagram network )
-
連接服務(wù)(connection service):
- 首先為系列分組的傳輸確定從源到目的經(jīng)過的路徑 (建立連接)
- 然后沿該路徑(連接)傳輸系列分組
- 系列分組傳輸路徑相同
- 傳輸結(jié)束后拆除連接
- 虛電路網(wǎng)絡(luò)(virtual-circuit network )
5.2 虛電路網(wǎng)絡(luò)與數(shù)據(jù)報網(wǎng)絡(luò)
5.2.1 虛電路網(wǎng)絡(luò)
連接服務(wù)。結(jié)合了電路交換和分組交換的優(yōu)點。
連接服務(wù)與無連接服務(wù)
- 數(shù)據(jù)報(datagram)網(wǎng)絡(luò)與虛電路(virtual-circuit)網(wǎng) 絡(luò)是典型兩類分組交換網(wǎng)絡(luò)
- 數(shù)據(jù)報網(wǎng)絡(luò)提供網(wǎng)絡(luò)層無連接服務(wù)
- 虛電路網(wǎng)絡(luò)提供網(wǎng)絡(luò)層連接服務(wù)
- 類似于傳輸層的無連接服務(wù)(UDP)和面向連接 服務(wù)(TCP),但是網(wǎng)絡(luò)層服務(wù):
- 主機到主機服務(wù)
- 網(wǎng)絡(luò)核心實現(xiàn)
虛電路(Virtual circuits)
虛電路:一條從源主機到目的主機,類似于電路的路徑(邏輯連接)
- 分組交換
- 每個分組的傳輸利用鏈路的全部帶寬
- 源到目的路徑經(jīng)過的網(wǎng)絡(luò)層設(shè)備共同完成虛電路功能
注意:盡管虛電路中采用了很多電路交換中的術(shù)語,但本質(zhì)上是此非彼的關(guān)系。
- 通信過程:
- 呼叫建立(call setup)→數(shù)據(jù)傳輸 →拆除呼叫
- 每個分組攜帶虛電路標識(VC ID),而不是目的主機地址
- 虛電路經(jīng)過的每個網(wǎng)絡(luò)設(shè)備 (如路由器),維護每條經(jīng)過它的虛電路連接狀態(tài)
- 鏈路、網(wǎng)絡(luò)設(shè)備資源(如帶寬 、緩存等)可以面向VC進行預(yù)分配
- 預(yù)分配資源=可預(yù)期服務(wù)性能
- 如ATM的電路仿真(CBR)
VC的具體實現(xiàn)
- 每條虛電路包括:
- 沿某條虛電路傳輸?shù)姆纸M,攜帶對應(yīng)虛電路的 VCID,而不是目的地址
- 同一條VC ,在每段鏈路上的VCID通常不同
- 路由器轉(zhuǎn)發(fā)分組時依據(jù)VC轉(zhuǎn)發(fā)表改寫/替換虛電路號
VC轉(zhuǎn)發(fā)表
路由器R1的VC轉(zhuǎn)發(fā)表:
虛電路信令協(xié)議(signaling protocols)
- 用于VC的建立、維護與拆除
- 路徑選擇
- 應(yīng)用于虛電路網(wǎng)絡(luò)
- 如ATM、幀中繼(frame-relay)網(wǎng)絡(luò)等
- 目前的Internet不采用
5.2.2 數(shù)據(jù)報網(wǎng)絡(luò)
- 網(wǎng)絡(luò)層無連接
- 每個分組攜帶目的地址
- 路由器根據(jù)分組的目的地址轉(zhuǎn)發(fā)分組
- 基于路由協(xié)議/算法構(gòu)建轉(zhuǎn)發(fā)表
- 檢索轉(zhuǎn)發(fā)表
- 每個分組獨立選路
數(shù)據(jù)報轉(zhuǎn)發(fā)表
對應(yīng)的,虛電路網(wǎng)絡(luò)有VC轉(zhuǎn)發(fā)表。
32位可存放40多億地址,但在分組有限的大小中這是很不現(xiàn)實的,所以分組是根據(jù)地址范圍來轉(zhuǎn)發(fā)的。
但這也出現(xiàn)了一個問題:
如果地址范圍劃分的不是這么“完美”會怎么樣?
解決辦法:最長前綴匹配優(yōu)先。
最長前綴匹配優(yōu)先
5.2.3 數(shù)據(jù)報網(wǎng)絡(luò)與VC網(wǎng)絡(luò)的對比
5.3 IPv4協(xié)議
5.3.1 IP協(xié)議(1)-IP數(shù)據(jù)報
IP數(shù)據(jù)報(分組)格式
- 版本號字段占4位:IP協(xié)議的版本號 ? E.g. 4→IPv4,6 → IPv6
- 首部長度字段占4位:IP分組首部長度
- 以4字節(jié)為單位
- E.g. 5→IP首部長度為20(5×4)字節(jié)
- 服務(wù)類型(TOS)字段占8位:指示期望獲得哪種類型的服務(wù)
- 1998 年這個字段改名為區(qū)分服務(wù)
- 只有在網(wǎng)絡(luò)提供區(qū)分服務(wù)(DiffServ)時使用
- 一般情況下不使用,通常IP分組的該字段(第2字節(jié))的值為00H
- 總長度字段占16位:IP分組的總字節(jié)數(shù)(首部+數(shù)據(jù))
- 最大IP分組的總長度:65535B
- 最小的IP分組首部:20B
- IP分組可以封裝的最大數(shù)據(jù):65535-20=65515B
- 生存時間(TTL)字段占8位:IP分組在網(wǎng)絡(luò)中可以通過的 路由器數(shù)(或跳步數(shù))
- 路由器轉(zhuǎn)發(fā)一次分組,TTL減1
- 如果TTL=0,路由器則丟棄該IP分組
- 協(xié)議字段占8位:指示IP分組封裝的是哪個協(xié)議的數(shù)據(jù)包
- 實現(xiàn)復(fù)用/分解
- E.g. 6為TCP,表示封裝的為TCP段;17為UDP,表示封裝的是UDP數(shù)據(jù)報
- 首部校驗和字段占16位:實現(xiàn)對IP分組首部的差錯檢測
- 計算校驗和時,該字段置全0
- 采用反碼算數(shù)運算求和,和的反碼作為首部校驗和字段
- 逐跳計算、逐跳校驗
- 源IP地址、目的IP地址字段各占32位:分別標識發(fā)送分組 的源主機/路由器(網(wǎng)絡(luò)接口)和接收分組的目的主機/路由器 (網(wǎng)絡(luò)接口)的IP地址
- 選項字段占長度可變,范圍在1~40B之間:攜帶安全、源選路徑、時間戳和路由記錄等內(nèi)容
- 實際上很少被使用
- 填充字段占長度可變,范圍在0~3B之間:目的是補齊整個 首部,符合32位對齊,即保證首部長度是4字節(jié)的倍數(shù)
5.3.2 IP協(xié)議(2)-IP分片
最大傳輸單元(MTU)
- 網(wǎng)絡(luò)鏈路存在MTU (最大傳輸單元)——鏈路層數(shù)據(jù)幀可封裝數(shù)據(jù)的上限
- 不同鏈路的MTU不同
IP分片與重組
- 大IP分組向較小MTU鏈路轉(zhuǎn)發(fā)時,可以被“分片” (fragmented)
- 1個IP分組分為多片IP分組
- IP分片到達目的主機后進行“重組” (reassembled)
- IP首部的相關(guān)字段用于標識分片以及確定分片的相對順序
- 總長度、標識、標志位和片偏移
- 總長度、標識、標志位和片偏移
IP分組格式
- 標識字段占16位:標識一個IP分組
- IP協(xié)議利用一個計數(shù)器,每產(chǎn)生IP分組計數(shù)器加1,作為該IP分組 的標識
- 標志位字段占3位:
- DF (Don't Fragment)
- MF (More Fragment)
- DF =1:禁止分片;
DF =0:允許分片 - MF =1:非最后一片;
MF =0:最后一片(或未分片)
- 片偏移字段占13位:一個IP分組分片封裝原IP分組數(shù)據(jù)的相對偏移量
- 片偏移字段以8字節(jié)為單位
IP分片過程
- 假設(shè)原IP分組總長度為L,待轉(zhuǎn)發(fā)鏈路的MTU為M
- 若L>M,且DF=0,則可以/需要分片
- 分片時每個分片的標識復(fù)制原IP分組的標識
- 通常分片時,除最后一個分片,其他分片均分為MTU允 許的最大分片
- 一個最大分片可封裝的數(shù)據(jù)應(yīng)該是8的倍數(shù),因此,一個 最大分片可封裝的數(shù)據(jù)為:
d=?M?208?×8d=\biggl\lceil\frac{M-20}8\biggr\rceil\times8 d=?8M?20??×8 - 需要的總片數(shù)為:
n=?L?20d?n=\biggl\lceil\frac{L-20}d\biggr\rceil n=?dL?20?? - 每片的片偏移字段取值為:
Fi=d8×(i?1),1≤i≤nF_i=\frac d8\times(i-1),\quad 1\leq i\leq nFi?=8d?×(i?1),1≤i≤n - 每片的總長度字段為:
Li{d+201≤i≤nL?(n?1)di=nL_i \begin{cases} d+20 & \quad 1\leq i\leq n\\ L-(n-1)d &\quad i=n\\ \end{cases} Li?{d+20L?(n?1)d?1≤i≤ni=n? - 每片的MF標志位為:
MFi={11≤i<n0i=n{MF}_i=\begin{cases} 1 & \quad 1\leq i < n \\ 0 & \quad i=n \end{cases}MFi?={10?1≤i<ni=n?
5.3.3 IP協(xié)議(3)-IP編址
IP編址(addressing)
-
IP分組:
- 源地址(SA)-從哪兒來
- 目的地址(DA)-到哪兒去
-
接口(interface): 主機/路 由器與物理鏈路的連接
- 實現(xiàn)網(wǎng)絡(luò)層功能
- 路由器通常有多個接口
- 主機通常只有一個或兩個接口 (e.g.,有線的以太網(wǎng)接口,無線的802.11接口)
-
IP地址: 32比特(IPv4) 編號標識主機、路由器的接口
-
IP地址與每個接口關(guān)聯(lián)
-
怎樣為接口分配IP地址呢?
IP子網(wǎng)(Subnets)
- IP地址:
- 網(wǎng)絡(luò)號(NetID)– 高位比特
- 主機號(HostID)– 低位比特
- IP子網(wǎng):
- IP地址具有相同網(wǎng)絡(luò)號的設(shè)備接口
- 不跨越路由器(第三及以 上層網(wǎng)絡(luò)設(shè)備)可以彼此物理聯(lián)通的接口
- 圖中網(wǎng)絡(luò)有多少個 IP子網(wǎng)?
六個。
5.3.4 IP協(xié)議(4)-有類IP地址
- IP地址:
- 網(wǎng)絡(luò)號(NetID)– 高位比特
- 主機號(HostID)– 低位比特
- IP子網(wǎng):
- IP地址具有相同網(wǎng)絡(luò)號的設(shè)備接口
- 不跨越路由器(第三及以 上層網(wǎng)絡(luò)設(shè)備)可以彼此物理聯(lián)通的接口
有類IP地址
采用二分法。
-
特殊IP地址
-
私有(Private)IP地址
私有IP地址一般用于機構(gòu)內(nèi)部網(wǎng)絡(luò),在公網(wǎng)中是無法與其通信的,私有IP地址增加了IP地址的復(fù)用性(因為公網(wǎng)連接不上,各個機構(gòu)又是分開的)。
5.3.5 IP協(xié)議(4)-IP子網(wǎng)劃分與子網(wǎng)掩碼
-
IP地址:
- 網(wǎng)絡(luò)號(NetID)– 高位比特
- 主機號(HostID)– 低位比特
-
IP子網(wǎng):
- IP地址具有相同網(wǎng)絡(luò)號的設(shè)備接口
- 不跨越路由器(第三及以 上層網(wǎng)絡(luò)設(shè)備)可以彼此物理聯(lián)通的接口
-
有類IP地址
如何進行子網(wǎng)劃分(Subnetting)?
- IP地址:
- 網(wǎng)絡(luò)號(NetID) – 高位比特
- 子網(wǎng)號(SubID) – 原網(wǎng)絡(luò)主機號部分比特
- 主機號(HostID) – 低位比特
-
如何確定是否劃分了子網(wǎng)?利用多少位劃分子網(wǎng)?
- 子網(wǎng)掩碼
-
子網(wǎng)掩碼
-
形如IP地址:
- 32位
- 點分十進制形式
-
取值:
- NetID、SubID位全取1
- HostID位全取0
-
例如:
- A網(wǎng)的默認子網(wǎng)掩碼為:255.0.0.0
- B網(wǎng)的默認子網(wǎng)掩碼為:255.255.0.0
- C網(wǎng)的默認子網(wǎng)掩碼為:255.255.255.0
- 借用3比特劃分子網(wǎng)的B網(wǎng)的子網(wǎng)掩碼為:255.255.224.0
-
子網(wǎng)劃分
-
例如:
- 子網(wǎng)201.2.3.0,255.255.255.0,劃分為等長的4個子網(wǎng)
- 子網(wǎng)201.2.3.0,255.255.255.0,劃分為等長的4個子網(wǎng)
-
路由器如何確定應(yīng)該將IP分組轉(zhuǎn)發(fā)到哪個子網(wǎng)?
通過子網(wǎng)掩碼。
子網(wǎng)掩碼的應(yīng)用
-
將IP分組的目的IP地址與子網(wǎng)掩碼按位與運算, 提取子網(wǎng)地址
-
例如:
- 目的IP地址:172.32.1.112,子網(wǎng)掩碼:255.255.254.0
- 子網(wǎng)地址:172.32.0.0(子網(wǎng)掩碼:255.255.254.0)
- 地址范圍:172.32.0.0~172.32.1.255
- 可分配地址范圍:172.32.0.1~172.32.1.254
- 廣播地址:172.32.1.255
- 目的IP地址:172.32.1.112,子網(wǎng)掩碼:255.255.254.0
-
一個C類網(wǎng)絡(luò)劃分子網(wǎng)舉例
6 網(wǎng)絡(luò)層(中)
6.1 CIDR與路由聚合
無類域間路由(CIDR: Classless InterDomain Routing)
- 消除傳統(tǒng)的 A 類、B 類和 C 類地址界限
- NetID+SubID→Network Prefix (Prefix)可以任意長度
- 融合子網(wǎng)地址與子網(wǎng)掩碼,方便子網(wǎng)劃分
- 無類地址格式:a.b.c.d/x,其中x為前綴長度
- 例如
- 子網(wǎng)201.2.3.64,255.255.255.192→201.2.3.64/26
CIDR與路由聚合的作用
- 提高IPv4 地址空間分配效率
- 提高路由效率
- 將多個子網(wǎng)聚合為一個較大的子網(wǎng)
- 構(gòu)造超網(wǎng)(supernetting)
- 路由聚合(route aggregation)
路由聚合
- 將多個子網(wǎng)聚合,大大縮小了路由中的轉(zhuǎn)發(fā)表的大小
- 層級編址使得路由信息通告更高效:
但是層級編制會出現(xiàn)一個問題:聚合之后的地址可能會包括其它子網(wǎng)中的地址,如下圖中的200.23.18.2/23,這是就要遵循最長前綴匹配優(yōu)先原則了。
劃分子網(wǎng)的意義是什么?如何進行子網(wǎng)劃分?什么是定長子網(wǎng)劃分?什么是變長子網(wǎng)劃分?如何準確地描述一個子網(wǎng)?為什么要進行路由聚集?如何進行路由聚集?什么情況下可以進行路由聚集?
6.2 DHCP協(xié)議
-
如何獲得IP地址?
Q: 一個主機如何獲得IP地址?- “硬編碼”
- 靜態(tài)配置
- 動態(tài)主機配置協(xié)議-DHCP: Dynamic Host Configuration Protocol
- 從服務(wù)器動態(tài)獲取:
- IP地址
- 子網(wǎng)掩碼
- 默認網(wǎng)關(guān)地址
- DNS服務(wù)器名稱與IP地址
- “即插即用”
- 允許地址重用
- 支持在用地址續(xù)租
DHCP協(xié)議給客戶端分配的地址是有時間限制的。 - 支持移動用戶加入網(wǎng)絡(luò)
- 從服務(wù)器動態(tài)獲取:
- 動態(tài)主機配置協(xié)議(DHCP)
- 主機廣播 “DHCP discover”(發(fā)現(xiàn)報文)
- DHCP服務(wù)器利用 “DHCP offer” (提供報文) 進行響應(yīng)
- 主機請求IP地址: “DHCP request” (請求報文)
- DHCP服務(wù)器分配IP地址: “DHCP ack” (確認報文)
- DHCP工作過程示例
- DHCP協(xié)議實現(xiàn)于應(yīng)用層
- 請求報文封裝到UDP數(shù)據(jù)報中
- IP廣播
- 鏈路層廣播
(e.g. 以太網(wǎng)廣播)
- DHCP服務(wù)器構(gòu)造 ACK報文
- 包括分配給客戶的 IP地址、子網(wǎng)掩碼 、默認網(wǎng)關(guān)、DNS 服務(wù)器地址
- 包括分配給客戶的 IP地址、子網(wǎng)掩碼 、默認網(wǎng)關(guān)、DNS 服務(wù)器地址
- DHCP協(xié)議實現(xiàn)于應(yīng)用層
- “硬編碼”
6.3 網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)
- 研究NAT的動機
- 只需/能從ISP申請一個IP地址
- IPv4地址耗盡
- 本地網(wǎng)絡(luò)設(shè)備IP地址的變更,無需通告外界 網(wǎng)絡(luò)
- 變更ISP時,無需修改內(nèi)部網(wǎng)絡(luò)設(shè)備IP地址
- 內(nèi)部網(wǎng)絡(luò)設(shè)備對外界網(wǎng)絡(luò)不可見,即不可直接尋址(安全)
- 只需/能從ISP申請一個IP地址
- 優(yōu)點及爭議
- 16-bit端口號字段:
- 可以同時支持60,000多并行連接!
- NAT主要爭議:
- 路由器應(yīng)該只處理第3層功能
- 違背端到端通信原則
- 應(yīng)用開發(fā)者必須考慮到NAT的存在,e.g., P2P應(yīng)用
- 地址短缺問題應(yīng)該由IPv6來解決
- 16-bit端口號字段:
6.3.1 NAT的實現(xiàn)
-
實現(xiàn):
- 替換
- 利用(NAT IP地址,新端口號)替換每個外出IP數(shù)據(jù)報的(源IP地址,源端口號)
- 記錄
- 將每對(NAT IP地址, 新端口號) 與(源IP地址, 源端 口號)的替換信息存儲到NAT轉(zhuǎn)換表中
- 替換
- 根據(jù)NAT轉(zhuǎn)換表,利用(源IP地址, 源端口號)替換每個進入內(nèi)網(wǎng)IP數(shù)據(jù)報的(目的IP地址,目的端口號), 即(NAT IP地址, 新端口號)
- 替換
-
NAT的執(zhí)行過程舉例:
6.3.2 NAT穿透問題
- 客戶期望連接內(nèi)網(wǎng)地址為 10.0.0.1的服務(wù)器
- 客戶不能直接利用地址 10.0.0.1直接訪問服務(wù)器
- 對外唯一可見的地址是NAT 地址: 138.76.29.7
- 解決方案:
-
1:
靜態(tài)配置NAT ,將特定端口的連接請求轉(zhuǎn)發(fā)給服務(wù)器- e.g., (138.76.29.7, 2500) 總是轉(zhuǎn)發(fā)給(10.0.0.1, 25000)
- e.g., (138.76.29.7, 2500) 總是轉(zhuǎn)發(fā)給(10.0.0.1, 25000)
-
2:
利用UPnP (Universal Plug and Play) 互聯(lián)網(wǎng)網(wǎng)關(guān)設(shè)備協(xié)議 (IGDInternet Gateway Device ) 自動配置:- 學(xué)習(xí)到NAT公共IP地址 (138.76.29.7)
- 在NAT轉(zhuǎn)換表中,增刪端口映射
-
3:
中繼(如Skype)- NAT內(nèi)部的客戶與中繼服務(wù)器建立連接
- 外部客戶也與中繼服務(wù)器建立連接
- 中繼服務(wù)器橋接兩個連接的分組
-
6.4 互聯(lián)網(wǎng)控制報文協(xié)議(ICMP)
- 互聯(lián)網(wǎng)控制報文協(xié)議 ICMP (Internet Control Message Protocol)支持主機或路由器:
- 差錯(或異常)報告
- 網(wǎng)絡(luò)探詢
- 兩類 ICMP 報文:
- 差錯報告報文(5種)
- 目的不可達
- 源抑制(Source Quench)
- 超時/超期
- 參數(shù)問題
- 重定向 (Redirect)
- 網(wǎng)絡(luò)探詢報文(2組)
- 回聲(Echo)請求與應(yīng)答報文(Reply)
- 時間戳請求與應(yīng)答報文
- 差錯報告報文(5種)
- ICMP報文
- 例外情況 :
- 幾種不發(fā)送 ICMP差錯報告報文的特殊情況:
- 對ICMP差錯報告報文不再發(fā)送 ICMP差錯報告報文
- 除第1個IP數(shù)據(jù)報分片外,對所有后續(xù)分片均不發(fā)送ICMP差錯 報告報文
- 對所有多播IP數(shù)據(jù)報均不發(fā)送 ICMP差錯報告報文
- 對具有特殊地址(如127.0.0.0 或 0.0.0.0)的IP數(shù)據(jù)報不發(fā)送 ICMP 差錯報告報文
- 幾種 ICMP 報文已不再使用
- 信息請求與應(yīng)答報文
- 子網(wǎng)掩碼請求和應(yīng)答報文
- 路由器詢問和通告報文
- 幾種不發(fā)送 ICMP差錯報告報文的特殊情況:
- 例外情況 :
6.4.1 ICMP報文的格式
ICMP報文封裝到IP數(shù)據(jù)報中傳輸。
6.4.2 ICMP差錯報告報文數(shù)據(jù)封裝
6.4.3 ICMP的應(yīng)用舉例:Traceroute
-
源主機向目的主機發(fā)送一系列 UDP 數(shù)據(jù)報
- 第1組IP數(shù)據(jù)報TTL =1
- 第2組IP數(shù)據(jù)報TTL=2, etc.
TTL是 Time To Live的縮寫,該字段指定IP包被路由器丟棄之前允許通過的最大網(wǎng)段數(shù)量。TTL是IPv4包頭的一個8 bit字段。
- 目的端口號為不可能使用的端口號
-
當(dāng)?shù)趎組數(shù)據(jù)報(TTL=n)到達第 n 個路由器時:
- 路由器丟棄數(shù)據(jù)報
- 向源主機發(fā)送ICMP報文 (type=11, code=0)
- ICMP報文攜帶路由器名稱和 IP地址信息
-
當(dāng)ICMP報文返回到源主機時, 記錄RTT
-
停止準則:
- UDP數(shù)據(jù)報最終到達目的主機
- 目的主機返回“目的端口不可達”ICMP報文 (type=3, code=3)
- 源主機停止
6.5 IPv6簡介
6.5.1 IPv6的研發(fā)動機
- 最初動機: 32位IPv4地址空間已分配殆盡
- 其他動機: 改進首部格式
- 快速處理/轉(zhuǎn)發(fā)數(shù)據(jù)報
- 支持QoS
- IPv6數(shù)據(jù)報格式:
- 固定長度的40字節(jié)基本首部
- 不允許分片
6.5.2 IPv6數(shù)據(jù)報格式
優(yōu)先級(priority): 標識數(shù)據(jù)報的優(yōu)先級
流標簽(flow Label): 標識同一“流”中的數(shù)據(jù)報
下一個首部(next header): 標識下一個選項首部或上層協(xié)議首部(如TCP首部)
6.5.3 其他改變 vs IPv4
- 校驗和(checksum): 徹底移除,以減少每跳處理 時間
- 選項(options): 允許,但是從基本首部移出,定義 多個選項首部,通過“下一個首部”字段指示
- ICMPv6: 新版ICMP
- 附加報文類型,e.g. “Packet Too Big”
- 多播組管理功能
6.5.4 IPv6地址表示形式
-
一般形式:
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
或 ::FFFF:13.1.68.3 -
地址前綴:
2002:43c:476b::/48 (注: IPv6不再使用掩碼!) -
URLs:
http://[3FFE::1:800:200C:417A]:8000
6.5.5 IPv6基本地址類型
6.5.6 IPv4向IPv6過渡
- 不可能在某個時刻所有路由器同時被更新為IPv6
- 不會有 “標志性的日期”
- IPv4和IPv6路由器共存的網(wǎng)絡(luò)如何運行?
- 隧道(tunneling): IPv6數(shù)據(jù)報作為IPv4數(shù)據(jù)報的載 荷進行封裝,穿越IPv4網(wǎng)絡(luò)
- 隧道技術(shù):
- 隧道技術(shù):
6.6 典例講解
題目:
- 題目描述
- 題目:
解答:
- (1)
- (2)
- (3)
7 網(wǎng)絡(luò)層(下)
7.1~7.5:路由算法部分
7.6~7.9:Internet路由部分
7.1 路由算法概述
- 網(wǎng)絡(luò)抽象:圖
圖: G = (N, E)
N = 路由器集合= { u, v, w, x, y, z }
E = 鏈路集合 ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
附注: 圖的抽象在網(wǎng)絡(luò)領(lǐng)域應(yīng)用很廣泛 E.g.:P2P,其中,N是 peers集合,而E是TCP連接集合
網(wǎng)
- 圖抽象:費用(Costs)
c(x, x’) = 鏈路(x, x’)的費用 e.g., c(w, z) = 5
每段鏈路的費用可以總是1,
或者是,
帶寬的倒數(shù)(帶寬越大,其倒數(shù)越小)、擁塞程度等 。
路徑費用:(x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
- 路由算法分類
- 靜態(tài)路由 vs 動態(tài)路由?
- 靜態(tài)路由:
- 手工配置
- 路由更新慢
- 優(yōu)先級高
- 動態(tài)路由:
- 路由更新快
- 定期更新
- 及時響應(yīng)鏈路費用或 網(wǎng)絡(luò)拓撲變化
- 路由更新快
- 靜態(tài)路由:
- 全局信息 vs 分散信息?
- 全局信息:
- 所有路由器掌握完整的網(wǎng)絡(luò) 拓撲和鏈路費用信息
- E.g. 鏈路狀態(tài)(LS)路由算法
- 分散(decentralized)信息:
- 路由器只掌握物理相連的鄰 居以及鏈路費用
- 鄰居間信息交換、運算的迭 代過程
- E.g. 距離向量(DV)路由算法
- 全局信息:
- 靜態(tài)路由 vs 動態(tài)路由?
7.2 鏈路狀態(tài)路由算法
- 網(wǎng)絡(luò)抽象:圖
圖: G = (N, E)
N = 路由器集合= { u, v, w, x, y, z }
E = 鏈路集合 ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
7.2.1 Dijkstra 算法
Dijkstra 算法
- 所有結(jié)點(路由器)掌握網(wǎng) 絡(luò)拓撲和鏈路費用
- 通過“鏈路狀態(tài)廣播”
- 所有結(jié)點擁有相同信息
- 計算從一個結(jié)點(“源”) 到達所有其他結(jié)點的最短路徑
- 獲得該結(jié)點的轉(zhuǎn)發(fā)表
- 迭代: k次迭代后,得到 到達k個目的結(jié)點的最短 路徑
符號:
- c(x,y): 結(jié)點x到結(jié)點y鏈路 費用;如果x和y不直接相 連,則=∞
- D(v): 從源到目的v的當(dāng)前 路徑費用值
- p(v): 沿從源到v的當(dāng)前路徑,v的前序結(jié)點
- N’: 已經(jīng)找到最小費用路徑的結(jié)點集合
偽代碼:
Dijkstra算法舉例說明:
- 1
- 2
- u的最終最短路徑樹:
- u的最終轉(zhuǎn)發(fā)表:
- u的最終最短路徑樹:
Dijkstra 算法:討論
- 算法復(fù)雜性: n個結(jié)點
- 每次迭代: 需要檢測所有不在集合N’中的結(jié)點w
- n(n+1)/2次比較: O(n2)
- 更高效的實現(xiàn): O(nlogn)
- 存在震蕩(oscillations)可能:
- e.g., 假設(shè)鏈路費用是該鏈路承載的通信量:
震蕩發(fā)生后,可能會出現(xiàn)這樣的情況:
分組從B->C->D之后,又從D->C,這樣子永遠都無法B->C->D->A。
- e.g., 假設(shè)鏈路費用是該鏈路承載的通信量:
7.3 距離向量路由算法(1)
距離向量(Distance Vector)路由算法。
- Bellman-Ford 舉例
- 距離向量路由算法
7.4 距離向量路由算法(2)
-
距離向量路由算法:舉例
-
距離向量DV: 鏈路費用變化
鏈路費用變化:
- 結(jié)點檢測本地鏈路費用變化
- 更新路由信息,重新計算距離向量
- 如果DV改變,通告所有鄰居
7.4.1 距離向量DV: 無窮計數(shù)問題
在上圖可以看到,如果xy之間的距離變成60,是不會直接改為60的,而是從一個初始值(上圖中的初始值是6)逐漸增大至60.- 解決無窮計數(shù)問題的方法:
-
1 毒性逆轉(zhuǎn)(poisoned reverse):
這個毒性逆轉(zhuǎn)問題感覺PPT中展示的不是很清楚,我先把PPT放上來,后續(xù)補上其他材料
如果一個結(jié)點(e.g. Z)到達某目的(e.g.X)的最小 費用路徑是通過某個鄰居(e.g.Y),則:- 通告給該鄰居結(jié)點到達該目的的距離為無窮大
如果網(wǎng)絡(luò)結(jié)構(gòu)很復(fù)雜,毒性逆轉(zhuǎn)技術(shù)也無法解決無窮計數(shù)問題。
- 通告給該鄰居結(jié)點到達該目的的距離為無窮大
-
2 定義最大度量(maximum metric):
- 定義一個最大的有效費用值,如15跳步,16跳步表示∞
(上圖的意思是:R1現(xiàn)如今無法直達192.168.1.1/24,但之前是可以的,當(dāng)時R2到192.168.1.0/24的路徑R2->R1->192.168.1.0/24路徑是已被保留下來的(2跳),所以現(xiàn)如今R1到192.168.1.0/24的路徑(實際上是不可能存在的路徑)就會被當(dāng)成R1->R2->R1->192.168.1.0/24(3跳))
然后一直增加到15或16跳步時就被當(dāng)作∞了,這樣就不會繼續(xù)計數(shù)下去,也就說避免了無窮計數(shù)問題。
- 定義一個最大的有效費用值,如15跳步,16跳步表示∞
-
7.5 層次路由
- 將任意規(guī)模網(wǎng)絡(luò)抽象為一個圖計算路由-過于理想化
- 標識所有路由器
- “扁平”網(wǎng)絡(luò) ——在實際網(wǎng)絡(luò)(尤其是大規(guī)模網(wǎng)絡(luò))中,不可行!
7.5.1 研發(fā)層次路由的動機
- 網(wǎng)絡(luò)規(guī)模:考慮6億目 的結(jié)點的網(wǎng)絡(luò)
- 路由表幾乎無法存儲!
- 路由計算過程的信息 (e.g. 鏈路狀態(tài)分組、 DV)交換量巨大,會淹沒鏈路!
- 管理自治:
- 每個網(wǎng)絡(luò)的管理可能都期望自主控制其網(wǎng)內(nèi)的路由
- 互聯(lián)網(wǎng)(internet) = 網(wǎng)絡(luò)之 網(wǎng)絡(luò)(network of networks)
7.5.2 層次路由詳述
- 聚合路由器為一個區(qū)域 :自治系統(tǒng)AS (autonomous systems)
- 同一AS內(nèi)的路由器運行相同的路由協(xié)議(算法)
- 自治系統(tǒng)內(nèi)部路由協(xié)議 (“intra-AS” routing protocol)
- 不同自治系統(tǒng)內(nèi)的路由 器可以運行不同的AS內(nèi)部路由協(xié)議
- 網(wǎng)關(guān)路由器(gateway router):
- 位于AS“邊緣”
- 通過鏈路連接其他AS的網(wǎng)關(guān)路由器
互連的AS
- 轉(zhuǎn)發(fā)表由AS內(nèi)部路由算法與AS間路由算法共同配置
- AS內(nèi)部路由算法設(shè)置AS內(nèi)部目的網(wǎng)絡(luò)路由入口(entries)
- AS內(nèi)部路由算法與AS間路由算法共同設(shè)置 AS外部目的網(wǎng)絡(luò)路由入口
互
自治系統(tǒng)間(Inter-AS)路由任務(wù)
- 假設(shè)AS1內(nèi)某路由器收到一個目的地址在AS1 之外的數(shù)據(jù)報:
- 路由器應(yīng)該將該數(shù)據(jù)報轉(zhuǎn)發(fā)給哪個網(wǎng)關(guān)路由器呢?
AS1必須:
舉例說明層次路由
-
例2: 路由器1d的轉(zhuǎn)發(fā)表設(shè)置
- 假設(shè)AS1學(xué)習(xí)到(通過AS間路由協(xié)議):子網(wǎng)x可以通過AS3 (網(wǎng)關(guān) 1c)到達,但不能通過AS2到達
- AS間路由協(xié)議向所有內(nèi)部路由器傳播該可達性信息
- 路由器1d:利用AS內(nèi)部路由信息,確定其到達1c 的最小費用路徑接口/
- 在1d轉(zhuǎn)發(fā)表中增加入口:(x, /)
- 在1d轉(zhuǎn)發(fā)表中增加入口:(x, /)
- 假設(shè)AS1學(xué)習(xí)到(通過AS間路由協(xié)議):子網(wǎng)x可以通過AS3 (網(wǎng)關(guān) 1c)到達,但不能通過AS2到達
-
例2: 在多AS間選擇
- 假設(shè)AS1通過AS間路由協(xié)議學(xué)習(xí)到:子網(wǎng)x通過 AS3和AS2均可到達
- 為了配置轉(zhuǎn)發(fā)表,路由器1d必須確定應(yīng)該將去往子網(wǎng)x的數(shù)據(jù)報轉(zhuǎn)發(fā)給哪個網(wǎng)關(guān)?
- 這個任務(wù)也是由AS間路由協(xié)議完成!
- 這個任務(wù)也是由AS間路由協(xié)議完成!
-
例3: 在多AS間選擇
- 假設(shè)AS1通過AS間路由協(xié)議學(xué)習(xí)到:子網(wǎng)x通過 AS3和AS2均可到達
- 為了配置轉(zhuǎn)發(fā)表,路由器1d必須確定應(yīng)該將去往子網(wǎng)x的數(shù)據(jù)報轉(zhuǎn)發(fā)給哪個網(wǎng)關(guān)?
- 這個任務(wù)也是由AS間路由協(xié)議完成!
- 熱土豆路由: 將分組發(fā)送給最近的網(wǎng)關(guān)路由器.
7.6 RIP協(xié)議
7.6.1 AS內(nèi)部路由
- Internet采用層次路由
- AS內(nèi)部路由協(xié)議也稱為內(nèi)部網(wǎng)絡(luò)協(xié)議IGP (interior gateway protocols)
- 最常見的AS內(nèi)部路由協(xié)議:
- 路由信息協(xié)議:RIP(Routing Information Protocol)
- 開放最短路徑優(yōu)先:OSPF(Open Shortest Path First)
- 內(nèi)部網(wǎng)關(guān)路由協(xié)議:IGRP(Interior Gateway Routing Protocol)
- Cisco私有協(xié)議
7.6.2 RIP
-
早于1982年隨BSD-UNIX操作系統(tǒng)發(fā)布
-
距離向量路由算法
- 距離度量:跳步數(shù) (max = 15 hops), 每條鏈路1個跳步
- 每隔30秒,鄰居之間交換一次DV,成為通告(advertisement)
- 每次通告:最多25個目的子網(wǎng)(IP地址形式)
-
舉例:
默認D到A的跳步為1,現(xiàn)D到z所需跳步為7,但A到z跳步為4,所以將D->z變成D->A->后所需跳步為5。所以說RIP的實質(zhì)就是距離最短算法。 -
RIP: 鏈路失效、恢復(fù)
如果180秒沒有收到通告→鄰居/鏈路失效- 經(jīng)過該鄰居的路由不可用
- 重新計算路由
- 向鄰居發(fā)送新的通告
- 鄰居再依次向外發(fā)送通告(如果轉(zhuǎn)發(fā)表改變)
- 鏈路失效信息能否快速傳播到全網(wǎng)?
- 可能發(fā)生無窮計數(shù)問題
- 毒性逆轉(zhuǎn)技術(shù)用于預(yù)防乒乓(ping-pong)環(huán)路 (另外:無窮大距離 = 16 hops)
- 經(jīng)過該鄰居的路由不可用
-
RIP路由表的處理
- RIP路由表是利用一個稱作route-d (daemon)的應(yīng)用層進程進行管理
- 應(yīng)用進程實現(xiàn)
- 通告報文周期性地通過UDP數(shù)據(jù)報發(fā)送
- RIP路由表是利用一個稱作route-d (daemon)的應(yīng)用層進程進行管理
7.7 OSPF協(xié)議簡介
OSPF (Open Shortest Path First)
- “開放”: 公眾可用
- 采用鏈路狀態(tài)路由算法
- LS分組擴散(通告)
- 每個路由器構(gòu)造完整的網(wǎng)絡(luò)(AS)拓撲圖
- 利用Dijkstra算法計算路由
- OSPF通告中每個入口對應(yīng)一個鄰居
- OSPF通告在整個AS范圍泛洪
- OSPF報文直接封裝到IP數(shù)據(jù)報中
- 與OSPF極其相似的一個路由協(xié)議:IS-IS 路由協(xié)議
7.7.1 OSPF優(yōu)點(RIP不具備)
- 安全(security): 所有OSPF報文可以被認證 (預(yù)防惡意入侵)
- 允許使用多條相同費用的路徑 (RIP只能選一條)
- 對于每條鏈路,可以針對不同的服務(wù)類型TOS設(shè)置多個不同的費用度量 (e.g., 衛(wèi)星鏈路可以針對“盡力” (best effort) ToS設(shè)置“低”費用;針對實時ToS 設(shè)置“高”費用)
- 集成單播路由與多播路由:
- 多播OSPF協(xié)議(MOSPF) 與OSPF利用相同的 網(wǎng)絡(luò)拓撲數(shù)據(jù)
- OSPF支持對大規(guī)模AS分層(hierarchical)
在7.7.2詳細敘述。
7.7.2 分層的OSPF
注意區(qū)分區(qū)邊界路由器和AS邊界路由器的不同。
7.8 BGP協(xié)議簡介
Internet AS間路由協(xié)議: BGP 。
- 邊界網(wǎng)關(guān)協(xié)議BGP (Border Gateway Protocol): 事實上的標準域間路由協(xié)議
- 將Internet “粘合”為一個整體的關(guān)鍵
- BGP為每個AS提供了一種手段:
- eBGP: 從鄰居AS獲取子網(wǎng)可達性信息.
- iBGP: 向所有AS內(nèi)部路由器傳播子網(wǎng)可達性信息.
- 基于可達性信息與策略,確定到達其他網(wǎng)絡(luò)的 “好” 路徑.
- 容許子網(wǎng)向Internet其余部分通告它的存在: “我在這兒!”
7.8.1 BGP基礎(chǔ)
- BGP會話(session): 兩個BGP路由器 (“Peers”) 交換BGP報文:
- 通告去往不同目的前綴(prefix)的路徑 (“路徑向量 (path vector)”協(xié)議)
這里所謂的"前綴"是指子網(wǎng)。
而且這里是路徑向量而不是RIP協(xié)議的距離向量,二者是不同的。 - 報文交換基于半永久的TCP連接
- 通告去往不同目的前綴(prefix)的路徑 (“路徑向量 (path vector)”協(xié)議)
- BGP報文:
- OPEN: 與peer建立TCP連接,并認證發(fā)送方
- UPDATE: 通告新路徑 (或撤銷原路徑)
- KEEPALIVE: 在無UPDATE時,保活連接;也用于對 OPEN請求的確認
- NOTIFICATION: 報告先前報文的差錯;也被用于關(guān)閉 連接
- 當(dāng)AS3通告一個前綴給AS1時:
- AS3承諾可以將數(shù)據(jù)報轉(zhuǎn)發(fā)給該子網(wǎng)
- AS3在通告中會聚合網(wǎng)絡(luò)前綴
7.8.2 BGP基礎(chǔ): 分發(fā)路徑信息
- 在3a與1c之間, AS3利用eBGP會話向AS1發(fā)送前綴可達性信息.
- 1c則可以利用iBGP向AS1內(nèi)的所有路由器分發(fā)新的前綴可達 性信息
- 1b可以(也可能不)進一步通過1b-到-2a的eBGP會話,向 AS2通告新的可達性信息
- 當(dāng)路由器獲得新的前綴可達性時,即在其轉(zhuǎn)發(fā)表中增加關(guān)于該前綴的入口(路由項)
7.8.3 路徑屬性與BGP路由(route)
- 通告的前綴信息包括BGP屬性
- 前綴+屬性= “路由”
- 兩個重要屬性:
- AS-PATH(AS路徑): 包含前綴通告所經(jīng)過的AS序列: e.g., AS 67, AS 17
- NEXT-HOP(下一跳): 開始一個AS-PATH的路由器接口,指向下一 跳AS.
- 可能從當(dāng)前AS到下一跳AS存在多條鏈路
如AS2中,此時熱土豆路由就派上用場了。
- 可能從當(dāng)前AS到下一跳AS存在多條鏈路
7.8.4 BGP路由選擇
- 網(wǎng)關(guān)路由器收到路由通告后,利用其輸入策略 (import policy)決策接受/拒絕該路由
- e.g., 從不將流量路由到AS x
- 基于策略(policy-based) 路由
- 路由器可能獲知到達某目的AS的多條路由,基于 以下準則選擇:
7.8.5 BGP路由選擇策略舉例
-
上圖的各組成元素的所代表的意思:
- A,B,C是提供商網(wǎng)絡(luò)/AS(provider network/AS)
- X,W,Y是客戶網(wǎng)絡(luò)(customer network/AS)
- W,Y是樁網(wǎng)絡(luò)(stub network/AS): 只與一個其他AS相連
- X是雙宿網(wǎng)絡(luò)(dual-homed network/AS): 連接兩個其他AS
- X不期望經(jīng)過他路由B到C的流量
- … 因此,X不會向B通告任何一條到達C的路由
-
上圖路由策略:
- A向B通告一條路徑:AW
- B向X通告路徑:BAW
- B是否應(yīng)該向C通告路徑BAW呢?
- 絕不! B路由CBAW的流量沒有任何“收益”, 因為W和C均不是B的客戶。
- B期望強制C通過A向W路由流量
- B期望只路由去往/來自其客戶的流量!
7.8.6 為什么采用不同的AS內(nèi)與AS間路由協(xié)議?
說明:
inter-AS: 自治系統(tǒng)間
inter-AS: 自治系統(tǒng)內(nèi)
-
策略(policy):
- inter-AS: 期望能夠管理控制流量如何被路由,誰路由 經(jīng)過其網(wǎng)絡(luò)等.
- intra-AS: 單一管理,無需策略決策
-
規(guī)模(scale):
- 層次路由節(jié)省路由表大小,減少路由更新流量
- 適應(yīng)大規(guī)模互聯(lián)網(wǎng)
-
性能(performance):
- intra-AS: 側(cè)重性能
- inter-AS: 策略主導(dǎo)
8 數(shù)據(jù)鏈路層
8.1 數(shù)據(jù)鏈路層服務(wù)
8.1.1 概述
術(shù)語:
- 主機和路由器:結(jié)點(nodes)
在數(shù)據(jù)鏈路層主機和路由器均被視作結(jié)點。 - 連接相鄰結(jié)點的通信信道:鏈路 (links)
- 有線鏈路(wired links)
- 無線鏈路(wireless links)
- 局域網(wǎng)(LANs)
- 鏈路層(第2層)數(shù)據(jù)分組:幀 (frame),封裝網(wǎng)絡(luò)層數(shù)據(jù)報
8.1.2 鏈路層服務(wù)
- 組幀(framing)
- 封裝數(shù)據(jù)報構(gòu)成數(shù)據(jù)幀,加首部和尾部
- 幀同步
- 鏈路接入(link access)
- 如果是共享介質(zhì),需要解決信道接入(channel access)
- 幀首部中的“MAC”地址,用于標識幀的源和目的
- 不同于IP地址!
- 相鄰結(jié)點間可靠交付
- 在低誤碼率的有線鏈路上很少采用 (如光纖,某些雙絞線等)
- 無線鏈路:誤碼率高,需要可靠交付
- 流量控制(flow control)
- 協(xié)調(diào)(pacing)相鄰的發(fā)送結(jié)點和接收結(jié)點
- 差錯檢測(error detection)
- 信號衰減和噪聲會引起差錯.
- 接收端檢測到差錯:
- 通知發(fā)送端重傳或者直接丟棄幀
- 差錯糾正(error correction)
- 接收端直接糾正比特差錯
- 全雙工和半雙工通信控制
- 全雙工:鏈路兩端結(jié)點同時雙向傳輸
- 半雙工:鏈路兩端結(jié)點交替雙向傳輸
8.1.3 鏈路層的具體實現(xiàn)?
- 由每個主機或路由器接口實現(xiàn)
- 鏈路層在“適配器” (即網(wǎng)絡(luò)接口卡-NIC)中實現(xiàn)或者在一個芯片上實現(xiàn)
- 以太網(wǎng)網(wǎng)卡,802.11網(wǎng)卡 ;以太網(wǎng)芯片組
- 實現(xiàn)鏈路層和物理層
- 鏈接主機的系統(tǒng)總線
- 由硬件、軟件與固件組成
8.1.4 網(wǎng)卡間通信
- 發(fā)送端:
- 將數(shù)據(jù)報封裝成幀
- 增加差錯檢測比特,實現(xiàn)可靠數(shù)據(jù)傳輸和流量控制等.
- 接收端:
- 檢測差錯,實現(xiàn)可靠數(shù)據(jù)傳輸和流量控制等
- 提取數(shù)據(jù)報,交付上層協(xié)議實體
8.2 差錯編碼
用于差錯檢測和差錯糾正。
差錯編碼是通過想方設(shè)法增加其漢明距離來達到差錯檢測和差錯糾正的。
注意:此圖只表示了差錯檢測,未表示差錯糾正。
8.2.1 差錯編碼的檢錯能力
- 差錯編碼可分為檢錯碼與糾錯碼
- 對于檢錯碼,如果編碼集的漢明距離ds=r+1ds=r+1ds=r+1,則該差錯編碼可以檢測rrr位的差錯
- 例如,編碼集 {0000,0101,1010,1111} 的漢明距離ds=2,可以 100%檢測1比特差錯
- 對于糾錯碼,如果編碼集的漢明距離ds=2r+1ds=2r+1ds=2r+1,則該差錯編碼可以糾正rrr位的差錯
- 例如,編碼集 {000000,010101,101010,111111} 的漢明距離ds=3 ,可以糾正1比特差錯,如100010糾正為101010。
8.2.2 奇偶校驗碼
無論是奇校驗還是偶校驗,都只能檢測奇位數(shù)錯誤而無法檢測偶位數(shù)錯誤。
補充材料:
奇偶校驗碼淺談 https://www.cnblogs.com/dushikang/p/8334776.html
8.2.3 Internet校驗和(Checksum)
- 發(fā)送端:
- 將“數(shù)據(jù)”(校驗內(nèi)容) 劃分為16位的二進制 “整數(shù)”序列
- 求和(sum):補碼求和 (最高位進位的“1”, 返回最低位繼續(xù)加)
- 校驗和(Checksum): sum的反碼
- 放入分組(UDP、TCP 、IP)的校驗和字段
- 接收端:
- 與發(fā)送端相同算法計算
- 計算得到的"checksum":
- 為16位全0(或sum為16位 全1):無錯
- 否則:有錯
8.2.4 循環(huán)冗余校驗碼(CRC)
檢錯能力更強大的差錯編碼。
-
CRC的原理:
- 將數(shù)據(jù)比特,D,視為一個二進制數(shù)
- 選擇一個r+1位的比特模式 (生成比特模式),G
- 目標:選擇r位的CRC比特,R,滿足
- <D,R>剛好可以被G整除(模2)
- 接收端檢錯:利用G除<D,R>,余式全0,無錯;否則,有錯!
- 可以檢測所有突發(fā)長度小于r+1位差錯。
-
廣泛應(yīng)用于實際網(wǎng)絡(luò) (以太網(wǎng),802.11 WiFi,ATM)
-
CRC舉例:
補充材料:
CRC校驗碼的計算示例
由以上分析可知,既然除數(shù)是隨機,或者按標準選定的,所以CRC校驗的關(guān)鍵是如何求出余數(shù),也就是CRC校驗碼。
下面以一個例子來具體說明整個過程。現(xiàn)假設(shè)選擇的CRC生成多項式為 G(X)=X4+X3+1G(X)=X4+X3+1G(X)=X4+X3+1 ,要求出二進制序列10110011的CRC校驗碼。下面是具體的計算過程:
8.3 多路訪問控制(MAC)協(xié)議
MAC協(xié)議決定了節(jié)點什么時候允許發(fā)送分組,而且通常控制對物理層的所有訪問。
-
兩類“鏈路”:
- 點對點鏈路
- 撥號接入的PPP
- 以太網(wǎng)交換機與主機間的點對點鏈路
- 廣播鏈路 (共享介質(zhì))
- 早期的總線以太網(wǎng)
- HFC的上行鏈路
- 802.11無線局域網(wǎng)
- 點對點鏈路
-
單一共享廣播信道
-
兩個或者兩個以上結(jié)點同時傳輸:干擾(interference)
- 沖突(collision)
- 結(jié)點同時接收到兩個或者多個信號→接收失敗!
- 沖突(collision)
-
多路訪問控制協(xié)議(multiple access control protocol)
- 采用分布式算法決定結(jié)點如何共享信道,即決策結(jié)點何時可以傳輸數(shù)據(jù)
- 必須基于信道本身,通信信道共享協(xié)調(diào)信息!
- 無帶外信道用于協(xié)調(diào)
8.3.1 理想MAC協(xié)議
給定:速率為R bps的廣播信道
期望:
- 無需特定結(jié)點協(xié)調(diào)
- 無需時鐘、時隙同步
8.3.2 MAC協(xié)議分類
三大類:
- 信道劃分(channel partitioning)MAC協(xié)議
- 多路復(fù)用技術(shù)
- TDMA、FDMA、CDMA、WDMA等
- 隨機訪問(random access)MAC協(xié)議
- 信道不劃分,允許沖突
- 采用沖突“恢復(fù)”機制
- 輪轉(zhuǎn)(“taking turns”)MAC協(xié)議
- 結(jié)點輪流使用信道
8.3.3 信道劃分MAC協(xié)議
TDMA
TDMA: time division multiple access
- “周期性”接入信道
- 每個站點在每個周期,占用固定長度的時隙(e.g.長度= 分組傳輸時間)
- 未用時隙空閑(idle)
- 例如:6-站點LAN,1,3,4傳輸分組,2,5,6空閑
如上圖所示,2、5、6是未被使用的,這造成了資源的浪費。
FDMA
FDMA: frequency division multiple access
- 信道頻譜劃分為若干頻帶(frequency bands)
- 每個站點分配一個固定的頻帶
- 無傳輸頻帶空閑
- 例如: 6站點LAN, 1,3,4頻帶傳輸數(shù)據(jù), 2,5,6頻帶空閑。
有些頻段是沒被使用的,這造成了資源的浪費。
8.3.5 隨機訪問MAC協(xié)議
- 當(dāng)結(jié)點要發(fā)送分組時:
- 利用信道全部數(shù)據(jù)速率R發(fā)送分組
- 沒有事先的結(jié)點間協(xié)調(diào)
- 兩個或多個結(jié)點同時傳輸:? “沖突”
- 隨機訪問MAC協(xié)議需要定義:
- 如何檢測沖突
- 如何從沖突中恢復(fù) (e.g., 通過延遲重傳)
- 典型的隨機訪問MAC協(xié)議:
- 時隙(sloted)ALOHA
- ALOHA,也稱純ALOHA
- CSMA、CSMA/CD、CSMA/CA
時隙ALOHA協(xié)議 (S-ALOHA)
- 假定:
- 所有幀大小相同
- 時間被劃分為等長的時隙 (每個時隙可以傳輸1個幀)
- 結(jié)點只能在時隙開始時刻發(fā)送幀
- 結(jié)點間時鐘同步
- 如果2個或2個以上結(jié)點在 同一時隙發(fā)送幀,結(jié)點即檢測到?jīng)_突
- 運行:
- 當(dāng)結(jié)點有新的幀時,在下 一個時隙(slot)發(fā)送
- 如果無沖突:該結(jié)點可以在下一個時隙繼續(xù)發(fā) 送新的幀
- 如果沖突:該結(jié)點在下 一個時隙以概率p重傳該幀,直至成功
- 當(dāng)結(jié)點有新的幀時,在下 一個時隙(slot)發(fā)送
-
優(yōu)點:
- 單個結(jié)點活動時,可以 連續(xù)以信道全部速率傳 輸數(shù)據(jù)
- 高度分散化:只需同步時隙
- 簡單
-
缺點:
- 沖突,浪費時隙
- 空閑時隙
- 結(jié)點也許能以遠小于分組傳輸時間檢測到?jīng)_突
- 時鐘同步
-
效率分析:
- 假設(shè): NNN個結(jié)點有很多幀待傳輸,每個結(jié)點在每個時隙均以概率p發(fā)送數(shù)據(jù)
- 對于給定的一個結(jié)點,在 一個時隙將幀發(fā)送成功的 概率= p(1?p)N?1p(1-p)^{N-1}p(1?p)N?1
- 對于任意結(jié)點成功發(fā)送幀的概率= Np(1?p)N?1Np(1-p)^{N-1}Np(1?p)N?1
- 最大效率: 求得使Np(1?p)N?1Np(1-p)^{N-1}Np(1?p)N?1最大的p*
- 對于很多結(jié)點,求 Np?(1?p?)N?1Np*(1-p*)^{N-1}Np?(1?p?)N?1當(dāng)N趨近無 窮時的極限,可得:
最大效率= 1/e = 0.37
ALOHA協(xié)議
- 非時隙(純)Aloha:更加簡單,無需同步
- 當(dāng)有新的幀生成時
- 立即發(fā)送
- 沖突可能性增大:
- 在t0時刻發(fā)送幀,會與在[t0?1,t0+1][t_0-1, t_0+1][t0??1,t0?+1](易損時間區(qū))期間其他結(jié)點發(fā)送的幀沖突
- 在t0時刻發(fā)送幀,會與在[t0?1,t0+1][t_0-1, t_0+1][t0??1,t0?+1](易損時間區(qū))期間其他結(jié)點發(fā)送的幀沖突
- 效率分析:
CSMA協(xié)議
- 載波監(jiān)聽多路訪問協(xié)議 CSMA (carrier sense multiple access)
- 發(fā)送幀之前,監(jiān)聽信道 (載波):
- 信道空閑:發(fā)送完整幀
- 信道忙:推遲發(fā)送
- 1-堅持CSMA
- 非堅持CSMA
- P-堅持CSMA
- 沖突可能仍然發(fā)生: 信號傳播延遲
- 繼續(xù)發(fā)送沖突幀:浪費信道資源
上圖是B和D同時監(jiān)聽到信道中無沖突,課這樣B和D又產(chǎn)生了沖突從而造成信道浪費。
CSMA/CD協(xié)議
特點:發(fā)送分組的時候保持監(jiān)聽,不發(fā)送的時候斷開監(jiān)聽。
- CSMA/CD: CSMA with Collision Detection
- 短時間內(nèi)可以檢測到?jīng)_突
- 沖突后傳輸中止,減少信道浪費
- 沖突檢測:
- 有線局域網(wǎng)易于實現(xiàn):測量信號強度,比較發(fā)射信號與接收信號
- 無線局域網(wǎng)很難實現(xiàn):接收信號強度淹沒在本地發(fā)射信號強度下
- 實現(xiàn)CSMA/CD的前提
例題:
- CSMA/CD的效率
- TpropT_{prop}Tprop? = LAN中2個結(jié)點間的最大傳播延遲
- ttranst_{trans}ttrans? = 最長幀傳輸延遲
效率=11+5tprop/ttrans\textbf效\textbf率\textbf =\frac 1{1+5t_{prop}/t_{trans}}效率=1+5tprop?/ttrans?1?
- tpropt_{prop}tprop? 趨近于0或者ttranst_{trans}ttrans?趨近于∞∞∞時,效率趨近于1
- 遠優(yōu)于ALOHA,并且簡單、分散!
8.3.6 輪轉(zhuǎn)訪問MAC協(xié)議
- 信道劃分MAC協(xié)議:
- 網(wǎng)絡(luò)負載重時,共享信道效率高,且公平
- 網(wǎng)絡(luò)負載輕時,共享信道效率低!
- 隨機訪問MAC協(xié)議:
- 網(wǎng)絡(luò)負載輕時,共享信道效率高,單個結(jié)點可以利用 信道的全部帶寬
- 網(wǎng)絡(luò)負載重時,產(chǎn)生沖突開銷
- 輪轉(zhuǎn)訪問MAC協(xié)議: 綜合兩者的優(yōu)點!
輪轉(zhuǎn)訪問MAC協(xié)議簡介
- 輪詢(polling):
- 主結(jié)點輪流“邀請” 從屬結(jié)點發(fā)送數(shù)據(jù)
- 典型應(yīng)用: “啞(dumb)” 從屬 設(shè)備
輪
- 問題:
- 輪詢開銷
- 等待延遲
如下圖,每個slave需要等到master叫到(輪著叫的)才能發(fā)送數(shù)據(jù)。
- 單點故障
- 令牌傳遞(token passing):
- 控制令牌依次從一個結(jié) 點傳遞到下一個結(jié)點.
- 令牌:特殊幀
- 控制令牌依次從一個結(jié)點傳遞到下一個結(jié)點.
- 令牌:特殊幀
- 問題:
- 令牌開銷
- 等待延遲
假設(shè)令牌剛從這臺機器發(fā)出,又得輪一圈才能回來。
- 單點故障
8.3.7 MAC協(xié)議總結(jié)
- 信道劃分MAC協(xié)議:時間、頻帶、碼片劃分
- TDMA、FDMA、CDMA
- 隨機訪問MAC協(xié)議:
- ALOHA, S-ALOHA, CSMA, CSMA/CD
- CSMA/CD應(yīng)用于以太網(wǎng)
- CSMA/CA應(yīng)用802.11無線局域網(wǎng)
- 輪轉(zhuǎn)訪問MAC協(xié)議:
- 綜合了上面兩個MAC協(xié)議的優(yōu)點,算是折中的一種存在。
- 主結(jié)點輪詢;令牌傳遞
- 藍牙、FDDI、令牌環(huán)網(wǎng)
9 局域網(wǎng)
9.1 ARP協(xié)議
9.1.1 ARP協(xié)議簡介
- 32位IP地址:
- 接口的網(wǎng)絡(luò)層地址
- 用于標識網(wǎng)絡(luò)層(第3層)分組,支持分組轉(zhuǎn)發(fā)
- MAC地址(或稱LAN地址,物理地址,以太網(wǎng)地址) :
- 作用:用于局域網(wǎng)內(nèi)標識一個幀從哪個接口發(fā)出,到達哪個物理相連的其他接口
- 48位MAC地址(用于大部分LANs),固化在網(wǎng)卡的 ROM中,有時也可以軟件設(shè)置
- e.g.: 1A-2F-BB-76-09-AD
以十六進制表示。
- 局域網(wǎng)中的每塊網(wǎng)卡都有一個唯一的MAC 地址
- MAC地址由IEEE統(tǒng)一管理與分配
- 網(wǎng)卡生產(chǎn)商購買MAC地址空間(前24比特)
- 類比:
- MAC地址:身份證號
- IP地址:郵政地址
- MAC地址是“平面”地址: ? 可“攜帶”
- 可以從一個LAN移到另一個LAN
- IP地址是層次地址: ? 不可“攜帶”
- IP地址依賴于結(jié)點連接到哪個子網(wǎng)
9.1.2 ARP: 地址解析協(xié)議
9.1.3 ARP協(xié)議在同一局域網(wǎng)內(nèi)的工作機制(尋址)
- A想要給同一局域網(wǎng)內(nèi)的B發(fā)送數(shù)據(jù)報
- B的MAC地址不在A的ARP表中.
- A廣播ARP查詢分組,其中包含B的IP地址
- 目的MAC地址 = FF-FFFF-FF-FF-FF
- LAN中所有結(jié)點都會接收ARP查詢
- B接收ARP查詢分組,IP地址匹配成功,向A應(yīng)答B(yǎng)的MAC地址
- 利用單播幀向A發(fā)送應(yīng)答
- A在其ARP表中,緩存B的IP-MAC地址對,直至超時
- 超時后,再次刷新
- ARP是“即插即用”協(xié)議:
- 結(jié)點自主創(chuàng)建ARP表, 無需干預(yù)
本小節(jié)是在同一個LAN中ARP工作機制,下一小節(jié)講跨LAN時ARP工作機制。
9.1.4 ARP協(xié)議在不同局域網(wǎng)間的工作機制(尋址)
- 通信過程: A通過路由器R向B發(fā)送數(shù)據(jù)報
- 關(guān)注尋址:IP地址(數(shù)據(jù)報中)和MAC地址(幀中)
- 假設(shè)A知道B的IP地址(怎么知道的?)
- 假設(shè)A知道第一跳路由器R (左)接口IP地址 (怎么知道的?)
- 假設(shè)A知道第一跳路由器R (左)接口MAC地址 (怎么知道的?)
A是如何確定要把數(shù)據(jù)發(fā)送到R的左邊接口的?
默認網(wǎng)關(guān),也稱“第一跳路由器”。
- 在上圖中,A將分組發(fā)往B的過程詳解:
- A構(gòu)造IP數(shù)據(jù)報,其中源IP地址是A的IP地址,目的IP地址是B的IP地址
- A構(gòu)造鏈路層幀,其中源MAC地址是A的MAC地址,目的MAC地址是R(左)接口的MAC地址,封裝A到B的IP數(shù)據(jù)報。
- 幀從A發(fā)送至R
- R接收幀,提取IP數(shù)據(jù)報,傳遞給上層IP協(xié)議
- R轉(zhuǎn)發(fā)IP數(shù)據(jù)報(源和目的IP地址不變!)
- R創(chuàng)建鏈路層幀,其中源MAC地址是R(右)接口的MAC地址,目 的MAC地址是B的MAC地址,封裝A到B的IP數(shù)據(jù)報。
- R轉(zhuǎn)發(fā)IP數(shù)據(jù)報(源和目的IP地址不變!)
- R創(chuàng)建鏈路層幀,其中源MAC地址是R (右)接口的MAC地址,目的MAC地址是B的MAC地址,封裝A到B的IP數(shù)據(jù)報。
通過上面過程,可以發(fā)現(xiàn)IP src和IP dest是不會改變的,因為在網(wǎng)絡(luò)層將數(shù)據(jù)報遞交給鏈路層時數(shù)據(jù)報會被封裝起來。
9.2 以太網(wǎng)
何為以太?
以太是古希臘哲學(xué)家亞里士多德所設(shè)想的一種物質(zhì)。是物理學(xué)史上一種假想的物質(zhì)觀念,其內(nèi)涵隨物理學(xué)發(fā)展而演變。“以太”一詞是英文Ether或Aether的音譯。古希臘人以其泛指青天或上層大氣。在亞里士多德看來,物質(zhì)元素除了水、火、氣、土之外,還有一種居于天空上層的以太。在科學(xué)史上,它起初帶有一種神秘色彩。后來人們逐漸增加其內(nèi)涵,使它成為某些歷史時期物理學(xué)家賴以思考的假想物質(zhì)。
以太是古希臘哲學(xué)家亞里士多德所設(shè)想的一種物質(zhì)。19世紀的物理學(xué)家,認為它是一種曾被假想的電磁波的傳播媒質(zhì)。但后來的實驗和理論表明,如果假定“以太”的不存在,很多物理現(xiàn)象可以有更為簡單的解釋。
9.2.1 以太網(wǎng)
- “統(tǒng)治地位”的有線LAN技術(shù):
- 造價低廉(NIC不足¥100.00)
- 應(yīng)用最廣泛的LAN技術(shù)
- 比令牌局域網(wǎng)和ATM等,簡單、便宜
- 滿足網(wǎng)絡(luò)速率需求:10 Mbps – 10 Gbps
以太網(wǎng):物理拓撲
- 總線(bus): 上世紀90年代中期前流行
- 所有結(jié)點在同一沖突域(collision domain) (可能彼此沖突)
- 星型(star): 目前主流網(wǎng)絡(luò)拓撲
- 中心交換機(switch)
- 每個結(jié)點一個單獨沖突域(結(jié)點間彼此不沖突)
以太網(wǎng):不可靠、無連接服務(wù)
- 無連接(connectionless): 發(fā)送幀的網(wǎng)卡與接 收幀的網(wǎng)卡間沒有“握手”過程
- 不可靠(unreliable): 接收網(wǎng)卡不向發(fā)送網(wǎng)卡進行確認
- 差錯幀直接丟棄,丟棄幀中的數(shù)據(jù)恢復(fù)依靠高 層協(xié)議 (e.g., TCP),否則,發(fā)生數(shù)據(jù)丟失
- 以太網(wǎng)的MAC協(xié)議: 采用二進制指數(shù)退避算 法的CSMA/CD
以太網(wǎng)CSMA/CD算法
- 第m次連續(xù)沖突后:
? 取n = Min(m, 10)
? NIC 從{0,1,2, …, 2n-1}中隨機選擇一個數(shù)K
? NIC等待K?512比特的傳輸 延遲時間,再返回第2步 - 連續(xù)沖突次數(shù)越多,平均等待時間越長。
以太網(wǎng)幀結(jié)構(gòu)
發(fā)送端網(wǎng)卡將IP數(shù)據(jù)報(或其他網(wǎng)絡(luò)層協(xié)議分組)封裝到以太網(wǎng)幀中:
- 前導(dǎo)碼(Preamble)(8B):
- 7個字節(jié)的10101010,第8字節(jié)為10101011
- 用于發(fā)送端與接收端的時鐘同步
- 目的MAC地址、源MAC地址(各6B):
- 如果網(wǎng)卡的MAC地址與收到的幀的目的MAC地址匹配,或者幀的目的MAC地址為廣播地址(FF-FF-FF-FF-FF-FF),則網(wǎng)卡接收該幀,并將其封裝的網(wǎng)絡(luò)層分組交給相應(yīng)的網(wǎng)絡(luò)層協(xié)議。
- 否則,網(wǎng)卡丟棄(不接收)該幀。
- 類型(Type)(2B):
指示幀中封裝的是哪種高層協(xié)議的分組 (如,IP數(shù)據(jù)報、Novell IPX數(shù)據(jù)報、AppleTalk數(shù)據(jù)報等) - 數(shù)據(jù)(Data)(46-1500B):
指上層協(xié)議載荷。- R=10Mbps,RTTmax=512μs,Lmin / R = RTTmax
- Lmin=512bits=64B,Datamin=Lmin-18=46B
- CRC(4B): 循環(huán)冗余校驗碼
- 丟棄差錯幀
- 丟棄差錯幀
802.3以太網(wǎng)標準: 鏈路與物理層
- 許多不同的以太網(wǎng)標準
- 相同的MAC協(xié)議和幀格式
- 不同速率: 2 Mbps, 10 Mbps, 100 Mbps, 1Gbps, 10G bps
- 不同物理介質(zhì): 光纖, 線纜
科普:何為雙絞線?
雙絞線(twisted pair,TP)是一種綜合布線工程中最常用的傳輸介質(zhì),是由兩根具有絕緣保護層的銅導(dǎo)線組成的。把兩根絕緣的銅導(dǎo)線按一定密度互相絞在一起,每一根導(dǎo)線在傳輸中輻射出來的電波會被另一根線上發(fā)出的電波抵消,有效降低信號干擾的程度。
雙絞線一般由兩根22~26號絕緣銅導(dǎo)線相互纏繞而成,“雙絞線”的名字也是由此而來。實際使用時,雙絞線是由多對雙絞線一起包在一個絕緣電纜套管里的。如果把一對或多對雙絞線放在一個絕緣套管中便成了雙絞線電纜 ,但日常生活中一般把“雙絞線電纜”直接稱為“雙絞線”。
與其他傳輸介質(zhì)相比,雙絞線在傳輸距離,信道寬度和數(shù)據(jù)傳輸速度等方面均受到一定限制,但價格較為低廉。
- 原理
雙絞線是由一對相互絕緣的金屬導(dǎo)線絞合而成。采用這種方式,不僅可以抵御一部分來自外界的電磁波干擾,也可以降低多對絞線之間的相互干擾。把兩根絕緣的導(dǎo)線互相絞在一起,干擾信號作用在這兩根相互絞纏在一起的導(dǎo)線上是一致的(這個干擾信號叫做共模信號),在接收信號的差分電路中可以將共模信號消除,從而提取出有用信號(差模信號) 。
9.2.2 交換機
- 鏈路層設(shè)備
- 存儲-轉(zhuǎn)發(fā)以太網(wǎng)幀
- 檢驗到達幀的目的MAC地址,選擇性 (selectively) 向一個或多個輸出鏈路轉(zhuǎn)發(fā)幀
- 利用CSMA/CD訪問鏈路,發(fā)送幀
- 透明(transparent)
- 主機感知不到交換機的存在
- 即插即用(plug-and-play)
- 自學(xué)習(xí)(self-learning)
- 交換機無需配置
交換機: 多端口間同時傳輸
注意:下面的圖中用英文字母簡單代替MAC地址以便描述。
- 主機利用獨享(dedicated) 鏈路直接連接交換機
- 交換機緩存幀
- 交換機在每段鏈路上利用 CSMA/CD收發(fā)幀,但無 沖突,且可以全雙工
- 每段鏈路一個獨立的沖突域
- 交換(switching):A-A’與 B-B’的傳輸可以同時進行,沒有沖突
交換機轉(zhuǎn)發(fā)表:交換表
Q: 交換機怎么知道A’可以通過接口4到達,而B’可以通過接口5 到達?
- A: 每個交換機有一個交換表 (switch table), 每個入口(entry):
- (主機的MAC地址, 到達主機的接 口, 時間戳)
- 看起來很像路由表!
- Q: 交換表入口信息如何創(chuàng)建和 維護的那?
- 類似于路由協(xié)議?
- 類似于路由協(xié)議?
交換機: 自學(xué)習(xí)
- 交換機通過自學(xué)習(xí),獲知到達主機的接口信息
- 當(dāng)收到幀時,交換機“學(xué)習(xí)”到發(fā)送幀的主機(通 過幀的源MAC地址),位于收到該幀的接口所連接 的LAN網(wǎng)段
- 將發(fā)送主機MAC地址/接口信息記錄到交換表中
交換機: 幀過濾/轉(zhuǎn)發(fā)
當(dāng)交換機收到幀:
自學(xué)習(xí)與轉(zhuǎn)發(fā)過程舉例
- 目的MAC地址A’,位置未知: 泛洪
- 目的MAC地址A,位置已知: 選擇性轉(zhuǎn)發(fā)
交換機互聯(lián)
- 交換機可以互聯(lián)
Q:當(dāng)A向G發(fā)送幀時,S1怎么知道通過S4轉(zhuǎn)發(fā)?S4又怎么 知道通過S3轉(zhuǎn)發(fā)?
A: 自學(xué)習(xí)!(工作過程與單一交換機情形相同!) (通過泛洪自學(xué)習(xí)。)
多交換機自學(xué)習(xí)舉例
假設(shè)C向H發(fā)送幀,H向C發(fā)送應(yīng)答幀
Q:請給出S1, S2, S3, S4的交換表,并說明幀的轉(zhuǎn)發(fā)過程?
組織機構(gòu)(Institutional)網(wǎng)絡(luò)
9.2.3 交換機 vs. 路由器
兩者均為存儲-轉(zhuǎn)發(fā)設(shè)備:
- 路由器: 網(wǎng)絡(luò)層設(shè)備 (檢測 網(wǎng)絡(luò)層分組首部)
- 交換機: 鏈路層設(shè)備 (檢測 鏈路層幀的首部)
二者均使用轉(zhuǎn)發(fā)表:
- 路由器: 利用路由算法(路 由協(xié)議)計算(設(shè)置), 依據(jù)IP地址
- 交換機: 利用自學(xué)習(xí)、泛洪 構(gòu)建轉(zhuǎn)發(fā)表, 依據(jù)MAC地址
9.2.4 網(wǎng)絡(luò)設(shè)備對比
所謂 直通傳輸 指的是邊收邊發(fā)。
9.2.5 虛擬局域網(wǎng)(VLAN)
VLANs的研發(fā)動機
考慮一下情形:
- CS用戶遷移到EE,但是希望連接至CS交換機, 怎么辦?
- 單一廣播域:
- 所有第2層廣播流量(ARP, DHCP, 未知目的MAC地址 位置)必須穿越整個LAN
- 安全/隱私、效率問題
VLANs
基于端口的VLAN
- 流量隔離(traffic isolation): 去往/來自端口1-8的幀只到達端口1-8
- 也可以基于MAC地址定義 VLAN, 而不是交換端口
- 動態(tài)成員: 端口可以動態(tài)分 配給不同VLAN
路由器 - 在VLAN間轉(zhuǎn)發(fā): 通過路由(就像在 獨立的交換機之間) 實踐中,廠家會將交換機與路由器集成在一起
跨越多交換機的VLAN
- 多線纜連接
- 每個線纜連接一個VLAN
- 中繼端口(trunk port): 在跨越多個物理交換機定義的VLAN 承載幀
- 為多VLAN轉(zhuǎn)發(fā)802.1幀容易產(chǎn)生歧義 (必須攜帶VLAN ID信息)
- 802.1q協(xié)議為經(jīng)過中繼端口轉(zhuǎn)發(fā)的幀增加/去除額外的首部域
802.1Q VLAN幀格式
9.3 PPP協(xié)議
9.3.1 點對點數(shù)據(jù)鏈路控制
- 一個發(fā)送端,一個接收端,一條鏈路:比廣播 鏈路容易
- 無需介質(zhì)訪問控制(Media Access Control)
- 無需明確的MAC尋址
- e.g., 撥號鏈路, ISDN鏈路
- 常見的點對點數(shù)據(jù)鏈路控制協(xié)議:
- HDLC: High Level Data Link Control
- PPP (Point-to-Point Protocol)
9.3.2 PPP設(shè)計需求[RFC 1557]
- 組幀:將網(wǎng)絡(luò)層數(shù)據(jù)報封裝到數(shù)據(jù)鏈路層幀中
- 可以同時承載任何網(wǎng)絡(luò)層協(xié)議分組(不僅IP數(shù)據(jù)報)
- 可以向上層實現(xiàn)分用(多路分解)
- 比特透明傳輸:數(shù)據(jù)域必須支持承載任何比特 模式
- 差錯檢測:(無糾正)
- 連接活性(connection liveness)檢測:檢測、并 向網(wǎng)絡(luò)層通知鏈路失效
- 網(wǎng)絡(luò)層地址協(xié)商:端結(jié)點可以學(xué)習(xí)/配置彼此網(wǎng) 絡(luò)地址
9.3.3 PPP無需支持的功能
- 無需差錯糾正/恢復(fù)
- 無需流量控制
- 不存在亂序交付
- 無需支持多點鏈路
9.3.4 PPP數(shù)據(jù)幀
- 標志(Flag): 定界符(delimiter)
- 地址(Address): 無效(僅僅是一個選項)
- 控制(Control): 無效;未來可能的多種控制域
- 協(xié)議(Protocol): 上層協(xié)議 (eg, PPP-LCP, IP, IPCP, etc)
- 信息(info): 上層協(xié)議分組數(shù)據(jù)
- 校驗(check): CRC校驗,用于差錯檢測
9.3.5 字節(jié)填充(Byte Stuffing)
- “數(shù)據(jù)透明傳輸”需求: 數(shù)據(jù)域必須允許包含標志模式<01111110>
- Q: 如何判斷該作為數(shù)據(jù)接收,還是作為標志處理?
- 發(fā)送端: 在數(shù)據(jù)中的<01111110>和 <01111101>字節(jié)前添加額外的字節(jié) <01111101> (“填充(stuffs)”)
- 接收端:
- 單個字節(jié)<01111101>表示一個填充字節(jié)
- 連續(xù)兩個字節(jié)<01111101>:丟棄第1個,第2個作為數(shù)據(jù)接收
- 單個字節(jié)<01111110>: 標志字節(jié)
- <01111110><01111101>字節(jié)表示此時的<01111110>是數(shù)據(jù)而不是標志
9.3.6 PPP數(shù)據(jù)控制協(xié)議
在交換網(wǎng)絡(luò)層數(shù)據(jù)之前,PPP數(shù)據(jù)鏈路兩端必須:
- 配置PPP鏈路
- 最大幀長
- 身份認證(authentication)
- etc.
- 學(xué)習(xí)/配置網(wǎng)絡(luò)層信息
- 對于IP協(xié)議: 通過交換IPCP 協(xié)議 (IP Control Protocol ) 報文 (IP分組首部的“上層 協(xié)議”字段取值: 8021),完成IP地址等相關(guān)信息配置
- PPP協(xié)議狀態(tài):
9.4 802.11無線局域網(wǎng)
9.4.1 IEEE 802.11無線局域網(wǎng)
- 802.11b
- 2.4-2.5GHz免費頻段 (unlicensed spectrum)
- 最高速率:11 Mbps
- 物理層采用直接序列擴頻 (DSSS)技術(shù)
- 所有主機使用相同的碼 片序列
- 802.11a
- 5-6 GHz頻段
- 最高速率:54 Mbps
- 802.11g
- 2.4-2.5 GHz頻段
- 最高速率:54 Mbps
- 802.11n: 多天線(MIMO)
- 2.4-2.5 GHz頻段
- 最高速率:600 Mbps
9.4.2 IEEE 802.11體系結(jié)構(gòu)
- 無線主機與基站通信
- 基站(base station) = 訪問點(access point-AP)
- 基本服務(wù)集BSS(Basic Service Set),也稱為單元(cell)
- 基礎(chǔ)設(shè)施網(wǎng)絡(luò)模式: ?
- 無線主機
- AP: 基站
- 基礎(chǔ)設(shè)施網(wǎng)絡(luò)模式: ?
- 自組網(wǎng)(ad hoc)模式:
- 只有主機
9.4.3 802.11:信道與AP關(guān)聯(lián)
- 802.11b: 2.4GHz-2.485GHz頻譜劃分為11個不同 頻率的信道
- 每個AP選擇一個頻率(信道)
- 存在干擾可能: 相鄰的AP可能選擇相同的信道!
- 主機: 必須與某個AP關(guān)聯(lián)(associate)
- 掃描信道,監(jiān)聽包含AP名稱(服務(wù)集標識符-SSID )和MAC地址的信標(beacon)幀
- 選擇一個AP進行關(guān)聯(lián)
- 可能需要進行身份認證
- 典型情形:運行DHCP獲取IP地址等信息
9.4.4 802.11AP關(guān)聯(lián):被動掃描與主動掃描
- 被動掃描(scanning):
- 各AP發(fā)送信標幀
- 主機(H1)向選擇的AP發(fā)送關(guān)聯(lián)請求幀
- AP向主機(H1)發(fā)送關(guān)聯(lián)響應(yīng)幀
- 主動掃描:
- 主機(H1)主動廣播探測請求幀 (Probe Request Frame)
- AP發(fā)送探測響應(yīng)幀(Probe Response Frame)
- 主機(H1)向選擇的AP發(fā)送關(guān)聯(lián)請求幀
- AP向主機(H1)發(fā)送關(guān)聯(lián)響應(yīng)幀
9.4.5 802.11:多路訪問控制
- 避免沖突: 2+結(jié)點同時傳輸
- 802.11: CSMA – 發(fā)送數(shù)據(jù)前監(jiān)聽信道
- 避免與正在進行傳輸?shù)钠渌Y(jié)點沖突
- 802.11: 不能像CSMA/CD那樣,邊發(fā)送、邊檢測沖突!
- 無線信道很難實現(xiàn)
- 無法偵聽到所有可能的沖突:隱藏站、信號衰落
- 目標: 避免沖突(avoid collisions)-CSMA/C(ollision)A(voidance)
9.4.6 IEEE 802.11 MAC協(xié)議: CSMA/CA
-
802.11 sender
1
2
-
802.11 receiver
9.4.7 IEEE 802.11 MAC協(xié)議: CSMA/CA
基本思想:允許發(fā)送端“預(yù)約”(reserve)信道,而不是隨機發(fā)送數(shù)據(jù)幀,從而避免長數(shù)據(jù)幀的沖突。
- 發(fā)送端首先利用CSMA向BS發(fā)送一個很短的RTS (request-to-send)幀
- RTS幀仍然可能彼此沖突 (但RTS幀很短)
- BS廣播一個CTS(clear-to-send)幀作為對RTS的響應(yīng)
- CTS幀可以被所有結(jié)點接收
- 消除隱藏站影響
- 發(fā)送端可以發(fā)送數(shù)據(jù)幀
- 其他結(jié)點推遲發(fā)送
9.4.8 沖突避免(CA): RTS-CTS交換
9.4.9 IEEE 802.11 MAC幀
- IEEE 802.11數(shù)據(jù)幀地址
上圖中的4個address。- 802.11數(shù)據(jù)幀有4個地址字段
- 地址4:用于自組網(wǎng)絡(luò)
- 地址1~地址3:
給一個例子說明地址1~地址3是如何起作用的:
總結(jié)
以上是生活随笔為你收集整理的计算机网络核心知识(中)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 作者:沈志宏(1977-),男,博士,中
- 下一篇: markdown编辑模式添加除水印图片方