计算机网络学习随笔记(UDP协议)
2020-07-01 10:02
55 查看
UDP协议
UDP是面向无连接的,继承了IP包的特性,不保证丢失,不保证顺序到达。继承了IP的特性,基于数据包,一个一个的发一个一个的收。UDP没有拥塞控制,不会根据情况调整自己的行为(不会调整发送的速度)
UDP包头
在UDP包到达目标机器后,发现MAC地址匹配就取下来,然后去处理IP层,IP头内存放了一个8位的协议,在这个协议里面标识了这个包是TCP的还是UDP的。然后根据具体的类型去给对应的端口去处理数据包。UDP包头里面只存放了源端口号跟目标端口号。
UDP的使用场景
- 需要资源少,网络状况比较好的内网,或者对于丢包不敏感的应用
- 不需要一对一沟通、建立连接,而是可以广播的应用(DHCP就是一种UDP协议)
- 需要处理速度快,延时低,可以容忍少数丢包,但是要求即便网络堵塞也不会控制发送速度的
基于UDP的例子
- 网页或者APP的访问;原来访问网页或者APP都是走的HTTP协议,HTTP协议都是基于TCP协议的,耗时会比较长。进而Google提出了一种基于UDP改进的通信协议称作QUIC(全称Quick UDP Internet Connections,快速 UDP 互联网连接)目的是降低网络通信的延迟,提供更好的用户交互体验。
- 流媒体的协议;现在很火的直播大部分使用的是协议是RTMP,RTMP协议是基于TCP的,TCP的严格顺序传输要保证上一个包接受到了才能确认接受下一个包,对于直播来说是不合适的。对于直播来说用户需要看到最新的画面,对于丢失卡顿的不会太在意。所以UDP协议是很适合运用在直播上了,很多直播应用都是基于UDP实现自己的视频传输协议。
- 实时游戏;游戏的特点就是实时性比较高,谁的网速快就能先一步进行操作。实时游戏的客户端和服务器端需要建立长连接,来保证实时传输。但是游戏玩家很多,服务器的数量却是有限的,TCP的连接数目也是有限的。UDP就没有这些局限性,所以是很好的应用场景。对于一些实时要求比较高的情况下,可以采用自定义的可靠UDP协议,自定义重传策略,把丢包产生的延迟降低到最低,尽量减少网络延迟对游戏的影响。
- 物联网;物联网终端资源少,很可能只是个内存非常小的嵌入式系统,而维护TCP协议的代价太大,物联网对于实时要求也是比较高的,TCP因为自己的特性也会造成延时比较高的场景。Google就推出了基于UDP协议的物联网通信协议Thread(Nest)。
- 移动通信领域;移动流量上网的数据面对的协议GTP-U是基于UDP的。因为移动网络协议比较复杂,GTP协议包含复杂的手机上线下线的通信协议,所以使用UDP协议是方便很多的,如果使用TCP协议的话就会显得很多余且复杂。
相关文章推荐
- 计算机网络学习随笔记(Socket协议)
- [计算机网络]udp协议学习
- 计算机网络学习1:HTTP协议中URL和URI的区别
- HTTP和tcp,udp,ip等网络协议学习
- 计算机网络:这是一份全面 & 详细 的TCP协议学习指南
- java网络编程学习笔记之一(TCP/IP协议与UDP协议的区别和认识)
- 计算机网络之TCP协议与UDP协议
- 计算机网络(自顶向下方法)学习笔记 1.5 协议层次和它们的服务模型
- 新手计算机网络基础协议学习小结
- 计算机网络学习--udp学习
- T626code学习笔记之计算机网络协议
- 基于UDP协议的网络程序 (学习)
- 计算机网络学习随笔记(文件传输协议)
- 计算机网络原理学习笔记——TCP/IP体系中网际层的协议
- 黑马程序员_网络编程学习笔记-->代码主要是对UDP协议的讲解
- 计算机网络TCP和UDP协议详解
- 中继器、集线器、网桥、交换机、路由器和网关在网络协议中工作的层次(计算机网络学习笔记)
- [计算机网络] TCP协议与UDP协议的区别
- 计算机网络之TCP与UDP协议
- 计算机网络学习随笔记(TCP协议)