网络协议二 : 使用Cisco Packet Traceer工具模拟网络环境,集线器,网桥,交换机,路由器,IP,同一网段

1. 安装 Cisco Packet Tracer

baidu 网盘地址,感谢大神分享

安装,破解,中文化,都有说明,建议使用7.x的那个版本,感觉比8.x的翻译要完整一点

https://pan.baidu.com/s/18iWBOfhJJRhqgQqdNQcfMQ?pwd=dcch#list/path=%2F&parentPath=%2Fsharelink787890006-233616719750824

2. 两个pc直连

2.1 打开 packet tracer 软件,弄两个pc上去,

2.2 然后使用 线 将 两台PC链接起来,链接的时候,会使用线,如果你不知道用什么线,可以使用自动连接线

2.3 配置IP

那么怎么验证这两个PC已经连接成功了呢?

我们第一个能想到的就是使用 ping 来完成,使用 ping 就需要知道pc的ip,双击pc 就能设定这台pc的IP了

2.4 使用ping 命令检查两个PC能否 ping 通

弄一个说明,记住IP(非必要)

执行 ping 另外一台pc的ip就可以了

2.5 另外一种方法测试是否两台PC联通

点击 simulation(模拟的意思),然后点击 add simple PDU(PDU 是数据包的意思),

simulation 模式下,发送 simple 的原理实际上就是 ping 

删除刚才添加的 simple PDU,

2.6 simulation 模式下添加 complex PDU,当我们点击的时候,就会让选择 那种 协议模式

2.7 simulation 模式下,所有的执行的东西都是一步一步的,我们再将刚才使用ip ping 那个步骤弄一下,会发现,只有点击 simulation 模式下的 一步一步的图标才能往下走

3. 两个PC 是如何知道 MAC 地址的呢?

这里先要重新理清一个概念。

两个PC 要访问,实际上是要知道IP 和 MAC 地址的,所谓的MAC 地址,实际上就是网卡的物理地址,那么刚开始的时候,我们只有这两台电脑的IP,并没有MAC地址,那么怎么知道这个MAC地址的呢?

为了弄清楚这个问题,我们需要将环境回复一下,然后在 simulation 环境下,一步一步的看这个MAC地址是怎么来的?

我们先将之前的两台IP改成 192.168.1.60 和 192.168.1.61

当我们将一个 simple PDU 从 PCsource 这台机器 发送给  PCdest 这台机器

这里为了方便看,给两台机器重新名字,一个叫做 PCsource,一个叫做 PCdest

当我们第一次 将一个 simple PDU 试图发送到 对方时候,会有两个协议使用到,

第一个是ICMP,这是 ping 使用的协议,

第二个是ARP协议,这个是请求知道对方 mac地址的,更加准确的说:ARP是广播,会给和自己相连的所有的设备发送广播,带的信息为 自己的IP,自己的MAC地址,目地IP,想要的信息为目地PC的MAC。ARP广播发送的目标为 同一网段的 所有电脑。

我们在第一个ICMP协议上双击,可以看到详细的说明

我们在第二个是ARP协议上双击,可以看到详细的说明

目的pc 的mac 地址,这块是FFFF FFFF FFFF ,并不是一个确定的MAC 地址,意思是广播,在实际中,是广播给所有和源PC 链接上的设备,询问的内容是:我在寻找IP 为 192.168.1.61的MAC 地址。

当设备1接受到后,会检查自己的IP,如果不是192.168.1.61,会扔掉这个广播。如果刚好自己的IP就是 192.168.1.61,则会将自己的MAC 地址返回

我们再次点击 simulation 的下一步,

就会看到还是通过 ARP返回了MAC地址

然后选择最后一个ARP可以看到

然后再一步一步 ping 

4. 多个电脑连接 --同轴电缆(已经淘汰),知道有这个方式就行,不用花时间。

淘汰的原因如下:

1.半双工通讯,所谓的半双工,意思就是 如果我们从PC1 给PC2发数据,则同时PC2不能给PC1发数据

2。容易冲突

3.不安全

4.容易瘫痪

5. 多个电脑连接 -- 集线器

可以理解为,只是转发数据的一个 机器,

比同轴电缆的 好处是 :当计算机 1 和 集线器中的线路出现问题的时候,其他的不受影响。

只能转发,意味着没有 ARP缓存,只是一个中转站

我们来看一个通过 集线器 链接三台电脑的例子:来看一下这个集线器是如何工作的。

还是从 pc0 发送数据给pc1

按下 simulation 的下一步,下一步,下一步:

当pc0先会发数据给集线器;
集线器就是个中转站,
把数据会发给PC1 和 PC2;
pc2收到后会丢弃数据;
pc1收到后会返回ARP包给集线器;
集线器收到后,会把数据包发送给PC0和 PC2;
pc2再次丢弃数据包
pc0会受到数据包,这时候ARP就结束了。

这时候PC0中已经有了PC1的mac地址和ip 了,那么再次发送ICMP的时候

PC0将数据发送给集线器,集线器还是会把数据发送给 PC1 和 PC2,这是因为 集线器就是个 中转站,并没有记忆功能,因此他还是会发送包给所有和它连接的设备。

同理,当PC1再次回传数据给 PC0的时候,会先将数据回传给 集线器,集线器会发送给PC0 和 PC2,PC2收到后会 丢弃该数据,PC0收到正确的包

集线器的问题:

智商太低。

无论是第一次连接时候发送的ARP,还是在已经知道对应MAC情况下,集线器都是会发送给所有连接上的设备,这会导致大量的占用带宽,是很不理想的状态。

6. 查看当前PC 的arp 的缓存

arp -a  查看当前设备的 缓存的arp 有哪些
 

7. 网桥 network bridge

为了解决集线器的缺点,就有了网桥。

网桥是在两个集线器 间假设的桥梁,因此有两个端口,一个叫做 L端口(左端口),一个叫做R 端口(右端口)。

网桥能 自 学习 每个接口那侧的MAC 地址。

能起到隔绝冲突域的作用

举例说明,如下图:计算机6 要发送数据给计算机2

那么第一次的时候,肯定是要发一个ARP, 集线器1在收到 ARP后,会发送给计算机7,计算机8,网桥0。

网桥0 中有一个 mac地址表,会记录计算机6的MAC地址。类似

L端,计算机6 mac 地址为 aabbccdd

然后网桥0 会把数据发送给集线器0,

集线器0会把数据发送给计算机1,计算机2,计算机3,当然计算机1和3都会放弃该数据包,计算机2会回送 数据给集线器0.

集线器0会将数据回传给 网桥0,这时候网桥0就会记录 计算机2的MAC地址

R端,计算机2的mac 地址为 eeff0011

然后把数据再次回传给 集线器1,集线器1发送数据给 计算机6,7,8,当然计算器7,计算机8会丢弃该数据。

这时候计算机6中就有了 计算机2的ip 和mac。

当下次 计算机6 发送 ICMP的时候,还是会发给 集线器1,集线器1发给 计算机7,8,网桥0.

网桥0这时候 会看 检查 mac 表,发现 计算机2的mac 地址在自己的mac 表的R端,因此会发送给集线器0.

这跟之前没有网桥时没有啥不一样。

但是如果我们的目的就是  从 计算机6 发送给 计算机7.

那么当计算机7的mac 地址回传给 集线器1的时候,集线器1 也会发送给 网桥0,因此网桥0的 mac 表会记录 L端 有计算机7的 mac 地址。

在当 计算机6 发送 ICMP 的时候,到发送数据到网桥0的时候,网桥0查询自己的 mac 地址表,会发现 计算机7 的mac 地址在L端,因此数据不会通过网桥0 发送给集线器0.因此实现了隔绝冲突域。

8 交换机

从上面的 集线器和 网桥的链接,我们发现还是有问题。

例如从 计算机6 发送数据给计算机 2,每次数据还是要 发送给 所有的设备。

因此就 有了 交换机。

交换机可以理解为 有很多接口的网桥,且能实现全双工 通讯。

交换机的每个接口 都会记录 和它相连的mac 地址, 这就意味着,在第一次 两个IP链接后,交换机的mac 表中就会记录 地址,当后面两个IP在连接的时候,就会很精准的找到路径,从而避免 集线器 和 网桥的一些弊端。

那么是否我们把全球的设备都使用交换机连接呢?

是不行的,首先,交换机 和 集线器,网桥一样,需要在 同一网段 ,首先的问题就是同一网段没有那么多的IP。

其次,在两个从来没有连接过个的IP 第一次连接的时候,都需要发送 ARP 广播。如果交换机能连接的设备有成千上万台,还是会有 网络带宽的 占用问题。

9.路由器

由于 交换机 只能对于同一网段 的网络进行访问,而我们又不能将全球的网络放在同一个网段。

因此就有了路由器这个方案。

路由器的功能是 可以将不同网段的 IP 链接在一起。

10. IP

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

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

相关文章

什么是技术作家风格指南?

技术写作风格指南旨在提供必要的格式风格,以帮助技术作家为读者创建引人入胜且一致的内容。然而,技术写作与普通的自由写作有很大不同。目的是将复杂的技术主题分解为易于理解的内容,以帮助读者了解如何使用产品或服务。 在本文中&#xff0…

salesforce 当 opportunity 的关联对象存在的话,如何将 currency 字段设置为不可修改

创建一个触发器: trigger OpportunityTrigger on Opportunity (before update) {for (Opportunity opp : Trigger.new) {if (opp.CurrencyIsoCode ! Trigger.oldMap.get(opp.Id).CurrencyIsoCode) {// 检查关联对象是否存在,假设关联对象是CustomObject…

Ubuntu系统如何快速访问github

ubuntu系统下,常常因为国内网络原因无法访问github官网或者也无法使用使用git clone指令,搭建梯子又过于复杂,可使用修改hosts文件,添加IP地址的方法改进。 修改Hosts文件: 1.打开DNS查询网站:DNS查询。 …

FreeModbus学习——eMBInit初始化

FreeModbus版本:1.6 在mb.c文件中 先看一下静态变量的定义 /* ----------------------- Static variables ---------------------------------*/static UCHAR ucMBAddress; static eMBMode eMBCurrentMode;ucMBAddress是从机地址,eMBCurrentMode是M…

【大数据】StarRocks的同步物化视图怎么用呢

同步物化视图认识 StarRocks 中的同步物化视图,是对于基表的数据变更自动同步更新到物化视图中,且无需手动调用刷新命令。目前仅能基于 Default Catalog 中的单个基表创建,是一种特殊的查询加速索引。同步物化视图的管理成本和更新成本都比较…

C++ 八股(2)

1.函数调用的参数是以什么顺序压栈的,为什么? 从右向左压栈的。因为C, C支持可变参函数。 可变参函数就是参数个数可变的函数,如printf()就是可变参函数 void func(int a,...){} 2.有一个函数 在main函数中通过:string s fun…

焦化超低排放解决方案

在环保政策日益严苛与可持续发展理念深入人心的当下,朗观视觉小编认为焦化行业作为传统重工业的重要组成部分,正经历着一场前所未有的绿色变革。其中,“焦化超低排放”不仅是对环境保护的积极响应,更是行业转型升级、实现高质量发…

【开发问题记录】启动某个微服务时无法连接到seata(seata启动或配置异常)

问题记录 一、问题描述1.1 问题复现1.1.1 将Linux中的部分微服务启动1.1.2 在本地启动当时出错的服务 1.2 解决思路1.2.1 Nacos中seata相关的信息1.2.2 Linux中seata相关的信息 二、问题解决2.1 seata的配置错误2.1.1 Nacos中seata的配置问题2.1.2 命名空间问题的发现 2.2 网络…

ChatGPT:ThreadPoolTaskExecutor 定义在 controller 类里面和定义在 controller 的方法里面有什么区别

ChatGPT:ThreadPoolTaskExecutor 定义在 controller 类里面和定义在 controller 的方法里面有什么区别 在 Spring Boot 应用中,ThreadPoolTaskExecutor 是一种用于管理线程池的执行器,通常用于异步任务的执行。将 ThreadPoolTaskExecutor 定义…

wpf基础

在 WPF (Windows Presentation Foundation) 中,Style 是一种强大的资源,允许你定义一组属性值,这些值可以被多个控件实例共享。使用 Style 可以减少重复的 XAML 代码,并且使得 UI 的一致性和可维护性得到提高。 以下是一些 Style…

SQL与NoSQL的区别

SQL(关系型数据库) 数据结构:基于表格的结构化数据模型,遵循关系代数原则。每个表有固定的模式,包含列和行,且列具有预定义的数据类型。数据关系:支持复杂的关系表达式和JOIN操作,实现多个表之间的关联和引…

IP地址专用SSL/https证书——10分钟签发

一般常用的SSL证书多为域名型SSL证书,即需要提供准确的域名。如果不能提供域名,只能提供IP地址,则需要一种特殊的SSL证书——IP地址证书。下面是IP地址证书的申请教程 IP地址专用SSL证书获取链接https://www.joyssl.com/certificate/select/…

智能闹钟能实现哪些功能

智能闹钟在结合了传统闹钟的定时提醒功能基础上,还集成了许多现代智能技术的特性,从而实现了多种功能。以下是一些智能闹钟常见的功能: 个性化闹钟设置:用户可以根据自己的需求设置多个闹钟,每个闹钟都可以设置不同的时…

vscode+git解决远程分支合并冲突

1)远程分支和远程分支不复杂情况合并 例如readme的冲突 可直接在github上解决 删到只剩下 #supergenius002 合并冲突测试1/合并测试冲突1合并测试冲突2/合并测试冲突2就行 《《《/》》》也要删掉 2)但如果是复杂的冲突,让我们回到vscod…

OpenCV库学习之cv2.normalize函数

OpenCV库学习之cv2.normalize函数 一、简介 cv2.normalize是OpenCV库中的一个函数,用于对图像进行归一化处理。归一化是一种线性变换,可以将图像像素值的范围缩放到指定的区间。这种操作在图像处理中非常有用,特别是在需要将图像数据用于某些…

SpringMVC源码解析(二):请求执行流程

SpringMVC源码系列文章 SpringMVC源码解析(一):web容器启动流程 SpringMVC源码解析(二):请求执行流程 目录 前言DispatcherServlet入口一、获取HandlerExcutionChain(包括Handler)1、获取Handler1.1、通过request获取查找路径1.2、通过查找路径获取Han…

overleaf,latex使用过程中记录

helvet 宏包提供了一个类似 Helvetica 的无衬线字体,可用于文档的标题和小标题等. Courier是一个等宽字体的粗衬线字体,主要是依据打字机所打印出来的字型来设计 \usepackage[hyphens]{url} 是 LaTeX 中用于处理 URL 排版的宏包 \urlstyle{rm} 设置url字体样式&a…

删除多余代码后遇到 NG04014 错误:路径匹配策略导致的调试问题

今天在移除无用代码时删了一些组件,再打开local环境下就打不开了。 一开始就以为是常见的引入报错,打开console发现 Error: NG04014: Invalid configuration of route {path: "drive/settings/", redirectTo: "trash"}: please prov…

c++修炼之路之STL_map,set

目录 一:序列式容器与键值对 二:set与multiset 三:map与multimap 接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧 一:序列式容器与键值对 1.在初阶阶段,我们已经接触过S…

【Linux】 Linux makefile 教程

什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成…