白话网络连接之详谈IP和DNS工作原理

前言
  预计我会花一月时间用几篇文章来和大家一起畅游网络知识,概要如下:
1.我们先会从浏览器的工作方式来进行了解,从浏览器中输入URL,接着浏览器去对URL进行解析,然后按照不同的协议去封装请求消息,发送请求,之后浏览器会收到响应消息。
2.我们还会去了解消息数据是如何搬运的,协议栈会将消息打包并交给网卡,然后网卡会将包转为电信号并通过网线发送出去。
3.对于发送到网络的信号数据是如何进入互联网的,这里我们会了解集线器、交换机、路由器等设备,当路由器出发的数据进入互联网后,我们就要了解下网络运营商和互联往中的骨干网。
4.之后网络包数据终于来到了Web服务器所在的局域网中,接着它会遇到防火墙,防火墙会对数据进行检查,有些重复利用的数据包还会遇到缓存服务器,当然在一些大型网站中还会遇到分布式服务器上的负载均衡器等。
5.最终,我们的网络包数据来到了Web服务器,服务器是怎么处理的呢?也是会和客户端类似,也是由操作系统中的协议栈来完成数据解析,最终按照协议中的操作指示来把数据装入响应消息中,发回给客户端。当然回发的过程和前面是正好相反滴。

正片开始:
  本篇我们来聊IP地址和DNS

  • IP地址的表示方式
    IP地址是一串32比特的数字,按照8比特(1字节)为一组分成4组,分别用十进制表示然后再用圆点隔开。下图我们看下IP地址的表示方式:
    在这里插入图片描述
      这里子网掩码比表示网络号与主机号之间的边界,IP地址主机号全0表示整个子网,IP地址主机号全1表示向子网上所有设备发送包,即“广播”。TCP/IP 网络是通过IP来确定通信的,就像我们电话的时候必须要知道对方的电话号码一样。
      到这里,可能你会问“既然如此,那么在网址中不写服务器的名字,直接写IP地址不久好了吗?” 其实用IP地址代替服务器名也是可以正常工作的,但是大家不觉得记住一串IP地址是非常难的么?那么现在的解决方案就是让人来记住名称,让路由器来使用IP地址,而让DNS来作为一种查询机制。
  • 谈谈DNS
      现在我们来说下DNS机制,浏览器向DNS服务器发出查询,也就是向DNS服务器发送查询消息,并接受服务器返回的响应消息的过程。这里我们可以理解为,在本机上有一个用来发送查询消息的程序,而浏览器用这个程序通过DNS查询IP地址的操作称为域名解析。其实这个程序包含在socket库中。说白了就是浏览器应用程序通过操作系统标准socket库,来发送查询消息到DNS服务器,并接受响应的过程。
      接着我们再细说DNS是怎么工作的,上面提到了,DNS的基本工作就是接受来自客户端的查询消息,然后根据消息的内容返回响应。这里我们来看一张图,
      在这里插入图片描述
  • 域名结构
    互联网中存在着不计其数的服务器,我们是不可能将这些所有的服务器信息都保存再一台DNS服务器中,因此就需要分布保存在多台DNS服务器中,这些DNS服务器相互接力配合,从而查找出要查询的信息, DNS之间的查询操作看下下图:

在这里插入图片描述

  • 本篇结语
    通过这篇我们简单了解了浏览器是怎么通过TCP/IP和服务器交互的,从而我们认识了DNS。在下面的篇张中我我们将深入到协议栈中去一探究竟,敬请期待,晚安。

猜你喜欢

转载自blog.csdn.net/alspd_zhangpan/article/details/107115776