当前位置: 首页 > news >正文

传输层协议 UDP 介绍 -- UDP 协议格式,UDP 的特点,UDP 的缓冲区

目录

1. 再识的端口号

1.1 端口号范围划分

1.2 知名端口号(Well-Know Port Number)

2. UDP 协议

2.1 UDP 协议格式

2.2 UDP 的特点

2.3 UDP 的缓冲区

2.4 一些基于 UDP 的应用层协议


        传输层(Transport Layer)是计算机网络体系结构(OSI 七层模型)中的第四层,位于网络层(IP 层)之上,应用层之下。它的核心功能是为端到端(End-to-End)的通信提供可靠或高效的数据传输服务,确保应用程序之间的数据正确、有序的交互。

1. 再识的端口号

        端口号(port)标识了一个主机上进行网络通信的不同的应用程序。用于当主机接收到数据时,给数据传输到哪个进程提供指向。

1.1 端口号范围划分

        0-1023:知名端口号,HTTP,FTP,SSH 等这些广为使用的应用层协议,它们的端口号都是固定的。

        1024-65535:操作系统动态分配的端口号。客户端程序的端口号就是由操作系统从这个范围分配的。 

1.2 知名端口号(Well-Know Port Number)

        ssh 服务器:使用 22 端口。

        ftp 服务器:使用 21 端口。

        telnet 服务器:使用 23 端口。

        http 服务器:使用 80 端口。

        https 服务器:使用 443 端口。

2. UDP 协议

2.1 UDP 协议格式

        如上图,一整个数据块称为一个 UDP 报文,也叫做数据报。UDP 协议使用固定 8 个字节表示报头,其中前 4 个字节表示该报文的源端口号和目的端口号。

        16 位 UDP 长度:表示整个数据报(UDP 报头 + 数据)的长度。由于该字段为 16 位无符号整数,理论范围为 0-65535 字节。但受限于底层网络层的最大传输单元(MTU,1500 字节),实际长度一般远小于该上线。一个数据报的最大长度(理论上)为 65535 字节 = 64kb,如果需要传输的数据超过 64kb,就需要在应用层手动的分包多次发送,并在接收端手动拼装。

        16 位 UDP 校验和:用于检测 UDP 数据报再传输过程中是否发生比特错误(如因电磁干扰导致的位翻转)。它是一个可选字段(不使用时需将该字段置为 0),但是实际应用中通常会启用。校验范围包括报头、数据部分,甚至包含一个伪首部,这里对该字段不做详细介绍。

2.2 UDP 的特点

        UDP 传输的过程类似于寄信。是一个一个数据报进行传输的。

        (1)无连接:知道对端的 IP 和端口号就直接进行传输,不需要建立连接。

        (2)不可靠:没有确认机制和重传机制,所以数据是否传输到对端是不确定的,数据丢失后是不会进行重传的。如果因为网络故障数据报无法发到对方,UDP 协议也不会给应用层返回任何错误信息。

        (3)面向数据报:UDP 传输时是以一个一个数据报为单位进行传输的,该传输方式不能够灵活的控制读写数据的次数和数量。换句话说,如果网络没有问题的情况下,发送方向套接字中写入几次,接收方就要从套接字中读取几次。并且应用层交给 UDP 多长的报文,UDP 原样发送,既不会拆分也不会合并。

2.3 UDP 的缓冲区

        UDP 协议没有真正意义上的发送缓冲区。调用 sendto 函数会直接将数据交给内核,由内核将数据传给网络层协议。

        UDP 具有接收缓冲区。但是这个接收缓冲区不能保证收到的 UDP 数据报的顺序和发送时的顺序一致;如果接收缓冲区满了,再到达的数据报就会被丢弃。

        UDP 也是全双工的,可以同一时刻进行读写。

2.4 一些基于 UDP 的应用层协议

        域名系统(DNS):用于将域名转换为 IP 地址,是互联网中非常重要的协议。DNS 通常使用 UDP 协议进行数据传输,因为域名查询的数据包通常较小,且需要快速响应,UDP 协议可以提供更快的传输速度,无需 TCP 协议那样复杂的连接管理机制。DNS 使用 53 号端口。

        网络时间协议(NTP):用于同步网络中各个设备的时间。NTP 要求能够快速地获取和发送时间信息,虽然 UDP 不提供可靠传输,但 NTP 可以通过多次交互来保证时间同步的准确性,所以通常基于 UDP 协议运行,使用 123 号端口。

        动态主机配置协议(DHCP):主要用于动态分配 IP 地址、子网掩码、网关等网络参数。DHCP 数据包一般较小,且希望能快速完成配置,UDP 能满足这些需求,可提供更快的数据传输速度和更少的网络开销。

        简单文件传输协议(TFTP):是一种简单的文件传输协议,用于在本地网络内传输小文件,如固件、配置文件等。它对数据传输的速度要求较高,但对数据可靠性和安全性的要求相对较低,适合使用 UDP 协议。TFTP 使用 69 号端口。

相关文章:

  • 结节性甲状腺肿全流程大模型预测与决策系统总体架构设计方案大纲
  • 基于 qiankun + vite + vue3 构建微前端应用实践
  • Git-git跟踪大文件
  • Modbus转EtherNET IP网关开启节能改造新范式
  • 工业自动化DeviceNET从站转Ethernet/IP主站网关赋能冶金行业工业机器人高效运行
  • AD四层板的层叠设计
  • 可编辑精品PPT | 大型企业数字化转型顶层业务架构模型解决方案数字化架构图合集可编辑架构图系统架构图技术架构图
  • ShardingSphere 如何解决聚合统计、分页查询和join关联问题
  • 【系统架构设计师】绪论-系统架构概述
  • 手写 vue 源码 === runtime-dom 实现
  • 【Java算法】八大排序
  • Python学习(6) ----- Python2和Python3的区别
  • Kafka 消息队列
  • 嵌入式链表操作原理详解
  • 几何绘图与三角函数计算应用
  • 软件安全:漏洞利用与渗透测试剖析、流程、方法、案例
  • 《深度剖析Meta“Habitat 3.0”:AI训练的虚拟环境革新》
  • 蓝桥杯17114 残缺的数字
  • 大数据Spark(六十一):Spark基于Standalone提交任务流程
  • 缓存击穿 缓存穿透 缓存雪崩
  • 做家乡特产的网站/seo的培训网站哪里好
  • 网站运营技巧/河南网站建设报价
  • 如何让网站不被收录/好口碑的关键词优化
  • 做设计找图片的网站/网站新站整站排名
  • 淘宝网站建设弄什么类目/如何推广平台
  • 免费天眼查公司查询/深圳网站优化公司哪家好