您的位置:首页 > 理论基础

计算机网络学习随笔记(UDP协议)

2020-07-01 10:02 55 查看

UDP协议

UDP是面向无连接的,继承了IP包的特性,不保证丢失,不保证顺序到达。继承了IP的特性,基于数据包,一个一个的发一个一个的收。UDP没有拥塞控制,不会根据情况调整自己的行为(不会调整发送的速度)

UDP包头

在UDP包到达目标机器后,发现MAC地址匹配就取下来,然后去处理IP层,IP头内存放了一个8位的协议,在这个协议里面标识了这个包是TCP的还是UDP的。然后根据具体的类型去给对应的端口去处理数据包。UDP包头里面只存放了源端口号跟目标端口号。

UDP的使用场景

  1. 需要资源少,网络状况比较好的内网,或者对于丢包不敏感的应用
  2. 不需要一对一沟通、建立连接,而是可以广播的应用(DHCP就是一种UDP协议)
  3. 需要处理速度快,延时低,可以容忍少数丢包,但是要求即便网络堵塞也不会控制发送速度的

基于UDP的例子

  1. 网页或者APP的访问;原来访问网页或者APP都是走的HTTP协议,HTTP协议都是基于TCP协议的,耗时会比较长。进而Google提出了一种基于UDP改进的通信协议称作QUIC(全称Quick UDP Internet Connections,快速 UDP 互联网连接)目的是降低网络通信的延迟,提供更好的用户交互体验。
  2. 流媒体的协议;现在很火的直播大部分使用的是协议是RTMP,RTMP协议是基于TCP的,TCP的严格顺序传输要保证上一个包接受到了才能确认接受下一个包,对于直播来说是不合适的。对于直播来说用户需要看到最新的画面,对于丢失卡顿的不会太在意。所以UDP协议是很适合运用在直播上了,很多直播应用都是基于UDP实现自己的视频传输协议。
  3. 实时游戏;游戏的特点就是实时性比较高,谁的网速快就能先一步进行操作。实时游戏的客户端和服务器端需要建立长连接,来保证实时传输。但是游戏玩家很多,服务器的数量却是有限的,TCP的连接数目也是有限的。UDP就没有这些局限性,所以是很好的应用场景。对于一些实时要求比较高的情况下,可以采用自定义的可靠UDP协议,自定义重传策略,把丢包产生的延迟降低到最低,尽量减少网络延迟对游戏的影响。
  4. 物联网;物联网终端资源少,很可能只是个内存非常小的嵌入式系统,而维护TCP协议的代价太大,物联网对于实时要求也是比较高的,TCP因为自己的特性也会造成延时比较高的场景。Google就推出了基于UDP协议的物联网通信协议Thread(Nest)。
  5. 移动通信领域;移动流量上网的数据面对的协议GTP-U是基于UDP的。因为移动网络协议比较复杂,GTP协议包含复杂的手机上线下线的通信协议,所以使用UDP协议是方便很多的,如果使用TCP协议的话就会显得很多余且复杂。

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: