TCP/IP协议族的传输层基础(1)——UDP协议

 传输层为两台主机上的应用程序提供端到端(end to end)的通信。与网络层使用的逐跳通信方式不同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。
 传输层的协议主要有三个:
  • TCP协议(Transmission Control Protocol,传输控制协议)
  • UDP协议(User Datagram Protocol,用户数据报协议)
  • SCTP协议(Stream Control Transmission Protocol,流量传输控制协议),这是一种相对较新的协议,暂不讨论。

UDP协议
UDP协议为用户提供 不可靠的 无连接 基于数据报 的服务。
下面是UDP报文的格式


  • 16位UDP长度,表示整个数据包(UDP首部+UDP数据)的最大长度,所以能用UDP传输的数据大小非常有限,最多只有2^16=64K,差不多是65535
  • 16位UDP检验和,计算整个数据包的大小,如果校验和出错,就会直接丢弃

UDP的特点
  • 无连接: 知道对端的IP和端口号就直接进行传输, 不需要建立连接
  • 不可靠: 没有确认机制, 没有重传机制; 如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返回任何错误信息
  • 面向数据报: 不能够灵活的控制读写数据的次数和数量(应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并)

UDP的缓冲区
  • UDP没有真正意义上的发送缓冲区, 调用sendto会直接交给内核,由内核将数据传给网络层进行后续的传输动作
  • UDP具有接收缓冲区,但是这个缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一样;如果缓冲区满了,再到达的UDP数据就会被丢弃。

UDP的使用注意事项
        UDP协议首部的16位UDP长度限制了UDP能够传输的最大长度,能够传输的最大长度是64K,这是一个很小的数字,如果超过,就需要手动分包,多次发送,并在接收端手动接收。


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


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值