網路 從傳輸層解析udp通訊協議

2021-10-25 09:52:31 字數 1082 閱讀 8587

無連線:知道對端的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碼 我們在讀取到資料之後,該以怎樣的方式對它進行解碼呢?這就是我們在通訊之前需要制定的通訊協議。...