以太网协议介绍——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 等。
相关推荐
xw-pp14 分钟前
从输入 URL 到页面展示到底发生了什么?
网络协议·tcp/ip·http·网络安全·https·tcpdump
金士顿39 分钟前
MAC在网络结构中的位置:深入解析
网络·macos
筑梦之月1 小时前
我国网络安全领域有哪些法律法规?主要内容是什么?
网络·安全·web安全
墨鸦_Cormorant1 小时前
VPN 的入门介绍
服务器·网络·安全·vpn
互联网安全研究院1 小时前
盘点 | 2024上半年国内数据安全事件
网络·安全
聪明的小脑袋瓜儿2 小时前
网络安全设备——防火墙
网络·web安全·网络安全·防火墙
kinlon.liu2 小时前
基于 Nginx + Spring Boot + Vue + JPA 的网站安全防护指南
网络·vue.js·spring boot·nginx·安全
semicolon_hello2 小时前
使用C++编写TCP服务端程序
服务器·网络·c++·tcp/ip
灵韵设计3 小时前
学习笔记——动态路由——OSPF(认证)
网络·智能路由器·ospf邻居认证·接口认证·区域认证
斐夷所非3 小时前
静态路由配置注意事项及黑洞路由的使用
网络