【計(jì)算機(jī)網(wǎng)絡(luò):自頂向下方法 第7版 | 中科大 】
第4章 網(wǎng)絡(luò)層 : 數(shù)據(jù)平面
4.1 導(dǎo)論
網(wǎng)絡(luò)層服務(wù)
網(wǎng)絡(luò)層功能:
- ?轉(zhuǎn)發(fā): 將分組從路由器 的輸入接口轉(zhuǎn)發(fā)到合適 的輸出接口 (局部)
- ?路由: 使用路由算法來 決定分組從發(fā)送主機(jī)到 目標(biāo)接收主機(jī)的路徑 (全局 )
- ?路由選擇算法
- ?路由選擇協(xié)議
數(shù)據(jù)平面
- ? 本地,每個(gè)路由器功能
- ? 決定從路由器輸入端口 到達(dá)的分組如何轉(zhuǎn)發(fā)到
輸出端口
- ? 轉(zhuǎn)發(fā)功能:
- 傳統(tǒng)方式:基于目標(biāo) 地址+轉(zhuǎn)發(fā)表
- SDN方式:基于多個(gè) 字段 + 流
控制平面
- 網(wǎng)絡(luò)范圍內(nèi)的邏輯
- 決定數(shù)據(jù)報(bào)如何在路由器之間 路由,決定數(shù)據(jù)報(bào)從源到目標(biāo) 主機(jī)之間的端到端路徑
- 2個(gè)控制平面方法:
- 傳統(tǒng)的路由算法: 在路由器 中被實(shí)現(xiàn)
- software-defined networking (SDN): 在遠(yuǎn)程的服務(wù)器中 實(shí)現(xiàn)
傳統(tǒng)方式:路由和轉(zhuǎn)發(fā)的相互作用 Vs SDN方式:邏輯集中的控制平面
- 傳統(tǒng)方式
- SDN 方式
網(wǎng)絡(luò)服務(wù)模型
- ?在某些網(wǎng)絡(luò)架構(gòu)中是第三個(gè)重要的功能 ?ATM, frame relay, X.25
- ?在分組傳輸之前,在兩個(gè)主機(jī)之間,在通過一些 路由器所構(gòu)成的路徑上建立一個(gè)網(wǎng)絡(luò)層連接 ?涉及到路由器
- ?網(wǎng)絡(luò)層和傳輸層連接服務(wù)區(qū)別:
- 網(wǎng)絡(luò)層: 在2個(gè)主機(jī)之間,涉及到路徑上的一些路由器
- 傳輸層: 在2個(gè)進(jìn)程之間,很可能只體現(xiàn)在端系統(tǒng)上 (TCP連接)
Q: 從發(fā)送方主機(jī)到接收方主機(jī)傳輸數(shù)據(jù)報(bào)的“通道” ,網(wǎng)絡(luò)提供什么樣的服務(wù)模型?
- 對(duì)于單個(gè)數(shù)據(jù)報(bào)的服務(wù): ?可靠傳送 ?延遲保證,如:少于 40ms的延遲
- 對(duì)于數(shù)據(jù)報(bào)流的服務(wù): ?保序數(shù)據(jù)報(bào)傳送 ?保證流的最小帶寬 ?分組之間的延遲差
4.2 路由器組成
概況
- 路由:運(yùn)行路由選擇算法/協(xié)議 (RIP, OSPF, BGP)-生成 路由表
- 轉(zhuǎn)發(fā):從輸入到輸出鏈路交換數(shù)據(jù)報(bào)-根據(jù)路由表進(jìn)行分組 的轉(zhuǎn)發(fā)
輸入端口功能
- 基于目標(biāo)的轉(zhuǎn)發(fā): 如果地址范圍如果沒有劃分的特別規(guī)整,會(huì)發(fā)生什么?
- **最長(zhǎng)前綴匹配
longest prefix matching Destination Address Range**
: 當(dāng)給定目標(biāo)地址查找轉(zhuǎn)發(fā)表時(shí),采用最長(zhǎng)地址前 綴匹配的目標(biāo)地址表項(xiàng) . (IP地址部分詳解 )
輸入端口緩存
交換結(jié)構(gòu)
- 將分組從輸入緩沖區(qū)傳輸?shù)胶线m的輸出端口
- 交換速率:分組可以按照該速率從輸入傳輸?shù)捷?出
- 運(yùn)行速度經(jīng)常是輸入/輸出鏈路速率的若干倍
- N 個(gè)輸入端口:交換機(jī)構(gòu)的交換速度是輸入線路速度的N倍比較理想,才不會(huì)成為瓶頸
? 3種典型的交換機(jī)構(gòu)
第一代路由器
- 在CPU直接控制下的交換,采用傳統(tǒng)的計(jì)算機(jī)
- 分組被拷貝到系統(tǒng)內(nèi)存,CPU從分組的頭部提取出目標(biāo) 地址,查找轉(zhuǎn)發(fā)表,找到對(duì)應(yīng)的輸出端口,拷貝到輸出 端口
- 轉(zhuǎn)發(fā)速率被內(nèi)存的帶寬限制 (數(shù)據(jù)報(bào)通過BUS兩遍)
- 一次只能轉(zhuǎn)發(fā)一個(gè)分組
通過總線交換
- 數(shù)據(jù)報(bào)通過共享總線,從輸入端 口轉(zhuǎn)發(fā)到輸出端口
-
總線競(jìng)爭(zhēng)
: 交換速度受限于總線 帶寬 -
1
次處理一個(gè)分組 -
1 Gbps bus
, Cisco 1900; 32 Gbps bus, Cisco 5600;對(duì)于接 入或企業(yè)級(jí)路由器,速度足夠( 但不適合區(qū)域或骨干網(wǎng)絡(luò))
通過互聯(lián)網(wǎng)絡(luò)(crossbar等)的交換
? 同時(shí)并發(fā)轉(zhuǎn)發(fā)多個(gè)分組,克服總線帶寬限制
? Banyan(榕樹)網(wǎng)絡(luò),crossbar(縱橫) 和其它的互聯(lián)網(wǎng)絡(luò)被開發(fā),將多個(gè)處理 器連接成多處理器
? 當(dāng)分組從端口A到達(dá),轉(zhuǎn)給端口Y;控 制器短接相應(yīng)的兩個(gè)總線
? 高級(jí)設(shè)計(jì):將數(shù)據(jù)報(bào)分片為固定長(zhǎng)度的 信元,通過交換網(wǎng)絡(luò)交換
輸出端口
? 假設(shè)交換速率Rswitch是Rline的N倍(N:輸入端口的數(shù)量)
? 當(dāng)多個(gè)輸入端口同時(shí)向輸出端口發(fā)送時(shí),緩沖該分組(當(dāng)通 過交換網(wǎng)絡(luò)到達(dá)的速率超過輸出速率則緩存)
? 排隊(duì)帶來延遲,由于輸出端口緩存溢出則丟棄數(shù)據(jù)報(bào)!
調(diào)度機(jī)制
- ?調(diào)度: 選擇下一個(gè)要通過鏈路傳輸?shù)姆纸M
FIFO (first in first out) scheduling: 按照 分組到來的次序發(fā)送
- ? 丟棄策略: (隊(duì)列滿的時(shí)候 )
- ?tail drop: 丟棄剛到達(dá)的分組
- ?priority: 根據(jù)優(yōu)先權(quán)丟失/移除分組
- ?random: 隨機(jī)地丟棄/移除
調(diào)度策略:優(yōu)先權(quán)
- 優(yōu)先權(quán)調(diào)度:發(fā)送最高優(yōu)先 權(quán)的分組。
- ?多類,不同類別有不同的 優(yōu)先權(quán)。
- 類別可能依賴于標(biāo)記或者其他的頭部字段, e.g. IP source/dest, port numbers, ds,etc.
- 先傳高優(yōu)先級(jí)的隊(duì)列中的分 組,除非沒有
- 高(低)優(yōu)先權(quán)中的分組傳 輸次序:FIFO
調(diào)度策略:其他的
Round Robin (RR) scheduling:
- 多類
- ?循環(huán)掃描不同類型的隊(duì)列, 發(fā)送完一類的一個(gè)分組 ,再發(fā)送下一個(gè)類的一個(gè)分組,循環(huán)所有類
- Weighted Fair Queuing (WFQ) : 每個(gè)類在每一個(gè)循環(huán)中獲得不同權(quán)重的服務(wù)量
4.3 IP :Internet Protocol
IP:Internet Protocol
IPv4數(shù)據(jù)報(bào)結(jié)構(gòu)
-
版本(Version, 4bit)
對(duì)于IPv4,字段的值是4。 -
首部長(zhǎng)度(Header Length, IHL, 4bit)
首部長(zhǎng)度說明首部有多少32位字(4字節(jié))。一般為5,相當(dāng)于5*4=20字節(jié)。 -
服務(wù)類別(Type Of Service,8bit)
-
報(bào)文長(zhǎng)度(Length, 16bit)
IP首部+數(shù)據(jù)部分的總長(zhǎng)度 -
標(biāo)識(shí)(Identification, 16bit)
用于在IP層對(duì)數(shù)據(jù)報(bào)進(jìn)行分片的時(shí)候,標(biāo)識(shí)數(shù)據(jù)包。 -
標(biāo)志 (Flags, 3bit )
這個(gè)3位字段用于控制和識(shí)別分片,它們是:
- 位0:保留,必須為0;
- 位1:禁止分片(Don’t Fragment,DF),當(dāng)DF=0時(shí)才允許分片;
- 位2:更多分片(More Fragment,MF),MF=1代表后面還有分片,MF=0 代表已經(jīng)是最后一個(gè)分片。
如果DF標(biāo)志被設(shè)置為1,但路由要求必須分片報(bào)文,此報(bào)文會(huì)被丟棄。這個(gè)標(biāo)志可被用于發(fā)往沒有能力組裝分片的主機(jī)。
當(dāng)一個(gè)報(bào)文被分片,除了最后一片外的所有分片都設(shè)置MF為1。最后一個(gè)片段具有非零片段偏移字段,將其與未分片數(shù)據(jù)包區(qū)分開,未分片的偏移字段為0。
-
分片偏移 (Fragment Offset, 13bit)
這個(gè)13位字段指明了每個(gè)分片相對(duì)于原始報(bào)文開頭的偏移量,以8字節(jié)作單位。 -
存活時(shí)間(Time To Live,TTL, 8bit)
本數(shù)據(jù)報(bào)的TTL. -
協(xié)議 (Protocol, 8bit)
1—-icmp, 2—-igmp, 6—-tcp, 17—-udp, 89—-ospf -
首部檢驗(yàn)和 (Header Checksum, 16bit)
IP首部的校驗(yàn)和 -
源IP地址(Source IP, 32bit)
-
目的IP地址(Destination IP, 32bit)
IPv4數(shù)據(jù)報(bào)分片
- 網(wǎng)絡(luò)鏈路有MTU(最大傳送單元)— 最大可傳輸?shù)逆溌返膸?
- 不同的鏈路類型有不同的MTU
- 如果IP數(shù)據(jù)報(bào) > MTU ,則分片,到目的地后再重組
- IP頭部字段用來標(biāo)記
IP數(shù)據(jù)報(bào)分片示例
-
本來要發(fā)送 4000 byte 的數(shù)據(jù)報(bào)(head部分 + data部分)
-
鏈路的 MTU = 1500 bytes
-
需要將數(shù)據(jù)分為3片來發(fā)送
-
length
:片長(zhǎng)度,包括了 20 bytes IP首部部分,最大為MTU- length為1500的數(shù)據(jù)報(bào),實(shí)際包含 1500?20=1480 bytes1500?20=1480 ????? 的data部分
- 最后一片的length為 (4000?20)?1480×2+20=1040(4000?20)?1480×2+20=1040
-
fragflag
:3 bits
- 第二個(gè)bit為 DF(Don’t Flag):為0則該數(shù)據(jù)報(bào)分片,為1則不分片
- 第三個(gè)bit為 MF:為0則后面沒有片了,為1則后面還有片
- 前兩片為 1(001),表示該IP數(shù)據(jù)報(bào)分片,且后面還有片
- 最后一片為 0(000),表示該IP數(shù)據(jù)報(bào)分片,后面沒片(即最后一片)
-
offset
:data部分偏移量,以 8 bytes 為單位,只計(jì)算data部分
- 第一片的offset為 0
- 第二片的offset為 1480 bytes/8 bytes=1851480 ?????/8 ?????=185
IPv4編址
概述
-
IP地址:32位、主機(jī)和路由器接口的ID
-
接口
(interface):主機(jī)/路由器 和 物理鏈接 之間的連接
- 路由器一般有多個(gè)接口
- 主機(jī)一般有1到2個(gè)接口
-
每個(gè)接口都有一個(gè)對(duì)應(yīng)的IP地址
接口連接方式
- 通過路由器連接
- 有線以太網(wǎng)通過以太網(wǎng)交換機(jī)連接
- 無線網(wǎng)絡(luò)通過WiFi基站連接
子網(wǎng)(Subnet)
IP地址
- 網(wǎng)絡(luò)部分 —— 高位
- 主機(jī)部分 —— 低位
子網(wǎng)
- 子網(wǎng)部分相同
- 可以不通過路由器到達(dá)彼此
把路由器去掉,剩下的每個(gè)區(qū)域都是一個(gè)子網(wǎng)。
上圖中有6個(gè)子網(wǎng)。
分類編制(Classful Addressing)
- A類
- 網(wǎng)絡(luò)部分前1位 ——
0
- 網(wǎng)絡(luò)部分 8 bits,主機(jī)部分 24 bits
- IP地址范圍:
1.0.0.0
~127.255.255.255
- 網(wǎng)絡(luò)部分前1位 ——
- B類
- 網(wǎng)絡(luò)部分前2位 ——
10
- 網(wǎng)絡(luò)部分 16 bits,主機(jī)部分 16 bits
- IP地址范圍:
128.0.0.0
~191.255.255.255
- 網(wǎng)絡(luò)部分前2位 ——
- C類
- 網(wǎng)絡(luò)部分前3位 ——
110
- 網(wǎng)絡(luò)部分 24 bits,主機(jī)部分 8 bits
- IP地址范圍:
192.0.0.0
~223.255.255.255
- 網(wǎng)絡(luò)部分前3位 ——
- D類
- 前4位 ——
1110
- 用于多播地址
- 前4位 ——
- E類
- 前4位 ——
1111
- 被留作將來使用
- 前4位 ——
子網(wǎng)掩碼(subnet mask)
- IP地址采用點(diǎn)分十進(jìn)制:例如
192.32.216.9
- 分類編制導(dǎo)致了地址資源的浪費(fèi)
- 子網(wǎng)和子網(wǎng)掩碼:可以減小地址資源的浪費(fèi)
200.23.16.64/27
中的27
為 網(wǎng)絡(luò)部分+子網(wǎng)部分 的位數(shù)
- 子網(wǎng)掩碼
- 網(wǎng)絡(luò)部分+子網(wǎng)部分 置1
- 主機(jī)部分 置0
- 子網(wǎng)的網(wǎng)絡(luò)ID
- 網(wǎng)絡(luò)部分+子網(wǎng)部分 不變
- 主機(jī)部分 置0
CIDR:無類的域間路由(Classless InterDomain Routing)
- IP分為兩個(gè)部分 —— 子網(wǎng)部分 + 主機(jī)部分
- 子網(wǎng)部分可以是任意長(zhǎng)度
- 地址格式:
a.b.c.d / x
,其中x是子網(wǎng)部分位數(shù) - 網(wǎng)絡(luò)部分稱為前綴(prefix)
如何獲取IP地址
主機(jī)如何獲取IP地址
主機(jī)獲取IP地址:
- 硬編碼:自己設(shè)置靜態(tài)的IP設(shè)置
-
DHCP:動(dòng)態(tài)主機(jī)配置(Dynamic Host Configuration Protocol)
??當(dāng)主機(jī)連接網(wǎng)絡(luò)時(shí),允許主機(jī)從網(wǎng)絡(luò)服務(wù)器動(dòng)態(tài)獲取IP地址。
DHCP
- 即插即用
- 可以更新IP
- 地址重用:主機(jī)的IP只有在上線時(shí)才固定,下線即釋放
- 支持移動(dòng)用戶
當(dāng)一臺(tái)主機(jī)加入網(wǎng)絡(luò)時(shí),從子網(wǎng)中的DHCP服務(wù)器獲取IP地址。
網(wǎng)絡(luò)如何獲取IP地址
從ISP處獲取分配的IP地址。
ISP如何獲取IP地址
ISP從ICANN組織獲取IP地址
ICANN:Internet Corporation for Assigned Names and Numbers
- 分配地址
- 管理DNS
- 分配域名、解決爭(zhēng)議
NAT:網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation)
- 從這個(gè)本地網(wǎng)絡(luò)出去的報(bào)文都有著:相同的源IP+不同的端口號(hào)
- 對(duì)于外界網(wǎng)絡(luò)來說,這個(gè)本地網(wǎng)絡(luò)都是一個(gè)IP
- 本地網(wǎng)絡(luò)有內(nèi)部地址,改變?cè)搩?nèi)部地址不需要通知外部網(wǎng)絡(luò)
- 改變ISP不需要改變本地網(wǎng)絡(luò)的內(nèi)部地址
- 內(nèi)部地址在外部不可見(保障安全性)
- 實(shí)現(xiàn)方式
- 發(fā)送出去的報(bào)文:(源IP(內(nèi)部的IP),端口號(hào))—> (NAT IP(NAT統(tǒng)一的IP),新端口號(hào))
- 外部發(fā)來的報(bào)文的目的地址填寫:(NAT IP(NAT統(tǒng)一的IP),新端口號(hào))
- NAT轉(zhuǎn)換表:記?。ㄔ碔P(內(nèi)部的IP),端口號(hào))<—> (NAT IP(NAT統(tǒng)一的IP),新端口號(hào))的轉(zhuǎn)換對(duì)
- 收到的報(bào)文:根據(jù)NAT轉(zhuǎn)換表,(NAT IP(NAT統(tǒng)一的IP),新端口號(hào))—> (源IP(內(nèi)部的IP),端口號(hào))
- 發(fā)送出去的報(bào)文:(源IP(內(nèi)部的IP),端口號(hào))—> (NAT IP(NAT統(tǒng)一的IP),新端口號(hào))
- 外部不知道內(nèi)部的情況,所以外部不能發(fā)起通信
- 預(yù)留給內(nèi)部的IP地址:
-
10.0.0.0
~10.255.255.255
(A類) -
176.16.0.0
~172.31.255.255
(B類) -
192.168.0.0
~192.168.255.255
(C類)
-
- 可以有16bit的主機(jī)地址位(
10.0.0.0
~10.255.255.255
),一個(gè)NAT支持內(nèi)部60000+的連接 - NAT存在爭(zhēng)議
- 路由器本來是在第3層,但NAT修改了端口號(hào),而端口號(hào)包含在TCP/UDP的段結(jié)構(gòu)里,即改了第4層的內(nèi)容
- 違反了端到端
- 所以用IPv6來解決地址短缺
ICMP:因特網(wǎng)控制消息協(xié)議(Internet Control Message Protocol)
ICMP
- 主機(jī)、路由器、網(wǎng)關(guān)來交流網(wǎng)絡(luò)層信息
- 報(bào)錯(cuò):到達(dá)不了主機(jī)、網(wǎng)絡(luò)、端口、協(xié)議等等
- 用于探測(cè):echo request/reply(使用ping)
- IP的一部分,但體系結(jié)構(gòu)在IP之上:ICMP消息搭載在IP數(shù)據(jù)報(bào)上
- ICMP消息:type,code,引發(fā)錯(cuò)誤的IP數(shù)據(jù)報(bào)首部和前8個(gè)字節(jié)
Type | Code | description | 描述 |
---|---|---|---|
0 | 0 | echo reply (ping) | echo響應(yīng) (被程序ping使用) |
3 | 0 | dest. network unreachable | 目標(biāo)網(wǎng)絡(luò)不可達(dá) |
3 | 1 | dest host unreachable | 目標(biāo)主機(jī)不可達(dá) |
3 | 2 | dest protocol unreachable | 目標(biāo)協(xié)議不可達(dá) |
3 | 3 | dest port unreachable | 目標(biāo)端口不可達(dá) |
3 | 6 | dest network unknown | 未知的目標(biāo)網(wǎng)絡(luò) |
3 | 7 | dest host unknown | 未知的目標(biāo)主機(jī) |
4 | 0 | source quench (congestion control - not used) | 源端關(guān)閉(擁塞控制) |
8 | 0 | echo request (ping) | Echo請(qǐng)求 |
9 | 0 | route advertisement | 路由通告 |
10 | 0 | router discovery | 路由器的發(fā)現(xiàn)/選擇/請(qǐng)求 |
11 | 0 | TTL expired | TTL 超時(shí) |
12 | 0 | bad IP header | IP 報(bào)首部參數(shù)錯(cuò)誤 |
- ICMP是管控制的IP的“兄弟”
- ICMP被IP使用,同時(shí)作為網(wǎng)絡(luò)層協(xié)議使用IP
- ping、traceroute、path MTU discovery 都使用到了ICMP
- ping:使用 ICMP Echo request/repley msgs
- path MTU discovery
- 發(fā)送一個(gè)大的IP數(shù)據(jù)報(bào),該數(shù)據(jù)報(bào)的 don’t fragment 置 1(即不分片)
- 減小數(shù)據(jù)報(bào)大小,直至成功(成功標(biāo)志:沒有接收到返回的ICMP消息)
Traceroute
Traceroute程序:跟蹤從一臺(tái)主機(jī)到其他主機(jī)之間的路由,用ICMP報(bào)文實(shí)現(xiàn)。
- 源發(fā)送一系列 UDP報(bào)文段 到目的
- 第一個(gè)數(shù)據(jù)報(bào) TTL=1,第二個(gè)數(shù)據(jù)報(bào) TTL=2,以此類推
- 使用不常見的端口號(hào)
- 當(dāng)?shù)趎個(gè)數(shù)據(jù)報(bào)到達(dá)第n臺(tái)主機(jī)時(shí)
- 這個(gè)第n個(gè)數(shù)據(jù)報(bào)TTL剛好過期
- 路由器丟棄該數(shù)據(jù)報(bào)
- 路由器發(fā)送一個(gè)ICMP告警報(bào)文(type 11,code 0)給源
- 該ICMP告警報(bào)文包括第n臺(tái)路由器名字及其IP
- 當(dāng)該ICMP報(bào)文返回到源主機(jī),源主機(jī)計(jì)算RTT(往返時(shí)延),得到第n臺(tái)路由器名字及其IP
- 標(biāo)準(zhǔn)的Traceroute程序用相同的TTL發(fā)送3個(gè)一組的分組,輸出對(duì)每個(gè)TTL提供3個(gè)結(jié)果
- 停止條件步驟
- UDP數(shù)據(jù)報(bào)到達(dá)目的主機(jī)
- 目的主機(jī)返回 ICMP端口不可到達(dá)報(bào)文(type 3,code 3)
- 源主機(jī)接收到該ICMP報(bào)文,則停止
在Mac上可在app“系統(tǒng)信息”中的窗口
->網(wǎng)絡(luò)實(shí)用工具
中使用Ping、Traceroute等工具。
IPv6
- 動(dòng)機(jī)
- 初動(dòng)機(jī):解決32位IP地址空間分配完的問題
- 更快處理/轉(zhuǎn)發(fā)的頭部格式
- 頭部支持QoS
- IPv6數(shù)據(jù)報(bào)格式
- 固定長(zhǎng)度的頭部:40 byte (IPv4頭部長(zhǎng)度不固定)
- 不允許分片
IPv6數(shù)據(jù)報(bào)結(jié)構(gòu)
-
版本(Version, 4 bit)
對(duì)于IPv6,字段的值是6(0110)。 -
流量類型(Traffic class,8 bit)
用來標(biāo)識(shí)對(duì)應(yīng)IPv6的通信流類別,類似于IPv4中的ToS。 -
流標(biāo)簽(Flow label,20 bit)
用來標(biāo)記報(bào)文的數(shù)據(jù)流類型,以便在網(wǎng)絡(luò)層區(qū)分不同的報(bào)文。 -
有效載荷長(zhǎng)度(Payload length,16 bit)
給出了IPv6數(shù)據(jù)報(bào)中跟在定長(zhǎng)的40 byte數(shù)據(jù)報(bào)頭部后面的字節(jié)數(shù)量。 -
下一個(gè)頭部(Next Header,8 bit)
該字段標(biāo)識(shí)數(shù)據(jù)報(bào)中的內(nèi)容(數(shù)據(jù)字段)需要交付給哪個(gè)協(xié)議(如TCP或UDP)。無擴(kuò)展的頭部,Next Header指向TCP/UDP;有擴(kuò)展的頭部,Next Header指向的下一個(gè)頭部比如路由選擇。與IPv4頭部 協(xié)議(Protocol)字段相同。 -
跳段數(shù)限制(Hop limit,8 bit)
生存時(shí)間,相當(dāng)于IPv4中的TTL。轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)的每臺(tái)路由器講對(duì)該字段內(nèi)容 -1,如果跳轉(zhuǎn)限制計(jì)數(shù)到0時(shí),則丟棄該數(shù)據(jù)報(bào)
-
源IP地址(Source Address,128 bit)
-
目的IP地址(Destination Address,128 bit)
-
數(shù)據(jù)(Data)
IPv6相較于IPv4的部分改變
-
去除Checksum:加快了轉(zhuǎn)發(fā)速度
-
Options:依舊允許可選項(xiàng),但是不放在頭部,而是放在 Next Header 指出的位置上
-
ICMPv6
:ICMP的IPv6版本
- 增加新的 type:比如“Packet Too Big”
- 包含多播組管理
IPv6地址
-
三種類型:單播(unicast)、多播(multicast)、任意播(anycast)
-
冒號(hào)劃分的十六進(jìn)制(128 bit)
eg.
68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
-
0的壓縮
用雙冒號(hào)
::
表示一組0或多組連續(xù)的0,但只能出現(xiàn)一次。-
FF05:0:0:0:0:0:0:B3
=FF05::B3
-
0:0:0:0:0:0:128.10.2.1
=::128.10.2.1
(IPv4和IPv6兼容的IP) -
12AB:0:0:CD30:0:0:0:0
=12AB::CD30:0:0:0:0
=12AB:0:0:CD30::
(如果出現(xiàn)兩個(gè)多個(gè)0,隨意壓一個(gè)都行)
-
單播(Unicast address)
單播的地址格式(一共 128 bit):
-
全球路由前綴(Global routing prefix,48 bit)
前3位為
001
,分配給公司和組織。 -
子網(wǎng)ID(Subnet ID,16 bit)
如果是小公司,只需要1個(gè)子網(wǎng)的話,全設(shè)為0
-
接口ID(Interface ID,64 bit)
基于 EUI-64
IPv4到IPv6的遷移
- 現(xiàn)在的網(wǎng)絡(luò)既有IPv4,也有IPv6。世界上的所有網(wǎng)從IPv4到IPv6需要很長(zhǎng)的轉(zhuǎn)換時(shí)間。
- 兩種IPv4到IPv6的遷移
- 雙棧(Dual Stack):一些路由器可以兼容IPv4和IPv6
- 隧道(Tunneling):當(dāng)IPv6穿過IPv4的路由器上時(shí),將IPv6作為載荷承載在IPv4上
雙棧(Dual Stack)
- 早期的設(shè)計(jì)
- 一些路由器有雙棧(IPv4 & IPv6),可以翻譯這兩種格式
隧道(Tunneling)
當(dāng)IPv6穿過IPv4的路由器上時(shí),將IPv6作為載荷承載在IPv4上。就是像一個(gè)連接兩個(gè)IPv6路由器的IPv4隧道
4.4 通用轉(zhuǎn)發(fā)和 SDN
傳統(tǒng)
- 網(wǎng)絡(luò)層功能: ?轉(zhuǎn)發(fā):對(duì)于從某個(gè)端口 到來的分組轉(zhuǎn)發(fā)到合適的 輸出端口 ?路由:決定分組從源端 到目標(biāo)端的路徑 ?路由算法
- 類比: 旅行 ? 轉(zhuǎn)發(fā):一個(gè)多岔路口的 進(jìn)入和轉(zhuǎn)出過程 ? 路由:規(guī)劃從源到目標(biāo) 的旅行路徑
每個(gè)路由器上都有實(shí)現(xiàn)路由算法元件(它們之間需要相互交 互)- 形成傳統(tǒng)IP實(shí)現(xiàn)方式的控制平面 - 路由器的網(wǎng)絡(luò)層功能:
- IP轉(zhuǎn)發(fā):對(duì)于到來的分組按照路由表決定如何轉(zhuǎn)發(fā),數(shù) 據(jù)平面
- 路由:決定路徑,計(jì)算路由表;處在控制平面
SDN:邏輯上集中的控制平面
- 一個(gè)不同的(通常是遠(yuǎn)程)控制器和CA交互,控制器決定分組 轉(zhuǎn)發(fā)的邏輯(可編程),CA所在設(shè)備執(zhí)行邏輯。
SDN的主要思路
- ? 網(wǎng)絡(luò)設(shè)備數(shù)據(jù)平面和控制平面分離
- ?數(shù)據(jù)平面-分組交換機(jī)
- 將路由器、交換機(jī)和目前大多數(shù)網(wǎng)絡(luò)設(shè)備的功能進(jìn)一步抽 象成:按照流表(由控制平面設(shè)置的控制邏輯)進(jìn)行PDU (幀、分組)的動(dòng)作(包括轉(zhuǎn)發(fā)、丟棄、拷貝、泛洪、阻 塞)
- 統(tǒng)一化設(shè)備功能:SDN交換機(jī)(分組交換機(jī)),執(zhí)行控制 邏輯
- ?控制平面-控制器+網(wǎng)絡(luò)應(yīng)用
- 分離、集中
- 計(jì)算和下發(fā)控制邏輯:流表
優(yōu)點(diǎn)
?水平集成控制平面的開放實(shí)現(xiàn)(而非私有實(shí) 現(xiàn)),創(chuàng)造出好的產(chǎn)業(yè)生態(tài),促進(jìn)發(fā)展
?集中式實(shí)現(xiàn)控制邏輯,網(wǎng)絡(luò)管理容易
?基于流表的匹配+行動(dòng)的工作方式允許“可編程的”分組交換機(jī)
通用轉(zhuǎn)發(fā)和SDN OpenFlow數(shù)據(jù)平面抽象 每個(gè)路由器包含一個(gè)流表(被邏輯上集中的控制器計(jì)算和分發(fā))文章來源:http://www.zghlxwxcb.cn/news/detail-485326.html
OpenFlow數(shù)據(jù)平面抽象
一種網(wǎng)絡(luò)通信協(xié)議,應(yīng)用于SDN架構(gòu)中控制器和轉(zhuǎn)發(fā)器之間的通信。文章來源地址http://www.zghlxwxcb.cn/news/detail-485326.html
- ?流: 由分組(幀)頭部字段所定義
- ?通用轉(zhuǎn)發(fā): 簡(jiǎn)單的分組處理規(guī)則
- ?模式: 將分組頭部字段和流表進(jìn)行匹配
- ?行動(dòng):對(duì)于匹配上的分組,可以是丟棄、轉(zhuǎn)發(fā)、修改、 將匹配的分組發(fā)送給控制器
- ?優(yōu)先權(quán)Priority: 幾個(gè)模式匹配了,優(yōu)先采用哪個(gè),消除歧 義
- ?計(jì)數(shù)器Counters: #bytes 以及#packets
路由器中的流表定義了路由器的匹配+行動(dòng)規(guī)則 (流表由控制器計(jì)算并下發(fā) )
OpenFlow抽象
- ? match+action: 統(tǒng)一化各種網(wǎng)絡(luò)設(shè)備提供的功能
到了這里,關(guān)于【計(jì)算機(jī)網(wǎng)絡(luò):自頂向下方法】(四)網(wǎng)絡(luò)層 : 數(shù)據(jù)平面 (IPV4 | IPV6 | 路由算法 )的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!