大家好,又见面了,我是你们的朋友全栈君。
一、什么是UDP UDP就是一种无连接的协议。该协议用来支撑那些需要在计算机之间传输数据的网络应用,包括网络视频会议系统在内的众多客户/服务器模式的应用。 二、UDP协议的特点 UDP使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接传输服务。他也不提供报文到达确认、排序及流量控制等功能。 (1)UDP是一个无连接协议,也就是传输数据之前源端口和目标端口不能建立连接。当它想传输时,就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传输数据的速度仅仅是受应用程序生成数据的速度,,计算机的能力和传输带宽的限制。在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。 (2)由于传输数据不建立连接,因此也就不需要维护连接状态。因此,一台服务器可能同时向多个客户机传输相同的信息。 (3)UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很少。 (4)吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和目标端主机性能的限制。 (5)UDP使用尽最大努力交付,既不保证可靠交付,因此主机不需要维持复杂的链接状态表 (6)UDP是面向报文的。发送方的UDP对应用程序传输下来的报文,添加首部后就想下传送给IP层。既不拆分,也不合并,而是保留这些报文的边界。因此,应用程序需要选择合适的报文大小。 三、捕获ARP协议包 实验环境 PC:物理机WIN10(IP:10.175.139.213)[在此启动wireshark] 使用捕获过滤器 根据实验环境选择捕获选项
进入如下界面,当前没有捕获到任何包。因为这里使用了捕获过滤器,仅捕获UDP包
在PC上执行QQ程序,这时候只需要简单地登陆一下,将会捕获到大量的UDP数据包; 在wireshark中查看抓包记录
其中,我们会看到许多QICQ协议,这里的QICQ协议表示是运行的QQ程序; 在分析UDP数据包之前我们先介绍一下格式,以清楚地理解每个包 UDP数据报首部格式如下:
源端口:用来传输数据包的端口 目标端口:数据包将要被传输到的端口 数据报长度:数据报的字节长度 校验和:用来确保UDP首部和数据到达时的完整性 数据:被UDP封装进去的数据,包含应用层协议头部和用户发出的数据
查看捕获的UDP数据包。可以看到共有五行详细信息。其中,第四行信息是UDP协议的详细信息。
其中,以下内容表示这是第1570帧数据报的详细信息。其中包的大小为712个字节
以下内容表示以太网帧头部信息。其中源MAC地址为52:ce:c2:12:8b:ef,目标MAC地址为94:db:da:3e:8f:cf。
以下信息是IPV4首部信息。其中源IP地址为10.175.139.213,目标IP地址为123.151.78.110。
以下信息是表示传输层的数据报首部信息,此处是UDP协议。其中源端口号为56429,目标端口为。以下为对该部分内容展开介绍。
以下信息是被UDP封装进去的数据,其大小为47bytes
关于以上UDP首部格式,我们可以构造出下表:
嗯嗯~~就酱紫!!!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143818.html原文链接:https://javaforall.cn