1、 TCP(Transmission Control Protocol 传输控制协议):是一种面向链接的、可靠的、基于字节流的传输层通讯协议,使用三次握手协议创建链接、四次挥手断开链接。面向链接意味着两个使用TCP的应用(一般是一个客户端和一个服务器)彼此在交换数据包以前必须先创建一个TCP链接。在一个TCP链接中,仅有两方进行通讯,广播和多播不能使用TCP。TCP的做用是保证数据通讯的可靠性和完整性,防止丢包。TCP把链接做为最基本的对象,每一条TCP链接都有两个端口,咱们把这两个端口叫做套接字(socket),端口号拼接到IP地址即构成套接字。html
UDP(User Datagram Protocol 用户数据报协议):是OSI(Open System Interconnection 开放式系统互联)参考模型中一种无链接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP协议主要做用是将网络数据流量压缩成数据包的形式。 浏览器
2、TCP、UDP协议的区别:缓存
UDP在传送数据以前不须要先创建链接,远地主机在收到UDP报文后,不须要给出任何确认。虽然UDP不提供可靠交付,但在某些状况下UDP确是一种最有效的工做方式(通常用于即时通讯),好比QQ语音,QQ视频、直播等。服务器
TCP提供面向链接的服务。在传送数据前必须先创建链接,数据传送结束后要释放链接。TCP不提供广播或多播服务。因为TCP要提供可靠的,面向链接的运输服务(TCP的可靠体如今TCP在传递数据以前,会有三次握手来创建链接,并且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后还会断开链接用来节约资源),这难以免增长了许多开销,如确认、流量控制、计时器以及链接管理等。这不只使协议数据单元的首部增大不少,还要占用许多处理及资源。TCP通常用于文件传输、发送和接收邮件、远程登陆等场景。网络
3、打开一个网页,整个过程会使用哪些协议。socket
1.浏览器查找当前URL的DNS缓存记录spa
2.DNS解析URL对应的IP视频
3.根据IP创建TCP链接(三次握手)htm
4.HTTP发起请求对象
5.服务器处理请求,浏览器接收HTTP响应
6.返回的HTML响应,浏览器解析渲染页面
7.关闭TCP链接(四次挥手)
整体来讲分为:1.DNS解析 2.TCP链接 3.发送HTTP请求 4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面 6.链接结束
详细网址: https://www.cnblogs.com/daijinxue/p/6640153.html
DNS解析具体过程:
首先查询浏览器的DNS缓存,若是有就返回对应IP; 若是没有的话,查询系统的缓存,这里会使用底层的系统调用进行查询; 若是找不到,查询路由器的缓存; 若是找不到就查找ISP对应的缓存记录; 若是找不到,就对根域名解析服务器发起查询请求(通常本地域名服务器会缓存顶级域名服务器的地址,因此根域名解析服务器请求比较少),返回对应的IP地址。