TCP和UDP都是传输层协议,以IP:port来区分,不同协议的port可以相同。
TCP头部占20字节,源端口和目的端口各占2个字节,端口范围是0~65535。
UDP头部占8个字节,其中端口和长度字段各2个字节,所以UDP的最大包长是64k。
主要是四点区别:是否连接,传输可靠性,应用场合,传输速度。
TCP是面向连接的,提供可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个
TCP连接,之后才能传输数据。
UDP是一个简单的面向数据报的传输层协议,它是面向无连接的,不提供可靠性。
TCP一般用在传输数据量大的场合,UDP一般用在传输数据量小,对可靠性要求不高的场合。
TCP由于在传输数据前要建立连接,提供超时重传等功能,而UDP不提供这些功能,故而传输速度快。
另外,TCP是基于字节流的服务,包与包之间没有界限,所以会产生粘包现象,需要我们另外处理。
而UDP是基于数据包的服务,包与包之间是有界限的,每个包都有长度。
使用TCP的应用层协议:HTTP,FTP,Telnet
使用UDP的应用层协议:DNS,SNMP(简单网络管理系统)
使用UDP的应用层协议:DNS,SNMP(简单网络管理系统)