《趣学CCNA——路由与交换》一2.2 UDP协议简介

简介:

本节书摘来自异步社区《趣学CCNA——路由与交换》一书中的第2章,第2.2节,作者 田果 , 彭定学,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 UDP协议简介

趣学CCNA——路由与交换
TCP是一个面向连接的协议,而UDP则正好相反,它是一个“无连接的”协议。这意味着,您不会在这一节读到关于握手流程的那些复杂的内容,可以省下一些时间和精力用来刷微博、微信。但是,TCP费那么大工夫去握手可不是因为它空虚寂寞觉得冷,这一切都是为了保障接收方能够收到自己发送的数据。UDP省掉了这个过程,这也就说明,UDP 并不关心对方能不能收到它发送的信息。因此,如果说TCP发送出去的数据是能够随时查询投递状态的快递包裹或者挂号信,那么UDP发送出去的数据就是普通的平信,虽然扔到邮筒里之后,理论上确实会有人把它最终投递到接收者的邮箱里,但实际上没有人会对它的丢失承担任何责任,它的投递状态也完全不可追溯。既然不需要追溯信息,也就不需要再定义那么多用来确认数据包状态的头部字段。所以,与TCP相比,UDP协议的包头格式要简单得多,详见下面的图2-7。而精简的数据包头部可以提高传输层的效率,增加数据包中数据所占的比例,同时也因为设备不需要再处理这么多的头部信息,因此也可以提高 UDP 协议的处理速度。


626d568fa2c081d6baf8247c6996d8935f2c3239

在真正动手写作UDP头部格式之前,我曾一度想用“不解释”三个字带过,这样不光可以省掉很多笔墨,还可以显得十分洒脱不羁。因为UDP头部格式和TCP相比,实在是简单得吓人,甚至其中根本没有一个字段不包含在TCP定义的头部字段之中。再作解释,岂不是有复制粘贴之嫌?可一想到出版物毕竟不是课堂,更不是技术交流论坛,万一因为这三字被编辑打了回来,还得放下手头的其他工作回过头来补稿,反而是弄巧成拙,因此这里还是简略地对UDP头部作出以下三点解释。

虽然UDP头部格式中包含的四个字段统统可以在TCP头部格式中找到,但因为UDP是无连接的协议,因此它并不要求对端向自己回送数据。这样一来,UDP 的源端口号 就成了一个按需使用的字段。当 UDP 发送的数据 不需要对方回复时,可以将源端口号设置为 0 。
相信您福至心灵,早就看出了UDP头部是没有可选项字段的。没有可选项字段,UDP头部长度也就因此而固定了下来。所以,对于UDP协议来说,定义头部的长度没有任何必要,而UDP头部中的“ UDP 长度”字段描述的当然也就不是头部长度,而是整个数据段的长度,其中包括了头部字段和数据部分的长度。
UDP对数据提供的是不可靠的传输,因此虽然 UDP 头部字段中提供了 校验和字段,但这个字段的使用也不是强制的 ,就像UDP源端口号字段是可选的道理一样。
关于UDP,我们已经没有什么细节可供惦记。在本节最后,我们遵循TCP协议的惯例,也通过表2-2来向读者介绍几个常用的基于UDP的应用层协议。


eb0b9bd7031502a7621c6ac31ad1466dbf209546

我们在这里简单总结一下: TCP 协议和 UDP 协议都工作在传输层 ,其中 TCP 协议 是 可以给上层应用提供可靠传输服务的协议;而 UDP 则是一个无连接的协议 ,不给上层协议提供有保障的传输。 TCP 协议为了确保对方能够接收到自己发送的数据,会在传输数据之前先与对端“彼此建立联系”,这个过程称之为建立连接,因此 TCP 称为 面向连接的协议。 TCP 建立连接的过程叫做三次握手;相应地;它也会采用四次握手的过 程与对端断开连接。而 UDP 则远没有这么麻烦,它 不在乎对方是否能够接收自己的信息,也不在乎对方是否存在,就会直接把信息丢给对方,因此称为无连接的协议。

在了解了传输层的两个“大咖”之后,下面我们来说说网络层的协议。

相关文章
|
28天前
|
监控 API 数据处理
局域网监控软件中基于UDP协议的数据传输代码实现
本文介绍了在局域网监控系统中,使用UDP协议进行数据传输的实现。示例代码展示了如何用Python创建UDP套接字,接收并处理监控数据。处理后的数据可通过网站API自动提交到网站,例如利用requests库发送HTTP POST请求。这种方法便于实现监控数据的自动化提交和展示,提升效率与安全性。
87 7
|
2月前
|
负载均衡 算法 网络协议
slb监听协议UDP
SLB的UDP监听器适用于实时性高、数据完整性要求低的场景,如视频流和在线游戏。它无连接、不可靠,不保证数据顺序和重传,适合延迟敏感应用。SLB进行UDP会话保持依赖应用层协议或数据包标识符,使用定制健康检查检测后端服务器状态,并支持多种负载均衡算法。配置时注意网络环境对UDP的支持,确保流量畅通。
23 4
|
3月前
|
网络协议 网络安全 网络性能优化
使用到UDP协议的情况下该如何防护
使用到UDP协议的情况下该如何防护
|
4月前
|
网络协议
【计算机网络】为什么DNS协议采用的是UDP作为传输层协议,而不是TCP?
【1月更文挑战第10天】【计算机网络】为什么DNS协议采用的是UDP作为传输层协议,而不是TCP?
|
4月前
|
网络协议 Linux 数据处理
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
网络编程【网络编程基本概念、 网络通信协议、IP地址 、 TCP协议和UDP协议】(一)-全面详解(学习总结---从入门到深化)
87 3
|
1天前
|
域名解析 网络协议 网络安全
[计算机网络]---UDP协议
[计算机网络]---UDP协议
|
4月前
|
缓存 网络协议 NoSQL
基于UDP的可靠性传输协议-KCP简介
基于UDP的可靠性传输协议-KCP简介
|
10天前
|
网络协议 安全 网络性能优化
CCNA 200-301系列:TCP和UDP简介
【4月更文挑战第21天】
25 8
|
11天前
|
缓存 网络协议 安全
TCP和UDP 传输层协议的区别
TCP协议全称是传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。
14 2
|
2月前
|
网络协议 数据格式