0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

UDP協(xié)議原理詳解

CHANBAEK ? 來源:嵌入式攻城獅 ? 作者:嵌入式攻城獅 ? 2023-04-24 10:54 ? 次閱讀

1. UDP報(bào)文封裝

一個(gè)典型的使用UDP協(xié)議封裝的數(shù)據(jù)包,包括以太網(wǎng)MAC頭+網(wǎng)絡(luò)層IP數(shù)據(jù)頭+傳輸層UDP頭+要傳輸?shù)臄?shù)據(jù)。詳見下圖所示:

圖片

2. UDP報(bào)文結(jié)構(gòu)

UDP(User Data Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)是一個(gè)簡單的面向數(shù)據(jù)報(bào)的運(yùn)傳輸層協(xié)議。它不提供可靠性,只是把應(yīng)用程序傳給IP層的數(shù)據(jù)報(bào)發(fā)送出去,但是不能保證它們能到達(dá)目的地。由于UDP在傳輸數(shù)據(jù)報(bào)前不用再客戶和服務(wù)器之間建立一個(gè)連接,且沒有超時(shí)重發(fā)等機(jī)制,所以傳輸速度很快

UDP報(bào)文結(jié)構(gòu)如下圖示:

圖片

UDP報(bào)文結(jié)構(gòu)各字段功能如下示:

端口 :表示發(fā)送端端口號,字段長16位;在需要對方回信時(shí)選用,不需要時(shí)可設(shè)為0

目標(biāo)端口號 :表示接收端端口號,字段長16位;在終點(diǎn)交付報(bào)文時(shí)要使用到

總長度 :UDP用戶數(shù)據(jù)報(bào)的長度,其最小值是8(僅有首部),發(fā)送一個(gè)帶0字節(jié)數(shù)據(jù)的UDP數(shù)據(jù)報(bào)是允許的。值得注意的是,UDP長度字段是冗余的;IPV4頭部包含了數(shù)據(jù)報(bào)的總長度,同時(shí)IPV6頭部包含了負(fù)載長度。因此,一個(gè)UDP/IPV4數(shù)據(jù)報(bào)的長度等于IPV4數(shù)據(jù)報(bào)的總長度減去IPV4頭部的長度;一個(gè)UDP/IPV6數(shù)據(jù)報(bào)的長度等于包含在IPV6頭部中的負(fù)載長度(payload length)字段的值減去所有擴(kuò)展頭部(除非使用了超長數(shù)據(jù)報(bào))的長度。這兩種情況下,UDP長度字段應(yīng)該與從IP層提供的信息計(jì)算得到的長度是一致的

校驗(yàn)和檢測UDP用戶數(shù)據(jù)報(bào)在傳輸中是否有錯(cuò)。有錯(cuò)就丟棄

3. Wireshark抓包分析

將Socket API編程模型一文中的UDP Server工程源碼下載到開發(fā)板中,用網(wǎng)線將PC和開發(fā)板相連接,開啟一個(gè)UDP客戶端;打開wireshark軟件,監(jiān)聽IP地址192.168.1.10后,在UDP客戶端發(fā)送數(shù)據(jù)

圖片

wireshark抓取到相應(yīng)的UDP數(shù)據(jù)包,可以看到源端口號、目標(biāo)端口號、總長度、校驗(yàn)和以及數(shù)據(jù)

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 封裝
    +關(guān)注

    關(guān)注

    125

    文章

    7593

    瀏覽量

    142144
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    317

    瀏覽量

    33801
  • UDP協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    12656
  • 數(shù)據(jù)包
    +關(guān)注

    關(guān)注

    0

    文章

    238

    瀏覽量

    24248
  • 傳輸層
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    10857
收藏 人收藏

    評論

    相關(guān)推薦

    #硬聲創(chuàng)作季 #FPGA FPGA-64-02 UDP協(xié)議詳解-1

    fpgaUDPUDP協(xié)議DP
    水管工
    發(fā)布于 :2022年10月29日 03:08:41

    #硬聲創(chuàng)作季 #FPGA FPGA-64-02 UDP協(xié)議詳解-2

    fpgaUDPUDP協(xié)議DP
    水管工
    發(fā)布于 :2022年10月29日 03:09:02

    64 0810_02 UDP協(xié)議詳解 - 第1節(jié) #硬聲創(chuàng)作季

    UDPUDP協(xié)議
    充八萬
    發(fā)布于 :2023年08月19日 20:47:16

    64 0810_02 UDP協(xié)議詳解 - 第2節(jié) #硬聲創(chuàng)作季

    UDPUDP協(xié)議
    充八萬
    發(fā)布于 :2023年08月19日 20:48:06

    64 0810_02 UDP協(xié)議詳解 - 第3節(jié) #硬聲創(chuàng)作季

    UDPUDP協(xié)議
    充八萬
    發(fā)布于 :2023年08月19日 20:48:57

    Linux下的UDP協(xié)議編程

    Linux下的UDP協(xié)議編程 介紹UDP協(xié)議,并提供一個(gè)適用于客戶端和服務(wù)器端的實(shí)例子程序?! £P(guān)鍵詞:Linux;UDP
    發(fā)表于 10-16 22:22 ?3930次閱讀
    Linux下的<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>編程

    UDP協(xié)議,UDP協(xié)議是什么意思

    UDP協(xié)議,UDP協(xié)議是什么意思 UDP 是User Datagram Protocol的簡稱, 中文名是用戶數(shù)據(jù)包
    發(fā)表于 03-29 17:35 ?1462次閱讀

    udp協(xié)議及包格式是什么

    也許有的讀者會問,既然UDP是一種不可靠的網(wǎng)絡(luò)協(xié)議,那么還有什么使用價(jià)值或必要呢?其實(shí)不然,在有些情況下UDP協(xié)議可能會變得非常有用。
    發(fā)表于 12-08 14:38 ?9755次閱讀
    <b class='flag-5'>udp</b><b class='flag-5'>協(xié)議</b>及包格式是什么

    udp協(xié)議源碼詳解

    在選擇使用協(xié)議的時(shí)候,選擇UDP必須要謹(jǐn)慎?在網(wǎng)絡(luò)質(zhì)量令人不十分滿意的環(huán)境下,UDP協(xié)議數(shù)據(jù)包丟失會比較嚴(yán)重?但是由于UDP的特性:它不屬于
    發(fā)表于 12-08 16:03 ?9369次閱讀

    tcp和udp協(xié)議的異同

    UDP 協(xié)議 UDP 協(xié)議是無連接、不可靠的一個(gè)傳輸層協(xié)議。下圖是 UDP 數(shù)據(jù)報(bào)格式。 端口號
    的頭像 發(fā)表于 11-12 14:45 ?3842次閱讀
    tcp和<b class='flag-5'>udp</b><b class='flag-5'>協(xié)議</b>的異同

    什么是UDP協(xié)議?

    UDP協(xié)議即用戶數(shù)據(jù)報(bào)協(xié)議,該協(xié)議主要為應(yīng)用程序提供了一種無需建立連接就可以發(fā)送封裝的 IP 數(shù)據(jù)包的方法。nternet的傳輸層有兩個(gè)主要協(xié)議
    發(fā)表于 05-06 15:19 ?2176次閱讀

    udp協(xié)議的特性有哪些 udp的應(yīng)用原理

    UDP(User Datagram Protocol)是一個(gè)獨(dú)立的傳輸層協(xié)議,不包含其他協(xié)議。它僅在IP協(xié)議上增加了端口號的概念,以便能夠?qū)?shù)據(jù)報(bào)正確地傳送給目標(biāo)端口。
    的頭像 發(fā)表于 06-14 18:21 ?1921次閱讀

    udp是什么協(xié)議 TCP與UDP的區(qū)別

    TCP協(xié)議提供可靠的數(shù)據(jù)傳輸,UDP協(xié)議提供盡量高效的數(shù)據(jù)傳輸。TCP協(xié)議通過使用序列號、確認(rèn)應(yīng)答等機(jī)制,保證數(shù)據(jù)傳輸?shù)目煽啃?,?b class='flag-5'>UDP
    的頭像 發(fā)表于 06-26 17:47 ?1.1w次閱讀

    UDP協(xié)議的原理

    為啥要自己寫一個(gè)mini UDP協(xié)議棧?因?yàn)槲覀兏赏低得氖虑?,哈哈哈?。。?其實(shí)是為了不跑一個(gè)龐大的LWIP協(xié)議棧,通過自己寫的mini udp
    的頭像 發(fā)表于 11-10 10:08 ?602次閱讀
    <b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>的原理

    udp是什么協(xié)議udp協(xié)議介紹

    UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)是一種無連接的傳輸層協(xié)議,不保證數(shù)據(jù)傳輸?shù)目煽啃?,只?fù)責(zé)把數(shù)據(jù)包發(fā)送給目標(biāo)地址。它提供了簡單、高效的數(shù)據(jù)傳輸方式,適合對傳輸質(zhì)量
    的頭像 發(fā)表于 04-19 15:57 ?932次閱讀