1. 程式人生 > >數據轉發過程

數據轉發過程

數據轉發過程

技術分享

數據可以在同一網絡內或者不同網絡間傳輸,數據轉發過程也分為本地轉發和遠程轉發,但兩者的數據轉發原理是基本一樣的,都是遵循TCP/IP協議簇。

技術分享

主機A會對待發送的應用數據首先執行加密和壓縮等相關操作,之後進行傳輸層封裝。Web應用是基於傳輸層的TCP協議傳輸數據的。主機A使用TCP進行報文封裝時,必須填充源端口和目的端口字段,初始序列號和確認序列號字段,標識位,窗口字段以及校驗和字段。此例中數據段的源端口號為主機A隨機選擇的1027號端口,目的端口號為服務器A的TCP知名端口80。

技術分享

主機A完成傳輸層封裝後,一般會進行網絡層數據封裝,在使用IP進行封裝時,需要明確IP報文的源和目的地址。如果IP報文的大小大於網絡的最大傳輸單元(MTU),則該報文有可能在傳輸過程中被分片。

生存時間(TTL)字段用來減少網絡環路造成的影響。ARG3系列路由器產生的數據包,默認TTL值為255。路由器轉發一個數據包時,該值會被減1,如果路由器發現該值被減為0,就會丟棄該數據包。這樣,即使網絡中存在環路,數據包也不會在網絡上一直被轉發。

協議字段標識了傳輸層所使用的協議。

技術分享

主機A完成傳輸層封裝後,一般會進行網絡層數據封裝,在使用IP進行封裝時,需要明確IP報文的源和目的地址。如果IP報文的大小大於網絡的最大傳輸單元(MTU),則該報文有可能在傳輸過程中被分片。

生存時間(TTL)字段用來減少網絡環路造成的影響。ARG3系列路由器產生的數據包,默認TTL值為255。路由器轉發一個數據包時,該值會被減1,如果路由器發現該值被減為0,就會丟棄該數據包。這樣,即使網絡中存在環路,數據包也不會在網絡上一直被轉發。

協議字段標識了傳輸層所使用的協議。

技術分享

主機A完成傳輸層封裝後,一般會進行網絡層數據封裝,在使用IP進行封裝時,需要明確IP報文的源和目的地址。如果IP報文的大小大於網絡的最大傳輸單元(MTU),則該報文有可能在傳輸過程中被分片。

生存時間(TTL)字段用來減少網絡環路造成的影響。ARG3系列路由器產生的數據包,默認TTL值為255。路由器轉發一個數據包時,該值會被減1,如果路由器發現該值被減為0,就會丟棄該數據包。這樣,即使網絡中存在環路,數據包也不會在網絡上一直被轉發。

協議字段標識了傳輸層所使用的協議。

技術分享

主機A在鏈路層封裝數據幀時,會遵循IEEE 802.3或Ethernet_II標準,Ethernet_II幀頭中的類型字段填充為0x0800,以表示網絡層使用的是IP協議。源MAC地址為主機A的MAC地址,目的MAC地址為網關路由器E0/0接口的MAC地址。

技術分享

主機A在鏈路層封裝數據幀時,會遵循IEEE 802.3或Ethernet_II標準,Ethernet_II幀頭中的類型字段填充為0x0800,以表示網絡層使用的是IP協議。源MAC地址為主機A的MAC地址,目的MAC地址為網關路由器E0/0接口的MAC地址。

技術分享

本例中,主機A發送數據幀到共享以太網,此網絡中的所有網絡設備都會收到該幀。設備收到幀之後,首先會進行FCS校驗。如果FCS校驗未能通過,則幀被立即丟棄。對於通過了FCS校驗的幀,設備會檢查幀中的目的MAC地址。如果幀中的目的MAC地址與自己的MAC地址不同,設備將丟棄幀,如果相同,則會繼續處理。處理過程中,幀頭幀尾會被剝去(也就是解封裝),剩下的數據報文會被根據幀頭中的類型字段的值來送到網絡層中的對應協議模塊去處理。


技術分享

本例中,主機A發送數據幀到共享以太網,此網絡中的所有網絡設備都會收到該幀。設備收到幀之後,首先會進行FCS校驗。如果FCS校驗未能通過,則幀被立即丟棄。對於通過了FCS校驗的幀,設備會檢查幀中的目的MAC地址。如果幀中的目的MAC地址與自己的MAC地址不同,設備將丟棄幀,如果相同,則會繼續處理。處理過程中,幀頭幀尾會被剝去(也就是解封裝),剩下的數據報文會被根據幀頭中的類型字段的值來送到網絡層中的對應協議模塊去處理。

技術分享

該示例中,服務器A處於一個共享以太網中,兩臺服務器都會收到RTB發送的數據幀。該幀的目的MAC地址與服務器B的接口MAC地址不匹配,所以會被服務器B丟棄。

服務器A成功收到該幀,並通過FCS校驗。服務器A將利用幀中的類型字段來識別在網絡層處理該數據的協議。該示例中,服務器A會將解封裝後的此數據交給網絡層的IP協議來進行處理。

技術分享

該示例中,服務器A處於一個共享以太網中,兩臺服務器都會收到RTB發送的數據幀。該幀的目的MAC地址與服務器B的接口MAC地址不匹配,所以會被服務器B丟棄。

服務器A成功收到該幀,並通過FCS校驗。服務器A將利用幀中的類型字段來識別在網絡層處理該數據的協議。該示例中,服務器A會將解封裝後的此數據交給網絡層的IP協議來進行處理。

技術分享

當IP報文頭被處理完並剝離後,數據段會被發送到傳輸層進行處理。在此示例中,傳輸層協議使用的是TCP,且發送端和接收端已經通過三次握手建立了連接。傳輸層收到該數據段後,TCP協議會查看並處理該數據段頭部信息,其中目的端口號為80,用於表示處理該數據的應用層協議為HTTP協議。TCP處理完頭部信息後會將此數據段頭部進行剝離,然後將剩下的應用數據發送到HTTP協議進行處理。


本文出自 “大李子” 博客,謝絕轉載!

數據轉發過程