資料包的轉發流程

weixin_34067049發表於2016-12-14

資料包的轉發流程

 

環境是三層交換機有兩個網段,10.0.0.1/24和192.168.0.1/24,pc1是10段的,pc2是192段的。pc1要與pc2通訊。過程如下
1.pc1將要與pc2通訊,首先根據網路卡的ip地址與掩碼算出pc2是否與pc1是同網段,如果是同網段直接二層轉發,如果不是將跨網段轉發
2.pc1算出pc2和自己不是同網段,所以要將資料包傳送到閘道器由閘道器進行三層定址轉發。
3.pc1到閘道器為二層轉發,也就是資料幀轉發,資料幀轉發需要知道對方mac地址,首先pc1會讀電腦的arp快取,看是否有閘道器ip與mac地址的對應關係,如果有將直接封裝幀轉發;如果沒有將使用arp協議也就是廣播,攜帶自己的ip地址與mac地址,目的地址為閘道器ip,mac地址為ffff-ffff-ffff。閘道器收到此arp廣播後,將回復pc1自己的mac地址,資料包為源閘道器ip和mac地址目的為pc1ip和mac地址。
4.pc1收到資料包後會將此ip和mac地址寫入到電腦的arp快取表裡,並直接封裝資料包,三層ip頭為源pc1-ip,目的為pc2-ip,二層幀格式為源pc1-mac,目的為閘道器mac地址(記住此包頭)。
5.閘道器將收到pc1發來的資料包,進行拆包,根據其目的ip地址進行定址(路由表),找到對應的路徑(也就是192段vlan)。
6.三層交換機會根據其目的ip地址進行本機的arp快取查詢,如果查詢到ip和mac地址的對應關係將直接封裝轉發,如果沒有交換機將傳送arp廣播包獲取目的ip地址的mac地址(廣播包將只傳送192段vlan,其他vlan不廣播)。
7.三層交換機得知pc2-mac地址後將轉發資料,三層包頭為源pc1-ip,目的為pc2-i,二層幀包頭為源192段閘道器mac,目的為pc2-mac。
8.pc2將收到三層交換髮來的資料包,進行拆封即可獲取資料,並回復pc1過程同上。

三層交換機等同於路由器。也就是說源ip和目的ip在資料包裡一直不變(不經過nat的情況),mac地址將時刻改變。廣播只存在二層。三層情況下是路由定址。

相關文章