TCP和UDP的区别详解

一、连接性
TCP是面向连接(例如我们打电话之前需要通过拨号建立连接)的,UDP是不需要建立连接的

TCP是通过三次握手建立连接
UDP发送数据前是不需要建立连接的

二、可靠性
TCP可靠,UDP不可靠

TCP丢包会自动重传,UDP不会
TCP提供可靠的服务,也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,而且是按序到达,UDP尽最大努力交付,即不保证可靠交付

三、有序性
TCO有序,UDP无序

消息在传输过程中可能会乱序,后发送的消息可能会先到达,TCP会对其进行排序,而UDP不会

四、有界性
TCP无界,UDP有界(换句话说就是TCP是面向字节流的,UDP是面向数据报的)

TCP通过字节流传输,UDP中每一个包都是独立的,所以UDP不能够灵活的控制读写数据的次数和数量

字节流和数据报的区别:

例如现在要发送100k的数据,字节流就是可以分10次发送,每次发送10k,接收时也可以分为10次接收,每次接收10k,而数据报则是必须一次性发送100k,接收时也必须一次就接收完,数据在传输的时候,是不能拆分的

五、拥塞控制
TCP有拥塞控制,UDP没有

UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如ID电话,实时视频会议)

六、传输速度
TCP传输速度慢,UDP传输快

因为TCP传输数据前需要建立连接,还要保证可靠性和有序性,所以比较耗时,UDO传输速度快,所以UDP一般用于视频流、广播电视、在线多媒体游戏等方面

七、量级
TCP是重量级的,UDP是轻量级的

TCP需要建立连接,保证可靠性和有序性,那么就会传输更多的信息,如TCP的头部就较大

八、头部大小
TCP的头部需要20字节,而UDP只需要8个字节
九、传输方式
每一条TCP连接只能是点到点的,UDP支持一对一,一对多,多对一和多对多的交互通信

小结:

1.TCP是面向连接的、可靠的、有序的、速度慢的协议,UDP是无连接的、不可靠的、无序的、速度快的协议
2.TCP开销比UDP大,TCP头部需要20个字节,UDP头部需要8个字节
3.TCP是无界拥塞控制,UDP是有界无拥塞控制

基于TCP的协议有:HTTP、HTTPS、Telnet、FTP、SMTP
基于UDP的协议有:DHCP、DNS、SNMP、TFTP、BOOTP

你可能感兴趣的:(面试题,网络)