以太网是数据链路层的核心协议
1. 以太网数据帧的组成部分
-
帧起始符(Preamble):8字节的连续数据0xAA,标识一个新数据帧的开始,用于同步收发双方的时钟。
-
目的MAC地址(Destination MAC Address):6字节的目的MAC地址,表示数据帧的接收者。
-
源MAC地址(Source MAC Address):6字节的源MAC地址,表示数据帧的发送者。
-
类型/长度(Type/Length):2字节的字段,用于指示数据帧中的数据类型或长度。
-
有效载荷(Payload):46-1500字节的数据部分,包含网络层协议的数据和其他信息。因为ARP是46个字节所以有效载荷最小是46字节,最大为1500字节是由于硬件设备的限制,这个最大限制称为MTU
-
填充(Padding):如果有效载荷长度小于46字节,则在数据尾部添加填充,以达到最小帧长度64字节。
-
帧校验序列(Frame Check Sequence):4字节的CRC校验码,用于检测数据传输过程中是否出现了错误。
以太网数据帧的总长度为64-1518字节,其中8字节的帧起始符和4字节的帧校验序列是固定的,剩余部分则根据实际数据内容来确定。数据帧的目的MAC地址、源MAC地址和类型/长度字段是在数据链路层中进行处理和解释的,以太网协议支持多种不同类型的数据,例如IP数据包(0x0800)、ARP请求/应答(0x0806)等。
MAC地址(Media Access Control address)是一个用于唯一标识网络设备的地址。它是由设备的制造商在生产时分配给设备的,通常以十六进制数表示。MAC地址是数据链路层中用于在局域网中唯一标识网络设备的地址。每个网络设备都会有一个唯一的MAC地址,这样可以确保在局域网中每个设备都具有唯一的标识。
解释:
类型:
-
指示上层协议:当以太网帧携带的数据是网络层及以上的协议时,"类型"字段用于指示数据部分所使用的协议类型。例如,如果数据部分是 IP 数据报文,"类型"字段可能指定为0x0800(对应于IPv4协议),如果数据部分是IPv6数据报文,则"类型"字段可能指定为0x86DD。
-
EtherType/Length 字段:在以太网数据帧中,"类型"字段也被称为 EtherType 字段,它用来表示随后数据字段的具体含义。此外,在一些情况下,"类型"字段也可以用来表示数据字段的长度。这样的情况下,"类型"字段通常被称为 Length 字段。
-
识别不同协议:通过"类型"字段,网络设备可以识别以太网帧携带的数据所使用的具体协议,从而进行相应的处理和转发。不同的协议可能需要不同的处理方式,"类型"字段有助于设备进行正确的协议解析和处理。
ARP:ARP用于将IP地址转换为对应的MAC地址,在局域网中实现网络层地址到数据链路层地址的映射。
RARP:RARP用于将数据链路层地址(如MAC地址)转换为对应的IP地址,是ARP的逆向过程。
2. MAC地址和IP地址的区别
-
唯一性范围:MAC地址在全球范围内是唯一的,由设备制造商分配,因此具有全局唯一性。而IP地址在特定的网络范围内是唯一的,但在不同的网络之间可以重复。这意味着全球范围内的每个设备都有唯一的MAC地址,但可能有多个设备共享相同的IP地址。
-
地址格式:MAC地址通常以十六进制表示,由6个字节(48位)组成,例如00:1A:2B:3C:4D:5E。IP地址通常以点分十进制表示,IPv4地址由4个字节(32位)组成,例如192.168.0.1。IPv6地址则采用128位的长度,由8组16进制数表示,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
-
路由和转发:MAC地址用于在局域网内部直接寻址和传输数据帧,而IP地址则用于在不同网络之间进行路由和转发。路由器根据目的IP地址对数据包进行转发,而在每个局域网中,设备通过目标MAC地址直接发送和接收数据。
-
灵活性:IP地址具有更高的灵活性,可以根据需要分配、释放和重新分配。这使得在网络中进行动态地址分配(如DHCP)和网络管理更加方便。而MAC地址通常是设备制造商预先分配的,一般不会随着网络配置的变化而改变。
3. DNS
DNS(Domain Name System,域名系统)是互联网中用于将域名(如example.com)转换为与之对应的 IP 地址的分布式命名系统。它充当了互联网上的“电话簿”,帮助用户通过易记的域名来访问网站,而无需记住复杂的 IP 地址。
以下是 DNS 的主要功能和工作原理:
- 域名解析:DNS 的主要作用是将人类可读的域名(如www.example.com)转换为计算机可识别的 IP 地址(如192.0.2.1)。这个过程称为域名解析,它通过 DNS 服务器来实现。
- 分层结构:DNS 采用了分层结构,包括根域(.)、顶级域(TLD)、二级域、子域等层级。当用户在浏览器中输入一个域名时,DNS 将逐级查询不同层级的服务器,直到找到对应的 IP 地址。
- 递归查询:当用户的设备向 DNS 服务器发起域名解析请求时,DNS 服务器可能会进行递归查询,依次向其他 DNS 服务器查询,直到找到与之对应的 IP 地址,并将结果返回给用户。
- 缓存:为了提高解析效率,DNS 服务器通常会缓存已解析过的域名和对应的 IP 地址,以便在后续的查询中快速返回结果。
- 权威服务器和递归服务器:DNS 系统中包含权威服务器(Authoritative Name Server)和递归服务器(Recursive Resolver)。权威服务器存储特定域名的 IP 地址信息,而递归服务器则负责处理域名解析请求并返回结果。
hosts 文件就是用于储存IP和对应的域名的,随着互联网发展,域名和服务器越来越多,维护hosts文件就非常麻烦,于是诞生了域名解析服务器,需要获取域名或IP只需在服务器内获得