域名解析系统
DNS 是一个应用层协议,也可以认为是一套系统,域名解析系统
- 域名就是网址,域名代表了 IP 地址
域名和 IP 地址,存在着对应关系,一般是一个域名对应一个或者多个 IP,也可能是多个域名对应一个 IP
虽然 IP 写作点分十进制,但是仍然对于人类是不友好的。所以引入了单词字符串,来表示 IP 地址。把域名转换成 IP 地址这样的一套系统,就称为“域名解析系统”
早期的域名解析系统很简单,是通过一个文件来实现的(hosts)。是一个文本文件,里面记录了 IP 地址刚和域名的对应关系。现在已经不使用了(虽然仍然有效),因为网站太多了,域名和 IP 地址都有很多,靠文件来维护,就很不方便
DNS 服务器
为了解决上述问题,就搭建了 DNS
服务器,就把 hosts
文件放到 DNS
服务器里。当某个电脑需要进行域名解析,就访问 DNS
服务器
镜像服务器
全世界有这么多的设备上网,每时每刻都在访问 DNS
服务器,DNS
服务器能顶住这么大的访问量吗?
- 多弄一些
DNS
服务器就可以了 - 多高出来的
DNS
服务器称为“镜像服务器”
事实上,世界上有数不清的镜像服务器,往往是一些运营商/互联网公司维护。每个人上网的时候,就会就近访问DNS
服务器
qq/wx 能打开,网页打不开,就是 DNS 挂了
所谓高并发问题,千万不要想的太复杂,核心思路就两条:
- 开源,搭建 DNS 的大佬们,就号召各个网络运营商,搭建镜像服务器
- 节流,让请求量变少。让每个上网的设备,搞本地缓存。我的电脑 1 min 之内要访问 10 次
www.sougou.com
,只是让第一次请求 DNS 即可,把请求到的结果保存到本地,后面 9 次请求都使用第一次的结果即可(域名的变换,没有那么频繁)
一旦有数据变更,就需要约定以某个服务器的数据为基准,一旦有变更,就修改这个基准服务器的数据,其他服务器从基准的服务器同步数据,基准服务器称为“根服务器”
某个地区的 DNS 镜像可能会很出现故障(qq/wx 能上,但是网页打不开),这就是 DNS 挂了,换个其他的 DNS 服务器就可以了
一旦把某个国家的域名的数据从根服务器中删除掉,就意味着这个国家的网络就会陷入瘫痪
Ipv6 同样也需要 DNS 解析,但这一套 DNS 和 Ipv4 的截然不同,需要另起炉灶,重新搞
mac 地址
- 一般一个网卡,在出场的时候,mac 地址就被分配好了,就写死了(不能改了)
- mac 地址也可以作为设备的身份标识
比如,你花钱买外挂,一般的外挂都是“绑定机器”的(防止你进行二次售卖),这就可以通过记录设备的 mac 地址来实现
- 当你买了这个挂之后,人家就会在服务器上记录你这个设备的 mac 地址
- 如果你之后给别人登录这个程序,被发现 mac 地址不一样,就没法使用
mac 地址和 IP 地址的区别
mac
地址使用 6 个字节,IP 地址 4 个字节
- 空间范围比 IP 地址大了 6w 多倍
mac
地址当前仍然可以给每个设备都分配一个唯一的mac
地址
mac
地址使用在数据链路层,用来实现两个设备之间的数据转发——微观;IP
地址使用在网络层,立足于整个转发流程,进行路经规划——宏观
理论上来说,搞一套地址也能完成宏观和微观地址上的所有工作,IP 地址和 mac 地址留一组就可以了,但实际上两个都留下来了,分配了不同的任务(不是技术问题,而是历史遗留问题)。
IP 地址和 mac 地址是两伙人,在同一个时间段各自独立提出的。两伙人都觉得自己的东西好,于是大家就综合一下,你这个地址负责这块;你那块地址负责那块就可以了
举个栗子:西安到吉林省白城市安广镇
第一步:路径规划(网络层)
西安—>北京—>长春—>白城—>安广
西安—>北京—>沈阳—>白城—>安广
西安—>长春—>白城—>安广
…
第二步:实施(选择第一条线路)
- 坐飞机
源IP
:西安;目的IP
:安广;
源mac
:西安;目的mac
:北京- 坐高铁
源IP
:西安;目的IP
:安广
源mac
:北京;目的mac
:长春- 坐大巴
源IP
:西安;目的IP
:安广
源 mac:长春;目的 mac:白城- 坐出租车
源IP
:西安;目的IP
:安广
源mac
:白城;目的mac
:安广
.
上述场景不考虑NAT
,源 IP 和目的 IP 始终都是固定的。以太网数据帧里面的 mac 地址,会随着转发的过程,时刻发生改变(每经过一个交换机/路由器就会产生上述变化),牢牢抓住了下一个数据要往哪传输这样的要点