- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
傳輸層介於應用層和網路層之間,是分層式網路架構的核心成分。它扮演著關鍵性的角色,為不同主機上執行的應用程式行程直接提供通訊服務。我們將特別著重於網際網路協定,特別是TCP 及UDP 傳輸層協定。 兩個個體要如何透過可能會遺失及損毀資料的媒介進行可靠的通訊。控制傳輸層個體的傳輸速率,以免網路出現擁塞。 3.1 導言與傳輸層服務 傳輸層協定會在不同主機上執行的應用程式行程間提供邏輯通訊 (logical communication)。 傳輸層協定是實作在終端系統上,而非網路路由器中。 網路應用程式可以使用的傳輸層協定不止一個。舉例來說,網際網路就有兩種協定——TCP 跟UDP。 3.1.1 傳輸層與網路層之間的關係 傳輸層協定提供的是在不同主機上執行的行程間的邏輯通訊,網路層協定提供的則是主機間的邏輯通訊。 傳輸協定能夠提供的服務通常也受限於下層網路層協定所提供的服務模型。如果網路層協定無法為主機間傳送的傳輸層區段提供延遲時間或頻寬的保障,則傳輸層協定也無法為行程間傳送的應用程式訊息提供延遲時間或頻寬的保障。 3.1.2 網際網路傳輸層的概觀 其中一種協定是 UDP [ 使用者資料報協定 (User Datagram Protocol)],此協定提供給呼叫它的應用程式的,是不可靠的、無連線的服務。 第二種協定是 TCP [ 傳輸控制協定 (Transmission Control Protocol)],該協定提供給呼叫它的應用程式的,是可靠的、連線導向的服務。 在設計網路應用時,應用程式開發者必須指定使用這兩種傳輸協定之一。 我們將傳輸層封包稱為區段 (segment)。 網際網路的網路層協定有個名字── IP,亦即網際網路協定 (Internet Protocol) 。 IP 的服務模型屬於盡力而為投遞服務 (best-effort delivery service)。這表示IP會「盡力」在通訊主機之間投遞區段,但是不提供任何保障。 它不保證區段會送達目的地,也不保證區段會依序送達,更不保證區段中資料的完整性。因此,我們說 IP 是一種不可靠的服務 (unreliable service)。 每台主機都擁有一個 IP位址。 將主機到主機的投遞服務延伸為行程到行程的投遞服務,稱為傳輸層多工 (transport-layer multiplexing) 和解多工 (demultiplexing)。 TCP 會提供可靠的資料傳輸。透過流量控制、序號、確認訊息、以及計時器 ( 我們會在本章詳盡探討這些技術),TCP 會確保資料能夠正確、依序地從傳送端行程投遞到接收端行程。 TCP 會將IP 所提供的,兩具終端系統間不可靠的服務,轉換成兩筆行程間可靠的資料傳輸服務。 TCP 也會提供擁塞控制(congestion control)。 TCP 的擁塞控制會避免任何一筆TCP 連線用大量的流量塞滿通訊主機之間的連結和交換器。 TCP 會藉由規範TCP 連線傳送端將資料流送入網路的速度,來進行擁塞控制。 一方面來說,UDP 的資料流則不受規範。使用UDP 傳輸的應用可以用任何它想要的速率來傳送資料,而且想傳送多久就傳送多久。 3.2 多工與解多工 行程 ( 網路應用的一部分 ) 可以擁有一或多份 socket,這是資料從網路進入行程,或是從行程進入網路的門戶。 每筆傳輸層區段都會包含一組欄位。在接收端,傳輸層會檢查這些欄位,以辨識出應接收的socket,然後將區段交給該份socket。 傳輸層多工需要 (1)socket 擁有獨一無二的識別碼。 (2)每份區段都包含特殊的欄位,指示該區段應該要送交給哪個socket。 這些特殊欄位,如圖3.3所示,就是來源端埠號欄位 (source port number fifield) 與目的端埠號欄位 (destination port number fifield)。 每筆埠號都是一個16位元的數字,範圍介於0到 65535之間。 埠號0到1023為公認埠號 (well-known port numbers) 並且受到管制,也就是說,這些埠號是保留給眾所週知的應用層協定使用 無連線的多工與解多工 建立UDP socket 時,傳輸層會自動為該份socket 指定一個埠號。更清楚的說,傳輸層會從1024 到65535之中指定一個目前在該具主機中尚未被其他UDP 埠所使用的埠號。 當UDP 區段從網路抵達時,主機B 會檢查區段的目的端埠號,將各區段轉交(解多工)給適當的socket。 UDP socket 完全是由目的端IP 位址與目的端埠號所構成的數對來加以識別。 來源端埠號的作用是作為「返回位址」的一部分。 連線導向的多工與解多工 TCP socket 是由四項數值來加以識別:( 來源端IP
文档评论(0)