- 华为HCIA-Datacom网络技术学习指南
- 韩立刚 张怀亮等
- 972字
- 2023-06-29 16:20:35
1.2.2 UDP的应用场景
有些应用程序通信使用TCP效率就会变低。比如在有些应用程序中,客户端只需向服务端发送一个请求报文,服务端返回一个响应报文就完成了相应功能。这类应用程序如果使用TCP,需要发送3个数据包建立连接,再发送4个数据包释放连接,传输效率不高。这类应用程序在传输层中通常使用用户数据报协议(User Datagram Protocol,UDP)。以下是UDP的应用场景。
● 客户端和服务端通信时,应用程序发送的数据包不需要分段。比如域名解析时,DNS服务器在传输层使用UDP。客户端向DNS服务器发送一个解析某个网站的域名的报文请求,DNS服务器将解析的结果用一个报文返回给客户端。
● 实时通信。比如使用QQ、微信等实时通信工具进行语音聊天、视频聊天等。这类应用程序的发送端和接收端需要实时交互,也就是不允许有较长的延迟,即便有几句话因为网络拥塞没听清,也不能使用TCP等待丢失的报文,如果等待的时间太长,就无法实现实时通信。
● 组播或广播通信。比如在学校的多媒体机房中,教师使用的计算机需要向学生使用的计算机分享屏幕,此时可以在教师使用的计算机上安装多媒体教室服务端软件,在学生使用的计算机上安装多媒体教室客户端软件,教师使用的计算机通过组播地址或广播地址发送报文,而学生使用的计算机都能收到报文。
知道了传输层中TCP、UDP两种协议的特点和应用场景,就很容易判断某个应用程序在传输层使用什么协议。接下来分析使用QQ传输文件以及使用QQ聊天在传输层使用什么协议。
使用QQ传输文件的过程通常会持续几分钟或几十分钟,由于无法使用一个数据包完整传输文件,因此需要分段传输文件。由于在传输过程中需要实现可靠传输、流量控制、拥塞避免等功能,因此可以在传输层使用TCP来实现。
在使用QQ聊天的过程中,由于通常一次输入的聊天内容不会有太多文字,因此使用一个数据包就能发送聊天内容。另外说完第一句后,无法确定什么时候会说第二句,即发送数据不是持续的,没必要让通信的两台计算机一直保持连接,因此可以在传输层使用UDP发送QQ聊天内容。
综上可知,应用程序在传输层可以根据通信的特点选择不同的协议。
传输层的UDP是一个无连接的传输协议。UDP为应用程序提供了一种无须建立连接就可以发送IP数据包的方法。
UDP没有对发送的数据包进行排序、丢包重传、流量控制等功能。也就是说,当报文发送之后,无法得知其是否已安全、完整到达。UDP存在的意义更多的是利用UDP加端口号的方式来标识一个应用层协议。