傳輸層,又叫運輸層,transportation。核心是向應用層、會話層、表示層提供通訊服務;它覆蓋在網路層基礎上,抹去了網路和主機通訊這兩個概念,通訊的端點是應用程序;現在的作業系統都提供傳輸層服務,包含了差錯檢測,具有一定可靠性,而非ip資料報只檢驗首部。
傳輸層傳輸的也是資料報,這一層資料報包裹在ip資料報裡面,到達終點後,傳輸層將資料報交付應用層的某個埠,埠是傳輸層的概念,它和os中的某個程序相對應。埠號和程序id不一樣,不是乙個東西。像很多軟體都有埠對映,即使用傳輸層的協議,它是應用層的各種協議程序與運輸實體進行層間互動的一種位址。伺服器端口號位於0~1023之間,剩下的腳客戶端埠號,可以隨意指定和使用。常用的應用層協議都是固定的埠號。
一、udp
udp面向報文而非面向連線,屬於不可靠傳輸,丟失資訊不負責重傳;每次都交付乙個完整的報文,沒有擁塞控制,支援多播。
udp協議報文的首部為8個位元組,源埠、目的埠、長度、檢驗和,各佔兩個位元組。檢驗和的計算使用到了偽首部,偽首部中包含了源ip位址,目的ip位址,報文長度等資訊,但是這個並不向上或向下傳遞,所以就在計算完檢驗和之後就丟棄了。且檢驗和的計算是包含了資料部分在內一起計算的。
之所以是偽首部,是因為偽首部中的資訊在ip資料報中都可以找到,所以不用再傳輸第二遍,接收方在得到udp資料報的時候就能夠知道偽首部中的所有的資訊。
二、tcp
tcp是整個網路傳輸過程中保證可靠傳輸的唯一的路徑,各個層中的檢驗和不算在內。它面向連線,點對點通訊,全雙工,面向位元組流。使用套接字即ip位址和埠號的組合作為通訊的兩端。tcp所要完成的工作就是,確保接收方一定接收到了資料,而且當傳送方的速率不論是多少,接收方都要能夠接收得住。
tcp報文段的首部資訊:
源埠、目的埠
序號,即位元組流到底是第乙個分組
確認號,是接收方返回給傳送方的序號
資料偏移,即tcp報文首部的長度
緊急urg,緊急資料需要優先傳送的
推送和復位,由於必須填滿快取才會傳送出去,推送即在不填滿快取的情況 下提前傳送出去。
視窗,雙方約定的最大的滑動視窗的大小。
檢驗和
其他……
停止等待協議:
傳送方向接收方傳送訊息,等到接收方反饋回之後,再傳送下一次資訊。這裡就有超時計時器的超時重傳,接收方不需要主動要求重傳某個請求,全部由傳送方處理,如果反饋資訊接收到多次,則拋棄。
arq協議:
即帶滑動視窗的停止等待協議,滑動視窗就是分組的組合。
滑動視窗被當成了乙個整體,用來傳送資料,超時重傳的時間選擇是乙個自適應演算法,karn演算法,只要報文段重傳了,就不採用往返時間樣本,避免出現不知道該選擇哪乙個傳送時間的問題。
sack選擇確認:雖然選擇確認可以做到,即中間漏掉的資料的話,只重傳漏掉的資料,而不重傳整個傳送的n個資料,這樣代價比較大。但是,由於sack文件的不完備性,所以現在的協議當中仍然是重傳漏傳資料之後的所有部分。
tcp流量控制:
流量控制的意思就是讓資料傳送的不要太快,所以傳送方的視窗值不能大於接收方視窗的數值。接收方對傳送方的確認資料中有流量控制字段,可以要求傳送方更改視窗值。而當接收方給傳送發乙個0值時,即不讓傳送方繼續傳送資料了,這時就要設定乙個持續計時器,用來確認探測報文是否被丟失淹沒了。即使視窗為0,也應當接收零視窗探測報文、確認報文、攜帶緊急資料的報文。
為了提高傳輸效率,傳送方當位元組快取裝滿、推送字段控制、計時器時限到了時,就將資料封裝成tcp報文傳送出去。這裡用到了nagle演算法,目的是為了提高網路的吞吐量。
糊塗視窗症候群:當接收方快取已滿時出現的,情況是每次的報文都只包含乙個位元組,造成首部資訊相比資料資訊太大,效率極低。解決方法是讓接收方多等一會,等到快取騰出來以後,再設定接收視窗的大小。
tcp擁塞控制:
擁塞控制主要是指網路的傳輸擁堵,而非點對點通訊的停滯,這叫做流量控制。
衡量網路暢通與否的引數叫吞吐量,輸入越多的負載,即越多的報文包,吞吐量應該能夠理想地解決,但是如果不加控制的話,就會造成報文的擁堵,吞吐量降低,直到為0,稱為死鎖。最根本的就是網路的各部分必須能力平衡相稱。
擁塞控制的主要方法:
慢開始:滑動視窗的數值從1開始,呈指數增長;
擁塞避免:當視窗值增長到慢開始門限之後,要以線性增長,一旦出現重傳,就要減低視窗值;
快重傳:接收方每次都要立即傳送確認報文確認丟失了資訊,而不是繼續等待;收到3個重複的確認,就認為網路擁堵了,就要減低視窗值;
快恢復:減低到之前視窗最大值的一半,就叫快恢復。
red:在網路還沒出現擁堵的情況下,隨機地在路由器中的報文隨機丟棄一些,使一些tcp鏈結進行流量控制,用來換取整個網路不會採用擁塞控制。
tcp連線管理:
三握手:在連線階段採用三握手:當然傳送方在接收到確認之後還要再進行一次確認,目的是為了防止已經失效的連線請求報文突然又傳送到接收方。
四握手:連線釋放採用四握手:傳送方給接收方傳送斷開請求,接收方傳送確認,並傳送完剩餘的資料,然後再傳送關閉確認,傳送方再傳送返回確認,即可實現tcp連線的關閉。接收方的關閉要比傳送方早,因為傳送方害怕接收方始終在等待,所以自己有乙個保活計時器。
三、表示層
新增一點不屬於傳輸層的東西,表示層面向應用層服務,主要是檢查語法和語義,符合要求才提供到上一層。加密解密即在這一層中控制。
四、會話層
會話層比表示層第一層,建立和維持會話session,通過點校驗實現大檔案傳輸中斷後從中恢復通訊。
計算機網路 網路層知識要點
網路層的功能是實現計算機主機在網路中的互聯,是建立在資料鏈路層基礎上,將全世界的所有的網路全部互聯的乙個網路層次。網路層向上層只提供簡單的 靈活的 無連線的 盡最大努力交付的資料報服務,它並不保證資料的質量。資料的質量由tcp協議保證,面向連線。ip層的最根本的就是在各種異構網路的 基礎上覆蓋一層,...
計算機網路 傳輸層
為什麼要劃分傳輸層?既然網路層已經能把源主機上發出的資料傳送給目的主機,那麼為什麼還需要加上乙個傳輸層呢?這就需要我們理解主機使用者應用層通訊的主體,位於兩台網路主機中真正的資料通訊主體並不是這兩台主機,而是兩台主機中的各種網路應用程序.同一時間一台主機上可能有多個程序同時執行,這時候就需要為應用程...
計算機網路(傳輸層)
網路層提供了主機之間的邏輯通訊,運輸層為運輸在不同主機上的程序之間提供了邏輯通訊。運輸層協議是在端系統中而不是在路由器中實現的。運輸協議能夠提供的服務常常受制於底層網路層協議的服務模型。底層無法提供時延或頻寬保證,運輸層協議也無法提供。但是即使底層網路協議不可靠,運輸協議也可以提供可靠的資料傳輸服務...