計算機網絡5:數據在兩臺計算機之間是怎樣傳輸的?

數據在兩臺計算機之間的傳輸總的來說包括了封裝和解封兩個過程

封裝(5層協議)

以傳送一張圖片爲例
應用層:將jpg格式的圖片數據轉化成計算機可以識別的0101的二進制的比特流
傳輸層:將應用層傳輸下來的數據進行分段,傳輸層的數據包也叫數據段/數據報(UDP)。並給每一段加上傳輸層的頭部,比如TCP頭部包括【源端口號,目的端口號,序列號】,序列號是用來標識分段的比特流的。
計算機網絡5:數據在兩臺計算機之間是怎樣傳輸的?
網絡層:從傳輸層再將數據送到網絡層,並給每個數據段前邊再加上網絡層的頭部【源IP地址,目的IP地址】,網絡層的數據包也叫組。IP數據報的格式:
計算機網絡5:數據在兩臺計算機之間是怎樣傳輸的?
那我們怎麼知道目的IP地址?
這裏就用到了應用層的DNS協議--域名解析服務器。可以通過域名查到對應的IP地址。
數據鏈路層:從網絡層將數據包傳到數據鏈路層,並將組封裝成幀,並添加以太網幀的頭部(MAC頭部),幀頭部包括【源MAC地址,目的MAC地址,FCS】,FCS是差錯檢驗。
那我們怎麼知道目的MAC地址?
這裏用到了廣播和ARP協議,源主機通過廣播的形式向同一個子網內的計算機發送攜帶源IP地址的數據包,同一個子網內的計算機在收到數據包後,會和自己的IP地址做對比,如果就是自己,會響應自己的MAC地址給源主機,源主機再接受到目的MAC地址後,會將該MAC地址寫到自己的ARP表中。
如果其他主機發現不是自己的IP地址就會把數據包丟棄

這裏強調是統一個子網下的,怎麼確定是同一個子網呢?如果網絡號一樣就是同一個子網。然後呢?網絡號就是IP地址與子網掩碼做按位與&運算得到。
物理層:數據幀到物理層後,就會被轉化爲電信號進行傳輸,建立計算機的連接。

解封

解封就是封裝的逆過程
物理層:建立計算機的連接,通過電信號高低電平來通信傳輸。到達接收端計算機後,物理層將電信號轉爲二進制比特流,並將數據發送到數據鏈路層。
數據鏈路層:查看幀頭部的MAC地址,和自己一樣,就拆掉幀頭部,向上層傳。不一致,終端設備就丟掉數據。
網絡層:查看目標IP和自己是否一樣,一樣就進行後續工作,否則,丟棄
傳輸層:根據TCP頭部判斷數據段送往哪個應用層協議或程序,然後將數據段重組,送往應用層
應用層:將二進制數據進行解碼,還原丞發送者傳輸的原始信息

實際網絡環境中的數據傳輸過程

最終的發送方和接收方往往相隔千山萬水,中間會有很多的硬件設備【交換機和路由器】起到中轉的作用。
1.發送主機按照之前的過程進行數據封裝
2.從發送主機物理網卡發出的電信號通過網線到達交換機,交換機將電信號轉換成二進制數據送往交換機的數據鏈路層
因爲交換機屬於數據鏈路層的設備,所以它將可以查看數據幀頭部的內容,但不會進行封裝和解封裝過程。當交換機發現數據幀頭部封裝的MAC地址不屬於自己的MAC地址,他不會像終端設備那樣將數據幀丟棄,而是根據該MAC地址將數據幀智能地轉發到路由器設備,在轉發前要重新將二進制數據轉換成物理的電信號。
3.當路由器收到數據後,會拆掉數據鏈路層的MAC頭部信息,將數據送達網絡層,這樣IP頭部信息就“暴露”在最外面。路由器將檢測數據包頭部的目標IP地址信息,並根據該信息進行路由過程,智能地將數據報文轉發到下一跳路由器上,在轉發前要重新封裝新的MAC頭部信息,並將數據轉換成二進制數。
4.之後的過程有點大同小異了....

參考

http://www.vecloud.com/article/20200325223755.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章