扫码关注公众号

前端计算机网络之UDP相关
09-12
286观看
01

我们为什么不直接使用IP协议而要额外增加一个UDP协议呢?

一个重要的原因是IP协议中并没有端口(port)的概念。IP协议进行的是IP地址到IP地址的传输,这意味者两台计算机之间的对话。但每台计算机中需要有多个通信通道,并将多个通信通道分配给不同的进程使用(关于进程,可以参考Linux进程基础)一个端口就代表了这样的一个通信通道。正如我们在邮局和邮差中提到的收信人的概念一样。UDP协议实现了端口,从而让数据包可以在送到IP地址的基础上,进一步可以送到某个端口。

来自:网络-TCP/IP模型-UDP相关
02

UDP的应用场景

1、网页浏览使用UDP协议有三个优点:(1)能够对握手过程进行精简,减少网络通信往返次数;(2)能够对TLS加解密过程进行优化;(3)收发快速,无阻塞。2、流媒体采用TCP,一旦发生丢包,TCP会将后续包缓存起来,等前面的包重传并接收到后再继续发送,延迟会越来越大。基于UDP的协议如WebRTC是极佳的选择。3、实时游戏对实时要求较为严格的情况下,采用自定义的可靠UDP协议,比如Enet、RakNet(用户有sonyonlinegame、minecraft)等,自定义重传策略,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成的影响。4、物联网采用UDP有3个关键点:(1)网络带宽需求较小,而实时性要求高;(2)大部分应用无需维持连接;(3)需要低功耗。

来自:网络-TCP/IP模型-UDP相关
03

为什么有时候UDP比TCP更有优势

随着网络技术飞速发展,网速已不再是传输的瓶颈,UDP协议以其简单、传输快的优势,在越来越多场景下取代了TCP,如网页浏览、流媒体、实时游戏、物联网。网速的提升给UDP稳定性提供可靠网络保障网络环境变好,网络传输的延迟、稳定性也随之改善,UDP的丢包率低于5%,如果再使用应用层重传,能够完全确保传输的可靠性。TCP设计过于冗余,速度难以进一步提升TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程以及重传策略。由于TCP内置在系统协议栈中,极难对其进行改进。

来自:网络-TCP/IP模型-UDP相关
04

为什么TCP比UDP更稳定

TCP协议在确认客户端接收到完整的信息之后才会删除服务端操作系统中的缓存,否则就会继续发,这才是TCP协议的可靠性根本原因,而UDP只管发送数据而不管客户端有没有收到,所以就会造成丢包现象

来自:网络-TCP/IP模型-UDP相关
课程
专栏
专业课-网络-TCP/IP模型-UDP相关
3专栏
1课程
4 试题