实验软件为HC3,环境为windows11
文章用于保存实验报告,可参考。
实验目的:
1 了解交换机的作用和特点,并掌握交换机的基本配置方法。
2 掌握HCL模拟软件的使用,掌握使用Telnet访问设备。
3 理解MAC地址转发表的工作过程。
1.常用设备命令使用
(1)版本信息:
Display version:

(2).当前配置:

(3).接口信息

(4).接口IP信息

(5).显示系统运行统计信息

(6).显示系统时钟:

启动所有设备后,将交换机S5820V2的系统时钟配置为2010年10月10日10点10分10秒(Tip:配置遇到问题,可通过HCL右上角的命令行查询工具
协助解决),设置全过程命令及结果截图。

2.HCL模拟交换机应用:
(1)将拓扑图设置成隐藏设备名,显示接口名,隐藏网格,截图。(按鼠标上面的左边的按钮)

(2)使用ping命令ping这些设备



(3)display mac-address命令的结果按顺序分别截图。简要说明该MAC地址转发表的生产过程。




刚开始由于没有数据的转发,MAC地址转发表是空的。之后当PC_1ping了PC_2之后,数据帧从端口进入交换机,交换机检查数据之后发现数据帧中的源MAC地址字段,并且将这个字段放入MAC地址表中,并且将它对应于传入的端口。
同理当PC_3想要发送数据被交换机接受到之后,也会将源MAC地址字段存入MAC地址表中,最后收到完整的MAC地址表以及对应的端口信息。
3.通过Telnet方式访问交换机
(1)交换机telnet的一般配置命令有哪些?登录到telnet模式后,将设备名改为 “telnet_xxx” (xxx为姓名全拼),设备名修改成功后截图。

(2)cmd窗口下的telnet窗口下,修改设备的系统时间(符合规范的任意时间)。然后在HCL的设备命令窗口下显示系统时钟。(两个窗口下的配置信息分别截图,截图需包含窗口上方的名称,比如:Telnet 192.168.1.254或S5820V2-54QS**)


4.机柜操作:
(1).
1.想要连接设备,需要先进行配置。4、5、6步骤主要是设置交换机与另外两个设备(这里设置成为了PC)。这两个设备需要分别改名并且配置端口,设置对应的IP地址以便交换机可以找到并且连接这两台设备。
2.不需要重新配置。因为交换机的交换表会即时使用新的地址,接口信息会覆盖之前存在交换表中的信息。
(2).ping命令:


(2)display mac-address



这里的交换机MAC地址表的产生过程与上面的4个PC MAC地址表的产生过程很类似。MSR_1S设备想发送数据帧给MSA_2S设备,数据帧经过端口进入交换机S5120S_2,交换机通过检查数据帧中的源MAC地址字段,将MSR_1S的MAC地址放入MAC地址表中,并且对应了传入端口。同时,交换机收到MSR_2S设备的数据之后也会将他们的MAC地址字段学习到,并且放到MAC地址表中。
5.思考题
(1).访问网络设备命令窗口的方法有哪些?
1.通过Console口本地访问 2.使用SSH终端访问
3.使用Telnet终端访问 4.通过AUX口远程访问
5.通过异步串口访问
(2)简单说明下telnet和SSH登录的主要区别。
1,两者的传输方式不同。telnet是明码传输,ssh是加密传输。telnet通过TCP/IP协议来访问远程计算机来控制你的设备,其传输的数据和口令是明文形式的。SSH是替代Telnet和其他远程控制台管理应用程序的行业标准。SSH命令是加密的并以几种方式进行保密。
2. 端口区别:telnet是23 ssh是22。
3. 功能不同:SSH功能比telnet齐全,它既可以代替telnet进行远程管理终端,又可以为ftp、pop、基础PPP提供一个安全的通道。
4、防火墙信任度不同:默认情况下防火墙是不信任telnet的,因为它不安全。
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
我想将我的MacSnowLeopardruby从1.8.7升级到1.9.1版本,有人知道轻松且最好的升级方法吗?因为我读了一些论坛/帖子/博客/讨论说覆盖苹果发布的ruby不好将Rails从版本2.2.2升级到2.3.8的最佳方法是什么?因为我找到的所有信息都仅适用于豹/老虎,而且很少有关于雪豹的复杂文章。他们还说覆盖apple提供的rails不好吗。谁能帮帮我?谢谢。 最佳答案 DanBenjamin有一些greatinstructionsforcompilingandinstallingRuby,RubyGemsandRai
我最近决定从我的系统中卸载RVM。在thispage提出的一些论点说服我:实际上,我的决定是,我根本不想担心Ruby的多个版本。我只想使用1.9.2-p290版本而不用担心其他任何事情。但是,当我在我的Mac上运行ruby--version时,它告诉我我的版本是1.8.7。我四处寻找如何简单地从我的Mac上卸载这个Ruby,但奇怪的是我没有找到任何东西。似乎唯一想卸载Ruby的人运行linux,而使用Mac的每个人都推荐RVM。如何从我的Mac上卸载Ruby1.8.7?我想升级到1.9.2-p290版本,并且我希望我的系统上只有一个版本。 最佳答案
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in
给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at