【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拿到,再真正的访问服务器。
以上就是本博客全部内容!!

相关推荐
2501_945837432 小时前
零信任架构落地,云服务器全生命周期安全防护新体系
服务器
tianyuanwo2 小时前
Jenkins Job管理实战指南:增删改查与批量操作技巧
运维·jenkins
这儿有一堆花2 小时前
服务器安全:防火墙深度配置指南
服务器·安全·php
螺旋小蜗2 小时前
docker-compose文件属性(3)顶部元素networks
运维·docker·容器
Q16849645152 小时前
红帽Linux-文件权限管理
linux·运维·服务器
不当菜虚困3 小时前
centos7虚拟机配置网络
运维·服务器·网络
fiveym3 小时前
CI/CD 核心原则 + 制品管理全解析:落地要求 + 存储方案
linux·运维·ci/cd
小北方城市网3 小时前
Spring Security 认证授权实战(JWT 版):从基础配置到权限精细化控制
java·运维·python·微服务·排序算法·数据库架构
AIGCExplore3 小时前
运维常用技术官网及工具整理手册
运维
CS创新实验室3 小时前
《计算机网络》深入学:信道划分
计算机网络·考研·408·信道划分