TCP与UDP区别:可靠连接和不可靠连接
细节:
一、连接性:
TCP:是面向连接的协议。通信双方在传数据前必须通过三次握手建立连接,在数据传输结束后会还需进行四次挥手断开连接。
UDP:是无连接的协议。发送数据之前不需要建立连接,直接将数据发出去。接收端从网络中接收数据,并从消息队列中读取数据段。
二、可靠性
TCP:可靠。通过序列号、确认号、重传机制等一系列技术,确保数据准确、准时、无错、不丢、不重复。当接收方一定时间内没收到数据会重新发。
UDP:不可靠。不保证数据能被对方收到,发送的数据可能丢失、重复、乱序,但他传输速度快,实时性强。
三、传输速率
TCP:由于需要建立连接、维护、确认、重传等操作,传输效率相对低,尤其对于小数据量。
UDP:没有一系列复杂机制,单纯发送,传输效率较高。
四、数据处理方式
TCP:面向字节流。将数据看成一连串无结构的字节流,在发送和接收时进行分片和重组操作。发送方将数据分成合适的报文段,接收方按照序列号重组报文。
UDP:面向报文。将应用层交下来的报文加上首部后直接向下交付,不合并不拆分。
五、通信模式
TCP:点对点通信,一条TCP连接只能在两个端点间进行数据传输。
UDP:支持一对一、一对多、多对一、多对多的通信模式,更加灵活。
六、首部开销
TCP:首部开销大,至少20字节。包含更多控制信息,如序列号、确认号、窗口大小、校验和等,以便实现可靠连接和流量控制
UDP:首部开销小,只有8字节。只包含源端口号、目的端口号、长度、校验和等基本信息。
七、应用场景
TCP:对数据传输可靠性要求高的应用。如文件传输、电子邮件、网页浏览等,不允许出现数据丢失或错误。
UDP:实时性要求高,接受一定的数据丢失和错误,如IPTV、视频会议、广播等。