使用者資料報協議 udp
傳輸控制協議 tcp
可靠傳輸
流量控制
擁塞控制
一點問題
一點**
網路層知道怎麼把資料報傳遞給一台主機,但不知道怎麼把資料報傳遞給具體的程序,傳輸層完成的就是這項任務
提供端到端的邏輯通訊
復用和分用(通過埠實現)
差錯檢測
兩種傳輸協議
基本概念
埠號只具有本地意義,只是為了標誌本計算機應用層中的各個程序在和運輸層互動時的介面
對於一對套接字(ip1,port1)-(ip2,port2),只能存在唯一的tcp連線,後續再建立將會被阻止。
伺服器端使用的埠號
登記埠號 [1024~49151]
客戶端使用的埠號
49152~65535
套接字
在ip的資料報服務之上提供的兩個服務
差錯檢測
特點
首部開銷小(較tcp)
udp是面向報文的
傳送方的udp對應用程式交下來的報文,在新增首部後就向下交付ip層。udp對應用層交下來的報文,既不合併,也不拆分,而是保留這些報文的邊界。這就是說,應用層交給udp多長的報文,udp就照樣傳送,即一次傳送乙個報文。(應用程式必須選擇合適大小的報文。報文太長,ip層在要進行分片,會降低ip層的效率。太短,ip資料報的首部的相對長度太大,降低了ip層的效率)
udp沒有擁塞控制
udp支援單播、廣播、組播
字段含義
目的埠資料報長度
檢驗和為什麼需要校驗?
校驗哪些部分?
校驗步驟
接收端
特點
每一條tcp連線只能是點對點的
提供可靠交付的服務
提供全雙工通訊
面向位元組流
時延大,可重傳,可靠
不提供廣播或組播服務
套接字
字段含義
確認號
資料偏移 保留
六個控制位
確認 ack
推送 psh
復位 rst
同步 syn
終止 fin
視窗字段
視窗值作為接收方讓傳送方設定其傳送視窗的依據
視窗值經常在動態變化著
檢驗和緊急指標 選項
填充tcp連線的建立採用客戶/伺服器方式。主動發起連線建立的應用程序叫做客戶,而被動等待連線建立的應用程序叫做伺服器。
伺服器端為該tcp連線分配快取和變數,並向客戶端返回確認報文段,不可攜帶資料
客戶端為該tcp連線分配快取和變數,並向伺服器端返回確認的確認,可以攜帶資料。(tcp的標準規定,如果不攜帶資料則不消耗序號,在這種情況下,下乙個資料報文段的序號仍是seq=x+1)
為什麼a最後還要傳送一次確認呢?
tcp連線已經建立,a進入 established(已建立連線)狀態。當b收到a的確認後,也進入 established狀態。雙方可以進行資料傳輸
伺服器端回送乙個確認報文段,客戶到伺服器這個方向的連線就釋放了,tcp連線處於半關閉狀態。
伺服器端發完資料,就發出連線釋放報文段,主動關閉tcp連線。
客戶端回送乙個確認報文段,再等到時間等待計時器設定的2msl(最長報文段壽命)後,連線徹底關閉。
第二次時,如果b沒有資料要發給a了的話,第二次和第三次是可以合在一起的。也就是說關閉連線最少需要1.5個rtt
超時重傳
自適應rtts(超時重傳時間的選擇)
冗餘重傳/快速重傳
如果b向a傳送了零視窗的報文段後不久,b的接收快取有了空閒。於是b向a傳送了rwnd=400的報文段。然而這個報文段丟失了。a一直等待收到b傳送的非零視窗的通知,而b也一直等待a傳送的資料,造成死鎖局面。
如果滑動視窗(send和rwnd)設定的過小,則會產生過多的ack(因為視窗大可以累計確認,ack會少一些);如果設定的太大,又會導致傳送的資料過多而使得路由器變得擁擠,導致主機丟失分組
為什麼會擁塞?
擁塞控制與流量控制
傳輸控制協議 tcp
擁塞視窗cwnd
當rwnd
擁塞控制四種演算法
不是多餘的。tcp的「可靠交付」功能在網際網路中起著至關重要的作用。在以下的情況下,tcp的「可靠交付」功能是必不可少的。
**注意,**發生擁塞/超時一定是【慢開始】來處理,【快恢復】處理的是冗餘確認,然後都會執行擁塞避免
在收到3個冗餘ack的情況下,網路雖然擁塞,但至少還有ack 報文段能被正確交付。而當超時發生時,說明網路可能已經擁塞得連ack報文段都傳輸不了, 傳送方只能等待超時後重傳資料。因此,超時事件發生時,網路擁塞更嚴重,那麼傳送方就應該最大限度地抑制資料傳送量,所以cwnd置為1;收到3個冗餘ack時,網路擁塞不是很嚴重傳送方稍微抑制一下傳送的資料量即可,所以cwnd減半。
計算機網路 傳輸層
為什麼要劃分傳輸層?既然網路層已經能把源主機上發出的資料傳送給目的主機,那麼為什麼還需要加上乙個傳輸層呢?這就需要我們理解主機使用者應用層通訊的主體,位於兩台網路主機中真正的資料通訊主體並不是這兩台主機,而是兩台主機中的各種網路應用程序.同一時間一台主機上可能有多個程序同時執行,這時候就需要為應用程...
計算機網路(傳輸層)
網路層提供了主機之間的邏輯通訊,運輸層為運輸在不同主機上的程序之間提供了邏輯通訊。運輸層協議是在端系統中而不是在路由器中實現的。運輸協議能夠提供的服務常常受制於底層網路層協議的服務模型。底層無法提供時延或頻寬保證,運輸層協議也無法提供。但是即使底層網路協議不可靠,運輸協議也可以提供可靠的資料傳輸服務...
計算機網路 傳輸層
運輸層最重要的兩種協議 tcp協議,udp協議 真正的通訊 兩個主機之間應用程序的通訊 運輸層的重要功能 1 復用 傳送方的不同應用程序使用同乙個運輸層協議傳輸資料 應用層 運輸層 2 分用 接收方的運輸層在剝去報文首部後把資料真正交付到目的應用程序 運輸層 應用層 網路層和運輸層的區別 網路層說明...