分享好友 最新动态首页 最新动态分类 切换频道
从0开始建立一个互联网(物理层-数据链路层-网络层)
2024-12-26 03:11
  • 交换机的如何记录mac地址的呢
  • 其实交换机中维系了一张表
  • 一个mac地址对应一个端口
  • 如果机器1想要跟机器3通讯

    从0开始建立一个互联网(物理层-数据链路层-网络层)

  • 他就会将数据发送到交换机

  • 交换机会到自己维系的这张地址端口去看,发现mac3对应的是三号口

  • 他就会将一号口发过来的消息从三号口发出去

  • 3最终就收到这个消息了

  • 优化

  • 交换机这种工作方式下,我不再需要将这个数据进行广播。

  • 第二点,交换机的一个特点是它是全双工的

  • 全双工

  • 上面提到的集线器大多是双绞线

  • 双绞线在工作的时候只能有一台设备进行数据发送的。

  • 交换机这里使用的就是我们现在的网线了

  • 网线里面是有八根线的,正常情况下至少有四根线在工作。

  • 这种方式下,可以实现数据的全双工

  • 在一号发送的时候,同时也可以进行数据的接受,链路上的数据也不会产生冲突。

那么交换机上面的表是怎么建立起来的呢
  • 我们拿到交换机的时候,可以连接一些设备

  • 一开始的时候,交换机里面是没有这张表的,或者是一张空表。

  • 那他是怎么建立起映射关系的呢

  • 比如我们首先A要向B发送数据

  • A发送数据上来以后,发现这张表中没有任何数据

  • 同时A发送上来以后,他确定一个消息,这个A的地址对应的是一号口

  • 所以他将macA对应一号口这件事情记录到这张表里面。

  • 现在他的目的地址是B,他去找B的时候发现找不到

  • 找不到的时候,就往每个端口分别进行发送

  • 其中四号端口是B,B做出了回应

  • 这个时候就会将macB记录到这个表中,他对应的是四号口

  • 经过一点时间的记录以后,交换机最终就维护起了一个所有mac地址和端口的映射关系

  • 交换机所在的这一层是数据链路层

  • 数据链路层的数据分数据头,数据部分

  • 数据头中记录了原地址、目的地址,这里的地址指的mac地址

优点
  1. 这个方式是对集线器巨大的改进,可以看到我们日常生活中其实集线器已经很少见了,因为大多数时候我们都使用交换机,交换机的效率更高
  2. 交换机还有一个特点,就是可以进行桥接
  • 比如我们有两个交换机,我们就可以通过他们上面的两个端口进行桥接
  • 桥接之后会产生一个现象
  • 假如我们这台设备上有A、B两个设备,另一台有C、D两个设备。
  • 经过一段时间,交换机1中就维系了一个表
  • A对应1号口,B对应4号口
  • A向C发送消息的时候,他其实没有找到,那他就会全部广播发送
  • 广播到最后一个口的时候,就会到第二个交换机
  • 交换机2里面其实已经记录了,C对应4号口,D对应3号口
  • 他就找到了C,最终发到了交换机2的4号口。
  • 发送完之后,交换机2会记录,A对应1号口,当然之后B也往这边发送数据的时候,他会记录B对应1号
  • 交换机1同样会记录
  • 我们的家庭交换机一般情况下,表的大小是在几千左右
  • 注意:这里的mac和端口映射的表不是我们通常所说的路由表,因为他还没有到路由那一层,他只是交换机
缺点

那我们看一下,当前设计方式下,还有什么弊端。

  • 几千的存储量是比较小的,如果我们想要在全球范围内建立目前的计算机互联网络,几千个端口肯定是不够的,那可能需要几十亿个,如果没有对应的路由信息的话,他就会一直广播,就会导致全球范围内的消息洪泛
  • 目前,使用交换机和mac地址结合的这种方式,可以在一个比较小的局域网内达到一个高效的传输,比如说几千个设备组成的局域网,这个网络可能是整个校园网,或者一个工作室或者一个家庭中的网络。
补充
  • 网络内部使用交换机,他的效率还是很高的。
  • 上面讲的集线器这种其实是在物理层,下面讲的交换机mac地址的这种方式是在数据链路层
  • 比较有意思的是,mac地址位于数据链路层,却叫物理地址。
  • 物理层是比较早期的一种设计方式,通过电信号,后来我们其实比较关注数据层面,所以就放到了数据链路层
  • 每一台设备需要有一个标识,这个标识从概念上来讲确实是一个物理地址。

路由器

演变
  • 上面交换机的方式,他最大的一个优势是在网络内部可以进行高效的传输。
  • 当网络扩大以后,比如多个网络合成一个大的网络
  • 这个大网络下,可能交换机中的表可能记录不过来,我需要不停地广播,广播的效率又比较低。
  • 所以在跨网络的时候,我们提出了一种新的方案,我们定义一个新的设备,通过新的设备连接不同的网络,新的设备我们叫他路由器。有时候也会叫做网关。因为他是在跨两个网络之间的一个连接点。
  • 有了路由器之后,我们不同网络之间的设备
  • 比如设备1和设备2进行通信的时候
  • 他就是通过路由器进行转发,如果是设备1 和设备3进行通讯,就不需要经过路由器,直接在网络内部进行转发就可以了。
  • 网络内部通过这个交换机通讯,他的效率是很高的。所以1和3 的通信直接走交换机。1和2 之间的通讯才会走路由器。
ip
  • Ip地址的出现
  • 网络其实是一个比较抽象的概念,并没有说,我划定北京朝阳区是一个网络,我划定北京市海淀区是另一个网络
  • 我们需要标识这个网络,以及网络中的每个设备,就需要提供另一个标识,这个表示就是ip地址
  • IP地址有两个作用
  • 一个是用来标识网络
  • 一个是用来标识设备的
  • 上面是用mac地址标识设备,这里又提出了ip地址
  • ip地址主要是用来标识设备在哪个网络下,是为了在抽象网络中做出的一个关联。
  • 所以每台地址又有了一个ip地址。
  • mac地址:设备唯一性,设备一般不会变
  • Ip地址:设备所在网络位置的唯一性,网络位置是会变的,比如搬家换网络了。
  • 比如
  • 我家庭的网络是:192.168.0.0/24(这个网络号也是一种类似于IP的形式,他就用来标识我整个网络2
  • 我的设备:我的设备是192.168.0.102(这个ip地址就用来标识我当前的设备
我ping一下192.168.1.254,发现是可以ping通的。
  • 1.254是隔壁老王的ip,我们共用了光猫。
  • 能ping通的原因
  • 当前的这个网络中,每一台设备都有自己维护的路由表的,路由器也是有路由表的
  • 我的ip是0.102,我自己的路由表自己会记录192.168.0.1
  • 0.1是在什么地方呢?0.1在路由器上。他就会把数据包发到路由器上
  • 这个路由器自己也有一张路由表,因为路由器自己也是也linux系统
  • 他这个路由表中记录了192.168.1.0这个网络的端口,进过这个端口转发到网络1
  • 然后1.254和网络1是在同一端口中,所以很容易找到了1.254
  • 可以看出路由器工作的主要原理

  • 它既有网络1的ip,又有网络2的ip

  • 这里还有两个问题

  • 1.路由表是如何建立的

  • 路由表其实是比上面交换机中的这个地址端口映射表要复杂很多

  • 他用到了很多路由的算法,这里就不展开讲了

  • 路由器经过一系列的算法会自动建立出一个完善的路由表

  • 2.从路由器转发到网络1后,是怎么到达1.254的?就是网络内的传输是怎么进行的

  • 如果你认为ip地址能直接找到,那是不是不需要mac地址了

  • 有了ip地址,还需要mac地址吗

  • 我们先回到引入路由器的初衷,是为了跨网络的时候进行数据的转发,这个ip其实是一个抽象的ip,ip是不能直接用作通讯的,我们只能使用mac地址进行直接通讯。

  • 因为mac地址是一个真实的地址。

  • 所以路由器端口到1.254的过程是这样的

  • 首先,他会去查1.254的mac地址,根据一个ip地址去查mac地址,这里其实有个协议叫ARP协议

  • ARP协议其实是去网络中广播谁的ip是1.254,1.254收到以后就会回复mac地址

  • 然后就可以在mac层进行传输了。

Mac层又叫数据链路层,路由器这一层又叫网络层,实际上网络传输全都是走的mac地址

  • 这个ip层数据包可以对照mac层看一下
  • 我们可以把刚才mac的包拿过来
  • Mac的数据头有一个源地址,一个目的地址,这里的地址指的是mac地址
  • Mac的数据部分就是一整个ip的包
  • Ip的包也分头和数据部分
  • ip的头部分包的就是ip的源地址、目的地址
  • 最终里面才是ip的数据
  • 当然越往上还有tcp、http层的头,一层一层往上包,最后才是我们传输的那个数据部分。
  • 我们看整个网络传输的过程 0.102 -> 1.254
  • 第一步,0.102 -> 0.1,是先用ARP协议查0.1的mac地址,我的目的地ip是0.102,目的mac地址是1.254的mac地址,这样包可以传到0.1
  • 第二步,0.1传到网络1在路由器中记录的端口ip(假设是1.52)虽然是本机,但是也是网卡之间的传输,目的地mac地址变成1.52的mac地址
  • 第三部,1.52 -> 1.254,mac目的地址就变成了1.254的mac地址,最终将数据发送过来

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

《设计思想解读开源框架》

第一章、 热修复设计

  • 第一节、 AOT/JIT & dexopt 与 dex2oat

  • 第二节、 热修复设计之 CLASS_ISPREVERIFIED 问题

  • 第三节、热修复设计之热修复原理

  • 第四节、Tinker 的集成与使用(自动补丁包生成

    第二章、 插件化框架设计

  • 第一节、 Class 文件与 Dex 文件的结构解读

  • 第二节、 Android 资源加载机制详解

  • 第三节、 四大组件调用原理

  • 第四节、 so 文件加载机制

  • 第五节、 Android 系统服务实现原理

    第三章、 组件化框架设计

  • 第一节、阿里巴巴开源路由框——ARouter 原理分析

  • 第二节、APT 编译时期自动生成代码&动态类加载

  • 第三节、 Java SPI 机制

  • 第四节、 AOP&IOC

  • 第五节、 手写组件化架构

    第四章、图片加载框架

  • 第一节、图片加载框架选型

  • 第二节、Glide 原理分析

  • 第三节、手写图片加载框架实战

    第五章、网络访问框架设计

  • 第一节、网络通信必备基础

  • 第二节、OkHttp 源码解读

  • 第三节、Retrofit 源码解析

    第六章、 RXJava 响应式编程框架设计

  • 第一节、链式调用

  • 第二节、 扩展的观察者模式

  • 第三节、事件变换设计

  • 第四节、Scheduler 线程控制

    第七章、 IOC 架构设计

  • 第一节、 依赖注入与控制反转

  • 第二节、ButterKnife 原理上篇、中篇、下篇

  • 第三节、Dagger 架构设计核心解密

    第八章、 Android 架构组件 Jetpack

  • 第一节、 LiveData 原理

  • 第二节、 Navigation 如何解决 tabLayout 问题

  • 第三节、 ViewModel 如何感知 View 生命周期及内核原理

  • 第四节、 Room 架构方式方法

  • 第五节、 dataBinding 为什么能够支持 MVVM

  • 第六节、 WorkManager 内核揭秘

  • 第七节、 Lifecycles 生命周期

  • 第七节、 Lifecycles 生命周期

    [外链图片转存中…(img-qHci9a85-1712889647586)]
    本文包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
    [外链图片转存中…(img-E2Ne42It-1712889647586)]

最新文章
facebook 美国号(facebook用国内号码还是国外号码).
Facebook在美国拥有庞大的用户群体,成为人们日常生活中bukehuoque的一部分。美国号是Facebook上的一个重要功能,通过该功能用户可以关注美国各领域的资讯和动态。美国号不仅为用户提供了获取信息的途径,也为用户提供了分享观点和交流的平
2024新出手游推荐有哪些 最新的必玩游戏排行榜
时代的不断更迭也让在这里面的许多产物日益发生着变化,在我们的游戏界同样也经历着大大小小的变化。玩家们可以看到这篇2024新出手游推荐的相关内容,所谓选新不选旧,这也正对应着我们年轻人作为新时代的人选注定要走向美好的未来,那么新
2024新奥马新免费资料|智能解答解释落实
  随着信息时代的到来,获取高质量的资料和智能的解答已成为学习、工作和生活中不可或缺的一部分。本文将介绍一个名为2024新奥马的免费资料平台,它不仅提供了丰富的学习资源,还配套了智能解答系统,以确保用户能够获得准确、及时的解释
AI帮我写作文:个性化创作,开启写作新篇章
### AI帮我写作文:个性化创作,开启写作新篇章在21世纪的数字浪潮中,人工智能(AI)正以前所未有的速度渗透到我们生活的每一个角落,而文学创作领域也不例外从最初的简单文本生成到如今的深度个性化创作,AI技术不仅改变了写作的方式,更
2024年热门精选流行的单机汽车驾驶游戏排行榜及免费逼真模拟驾驶游戏大全
本文导读:热门精选流行的单机汽车驾驶游戏排行榜免费逼真模拟驾驶游戏大全1、《城市汽车驾驶模拟器》特点:玩家可以在城市中任何场景地图驾驶车辆穿梭,对自己的赛车进行改装以提升性能。平台:手机2、《欧洲卡车模拟2》特点:注重真实性
ai怎么设计名片? ai设计个人名片的教程
ai中想要设计个人名片,该怎么设计名片呢?下面我们就来看看详细的教程。1、打开AI,新建画板,做名片,使用信纸的尺寸就行2、选择矩形工具画名片的形状3、常规名片为90mm50mm,在顶部变换按钮中可以直接填数据4、复制一个矩形,待会做背面
2024跨境电商热销品类排行(跨境爆款产品推荐)
下面就一起来看看在2024年即将成为热搜爆款的商品有哪些。30. 宠物喷雾(Pet Spray)截至2023 年 12 月 21 日的全球搜索量: 1,600宠物喷雾是 2024 年网上销售最热门的产品之一。ArmHammer 宠物狗除臭喷雾剂在亚马逊的售价为 3.79 美元。在
2022年山东师范大学硕士研究生复试录取工作办法
菏泽研究生考试频道特意推送各2022年山东师范大学硕士研究生复试录取工作办法。收藏关注菏泽研究生考试网(hzky365)网站公众号,及时获取考研资讯。为深入贯彻党的十九大和历次全会精神,全面落实党的教育方针,根据教育部《2022年全国硕士
Adwords是否影响Google排名,安全下结论吗?
在搜索引擎营销的广阔天地里,Adwords与Google SEO如同并肩作战的双子星,共同为网站引流、提升排名而努力。作为一名在数字营销领域摸爬滚打多年的从业者,我深知Adwords对于Google排名的影响是一个复杂且多面的议题。今天,就让我们一起深
相关文章
推荐文章
发表评论
0评