以太网协议介绍——UDP

news/2024/7/8 15:28:37 标签: udp, 网络协议, 网络

注:需要先了解一些以太网的背景知识,方便更好理解UDP协议、
以太网基础知识一
以太网基础知识二

UDP协议

  • UDP即用户数据报协议,是一种面向无连接传输层协议,属于 TCP/IP 协议簇的一种。
  • UDP具有消耗资源少、通信效率高等优点,通常用来传输音频、视频等对实时性要求高的场合。

Q:什么是面向无连接
A:无连接即在传输数据时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。

在这里插入图片描述
从图中可以看出,以太网的数据包就是对各层协议的逐层封装来实现数据的传输
用户数据打包在 UDP 协议中,UDP协议又是基于IP协议之上的,IP协议又是走MAC层发送的。
即从包含关系来说:MAC帧中的数据段为IP数据报,IP报文中的数据段为UDP报文,UDP报文中的数据段为用户希望传输的数据内容。

这里着重介绍一下IP首部数据(其他的在以太网基础知识中对以太网数据包讲解内容中有涉及到)
在这里插入图片描述
这里给一个实际项目中用到的协议表:
在这里插入图片描述
从前面介绍的图 34.1.2 可以知道,UDP 的首部和数据位于IP 协议的数据段。既然已经有 IP 协议了,为什么还需要 UDP 协议呢?为什么我们选择的是 UDP 还不是传输更可靠的 TCP 呢?

Q:已经有 IP 协议了,为什么还需要 UDP 协议呢?
A:事实上数据是可以直接封装在 IP 协议里而不使用 TCP、UDP 或者其它上层协议的。
然而在网络传输中同一IP服务器需要提供各种不同的服务,各种不同的服务类型是使用端口号来区分的,例如用于浏览网页服务的 80 端口,用于FTP(文件传输协议)服务的 21 端口等。
TCP和 UDP 都使用两个字节的端口号,理论上可以表示的范围为0~65535,足够满足各种不同的服务类型。

Q:为什么选择的是 UDP 而不是传输更可靠的 TCP 呢?
A:TCP 协议与 UDP 协议作为传输层最常用的两种传输协议,这两种协议都是使用 IP 作为网络层协议进行传输。首先可以肯定的是:使用 FPGA 实现 TCP协议是完全没有问题的。但是,FPGA 发展到现在,却鲜有成功商用的 RTL 级的 TCP 协议设计,大部分以太网传输都是基于比较简单的UDP 协议。TCP协议设计之初是根据软件灵活性设计的,如果使用硬件逻辑实现,工程量会十分巨大,而且功能和性能无法得到保证,因此,TCP 协议设计并不适合使用硬件逻辑实现。UDP 协议是一种不可靠传输,发送方只负责数据发送出去,而不管接收方是否正确的接收。在很多场合,是可以接受这种潜在的不可靠性的,例如视频实时传输显示等。

TCP 协议与 UDP 协议的区别:

  1. TCP 协议面向连接,是流传输协议,通过连接发送数据,而 UDP 协议传输不需要连接,是数据报 协议;
  2. TCP为可靠传输协议,而UDP为不可靠传输协议。即TCP协议可以保证数据的完整和有序,而UDP 不能保证;
  3. UDP由于不需要连接,故传输速度比 TCP 快,且占用资源比 TCP 少;
  4. 应用场合:
    TCP协议常用在对数据文件完整性要求较高的一些场景中,如文件传输等。
    UDP常用于对通讯速度有较高要求或者传输数据较少时,比如对速度要求较高的视频直播和传输数据较少的 QQ 等。

http://www.niftyadmin.cn/n/5537331.html

相关文章

昇思25天学习打卡营第16天 | DCGAN生成漫画头像

这两天把minspore配置到我的电脑上了,然后运行就没什么问题了✨😊 今天学这个DCGAN生成漫画头像,我超级感兴趣的嘞🦄🥰 GAN基础原理 这部分原理介绍参考GAN图像生成。 DCGAN原理 DCGAN(深度卷积对抗生成…

一个开源的、独立的、可自托管的评论系统,专为现代Web平台设计

大家好,今天给大家分享的是一个开源的、独立的、可自托管的评论系统,专为现代Web平台设计。 Remark42是一个自托管的、轻量级的、简单的(但功能强大的)评论引擎,它不会监视用户。它可以嵌入到博客、文章或任何其他读者…

nuxt3搭建和部署

Nuxt 3是一个基于Vue 3的静态网站生成框架,它提供了高性能、SEO友好的Web应用程序开发体验。Nuxt 3重写了许多核心代码,增加了新功能,如基于Vite的构建系统、改进的路由系统、数据获取和插件系统。它支持TypeScript和多种渲染模式&#xff08…

海量设备集中运维,向日葵远程控制赋能农牧产品加工产业链

产业规模越大,单位成本就越低,这是一个广泛存在的商业规律。 在诸多行业中,农牧业的这种“规模效应”尤为明显,这使得在农牧行业内逐渐发展出许多横跨产业链上下游的大型企业集团,业务甚至覆盖相关产业设备的设计与生…

js使用websocket,vue使用websocket,copy即用

新建一个文件 websocket.js // 定义websocket 地址 let socketurlDev "ws://192.000.0.0:8085/websocket/admin/"; //开发环境 let socketurlProd "wss://123456789.cn/prod-api/websocket/admin/"; //正式环境// 重连锁, 防止过多重连 let reconnectLo…

qt 关于大端小端的一个实验 简单实验

1.概要 起因我用滚动是x86电脑,我用一个usort a11a ,我期待转换长的char字符应该是这样的“1aa1”,因为x86是小端的,这也是这个16位 类型的实际内存顺序,但是输出的结果是 “a11a”,难道这环境不是小端?难道qt能智能…

【Unix/Linux】$bash-3.2是什么

bash-3.2 指的是Bourne Again Shell(Bash)的3.2版本。 Bash是一个广泛使用的Unix shell和命令语言,是GNU项目的一部分,也是许多Linux发行版和Unix系统的默认shell。 以下是一些关于Bash 3.2的要点: 1. 兼容性&#…

---java KMP算法---

对于在一段字符串中查找一段字符串,如果用数组遍历的方法那就效率低下,所以产生了效率更高的KMP算法 KMP算法查只需要遍历一次字符串就可以找出第一次出现的目标字符串 要学的话建议区b站看视频,学着由视频学者比较容易 我这里就提供下我实…