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