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