【Linux】UDP 协议

目录

    • [1. UDP 协议](#1. UDP 协议)
    • [2. UDP 协议的特点:](#2. UDP 协议的特点:)
    • [3. UDP 协议的格式](#3. UDP 协议的格式)
    • [4. UDP 的缓冲区](#4. UDP 的缓冲区)
    • 基于UDP的应用层协议

1. UDP 协议

UDP (User Datagram Protocol) 是一种面向数据报的传输层协议, 是传输层的重要协议之一;

UDP协议提供了一种无连接, 不可靠的数据传输服务;

适用于要求源主机以恒定速率发送数据, 允许网络拥塞时丢失数据, 却不允许数据有太大时延的实时应用;

2. UDP 协议的特点:

  • 无连接:

    UDP 协议只需要对应的 IP地址 和 端口号就可以直接进行传输, 不需要建立连接, 减少了开销和时延;

  • 不可靠:

    UDP 协议不保证 可靠交付;

  • 面向数据报:

    UDP 协议对于从 IP 层 或 应用层获取的报文, 无论大小, 既不合并 也不拆分, 将其添加(去除)报头后原样交付;

3. UDP 协议的格式

UDP 报头的结构体表示

cpp 复制代码
struct udp_header {  
    uint16_t src_port;  
    uint16_t des_port;  
    uint16_t udp_len;  
    uint16_t udp_check;  
};
  • 16位 目的端口号: UDP 协议通过 目的端口号 将有效载荷 上交至应用层;

  • 16位 UDP 长度: 表示整个数据报(UDP 报头 + UDP 报文) 的长度; 最大为 216 = 64KB, 其中报头固定大小 8 字节, 其余为有效载荷大小;

  • 16位 UDP 校验和: 验证报文数据是否正确, 若检验和出错, 会直接丢弃报文;

4. UDP 的缓冲区

  • UDP 没有真正意义上的发送缓冲区; 发送时会直接将数据交付给内核, 由内核将数据传输至网络层, 进行后续的传输动作;

  • UDP 具有接收缓冲区;

    但 UDP 接收缓冲区不能保证接收数据的顺序与发送一致, 先到达的数据报先读取;

    并且当 UDP 接收缓冲区已满, 新到达的数据报可能会被丢弃;

基于UDP的应用层协议

NFS: 网络文件系统。

TFTP: 简单文件传输协议。

DHCP: 动态主机配置协议。

BOOTP: 启动协议(用于无盘设备启动)。

DNS: 域名解析协议。

相关推荐
爱莉希雅&&&1 小时前
GitLab 完整学习笔记
linux·运维·服务器
风笙9781 小时前
[文件系统]文件系统挂载与卸载详解
linux
GeW2 小时前
新质生产力路线图解读:数据库性能优化与Linux调优专场
linux·数据库
陈希1233 小时前
Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位
linux·服务器·网络
测试界的小码农6 小时前
【Linux 命令实战(03):文件创建、复制、移动与删除,掌握 touch、mkdir、cp、mv、rm】
linux·服务器·php
byte轻骑兵7 小时前
实战 1:修改 BlueZ 源码,添加自定义开机日志
linux·aiot·bluez·电脑蓝牙·嵌入式蓝牙
叼烟扛炮7 小时前
Linux 学习笔记(五十):网络层——IP 协议、子网划分与 NAT 魔法
linux·笔记·学习
叼烟扛炮7 小时前
Linux 学习笔记(六十):单线程的逆袭——epoll 高并发服务器实战
linux·服务器·网络·笔记·学习·算法
AR-26710-7 小时前
Linux Day32——实操五类资源告急排查
linux·运维
StarsGreen8 小时前
libva中的图像格式说明
linux