TCP和UDP区别
- TCP是面向连接的
UDP是面向无连接的 - TCP提供可靠交付。通过TCP连接传输的数据,无差错、不丢失、不重复并且按需分配到达。
UDP 不保证不丢失,不保证按照顺序到达。 - TCP是面向字节流的。发送的时候是发送的一个流。
UDP是基于数据报的,一个个的发,一个个的收。 - TCP可以有拥塞控制。它意识到包丢弃了或者网络环境不好了会根据情况发送。UDP不会
- TCP是有状态服务,精准的记住发送到哪个接受到哪个
UDP是无状态服务
什么是面向连接什么是无连接
在互通之前,面向连接的协议都会先建立连接。例如TCP会三次握手,而UDP不会.
为什么要建立连接
所谓的建立连接,是为了在客户端和服务器维护连接而建立一定的数据结构来维护双方交互的状态,用这样的数据结构来保证所谓的面向连接的特性
UDP的包头
源端口号和目标端口号
UDP的三大使用场景
需要资源少,网络情况比较好的内网,或者对于丢包不敏感的应用
不需要一对一沟通,建立连接而是可以广播的应用
需要处理速度快,时延低,可以容忍少量的丢包
UDP的实际应用场景
- 网页或者app的访问
- 流媒体协议
- 实时游戏
- 物联网
- 移动通讯领域
TCP
TCP包头
- 源端口号和目标端口号
- 包的序号
- 确认序号
- 窗口大小
TCP要做流量控制,通信双方各自申明一个接口,标示自己当前能够处理的能力
TCP三次握手 四次挥手
TCP顺序问题,丢包问题,流量控制都是通过滑动窗口来解决
拥塞控制是通过拥塞窗口来解决
网友评论