跳轉到內容

CCNA 認證/傳輸層

來自華夏公益教科書,開放書籍,開放世界

傳輸層

[編輯 | 編輯原始碼]

傳輸層是 TCP/IP 參考模型中的第二高層。它響應來自應用層的服務請求,並向網路層發出服務請求。它也是七層OSI 模型中第四層的名稱,在這裡它響應來自會話層的服務請求,並向網路層發出服務請求。在這兩個模型中,傳輸層的定義略有不同。以下文字主要指的是 TCP/IP 模型。

傳輸層提供主機之間資料的透明傳輸。它通常負責端到端連線、錯誤恢復、流量控制和確保完整的資料傳輸。在 Internet 協議套件 (TCP/IP) 中,此功能最常透過面向連線的傳輸控制協議 (TCP) 實現。資料報型別的傳輸,使用者資料報協議 (UDP),既不提供錯誤恢復也不提供流量控制,將這些功能留給應用程式。傳輸層的目的是在終端使用者之間提供透明的資料傳輸,從而使上層不再需要關注提供可靠且經濟高效的資料傳輸。

傳輸層通常將網路層提供的不可靠且非常基本的服務轉變為更強大的服務。此級別可以可選地提供許多服務。其中任何一項都不是強制性的,因為並非所有應用程式都需要所有可用的服務。在某些情況下,某些服務可能會浪費開銷,甚至適得其反。

面向連線
這通常比無連線模型更容易處理,因此在網路層僅提供無連線服務的情況下,通常會在傳輸層之上構建面向連線的服務。
相同順序交付
網路層通常不能保證資料包的到達順序與傳送順序相同,但這通常是一個理想的功能,因此傳輸層提供了此功能。實現此功能的最簡單方法是為每個資料包分配一個編號,並允許接收方對資料包進行重新排序。
可靠資料
由於網路擁塞,路由器、交換機、網橋和主機上的資料包可能會丟失,當資料包佇列已滿時,網路節點必須刪除資料包。由於干擾和噪聲,資料包可能會丟失或損壞,例如在乙太網中,因為乙太網不會重傳損壞的資料包。資料包可能被底層網路以錯誤的順序傳遞。一些傳輸層協議,例如 TCP,可以解決此問題。透過錯誤檢測碼,例如校驗和,傳輸協議可以檢查資料是否損壞,並透過向傳送方傳送 ACK 訊息來驗證資料。自動重傳請求方案可用於重傳丟失或損壞的資料。透過在傳輸層資料包報頭中引入段編號,可以按順序對資料包進行排序。當然,無錯誤是無法實現的,但可以大幅減少未檢測到的錯誤數量。
流量控制
計算機上的記憶體量是有限的,如果沒有流量控制,較大的計算機可能會向計算機發送如此多的資訊,以至於在處理這些資訊之前無法儲存所有資訊。如今,這已經不是什麼大問題,因為記憶體很便宜,而頻寬相對昂貴,但在早期,流量控制更為重要。流量控制允許接收方在被淹沒之前說“慢點!”。有時,這已經由網路提供,但如果網路沒有提供,傳輸層可以新增此功能。
擁塞避免
網路擁塞發生在網路節點的佇列緩衝區已滿並開始丟棄資料包時。自動重傳請求可能會使網路處於擁塞狀態。透過在流量控制中新增擁塞避免,包括慢啟動,可以避免這種情況。這會在傳輸開始時或資料包重傳後將頻寬消耗保持在較低水平。
位元組方向
傳輸層可能不再以逐個資料包的方式處理資料,而是提供將通訊視為位元組流的能力。這比隨機資料包大小更容易處理,但是,它很少與通訊模型相匹配,通訊模型通常是使用者定義大小的訊息序列。
(TCP/IP 模型中的傳輸層的一部分,但在 OSI 模型中是會話層的一部分) 埠本質上是地址同一個位置的多個實體的方法。例如,郵政地址的第一行類似於埠,它區分同一房屋的不同住戶。每個計算機應用程式將在自己的埠上監聽資訊,這就是為什麼你可以同時使用多個基於網路的應用程式的原因。

在 Internet 上,有各種各樣的傳輸服務,但最常見的兩種是 TCP 和 UDP。TCP 更加複雜,它提供面向連線的位元組流,該流幾乎沒有錯誤,並具有流量控制、多個埠和相同順序交付。UDP 是一個非常簡單的“資料報”服務,它提供有限的錯誤減少和多個埠。TCP 代表傳輸控制協議,而 UDP 代表使用者資料報協議。其他選項包括資料報擁塞控制協議 (DCCP) 和流控制傳輸協議 (SCTP)。

一些功能,例如面向連線,可以在傳輸層或網路層實現。其理念是網路層實現最容易實現的一組選項:對於一些底層網路來說,最容易實現無連線通訊,而對於其他網路來說,最容易實現面向連線的通訊。傳輸層使用這組最簡單的選項來實現實際需要的各種選項組合。

傳輸協議比較表

[編輯 | 編輯原始碼]
TCP UDP SCTP
資料包報頭大小 20 位元組 8 位元組
資料包實體 資料報
錯誤檢查
埠編號
面向連線
自動重傳請求 (ARQ)
段編號
流量控制
擁塞避免


傳輸控制協議 (TCP) 是 Internet 協議套件的核心協議之一,通常簡稱為 TCP/IP。使用 TCP,聯網主機上的應用程式可以彼此建立連線,透過這些連線,它們可以使用流套接字交換資料流。該協議保證從傳送方到接收方可靠且有序地傳遞資料。TCP 還透過在同一主機上執行的併發應用程式 (例如,Web 伺服器和電子郵件伺服器) 區分資料。

TCP 支援 Internet 上最流行的許多應用程式協議和由此產生的應用程式,包括全球資訊網、電子郵件、檔案傳輸協議和安全外殼。

在 Internet 協議套件中,TCP 是位於 Internet 協議 (IP) 之上、應用程式之下的中間層。應用程式通常需要彼此之間的可靠管道式連線,而 Internet 協議不提供此類流,而是僅提供盡力而為的交付 (,不可靠的資料包)。TCP 在簡化的計算機網路 OSI 模型中執行傳輸層的功能。另一個主要的傳輸級 Internet 協議是 UDP。

應用程式將位元組流(8 位位元組)傳送到 TCP,以便透過網路傳遞,TCP 將位元組流劃分為適當大小的段(通常由連線計算機的網路的 資料鏈路層 的最大傳輸單元 (MTU) 大小來劃分)。然後,TCP 將生成的包傳遞給網際網路協議,以便透過網路傳遞到另一端實體的 TCP 模組。TCP 透過給每個包分配一個序列號來檢查確保沒有包丟失,序列號也用於確保資料以正確的順序傳遞到另一端的實體。遠端的 TCP 模組會為成功接收到的包傳送一個確認;傳送方 TCP 的一個計時器會在合理往返時間 (RTT) 內沒有收到確認的情況下觸發一個超時,然後將(可能丟失的)資料重新傳輸。TCP 使用校驗和來檢查沒有位元組損壞;在傳送資料塊之前,會在傳送方為每個資料塊計算一個校驗和,並在接收方進行檢查。

使用者資料報協議 (UDP) 是網際網路協議套件的核心協議之一。使用 UDP,聯網計算機上的程式可以相互發送短訊息,有時稱為資料報。UDP 有時被稱為通用資料報協議或不可靠資料報協議。

UDP 不提供 TCP 提供的可靠性和排序。資料報可能會無序到達,出現重複,或在沒有通知的情況下丟失。在沒有檢查每個資料包是否實際到達的開銷的情況下,UDP 對於許多輕量級或時間敏感的目的更快、更高效。此外,它的無狀態特性對於從大量客戶端回答小型查詢的伺服器來說非常有用。與 TCP 相比,UDP 是廣播(傳送到本地網路上的所有使用者)和組播(傳送到所有訂閱者)所必需的。

使用 UDP 的常見網路應用程式包括域名系統 (DNS)、IPTV 等流媒體應用程式、網路電話 (VoIP)、簡單檔案傳輸協議 (TFTP) 和線上遊戲。

UDP 利用埠來允許應用程式之間的通訊。埠欄位為 16 位,因此有效範圍為 0 到 65,535。埠 0 保留,但如果傳送程序不期望響應訊息,則允許使用它作為源埠值。

埠 1 到 1023 被稱為“眾所周知”埠,在 Unix 派生作業系統上,繫結到這些埠之一需要 root 許可權。

埠 1024 到 49,151 為註冊埠。

埠 49,152 到 65,535 為短暫埠,主要用作客戶端與伺服器通訊時的臨時埠。

[編輯 | 編輯原始碼]
華夏公益教科書