UDP协议详解

UDP协议

UDP即用户数据报协议,是一种无连接的传输层协议,提供面向消息的简单不可靠信息传送服务。

报头

UDP报头占用8个字节,分别是2个字节长的源和目的端口号,以及2个字节长的数据报长度和2个字节长的校验和

UDP和TCP的校验和都是基于包头和数据本身,UDP在计算校验和时会加上12字节的伪头部(包含IP的数据包的信息)

TCP和UDP的区别
  1. TCP面向连接,UDP无连接,即发送数据之前不需要建立连接
  2. TCP提供可靠的传输服务,即通过TCP传输的数据是无差错,不丢失,不重复,且按序到达,UDP尽最大努力交付数据,不保证一定可靠
  3. TCP通过校验和,重传,序号,滑动窗口,确认应答等实现可靠传输,而UDP没有这些机制
  4. UDP实时性好,工作效率高,适用于对高速传输和实时性有较高的通信或广播通信(UDP有数据就发送,没有nagle等优化算法),UDP没有拥塞控制,即便网络拥塞也不会降低源主机的发送速率
  5. TCP只能是一对一,端到端的通信,而UDP支持多播和广播
  6. TCP是基于字节流的协议,UDP是基于数据包的协议(发一个收一个)
TCP和UDP的应用场景

TCP注重的是可靠性,而UDP则注重的是实时性,如果对于发送的数据要求保证可靠性,不能出错或者丢失,则用TCP,而如果要求数据有实时性,则用UDP

  1. UDP一般用于实时性高的场景,比如视频通话,语音通话,视频直播等(视频聊天等一般而言一点卡顿是可以接受的,如果用TCP那么TCP有超时重传,等重传了,你现在可能看到一起的画面和声音,则会很怪异,所以用UDP更好,如果用TCP那么需要关闭nagle和延迟确认)
  2. TCP一般用于可靠性要求高的应用,比如http,FTP文件传输等

https://blog.csdn.net/lotluck/article/details/52688851

UDP广播和组播(多播)
  1. 广播,即一个主机将数据发送给整个广播网络中的所有主机,当主机收到消息后根据端口号来决定是否使用此广播信息(即广播中还是包含接收者的端口号,如果主机某些端口号不可用,则会丢弃此广播),广播会带来广播网络中某些主机不必要的负载,因为广播会发送给所有主机(虽然主机可以通过端口号来过滤掉)
  2. 组播,虽然有广播,可以将数据发送给广播域内的所有主机,但是这样无疑会增加不需要广播的主机的负担,所以考虑使用组播,需要接收数据的各个主机都加入一个多播组,一个主机可以随时加入或者离开多播组,一个主机也可以属于一个或者多个多播组。源主机将单个分组发送一个组播地址(就是个路由器,多播组维护在路由器中),该组播地址标识一组主机,然后网络(路由器)把该数据报给分组中的每个主机都拷贝一份
  3. 组播的好处在于,减轻了网络的负载,提高了网络利用率,减轻了发送者的负担,但是组播不提供可靠的服务
  4. 组播的应用一般在视频点播或者视频会议,或者直播平台中
UDP如何实现其可靠性

UDP本身不实现可靠性,但是可以在应用层为其实现可靠性,即还是用确认机制,超时重传等机制

几种常见的基于UDP且实现了可靠性机制的应用层协议

RUDP /RTP/UDT等

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值