【Linux】UDP 协议

打印 上一主题 下一主题

主题 874|帖子 874|积分 2622

1. UDP 协议

UDP (User Datagram Protocol) 是一种面向数据报的传输层协议, 是传输层的重要协议之一;
UDP协议提供了一种无连接, 不可靠的数据传输服务;
实用于要求源主机以恒定速率发送数据, 允许网络拥塞时丢失数据, 却不允许数据有太大时延的实时应用;
2. UDP 协议的特点:



  • 无连接:
    UDP 协议只需要对应的 IP地址 和 端标语就可以直接进行传输, 不需要建立连接, 减少了开销和时延;
  • 不可靠:
    UDP 协议不保证 可靠交付;
  • 面向数据报:
    UDP 协议对于从 IP 层 或 应用层获取的报文, 无论大小, 既不合并 也不拆分, 将其添加(去除)报头后原样交付;
3. UDP 协议的格式


UDP 报头的结构体体现
  1. struct udp_header {  
  2.     uint16_t src_port;  
  3.     uint16_t des_port;  
  4.     uint16_t udp_len;  
  5.     uint16_t udp_check;  
  6. };
复制代码


  • 16位 目的端标语: UDP 协议通过 目的端标语 将有用载荷 上交至应用层;
  • 16位 UDP 长度: 体现整个数据报(UDP 报头 + UDP 报文) 的长度; 最大为 216 = 64KB, 此中报头固定大小 8 字节, 其余为有用载荷大小;
  • 16位 UDP 校验和: 验证报文数据是否精确, 若查验和出错, 会直接丢弃报文;
4. UDP 的缓冲区



  • UDP 没有真正意义上的发送缓冲区; 发送时会直接将数据交付给内核, 由内核将数据传输至网络层, 进行后续的传输动作;
  • UDP 具有吸收缓冲区;
    但 UDP 吸收缓冲区不能保证吸收数据的顺序与发送一致, 先到达的数据报先读取;
    并且当 UDP 吸收缓冲区已满, 新到达的数据报可能会被丢弃;
基于UDP的应用层协议

NFS: 网络文件体系。
TFTP: 简单文件传输协议。
DHCP: 动态主机配置协议。
BOOTP: 启动协议(用于无盘设备启动)。
DNS: 域名剖析协议。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表