0%

网原 7.1 域名系统

应用层包括了各种应用协议。

人和应用程序,通过应用协议来使用网络。

7.1.1 IP地址和域名

1.IP地址

Internet上的每台主机,都必须有一个唯一的标识——IP地址。

题外话:网络上的路由器也必须有IP地址。

TCP/IP模型中网际层的IP协议,就利用IP地址来传递信息。

IPv4的地址由32位(4个字节)构成,通常采用点分十进制写法。

点分十进制(Dotted decimal notation):IP地址以10进制(0~255)按4个字节写做4段,以 . 分隔。

IPv4的点分十进制是和IPv6的冒分十进制相区别的。比如:3FFE:FFFF:7654:FEDA:1245:BA98:3210:4562

IP地址的语义由2部分构成:

  • 网络标识:
  • 主机标识:

IP地址按地域(国家、地区)分配和管理,管理机构是 Inter NIC(Internet Network Information Center)。

IP地址分为了5类:

ABC类是分配给主机/路由器的普通IP地址,D类是组播(或称多播)IP地址。E类是实验性地址。

因为ABCDE类的开头比特位绝不相同,因此:理论上不存在相同IP不同主机的情况。

由IP地址的结构可以计算出各类地址的范围:

地址分类 范围下限 范围上限
A类 0.0.0.0 127.255.255.255
B类 128.0.0.0 191.255.255.255
C类 192.0.0.0 223.255.255.255

注意:
理论上,A类地址的范围是 0.0.0.0 ~ 127.255.255.255,网络标识的范围 0 ~ 127。

但实际上, A类地址的网络标识范围只有 1~126,因为:

  • 网络标识 127(0111 1111)+任意主机号=127.x.x.x :是环回地址。
  • 网络标识段为全0(0000 0000)的也是主机地址,但比较特殊。
    • 主机号也为全0(0.0.0.0) : 可以做源端但不可以做目的端,代表的是网络上的主机。
    • 主机号不全为0:可以做源端但不可以做目的端,只是它代表的是网络上特定的主机。

因此,A类地址中,网络标识 1(0000 0001) ~ 126(0111 1110) 是非特殊的网络标识范围。

另外,对于任意的网络号,主机号全1的地址是广播地址。
广播地址不可以做源端,只能做目的端。
根据网络号的不同,广播地址分为:

  • 网络号全1,主机号全1:受限的广播,广播信号不会被路由器转发
  • 网络号非全1全0,主机号全1:向网络号所在的网络广播
  • 网络号非全1/全0,主机号全1,存在子网划分:向子网广播

广播这一块还太粗糙,需要后续整理归纳,todo。

子网掩码

即使是C类地址,可分配的主机IP地址仍然非常大,而IP资源是有限的,为了节约IP资源,可以在主机标识部分用子网掩码再划分出子网(subnet)。

子网掩码和IP地址一样,也是32位,但它的主机标识部分为全0,仅ABC地址网络标识段+子网段有值。

IP地址 AND(逻辑与) 子网掩码 = 带子网的网络标识段

可以把子网掩码的二进制位数写在IP地址后面 IP/n

  • A类的默认子网掩码: 255.0.0.0(255=1111 1111,缩写成“/8”,表示网络标识占了8位);
  • B类的默认子网掩码: 255.255.0.0(/16);
  • C类的默认子网掩码: 255.255.255.0(/24)

/30 = /(24 +6): C类地址的基础上,再占用6位来划分子网,255.255.255.252,
/32 = /(24+8): C类地址基础上,再占用8位划分子网,255.255.255.255

问题:子网掩码必须从高位开始,连续的1吗?

回答:必须这样!这样才能够从父级子网中划分。

问题: IP相同,子网掩码不同可能吗?

回答:

不可能。
定义了 0xxxxxxx这个子网,其他子网就不能使用0开头,不能再定义00xxxxxx和01xxxxxx,但允许继续定义10xxxxxx或者11xxxxxx。
如果把 0xxxxxxx 和 1xxxxxxx 都定义了,就不能再定义其他子网了。

2.域名

TCP/IP网络中的主机和网络设备使用IP地址进行通信,但IP地址不方便人类记忆和使用,因此引入了域名系统,在IP地址和域名之间建立了映射关系。

域名只是一个逻辑概念,和具体的IP地址无关,只要管理机构允许,任意IP和任意域名都可以建立对应关系。
域名和物理网络、主机的物理位置都无关。

域名采用了层次结构的、基于“域”的命名方案。

扩展: 什么是域?windows domain vs network domain 回答:
Network domain

Windows domain

简单的说,Windows 域只是域的一种形式而已。

7.1.2 域名系统的概念

域名系统(DNS,Domain Name System)管理了Internet上的域名。

注意:
独立于Internet的局域网,也可以通过架设 DNS服务器,建立主机和域名之间的映射,方便局域网内的用户记忆和访问主机,此情况下,可以使用 Internet上已经存在的域名,或者使用从未存在过的域名,因为这个域名仅仅在局域网内使用,并不会和 Internet 上的域名有何关系,所以没有影响。

DNS是一个分布式数据库系统(DBS,DataBase System),包括:

  • 域名空间:是指域名+网站空间(虚拟主机),而非字面意义:域名的空间
  • 域名服务器:
  • 地址转换请求程序

域名是一个树状结构,根节点是顶级域名,下面是二级域名,最下面的是主机名称。

域名的书写方法:主机名. ... N级域名. ... 二级域名.顶级域名

说明:
顶级域名就是1级域名,N级域名就是 N-1级域名的前缀。

在域名树中,:

  • 主机域名:叶节点,是某个域中某台主机的名称。比如:www.ecust.edu.cn(注意:www只是是主机名称而未标明所在域,完整的写法才叫主机域名)
  • 网络域名:非叶节点,是某个网络域的名称。比如:ecust.edu.cn

同一域中的主机,有着相同的网络域名,仅主机名不同。
不同域中的主机,可以采用相同的主机名。
因此,Internet中的两台主机,其域名必定唯一。

顶级域名(1级域名)有3类:

  • 国家地区顶级域名:cn, us, hk...
  • 国际顶级域名:int (国际性组织)
  • 分类顶级域名:com, net , org, edu

二级域名由各国家自行制订。比如我国就由:

  • 类别域名:6个, ac, com, edu , gov, net, org
  • 行政区域域名:34个, bj, sh, cd

强调:

  1. 域名和物理网络没有关系,而是与DNS系统如何管理网络中的主机有关,比如同一物理网络中,某些主机可以分配域名,某些则没有域名。
  2. 域名和IP地址中的子网叶没有关系,理由同上。
  3. 一台主机可以拥有多个域名。可能是一个IP映射多个域名,也可能该主机有多个IP(多个网卡),每个IP对应一个域名。

7.1.3 域名解析原理

运行了域名服务器程序的主机,称为域名服务器。

域名服务器通常是网络中专设的主机。

域名解析过程:

应用程序要将一个域名解析为IP地址时,就会调用域名解析函数(Resolve)。
域名解析函数把要解析的域名放在DNS请求中,以UDP报文的形式发送给本地域名服务器。

如果本地域名服务器查找到该域名对应的IP地址,就返回UDP应答报文,应用程序获得IP地址后就进行通信。 如果本地域名服务器不能找到对应的 IP,就会向更上级域名服务器发送DNS请求。

如果上级域名服务器也不能解析,DNS请求会发送到根域名服务器

根域名服务器管辖了顶级域名,但它通常不负责域名解析,不过它记录了待解析域名中下级域名的IP地址,并将DNS请求转发到该下级域名服务器,下级域名服务器同样将DNS请求转发到再下级域名服务器,最终抵达授权域名服务器,由授权域名服务器返回IP地址。

-------------本文结束,感谢您的阅读-------------