网络通信UDP协议与TCP协议有哪些区别呢?
奈图尔科技(www.ntooler.com)整理消息:本文主要与各位伙伴简单探讨一下常用的两种网络通信协议的区别,即TCP协议与UDP协议。TCP协议是面向连接的通信协议,即传输数据之前,在发送和接收端建立逻辑连接,然后在传输数据,它提供了两台计算机之间可靠无差错的数据传输。UDP是无线连接通信协议,在数据传输的时候,数据的发送端和接收端不建立逻辑连接。
首先,我们简单描述一下TCP协议:
TCP:传输协议(Transmission Control Protocol),TCP协议是面向连接的通信协议,即传输数据之前,在发送和接收端建立逻辑连接,然后在传输数据,它提供了两台计算机之间可靠无差错的数据传输。
在TCP连接中必须明确客户端与服务器端。由客户端向服务器端发送请求,每次连接的创建都需要经过“3次握手”,即:TCP协议中,在发送数据的准备阶段,客户端与服务器之间三次交互,以保证连接的可靠。
“第1次握手”:客户机向服务器发送连接请求,等待服务器确认。
“第2次握手”:服务器向客户端会送一个响应,通知客服端收到的连接请求。
“第3层握手”:客户端再次向服务器发送确认信息,确认连接。
关于TCP协议的“3次握手”,如下如图所示:
完成三次握手,连接建立以后,客户端和服务器就可以开始进行数据传输了。
由于这种面向连接的性质,TCP协议可以保证传输数据的安全,所以应用十分广泛,例如下载文件、浏览网页等。
作为对比,我们在简单描述一下UDP协议:
UDP:用户数据报协议(User Datagram Protocol),UDP是无线连接通信协议,在数据传输的时候,数据的发送端和接收端不建立逻辑连接。即,当一台计算机向另一台计算机发送数据时,发送端不会确认接收端是否存在,就会发送数据,同样的接收端在接收到数据时,也不会向发送端反馈是否接收数据。
就像给QQ好友发送消息,无论对法是否在线,是否回复,双方都可以发送消息。
优点:UDP消耗资源小,通信效率高
用途:通常用于音频、视频和普通数据的传输,比如,视频会议,这种情况偶然丢失一两个包,也不会对接收结果产生太大影响。
局限性:数据被限制在64kb以内,超过这个范围就不能发送
数据包(Datagram):网络传输的基本单位
由于在使用UDP协议传输数据时,UDP面向无连接线,不能保证数据的完整性,因此在传输数据时不建议使用UDP协议。UDP的交换过程如下图: