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

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

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

UDP協(xié)議原理詳解

CHANBAEK ? 來(lái)源:嵌入式攻城獅 ? 作者:嵌入式攻城獅 ? 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è)簡(jiǎn)單的面向數(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)各字段功能如下示:

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

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

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

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

3. Wireshark抓包分析

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

圖片

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

圖片

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

    關(guān)注

    126

    文章

    7905

    瀏覽量

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

    關(guān)注

    0

    文章

    325

    瀏覽量

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

    關(guān)注

    0

    文章

    69

    瀏覽量

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

    關(guān)注

    0

    文章

    261

    瀏覽量

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

    關(guān)注

    0

    文章

    29

    瀏覽量

    10899
收藏 人收藏

    評(píng)論

    相關(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é)議
    充八萬(wàn)
    發(fā)布于 :2023年08月19日 20:47:16

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

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

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

    UDPUDP協(xié)議
    充八萬(wàn)
    發(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 ?3974次閱讀
    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的簡(jiǎn)稱, 中文名是用戶數(shù)據(jù)包
    發(fā)表于 03-29 17:35 ?1493次閱讀

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

    也許有的讀者會(huì)問,既然UDP是一種不可靠的網(wǎng)絡(luò)協(xié)議,那么還有什么使用價(jià)值或必要呢?其實(shí)不然,在有些情況下UDP協(xié)議可能會(huì)變得非常有用。
    發(fā)表于 12-08 14:38 ?9902次閱讀
    <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ù)包丟失會(huì)比較嚴(yán)重?但是由于UDP的特性:它不屬于
    發(fā)表于 12-08 16:03 ?9574次閱讀

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

    UDP 協(xié)議 UDP 協(xié)議是無(wú)連接、不可靠的一個(gè)傳輸層協(xié)議。下圖是 UDP 數(shù)據(jù)報(bào)格式。 端口號(hào)
    的頭像 發(fā)表于 11-12 14:45 ?4088次閱讀
    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)用程序提供了一種無(wú)需建立連接就可以發(fā)送封裝的 IP 數(shù)據(jù)包的方法。nternet的傳輸層有兩個(gè)主要協(xié)議
    發(fā)表于 05-06 15:19 ?2339次閱讀

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

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

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

    TCP協(xié)議提供可靠的數(shù)據(jù)傳輸,UDP協(xié)議提供盡量高效的數(shù)據(jù)傳輸。TCP協(xié)議通過使用序列號(hào)、確認(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 ?892次閱讀
    <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é)議)是一種無(wú)連接的傳輸層協(xié)議,不保證數(shù)據(jù)傳輸?shù)目煽啃?,只?fù)責(zé)把數(shù)據(jù)包發(fā)送給目標(biāo)地址。它提供了簡(jiǎn)單、高效的數(shù)據(jù)傳輸方式,適合對(duì)傳輸質(zhì)量
    的頭像 發(fā)表于 04-19 15:57 ?1401次閱讀