TCP的特点
- TCP是面向连接的.
- 仅支持单播传输, 每一条TCP连接只能有两个端点, 点对点的数据传输, 不支持多播和广播传输方式.
- TCP提供可靠交付的服务, 通过TCP连接传输的数据, 无差错, 不丢失, 不重复, 并且按序.
- TCP提供拥塞控制, 当网络出现拥塞时, TCP能减小数据发送的速率和数量, 缓解拥塞.
- TCP提供双全工通信, TCP允许通信双方的应用进程在任何时候都能发送数据. TCP连接的两端都设有发送缓存和接收缓存, 用来临时存放双方通信的数据.
- 面向字节流, 虽然应用程序和TCP的交互是一次一个大小不等的数据块, 但是TCP把数据仅仅看成一连串的 无结构的字节流.
UDP的特点
- UDP是面向无连接的.
- UDP使用尽最大努力交付, 即不保证可靠交付, 因此主机不需要维持复杂的连接状态.
- UDP 是面向报文的.
- UDP 没有拥塞控制, 因此网络出现拥塞不会使源主机的发送速率降低, 对实时应用很有用.
- UDP支持一对一, 一对多, 多对一和多对多的交互通信.
- UDP的首部开销小, 只有8个字节, 比TCP的20个字节的首部要短.
TCP和UDP比较
TCP | UDP | |
---|---|---|
是否连接 | 面向连接 | 面向无连接 |
是否可靠 | 传输可靠 | 传输不可靠 |
连接对象个数 | 点对点, 一对一 | 一对一, 一对多, 多对一, 多对多 |
传输方式 | 面向字节流 | 面向报文 |
首部开销 | 20-60 | 8 |
所需资源 | 多 | 少 |
传输效率 | 低 | 高 |
使用场景 | 要求通信数据可靠, 如文件传输 | 要求通信速度高的实时应用, 如域名转换 |