【javaEE】计算机网络数据链路层深度剖析与DNS域名系统


🎬 那我掉的头发算什么个人主页
🔥 个人专栏 : 《javaSE》《数据结构》《数据库》《javaEE》

⛺️待到苦尽甘来日


文章目录

数据链路层

以太网协议

以太网是一种数据链路层+物理层的协议,只要是通过网线进行上网,都会使用到以太网协议。

以太网数据帧格式


此处的地址,并不是指IP地址,而是mac地址。

mac地址与ip地址


对于我现在这台电脑来说,我的WIFI目前拥有的物理地址和IP地址如上。

mac地址是通过六个字节表示的,因此最大数量是2^32 * 2^16,大概在千万亿级别。所以目前来说mac地址是非常够用的,所以他没有使用NAT机制分配地址,而是每一个设备在出厂时就被内置了一个唯一的mac地址。它的作用其实和ip一样,都是为了唯一标识我们的设备。但是在实际使用中,二者的作用略有不同。

IP处于网络层,关注的是整个网络传输过程的路径,mac处于数据链路层,关注的是两个相互通信的设备之间的信息转发。

举个例子:

如图所示,我们假设一次信息传输中涉及到五个设备的名称以及地址如上。现在我们想要从A向E发送一个信息。

1.A-B

此时我们的数据包中报头部分的地址信息:

源ip:A

目的ip:E

源mac:A

目的mac:B

2.B-C

源ip:A

目的ip:E

源mac:B

目的mac:C

... ... ... ...

5.D-E

源ip:A

目的ip:E

源mac:D

目的mac:E

mac地址只会标识相邻节点的地址信息,因为它只能作用在数据链路层和物理层,受限制。ip地址标识整个传输过程中的起点和终点。


此处的类型表示的是载荷的类型,不同类型载荷数据格式不同。

帧尾四个字节表示校验和。

最大字节数1500。我们知道IP协议数据包最大长度是64KB,远大于数据链路层,理论上数据链路层根本承载不了IP数据包啊。

其实,IP在拆包的时候,并不是根据自身最大长度拆包的,而是根据以太网数据包的最大限制拆包,每个小包大小都在1500B以下,以此来避免数据缺失。

ARP协议

如果数据帧数据类型部分如上,则这个请求是一个ARP请求。

ARP请求传输的并非业务的逻辑,而是一些辅助功能,主要作用是根据IP地址找到MAC地址,以此来完成数据链路层的传输。

网络传输过程中,网络层是根据IP来转发数据的,数据链路层则需要MAC地址。但是IP协议数据包传下来的只有IP地址,我们仅仅拿到IP地址没法完成数据帧的转发。此时就需要ARP发挥作用:已知我们拥有下一个节点的IP地址,我们可以向下一个节点的本地网段的广播地址发送ARP请求,广播地址会把这个请求发给所有的设备,当有设备发现ARP请求包的目的IP与自己的一致,就发送一个ARP响应,告诉源主机自己的MAC地址。
(广播地址:同一个局域网中主机位全为一,如192.168.1.256或者10.256.256.256。像广播地址发送一个数据之后,会将这个数据转发给网络中的所有设备)

重要应用层协议

DNS

咱们都知道,每一个设备/服务器都拥有唯一的IP地址,我们在访问服务器时就是在访问这些IP地址。但是在日常搜索网站时,就比如百度,我们通常都是搜索www.baidu.com而并非xxx.xxx.xxx.xxx。这背后就是DNS的功劳,它能将域名映射成为机器可以识别的IP地址,让我们对于网站的地址记忆起来更加方便快捷。

在早期,网站很少,知名网站就那几个,大家完全可以把网站IP地址记忆下来,使用的时候输入即可。但是后来网站越来越多,根本记不住,于是有了DNS的概念。DNS开始时是使用本地的hosts文件来映射的,它会对我们输入的域名进行解析映射。后来因为网站越来越多并且hosts文件很难维护,所以hosts文件中的内容被提取出来,放到了一个DNS服务器上。我们每次访问域名时,先访问DNS服务器,把域名对应的IP拿到,再真正的访问服务器。
以上就是本博客全部内容!!

相关推荐
少年攻城狮4 小时前
阿里云系列---【申请域名并绑定到主机ip】
linux·服务器·tcp/ip·阿里云·云计算
樱桃花下的小猫4 小时前
云鸢联机 · 服务器常见问题自助排查指南
服务器·云鸢互联
互联网老欣4 小时前
2026 最新|OpenClaw(Clawdbot)阿里云轻量服务器一键部署保姆级教程(避坑 + 性能调优)
服务器·阿里云·云计算
汤愈韬4 小时前
hcip-security_防火墙高可靠技术4—双机热备结合NAT
网络·网络协议·网络安全·security
中科三方4 小时前
域名解析修改后,用户仍访问旧IP?原因排查与高效解决指南
网络协议·tcp/ip·php
赋创小助手4 小时前
RTX PRO 5000 AI服务器实测:48GB/72GB ECC 大显存,企业级 AI 推理的新方案
服务器·人工智能·rtx pro 5000·rtx pro 6000·rtx 5090
BIG_PEI4 小时前
如何判断Linux服务器上是否安装了rabbitmq
linux·服务器·rabbitmq
陳10304 小时前
Linux:System V 消息队列与信号量
linux·运维·服务器
辣椒思密达4 小时前
大规模数据采集如何稳定使用海外住宅IP?3种实战方法
网络·网络协议·tcp/ip
xhbh6664 小时前
Linux转发完全教程:ip_forward开启、iptables端口映射、双网卡NAT实战
服务器·网络·智能路由器·端口转发·端口映射·映射