為什麼要劃分傳輸層?
既然網路層已經能把源主機上發出的資料傳送給目的主機,那麼為什麼還需要加上乙個傳輸層呢?這就需要我們理解主機使用者應用層通訊的主體,位於兩台網路主機中真正的資料通訊主體並不是這兩台主機,而是兩台主機中的各種網路應用程序.同一時間一台主機上可能有多個程序同時執行,這時候就需要為應用程式提供乙個標識,那就是埠.而傳輸層就是為了提供這種端到端的服務而存在的.下面以一張圖來解釋.
同時從圖中也可以看出來,ip協議提供了主機之間的邏輯通訊.而傳輸層協議提供的是程序之間的邏輯通訊.
什麼是端到端? 和點對點有啥區別?
「點對點」連線是通訊雙方直接通過電纜進行的連線,中間沒有經過其他任何裝置.
「端到端」連線是兩個終端主機之間的連線,這兩個終端系統的連線中要經過很多個裝置(路由器).
傳輸層兩個重要的術語:tsap和tpdu
tsap(傳輸層服務訪問點)是上層(應用層)呼叫下層(傳輸層)的乙個邏輯介面,其實就是我們所說的埠,埠用來標識應用層的程序.
埠: 埠用16位二進位制來表示,所以共有65535個埠號.
一般將0~1023號埠分配給一些市面上公用的一些網路協議或應用,這一類埠號的分配被廣大使用者所接受,事實上成為了一種標準,稱為保留埠.
剩下的是一般埠,可以自己使用.
tpdu(傳輸層協議資料單元)指的是傳輸層與對等層之間傳輸的報文,也就是」資料段」,其實每一層都有每一層的sap和pdu.
傳輸層提供的服務:
邏輯連線的建立
傳輸層定址
資料傳輸
傳輸連線釋放
流量控制
擁塞控制
多路復用和解復用
崩潰恢復
tcp(傳輸控制)協議
tcp協議的特點:
面向連線的傳輸協議:資料傳輸之前必須先建立連線,資料傳輸完成之後,必須釋放連線.
僅支援單播傳輸:每條傳輸連線只能有兩個端點,只能進行點對點的連線,不支援多播和廣播的傳輸方式,udp是支援的.
提供可靠的交付服務:傳送的資料無差錯,不丟失,不重複,且順序與與源資料一致
傳輸單位是資料段:每次傳送的資料段不固定,受應用層傳送報文大小和網路中的mtu(最大傳輸單元)值大小的影響.最小資料段可能僅有21個位元組(其中20個位元組屬於tcp頭部,資料部分僅1位元組).
支援全雙工傳輸:通訊雙方可以同時發資料和接收資料.
tcp連線是基於位元組流的:udp是基於報文流的.
tcp資料報格式:
tcp套接字(socket):
socket是tcp/ip協議中的叫法,它類似於之前說的tsap位址,即傳輸層協議介面,為了區別不同的應用程式程序和連線,一般計算機作業系統都為應用程式與tcp/ip互動提供了套接字(socket)介面.
注意:socket與tsap最大的不同之處就是,tsap是位於傳輸層的,而socket是位於應用層的,但它呼叫了傳輸層的埠.
在應用層上,針對每乙個應用程序都有乙個socket,用來呼叫傳輸層的乙個特定埠,socket與埠和ip位址是多對一的關係.
tcp傳輸連線的建立(3次握手):
tcp傳輸連線的釋放(4次握手):
tcp是如何保證資料可靠性的:
tcp是乙個可以保證可靠資料傳輸的傳輸層協議,主要採用採用以下四個機制實現資料可靠性傳輸:
位元組編號機制:tcp資料段以位元組為單位對資料段的」資料」部分進行一一編號,確保每乙個位元組的資料都可以有序傳送和接收.
資料段確認機制:每接收乙個資料段都必須有接收端向傳送端返回確認資料段,其中的確認號表示已經正確接收的資料段序號.
超時重傳機制:tcp中有乙個重傳定時器(rtt),傳送乙個資料段的同時也開啟這個定時器,如果定時器過期之時還沒有返回確認,則定時器停止,重傳該資料.
選擇性確認機制:(selective ack,sack)/只重傳缺少部分的資料,不會重傳那些已經正確接收的資料.
tcp的流量控制:
需要進行流量控制的原因就是,資料傳送的太快,接收端來不及接收而出現的丟包狀況.流量控制的目的也就是不要讓傳送端的傳送的資料大於接收端的資料處理能力.
tcp的流量控制通過滑動視窗機制來進行,視窗的大小的單位是位元組.
在tcp首部有乙個視窗字段(見上圖tcp首部),這個欄位的數值就是給對方設定的傳送視窗的上限,傳送視窗在連線時由雙方商定,但在通訊過程中,接收端可以依據自己的資源狀況,動態的調整對方傳送視窗的值的大小,達到控制的目的.
假設每個字段大小為100位元組,當前傳送視窗大小是400位元組,傳送端已經傳送了400位元組的資料,但是僅收到前200個位元組的確認資訊,還有200個位元組沒有發來確認,那麼傳送視窗當前時刻還能傳送300位元組,於是傳送視窗前移,整個過程如圖所示.是乙個簡單的滑動視窗的情況.
tcp的擁塞控制:
什麼是網路擁塞呢?我只發圖,不說話.
兩個方案:慢啟動與擁塞避免
「擁塞視窗」:是為了避免發生擁塞而設定的視窗,最終傳送的位元組數是接收端為傳送端設定的」傳送視窗」和」擁塞視窗」的最小值.
「慢啟動閾值」(ssthresh):初始值是64k,即65535個位元組,當發生一次資料丟失時,其值變為」擁塞視窗」大小的一半.
慢啟動:
主機剛開始傳送報文段時先將擁塞視窗的大小設定為乙個mss(該連線上當前使用的最大資料段大小).
每收到乙個報文段的確認後,將擁塞視窗增加最多乙個mss的大小.
以此類推,用這樣的方法逐步增大傳送端擁塞視窗的大小,使分組注入到網路的速率更加合理.
直到擁塞視窗的值達到慢啟動閾值,這時候」擁塞避免」就發揮作用了.
擁塞避免:
該方案不再像慢啟動一樣以指數速度增長擁塞視窗的大小,而是到達慢啟動閾值後,按線性規律增長,是網路比較不容易出現擁塞.
計算機網路(傳輸層)
網路層提供了主機之間的邏輯通訊,運輸層為運輸在不同主機上的程序之間提供了邏輯通訊。運輸層協議是在端系統中而不是在路由器中實現的。運輸協議能夠提供的服務常常受制於底層網路層協議的服務模型。底層無法提供時延或頻寬保證,運輸層協議也無法提供。但是即使底層網路協議不可靠,運輸協議也可以提供可靠的資料傳輸服務...
計算機網路 傳輸層
運輸層最重要的兩種協議 tcp協議,udp協議 真正的通訊 兩個主機之間應用程序的通訊 運輸層的重要功能 1 復用 傳送方的不同應用程序使用同乙個運輸層協議傳輸資料 應用層 運輸層 2 分用 接收方的運輸層在剝去報文首部後把資料真正交付到目的應用程序 運輸層 應用層 網路層和運輸層的區別 網路層說明...
計算機網路 傳輸層
提供服務 程序之間的邏輯通訊 復用和分用 差錯檢測 面向連線的tcp和無連線的udp 1 傳輸層提 用程序之間的邏輯通訊 即端到端的通訊 與網路層的區別是,網路層提供的是主機之間的邏輯通訊。2 復用和奮勇。復用是指傳送方不同的應用程序都可以使用同乙個傳輸層洗協議傳送資料 分用是指接受方的傳輸層在剝去...