域名和子网掩码
# 基本概念
以下内容都是我在大学不好好听课欠下的债
# 域名与 IP
IP 地址与域名是一对多的关系。一个 ip 地址可以对应多个域名,但是一个域名只有一个 IP 地址。IP 地址是数字组成的,不方便记忆,所以有了域名,通过域名地址就能找到 ip 地址
在 Internet 上域名与 IP 地址之间是多对一的,域名虽然便于人们记忆,但机器之间只能互相认识 IP 地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS 就是进行域名解析的服务器。域名的最终指向是 IP
除了 DNS 服务器可以将域名转换为 IP,本地的 host 文件也可以静态的转换,比如你可以配置 1.1.1.1 www.baidu.com。以后访问百度的时候就会自动跳到1.1.1.1。而 nginx 作为服务器,也是可以配置域名的
# 内网与外网
即所说的局域网,比如学校的局域网,局域网内每台计算机的 IP 地址在本局域网内具有互异性,是不可重复的。但两个局域网内的内网IP可以有相同的
即互联网,局域网通过一台服务器或是一个路由器对外连接的网络,这个 IP 地址是惟一的。也就是说内网里所有的计算机都是连接到这一个外网 IP 上,通过这一个外网 IP 对外进行交换数据的。也就是说,一个局域网里所有电脑的内网 IP 是互不相同的,但共用一个外网 IP
# 子网掩码
即用来判断两台计算机的 IP 地址是否属于同一个网络段的判断。如果两台计算机处于同一个网络字段上,则这两台计算机就可以直接进行通信交流
屏蔽 IP 地址的一部分用来表示区别是网络标识和主机标识,以此来判断出 IP 地址是在局域网还是,Internet 网上,将整个巨大的 IP 网络划分成若干个小的子网
将计算机的 IP 地址和子网掩码都转化为二进制,进行 AND 运算,得出结果相同的话,则说明两台计算机处在同一个网络段,可以直接通信
子网掩码决定了你这个网络里能容纳多少台设备。掩码越短(1越少),网络越大,比如 255.0.0.0,这就像一个巨大的国家,里面能容纳1600多万台设备。掩码越长(1越多),网络越小,比如 255.255.255.252,这就像一个双人宿舍,里面只能容纳 2 台设备(通常用于路由器互联)
这就导致 IP 可能是一样的,但是由于掩码不一样,造成 IP 其实指向不同的机器
# 网关
通常指默认网关,比如通过子网掩码判断出两台计算机处于不同的网络字段,两台计算机就不能直接进行通信,为了能进行通信,这个时候网关就出现了,可以将不同网络频段的两台计算机联系在一起,从而进行通信
默认网关只负责把数据包从一个局域网搬运到互联网。它不关心数据包里装的是 HTTP 请求还是视频流,它只负责把数据送到目的地。注意我们在分布式系统中,也有个网关的概念,它负责把不同服务之间的请求进行转发,不同于本文中介绍的默认网关,分布式系统中的网关更像是一个中间层,负责把不同服务之间的请求进行转发,而默认网关更像是一个出口,负责把数据包从一个局域网搬运到互联网