当前位置: 首页 > news >正文

网络原理 - 9

目录

数据链路层

以太网

以太网帧格式

MAC 地址

DNS(Domain Name System)

完!


数据链路层

这里的内容也是简单了解,除非是做交换机开发,一般程序员不需要涉及~~

以太网

”以太网“不是一种具体的网络,而是一种技术标准,既包含了数据链路层的内容,也包含了一些理层的内容。例如:规定了网络拓扑结构,访问控制方式,传输速率等等~~

例如,以太网中的网线必须使用双绞线:传输速率有 10M 100M 1000M等等~~

以太网是目前使用最广泛的局域网技术,和以太网并列的还有令牌环网,无线 LAN 等~~

以太网帧格式

源地址和目的地址:指的是网卡的硬件地址(也叫 MAC 地址),长度是 48 位(6 个字节的地址),是在网卡出场时候就固化了

帧协议类型字段有三种值,分别对应 IP,ARP,RARP

IP:此时意味着以太网数据帧是一个能够携带业务数据的报文(大概率是业务数据,也有可能是一个携带 syn 这种的业务~~)

ARP 和 RARP 可以认为是两个横跨了网络层和数据链路层的协议。

ARP

在网络通信中,源主机的应用程序知道目的主机的 IP 地址和端口号,却不知道目的主机的硬件机制。数据包显示被网卡接收到然后再去处理上层协议的,如果接收到的数据包的硬件地址与主机不符,则直接丢弃~因此在通讯前必须获得目的主机的硬件地址

ARP效果就是能够让路由器 / 交换机建立一个内部的结构, IP -> MAC (类似于 hash表)(转发表,并不是路由表,只是描述着一个设备和那些设备之间是连接着的~~)

RARP

RARP 也是路由器和交换机也是建立一个内部的结构,不过是 MAC -> IP

帧末尾是 CRC 校验码

以太网的数据帧,载荷部分是有长度要求的(46 - 1500 字节)。46 字节,是因为 ARP 是 46 字节,1500 字节,是硬件的限制,最大的载荷长度,称为 MTU,我们前面在 IP 中讲到 IP 数据报拆包组包往往就是因为这个 MTU 导致的~(数据链路层也不仅仅是以太网,还有其他的协议,不同的协议,对应的 MTU 也会有差别~)

MAC 地址

在数据链路层,引入了另外一套地址体系,称为”MAC 地址“ / 物理地址

MAC 地址和 IP 地址是两套独立的地址体系。

IP 地址,侧重于全局的转发,从起点到终点,整个转发过程,通过 IP 地址负责完成。

MAC 地址,侧重于局部的转发,两个相邻设备之间的转发(一个电脑脸上一个路由器,这就是相邻设备)

MAC 地址是用来识别数据链路层中相邻的节点,一般用 16 禁止数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)

MAC 地址表示的范围比 IPv4 的地址大的多,当前的 MAC 地址都是和主机(网卡)一对一进行绑定的,IP 地址我们前面提到过,是动态分配的,但 MAC 地址就是静态分配的,网卡出厂的时候,MAC 地址就写死了~~

举个栗子~~

从江西到山西大同,路程非常远,没办法直达~有三条路线可选:

1. 江西 - 湖北 - 河南 - 山西 - 大同

2. 江西 - 安徽 - 河南 - 山西 - 大同

3. 江西 - 湖北 - 山西 - 山西 - 大同

上面的三种路线,就是网络层的路由选择的过程,一跳一跳的可以进行"投石问路"

如果确定了路线三:江西 - 湖北 - 山西 - 大同。

则就又有不同的出行方式:

1. 江西 - 湖北:

源 IP:江西,目的 IP:大同

源 MAC:江西,目的 MAC:湖北

(坐飞机)

2. 湖北 - 山西

源 IP:江西,目的 IP:大同

源 MAC:湖北,目的 MAC:山西

(坐火车)

3. 山西 - 大同

源 IP:江西,目的 IP:大同

源 MAC 山西,目的 MAC:大同

(坐大巴)

上述不同的出行方式,即是每经过一个路由器 / 交换机,路由器 / 交换机就会把上述数据包进行分用和重新分装,其中的源 MAC 和目的 MAC 就会发生改变,如果不考虑 NAT 机制,源 IP 和目的 IP 是始终不变的~~(公网对公网)

DNS(Domain Name System)

DNS 是一整套从域名映射到 IP 的系统

TCP / IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序,但是 IP 地址不方便记忆~

于是人们发明了一种叫主机名的东西,是一个字符串,并且使用 hosts 文件来描述主机名和 IP 地址的关系~~

hosts 文件里面的内容就是行文本,包含很多行,每一行都有 IP 和域名,每次访问每个域名就会进行查询,获取到对应的 IP。hosts 文件目前仍然是有效的,只不过一般情况下都是空的内容~~

随着互联网不断发展,域名和服务器都越来越多了,此时维护 hosts 文件,就非常麻烦了。

干脆就有大佬,搭建了一组服务器,来提供域名解析服务(将 hosts 内容放到了服务器里面了),某个主机想要访问某个域名,就先查询一下 域名解析服务器(DNS 服务器),查到的结果,就是域名对应的 IP,拿着 IP 进行访问即可~~

DNS 服务器,并非只有一份,是有很多份的~~最开始的一套 DNS 服务器,称为”根域名服务器“,这里面的内容是非常全的~~ 各个国家的网络运营商,再根据域名服务器里面的内容,搭建出”镜像服务器“,上网的时候,一般就是就近的访问附近运营商的镜像 DNS 服务器,镜像 DNS 服务器会定期的从跟服务器中同步数据~~

搭建域名服务器的时候。还会对于域名进行分级管理,一级域名,二级域名,三级域名....这样就可以控制每个服务器管理的数据都是适量的~~

例如,www.baidu.com ==> 一级域名:www 二级域名:baidu  三级域名:com~~

完!

http://www.xdnf.cn/news/159985.html

相关文章:

  • 硬件须知的基本问题2
  • Network.framework 的引入,不是为了取代 URLSession
  • 【锂电池剩余寿命预测】GRU门控循环单元锂电池剩余寿命预测(Matlab完整源码)
  • 静态多态和动态多态的区别
  • 大规模SoC芯片Hierarchical Flow Calibre LVS教程
  • 20250426在ubuntu20.04.2系统上打包NanoPi NEO开发板的FriendlyCore系统刷机eMMC的固件
  • CSS 定位学习笔记
  • springboot入门-业务逻辑核心service层
  • 上海交大:推理驱动的多模态提示重写
  • 20250426在ubuntu20.04.2系统上解决问题mkfs.exfat command not found
  • OpenStack Yoga版安装笔记(24)启动一个实例(L2Population测试)
  • 线程池(五):线程池使用场景问题
  • ROC 曲线 和 AUC
  • C/C++ 头文件包含机制:从语法到最佳实践
  • 利用知识图谱提升测试用例生成精准性:基于Graphiti与DeepSeek-R1的实战指南
  • git 工具
  • 神经网络与深度学习第四章-前馈神经网络
  • 在分类任务中,显著性分析
  • C++ 同步原语
  • 关于动态规划的思考[特殊字符]
  • [特殊字符] 深入理解Spring Cloud与微服务架构:全流程详解(含中间件分类与实战经验)
  • Day13(前缀和)——LeetCode2845.统计趣味子数组的数目
  • 计蒜客4月训练赛-普及 T3
  • 运维面试情景题:如果有一块新的硬盘要加入机架如何配置;如果新加了一台服务器,如何配置安全措施
  • 【开源】基于51单片机的简易智能楼道照明设计
  • C语言-函数练习1
  • arcpy列表函数的应用
  • 软件测评中心如何保障软件质量与安全性?
  • autodl(linux)环境下载git-lfs等工具及使用
  • .NET8 依赖注入组件