TCP和UDP协议是传输层非常重要的两个协议,这两个协议在数据传输中起着非常重要的作用,前面两篇文章讲解了这两个协议各自的特点,本文来讲解一下这两个协议有什么区别。
1 TCP和UDP对比
1.1 从各自的特点来看
(1)TCP是面向连接的,而UDP是无连接的;
TCP发送数据前先要建立连接,而UDP发送数据前不需要建立连接。
(2)TCP保证可靠性,UDP不保证可靠性;
TCP具有很多的可靠性保证机制(TCP的连接管理、超时重传、序号和确认序号、流量控制和拥塞控制都能保证TCP数据包能够无差错、不丢失、按序到达),但是UDP没有这些可靠性保证机制,因此UDP就无法保证可靠性。
(3)TCP面向字节流,UDP面向数据报;
TCP接收和发送数据就像流水一样,可以一次接收多个,或者一次接收少半部分但是可以接收多次;但是UDP发送多少就要接收多少,如果接收的数据少于发送的数据,那么少的那部分数据永远也接收不到了。
(4)每一条TCP连接只能用于点点之间一对一进行,而UDP支持一对一、一对多、多对多的交互通信;
(5)TCP不仅有接收缓冲区还有发送缓冲区,而UDP只有接收缓冲区。
因为TCP为了能够超时重传时需要重传的数据还在,那么TCP就需要把以前发送的数据进行缓存起来,方便以后重发,因此就需要发送缓冲区;但是UDP不保证可靠性,没有超时重传,那么UDP就不用保存他以前发送的数据,因此UDP就没有发送缓冲区。
1.2 从各自报头来看
(1)TCP的报头默认占20字节,