国际标准化组织(ISO)指定了一个计算机或通信系统间互联的标准体系,一般称为OSI参考模型或七层模型。做前端肯定少不了和网络打交道,所以前端知识栈中必有网络协议。
首先我们要知道,UDP和TCP工作在七层模型中的传输层。然后我们需要了解这两种协议的特点以及根据特点使用在合适的场景中。
直接列出来TCP的特点,然后再一一解释:
在TCP传输数据之前,要先建立连接,这就是所谓的面向连接。通过建立连接的方式传输数据,就是为了保证数据的完整性、一致性等,所以称之为可靠的传输协议。TCP建立连接和断开连接都需要进行握手操作。
TCP建立连接的方式叫做三次握手。
TCP断开连接的方式叫做四次挥手。
双全工通信方式是指通信双发可以同时发送数据。
流量控制是指采用某种方法,控制收发端传输数据的速度,从而维持网络数据传输的平衡。TCP中通过使用体积可变的滑动窗口来实现流量控制。
网络拥塞是因为,在某段时间,网络中某一资源的需求量超过该资源所能提供的资源,简单来说就是需求大于供应。TCP中的拥塞控制包括四个算法:慢开始、拥塞避免、快速重传、快速恢复。
流量控制和拥塞控制虽然起到了类似的效果,但是原理不同。流量控制是为了解决输送方和接收方速度不同而导致的数据丢失问题;拥塞控制是防止过多的数据注入到网络中,导致网络崩溃。
UDP传输的特点:
UDP是面向无连接的,在传输数据之前也不需要先建立连接,且UDP只服务数据报文的搬运,不保证有序完整的将数据传递到目的端,同时也没有流量控制拥塞控制之类的机制。
相对于TCP来说,UDP看似缺点很多,但实际上UDP正因为没有那些复杂的东西,使得传输数据很高效,并且使用的资源很少。
使用一张图清晰对比两种协议:
TCP和UDP两种协议就好比是一对一辅导和教室授课(/doge)。
TCP保证老师讲的东西都可以被学生记住,讲课的时候保证一定的环境,老师讲的内容要在学生的接受范围之内,不要求进度,但是要求学生把讲的都学会。
UDP像是,老师不管听懂没听懂,一节课该讲多少就要讲多少,进度可不能落下,所以进度都很快。
由于UDP时效性很高,所以可以用于视频电话,直播等场景中;而TCP对数据完整无误要求更高,所以常用于文件传输等。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8