0

0

【在Linux世界中追寻伟大的One Piece】传输层协议UDP

星夢妙者

星夢妙者

发布时间:2025-07-21 10:54:33

|

375人浏览过

|

来源于php中文网

原创

1 -> 传输层

传输层是计算机网络OSI模型中的第四层,负责在网络中的两个节点之间提供端到端的数据传输服务。其主要任务包括数据分段与重组、端口标识、连接控制(如面向连接的TCP和无连接的UDP)、流量控制以及差错检测与处理。这些功能确保数据传输的可靠性、有序性和高效性。

简单来说,传输层确保数据从发送端顺利传输到接收端。

2 -> 端口号

端口号(Port)用于标识一台主机上不同应用程序之间的通信。

【在Linux世界中追寻伟大的One Piece】传输层协议UDP在TCP/IP协议中,通过"源IP"、"源端口号"、"目的IP"、"目的端口号"和"协议号"这五元组来唯一标识一个通信连接(可以通过netstat -n命令查看)。

【在Linux世界中追寻伟大的One Piece】传输层协议UDP2.1 -> 端口号范围划分

0 - 1023:被称为知名端口号,用于HTTP、FTP、SSH等常用应用层协议,这些端口号是固定的。 1024 - 65535:由操作系统动态分配,客户端程序的端口号通常从这个范围内分配。

2.2 -> 知名端口号

常用服务器使用固定端口号以便于识别和使用:

ssh服务器使用22端口,ftp服务器使用21端口,telnet服务器使用23端口,http服务器使用80端口,https服务器使用443端口。可以通过特定命令查看这些知名端口号。

在编写程序时,应当避免使用这些知名端口号。

3 -> UDP协议

UDP(用户数据报协议)是一种无连接的传输层协议,提供简单且面向报文的数据传输服务。

UDP不保证数据包的可靠交付、顺序或完整性,不进行拥塞控制,也不需要在传输数据前建立连接。

UDP的头部开销较小,仅8字节,包括源端口、目的端口、长度和校验和字段。

由于其简单性,UDP适用于对实时性要求高的应用,如在线游戏、语音视频通信和某些网络广播。

3.1 -> UDP协议端格式

【在Linux世界中追寻伟大的One Piece】传输层协议UDPUDP长度字段为16位,表示整个数据报(UDP首部+UDP数据)的最大长度。如果校验出错,数据报将被直接丢弃。

Vinteo AI
Vinteo AI

利用人工智能在逼真的室内环境中创建产品可视化。无需设计师和产品照片拍摄

下载

3.2 -> UDP的特点

UDP传输类似于寄信:

无连接:只需知道对端的IP和端口号即可直接传输,无需建立连接。 不可靠:没有确认和重传机制;如果网络故障导致数据包无法送达,UDP不会向应用层返回错误信息。 面向数据报:不能灵活控制读写数据的次数和数量。 简单高效:UDP头部开销小,仅8字节,适合快速传输数据,尤其是对实时性要求高的应用。 支持广播和多播:UDP可实现单播、广播和多播通信,适合发送数据到多个目的地。 无流量控制:UDP不提供流量控制功能,网络拥塞时可能导致数据包丢失或传输延迟增加。 适用场景:UDP适用于实时音视频通话、在线游戏、DNS查询等对实时性要求高的应用。

3.2.1 -> 面向数据报

应用层交给UDP的数据报文,UDP会原样发送,不拆分也不合并。

例如,使用UDP传输100个字节的数据:

如果发送端通过一次sendto发送100个字节,那么接收端也必须通过一次recvfrom接收这100个字节,而不能通过多次recvfrom接收,每次接收10个字节。

3.3 -> UDP的缓冲区

UDP没有真正的发送缓冲区。调用sendto后,数据直接交给内核,由内核传递给网络层协议进行后续传输。UDP有接收缓冲区,但不能保证接收到的UDP报文的顺序与发送顺序一致;如果缓冲区已满,新的UDP数据将被丢弃。UDP的socket支持读写操作,这被称为全双工。

3.4 -> UDP使用注意事项

UDP协议首部中有一个16位的最大长度字段,这意味着一个UDP数据报的最大长度为64K(包括UDP首部)。

然而,在当今的互联网环境下,64K是一个非常小的数字。

如果需要传输的数据超过64K,必须在应用层手动分包多次发送,并在接收端手动拼装。

3.5 -> 基于UDP的应用层协议

NFS(网络文件系统):用于网络文件共享。 TFTP(简单文件传输协议):用于简单文件传输。 DHCP:动态主机配置协议,用于自动分配IP地址。 BOOTP:启动协议,用于无盘设备启动。 DNS(域名解析系统):用于将域名解析为IP地址。 SNMP(简单网络管理协议):用于网络设备和应用程序的管理,可以使用UDP作为传输层协议。 RIP(路由信息协议):一种基于距离矢量算法的路由协议,使用UDP进行信息交换。 QUIC(快速UDP互联网连接):由谷歌开发的基于UDP的传输层协议,旨在减少连接延迟,提供安全和可靠的连接。 UDT(基于UDP的数据传输协议):一种面向连接的双向应用层协议,建立在UDP之上,支持高速数据传输和可靠性控制。

当然,也包括你自己编写的基于UDP的自定义应用层协议。

感谢各位大佬的支持!!!

互三啦!!!

相关专题

更多
页面置换算法
页面置换算法

页面置换算法是操作系统中用来决定在内存中哪些页面应该被换出以便为新的页面提供空间的算法。本专题为大家提供页面置换算法的相关文章,大家可以免费体验。

403

2023.08.14

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

366

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

410

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

1933

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1995

2024.08.16

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1995

2024.08.16

tcp和udp的区别
tcp和udp的区别

TCP和UDP的区别,在连接性、可靠性、速度和效率、数据报大小以及适用场景等方面。本专题为大家提供tcp和udp的区别的相关的文章、下载、课程内容,供大家免费下载体验。

119

2023.07.25

udp是什么协议
udp是什么协议

UDP是OSI参考模型中一种无连接的传输层协议。本专题为大家带来udp是什么协议的相关文章,免费提供给大家。

285

2023.08.08

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
swoole入门物联网开发与实战
swoole入门物联网开发与实战

共15课时 | 1.2万人学习

swoole项目实战(第二季)
swoole项目实战(第二季)

共15课时 | 1.2万人学习

swoole从入门到精通(第一季)
swoole从入门到精通(第一季)

共47课时 | 3.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号