ARP協議實現IP地址到MAC地址的轉換。日常使用中,我們用的是IP地址通訊,而不是直接使用MAC地址,比如同一網段中,PC-A和PC-B通訊,但是PC-A不知道PC-B的MAC地址,那麼PC-A就需要傳送ARP廣播,詢問“xxx的MAC地址是多少啊”,PC-B收到廣播資訊後,就會給出ARP響應“我的MAC地址是xxx”,如下圖所示▼。
以我們常見的乙太網幀為例,如下圖所示,PC-A向PC-B傳送IP報文,在報頭需要封裝雙方的地址資訊,源IP地址就是PC-A的IP地址,目的IP地址就是PC-B的IP地址,源MAC地址是PC-A的MAC地址。目的MAC地址是路由器Port1的MAC地址,也就是閘道器MAC地址,這是因為PC-A和PC-B不在同一個網段,其中要用到ARP協議進行轉換。
路由器收到這個報文後,發現目的MAC地址是本機Port1埠的,那麼需要進行下一步解析(如果目的MAC不是本機,說明是二層轉發,不繼續處理)。透過查詢轉發表,發現不是自己的,而是需要傳送到Port2,如果不知道PC-B的MAC地址,那麼需要傳送ARP報文,詢問它的MAC地址,將目的MAC換成PC-B的MAC,源MAC換成Port2的MAC地址。
總之,IP裝置通訊時,我們用的是IP地址,二層網路通訊時,需要透過ARP協議轉換成“下一跳”的MAC地址。同一網段通訊,雙方的源MAC、目的MAC、源IP、目的IP是不變的。不同網段通訊時,雙方的源IP、目的IP是不變的,但是源MAC和目的MAC每“跳一次”都要更新,分別是上一個埠的MAC和下一跳的MAC。
ARP協議實現IP地址到MAC地址的轉換。日常使用中,我們用的是IP地址通訊,而不是直接使用MAC地址,比如同一網段中,PC-A和PC-B通訊,但是PC-A不知道PC-B的MAC地址,那麼PC-A就需要傳送ARP廣播,詢問“xxx的MAC地址是多少啊”,PC-B收到廣播資訊後,就會給出ARP響應“我的MAC地址是xxx”,如下圖所示▼。
報文的轉發以我們常見的乙太網幀為例,如下圖所示,PC-A向PC-B傳送IP報文,在報頭需要封裝雙方的地址資訊,源IP地址就是PC-A的IP地址,目的IP地址就是PC-B的IP地址,源MAC地址是PC-A的MAC地址。目的MAC地址是路由器Port1的MAC地址,也就是閘道器MAC地址,這是因為PC-A和PC-B不在同一個網段,其中要用到ARP協議進行轉換。
路由器收到這個報文後,發現目的MAC地址是本機Port1埠的,那麼需要進行下一步解析(如果目的MAC不是本機,說明是二層轉發,不繼續處理)。透過查詢轉發表,發現不是自己的,而是需要傳送到Port2,如果不知道PC-B的MAC地址,那麼需要傳送ARP報文,詢問它的MAC地址,將目的MAC換成PC-B的MAC,源MAC換成Port2的MAC地址。
總之,IP裝置通訊時,我們用的是IP地址,二層網路通訊時,需要透過ARP協議轉換成“下一跳”的MAC地址。同一網段通訊,雙方的源MAC、目的MAC、源IP、目的IP是不變的。不同網段通訊時,雙方的源IP、目的IP是不變的,但是源MAC和目的MAC每“跳一次”都要更新,分別是上一個埠的MAC和下一跳的MAC。