一些基础知识:
- 平时使用的网线,也叫做"以太网线".
- 平时使用的交换机,也叫做"以太网交换机".
- 以太网这个协议,既涉及到数据链路层的内容,也涉及到物理层的内容.
1. 以太网帧的格式
①目的地址,源地址:
- 此处的地址,叫做mac地址(物理地址).
- 作用也是区分不同的主机.
问:那么既然已经有了IP地址,为什么还要有mac地址呢?
下面会解释到.
②类型0800:
- 十六进制的0800,以太网数据帧的载荷就是完整的IP数据报.
- 以太网数据帧的载荷可以有多种形式.不同的类型,载荷长度不同.
③IP数据报(46-1500):
- 一个以太网数据帧,最大长度1500(受限于硬件的).
- 数据链路层和硬件是密切相关的.对于以太网来说,对应的硬件设备,就只能支持这么大.
- 换成其它的硬件,也就需要搭配其它的数据链路层协议,这里的最大值可能会不一样.把这个最大值成为MTU.
注意:
1)1500:
1KB多一点,非常小,一个稍微大一点的传输层/应用层数据,都会在数据链路层被切分成多个.
2)
IP数据报的分包和组包,这个过程就是为了MTU搞出来的.
IP数据报一般分包不是因为自身的长度达到64k,而是MTU.
这里可以形象的比喻为拉货的卡车,有的车装的多,有的装的少.
④类型0806/类型8035:
- 辅助实现局域网转发的机制.
2. MAC地址
IP地址和mac地址,被各自独立的设计.
- IP地址:负责网络层转发.(网络层负责的是整体的转发过程.)
- mac地址:负责数据链路层转发.(数据链路层负责的是局部(相邻设备)转发过程.)
举个例子:
我从西安到白城.
规划路线(网络层)(路由选择):
1.西安->北京->长春->白城
2.西安->长春->白城
3.......
具体的转发过程(数据链路层):
以第一条路线为例:
1.西安->北京 坐飞机
2.北京->长春 坐高铁
3.长春 ->白城 坐大巴
①西安 ——> 北京 坐飞机
②北京 ——> 长春 坐高铁
③长春 ——> 白城 坐大巴
- 实际上,mac地址(6字节)和IP地址(4字节),是不同的.
- 一个主机,既有IP也有mac.
- mac地址,一般使用十六进制数字,两个十六进制数字,就是一个字节.(字节之间经常使用-或:来分割)
- 这两个地址的内容虽然不同,但都能表示我的电脑的地址.
- mac地址,6个字节,表示的范围,比IPv4放入地址,大得多.
- 当前mac地址,都是网卡出厂的时候,就写死了.(可以保证每个设备的网卡都有独立的mac地址),因此,mac地址就成了互联网上一种身份标识的方式.
3.DNS(域名解析系统)
3.1 概念
上网,要访问服务器,知道服务器的IP地址.
IP地址,是一串数字,虽然这个数字使用点分十进制已经清晰不少了,但仍然不方便人家记忆传播.
使用单词,来代替IP地址.
比如:
使用baidu,sogou这样的单词,来代替IP地址,这样的单词,就称为"域名".
实践中,为了保证域名的唯一性,域名往往是分级的.
这个域名是给人看的,机器不认识.
DNS,就可以把域名自动翻译成IP地址.
最早的域名解析系统,是一个文件.(hosts文件)
每个域名都会对应到一个IP地址.
3.1.1 问题
一旦新的网站出现了,或者旧的网站下线,这里就需要修改.
全世界有很多网站不停的新增和消亡,有这么多的主机带有hosts需要修改.
解决:
- hosts文件仍然保留(内容一般是空着了)
- 把这个内容拿到专门的服务器里.
- 有人专门整个服务器,把hosts文件装进去,以这个服务器为准.
- 新网站的注册,旧网站的注销,都需要去这边报备.
- 这个服务器负责更新维护.
- 我们在上网的时候,访问某个域名,都需要先访问到人家的服务器.
- 把域名对应的IP获取到,就可以进一步的访问目标网站了.
那么问题来了,全世界,这么多的主机都在上网,此时DNS服务器能承担这么高的并发量嘛?
3.2 DNS服务器如何承担高并发量
两个原则:开源,节流.
3.2.1 节流
每个电脑上,在进行域名解析的时候,都会有缓存.
比如说我访问百度,其实只有第一次真的访问DNS,后面9次都不一定.
3.2.2 开源
全世界会搭建出很多的"DNS镜像服务器"(一般是网络运营商或者一些大厂)
从最初的DNS(根域名服务器)这里同步数据.
此时访问镜像和访问人家的DNS服务器效果一样,此时就把请求的压力分摊开了.
3.2.3 缺陷
①既然我们的DNS镜像服务器是从根域名服务器这里同步数据的,那如果根域名服务器搞事情,是否会对我们产生影响?
一定会的!!!直接上不了网.
我们国内大力发展IPv6,也是为了摆脱DNS的限制.
IPv6也需要DNS,是一套新的DNS,和之前的不相干.
②从技术角度讲,DNS服务器会挂嘛?
当然会!!!
尤其是所在地区的NDS镜像服务器,一年至少挂一两次.