【网络】数据链路层和DNS

张开发
2026/4/4 5:47:17 15 分钟阅读
【网络】数据链路层和DNS
目录数据链路层以太网MAC地址MTUDNS应用层协议数据链路层以太网数据链路层中有一个叫做以太网的协议。但是这里的以太网我们通常叫做“网线”也就是通过网线连接的网络这里我们主要来说一下以太网数据包的格式。其中类型字段表示是载荷部分是那个类型的(IP数据包ARP, RARP),MAC地址上图的目的地址和原地址都占6个字节这6个字节并不是IP地址我们说IP地址要么是4个字节(IPV4)要么就是8个字节(IPV6)这里的地址是MAC地址专用于相邻节点之间的数据传输。这里举一个通俗的例子来说比如我要从西安回到安广老家。那么网络层选择的路径是:西安-长春-白城-安广那么我们就要分4个步骤来坐车到达安广那么如何判断我下一个要去的地方是哪里呢就是用MAC地址它描述了相邻节点的地址就像这里我们相邻的是长春MAC地址就是长春。MAC地址是出厂的时候就已经设置的并且一定是唯一的。这里不会出现MAC地址不够用的情况他是6个字节2的48次方是一个很大的数字在上一节IP协议中我们路由器维护的路由表决定了网络数据包是从走LAN口还是WAN口如果是走WAN就不说了通常只有一个WAN口用来连接另一个网段。但是这个时候如果是走LAN口(LAN口标识局域网中的某台连接路由器的设备)LAN通常有多个那么到底是走那一个呢这个时候我们MAC地址的作用就体现出来来了我们在报头中发现有目的地址这个东西这个就是MAC地址他描述了我们下一个是该走那个LAN口。问题又来了我们得事先知道局域网中的每个设备的MAC地址啊这样才能和目的MAC地址比对那么我们路由器又如何得知局域网中每个设备的MAC地址呢其中我们包含ARP载荷数据的数据包就会让路由器广播在局域网让每个设备都发送他们的IP地址和MAC地址ARP协议的作用然后路由器会把这些发送的MAC地址收集起来构造一个转发表里面通过MAC地址映射到对应的设备后续传输数据就可以拿着目的MAC地址查询对应的设备是那个了。这就知道到底是走那个LAN口了。MTUMTU相当于是对数据链路层数据包载荷的最大长度限制这个限制是1500字节。可是我们在网络原理初识那一节说过数据链路层的数据包是对IP数据包的封装。那么意味着他的载荷就是IP数据包。那么在IP协议那一节讲过IP数据包最大限制长度是64KB(16位长度最长65535,单位字节)。这也意味着我们如果超过了1500字节就会在IP层拆包, -所以IP的拆包和组包是通过MTU来限制的而不是64KBDNS应用层协议在前面的章节中我们说过用IP地址来标识网络中的设备。如果是IPv4协议那么他的格式就是点分十进制:x.x.x.x比如:192.168.211.21, 这种数字形式的地址对于计算机中很容易记忆。但是对于我们人类来记的话那么还是非常难记忆的。所以我们聪明的科学家们又想到了一个替代方案来表示IP地址那就是用域名。域名的格式大家在生活中还是非常常见的比如我们最常见的:www.baidu.com这就是我们一个常见的域名。最早期我们的想出来的其实并不是使用DNS服务器而是使用一个hosts配置文件类似于把IP地址和域名组成一个哈希键值对通过IP映射找到域名。但是这种方案在互联网早期网站少的时候还可用随着互联网发展越来越多的网站出现那么我们每添加或删除一个网站都需要频繁修改这个hosts配置文件所以才有了DNS服务器的诞生。DNS服务器内部数据库建立了IP和域名的映射关系如果我们需要查找这个IP地址的对应域名就可以对DNS服务器发送请求DNS就会处理并返回结果。这个时候又有一个问题全球这么多网络设备需要知道域名是多少。那么一个DNS服务器难道能同时支持这么高的访问量其实DNS是撑不住的那么如何解决这个问题呢如果本机访问了DNS服务器后获得域名如果短时间内下一次再次获取这个域名的时候就不会真正的去访问DNS服务器而是在(本地硬盘中)中直接拿。只有超过一定的时间才会再次去DNS拿取采用分布式架构根DNS服务器不再存储所有的IP而是存储和权威服务器相关的目录其次的顶级域DNS服务器则存储直接与IP建立关系的权威服务器的目录剩下的权威服务器就会真正存储域名和IP的映射关系。这样下来我们根服务器不再直接负责查询IP而是把任务交给下面几层的服务器把请求量扩散分布给每层服务器。这叫做层级协作查询t这里如果缓存有那么直接返回缓存结果

更多文章