TCP与UDP的区别
-
TCP面向连接;UDP是无连接,即发送数据之前不需要建立连接
-
TCP提供可靠的服务,TCP连接传送的数据,无差错、不丢失、不重复,且按顺序到达;UDP尽最大努力交付,即不保证可靠交付
-
TCP是面向字节流的,实际上TCP数据看成一连串无结构的字节流;UDP是面向报文的,没有拥塞控制,因此,网络中出现拥塞,不会使发送主机的速率降低(对实时很有用,如IP电话和实时视频会议等)
-
每一条TCP的连接都是点到点的,UDP支持一对一、一对多、多对一、多对多的交互通信
-
TCP首部开销20个字节;UDP首部开销小,只有8字节
-
TCP的通信通道是全双工的可靠信道;UDP则是不可靠信道
-
TCP对系统资源要求的多,UDP较少
-
使用场景不同
TCP适用场景:效率要求相对低,准确性要求相对高,比如,TFP、SNMP、TELNET等
UDP适用场景:在乎延迟、不能忍受重传,不在乎可靠,比如,NTP,实时音视频聊天
TCP的特点
-
面向连接:两个进程在通信之前必须由一个先请求到另一个应用进程的连接
-
可靠性:字节编号,应答ACK,分段传输、重传
-
数据流传输:自行划分数据块,应用进程不关心
-
流量控制:滑动窗口机制
-
全双工:两个进程建立一个连接,并在任何一个方向上发送数据