主機A和主機B通信報文的轉發過程
1、主機A和主機B在同一個二層網絡中,直接走二層交換

主機A
查看自己的ARP緩存,檢查是否有主機B的IP到MAC的映射,
如果有映射,構造報文,目的IP為主機B的IP,源IP為主機A的IP,目的MAC為主機B的MAC,源MAC為主機A的MAC,將報文發送給交換機C,交換機C進行MAC地址表學習,將主機A的MAC和報文入端口號記錄下來,然后交換機C查看自己的MAC轉發表,檢查是否有主機B的MAC到端口的映射,如果有映射,獲取對應的端口,將報文從此端口轉發出去,報文到達主機B。如果交換機C沒有主機B的MAC轉發表映射,采用洪泛的形式廣播報文,主機B收到報文后向主機A回復,交換機C進行MAC表學習,將主機B的MAC和報文入端口號記錄下來。
如果主機A沒有主機B的ARP映射,主機A需要發送ARP請求,以獲取主機B的MAC,將報文發往交換機C,交換機C采用洪泛的形式廣播報文,主機B收到廣播報文后,在自己的ARP緩存表中寫入主機A的IP到MAC的映射,將自己的MAC封裝到ARP回復報文中,單播給主機A,主機A獲取到主機B的MAC后,在自己的ARP緩存表中寫入主機B的IP到MAC的映射,構造報文發送給主機B,過程同上。
主機B向主機A回復報文的過程類似。
2、主機A和主機B不在同一個網絡中,走三層路由

主機A查看自己的ARP緩存表,檢查是否有路由器E的IP到MAC的映射,如果有映射,獲取路由器E的MAC,構造報文,目的IP為主機B的IP,源IP為主機A的IP,目的MAC為路由器E的MAC,源MAC為主機A的MAC,將報文通過交換機C發往路由器E,過程同上。
如果主機A沒有路由器E的IP到MAC的映射,需要發送ARP請求,獲取路由器E的MAC,過程同上。路由器E收到主機A的報文后,剝離報文的MAC幀頭,查詢路由表,發現目標主機B所在的網絡是直連的,查看自己的ARP緩存表,如果有主機B的IP到MAC的映射關系,獲取主機B的MAC,封裝報文MAC幀頭,目的MAC為主機B的MAC,源MAC為路由器E的MAC,將報文通過交換機D發往主機B,如果路由器E沒有主機B的IP到MAC的映射關系,需要發送ARP請求,獲取主機B的MAC,過程同上。
主機B向主機A回復報文的過程類似。
注:路由器上的路由表一般是配置靜態路由或者通過路由協議自動學習的。