UDP协议

传输层协议——UDP

UDP协议端的格式

在这里插入图片描述

16位UDP长度,表示整个数据报(UDP首部+UDP数据)的最大长度
如果校验和出错的话,就会直接丢弃

UDP的特点
  1. 无连接:知道目地IP和端口号就直接传输,不需要建立连接
  2. 不可靠:没有确认机制,没有重传机制,如果发生网络故障该段无法发送到对方,UDP协议层也不会给应用层返回任何的错误信息
  3. 面向数据报:不够灵活的控制数据读写的次数和数量
关于面向数据报

应用层交给UDP不管多长的报文,UDP只会原样发送,不会拆分,也不会合并

举个例子:
如果用UDP传输300字节的数据,发送端调用一次sendto,发送300字节,接收端也对应调用一次recvfrom,接收300字节,而不能将数据分成10字节,循环调用30次recvfrom,每次接受10字节。

注意
UDP首部中的16位最大长度,即UDP一次最大能传输的数据长度为64K(包含UDP首部),当传输的数据量超过64K时,需要在应用层手动的分包,分多次发送,并在接收端手动拼装。

UDP的缓冲区

UDP没有发送缓冲区,调用sendto会直接交给内核,由内核将数据传给网络层协议进行后续的传输。
UDP有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报顺序和发送的UDP报头顺序一致,如果接收缓冲区满了的话,UDP数据就会被丢弃,并且UDP并不知道,也不关心。

UDP的socket是全双工的,既能读也能写

基于UDP的应用层协议
  • NFS:网络文件系统
  • DHCP:动态主机配置协议
  • TFTP:简单文件传输协议
  • BOOTP:启动协议(用于无盘设备启动)
    -DNS:域名解析协议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值