路由表里的子網(wǎng)掩碼有什么作用?看這篇文章你就懂了(路由表的子網(wǎng)掩碼怎么寫)
求大神給具體答案,不要說什么精確選擇路由路線什么的,我想知道一個ip過來后是怎么和這個掩碼進行操作的,又和路由表里的目的ip進行了怎樣的比較?
北京的老王打算來上海浦東川沙迪斯尼玩,老王是老司機,不屑用車載導(dǎo)航、手機導(dǎo)航,老王完全靠G2高速上的指示牌一路順暢到達了迪斯尼。老王是如何做到的?
當老王的車子進入江蘇境內(nèi)時,前方有三個分岔口,分別指示:
- 上海
- 南京
- 合肥
老王毫不猶豫地選擇了上海,這個動作非常簡單,計算時間可能只有零點幾毫秒,但是老王的大腦還是計算了。老王拿著自己的目的地:上海浦東川沙迪斯尼,與三者分別匹配,結(jié)果只有與上海匹配到兩個字:“上海“。與其它兩者沒有任何的匹配,老王快速選擇了上海。
老王三腳油門到了上海境內(nèi),前方又出現(xiàn)了三個岔路口,分別是:
- 上海嘉定
- 上海浦東
- 上海浦西
老王又用自己的目的地“上海浦東川沙迪斯尼“與三者進行匹配,匹配的結(jié)果分別為:
- 上海
- 上海浦東
- 上海
老王不傻,老王果斷地選擇了最長的匹配:上海浦東。老王一腳油門又走了30公里。前方又出現(xiàn)了三個岔路口,分別為:
- 上海浦東三林
- 上海浦東南匯
- 上海浦東川沙
老王快速計算,匹配結(jié)果為:
- 上海浦東
- 上海浦東
- 上海浦東川沙
老王最終選擇了上海浦東川沙,下高速離很遠就看到了迪斯尼的天鵝城堡。。。
路由器對IP包的路由決策,和老王的路由決策是非常相似的,每次做路由決策采用最長匹配原則。
最長匹配原則
將IP報文目的IP地址提取出來,與路由表的掩碼做按位與操作,得到的結(jié)果,與路由表條目進行匹配,匹配最長勝出,采用該路由表指示的出口將IP包扔出。
二進制按位與操作
0 and 0 = 0
0 and 1 = 0
1 and 0 = 0
1 and 1 = 1
一個例子
IP報文的目的IP = 8.8.8.8,到達路由器,路由器有以下幾條路由:
- 0.0.0.0/0 ———— > 中國
- 20.1.0.0/16 ———— > 江蘇南京
- 8.8.0.0/16 ———— > 上海浦東川沙
- 8.1.8.8/32 ———— > 上海黃埔區(qū)中山東一路一號
匹配長度(二進制長度)為:
- 0
- 0
- 16
- 8
路由器選擇了第三條路由:8.8.0.0/16,因為它匹配長度最長。
作者|車小胖談網(wǎng)絡(luò)|公眾號