在浏览器地址栏键入URL,按下回车之后会经历哪些流程?
1、DNS解析,得到IP地址;
DNS是什么?
DNS是一种组织成域层次结构的计算机和网络服务命名系统,用于TCP/IP网络,所提供的服务是用来将主机名和域名转换成IP地址的工作。
DNS解析过程:
主机查询DNS缓存,如果没有就会给本地DNS发送查询请求;
本地的DNS服务器向根域名服务器发送查询请求,根域名服务器返回该域名的一级域名服务器;
该本地服务器给该一级域名服务器发送查询请求,然后依次类推直到查询到该域名的IP地址;
2、解析出IP地址后,根据该IP地址和默认端口80,和服务器建立TCP连接;
3、浏览器发出读取文件(URL中域名后面部分对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文的数据发送服务器;
4、服务器对浏览器请求作出响应,并把对应的html文本发送给浏览器;
5、释放TCP连接(四次挥手断开连接);
6、浏览器将该html文本解析并显示内容;
该过程中用到哪些协议?
域名解析时要用到DNS协议;DNS服务器是基于UDP的,因此会用到UDP协议;得到IP地址后,浏览器就要与服务器建立一个http连接,会用到HTTP协议;http生成一个GET请求报文,将该报文传给TCP层处理,所以会用到TCP协议;如果采用https还会使用https协议先对http数据进行加密;TCP层如果有需要先将HTTP数据包分片,分片依据路径MTU和MSS;TCP的数据包然后会发送给IP层,用到IP协议;IP层通过路由选择,发送到目的地址;当然在一个网段内的寻址是通过以太网协议实现(也可以是其他物理层协议,比如PPP,SLIP),以太网协议需要知道目的IP地址的物理地址,所以需要用到ARP协议。
用到哪些层?每层是干什么的?
1、DNS协议、HTTP协议、HTTPS协议属于应用层
应用层是体系结构中的最高层。应用层确定进程之间通信的性质以满足用户的需要。这里说到的进程就是指正在运行的程序。应用层不仅要提供应用进程所需要的信息交换和远地操作,而且还要作为互相作用的应用进程的用户代理,来完成一些为进行语义上有意义的信息交换所必须的功能。应用层直接为用户的应用进程提供服务。
2、TCP/UDP属于传输层
传输层的任务就是负责主机中两个进程之间的通信。因特网的传输层可使用两种不同的协议:即面向连接的传输控制协议TCP,和无连接的用户数据报协议UDP。面向连接的服务能够提供可靠的交付,它只是“尽最大努力交付”。这两种服务方式都很有用,各有其优缺点。在分组交换网内的各个交换节点机都没有传输层。
3、IP协议、ARP协议属于网络层
网络层负责为分组交换网上的不同主机提供通信。在发送数据时,网络层将传输层产生的报文段或用户数据报封装成分组或者包进行传送。在TCP/IP体系中,分组也叫做IP数据报,或者简称为数据报。网络层的另一个任务就是要选择合适的路由,使源主机传输层所传下来的分组能够交付到目的主机。
4、数据链路层
当发送数据时,数据链路层的任务是将在网络层交下来的IP数据报组装成帧,在两个相邻节点间的链路上传送以帧为单位的数据。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制以及流量控制等信息)。控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。控制信息还使接收端能够检测到所收到的帧中有没有差错。
5、物理层
物理层的任务就是透明的传送比特流。在物理层上所传输的数据的单位是比特。传递信息所利用的一些物理媒介,如双绞线、同轴电缆、光缆等,并不是在物理层之内而是在物理层的下面。因此也有人把物理媒体当做第0层。
————————————————
版权声明:本文为优快云博主「懒洋洋」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/swag_wg/article/details/102214865