美文网首页测试人
浏览器输入网址到显示过程?

浏览器输入网址到显示过程?

作者: 小麻巧吃西瓜 | 来源:发表于2020-04-17 21:38 被阅读0次

    浏览器输入网址到显示过程?(连不上网可能是哪里有问题?)

    可以思考从计算机网络的角度,一个完整的网络访问过程。
    上网需要的四个参数:
    1.本机ip地址
    2.子网掩码
    3.默认网关
    4.DNS的ip地址

    子网掩码:用于划分网络地址主机地址。将32位的子网掩码与IP地址进行二进制形式的按位逻辑“与”运算得到的便是网络地址,将子网掩码二进制按位取反,然后IP地址进行二进制的逻辑“与”运算,得到的就是主机地址。(如果是都是使用的IPV6的话是没有子网掩码的概念。IPV6是端到端的连接通信,不需要子网了。但是,目前似乎更多都是[IPV4上使用隧道的方式使用IPV6。完全消灭IPV4还需要相当长的时间,子网掩码目前还是要的。

    域名系统(服务)协议(DNS)是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换,以及控制因特网的电子邮件的发送。(DNS协议运行在UDP协议之上,使用53端口)。

    网关:对于不在同一个网段(网络地址不同)的网络进行通信的时候需要网关,网管的地址一般赋予的机器是具有路由功能的设备,如路由器。

    动态获取的协议:DHCP:DHCP,动态主机配置协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。

    过程:

    1.确定本机的ip地址,子网掩码和其他信息。(DHCP获取的具体过程?)
    2.确定要访问的内容,知道内容的url,由DNS协议解析(DNS解析具体过程?)得到对应的地址。
    3.子网掩码判断是否处于同一网段,若不在,则将数据报发给网关的MAC地址。若在,MAC地址就是要访问的机器的MAC地址。
    4.HTTP请求放在HTTP报文里,加上TCP头部(长度为20,TCP报文段需要设置端口号,接受方的默认端口为80,主机端口为随机生成整数),然后TCP报文段嵌入ip数据报ip数据报设置双方ip,ip数据报头部长度为20。又嵌入以太网帧以太网帧需设置双方MAC地址。以太网帧数据部分最大为1500字节,则ip数据报超过大小则被拆分,且每个ip数据报片段都得有ip头部。
    5.经过网关(可能有多个)的转发,目标url的服务器收到若干以太网帧,根据ip头部的序号,把ip数据报拼起来,去除tcp头部,再取出HTTP请求,作出响应,再传回去。

    1. HTTP 请求页面

    1. 有了 HTTP 服务器的 IP 地址之后,主机就能够生成 TCP 套接字,该套接字将用于向 Web 服务器发送 HTTP GET 报文。
    2. 在生成 TCP 套接字之前,必须先与 HTTP 服务器进行三次握手来建立连接。生成一个具有目的端口 80 的 TCP SYN 报文段,并向 HTTP 服务器发送该报文段。
    3. HTTP 服务器收到该报文段之后,生成 TCP SYN ACK 报文段,发回给主机。
    4. 连接建立之后,浏览器生成 HTTP GET 报文,并交付给 HTTP 服务器。
    5. HTTP 服务器从 TCP 套接字读取 HTTP GET 报文,生成一个 HTTP 响应报文,将 Web 页面内容放入报文主体中,发回给主机。
    6. 浏览器收到 HTTP 响应报文后,抽取出 Web 页面内容,之后进行渲染,显示 Web 页面。

    2. DHCP获取主机ip地址和其他信息的过程

    1. 生成一个 DHCP 请求报文,并将这个报文放入具有目的端口 67 和源端口 68 的UDP 报文段中。
    2. 报文段则被放入在一个具有广播 IP 目的地址(255.255.255.255) 和源 IP 地址(0.0.0.0)的 IP 数据报中。
    3. 数据报则被放置在MAC 帧中,该帧具有目的地址 FF:FF:FF:FF:FF:FF,将广播到与交换机连接的所有设备。
    4. 连接在交换机的 DHCP 服务器收到广播帧之后,不断地向上分解得到IP 数据报、UDP 报文段、DHCP 请求报文,之后生成DHCP ACK 报文,该报文包含以下信息:IP 地址DNS 服务器的 IP 地址默认网关路由器的 IP 地址和子网掩码。该报文被放入 UDP 报文段中,UDP 报文段有被放入 IP 数据报中,最后放入 MAC 帧中。
    5. 该帧传回请求主机的 MAC 地址。
    6. 主机收到该帧后,不断分解得到 DHCP 报文。之后就配置它的 IP 地址、子网掩码和 DNS 服务器的 IP 地址,并在其 IP 转发表中安装默认网关。

    3. DNS协议解析域名过程

    1. 主机生成一个 DNS 查询报文,该报文具有 53 号端口,该报文被放入目的地址为 DNS 服务器的 IP 地址的 IP 数据报中。该数据报被放入一个以太网帧中,该帧将发送到网关路由器(此处需要知道网关路由器的MAC地址,使用ARP协议进行解析)。
    2. 网关路由器接收到包含 DNS 查询报文的以太网帧后,抽取出 IP 数据报,并根据路由选择协议决定该 IP 数据报应该转发的路由器。
    3. 到达 DNS 服务器之后,DNS 服务器抽取出 DNS 查询报文,并在 DNS 数据库中查找待解析的域名。

    在向服务器提出查询请求之前会先检查浏览器缓存,本地hosts文件,本地DNS解析器缓存中是否有映射。

    1. 找到 DNS 记录之后,发送 DNS 回答报文,将该回答报文放入 UDP 报文段中,然后放入 IP 数据报中,通过路由器反向转发回网关路由器,并经过以太网交换机到达主机。

    4. ARP协议解析MAC地址过程

    1. 主机生成一个包含目的地址为网关路由器 IP 地址的 ARP 查询报文,将该 ARP 查询报文放入一个具有广播目的地址(FF:FF:FF:FF:FF:FF)的以太网帧中,并向交换机发送该以太网帧,交换机将该帧转发给所有的连接设备,包括网关路由器。
    2. 网关路由器接收到该帧后,不断向上分解得到 ARP 报文,发现其中的 IP 地址与其接口的 IP 地址匹配,因此就发送一个 ARP 回答报文,包含了它的 MAC 地址,发回给主机。

    相关文章

      网友评论

        本文标题:浏览器输入网址到显示过程?

        本文链接:https://www.haomeiwen.com/subject/hwhyvhtx.html