访问www.baidu.com的过程

  1. 先要解析出www.baidu.com对应的IP地址
    1. 先要知道默认网关的MAC地址(使用ARP协议),哪一步不知道就继续使用ARP
    2. 组织数据发送给默认网关(IP是DNS服务器的IP)
    3. 默认网关把数据转发给路由器,路由器寻找一条最优的线路将数据转发给目的网关。
    4. 目的网关把数据发送给DNS服务器。
    5. DNS服务器解析出www.baidu.com对应的IP地址。过程如下:
      1. 我的计算机向本地DNS服务器(当我的设备通过ISP接入互联网,ISP会为我的设备分配一个DNS服务器(也可能是我手工配置的DNS))发起解析www.baidu.com的请求。本地DNS服务器先查询自己的cache,如果有的话则返回www.baidu.com的IP地址。
      2. 如果本地DNS服务器的cache中没有,则选择一个根域名服务器(本地有这些根域名服务器对应的13个IP地址)向其发起请求。根域名服务器为本地DNS服务器返回.com顶级域名服务器的IP地址。
      3. 随后本地DNS服务器向.com顶级域名服务器发起请求,.com顶级域名服务器为本地DNS服务器返回baidu.com权威域名服务器的IP地址。
      4. 本地DNS服务器得到baidu.com权威域名服务器的IP地址之后向baidu.com权威域名服务器发起请求.得到www.baidu.com这台主机的IP地址。
      5. 本地DNS服务器将www.baidu.com对应的IP地址返回给我的计算机。
  2. 得到www.baidu.com对应的IP地址之后,我的主机会向该主机发送TCP三次握手,进行连接。
  3. 使用HTTP协议发送请求数据给web服务器。
  4. Web服务器收到数据请求之后,通过查询自己的服务器得到相应的结果,将结果返回给我的计算机。
  5. 我的计算机收到返回的数据后,浏览器将其显示出来。
  6. 我的计算机进行四次挥手,关闭TCP连接。

整个访问过程完成。

(www.baidu.com实际的域名解析过程要比这个复杂,此处仅仅以此作为访问一个网址的演示,故不深入研究如果想深入了解可以参考https://blog.csdn.net/crazw/article/details/8986504一文)

注意:

1.先发送的是DNS的包,如果被其中一个路由器丢弃就是不知道某个设备(路由器或者服务器的)的MAC地址,当遇到这种情况的 时候就发送ARP的包,获取需要知道的MAC地址,返回给该路由器。使DNS的包可以发送过去。

2.DNS用的是UDP协议。

3.主机向本地DNS服务器的查询一般是采用递归查询。

4.本地DNS服务器向根域名服务器的查询通常是采用迭代查询。

猜你喜欢

转载自blog.csdn.net/daputao_net/article/details/81203531