TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据包协议)都是传输层的协议,都是用于数据的传输。
但两者扔有很大的区别:TCP相当于生活中打电话,而UDP相当于写信。
连接方式和可靠程度:
- TCP协议是面向连接的,可靠性协议。在每次收发数据是必须先建立连接。(三次握手、四次挥手、确认应答等);
- UDP协议是无连接的,不可靠协议。(只需知道对方ip就可以传输数据);
连接对象个数:
- 每一次TCP连接只能是一对一,一个发一个收;
- UDP可以一对一,一对多、多对多的交互通信;
传输形式:
- TCP 是面向字节流,使用滑动窗口流式传输,保证了数据的可靠性;
- UDP是面向报文传输,一个包一个包发,可能存在乱序和丢包的可能;
传输效率:
- TCP有“拥塞控制”、“流量控制”等机制,所以传输效率相对较慢;
- UDP则没有,即使网络不好也不会传输效率有影响;
首部格式:
- TCP首部格式是20个字节的固定首部+长度可变的可选性。(20~60字节);
- UDP首部格式是固定的8个字节。