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数据包,可以看到源端口号、目标端口号、总长度、校验和以及数据
-
封装
+关注
关注
126文章
7881浏览量
142903 -
UDP
+关注
关注
0文章
325浏览量
33933 -
UDP协议
+关注
关注
0文章
69浏览量
12695 -
数据包
+关注
关注
0文章
260浏览量
24386 -
传输层
+关注
关注
0文章
29浏览量
10889
发布评论请先 登录
相关推荐
评论