寫在之前
最近學習謝希仁老師的《計算機網路》,發現很多知識繁雜難懂。在學習時做下筆記,一來方便自己複習,二來可以給他人些許幫助。如果有任何問題,歡迎學習交流。運輸層是整個網路體系結構中的關鍵層次之一。以下為重要概念:
運輸層協議的特點. 程序之間的通訊與埠等
udp 協議
重要的 tcp 協議和可靠傳輸的工作原理,包括停止等待協議和 arq 協議
tcp 報文段的首部格式
tcp 的三個重要問題:滑動視窗. 流量控制 和 擁塞控制機制
tcp 的連線管理
程序之間的通訊
運輸層向它上面的應用層提供通訊服務,它屬於面向通訊部分的最高層,同時也是使用者功能的最底層。
上圖說明了運輸層的作用。兩台主機進行通訊時,真正通訊的是兩台主機中的應用程序互相通訊。
運輸層的復用和分用功能:
-復用是指在傳送方不同的應用程序都可以使用同乙個運輸層協議傳送資料( 當然要加上適當的首部 )
-分用是指接收方的運輸層在剝去報文的首部後能把這些資料正確地交付給目的應用程序
運輸層提供了應用程序之間的邏輯通訊。邏輯通訊是指:運輸層之間的通訊並不是真正在兩個運輸層之間直接傳送資料。運輸層向應用層遮蔽了下面網路的細節,使應用程序看見的就是好像在兩個運輸層實體間有一條端到端的邏輯通訊通道。
網路層為主機之間提供邏輯通訊,而運輸層為應用程序之間提供端到端之間的邏輯通訊。
運輸層的兩個主要協議
tcp/ip 運輸層的兩個主要協議:
1. 使用者資料報協議 udp
udp 在傳送資料之前不需要先建立連線,接收方收到 udp 報文後,不需要進行確認,並且 udp 不支援可靠交付
2. 傳輸控制協議 tcp
tcp 提供面向連線服務,在傳輸資料之前必須先建立連線,資料傳送結束後要釋放連線,由於 tcp 要提供可靠. 面向連線的運輸服務,因此增加了許多開銷
兩個協議都有復用和分用,以及檢錯功能。當運輸層採用面向連線的 tcp 協議時,儘管下面的網路是不可靠的 ( 只提供盡最大努力服務 ),但這種邏輯通訊通道就相當於一條全雙工通訊的可靠通道。當採用無連線的 udp 連線時,這種邏輯通訊通道仍然是一條不可靠通道。
下表是一些應用和應用層協議主要使用的運輸層協議:
應用應用層協議
運輸層協議
電子郵件
smtp( 簡單郵件傳送協議 )
tcp全球資訊網
http( 超文字傳送協議 )
tcp檔案傳送
ftp( 檔案傳送協議 )
tcp路由選擇協議
rip( 路由資訊協議 )
udp檔案傳送
tftp( 簡單檔案傳送協議 )
udp網路管理
snmp( 簡單網路管理協議 )
udpip **
專用協議
udp
運輸層的埠
tcp/ip 的運輸層使用乙個 16 位埠號來標誌乙個埠,它只是為了標誌本計算機應用層中的各個程序在和運輸層互動時的層間介面。不同的計算機中,相同的埠號是沒有關聯的
兩台計算機中的程序要互相通訊,不僅要知道對方的 ip 位址 ( 為了找到對方的計算機 ),還要知道對方的埠號 ( 為了找到對方計算機中的應用程序 )。
運輸層的埠號可分為兩類:
1.伺服器使用的埠號
一類為熟知埠號或系統埠號,數值為 0 ~ 1023,指派給了 tcp/ip 最重要的一些應用程式,讓所有的使用者都知道。
常用的數值埠號:
應用程式
熟知埠號
另一類為登記埠號,數值為 1024 ~ 49151,為沒有熟知埠號的應用程式使用的
2.客戶端使用的埠號
數值為 49152 ~ 65535。這類埠號留給客戶程序選擇暫時使用。
udp 概述
使用者資料報協議 udp 只在 ip 的資料報服務上增加了復用和分用以及差錯檢測的功能
主要特點:
udp 是無連線的,即傳送資料前後不需要建立和釋放連線,因此減少了開銷和傳送資料之前的時延
udp 使用盡最大努力交付,即不保證可靠交付,因此主機不需要維持複雜的連線狀態表
udp 是面向報文的,傳送方的 udp 對應用程式交下來的報文,在新增首部後就向下交付 ip 層。在接收方的 udp,對 ip 層交上來的 udp 使用者資料報,在取出首部後就原封不動地交付給上層的應用程序。因此,應用程式必須選擇合適大小的報文
udp沒有擁塞控制,因此網路出現的擁塞不會降低源主機的傳送速率。但是又可能引起嚴重的擁塞問題
udp 支援一對一,一對多,多對一,多對多的互動通訊
udp 的首部開銷小,只有 8 個位元組,比 tcp 的 20 個位元組要端
udp 的首部格式
使用者資料報 udp 有兩個字段:資料字段 和 首部字段。首部由四個字段組成,每個欄位的長度是兩個位元組
- 源埠 源埠號。需要對方回信時選用。不需要時全為 0
- 目的埠 目的埠號。在終點交付報文時必須使用
- 長度 udp 使用者資料報的長度,其最小值是 8
- 校驗和 檢驗 udp 使用者資料報在傳輸中是否有錯
當運輸層從 ip 層收到 udp 資料報時,根據目的埠,通過相應的埠上交給應用程序。如果接收方 udp 發現報文中的目的埠號不正確,就丟棄該報文
udp 使用者資料報首部檢驗和
計算校驗和時,要在 udp 使用者資料報之前增加 12 個位元組的偽首部。偽首部只是計算時臨時新增的。
ip 資料報的校驗和只檢驗 ip 資料報的首部,而 udp 的校驗和是把首部和資料部分一起都校驗。
傳送方:
- 首先把全零放入檢驗和字段。
- 再把偽首部以及 udp 使用者資料報看成是由許多的 16 位的字串接起來的。若資料部分不是偶數個位元組,則要填入乙個全零位元組( 但此位元組不傳送 )
- 然後按二進位制反碼計算出這些 16 位字的和
- 將此和的二進位制反碼寫入校驗和字段後,就傳送 udp 資料報
接收方:
- 把收到的 udp 使用者資料報連同偽首部( 以及可能的填充全零位元組 ) 一起,按二進位制反碼求這些 16 位字的和。
- 當無差錯時其結果應為 全 1。否則就表明有差錯出現,接收方就會丟棄這個資料報
下圖是乙個計算校驗和的例子。假定使用者資料報的長度是 15 位元組,因此要新增乙個全 0 位元組。
偽首部的第 3 欄位全為零;第 4 欄位是 ip 首部中的協議欄位的值,對於 upd,字段值是 17;第 5 欄位是 udp 資料報的長度。
因此,校驗和既檢查了 udp 使用者資料報的源埠號和目的埠號以及 udp 使用者資料報的資料部分,又檢查了ip 資料報的源 ip 位址和目的位址。
運輸層 UDP協議
一 udp概述 udp協議 使用者資料報協議。udp只在ip的資料報服務上增加了很少的特點,那就是復用,分用功能還有差錯檢測的功能 二 udp的功能 a udp是無連線的。由於傳送資料前不需要建立連線,傳送資料完成之後也不需要釋放連線,因此減少了開銷和傳送資料的時延。b udp使用盡最大努力交付。因...
運輸層 UDP與TCP協議
在運輸層中有兩個主要的協議 使用者資料報協議udp和傳輸控制協議tcp。udp在傳送資料前不需要先建立連線。遠地主機的運輸層在收到udp的報文後,不需要給出任何確認。雖然udp不提供可靠的交付,但在某些情況下它是一種最為有效的工作方式。tcp提供面向連線的服務,在傳送資料之前必須先建立連線,資料傳送...
運輸層協議概述
紫色代表一級目錄 粉紅代表二級目錄 藍色代表 目錄 紅色代表關鍵字 橙色代表說明 運輸層協議概述 程序之間的通訊 從通訊的角度看,運輸層向它上面的應用層提供通訊服務,它屬於面向通訊部分的最高層。從資訊處理的角度看,運輸層是使用者功能中的最低層。當網路邊緣中的兩個主機使用網路核心功能進行端到端通訊時 ...