网络读书笔记之DNS服务器查询IP地址

一、IP地址的基本知识

  1、浏览器解析网址并生成HTTP消息后,委托操作系统将消息发送到网络中的功能,则需要查询网址中服务器域名对应的IP地址。

  2、凡是用一台集线器相互连接起来的计算机都属于同一个子网,子网与子网之间用路由器相互连接,形成大的网络,网络中的每一台设备(包括路由器,计算机)都有其IP地址。


    过程:子网1中的一台计算机A发送消息给子网5的一台计算机B,首先通过子网的集线器转发给距离A最近的路由器,然后消息在经过子网6内的集线器转发到下一个路由器,然后再由路由器通过子网5的集线器发送给计算机B。

  3、IP地址:一串32比特的十进制数字,中间用圆点隔开。

    (1)IP地址中:网络号和主机号连起来共32比特(4个字节)。但这两部分的具体结构,用户可自行决定,所以我们需要另外的附加信息(即子网掩码)来表示IP地址的内部结构。

    (2)子网掩码的作用是表示网络号和主机号的边界,子网掩码为1的部分表示网络号,为0的部分表示主机号。

                                        十进制表示                                            将左侧十进制转换成比特后

        IP地址                        10.  1.  2.  3                                00001010.00000001.00000010.00000011

        子网掩码                     255.255.255.0                           11111111.  11111111.  11111111.  00000000


        网络号                          10.  1.  2.                                    00001010.00000001.00000010.

        主机号                                          3                                                                                    00000011

        注:IP地址的主机号全为0:表示整个子网

          IP地址的主机号全为1:表示向子网上所有设备发送包,即”广播“。

二、为何要IP地址和域名并用

    1、简单来讲,域名是给人看的。而IP地址是给路由器看的。

    2、之所以不让路由器使用域名,是因为域名数据量大,至少要几十个字节,且数据长度不固定,造成性能的消耗和时间的浪费,而IP地址,固定4个字节,方便传输。但给人记忆32个数字相比记名称要难。所以,在人和机器都不做出牺牲的前提下,域名和IP地址并用完美的解决了这一问题。

  3、但为了填补人和机器之间的信息差,我们需要一个机制能通过域名名称来查找到IP地址,这个机制就是DNS机制(Domain Name System  域名服务系统)----将服务器名称和IP地址进行关联是DNS最常见的用法,但DNS的功能不仅限于此。

三、Socket库提供查询IP地址的功能

    1、Socket库是用于调用网络功能的程序组件集合,由加州大学伯克利分校开发的UNIX系操作系统BSD中开发的C语言库,其中包含了很多用于发送和接收数据的程序组件,其中有一种程序组件叫做解析器。

    该解析器可以通过DNS查询IP地址进行域名解析。

  2、IP地址的查询过程                          

      解析器的调用(在浏览器中编写一行代码进行调用)——>解析器向DNS服务器(委托操作系统)发送查询消息——>DNS服务器返回响应消息(消息中包含查询到的IP地址)——>解析器取出地址,并将其写入浏览器指定的内存地址中。

    接下来浏览器在向Web服务器发送消息时,只要从该内存地址中取出IP地址,将其与HTTP请求消息一起交给操作系统即可。

  3、解析器要做的事情

    (1)应用程序(浏览器)调用解析器的代码:<内存地址>=gethostbyname("www.lab.glasscom.com");

    (2)Socket中的解析器

            - 生成发送给DNS服务器的查询消息

            - 解析器委托操作系统向DNS服务器发送查询消息,操作系统内部的协议栈发送UDP消息,通过网卡将消息发送给DNS服务器

            - 待操作系统接受到DNS服务器通过网卡返回的响应消息,返回给解析器

            - 解析器从返回的响应消息中取出IP地址,存放到指定的<内存地址>中

            - 返回给应用程序(浏览器)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容