UDP协议

UDP协议(用户数据报协议)

UDP是面向数据报的传输层协议,即用户进程将数据包交给传输层 UDP在构建UDP数据报时,不会进行划分,或者进行添加,其会原样发送(在传输层)到对方主机也需要整体接受,而面相字节流(TCP采用这种方式)是如果传输的字节较长,会将数据进行分段,如果数据较短会将多个数据包进行合并然后构成报文段进行发送,这种方式收发比较灵活,对端可以分多次进行读取,也可以一次读取不过这也造成了粘包问题,所以需要对边界进行严格控制。
另外UDP是一种无连接的服务,并且是一种不可靠的数据传输方式, 将数据发送出去后,不保证数据发送到目的地

UDP协议格式

在这里插入图片描述

端口:TCP和UDP均采用端口号来识别应用程序,应用程序可以通过socket绑定端口号,来进行发送和接收数据每个端口号,同一时间只能由一个应用程序绑定,一个应用程序可以绑定多个端口,服务器一般通过知名端口识别,如HTTP采用80端口,客户端一般可以不关心使用的端口可以由内核分配使用完关闭就行,建议客户端由系统分配端口不容易发生冲突而造成绑定失败。
16位UDP长度指的是UDP首部和数据总长单位为字节,
UDP的检验和覆盖UDP首部和UDP数据,采用反码求和的方法。

UDP的长度

UDP的首部中的16位首部长度可以最大表示64K长度的程序,不过因为MTU 的存在,使得UDP如果超过,MTU减去ip的首部长度,UDP数据报就会在网络层进行分片

UDP的缓冲区

UDP严格意义上说没有真正的发送缓冲区,因为UDP面向数据报传输的特性,当调用sendto将数据交给内核,会直接发送,数据并不会进行合并或者进行分段(传输层),
UDP存在接受缓存区,而且其不能保证接收的数据和发送数据报的顺序相同,另外当用户的接受缓存区慢的时候,如果数据继续传送,就会被丢弃

基于UDP的一些应用层协议

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值