TCP(传输控制协议):
1)提供IP环境下的数据可靠传输,有效流控,全双工操作(数据在两个方向上能同时传递),多路复用服务,是面向连接,端到端的传输;
2)面向连接:正式通信前必须要与对方建立连接。
3)TCP支持的应用协议:Telnet(远程登录)、FTP(文件传输协议)、SMTP(简单邮件传输协议)。TCP用于传输数据量大,可靠性要求高的应用。
UDP(用户数据报协议,User Data Protocol)
1)面向非连接的,不能提供可靠性、流控、差错恢复功能。UDP用于一次只传送少量数据,可靠性要求低、传输经济等应用。
2) UDP支持的应用协议:NFS(网络文件系统)、SNMP(简单网络管理系统)、DNS(主域名称系统)、TFTP(通用文件传输协议)等。
相似之处:
都是传输层协议,都使用端口号来区别不同的应用程序,都在报子头自段添加源端口和目的端口。
区别:
1.TCP是面向连接的;UDP是无连接的。
2.TCP要求系统资源较多,UDP较少;
3.UDP程序结构较简单;
4.流模式(TCP)与数据报模式(UDP);
5.TCP保证数据正确性,UDP可能丢包 ;
6.TCP的逻辑通信信道是全双工的可靠信道。UDP是不可靠信道,整体看来UDP开销比较小的
7.TCP保证数据顺序,UDP不保证 ;
8.TCP是面向字节流,实际上是TCP把数据看成一连串的无结构的字符流:UDP是面向报文的,UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低;
9.每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多不多交互通信。
总结:
TCP:面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。
UDP:面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。