1.UDP 在传送数据之前不需要先建立连接,UDP 不提供可靠交付,但在某些情况下 UDP 确是一种最有效的工作方式(一般用于即时通信),比如: QQ 语音、 QQ 视频 、直播等等
2.TCP 提供面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。 TCP 不提供广播或多播服务。难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。TCP 一般用于文件传输、发送和接收邮件、远程登录等场景。
3.TCP 协议如何保证可靠传输
i.应用数据被分割成 TCP 认为最适合发送的数据块。
ii.TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
iii校验和 TCP 将保持它首部和数据的检验和。这是一个端到端的检验和,
iv.TCP 的接收端会丢弃重复的数据
v.TCP 连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。
vi.拥塞控制: 当网络拥塞时,减少数据的发送。
vii.ARQ协议: 也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。
viii.超时重传: 当 TCP 发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。
这里大佬链接详细讲解:https://blog.csdn.net/JineD/article/details/113527707