UDP协议

一、UDP协议格式

  • 16位源端口号
  • 16位目的端口号
  • 16位UDP长度(2^16=64KB,说明UDP发送的数据最大是64KB。如果传输的数据大于64KB,需要在应用层手动分包,多次发送,并在接收端手动拼接接收到的数据)
  • 16位UDP校验和
  • 数据

UDP报头结构体:

struct udp_header {
    uint16_t src_port;    // 源端口,网络字节序(大端)
    uint16_t dest_port;   // 目的端口,网络字节序
    uint16_t len;         // 总长度(包括头部),网络字节序
    uint16_t checksum;    // 校验和,网络字节序
};

二、UDP协议特点

  • 无连接:拿到通信方的IP地址和端口号即可,无需建立连接
  • 不可靠:没有确认机制,没有重传机制。如果因为网络故障使得某个数据无法发送给对方,UDP所在的传输层不会给应用层返回任何错误消息
  • 面向数据报:应用层交给UDP多大的报文,UDP就发送多大的报文,不会将报文拆分与合并

三、UDP的缓冲区

  • UDP协议没有发送缓冲区,应用层交给UDP数据,UDP就会立即将数据交给网路层
  • UDP协议有接收缓冲区,但是该接收缓冲区不能保证接收到的UDP数据报顺序和发送UDP数据报的顺序一致。并且如果缓冲区满了,再到达缓冲区的UDP数据报将被丢弃

四、基于UDP的应用层协议

  • NFS: 网络文件系统
  • TFTP: 简单文件传输协议
  • DHCP: 动态主机配置协议
  • BOOTP: 启动协议(用于无盘设备启动)
  • DNS: 域名解析协议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

周丕才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值