TCP
传输控制协议(Transmission Control Protocol),这是一种提供给用户进程的可
靠的全双工字节流面向连接的协议。TCP 提供两台计算机之间的可靠无错的数据传输。
应用程序利用TCP 进行通信时,源主机和目的主机之间会建立一个虚拟连接,这
个连接一旦建立,两台计算机之间就可以把数据当作一个双向字节流进行交换;如果连
接建立不成功,则不会发送数据。另外,面向连接传输的每一个报文都需要接收端确认,
未确认报文被认为是出错的报文。
所谓流,就是一个无报文丢失、重复和失序的正确的数据序列。流相当于一个管道,
从一端放入什么,从另一端可以照样取出什么。传输层协议为实现流传输,付出了大量
开销。
UDP
用户数据报协议(User Datagram Protocol),这是提供给用户进程的无连接协议,
用于传送数据而不执行正确性检查。
在通信过程中,UDP不保障可靠数据的传输,但能够向若干个目标发送数据,接收
发自若干个源的数据。简单地说,如果一个客户机向服务器发送数据,这一数据会立即
发出,不管服务器是否已准备接收数据。如果服务器收到了客户机的数据,它不会确认
收到与否。数据传输方法采用的是数据报。
一般情况下,TCP 和UDP 协议共存于一个Internet 中,二者是同等地位,前者提供可
靠服务,后者提供高效率服务。如果传输文件小,并且要求很高的速度,可以考虑使用UDP
协议;如果对传输质量要很高,并物理网络的可靠性很差,那最好使用TCP 协议;而根据用
户需要,也可以在同一个应用程序中一起用到这两个协议。