以太网协议(数据链路层)

一些基础知识: 

  • 平时使用的网线,也叫做"以太网线".
  • 平时使用的交换机,也叫做"以太网交换机".
  • 以太网这个协议,既涉及到数据链路层的内容,也涉及到物理层的内容.

1. 以太网帧的格式

①目的地址,源地址:

  • 此处的地址,叫做mac地址(物理地址).
  • 作用也是区分不同的主机.

问:那么既然已经有了IP地址,为什么还要有mac地址呢?

下面会解释到.

②类型0800:

  • 十六进制的0800,以太网数据帧的载荷就是完整的IP数据报.
  • 以太网数据帧的载荷可以有多种形式.不同的类型,载荷长度不同.

③IP数据报(46-1500):

  • 一个以太网数据帧,最大长度1500(受限于硬件的).
  • 数据链路层和硬件是密切相关的.对于以太网来说,对应的硬件设备,就只能支持这么大.
  • 换成其它的硬件,也就需要搭配其它的数据链路层协议,这里的最大值可能会不一样.把这个最大值成为MTU.

注意:

1)1500:

1KB多一点,非常小,一个稍微大一点的传输层/应用层数据,都会在数据链路层被切分成多个.

2)

IP数据报的分包和组包,这个过程就是为了MTU搞出来的.

IP数据报一般分包不是因为自身的长度达到64k,而是MTU.

这里可以形象的比喻为拉货的卡车,有的车装的多,有的装的少.

④类型0806/类型8035:

  • 辅助实现局域网转发的机制.

2. MAC地址

IP地址和mac地址,被各自独立的设计.

  • IP地址:负责网络层转发.(网络层负责的是整体的转发过程.)
  • mac地址:负责数据链路层转发.(数据链路层负责的是局部(相邻设备)转发过程.)

举个例子:

我从西安到白城.

规划路线(网络层)(路由选择):

1.西安->北京->长春->白城

2.西安->长春->白城

3.......

具体的转发过程(数据链路层):

以第一条路线为例:

1.西安->北京 坐飞机

2.北京->长春 坐高铁

3.长春 ->白城 坐大巴

①西安  ——> 北京  坐飞机

②北京 ——> 长春 坐高铁 

③长春 ——> 白城 坐大巴

  •  实际上,mac地址(6字节)和IP地址(4字节),是不同的.
  • 一个主机,既有IP也有mac.

  • mac地址,一般使用十六进制数字,两个十六进制数字,就是一个字节.(字节之间经常使用-或:来分割)
  • 这两个地址的内容虽然不同,但都能表示我的电脑的地址.
  • mac地址,6个字节,表示的范围,比IPv4放入地址,大得多.
  • 当前mac地址,都是网卡出厂的时候,就写死了.(可以保证每个设备的网卡都有独立的mac地址),因此,mac地址就成了互联网上一种身份标识的方式.

3.DNS(域名解析系统)

3.1 概念 

上网,要访问服务器,知道服务器的IP地址.

IP地址,是一串数字,虽然这个数字使用点分十进制已经清晰不少了,但仍然不方便人家记忆传播.

使用单词,来代替IP地址.

比如:

使用baidu,sogou这样的单词,来代替IP地址,这样的单词,就称为"域名".

实践中,为了保证域名的唯一性,域名往往是分级的.

这个域名是给人看的,机器不认识.

DNS,就可以把域名自动翻译成IP地址.

最早的域名解析系统,是一个文件.(hosts文件)

 

每个域名都会对应到一个IP地址.

3.1.1 问题

一旦新的网站出现了,或者旧的网站下线,这里就需要修改.

全世界有很多网站不停的新增和消亡,有这么多的主机带有hosts需要修改.

解决:

  • hosts文件仍然保留(内容一般是空着了)
  • 把这个内容拿到专门的服务器里.
  • 有人专门整个服务器,把hosts文件装进去,以这个服务器为准.
  • 新网站的注册,旧网站的注销,都需要去这边报备.
  • 这个服务器负责更新维护.
  • 我们在上网的时候,访问某个域名,都需要先访问到人家的服务器.
  • 把域名对应的IP获取到,就可以进一步的访问目标网站了.

 

那么问题来了,全世界,这么多的主机都在上网,此时DNS服务器能承担这么高的并发量嘛?

3.2 DNS服务器如何承担高并发量 

两个原则:开源,节流.

3.2.1 节流

每个电脑上,在进行域名解析的时候,都会有缓存.

比如说我访问百度,其实只有第一次真的访问DNS,后面9次都不一定.

3.2.2 开源

全世界会搭建出很多的"DNS镜像服务器"(一般是网络运营商或者一些大厂)

从最初的DNS(根域名服务器)这里同步数据.

此时访问镜像和访问人家的DNS服务器效果一样,此时就把请求的压力分摊开了.

3.2.3 缺陷

①既然我们的DNS镜像服务器是从根域名服务器这里同步数据的,那如果根域名服务器搞事情,是否会对我们产生影响?

一定会的!!!直接上不了网.

我们国内大力发展IPv6,也是为了摆脱DNS的限制.

IPv6也需要DNS,是一套新的DNS,和之前的不相干.

②从技术角度讲,DNS服务器会挂嘛?

当然会!!!

尤其是所在地区的NDS镜像服务器,一年至少挂一两次.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/473800.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

水果软件FL Studio 21 for mac 21.2.3.3586破解版的最新版本2024介绍安装

音乐是人类最美好的语言,它能够跨越国界、文化和语言,将人们紧密地联系在一起。在当今数字化时代,音乐创作已经不再是专业人士的专利,越来越多的音乐爱好者开始尝试自己动手制作音乐。而FL Studio21中文版编曲软件正是这样一个为你…

Linux:点命令source

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 source命令用于读取一个文件的内容并在当前Shell环境(包括交互式Shell或是非交互式Shell)执行里面的命令。它被称为点命令是因为命令名source也可…

【Web应用技术基础】HTML(4)——表单类的标签

目录 题目1:文本框 题目2:密码框 题目3:单选框 题目4:多选框 题目5:单选框选中 题目6:禁用disabled 题目7:lable标签 题目8:下拉框 题目9:textarea 题目10&…

【STM32】读写BKP备份寄存器RTC实时时钟

目录 BKP BKP简介 BKP基本结构 BKP测试代码 RTC RTC简介 RTC框图 RTC基本结构 硬件电路 RTC操作注意事项 接线图 初始化 使用BKP解决只初始化一次时间 初始化参考代码 RTC设置时间 RTC读取时间 完整代码 MyRTC.c MyRTC.h main.c BKP BKP简介 BKP&#xff0…

05.自定义指令,插槽和路由配置

一、学习目标 1.自定义指令 基本语法(全局、局部注册)指令的值v-loading的指令封装 2.插槽 默认插槽具名插槽作用域插槽 3.综合案例:商品列表 MyTag组件封装MyTable组件封装 4.路由入门 单页应用程序路由VueRouter的基本使用 一、自…

基于 HBase Phoenix 构建实时数仓(5)—— 用 Kafka Connect 做实时数据同步

目录 一、总体架构 二、安装配置 MySQL 1. 创建 mysql 用户 2. 建立 MySQL 使用的目录 3. 解压安装包 4. 配置环境变量 5. 创建 MySQL 配置文件 6. MySQL 系统初始化 7. 启动 mysql 服务器 8. 创建 dba 用户 三、配置 MySQL 主从复制 四、安装部署 Kafka Connector…

【机器学习】k近邻(k-nearest neighbor )算法

文章目录 0. 前言1. 算法原理1.1 距离度量1.2 参数k的选择 2. 优缺点及适用场景3. 改进和扩展4. 案例5. 总结 0. 前言 k近邻(k-nearest neighbors,KNN)算法是一种基本的监督学习算法,用于分类和回归问题。k值的选择、距离度量及分…

(2024,YOSO,自协同学习,扩散 GAN,单步生成)您只需采样一次:通过自协同扩散 GAN 驯服一步文本到图像合成

You Only Sample Once: Taming One-Step Text-To-Image Synthesis by Self-Cooperative Diffusion GANs 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 2. 相关工作 3. 背景…

Vue3 中应该使用 Ref 还是 Reactive?

一、引言 在Vue 3中,构建响应式数据结构是构建用户界面和交互体验的核心部分。而在创建这些响应式数据时,我们有两个主要工具:reactive和ref。选择使用哪一个,实际上取决于你的数据结构和访问需求。 reactive主要用于处理复杂的数…

麒麟 V10 一键安装 Oracle 19C 19.22 单机版

Oracle 一键安装脚本,演示 麒麟 V10 一键安装 Oracle 19C 19.22 单机版过程(全程无需人工干预):(脚本包括 ORALCE PSU/OJVM 等补丁自动安装) ⭐️ 脚本下载地址:Shell脚本安装Oracle数据库 脚…

使用paho.mqtt.client实现MQTT Client连接EMQX Broker

目录 概述 1 认识paho.mqtt.client 2 实现MQTT Client 2.1 功能介绍 2.2 paho.mqtt.client库函数介绍 2.3 MQTT Client实现 2.3.1 创建项目 2.3.2 编写MQTT Client代码 2.3.3 Log工具源码 2.4 功能测试代码实现 2.4.1 功能介绍 2.4.2 代码实现 3 测试 3.1 EMQX上创…

学点儿Java_Day6_面向对象:类、封装、构造方法

1 类 1.1 定义 类:对现实世界中事物的抽象。Student 对象:现实世界中具体的个体。张三、李四 这些具体的学生 面向对象的特征:抽象、封装、继承、多态 OOP: Object Oriented Programming 类和对象的总结: 1、现实世界都是由很多…

语音识别教程:Whisper

语音识别教程:Whisper 一、前言 最近看国外教学视频的需求,有些不是很适应,找了找AI字幕效果也不是很好,遂打算基于Whisper和GPT做一个AI字幕给自己。 二、具体步骤 1、安装FFmpeg Windows: 进入 https://github.com/BtbN/FF…

python爬虫学习第二天----类型转换

🎈🎈作者主页: 喔的嘛呀🎈🎈 🎈🎈所属专栏:python爬虫学习🎈🎈 ✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天…

C语言 指针练习

一、 a、b是两个浮点型变量&#xff0c;给a、b赋值&#xff0c;建立两个指针分别指向a的地址和b的地址&#xff0c;输出两个指针的值。 #include<stdio.h> int main() {float a,b,*p1,*p2;a10.2;b2.3;p1&a;p2&b;printf("a%f,b%f\n",a,b);printf("…

墨菲安全在软件供应链安全领域阶段性总结及思考

向外看&#xff1a;墨菲安全在软件供应链安全领域的一些洞察、思考、行动 洞察 现状&挑战&#xff1a; 过去开发安全体系是无法解决软件供应链安全问题的&#xff1b;一些过去专注开发安全领域的厂商正在错误的引导行业用开发安全思维解决软件供应链安全问题&#xff0c;治…

ResNet目标检测算法实现交通灯分类

红绿灯识别方案&#xff1a;https://zhuanlan.zhihu.com/p/674791906 目录 一、制作数据集二、ResNet算法三、pytorch转onnx文件四、onnx推理测试五、onnx转mnn 一、制作数据集 1、数据集划分 将红绿灯数据集大文件夹中不同类别的小文件夹中的图片按照9&#xff1a;1进行划分…

【Flutter】文件选择器(file_picker)的用法

Flutter 没有提供内置的文件选择器&#xff0c;但社区内有人贡献了一个比较完整的解决方案——file_picker。 file_picker 的 API 简洁易用&#xff0c;支持全平台&#xff08;Android / iOS / Mac / Linux / Windows&#xff09;&#xff0c;是我开发桌面应用时的首选。 这边…

MySql实战--一条SQL查询语句是如何执行的?

平时我们使用数据库&#xff0c;看到的通常都是一个整体。比如&#xff0c;你有个最简单的表&#xff0c;表里只有一个ID字段&#xff0c;在执行下面这个查询语句时&#xff1a; select * from T where ID10&#xff1b; 我们看到的只是输入一条语句&#xff0c;返回一个结果…

Chain of Note-CoN增强检索增强型语言模型的鲁棒性

Enhancing Robustness in Retrieval-Augmented Language Models 检索增强型语言模型&#xff08;RALMs&#xff09;在大型语言模型的能力上取得了重大进步&#xff0c;特别是在利用外部知识源减少事实性幻觉方面。然而&#xff0c;检索到的信息的可靠性并不总是有保证的。检索…