天天看點

運輸層概述

運輸層在計算機網絡五層協定的位置

運輸層概述

關鍵字說明

計算機通信:通信就是交換資料,例:主機A與主機B通信,即為主機A與主機B交換資料

主要層負責

  • 網絡層:負責主機與主機之間的通信,例:主機A與主機B通信
  • 應用層:負責主機程序與主機程序之間的通信,例:主機A中的QQ程式與主機B中的QQ程式通信(同一個主機上會有多個不同的應用)
  • 網絡層

    :為應用層程序通信提供服務,應用層有許多應用,網絡層為應用層提供通用的通信服務

總結:IP層(同網際層)為主機之間提供邏輯通信,而運輸層為應用程序之間提供端到端的邏輯通信

運輸層概述

程序之間的通信

從IP層(同網際層)來說,通信的兩端是兩台主機。IP資料報的首部明确地标志了這兩台主機的IP位址。下圖為IP資料報格式

運輸層概述

從IP層來說,隻是負責兩台主機之間通信的兩端是。由于主機中運作多個應用(如浏覽器,QQ,Foxmail郵件等應用)。也就是說真正進行通信的實體是在主機中的程序(一個應用可了解為一個程序),即這台主機中的一個程序和另一台主機中的一個程序在交換資料。

那麼運輸層在程序之間通信承接什麼重要的功能

運輸層概述

假設有兩台主機X,Y。其中應用A與應用C互相通信,應用B與應用D互相通信。而IP層隻負責主機X與主機Y之間的通信,那麼傳輸層将必須具有重要的功能,

複用

分用

運輸層概述

上述圖檔隻說明了單方向資料傳輸,實際上是雙向傳輸,這裡為了簡單說明

  • 複用,複用是站在發送端角度來看,由于主機運作的應用有多個,但是他們都需要進行應用通信,也就是需要發送資料,那麼運輸層可以為不同的應用提供發送資料服務,則可以了解為不同的應用共同使用運輸層提供的端對端通信服務(端對端可了解為程序之間的通信)
  • 分用,複用是站在接收端角度來看,由于主機運作的應用有多個,那麼如何将運輸層收到的通信資料正确傳遞到正确的應用(如,是把資料傳遞給QQ應用,還是浏覽器應用),那麼運輸層可以為不同的應用提供接收資料服務
運輸層概述

運輸層還包括其他功能如,對收到的封包進行差錯檢查,這裡就不再說明

總結:從通信和資訊處理的角度看,

運輸層向它上面的應用層提供通信服務

,它屬于面向通信部分的最高層,同時也是使用者功能中的最低層

運輸層的重要協定

TCP/IP 的運輸層有兩個不同的協定:

  1. 使用者資料報協定UDP(User Datagram Protocol)
  2. 傳輸控制協定TCP(Transmission Control Protocol)

兩種協定所在位置

運輸層概述

按照OSI的術語,兩個對等運輸實體在通信時傳送的資料機關叫做

運輸協定資料單元TPDU(Transport Protocol Data Unit)

。但在TCP/IP體系中,則根據所使用的協定是TCP或UDP,分别稱之為

TCP封包段(segment)

UDP使用者資料報

  • UDP在傳送資料之前

    不需要先建立連接配接

    。遠地主機的運輸層在收到UDP封包後,不需要給出任何确認。雖然UDP不提供可靠傳遞,但在某些情況下UDP卻是一種最有效的工作方式(大多數應用遠端客戶大多時候都不線上,若使用TCP,則要先建立連接配接才能傳輸資料)。
  • TCP則

    提供面向連接配接的服務

    。在傳送資料之前必須先建立連接配接,資料傳送結束後要釋放連接配接。TCP不提供廣播或多點傳播服務。由于TCP要提供可靠的、面向連接配接的運輸服務,是以不可避免地增加了許多的開銷,如确認、流量控制、計時器以及連接配接管理等。這不僅使協定資料單元的首部增大很多,還要占用許多的處理機資源。

一些應用和應用層協定主要使用的運輸層協定(UDP或TCP)

應用 應用層協定 運輸層協定
域名系統 DNS UDP
檔案傳送 TFTP UDP
路由選擇協定 RIP UDP
動态IP位址配置 DHCP UDP
網絡管理 SNMP UDP
遠端檔案伺服器 NFS UDP
IP電話 專用協定 UDP
流式多媒體通信 專用協定 UDP
多點傳播 IGMP UDP
電子郵件 SMTP TCP
遠端終端輸入 TELNET TCP
網際網路 HTTP TCP
檔案傳送 FTP TCP
運輸層概述

運輸層的端口

圖一

運輸層概述

圖二

運輸層概述

上述我們提到了複用與分用的概念,那麼計算機是如何來實作這個功能呢?

當我們啟動一個應用後,會為計算機的程序配置設定一個程序辨別符,稱為程序的PID

運輸層概述

那我們是否可以使用程序的PID來實作複用與分用功能,答案是不可行的,可以簡述為以下幾點

  1. 計算機的作業系統種類很多,而不同的作業系統又使用不同格式的程序辨別符,無法統一
  2. 由于程序的建立和撤銷都是動态進行的,PID可以随着變化,是以通信的雙方很難知道對方主機運作着哪些程序,即無法知道對方有哪些程序PID
  3. 同一台主機可以啟動相同的應用,如啟動多個QQ應用,那麼PID肯定是多個,且PID數字是任意的,那麼通信的雙方幾乎很難知道對方有哪些程序PID

為了使運作不同作業系統的計算機的應用程序能夠互相通信,就

必須用統一的方法

對 TCP/IP 體系的應用程序進行标志。解決這個問題的方法就是在運輸層使用

協定端口号

(protocol port number),或通常簡稱為

端口

(port)

簡單的可以了解為,端口是将主機中的應用進行統一通信的邏輯區分,即一個端口代表着一個應用,而傳輸層通過端口即可完成通信中的複用與分用功能。這種統一可以屏蔽掉不同作業系統的處理細節。

TCP/IP的運輸層用一個16位端口号來标志一個端口。16位的端口号可允許有65535個不同的端口号(2的16次方-1),這個數目對一個計算機來說是足夠用的。但端口号隻具有本地意義,即不同的主機,相同的端口,運作的應用也是不同的。

端口的分類

根據通信我們可以将通信的雙方分為用戶端與服務端,因為傳輸層的端口号分為兩大類

運輸層概述
  • 伺服器端使用的端口号

    ,再細分可以分為兩類,最重要的一類叫做熟知端口号或系統端口号,數值為

    0~1023

    。這些數值可在網址http://www.iana.org/查到。另一類叫做登記端口号,數值為

    1024~49151

    。這類端口号是為沒有熟知端口号的應用程式使用的(比如我們自己開發的某一個應用,服務端可以使用8888)。
常用應用 端口 說明
ftp 21 File Transfer Protocol
ssh 22 The Secure Shell (SSH) Protocol
telnet 23 Telnet
smtp 25 Simple Mail Transfer
domain 53 Domain Name Server
tftp 69 Trivial File Transfer
http 80 World Wide Web HTTP
pop3 110 Post Office Protocol - Version 3
sftp 115 Simple File Transfer Protocol
snmp 161 SNMP
imap3 220 Interactive Mail Access Protocol v3
https 443 HTTPS
運輸層概述
  • 用戶端使用的端口号

    數值為

    49151~65535

    。由于這類端口号僅在客戶程序運作時才動态選擇,是以又叫做短暫端口号。這類端口号留給客戶程序臨時使用。客戶程序結束後釋放這個臨時端口号,這個端口号就可以供其他

    客戶程序使用。

繼續閱讀