| TCP | UDP |
|---|---|
| TCP是面向连接的协议,也即是说在传输数据之前需要先建立连接,把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块 | UDP是面向数据报的协议(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),不需要建立和维护连接 |
| 可靠传输 | 尽最大努力交付 |
| 有完善的错误检测机制(ACK以及流量控制等) | 基于checksum的基本错误检测能力 |
| 保证报文顺序 | 不保证顺序,如果需要维持顺序需要应用层实现 |
| 相对UDP来说较慢 | 快速、简单有效 |
| 丢包可以重传 | 无法重传 |
| 报文首部20-60字节 | 固定为8位首部 |
| 不支持广播,只能一对一传输 | 支持广播 |
| 应用于HTTP, HTTPs, FTP, SMTP and Telnet等 | DNS, DHCP, TFTP, SNMP, RIP, and VoIP |