無連線:知道對端的ip和埠號就直接進行傳輸,不需要建立連線。
不可靠:沒有確定機制,沒有重傳機制。如果因為網路故障該段無法發到對方,udp協議層也不會給應用層返回任何錯誤資訊。
面向資料報:不能靈活的控制獨寫資料的次數和數量。
udp協議的報頭
源埠(2位元組)+目的埠(2位元組)+資料長度(最大可以2^16)+校驗和
資料長度
uint16_t 最大65536。
因此當傳輸層資料大於該值,應用層需要對該資料進行分片傳輸,即將大於65536的資料進行拆分,通過多次傳輸實驗。
作用:校驗udp資料在傳輸的過程中是否有損壞
若有損壞,不會提交給應用層,直接丟棄。不可靠的體現!
若無損壞,在應用層recvfrom時提交給應用層
校驗和的工作原理
將udp資料(報頭+資料)分位多個16位元位資料,將除了16個校驗和的位元位不進行相加外,針對其它的進行相加操作。對於應用層的資料時整條資料接收和傳送的;例如:0110 0110 0110 0000 源埠
0101 0101 0101 0101 目的埠
0100 0100 0000 0000 資料
相加結果:1111 1111 1011 0101
對結果進行反碼運算
0000 0000 0100 1010
將該反碼運算結果存放至16位校驗和位元位中
當接收到udp資料報之後,將所有的16位位元位相加,結果若為1111 1111 1111 1111,則認為資料無損壞,反之位有損壞。
對於傳送而言,應用層使用sendto介面將資料交給傳輸層當中的udp的傳送緩衝區,在傳送緩衝區中,打上udp報頭,進行下一步傳輸
對於接收,應用層使用recvfrom介面將資料從接收緩衝區中拷貝到應用層,udp接收緩衝區是不保證資料有序到達、也不保證可靠;當接收緩衝區滿的時候,從網絡卡中接收的udp資料報就會被直接丟棄
dhcp:動態分配ip
dns:網域名稱解析協議
nfs: 網路檔案系統
tftp: 簡單檔案傳輸協議
bootp: 啟動協議(用於無盤裝置啟動)
網路通訊協議 UDP
udp 是user dategram protocol 簡稱 使用者資料報協議 是osi參考模型當中的一種無連線的傳輸層協議,ietf rfc 768是udp的正式規範 udp 和 tcp協議一樣也是用於處理資料報,是一種無連線的傳輸層協議 補充 連線服務 例子 你要寄乙份信件,你要讓你認識的人去送...
UDP通訊協議
在做手機和服務端通訊時,udp是其中可用協議之一。不過udp的缺點在於不能得知傳送是否成功,可能會存在掉包的情況但是傳送方卻並不知道。不過既然udp能存在,自然有它使用的業務場景。udp其實很簡單,最主要的兩個類datagramsocket和datagrampacket udp接收 while tr...
通訊協議 UDP通訊
通訊協議 通訊協議是udp tcp通訊的基礎,沒有通訊協議的 通訊 是沒有任何意義上的,通訊協議不是底層函式或者高深的原理,而是程式設計師之間的一種文字約定。資料在網路上是以位元組的形式傳送的 底層是01碼 我們在讀取到資料之後,該以怎樣的方式對它進行解碼呢?這就是我們在通訊之前需要制定的通訊協議。...