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

网络协议二 : 使用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

相关文章:

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

1. 安装 Cisco Packet Tracer baidu 网盘地址,感谢大神分享 安装,破解,中文化,都有说明,建议使用7.x的那个版本,感觉比8.x的翻译要完整一点 https://pan.baidu.com/s/18iWBOfhJJRhqgQqdNQcfMQ?pwddcch#…...

Aria2 任意文件写入漏洞

目录 Aria2介绍漏洞描述漏洞复现 Aria2介绍 Aria2是一个在命令行下运行,多协议,多来源下载工具(HTTP / HTTPS,FTP,BitTorrent,Metalink),内建XML-RPC用户界面。Aria提供RPC服务器&a…...

成为git砖家(4): git status 命令简介

1. untracked 和 tracked 状态 Remember that each file in your working directory can be in one of two states: tracked or untracked. Tracked files are files that were in the last snapshot, as well as any newly staged files; they can be unmodified, modified, o…...

2-48 基于matlab的EM算法聚类可视化程序

基于matlab的EM算法聚类可视化程序,通过期望最大化算法(EM)优化类别间距,使得类别间距最大、类内间距最小。输出聚类前后结果及收敛曲线。程序已调通,可直接运行。 2-48 期望最大化算法(EM) 聚类…...

k8s 使用技巧

文章目录 kubectlkubectl 自动补全kubectl 上下文和配置打印当前使用 API 调用过程生成yaml模板强制删除 Pod&#xff08;即使处于Terminating&#xff09; kubectl kubectl 自动补全 source < (kubectl completion bash) # setup autocomplete in bash, bash-completion …...

学习笔记-系统框图传递函数公式推导

目录 *待了解 现代控制理论和自动控制理论区别 自动控制系统的组成 信号流图 1、系统框图 1.1、信号线、分支点、相加点 1.2、系统各环节间的连接 1.3、 相加点和分支点的等效移动&#xff08;比较点、引出点&#xff09; 2、反馈连接公式推导 2.1、前向通路传递函数…...

C++ - 基于多设计模式下的同步异步⽇志系统

1.项目介绍 项⽬介绍 本项⽬主要实现⼀个⽇志系统&#xff0c; 其主要⽀持以下功能: • ⽀持多级别⽇志消息 • ⽀持同步⽇志和异步⽇志 • ⽀持可靠写⼊⽇志到控制台、⽂件以及滚动⽂件中 • ⽀持多线程程序并发写⽇志 • ⽀持扩展不同的⽇志落地⽬标地 2.开发环境 • Cent…...

git 相关内容

...

ElasticSearch(es)倒排索引

目录 一、ElasticSearch 二、倒排索引 1. 正向索引 2. 倒排索引 具体细节 1. 文档分析 2. 索引构建 3. 索引存储 4. 词条编码 5. 索引优化 6. 查询处理 示例 总结 3. 正向和倒排 三、总结 倒排索引的基本概念 为什么倒排索引快 一、ElasticSearch Elasticsear…...

【自然语言处理】概论(一):自然语言处理概要

1.1 概论&#xff1a;&#xff08;一&#xff09;自然语言处理概要 知识点 自然语言的定义&#xff1a;人类交流使用的&#xff0c;包括口语和书面语的信息交流方式。AI的终极目标&#xff1a;使计算机具备理解&#xff08;听、读&#xff09;和生成&#xff08;说、写&#…...

flask 开始

# 导入flask类 from flask import Flask,request,render_template # 使用flask类来创建一个app对象 # __name__ 代表当前app.py 这个模块 app Flask(__name__) # 创建一个路由和视图函数的映射 url http://127.0.0.1:5000/ app.route("/") def hello_word():return …...

仕考网:公务员可以报考军队文职吗?

公务员可以报考军队文职考试&#xff0c;但是需要满足前提条件。 对于已经与国家、地方的用人单位建立劳动关系的社会人才&#xff0c;在获得当前用人单位的许可后才可以申请报考。 在面试过程中&#xff0c;考生必须出示一份由其用人单位出具的且加盖公章的同意报考证明。一…...

Java整理22

1、动态sql 多条件查询 .xml配置文件中sql语句书写<select id"getEmpByCondition",resultType"Emp">select * from t_emp where <if test"empName ! null and empName! ">empName#{empName}</if><if test"age ! nul…...

leetcode 408周赛 3234. 统计 1 显著的字符串的数量

3234. 统计 1 显著的字符串的数量 题目描述 给你一个二进制字符串 s。 请你统计并返回其中 1 显著 的子字符串的数量。 如果字符串中 1 的数量 大于或等于 0 的数量的 平方&#xff0c;则认为该字符串是一个 1 显著 的字符串 。 思路 一个很显然的思路是&#xff0c;我们…...

容器对比虚拟机有哪些不足?

引言 在当今的云计算和微服务架构中&#xff0c;容器技术已成为不可或缺的一部分。它以其轻量级、高效和快速部署的特性&#xff0c;赢得了广大开发者和运维人员的青睐。然而&#xff0c;正如任何技术都有其两面性&#xff0c;容器技术也不例外。本文将对容器技术在安全性、隔离…...

C# 归并排序

栏目总目录 概念 归并排序是一种分而治之的排序算法。它将一个大数组分成两个小数组&#xff0c;递归地对这两个小数组进行排序&#xff0c;然后将排序好的小数组合并成一个有序的大数组。这个过程一直递归进行&#xff0c;直到数组被拆分成只有一个元素的数组&#xff08;自然…...

【请求代理】springboot单机服务基于过滤器Filter实现第三方服务器接口请求代理功能

springboot单机服务基于过滤器Filter实现第三方服务器接口请求代理功能 一、前言二、解决思路三、基于gateway实现四、基于过滤器Filter实现五、问题总结 **注&#xff1a;本文源码获取或者更多资料&#xff0c;关注公众号&#xff1a;技术闲人**一、前言 在项目开发时会遇到w…...

.NET Core异步编程与多线程解析:提升性能与响应能力的关键技术

在.NET Core中&#xff0c;异步编程和多线程是构建高性能应用程序的核心技能。理解这两个概念不仅可以提升应用程序的响应能力&#xff0c;还能优化资源使用。本文将深入剖析异步编程和多线程的关键知识点&#xff0c;提供代码示例&#xff0c;并附上步骤以帮助理解。 1. 异步…...

Photoshop(PS) 抠图简单教程

目录 快速选择 魔棒 钢笔 橡皮擦 蒙版 通道 小结 可以发现&#xff0c;ps逐渐成为必备基础的办公软件。本文让ps新手轻松学会抠图。 快速选择 在抠图之前&#xff0c;先了解下选区的概念。ps中大多数的抠图操作都是基于选区的&#xff0c;先选区再Ctrl J提取选区。而快…...

项目管理中的常用工件(二):可视化工件

项目管理中的常用工件&#xff08;二&#xff09;&#xff1a;可视化工件 亲和图&#xff08;affinity diagram&#xff09;因果图&#xff08;cause-and-effect diagram&#xff09;直方图&#xff08;histogram&#xff09;流程图&#xff08;flowchart&#xff09;散点图&am…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块&#xff0c;用于对本地知识库系统中的知识库进行增删改查&#xff08;CRUD&#xff09;操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 &#x1f4d8; 一、整体功能概述 该模块…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...