-
復用(Multiplexing)的概念
- 定義:在傳輸層,復用是指多個應用進程可以使用同一個傳輸層協議(如 TCP 或 UDP)來發送數據。從應用層的角度看,不同的應用進程(如網頁瀏覽器、郵件客戶端等)都有自己的數據要發送,這些數據會通過傳輸層協議進行封裝后發送到網絡層。傳輸層通過在發送端為不同應用進程的數據添加適當的頭部信息(包括端口號等),使得這些數據能夠共享網絡層提供的服務,就好像多個乘客共用一輛公共汽車一樣。
- 示例:以 TCP 協議為例,一個主機上可能同時運行著多個網絡應用程序,如 Web 瀏覽器、文件傳輸程序和電子郵件客戶端等。這些應用程序都需要通過 TCP 協議將數據發送到網絡中。TCP 會為每個應用程序的數據添加不同的端口號(如 Web 瀏覽器使用 80 端口,文件傳輸程序使用 21 端口等),然后將這些帶有不同端口號標記的數據一起發送到網絡層。這就實現了多個應用程序復用 TCP 協議進行數據發送。
-
分用(Demultiplexing)的概念
- 定義:分用是復用的逆過程,它發生在接收端。當網絡層將接收到的數據交給傳輸層后,傳輸層會根據數據中的端口號等信息,將數據準確地分發給相應的應用進程。就好像公共汽車到達目的地后,乘客根據自己的目的地信息(類似于端口號)下車前往各自的地方。
- 示例:在接收端主機上,傳輸層收到來自網絡層的多個數據包。這些數據包帶有發送端添加的端口號信息。傳輸層會檢查每個數據包的端口號,然后將數據轉發給與該端口號對應的應用進程。例如,如果一個數據包的端口號是 80,傳輸層就知道這個數據包是發給 Web 服務器應用程序的,于是將它分發給該應用程序進行處理。
-
端口號在復用分用中的作用
- 端口號是實現傳輸層復用和分用的關鍵。它作為一種標識符,用于區分不同的應用進程。在 TCP 和 UDP 協議中,端口號是一個 16 位的整數,范圍是 0 - 65535。其中,0 - 1023 被稱為熟知端口號,用于一些著名的網絡服務(如 HTTP 的 80 端口、FTP 的 21 端口等)。應用程序在發送和接收數據時,通過指定正確的端口號,使得傳輸層能夠準確地進行復用和分用操作,確保數據能夠在正確的應用進程之間