0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

UDP协议原理详解

CHANBAEK 来源:嵌入式攻城狮 作者:嵌入式攻城狮 2023-04-24 10:54 次阅读

1. UDP报文封装

一个典型的使用UDP协议封装的数据包,包括以太网MAC头+网络层IP数据头+传输层UDP头+要传输的数据。详见下图所示:

图片

2. UDP报文结构

UDP(User Data Protocol,用户数据报协议)是一个简单的面向数据报的运传输层协议。它不提供可靠性,只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地。由于UDP在传输数据报前不用再客户和服务器之间建立一个连接,且没有超时重发等机制,所以传输速度很快

UDP报文结构如下图示:

图片

UDP报文结构各字段功能如下示:

端口 :表示发送端端口号,字段长16位;在需要对方回信时选用,不需要时可设为0

目标端口号 :表示接收端端口号,字段长16位;在终点交付报文时要使用到

总长度 :UDP用户数据报的长度,其最小值是8(仅有首部),发送一个带0字节数据的UDP数据报是允许的。值得注意的是,UDP长度字段是冗余的;IPV4头部包含了数据报的总长度,同时IPV6头部包含了负载长度。因此,一个UDP/IPV4数据报的长度等于IPV4数据报的总长度减去IPV4头部的长度;一个UDP/IPV6数据报的长度等于包含在IPV6头部中的负载长度(payload length)字段的值减去所有扩展头部(除非使用了超长数据报)的长度。这两种情况下,UDP长度字段应该与从IP层提供的信息计算得到的长度是一致的

校验和检测UDP用户数据报在传输中是否有错。有错就丢弃

3. Wireshark抓包分析

将Socket API编程模型一文中的UDP Server工程源码下载到开发板中,用网线将PC和开发板相连接,开启一个UDP客户端;打开wireshark软件,监听IP地址192.168.1.10后,在UDP客户端发送数据

图片

wireshark抓取到相应的UDP数据包,可以看到源端口号、目标端口号、总长度、校验和以及数据

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 封装
    +关注

    关注

    125

    文章

    7605

    浏览量

    142192
  • UDP
    UDP
    +关注

    关注

    0

    文章

    317

    浏览量

    33806
  • UDP协议
    +关注

    关注

    0

    文章

    68

    浏览量

    12660
  • 数据包
    +关注

    关注

    0

    文章

    239

    浏览量

    24270
  • 传输层
    +关注

    关注

    0

    文章

    29

    浏览量

    10859
收藏 人收藏

    评论

    相关推荐

    #硬声创作季 #FPGA FPGA-64-02 UDP协议详解-1

    fpgaUDPUDP协议DP
    水管工
    发布于 :2022年10月29日 03:08:41

    #硬声创作季 #FPGA FPGA-64-02 UDP协议详解-2

    fpgaUDPUDP协议DP
    水管工
    发布于 :2022年10月29日 03:09:02

    64 0810_02 UDP协议详解 - 第1节 #硬声创作季

    UDPUDP协议
    充八万
    发布于 :2023年08月19日 20:47:16

    64 0810_02 UDP协议详解 - 第2节 #硬声创作季

    UDPUDP协议
    充八万
    发布于 :2023年08月19日 20:48:06

    64 0810_02 UDP协议详解 - 第3节 #硬声创作季

    UDPUDP协议
    充八万
    发布于 :2023年08月19日 20:48:57

    Linux下的UDP协议编程

    Linux下的UDP协议编程 介绍UDP协议,并提供一个适用于客户端和服务器端的实例子程序。  关键词:Linux;UDP
    发表于 10-16 22:22 3932次阅读
    Linux下的<b class='flag-5'>UDP</b><b class='flag-5'>协议</b>编程

    UDP协议,UDP协议是什么意思

    UDP协议,UDP协议是什么意思 UDP 是User Datagram Protocol的简称, 中文名是用户数据包
    发表于 03-29 17:35 1462次阅读

    udp协议及包格式是什么

    也许有的读者会问,既然UDP是一种不可靠的网络协议,那么还有什么使用价值或必要呢?其实不然,在有些情况下UDP协议可能会变得非常有用。
    发表于 12-08 14:38 9767次阅读
    <b class='flag-5'>udp</b><b class='flag-5'>协议</b>及包格式是什么

    udp协议源码详解

    在选择使用协议的时候,选择UDP必须要谨慎。在网络质量令人不十分满意的环境下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于
    发表于 12-08 16:03 9407次阅读

    tcp和udp协议的异同

    UDP 协议 UDP 协议是无连接、不可靠的一个传输层协议。下图是 UDP 数据报格式。 端口号
    的头像 发表于 11-12 14:45 3857次阅读
    tcp和<b class='flag-5'>udp</b><b class='flag-5'>协议</b>的异同

    什么是UDP协议

    UDP协议即用户数据报协议,该协议主要为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。nternet的传输层有两个主要协议
    发表于 05-06 15:19 2202次阅读

    udp协议的特性有哪些 udp的应用原理

    UDP(User Datagram Protocol)是一个独立的传输层协议,不包含其他协议。它仅在IP协议上增加了端口号的概念,以便能够将数据报正确地传送给目标端口。
    的头像 发表于 06-14 18:21 1959次阅读

    udp是什么协议 TCP与UDP的区别

    TCP协议提供可靠的数据传输,UDP协议提供尽量高效的数据传输。TCP协议通过使用序列号、确认应答等机制,保证数据传输的可靠性,而UDP
    的头像 发表于 06-26 17:47 1.1w次阅读

    UDP协议的原理

    为啥要自己写一个mini UDP协议栈?因为我们干偷偷摸摸的事情,哈哈哈!!! 其实是为了不跑一个庞大的LWIP协议栈,通过自己写的mini udp
    的头像 发表于 11-10 10:08 626次阅读
    <b class='flag-5'>UDP</b><b class='flag-5'>协议</b>的原理

    udp是什么协议udp协议介绍

    UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议,不保证数据传输的可靠性,只负责把数据包发送给目标地址。它提供了简单、高效的数据传输方式,适合对传输质量
    的头像 发表于 04-19 15:57 969次阅读