計算機網路中不同層的運作
您是否曾經想過網路的不同層如何協同工作以傳送訊息?在深入細節之前,讓我們首先了解一些基本術語。
地址解析協議 (ARP) 請求是一種將 IP 地址轉換為 MAC 地址的協議。
路由表是一組規則,通常以表格形式顯示,用於確定透過網際網路協議 (IP) 網路傳輸的資料包的路由位置。
在典型的網路中,主機裝置或主計算機包含所有層,另一方面,路由器具有網路層、資料鏈路層和物理層。
示例
假設我們想向主機 2 上的接收方傳送一條訊息,該接收方位於不同的網路上。
主機 1 的 IP 和 MAC 地址分別為 **I1、M1**,主機 2 的 IP 和 MAC 地址分別為 **I2、M2**。
假設主機 1 的預設閘道器為 **路由器 1**(IP 地址為 IR1,MAC 地址為 MR1),主機 2 的預設閘道器為 **路由器 2**(IP 地址為 IR2,MAC 地址為 MR2)。
對於主機 1
假設應用層想要向主機 2 傳送訊息“M”。
主機 1 的應用層將其傳遞給主機 1 的傳輸層。
傳輸層向訊息 M 新增一個報頭,其中包含主機 1、主機 2 的埠號 (x、y)。因此,訊息現在為 (M、x、y),並傳遞給主機 1 的網路層。
網路層還向訊息新增一個報頭,其中包含主機 1 和主機 2 的 IP 地址。訊息現在為 (M、x、y、I1、I2),並傳遞給資料鏈路層。
資料鏈路層在將其傳遞給物理層之前也向訊息新增一個報頭。由於主機 2 不在同一網路中,它將輸入主機 1 的 MAC 地址和預設閘道器的 MAC 地址(透過傳送 ARP 請求來了解 MAC 地址)。訊息現在為 (M、x、y、I1、I2、M1、MR1),並傳遞給物理層。
物理層將給定訊息轉換為位元並將其傳送到路由器 1。
在路由器 1 中
路由器 1 的資料鏈路層看到資料包後,向主機 1 的資料鏈路層傳送確認,並在將其轉發到路由器 1 的網路層之前刪除主機 1 DLL 新增的報頭資訊。
網路層接收到的訊息為 (M、x、y、I1、I2)。
網路層看到目標 IP 地址。由於目標不存在於其網路中,它將決定將其轉發到路由器 2。
路由器 1 的網路層在檢視路由器 1 的路由表後做出此決定。
現在,路由器的 DLL 向訊息新增一個報頭。這次,源 MAC 地址為 MR1,目標 MAC 地址為 MR2(使用 Arp 查詢)。
透過這種方式,接收方只知道源的 IP 地址,但永遠不知道源的 MAC 地址。訊息現在為 (M、x、y、I1、I2、MR1、MR2),併發送到物理層。
物理層將其轉換為位元並將其傳送到路由器 2。
對於路由器 2
物理層將位元轉換為訊息,並通知路由器 2 的 DLL。
現在,路由器 2 的 DLL 在看到訊息後向路由器 1 的 DLL 傳送確認。
路由器 2 的 DLL 刪除 MAC 地址並將其轉發到網路層。
網路層透過檢查路由器 2 上存在的路由表發現主機 2 位於同一網路中。
現在訊息為 (M、x、y、I1、I2、MR2、M2),並傳遞給物理層,物理層將其轉換為位元並將其傳送到主機 2。
使用主機 2
物理層將其轉換為位元並將訊息轉發到 DLL。
DLL 向路由器 2 的 DLL 傳送確認,並刪除傳遞到網路層的訊息中的 MAC 地址。
現在,網路層刪除 IP 地址並將其提供給傳輸層。
主機 2 的傳輸層向主機 1 的傳輸層傳送確認,並刪除埠號並將訊息提供給該位置的程序(或應用程式)。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP