网络原理 - 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.mzph.cn/pingmian/78326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity bug

发现一个奇怪的bug,就是某些unity版本打包apk时候不允许StreamingAssets里面有中文文件或者中文路径。比如下图这面这俩都是不行的。 解决方案:中文改为英文即可。 一般报错信息如下: > Configure project :launcher WARNING:The option s…

【Linux网络】打造初级网络计算器 - 从协议设计到服务实现

📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…

计算机视觉——对比YOLOv12、YOLOv11、和基于Darknet的YOLOv7的微调对比

概述 目标检测领域取得了巨大进步,其中 YOLOv12、YOLOv11 和基于 Darknet 的 YOLOv7 在实时检测方面表现出色。尽管这些模型在通用目标检测数据集上表现卓越,但在 HRSC2016-MS(高分辨率舰船数据集) 上对 YOLOv12 进行微调时&…

‌MySQL 事务隔离级别详解

‌ 以下是 MySQL 支持的四种事务隔离级别及其特性,按并发安全性从低到高排列: ‌1. 读未提交 (Read Uncommitted)‌ ‌问题‌: ‌脏读 (Dirty Read)‌:事务可读取其他事务未提交的数据。‌不可重复读 (Non-repeatable Read)‌&am…

如何解决IDE项目启动报错 error:0308010C:digital envelope routines::unsupported 问题

如何解决IDE项目启动报错 error:0308010C:digital envelope routines::unsupported 问题 在现代软件开发过程中,开发人员通常使用集成开发环境(IDE)如IntelliJ IDEA、Visual Studio Code(VSCode)等进行Node.js项目开发…

2025最新Facefusion3.1.2使用Docker部署,保姆级教程,无需配置环境

Docker部署Facefusion 环境 windows10 Facefusion3.1.2 安装 拉取源代码 git clone https://github.com/facefusion/facefusion-docker.git 此处如果拉不下来,需要科学上网,不会的可以找我。 运行容器 将Dockerfile.cpu文件中的的From python:3.…

docker容器监控自动恢复

关于实现对docker容器监控以及自动恢复,这里介绍两种实现方案。 方案1: 实现思路: 找到(根据正则表达式)所有待监控的docker容器,此处筛选逻辑根据docker运行状态找到已停止(Exit)类…

HackMyVM - Chromee靶机

HackMyVM - chromee靶机https://mp.weixin.qq.com/s/hF09_24PRXpx_lmB6dzWVg

Cursor中调用本地大语言模型

引言 随着大语言模型(LLM)技术的快速发展,越来越多的开发者希望在本地环境中运行这些强大的AI模型,以获得更好的隐私保护、更低的延迟以及不依赖网络连接的使用体验。Cursor作为一款面向开发者的AI增强编辑器,提供了与本地大语言模型集成的功…

青少年CTF-贪吃蛇

题目描述: 进入赛题页面: 按F12,查看源代码, 可以看到是当分数大于或等于10000时,获得flag,值已经给出,直接引用就可以,check_score.php?score${score},这里将${score}换…

亚马逊测评老砍单?了解过全新自养号系统吗?

以全球电商巨头亚马逊为例,其风控技术的进化堪称一部永不停歇的“升级史”。然而,令人遗憾的是,不少卖家和测评服务商却依旧沉浸在过去的“舒适区”,过度依赖指纹浏览器、luminati等传统技术手段。这些曾经行之有效的工具&#xf…

module.noParse(跳过指定文件的依赖解析)

1. 说明 module.noParse 是 Webpack 的一个配置项,用于跳过对指定模块的解析。通过忽略某些文件的依赖分析,可以提升构建速度,尤其适用于处理大型、独立的第三方库 2. 使用配置 webpakc.config.js const path require(path); module.exp…

什么是爬虫?——从技术原理到现实应用的全面解析 V

什么是爬虫?——从技术原理到现实应用的全面解析 V 二十一、云原生爬虫架构设计 21.1 无服务器爬虫(AWS Lambda) # lambda_function.py import boto3 import requests from bs4 import BeautifulSoups3 = boto3.client(s3)def lambda_handler(event, context):# 抓取目标…

Web渗透之系统入侵与提权维权

渗透测试步骤 信息收集 搜集一些IP地址以及对应的端口开放情况,看看是否有80、3306、22等等端口开放,以及操作系统和版本号,同时也要扫描可能存在的漏洞 漏洞利用 建立据点 漏洞利用成功后,通常会在目标机上获得一个webshell&…

【数论分块】数论分块算法模板及真题

1.数论分块的含义 数论分块算法,就是枚举出使得取整函数发生变化的地方。 例如,对表达式 ⌊ n i ⌋ \lfloor \frac{n}{i} \rfloor ⌊in​⌋使用数论分块算法,就可以在 O ( n ) O(\sqrt n) O(n ​)的时间复杂度下枚举所有满足 ⌊ n i − 1 ⌋…

SpringBoot 常用注解通俗解释

SpringBoot 常用注解通俗解释 一、启动类相关 1. SpringBootApplication • 作用:这是SpringBoot项目的"总开关",放在主类上 • 通俗理解:相当于对电脑说:"开机!我要用SpringBoot了!…

栈应用:括号匹配

1&#xff1a;普通字符串括号匹配 #include <iostream> #include <stack> #include <string> using namespace std; bool mat(char,char); int if_match(string); int main(){string a;cin>>a;cout<<if_match(a)<<endl;return 0; } bool m…

某东h5st_5.1(补环境)

JS逆向实战——某东h5st_5.1&#xff08;补环境&#xff09; 声明网站流程分析结果展示总结 声明 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无…

新增Webhook通知功能,文档目录树展示性能优化,zyplayer-doc 2.5.1 发布啦!

zyplayer-doc是一款适合企业和个人使用的WIKI知识库管理工具&#xff0c;支持在线编辑富文本、Markdown、表格、Office文档、API接口、思维导图、Drawio以及任意的文本文件&#xff0c;支持基于知识库的AI问答&#xff0c;专为私有化部署而设计&#xff0c;最大程度上保证企业或…

macOS安全隐私最佳实践分析

1. 引言 随着数字世界的不断扩展&#xff0c;个人和组织面临的安全与隐私威胁也日益增加。作为专业的安全合规与隐私保护研究团队&#xff0c;Kaamel 对 macOS 系统的安全隐私现状进行了全面分析&#xff0c;并提出了一系列最佳实践建议&#xff0c;旨在帮助用户更好地保护自己…