三層轉發基本原理
1.網路層的定義
網路層(network layer ):它位於OSI模型中的第三層,介於運輸層與資料鏈路層之間,提供發信端到目標端之間的資訊傳輸服務。網路層的資料以IP資料報的形式傳輸。
2.IP協議
IP提供了不可靠,無連線的資料報傳送服務。它定義了在網際網路上傳輸資料的具體格式。IP實現兩個基本功能:定址及分片。
IP地址由網路號和主機號兩部分組成,網路號標識網際網路中的一個特定網路,主機號標識在該網路中的一臺特定主機,最常用的地址表示方法是點分十進位制法。如:192.168.10.1關於IP協議的具體講解見《TCP/IP 基礎學習》
3.ARP
ARP,即地址解析協議,實現通過IP地址到實體地址的對映。
在乙太網協議中規定,同一區域網中的一臺主機要和另一臺主機進行直接通訊,必須要知道目標主機的MAC地址,而在TCP/IP協議棧中網路層和傳輸層只關心目標主機的IP地址
。這就導致在乙太網中使用IP協議時,資料鏈路層的乙太網協議接到上層IP協議提供的資料中,只包含目的主機的IP地址。於是需要一種方法,根據目的主機的IP地址,獲得其MAC地址。這就是ARP協議要做的事情。(關於ARP的具體知識,見《TCP/IP 基礎學習》)
4.基本轉發的概念
在資料通訊網路中,裝置之間的通訊基本上是根據TCP/IP協議,在IP網路中執行的特定功能的裝置,都可以稱之為端系統,PC是一種最常見的端系統,網路中路由器、交換機就是用來互聯不同的端系統,讓它們進行透明的通訊。
三層轉發基本原理
之前我們學習了二層轉發,知道二層轉發是一種基於OSI中的資料鏈路層的資料幀的儲存轉發技術,二層交換是依靠MAC地址和VID號來確定轉發方向的。那麼,三層轉發和二層轉發有什麼區別呢?
1.資料轉發依靠的關鍵字不同,二層轉發主要依靠MAC地址,而三層轉發主要依靠IP地址。
2.資料交換的範圍不同,二層交換指在同一網段內的通訊,三層交換指跨網段的通訊。
3.在三層轉發的過程中,還要進行二層的封裝。也就是說,在轉發過程中二層幀頭中的(源、目的)MAC地址是要改變的。但是IP資料報中的源IP和目的IP地址是不會改變的
5.IP路由表
路由是IP層轉發的依據,路由包括
•目的網路/字首長度
•下一跳地址IP路由表
•出介面
•……
檢視路由表的命令
•Show ip route
Show fib
路根據路由產生的方式分
1.直連路由–本地介面IP網段對應的路由,優先順序最高
2.靜態路由-手工配置的路由,優先順序較高
3.動態路由-各種路由協議產生的路由優先順序有高有低由匹配
匹配原則--最長路徑匹配原則
6.三層轉發舉例
PC1準備向PC2傳送資料包
(1) PC1檢查報文的目的IP地址,發現和自己不在同一網段,則需要進行三層轉發,通過閘道器轉發報文資訊;
(2) PC1檢查自己的ARP表,發現閘道器的MAC地址不在自己的ARP表裡;
PC1向Router發起arp請求
(3) PC1——>Router(閘道器)發出ARP請求報文;
(4) Router將PC1的MAC地址學習到自己的ARP表,
(5) Router(閘道器)——>PC1發出ARP應答報文;
(6) PC1學習到Router(閘道器)的mac地址,發出報文,此時源ip、目的ip不變,目的mac為Router(閘道器)的mac
(7) PC1——> Router(閘道器)發出報文。
(8) Router(閘道器)收到報文,發現是三層報文(原因是報文的目的mac是自己的mac)
(9) Router(閘道器)檢查自己的路由表(FIB),發現目的ip在自己的直連網段
(10)Router檢查自己的arp表,如果發現有與目的ip對應的mac地址則直接封裝報文(目的ip、源ip不變,目的mac為查arp表所得mac)傳送給PC2
(11) 如果查ARP表沒有得到與目的ip對應MAC,則重複(3)發arp請求
(12) PC2收到ARP廣播報文,發現目的IP是自己的IP,於是給Router傳送ARP應答報文。報文中會附上自己的mac地址。
(13) Router收到應答報文後,目的mac改為PC2的mac,然後向PC2傳送資料幀。
(14) PC2向Router傳送報文
(15) Router收到報文後,向PC1轉發報文