网络体系架构—运输层协议概述
一、進程之間的通信
從通信和信息處理的角度看,運輸層向它上面的應用層提供通信服務,它屬于面向通信部分的最高層,同時也處于用戶功能中的最底層。下面通過一個示意圖來說明運輸層的作用,圖中的 5,4,3,2,1 分別對應網絡體系架構中的應用層,傳輸層,網絡層,鏈路層與物理層。
從 IP 層(網絡層)來看,通信的兩端是兩臺主機。 IP 數據報的首部明確的標志了兩臺主機的 IP 地址。但“兩臺主機之間的通信”這種說法還不夠清楚,因為真正通信的實體是在主機中的進程。因此嚴格的講,兩臺主機之間進行通信就是兩臺主機的應用進程互相通信。因此可以看出網絡層與運輸層有明顯的區別:網絡層為主機之間提供邏輯通信,而運輸層為應用進程之間提供端到端的邏輯通信。
二、復用與分用
在上面的圖中,主機 A 的應用進程 AP1 和主機 B 的應用進程 AP3 通信,與此同時,應用進程 AP2 也和也和對方的應用進程 AP4 通信。表明應用層有一個很重要的功能—復用(multiplexing)和分用(demultiplexing)。這里“復用”是指在發送方的不同的應用進程都可以使用同一個運輸層協議傳送數據(需要加上適當的頭部信息)。“分用”是指接收方的運輸層在剝去報文的頭部后能夠把這些數據正確交付給目的地的應用進程。
應用層所有的應用進程都可以通過運輸層傳送到 IP 層(網絡層),這就是復用。運輸層從 IP 層收到發送給各應用進程的數據后,必須交付給指明的各應用進程,這就是分用。
三、兩個主要協議
根據引用程序的不同,運輸層提供了兩種不同的協議,即面向連接的傳輸控制協議 TCP(Transmisssion Controll Protocol) 和無連接的用戶數據報協議 UDP(User Datagram Protocol)。
UDP 在傳輸數據之前不需要先建立連接,UDP 傳送的數據單位是 UDP 用戶數據報。遠程主機的運輸層在收到 UDP 報文后,不需要做出任何的確認。雖然 UDP 不提供可靠的交付,但是在某些情況下卻是一種最有效的工作方式。
TCP 提供面向連接的服務,TCP 傳送的數據單位是TCP 報文段。在傳輸數據之前必須先建立連接,數據傳送結束后需要釋放連接。TCP 不提供廣播或多播服務。由于 TCP 提供可靠的、面向連接的運輸服務,因此相對于 UDP 不可避免的增加了很多的開銷,比如確認流量控制、計時器以及連接管理等。
關于TCP 與 UDP 這里只是作了一個簡單的概述,在后面的博文后對這兩個協議分別作具體的介紹。下面是一些應用和應用層協議主要使用的運輸層協議:
| 電子傳送 | SMTP(簡單郵件傳送協議) | TCP |
| 萬維網 | HTTP(超文本傳輸協議) | TCP |
| 文件傳送 | TFTP(簡單文件傳送協議) | UDP |
| 域名解析 | DNS(域名系統) | UDP |
| IP 地址配置 | DHCP(動態主機配置協議) | UDP |
四、端口
我們知道主機之間的通信實際上是應用進程之間的通信,但是一個主機上可能會有很多應用進程,如何識別這些應用進程呢?解決這個問題的方法就是在運輸層使用協議端口號(protocol port number),或者簡稱為端口(port)。這就意味著,雖然通信的終點是應用進程,但只要把傳送的報文交給目的主機的某個合適的端口,剩下的工作就由 TCP 或 UDP 來完成。
端口分為硬件端口與軟件端口,硬件端口是不同硬件設備進行交互的接口,而軟件端口是應用層的各種協議進程與運輸實體進行層間交互的一種地址。
由此可見,兩個計算機中的進程要互相通信,不僅需要知道對方的 IP 地址(為了找到對方的計算機),而且還需要知道對方的端口號(為了知道對方計算機中的某個進程)。這個過程可以類似我們生活中的寄信,當我們要給某人寫信時,就必須要在信封上標注收件地址(相當于 IP 地址),還要寫上收件人的名字(相當于端口號),除了需要標注收件人的信息外,還需要在信封上寫明自己的地址,讓收件人知道是誰的來信。
五、總結
- 網絡層為主機之間提供邏輯通信,而運輸層為應用進程之間提供端到端的邏輯通信。
- 運輸層有兩個主要的協議:UDP 和 TCP。它們都提供復用和分用,以及差錯檢測的功能。UDP 提供不可靠的數據交付,TCP 提供可靠的數據交付。
- 兩臺計算機中的進程要互相通信,不僅需要知道對方的 IP 地址(為了找到對應的計算機),還需要知道對方應用進程的端口號(為了找到對方計算機中的應用進程)。
參考書籍:
《計算機網絡》 謝希仁 著
總結
以上是生活随笔為你收集整理的网络体系架构—运输层协议概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 五菱荣光1.8变速箱维修后空不了档怎么回
- 下一篇: MySql连接查询与联合查询