目錄
- IP協(xié)議
- IPv4
- IPv4地址
- IPv4數(shù)據(jù)報
- IPv6
- IPv4和IPv6的區(qū)別
- 過渡技術(shù)
- IPv4
- 配套協(xié)議
- ARP
- ICMP
- 路由轉(zhuǎn)發(fā)協(xié)議
- 內(nèi)部網(wǎng)關(guān)協(xié)議RIP
- 開放最短路徑OSPF
- 邊界網(wǎng)關(guān)協(xié)議BGP
一 IP協(xié)議
1.1IPv4
IPv4地址
IP 地址的編址方式經(jīng)歷了三個歷史階段:

(1)分類的IP地址
IP地址由兩部分組成:網(wǎng)絡(luò)號和主機(jī)號。不同分類具有不同且固定的網(wǎng)絡(luò)號長度。
IP 地址 ::= {< 網(wǎng)絡(luò)號 >, < 主機(jī)號 >}

(2)劃分子網(wǎng)
通過在主機(jī)號字段中拿一部分作為子網(wǎng)號,把兩級 IP 地址劃分為三級 IP 地址。
IP 地址 ::= {< 網(wǎng)絡(luò)號 >, < 子網(wǎng)號 >, < 主機(jī)號 >}
要使用子網(wǎng),必須配置子網(wǎng)掩碼。一個 B 類地址的默認(rèn)子網(wǎng)掩碼為 255.255.0.0,如果 B 類地址的子網(wǎng)號占兩個比特,那么子網(wǎng)掩碼為 11111111 11111111 11000000 00000000,也就是 255.255.192.0。
注意,外部網(wǎng)絡(luò)看不到子網(wǎng)的存在。

(3)無分類 / 構(gòu)成超網(wǎng)
無分類編址 CIDR的目的是按需分配。它消除了傳統(tǒng) A 類、B 類和 C 類地址以及劃分子網(wǎng)的概念,使用網(wǎng)絡(luò)前綴和主機(jī)號來對 IP 地址進(jìn)行編碼,IP地址從三級又回到了兩級編址。
IP 地址 ::= {< 網(wǎng)絡(luò)前綴號 >, < 主機(jī)號 >}
CIDR 的記法上采用在 IP 地址后面加上網(wǎng)絡(luò)前綴長度的方法,例如 128.14.35.7/20 表示前 20 位為網(wǎng)絡(luò)前綴。CIDR 的地址掩碼可以繼續(xù)稱為子網(wǎng)掩碼,子網(wǎng)掩碼首 1 長度為網(wǎng)絡(luò)前綴的長度。
CIDR把網(wǎng)絡(luò)前綴都相同的連續(xù)的IP地址組成一個“CIDR地址塊”,這種地址的聚合常稱為路由聚合或構(gòu)成超網(wǎng)。它使得路由表中的一個項目可以表示原來傳統(tǒng)分類地址的很多個(例如上千個)路由。

在路由表中的項目由“網(wǎng)絡(luò)前綴”和“下一跳地址”組成,在查找時可能會得到不止一個匹配結(jié)果,應(yīng)當(dāng)采用最長前綴匹配來確定應(yīng)該匹配哪一個。
Q:子網(wǎng)掩碼的作用是什么?
為了方便路由器進(jìn)行快速轉(zhuǎn)發(fā)使用的。
子網(wǎng)掩碼就是對網(wǎng)絡(luò)進(jìn)行標(biāo)識,大大減少了路由表的路由項,提高轉(zhuǎn)發(fā)速度。
IPv4數(shù)據(jù)報

1.2 IPv6
IPv4和IPv6的區(qū)別

Q:IPv4和IPv6的區(qū)別:
- IP地址方面:
- 地址空間增加:v4地址是32位,v6地址是128位;
- 地址表示不同:v4是點分十進(jìn)制,v6是冒分十六進(jìn)制;
如:192.168.0.1 和 2001:0db8:85a3:08d3:1319:8a2e:0370:7344
- ip數(shù)據(jù)報格式方面:
v6的頭部字段比v4精簡了很多,這樣可以使得網(wǎng)絡(luò)數(shù)據(jù)傳輸更快。
過渡技術(shù)
- 雙協(xié)議棧:網(wǎng)絡(luò)設(shè)備,服務(wù)器等支持兩種協(xié)議棧
- 隧道:通過隧道,IPv6分組被作為無結(jié)構(gòu)無意義的純數(shù)據(jù)封裝在IPv4的數(shù)據(jù)報中。或者反過來,IPv4分組被作為春數(shù)據(jù)封裝在IPv6的數(shù)據(jù)報中。
- 地址轉(zhuǎn)換:把IPv4地址轉(zhuǎn)換到IPv6地址
二 配套協(xié)議
與 IP 協(xié)議配套使用的還有三個協(xié)議:
- 地址解析協(xié)議 ARP(Address Resolution Protocol)
- 網(wǎng)際控制報文協(xié)議 ICMP(Internet Control Message Protocol)
- 網(wǎng)際組管理協(xié)議 IGMP(Internet Group Management Protocol)
ARP
網(wǎng)絡(luò)層實現(xiàn)主機(jī)之間的通信,而鏈路層實現(xiàn)具體每段鏈路之間的通信。在通信過程中,IP 數(shù)據(jù)報的源地址和目的地址始終不變,而 MAC 地址隨著鏈路的改變而改變。


ARP 實現(xiàn)由 IP 地址得到 MAC 地址。每個主機(jī)都有一個 ARP 高速緩存,里面有本局域網(wǎng)上的各主機(jī)和路由器的 IP 地址到 MAC 地址的映射表。
如果主機(jī) A 知道主機(jī) B 的 IP 地址,但是 ARP 高速緩存中沒有該 IP 地址到 MAC 地址的映射,此時主機(jī) A 通過廣播的方式發(fā)送 ARP 請求分組,主機(jī) B 收到該請求后會發(fā)送 ARP 響應(yīng)分組給主機(jī) A 告知其 MAC 地址,隨后主機(jī) A 向其高速緩存中寫入主機(jī) B 的 IP 地址到 MAC 地址的映射。

ICMP
ICMP 是為了更有效地轉(zhuǎn)發(fā) IP 數(shù)據(jù)報和提高交付成功的機(jī)會。ICMP允許主機(jī)或路由器報告差錯情況和提供有關(guān)異常情況的報告。
它封裝在 IP 數(shù)據(jù)報中,作為其中的數(shù)據(jù)部分,但是不屬于高層協(xié)議。

ICMP 報文分為差錯報告報文和詢問報文。

Ping:Ping 是 ICMP 的一個重要應(yīng)用,主要用來測試兩臺主機(jī)之間的連通性。
Ping 的原理是通過向目的主機(jī)發(fā)送 ICMP Echo 請求報文,目的主機(jī)收到之后會發(fā)送 Echo 回答報文。Ping 會根據(jù)時間和成功響應(yīng)的次數(shù)估算出數(shù)據(jù)包往返時間以及丟包率。
Traceroute:Traceroute 是 ICMP 的另一個應(yīng)用,用來跟蹤一個分組從源點到終點的路徑。
三 路由選擇協(xié)議
路由選擇可分為:
- 靜態(tài)路由選擇/非自適應(yīng)路由選擇:由人工配置的路由。其特點是簡單和開銷較小,但不能及時適應(yīng)網(wǎng)絡(luò)狀態(tài)的變化。適用于很簡單的小網(wǎng)絡(luò)。
- 動態(tài)路由選擇/自適應(yīng)路由選擇:能較好的適應(yīng)網(wǎng)絡(luò)狀態(tài)的變化,但實現(xiàn)較為復(fù)雜,開銷也比較大。適用于較復(fù)雜的大網(wǎng)絡(luò)。
互聯(lián)網(wǎng)采用的路由選擇協(xié)議主要是自適應(yīng)的,能隨著網(wǎng)絡(luò)通信量和拓?fù)浣Y(jié)構(gòu)的變化而自適應(yīng)地進(jìn)行調(diào)整。
互聯(lián)網(wǎng)可以劃分為許多較小的自治系統(tǒng) AS,在AS內(nèi)部和AS之間分別進(jìn)行路由選擇。比如一個大的ISP就是一個AS。這樣,互聯(lián)網(wǎng)就把路由選擇協(xié)議劃分為兩大類:
- 自治系統(tǒng)內(nèi)部的路由選擇:RIP 和 OSPF
- 自治系統(tǒng)間的路由選擇:BGP

內(nèi)部網(wǎng)關(guān)協(xié)議RIP
RIP 是一種基于距離向量的路由選擇協(xié)議。使用跳數(shù)作為距離度量,直接相連的路由器跳數(shù)為 1。跳數(shù)最多為 15,超過 15 表示不可達(dá)。
RIP的特點:(和那些路由器交換信息?交換什么信息?在什么時候交換信息?)
- 僅與相鄰路由器交換信息。
- 路由器交換的信息是當(dāng)前路由器所知道的全部信息,即自己現(xiàn)在的路由表。
- 按固定的時間間隔交換路由信息。
RIP 協(xié)議實現(xiàn)簡單,開銷小。但是 RIP 能使用的最大距離為 15,限制了網(wǎng)絡(luò)的規(guī)模。并且當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時,要經(jīng)過比較長的時間才能將此消息傳送到所有路由器。

開放最短路徑OSPF
開放最短路徑優(yōu)先 OSPF,基于Dijkstra 提出的最短路徑算法 SPF,使用鏈路狀態(tài)作為距離度量。
鏈路狀態(tài)包括與哪些路由器相連以及鏈路的度量/代價,代價用來表示費用、距離、時延、帶寬等,這些由網(wǎng)絡(luò)管理人員來決定。

OSPF 具有以下特點:(和那些路由器交換信息?交換什么信息?在什么時候交換信息?)
- 向本自治系統(tǒng)中的所有路由器發(fā)送信息,這種方法是洪泛法。
- 發(fā)送的信息就是與相鄰路由器的鏈路狀態(tài),這只是自己知道的部分信息。
- 只有當(dāng)鏈路狀態(tài)發(fā)生變化時,路由器才會發(fā)送信息。
所有路由器都具有全網(wǎng)的拓?fù)浣Y(jié)構(gòu)圖,并且是一致的。相比于 RIP,OSPF 的更新過程收斂的很快。
邊界網(wǎng)關(guān)協(xié)議BGP
AS 之間的路由選擇很困難,主要是由于:
- 互聯(lián)網(wǎng)規(guī)模很大;
- 各個 AS 內(nèi)部使用不同的路由選擇協(xié)議,無法準(zhǔn)確定義路徑的度量;
- AS 之間的路由選擇必須考慮有關(guān)的策略,比如政治、安全、經(jīng)濟(jì)等問題。
所以BGP 只能尋找一條比較好的路由,而不是最佳路由。
每個 AS 都必須配置 BGP 發(fā)言人,AS之間通過在兩個相鄰 BGP 發(fā)言人之間建立 TCP 連接來交換路由信息。

BGP所交換的網(wǎng)絡(luò)可達(dá)行的信息就是要到達(dá)某個網(wǎng)絡(luò)所要經(jīng)過的一系列AS。
BGP發(fā)言人根據(jù)所采用的策略,從收到的路由信息中找到到達(dá)各自AS的較好的路由。也就是構(gòu)造連通樹形結(jié)構(gòu)。
