使用ARP協議能夠查出擅自更改IP地址主機的MAC地址。在學習ARP協議前須要瞭解廣播和廣播域的相關概念。緩存
在超市找人時,若是不知道對方的位置就須要到服務檯經過廣播進行找人,當知道對方的位置時就能夠直接到對方所在位置。在網絡中也存在這種狀況。若是不知道對方的地址就須要進行廣播。即發送廣播幀;而知道對方的地址就發送單播到對方處。因此,廣播通訊是「一對全部」的通訊形式。而單播通訊是「一對一」的通訊形式。全部聽到找人廣播的範圍就是廣播域。廣播和廣播域的具體定義以下:網絡
MAC地址的廣播地址:FF-FF-FF-FF-FF-FF
MAC地址的廣播域是全部相鏈接的交換機或集線器的集合。若是一臺主機發送一個MAC地址廣播。則這個廣播將轉發到全部相連的交換機或集線器的全部端口。收到廣播幀的主機會比較數據幀包中的目的IP地址是否爲自身IP地址。若是是,則繼續處理數據包中的承載數據;若是不是,則丟棄數據。
交換機轉發MAC地址廣播,而路由器會阻擋MAC地址廣播。學習
iP網段的最後一個地址爲廣播地址,即主機部分所有爲1.在數據幀中,目的MAC地址是FF-FF-FF-FF-FF-FF,目的IP地址是IP網段的廣播地址。雲計算
(1)查找ARP緩存表3d
(2)發送ARP廣播blog
(3)ARP應答接口
(4)添加ARP緩存記錄ip
路由器工做在OSI參考模型的網絡層,它的重要做用是爲數據包選擇最佳路徑,最終送達目的地。那麼路由器是怎樣選擇路徑的呢?路由
[x] 在只有一個網段的網絡中,數據包能夠很容易地從源主機到達目的主機。可是若是一臺計算機要和非本網段的計算機進行通訊,數據包可能就要通過不少路由器。主機A和主機B所在的網段被許多路由器隔開,這時主機A和主機B的通訊就要通過這些中間路由器,這就要面臨一個很重要的問題--如何選擇到達目的地的路徑。原理
[x] 數據包從A到達B有不少條路徑可供選擇,可是很顯然,這些路徑中在某一時刻總會有一條路徑是最好(最快)的。所以,爲了儘量地提升網絡訪問速度,就須要有一種方法來判斷從源主機到達目標主機所通過的最佳路徑,從而進行數據轉發,這就是路由技術。
###2.2 靜態路由
###2.3 默認路由
###2.4 路由器轉發數據包的封裝過程
咱們知道兩主機要通訊傳送數據時,就要把應用數據封裝成IP包(由於咱們的網絡大多都是TCP/IP的以太網),而後再交給下一層數據鏈路層繼續·封裝成幀;以後根據MAC地址才能把數據從一臺主機,準確無誤的傳送到另外一臺主機。
當NO要和N1通訊時,
1)假如NO知道N1的IP但殊不知道它的MAC地址,那NO就會發送一個ARP的廣播請求(裏面源IP是NO目標IP是N1源MAC是N0目標MAC是12個F)給同一廣播域中的全部成員。
2)當交換機SW0從本身的1接口上收到這個廣播包,而後它會讀取這個幀的源MAC地址和目標MAC地址,因爲交換機SW0剛啓動加電時,它的MAC表爲空的。因此它會把NO的MAC地址與之相對應的接口1放到一張表裏,這張表就是MAC地址表。
3)而後SW0再從別的接口廣播這個數據幀,當別的主機收到這個廣播時,查看目標IP不是本身的,就會丟棄此包。若是N1接收到這個數據幀,它檢查目標IP和這個的IP是同樣的,就會迴應這個ARP請求,把本身的IP和MAC封裝成源IP和源MAC,N0的IP和N0的MAC地址爲目標IP與目標MAC,並記錄N0的MAC與IP,放進本身的ARP緩存表中。
4)此時,這個應答包通過交換機SWO時,它又會檢查源MAC,目標MAC,把N1的MAC和本身接口2放進MAC地址表中,再查看本身的MAC地址表,發現存在目標MAC與本身的1接口對應(因爲剛開始有記錄過N0的MAC),那它就會直接把這個應答包從接口1送出去了。
5)主機N0收到這個包後發現目標MAC是本身,就會處理這個包。並把N1的MAC與IP放進本身的ARP緩存表中。這時主機N0就知道N1的MAC地址了,
6)後續的發送數據任務,就會直接把N1的IP與MAC封裝進幀中進行點對點的發送了。
當N0要和N2通訊時
1)N0會先檢查N2的IP地址和本身是否處於同一網段,因爲N2和本身處在不一樣網段,所以,N0會把數據包給它的網管,也就是R0上的F0/0接口了。
2)當這個數據包到達R0時,路由器R0會查看目標IP是不是本身的,因爲目標不是本身,因此會查看本身的路由表,找出到達N2網段的路由;(若是找不到就會丟棄數據包)
3)當R0查看路由表發現到達N2網段的出接口是F0/1.因而,把數據包轉到F0/1接口上,再由接口F0/1傳給R1.這個過程,數據包的源IP是N0源MAC是F0/1目標IP是N2目標MAC是R1的F0/1接口IP
4)當R1收到這個數據包後,一樣也要檢查包的目標IP是否本身,它會主動查找本身的路由表,發現目標IP跟本身F0/0接口處在同一網段,因而就把包傳到F0/0接口上去發給N2。)