TCP和UDP各自特点,两者的区别?
作者:互联网
什么是有连接,什么是无连接?
- 有连接
- 假如A和B需要进行一个电话通信
- 在进行通话前A或B需要先拨号建立连接,连接建立成功之后才能进行通信
- 通信结束之后要把电话挂断,即结束连接
- 无连接
- A和B在通信时并不需要建立连接,只要在想发送数据时可以直接将数据发送出去
UDP协议的特点
UDP(User Datagram Protocol:用户数据报协议)
UDP协议位于IP数据报里面,结构分为两部分:UDP首部和UDP的数据报,数据报是应用层传输过来的完整数据,UDP协议不
会对数据进行任何处理,会直接把数据封装到UDP的报文里面去。
- 1)UDP是无连接的传输层协议;
- 2)UDP使用尽最大努力交付,不保证可靠交付;
- 即不能保证数据在网络中是否丢失
- 3)UDP是面向报文传输的,对应用层传输过来的数据不会进行任何处理(不合并,不拆分,保留原报文的边界);
- 4)UDP没有拥塞控制,因此即使网络出现拥塞也不会降低发送速率;
- 适用于一些实时场景,如直播、视频会议等;
- 5)UDP支持一对一,一对多,多对多的交互通信;
- 6)UDP的首部开销很小,总共只有8个字节;
TCP协议的特点
TCP(Transmission Control Protocol:传输控制协议)
TCP协议位于IP数据报里面,分为TCP首部和TCP数据报的数据两部分。
- 1)TCP是面向连接的传输层协议。也就是说,在双方传输数据之前,必须先建立起连接,传输完数据后要结束连接;
- 如三次握手就是建立连接的过程,四次挥手就是结束连接;
- 比如两个人打电话,通话前需要拨号建立连接,通话结束后要挂机释放连接;
- 2)每一条TCP连接只能有两个端点,即点对点通信(一对一);
- 3)TCP提供可靠的传输服务;通过TCP连接传送的数据,无差错、不丢失、不重复、按序到达;
- 4)TCP提供全双工的通信;
- TCP允许通信双方的应用进程在任何时候都可以发送数据;因为TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双方通信的数据;
- 简单来说,两个计算机在连接的时候,都可以同时地通过连接发送数据或接收数据
- 5)TCP是面向字节流的协议;
- 虽然应用程序和 TCP 的交互是一次一个数据块(大小不等),但 TCP不把它看成一块数据,而是把这些数据仅仅看成是一连串无结构的字节流。
TCP和UDP区别
TCP | UDP | |
---|---|---|
传输可靠性 | 可靠性传输 | 不可靠 |
是否面向连接 | 面向连接 | 无连接 |
是否保证数据有序 | 保证数据有序 | 不保证数据有序 |
传输速度 | 慢 | 快 |
传输形式 | 字节流 | 数据报文段 |
资源开销 | 多 | 少 |
首部字节长度 | 20字节 | 8字节 |
是否有流量控制和拥塞控制 | 有 | 没有 |
TCP是面向连接的协议,在两台机器进行通信时,必须先建立连接,通信结束之后要释放连接。TCP要通过三次握手建立连接,通过四次挥手释放连接;因为TCP提供可靠的传输服务,在数据传递时,TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,确保数据能完整地按时到达接收端。接收端收到数据之后会向发送端发送一个ACK响应,告诉发送端我已经收到数据。
UDP在传输数据之前不需要建立连接,接收端收到数据之后也不需要向发送端进行响应,所以UDP是不可靠的。但是TCP也因为提供这些可靠服务而增大的网络的开销,传输的速度相比UDP来说较慢。
TCP和UDP各自适用的场景
- 当要求通信数据可靠时,选择TCP协议;例如文件传输,邮件传输等。
- 当要求传输速度,不要求数据可靠时,选择UDP;如直播,域名转换等。
标签:UDP,两者,通信,TCP,传输,数据,连接 来源: https://blog.csdn.net/qq_45287265/article/details/117221512