天天看點

網絡中資料傳輸的流程

1. 資料傳輸的背景

(1) 現在網際網路中使用的是基于OSI七層模型的TCP/IP模型。TCP/IP模型包括五層,即實體層,資料鍊路層,網絡層,傳輸層,應用層;其中資料鍊路層又可以分為兩個子層,即LLC(邏輯鍊路控制層)和MAC(媒體通路控制層)。這些層的分工合作是資料正确傳輸的基礎。

(2) ARP協定(位址解析協定),它的主要功能是将網絡層IP位址轉化為資料鍊路層MAC位址。從IP位址到實體位址的映射有兩種方式:表格方式和非表格方式。在以太網中或者在同一區域網路中,所有對IP位址的通路都轉換為對資料鍊路層網卡MAC位址的尋找。如果主機A的ARP清單中沒有主機B的IP位址和對應的MAC位址,那麼在傳輸資料時是不可能到達主機B的。

(3)DNS(域名伺服器),它的主要功能是将域名轉換為對應的IP位址。在不同網段的資料傳輸中,主機A要先根據主機B的IP位址與子網路遮罩做與運算所得的結果——主機B所在的網絡号找到主機B所在的網絡,再根據MAC位址找到主機B。

2. 同一網段的資料傳輸

      假設在同一網段中的兩台主機A和B想要通信,A如果想給B發送資料,必須先将B的IP位址與它的子網路遮罩做與運算得出B所在的網絡号,A将所得的B的網絡号和自己的做比較,以判斷B和A是否在同一網段中,如果相同,則在同一網段,如果不同,則不在同一網段。如果A和B在同一網段,但是A沒有B的IP位址所對應的MAC位址資訊,則利用第二層廣播形式發送ARP請求封包,在封包中包含了A(源主機)和B(目标主機)的IP位址資訊。同一網段中的所有主機都可以收到并分析ARP封包,如果發現目标主機的IP位址和自己的不同,則丢棄封包,否則,就向A(源主機)發送ARP請求響應封包,封包的内容包括B(目标主機)的MAC位址。

      為了減少廣播量,網絡裝置通過ARP表在緩存中儲存IP與MAC位址的映射資訊。在一次 ARP的請求與響應過程中,通信雙方都把對方的MAC位址與IP位址的對應關系儲存在各自的ARP表中,以在後續的通信中使用。ARP表使用老化機制,删除在一段時間内沒有使用過的IP與MAC位址的映射關系。

       如果中間要經過交換機,交換機内部有一個資料庫專門用來儲存所有端口對應的網卡MAC位址。根據交換機的工作原理,它通過分析Ethernet包的標頭資訊(其中包含原MAC位址,目标MAC位址,資訊的長度等),取得目标B的MAC位址後,查找交換機中存儲的位址對照表(MAC位址對應的端口),确認具有此MAC位址的網卡連接配接在哪個端口上,然後将資料包發送到這個對應的端口,也就相應的發送到目标主機B上。

3. 不同網段的資料傳輸

      在不同網段的資料傳輸中, 主機A并不需要擷取遠端主機C的MAC位址,而是将IP分組發給預設網關,由網關網絡層完成轉發過程。如果A(源主機)沒有預設網關MAC位址的緩存記錄,則它會通過ARP協定擷取預設網關的MAC位址,是以在A的ARP表中隻能觀察到網關的MAC位址記錄,而觀察不到遠端主機C的 MAC位址。

(1)A要發送資料包到C,如果A沒有C的IP位址,則A首先要發出一個DNS請求,路由器B或者DNS域名解析伺服器會給A回應PC的IP位址,這樣A關于資料包網絡層和傳輸層的IP位址資訊就全了:源IP位址:A,目的IP位址:C。

(2)接下來A要知道如何到達C,A會發送一個ARP的位址解析請求,發送這個位址解析請求,不是為了獲得目标主機C的MAC位址,而是把請求發送到了路由器B中,然後路由器B會将自己的MAC位址會發送給源主機A,這樣A的資料包的資料鍊路層資訊也全了,源MAC位址:A的MAC位址,目的MAC位址:路由器B的MAC位址。

(3)然後資料會到達交換機A,交換機A看到資料包的資料鍊路層的目的MAC位址,是去往路由器B的,就把資料包發送到路由器B,路由器B收到資料包,首先檢視資料包的網絡層目的IP位址,根據路由選擇算法得到一張路由表,如果在自己的路由表中有去往C的路由,說明這是一個可路由的資料包。

(4)接下來就要進行路由傳送了,首先,由路由器B對封包進行IP重組或分組,修改資料鍊路層的報頭——将源MAC位址改為自己的,将目的MAC位址改為下一跳路由器C的MAC位址。将資料報傳送給路由器C,路由器C重複路由器B的工作,直至到達目的主機C所在的網絡,再利用區域網路通信,找到相應的主機C。

(5)從路由器B到路由器C再到主機C的過程在一個龐大的網絡系統中,在這個網絡中還要封裝一系列的協定,以完成資料的正确傳輸。

(6)如果在傳輸期間丢包或者到達主機C的資料包有錯誤,此時就需要發揮傳輸層TCP協定的作用了,對丢失的資料包進行重傳。

總結:資料傳輸的過程在主機A(源主機)中,就是利用遵循的某種協定逐層為資料添加報頭,添加報頭是為了找到目的主機并如何将資料安全正确的傳輸到目的主機。

在目的主機中,就是自下向上逐層解報頭過程,根據傳輸來的報頭決定将資料交給上層的哪一個協定,并正确的将報頭和資料單元分離開,接收到正确的資料。

在網絡中,由路由選擇協定完成資料的跋山涉水。

4. 幾個關鍵問題

(1)A和C的MAC位址如果是相同的話,會不會影響正常的通訊呢!答案是不會影響的,因為這兩個主機所處的區域網路被廣域網分隔開了,通過對發包過程的分析可以看出來,不會有任何的問題。而如果在同一個區域網路中的話,那麼就會産生通訊的混亂。當資料發送到交換機,端口資訊會有兩個相同的MAC位址,而這時資料會發送到兩個主機上,這樣資訊就會混亂。是以這也是保證MAC位址唯一性的一個理由。

(2)網關的含義:是說這樣一種裝置:如果主機要發包,就往這個裝置發送。也就是說此裝置要有路由功能或有去往外部網路的路徑。

在實際網絡裡,網關一般由路由器或server充當。

(3)辨別網絡中的一台計算機,一般至少有三種方法,最常用的是域名位址、IP位址和MAC位址,分别對應應用層、網絡層、實體層。網絡管理一般就是在網絡層針對IP位址進行管理,但由于一台計算機的IP位址可以由使用者自行設定,管理起來相對困難,MAC位址一般不可更改,是以把IP位址同MAC位址組合到一起管理就成為常見的管理方式。

繼續閱讀