TCP和UDP的相同点是他们都是传输层的协议
区别:
1.tcp是面向连接的:主要表现在三次握手和四次挥手,端对端的连接,是全双工的。而udp是面向无连接的:不需要三次握手和四次挥手,支持一对一,一对多,多对多,多对一
2.数据的传输方式:tcp是基于字节流传输,由于MSS和MTU的原因,完整的用户消息可能被拆分为多个tcp报文进行传输,由于在发送方有发送缓冲区,所以多个数据包可能会粘包后进行传输,在接收缓冲区就需要处理粘包问题;而udp是基于报文传输的,udp每次发都是完整的报文
3.可靠性:tcp是可靠传输:有以下几个方面来保证数据的可靠传输:a.序列号:tcp报文包含序列号,确保完整接收,丢失重复数据,排序;b.确认应答机制,确认数据包收到;c.校验和:可以确保报文在传输过程中的数据没有变化;d.滑动窗口:流量控制,防止丢包;e.拥塞控制;f.重传机制;而udp是不可靠传输:不保证消息交付,不保证交付顺序,不进行拥塞控制,不进行流量控制。
4.效率:tcp效率低;因为tcp实现可靠传输的同时会造成性能损失,tcp头20个字节;而udp不可靠传输,udp头8个字节