提供服務:程序之間的邏輯通訊、復用和分用、差錯檢測、面向連線的tcp和無連線的udp
1、傳輸層提**用程序之間的邏輯通訊(即端到端的通訊)。與網路層的區別是,網路層提供的是主機之間的邏輯通訊。
2、復用和奮勇。復用是指傳送方不同的應用程序都可以使用同乙個傳輸層洗協議傳送資料;分用是指接受方的傳輸層在剝去報文的首部後能夠把這些資料正確交付到目的應用程序。
3、傳輸層還要對收到的報文進行差錯檢測(首部和資料部分)。而網路層只檢查ip資料報的首部,不檢驗資料部分是否出錯。
4、提供兩種不同的傳輸協議,即面向連線的tcp和無連線的udp.而網路層無法同時實現兩種協議(要麼虛電路,要麼資料報)
資料鏈路層的sap(服務訪問點)是mac位址,網路層的sap是ip位址,傳輸層的sap是埠。
在網路中通過ip位址來標識和區別不同的主機,通過埠號來標識和區別一台主機中的不同應用程序。在網路中採用傳送方和接受方的套接字(socket)組合來識別端點,套接字=(主機ip位址,埠號)
udp協議優點:
1)udp無需建立連線。2)無連線狀態3)分組首部開銷小4)應用層能更好地控制要傳送的資料和傳送時間。
udp常用於一次性傳輸比較少量資料的網路應用,如dns、snmp等。
udp提供及最大努力的交付,即不高正可靠交付,它的可靠性由應用層來保證。
udp是面向報文的。報文不可分割,是udp資料處理的最小單位。
如果udp校驗和校驗出udp資料報是錯誤的,可以丟棄,也可以交付給上層,但是需要附上錯誤報告,即告訴上層這是錯誤的資料報。通過偽首部,不急可以檢查源埠號、目的埠號和udp使用者資料報的資料部分,還可以檢查ip資料報的源ip位址和目的位址。檢錯能力不強,但是處理速度快。
tcp協議的特點:
1)tcp是面向連線的傳輸層協議。
2)每一條tcp連線只能有兩個端點,每一條tcp連線只能是點對點(一對一)
3)tcp提供可靠的交付服務,保證傳送的資料無差錯、不丟失、不重複且有序。
4)tcp提供全雙工通訊,tcp允許通訊雙方的應用程序在任何時候都能傳送資料,為此tcp連線的兩端都設有傳送快取和接受快取,用阿里臨時存放雙向通訊的資料。
5)tcp是面向位元組流的。
tcp連線建立(三次握手):
一、客戶機的tcp首先向伺服器的tcp傳送乙個連線請求報文段。這個特殊的報文段中不含應用層資料,其首部中的syn標誌位被置1,另外,客戶機會隨機選擇乙個起始序號seq=x(連線請求報文不攜帶資料,彈藥消耗掉乙個序號)
二、伺服器的tcp收到連線請求後,如同意建立連線,就想客戶機發回確認,並為該tcp連線分配tcp快取和變數。在確認報文中,syn和ack位都置為1,確認號字段的值為x+1,並且伺服器隨機產生起始序號seq=y(確認報文不攜帶資料,但也要消耗掉乙個序號)。確認報文段同樣步包含應用層資料。
三、當客戶機收到確認報文段後,還要向伺服器給出確認,並且也要給該鏈結分配快取和變數。這個報文段的ack標誌位被置為1,序號欄位為x=1,確認好字段為ack=y+1.該報文段可以細帶資料,如果不攜帶資料則不消耗序號。
1、syn=1,seq=x. --------> 不攜帶資料
2、syn=1,ack=1,seq=y <-------- 不攜帶資料
3、ack=1,seq=x+1,ack=y+1 --------> 可以攜帶資料,消耗序號
1、fin=1,seq=u ------------> 打算關閉
2、ack=1,seq=v,ack=u+1 <----------- tcp處於半個關閉狀態,還可以傳送資料
3、fin=1,ack=1,seq=w,ack=u+1 <----------- 關閉吧,不傳了
4、ack=1,seq=u+1,ack=w+1 ----------> 我等你接收到這個報文段後(2msl),我就關閉
傳輸層和資料鏈路層的流量控制的區別在於:傳輸層定義了端到端使用者之間的流量控制,資料鏈路層定義了兩個中間的相鄰節點的流量控制。另外,資料鏈路層的滑動視窗協議的視窗大小不能動態變化,傳輸層則可以動態變化。
擁塞控制和流量控制的區別:擁塞控制是讓網路能夠承受現有的網路負荷,它是乙個全域性性的過程,涉及所有的主機,所有的路由器,以及降低網路傳輸效能有關的所有因素。相反,流量控制往往是指點對點的通訊量的控制,即接收端控制傳送端,它索要做的就是抑制傳送端傳送資料的速率,以便使接收端來得及接收。
傳送視窗為接受視窗rwnd和擁塞視窗cwnd中比較小的乙個。買開始門限:ssthresh
可靠傳輸機制:
序號:用來保證資料能有序提交應用層
重傳:超時:計時器到期還沒收到確認則重傳對應報文;冗餘確認:當收到失序報文時向發搜昂端傳送冗餘ack.
計算機網路 傳輸層
為什麼要劃分傳輸層?既然網路層已經能把源主機上發出的資料傳送給目的主機,那麼為什麼還需要加上乙個傳輸層呢?這就需要我們理解主機使用者應用層通訊的主體,位於兩台網路主機中真正的資料通訊主體並不是這兩台主機,而是兩台主機中的各種網路應用程序.同一時間一台主機上可能有多個程序同時執行,這時候就需要為應用程...
計算機網路(傳輸層)
網路層提供了主機之間的邏輯通訊,運輸層為運輸在不同主機上的程序之間提供了邏輯通訊。運輸層協議是在端系統中而不是在路由器中實現的。運輸協議能夠提供的服務常常受制於底層網路層協議的服務模型。底層無法提供時延或頻寬保證,運輸層協議也無法提供。但是即使底層網路協議不可靠,運輸協議也可以提供可靠的資料傳輸服務...
計算機網路 傳輸層
運輸層最重要的兩種協議 tcp協議,udp協議 真正的通訊 兩個主機之間應用程序的通訊 運輸層的重要功能 1 復用 傳送方的不同應用程序使用同乙個運輸層協議傳輸資料 應用層 運輸層 2 分用 接收方的運輸層在剝去報文首部後把資料真正交付到目的應用程序 運輸層 應用層 網路層和運輸層的區別 網路層說明...