求大神給具體答案,不要說什麼精确選擇路由路線什麼的,我想知道一個ip過來後是怎麼和這個掩碼進行操作的,又和路由表裡的目的ip進行了怎樣的比較?
北京的老王打算來上海浦東川沙迪斯尼玩,老王是老司機,不屑用車載導航、手機導航,老王完全靠G2高速上的指示牌一路順暢到達了迪斯尼。老王是如何做到的?
當老王的車子進入江蘇境内時,前方有三個分岔口,分别指示:
老王毫不猶豫地選擇了上海,這個動作非常簡單,計算時間可能隻有零點幾毫秒,但是老王的大腦還是計算了。老王拿着自己的目的地:上海浦東川沙迪斯尼,與三者分别匹配,結果隻有與上海匹配到兩個字:“上海“。與其它兩者沒有任何的匹配,老王快速選擇了上海。
老王三腳油門到了上海境内,前方又出現了三個岔路口,分别是:
老王又用自己的目的地“上海浦東川沙迪斯尼“與三者進行匹配,匹配的結果分别為:
老王不傻,老王果斷地選擇了最長的匹配:上海浦東。老王一腳油門又走了30公裡。前方又出現了三個岔路口,分别為:
老王快速計算,匹配結果為:
老王最終選擇了上海浦東川沙,下高速離很遠就看到了迪斯尼的天鵝城堡。。。
路由器對IP包的路由決策,和老王的路由決策是非常相似的,每次做路由決策采用最長匹配原則。
最長匹配原則
将IP報文目的IP地址提取出來,與路由表的掩碼做按位與操作,得到的結果,與路由表條目進行匹配,匹配最長勝出,采用該路由表指示的出口将IP包扔出。
二進制按位與操作
0 and 0 = 0
0 and 1 = 0
1 and 0 = 0
1 and 1 = 1
一個例子
IP報文的目的IP = 8.8.8.8,到達路由器,路由器有以下幾條路由:
匹配長度(二進制長度)為:
路由器選擇了第三條路由:8.8.0.0/16,因為它匹配長度最長。
作者|車小胖談網絡|公衆号
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!