概述一、UDP
UDP英文拼写UserDatagramProtocol,简称用户数据报协议。它是一个传输层协议,其功能是在IP的数据报服务中增加最基本的服务:复用和解复用、错误检测。
二、UDP的工作原理
使用UDP传输数据时,应用程序根据需要提供消息到达确认、排序、流量控制等功能。
一般来说,UDP使用实时传输机制和时间戳来传输语音和文章数据。
特征三、UDP
1、无连接:UDP是一种无连接协议。它不需要在数据传输前建立连接,也没有各种重传机制、拥塞控制和流量控制。因此传输速度快,消耗低,延迟小,数据传输效率高。适用于对可靠性要求不高的应用,或者能保证可靠性的应用,如DNS、TFTP、SNMP等。
2、不可靠:只负责发送数据,不管数据是否送达。如果没有确认机制,主机在接收数据时将不会做出响应。
3、包头开销小:TCP的包头是20字节,UDP的包头是8字节。
4、面向消息:TCP(面向连接的传输控制协议)面向字节传输,UDP面向消息传输。应用层移交的报文段不进行拆分合并,直接保留原报文段的边界,然后添加UDP头,交付给网络层。不管消息有多长,UDP都不会处理它。因此,为了避免网络层由于短消息段和长消息段而造成的IP数据碎片,应用层应该选择适当长度的消息交付给传输层中的UDP。
四、 UDP UDP的缺点
1、传输数据不可控,容易丢失数据包。
2、没有流量控制。当对方未能及时接收数据时,发送方继续发送数据,会造成缓冲区数据满,电脑卡顿。所有接收器都需要及时接收数据。
五、为什么需要UDP?
1、一个重要原因是IP协议中没有端口的概念。IP协议是IP地址到IP地址的传输,意味着两台计算机之间的对话。但是,每台计算机都需要有多个通信通道,并将多个通信通道分配给不同的进程。端口代表这样的通信信道。UDP协议实现端口,使得数据包可以根据IP地址发送到某个端口。
2、对于一些简单的通信,不需要建立TCP连接这种复杂的方式,尤其是在早期的网络环境下,如果建立过多的TCP连接,会造成很大的网络负担,而UDP协议可以相对快速的处理这些简单的通信。
3、使用TCP协议传输数据时,如果数据段丢失或接收方不确认数据段,发送方将重新发送数据段。TCP重发数据会带来传输延迟和数据重复,降低用户体验。对于延迟敏感的应用,少量的数据丢失通常可以忽略。这时候使用UDP传输会提高用户体验。
六、UDP使用场景
当应用程序对传输可靠性要求不高,但对传输速度和延迟要求较高时,可以用UDP协议代替TCP协议在传输层控制数据转发。UDP适用于实时数据传输,例如语音和文章通信,因为即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。例如:
1、访问网页或应用程序。Google - QUIC提出的基于UDP的改进通信协议(Fast UDP Internet Connections)可以降低网络通信的延迟,提供更好的用户交互体验。
2、流媒体协议。现在文章已经相当普及,很多文章应用都实现了自己的基于UDP的文章传输协议。
3、实时游戏。当游戏的实时性要求严格时,采用自定义的可靠UDP协议和自定义的重传策略,可以最大限度地减少丢包带来的延迟,最大限度地减少网络问题对游戏性的影响。
4、IoT物联网。一方面,物联网领域的终端资源很少,很可能只是一个内存非常小的嵌入式系统,维护TCP协议的成本太高;另一方面,物联网对实时性的要求也很高,TCP还是因为以上原因有较大的延迟。谷歌的子公司Nest成立了ThreadGroup,推出了基于UDP协议的物联网通信协议Thread。
5、移动通信领域。在4G网络中,面向数据的移动流量协议GTP-U基于UDP。因为移动网络协议复杂,GTP协议本身就包含了复杂的手机在线和离线的通信协议。如果是基于TCP的话,TCP的机制是非常冗余的。
UDP作为最简单的传输协议,自1980年UDP协议规范发布以来,一直在主流应用中发挥作用。在未来,它将继续与TCP协议一起在未来的网络世界中扮演更重要的角色。责任编辑:抄送
标签:UDP协议数据