以太网协议介绍——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 等。
相关推荐
wang090731 分钟前
网络协议之为什么要分层
网络·网络协议
EasyDSS2 小时前
EasyCVR视频汇聚平台助力大型生产监控项目摄像机选型与应用
网络·人工智能·音视频
穿条秋裤到处跑2 小时前
前端连接websocket服务报错 Unexpected response code: 301
websocket·网络协议·nginx
等猪的风2 小时前
openwrt作旁路由时的几个常见问题 openwrt作为旁路由配置zerotier 图文讲解
运维·服务器·网络
千码君20163 小时前
什么是数据链路层的CRC检测以及为什么要放到帧尾?
服务器·网络·网络协议·以太网·奇偶校验·crc检测·以太网帧
后院那片海3 小时前
Web基础与HTTP协议
网络·网络协议·http
科技小E3 小时前
EasyRTC嵌入式音视频通信SDK智能安防与监控系统的全方位升级解决方案
大数据·网络·人工智能·音视频
问道飞鱼4 小时前
【知识科普】HTTPS 加密中信息的可见性详解
网络协议·http·https·ssl·tls
程高兴5 小时前
高压直流输电MATLAB/simulink仿真模型+说明文档
开发语言·网络·matlab
开***能8 小时前
高炉项目中DeviceNET到Ethernet的转换奥秘
网络·网络协议·自动化