用戶數(shù)據(jù)報協(xié)議UDP
UDP的概述
特點
復用和分用
多個用戶使用一個IO資源 發(fā)送消息 時,我們稱之為“復用”。
多個用戶使用一個IO資源 接收消息 時,我們稱之為 “分用” 。
在網(wǎng)絡層
局域網(wǎng)內(nèi)多個主機利用一個路由網(wǎng)關發(fā)送消息給互聯(lián)網(wǎng)的其他主機。這也是復用技術,利用網(wǎng)關接收路由數(shù)據(jù)報就叫 分用技術。
在運輸層
操作系統(tǒng)的多個進程(這里一個端口表示一個進程)利用一個運輸層協(xié)議(或者稱為運輸層接口)發(fā)送數(shù)據(jù)稱為復用,接收時叫做 分用。
在應用層
操作系統(tǒng)的 多個線程 利用一個端口(或者叫socket,socket = IP+端口號 )發(fā)送消息稱為復用,接收時叫分用
差錯檢測
無連接/傳輸數(shù)據(jù)之前不用先建立連接
面向報文
不可靠(盡最大努力交付)
支持一對一,一對多,多對一,多對多的交互通信
沒有擁塞控制
用戶數(shù)據(jù)報首部只有8個字節(jié)的開銷
UDP 用戶數(shù)據(jù)報是在運輸層的端到端抽象的邏輯信道中傳送的
報文格式
優(yōu)點
實時應用
傳輸控制協(xié)議TCP
特點
面向連接
不提供廣播或多播服務,只支持單播
首部20個字節(jié),占用許多的處理機資源
全雙工通信通道(TCP 報文段是在運輸層抽象的端到端邏輯信道中傳送)
面向字節(jié)流 / 流入或流出進程的字節(jié)序列
TCP 不保證接收方應用程序所收到的數(shù)據(jù)塊和發(fā)送方應用程序所發(fā)出的數(shù)據(jù)塊具有對應大小的關系。但接收方應用程序收到的字節(jié)流必須和發(fā)送方應用程序發(fā)出的字節(jié)流完全一樣。
報文格式
TCP可靠傳輸?shù)墓ぷ髟?/strong>
注意
理想的傳輸條件有以下兩個特點:
(1) 傳輸信道不產(chǎn)生差錯。
(2) 不管發(fā)送方以多快的速度發(fā)送數(shù)據(jù),接收方總是來得及處理收到的數(shù)據(jù)。
1.停止等待協(xié)議
“停止等待”就是每發(fā)送完一個分組就停止發(fā)送,等待對方的確認。在收到確認后再發(fā)送下一個分組。
無差錯情況
無差錯的情況
有差錯情況
(1)檢測時出錯$\rightarrow$丟棄,超時重傳
(2)傳輸過程丟失$\rightarrow$丟棄,超時重傳
有差錯情況
確認遲到
A 會收到重復的確認,但丟棄;B 仍然會收到重復的 M1,并且同樣要丟棄重復的 M1,并重傳確認分組。
確認丟失與確認重傳
2.連續(xù)ARQ協(xié)議
為了提高信道利用率。位于發(fā)送窗口內(nèi)的分組都可連續(xù)發(fā)送出去,而不需要等待對方的確認。
連續(xù) ARQ 協(xié)議規(guī)定,發(fā)送方每收到一個確認,就把發(fā)送窗口向前滑動一個分組的位置。
TCP可靠傳輸?shù)膶崿F(xiàn)
1.滑動窗口機制(以字節(jié)為單位)
2.確認機制
UDP與TCP的對比
1.UDP傳輸?shù)氖荱DP報文或用戶數(shù)據(jù)報,TCP傳輸?shù)氖荰CP報文段
2.UDP是無連接的,TCP是面向連接的
3.UDP用戶數(shù)據(jù)報首部只有8個字節(jié)的開銷,TCP有二十個字節(jié)
4.UDP沒有擁塞控制,TCP有擁塞控制
5.UDP不可靠傳輸,TCP可靠傳輸