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

本文介绍了IP地址的基本概念,包括其32位二进制结构和子网掩码的作用。阐述了IP地址与子网、路由器如何交互以实现网络通信。同时,解释了为何IP地址和域名并用,因为IP地址适合机器,域名便于人类记忆。DNS(域名系统)在此过程中起到关键作用,将域名转换为IP地址。Socket库提供了查询IP地址的功能,通过调用解析器完成域名解析的过程。
摘要由CSDN通过智能技术生成

一、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地址,存放到指定的<内存地址>中
  • 返回给应用程序(浏览器)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

溜吉放码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值