【计算机网络】数据链路层实验

一:实验目的

1:学习WireShark软件的抓包操作,分析捕获的以太网的MAC帧结构。

2:学习网络中交换机互相连接、交换机连接计算机的拓扑结构,理解虚拟局域网(WLAN)的通信机制。

3:学习网络基础实验室网站的基本使用(本小组的接口为:http://192.168.0.3:8080/),例如对二层交换机、三层交换机进行配置。

4:理解链路集合的配置及其原理。

二:实验仪器设备及软件

硬件:RCMS-C服务器、网线、Windows 2019/2003操作系统的计算机等。

软件:资源监视器、记事本、WireShark、Chrome浏览器等。

三:实验方案

【实验实际连线图】

【实验的网络拓扑图】

实验3.1:4号计算机和6号计算机接入二层交换机,2号计算机和8号计算机接入三层交换机。二层交换机和三层交换机用一根网线进行连接。

实验3.2:4号计算机和6号计算机接入二层交换机,8号计算机接入三层交换机。2号计算机进入外网状态。设置4号计算机和8号计算机为VLAN 20局域网下,设置6号计算机为VLAN 10局域网下。二层交换机和三层交换机用一根网线进行连接。

实验3.3:4号计算机和6号计算机接入二层交换机,8号计算机和2号计算机接入三层交换机。2号计算机进入外网状态。设置所有计算机为VLAN 10局域网下。二层交换机和三层交换机用两根网线进行连接。

【具体方案】

1:S29C1是二层交换机,S57C1是三层交换机。内网网卡接口的编号对应计算机的编号。

2:4号和6号计算机从内网网卡接口连向二层交换机的5口和7口,2号和8号计算机从内网网卡接口连向三层交换机的1口和3口。

3:二层交换机和三层交换机通过47口进行连接,在实验3.3中还应该加入45口。

四:实验步骤

【实验3.1:熟悉以太网帧结构】

(1)内网互相执行ping

4号计算机ping6号计算机

4号计算机ping2号计算机

4号计算机ping8号计算机

4号计算机ping2号计算机时,WireShark抓包结果中的MAC帧

从Ethernet Ⅱ中,可以看到Src和Dst,分别对应源MAC地址和目标MAC地址。因此,源MAC地址是78:60:5b:43:92:43,目标MAC地址是e0:be:03:75:53:a9。

(2)访问外网网站

·4号计算机ping百度

指令为ping baidu.com

·4号计算机ping百度时,WireShark抓包结果中的MAC帧

该MAC帧为ARP协议的帧。从Ethernet Ⅱ中,可以看到源MAC地址是48:5f:08:b6:7d:3d,目标MAC地址是ff:ff:ff:ff:ff:ff

该MAC帧为HTTP协议的帧。从Ethernet Ⅱ中,可以看到源MAC地址是48:5f:08:b6:7d:3d,目标MAC地址是78:60:5b:43:91:e3。

【实验3.2:跨交换机实现VLAN】

(1)配置三层交换机的主机名、划分VLAN端口等

·进入基础实验室网站,选择三层交换机,并输入用户名和密码

用户名为:en 14,密码为:student。

·连接二层交换机的端口是5口和7口,因此需要分配2个VLAN

配置二层交换机,令其主机名为L2-SW

在二层交换机划分VLAN 10和VLAN 20,并将其命名为销售(xiaoshou)和技术(jishu)

将吉比特网络中的5到6口划分到VLAN 10,同时7到8口划分到VLAN 20

设置二层交换机到三层交换机的链路为Trunk

查看二层交换机的VLAN

    可以看到7、8、47口为jishu名字下的VLAN中,1、2、5、6、47口为xiaoshou名字下的VLAN中,其他口默认为VLAN0001名字下的VLAN中。

(2)配置三层交换机的主机名、划分VLAN端口等

配置三层交换机,令其主机名为L3-SW

在二层交换机划分VLAN 10和VLAN 20,并将其命名为销售(xiaoshou)和技术(jishu)

将吉比特网络中的1到2口划分到VLAN 10

设置三层交换机到三层交换机的链路为Trunk

查看三层交换机的VLAN

可以看到47口为jishu名字下的VLAN中,1、2、47口为xiaoshou名字下的VLAN中,其他口默认为VLAN0001名字下的VLAN中。

(3)不同计算机之间互相ping

·4号计算机ping6号计算机

此时4号计算机在VLAN 10,6号计算机在VLAN 20,结果为无法ping通,说明在同一个交换机内但位于不同VLAN下的计算机无法互相访问。

4号计算机ping8号计算机

此时4号计算机在VLAN 10,6号计算机在VLAN 10,结果为可以ping通,说明通过多个交换机连接的同一个VLAN下的计算机可以互相访问。

(4)交换4号计算机和6号计算机在二层交换机上的连接接口,继续执行不同计算机之间互相ping

·4号计算机ping6号计算机

此时4号计算机在VLAN 20,6号计算机在VLAN 10,结果为无法ping通,说明在同一个交换机内但位于不同VLAN下的计算机无法互相访问。

·4号计算机ping8号计算机

此时4号计算机在VLAN 20,6号计算机在VLAN 10,结果为无法ping通,说明通过多个交换机连接的位于不同VLAN下的计算机无法互相访问。

【实验3.3:端口聚合】

(1)二层交换机的端口聚合配置

(2)三层交换机的端口聚合配置

(3)更改2、4、6、8号计算机对交换机的接线

    2号和8号计算机经过三层交换机,4号和6号计算机经过二层交换机,且均位于两个交换机下的VLAN 10接口。

(4)不同计算机之间互相ping

·4号计算机ping6号计算机

4号计算机ping8号计算机

4号计算机ping2号计算机

 综上所述,在端口聚合后,所有计算机在VLAN 10下可以互相进行通信。

(5)传输数据

 按照实验1的方式配置test文件夹、test.zip文件和test.bat文件,进行内网之间的传输。

test.bat文件的批处理程序指令,如下表所示。

传输文件的程序指令

REM TEST.bat

copy C:\test\test.zip \\LR\test

del C:\test\test.zip                                    

copy \\LR\test C:\test

del \\LR\test\test.zip

call test.bat

(6)从二层交换机处,查看端口状态

 由上图可以看出,端口聚合后,45口和47口的速度均为1000M。

(7)查看成员端口

45口的结果如下图,最大input速率为975539493bits/s,即121942436bytes/s,即116.29MB/s。最大output速率为975539514bits/s,同理也为百兆网速。

    47口的结果也可以进行类似的计算,此处不再赘述。

(8)查看聚合端口

(9)测速

6号计算机与8号计算机利用交换机之间的2根网线通信时

    47口处input的包速率为33624个/s, output的包速率为39710个/s。

    45口处input的包速率为44个/s, output的包速率为394个/s。

    聚合端口处input的包速率为44个/s, output的包速率为394个/s。

6号计算机与8号计算机利用交换机之间的1根网线通信时

    45口处input的包速率为36069个/s, output的包速率为41314个/s。

五:实验结果及分析

1:描述帧的结构,对比与书中完整的帧结构异同并解释原因

书中完整的帧结构如下图。其中包含首部字段、数据字段和尾部字段。

实际捕获的帧结构如下图。

帧的大小为60B,有4B的CRC计算。满足最小64B的要求。

    在实际的帧中,只包含目标MAC地址、源MAC地址、协议类型(此处为ARP)、填充(Padding)。

2:端口聚合实验表

测试项

端口聚合前

端口聚合后

端口速度(包/秒)

端口1:36069+41314

端口1:44+394
端口2:33624+39710

聚合端口理论最大传输速度(包/秒)

100000

200000

聚合端口实测最大传输速度(包/秒)

77377

59487

传输时间(秒)

2.884602

3.802301

聚合端口的流量平衡模式

依据源和目的地址(默认模式)

依据源和目的地址(默认模式)

六:实验总结及体会

1:在交换机中,Exit 命令是退回到上一级操作模式,Hostname 配置交换机的设备名称。

2:相同 VLAN 内的主机可以互相直接访问,不同 VLAN 间的主机之间互相访问必须经由路由设备进行转发。广播数据包只可以在本 VLAN 内进行传播,不能传输到其他 VLAN 中。

3:Trunk 接口在默认情况下支持所有 VLAN 的传输。VLAN1属于系统的默认 VLAN,不可以被删除。

4:链路聚合会在成员端口中起分流作用,即通过将多个物理端口汇聚在一起形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担。

5:在配置端口时,百兆网为fastEthernet,千兆网为GigabitEthernet,注意config时的选择情况。如果不知道自己的网络属于哪一种,应该采取show interface方式进行查看。

6:在实验3.3中,两根网线连接交换机和一根网线连接交换机的情况,在传输速度方面基本没有差别。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

什么材质的挖耳勺好用?硬核上佳产品分享!

耳道健康随着生活品质的提高,逐渐被大家重视。因为它会直接影响我们的听力和卫生健康,如果长时间不清理,很容易堵塞在耳膜里导致耳鸣头晕等状况。挖耳勺的材质非常多,有铁质、不锈钢、软硅胶等等,那么什么材质的挖耳勺…

2024年国际高校数学建模竞赛问题B:空间迁移计划和战略完整思路 模型 代码 结果分享(仅供学习)

2024年国际高校数学建模竞赛问题B:空间迁移计划和战略(2024 International Mathematics Molding Contest for Higher Education (IMMCHE)Problem B: Space Migration Program and Strategy) 我们的未来有两种可能性:第一,我们将留…

国科大作业考试资料《人工智能原理与算法》2024新编-第十三次作业整理

1、假设我们从决策树生成了一个训练集,然后将决策树学习应用于该训练集。当训练集的大小趋于无穷时,学习算法将最终返回正确的决策树吗?为什么是或不是? 本次有两个参考: 参考一: 当训练集的大小趋于无穷…

飞牛爬虫FlyBullSpider 一款简单方便强大的爬虫,限时免费 特别适合小白!用它爬下Boss的2024年7月底Java岗位,分析一下程序员就业市场行情

一、下载安装FlyBullSpider 暂时支持Window,现在只在Win11上做过测试 1 百度 点击百度网盘 下载 链接:https://pan.baidu.com/s/1gSLKYuezaZgd8iqrXhk8Kg 提取码:Fly6 2 csdn https://download.csdn.net/download/fencer911/89584687 二、体验初…

C++(入门1)

C参考文档 Reference - C Reference C 参考手册 - cppreference.com cppreference.com 第一个C程序 #include<stdio.h> int main() {printf("Hello C\n");return 0; }由上述代码可知C是兼容C语言 第一个C标准程序 #include<iostream> using names…

Python教程(一):环境搭建及PyCharm安装

目录 引言1. Python简介1.1 编译型语言 VS 解释型语言 2. Python的独特之处3. Python应用全览4. Python版本及区别5. 环境搭建5.1 安装Python&#xff1a; 6. 开发工具&#xff08;IDE&#xff09;6.1 PyCharm安装教程6.2 永久使用教程 7. 编写第一个Hello World结语 引言 在当…

NO.1 Hadoop概述

目录 1.1 Hadoop是什么​编辑 1.2 Hadoop优势​编辑​编辑 1.3 Hadoop组成​编辑 1.3.1 HDFS架构概述 ​编辑 1.3.2 YARN架构概述 ​编辑 1.3.3 MapReduce架构概述​编辑 1.3.4 HDFS、YARN、MapReduce三者关系 1.4 大数据技术生态体系 1.5 推荐系统框架图 1.1 Hadoop…

Prometheus各类监控及监控指标和告警规则

目录 linux docker监控 linux 系统进程监控 linux 系统os监控 windows 系统os监控 配置文件&告警规则 Prometheus配置文件 node_alert.rules docker_container.rules mysql_alert.rules vmware.rules Alertmanager告警规则 consoul注册服务 Dashboard JSON…

ARM32开发——PWM蜂鸣器案例

&#x1f3ac; 秋野酱&#xff1a;《个人主页》 &#x1f525; 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 需求原来的驱动移植操作替换初始化 更新Play函数完整代码 需求 通过控制PB9来播放音乐&#xff0c;PB9对应的定时器通道&#xff1…

Web3 职场新手指南:从技能到素养,求职者如何脱颖而出?

随着 2024 年步入下半年&#xff0c;Web3 行业正在经历一系列技术革新。通过改进的跨链交互机制和兼容性&#xff0c;逐步消除市场碎片化的问题。技术的进步为开发者和用户都打开了新的前景。然而&#xff0c;复杂的技术和快速变化的市场环境也让许多新人望而却步。求职者如何找…

【数据结构】双向带头循环链表(c语言)(附源码)

&#x1f31f;&#x1f31f;作者主页&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所属专栏&#xff1a;数据结构 目录 前言 1.双向带头循环链表的概念和结构定义 2.双向带头循环链表的实现 2.1 方法声明 2.2 方法实现 2.2.1 创建新节点 2.2.2 初始化 2.2.3 …

【基于yolo转onnx 量化测试】

1、 训练模型转onnx 和量化 from ultralytics import YOLOmodel_path "yolov10/runs/train8/weights/best.pt" model YOLO(model_path) # 载入官方模型 # 导出模型 model.export(formatonnx,halfTrue)2、量化&#xff0c;减少了三分之一的存储空间从100M到30M …

当镜像地址出错的时候下载selenium的处理办法

当镜像地址出错的时候下载selenium的处理办法 一、原因 显示出错&#xff1a; C:\Users\xiaodaidai>pip install selenium3.4.0 Looking in indexes: Simple Index WARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNone)) after connection …

学语言,看这里,如何快速掌握JavaScript?

本篇文章是基于会点c语言和会点python基础的&#xff0c;去更容易上手javascript 学习笔记分享✨&#x1f308;&#x1f44f;&#x1f44f;&#x1f451;&#x1f451; javascript目录 1.安装node.js&#xff1a;2.配置环境变量——创建NODE_HOME :3.变量与常量4.原生数据类型5…

C++ —— STL简介

1. 什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的 组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架 2.STL的版本 原始版本 Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本…

Java之父官宣退休

今年不用说大家都知道环境真的很差很差&#xff0c;裁员降薪已经是家常便饭&#xff0c;在这种严峻环境下&#xff0c;我们只能提升自己内功来抗风险&#xff0c;下面分享一本java之父推荐的优秀书籍。 刚过完自己 69 岁生日的两个月后&#xff0c;Java 之父 James Gosling&…

论文阅读:Deep_Generic_Dynamic_Object_Detection_Based_on_Dynamic_Grid_Maps

目录 概要 Motivation 整体框架流程 技术细节 小结 不足 论文地址&#xff1a;Deep Generic Dynamic Object Detection Based on Dynamic Grid Maps | IEEE Conference Publication | IEEE Xplore 概要 该文章提出了一种基于动态网格图&#xff08;Dynamic Grid Maps&a…

Golang高效合并(拼接)多个gzip压缩文件

有时我们可能会遇到需要把多个 gzip 文件合并成单个 gzip 文件的场景&#xff0c;最简单最容易的方式是把每个gzip文件都先解压&#xff0c;然后合并成一个文件后再次进行压缩&#xff0c;最终得到我们想要的结果&#xff0c;但这种先解压后压缩的方式显然效率不高&#xff0c;…

监控Windows文件夹下面的文件(C#和C++实现)

最近在做虚拟打印机时&#xff0c;需要实时监控打印文件的到达&#xff0c;并移动文件到另外的位置。一开始我使用了线程&#xff0c;在线程里去检测新文件的到达。实际上Windows提供了一个文件监控接口函数ReadDIrectoryChangesW。这个函数可以对所有文件操作进行监控。 ReadD…

1 深度学习网络DNN

代码来自B站up爆肝杰哥 测试版本 import torch import torchvisiondef print_hi(name):print(fHi, {name}) if __name__ __main__:print_hi(陀思妥耶夫斯基)print("HELLO pytorch {}".format(torch.__version__))print("torchvision.version:", torchvi…