最近在梳理計算機網路相關知識時,發現好多網路協議理解不到位,協議的層次概念模糊,後來查了一些資料,在此梳理一下運輸層相關的網路協議。
首先,我們在實際應用中使用的是tcp/ip四層體系結構。它包含應用層,運輸層,網際層,網路介面層。
應用層是體系結構中的最高層。應用層的任務是通過應用程序間的互動來完成特定網路應用。應用層協議是指應用程序間通訊和互動規則。應用層互動的資料單元稱為報文(message)。
運輸層的任務是負責向兩台主機中程序間的通訊提供通用的資料傳輸服務。應用程序利用該服務傳送應用層報文。運輸層主要使用以下兩種協議:
網路層負責為分組交換網上的不同主機提供通訊服務。網路層使用ip(internet protocol)協議。網路層把運輸層產生的報文段或使用者資料報封裝成分組或包進行傳送。分組也叫ip資料報。
下圖是沙漏計時器形狀的tcp/ip協議族示意:
下面著重介紹一下運輸層的協議。
運輸層向它上面的應用層提供通訊服務。運輸層有乙個很重要的功能------復用(multiplexing)和分用(demultiplexing)。
網路層為主機之間提供邏輯通訊,而運輸層為應用程序間提供端到端的邏輯通訊。根據應用程式的不同需求,運輸層需要有兩種不同的運輸協議。即面向連線的tcp和無連線的udp。運輸層向高層使用者遮蔽了下面網路核心的細節,它使應用程序看見的就好像在兩個運輸層實體之間有一條端到端的邏輯通訊通道。當運輸層採用面向連線的tcp協議時,儘管下面的網路是不可靠的(只提供盡最大努力服務),但是這種邏輯通訊通道就相當於一條全雙工的可靠通道。當運輸層採用無連線的udp協議時,這種邏輯通訊通道仍然是一條不可靠通道。
下圖給出一些應用和應用層協議主要使用的運輸層協議:
運輸層為了使不同作業系統的計算機的應用程序能夠互相通訊,就必須用統一的方法對tcp/ip體系的應用程序進行標誌。但是程序的建立和撤銷都是動態的。為了要解決通訊一方無法識別對方機器上的程序的問題。運輸層採用了協議埠號(protocol port number)。
tcp/ip的運輸層用乙個16位埠號來標誌乙個埠。埠號只具有本地意義。不同的計算機中,相同的埠號是沒有關聯的。由此可見,兩個計算機中的程序要互相通訊,不僅要知道對方的ip位址(為了找到對方的計算機)。而且要知道對方的埠號(為了找到對方計算機中的應用程序)。
運輸層的埠號分為兩類:一類是伺服器使用的埠號,一類是客戶端使用的埠號。
伺服器使用的埠號又分為兩類:一類是熟知埠號或系統埠號:數值是0-1023.下表有一些常用的埠號:
另一類是登記埠號:數值是1024~49151。這類埠號是為非熟知埠號的應用程式使用的。需要在iana上登記,避免重複。
客戶端使用的埠號僅在客戶程序執行時太動態選擇,又叫短暫埠號。數值為49152-65535。
udp協議只在ip的資料報服務上增加了很少的一點功能,就是復用和分用以及差錯檢測的功能。udp有以下特點:
udp的首部由四個字段組成,每個欄位的長度是2個位元組。
udp使用者資料報的首部和偽首部如下示意圖:
由於tcp內容比較多,關於tcp協議的介紹,單獨放在一篇blog裡。
計算機網路 運輸層
問題 一 運輸層為相互通訊的的應用程序提供邏輯通訊 問題二 埠和套接字的意義 問題三 理解udp和tcp協議 問題四 在不可靠的網路上實現可靠傳輸的工作原理 問題五 tcp的滑動視窗 流量控制 擁塞控制和連線管理 1 埠 應用層所有的應用程序都可以通過運輸層傳送到ip層,這就是復用 運輸層從ip層收...
計算機網路 運輸層
運輸層協議作用於端系統,為執行在不同主機上的程序提供了邏輯通訊,將主機間的交付擴充套件到程序間交付。該層的分組稱為segment 報文段 多路復用 主機把不同套接字 每生成乙個套接字同時分配乙個埠號 收集的資料封裝後生成報文段,傳送給網路層 多路分解 將運輸層報文段的不同資料 通過套接字的埠號 交付...
計算機網路 運輸層
運輸層協議為執行在不同主機上的應用程序之間提供了邏輯通訊 logic communication 功能。運輸層協議是在端系統中而不是在路由器中實現的 在傳送端,運輸層將從傳送應用程式程序接收到的報文轉換成運輸層分組 運輸層報文段,segment 實現的方法 可能 是將應用報文劃分為較小的塊,並為每塊...