昆明理工大学 网络工程实验一

时间:2024.4.21

昆明理工大学信息工程与自动化学院学生实验报告

( 20## — 20## 学年 第2学期 )

课程名称:网络工程及应用     开课实验室:信自楼442 20##年4月17日

一、实验目的及内容

熟悉华为中低端交换机的基本配置;了解VLAN的原理和配置;了解VLAN间路由的原理和配置。

二、实验原理及基本技术路线图(方框原理图或程序流程图)

熟悉华为中低端交换机的基本配置;了解VLAN的原理和配置;了解VLAN间路由的原理和配置。下图请根据具体联线情况自行标注。

三、所用仪器、材料(设备名称、型号、规格等或使用软件)

4台PC,两台智能交换机;双绞线若干;或者模拟软件1套。

四、实验方法、步骤(或程序代码或操作过程)

1.   硬件连接,完成PC1、PC2、PC3、PC4到交换机SW1和SW2的网络连接,交换机SW1到交换机SW2的连接;PC1到交换机SW1控制线的连接,PC3到交换机SW2控制线的连接。PC1连接SW1的Ethernet 0/0/1口,PC2连接SW1的Ethernet 0/0/2口,PC3连接SW2的Ethernet 0/0/1口,PC4连接SW2的Ethernet 0/0/2口,SW1和SW2使用各自的e3口互联。要求在拓扑图上记录PC机实际的设备编号,PC机的网线对应的跳线架上的编号,PC机所连接交换机的端口的编号,交换机之间互联的所使用的端口编号。拓扑图检查无误后方可进行后面的实验步骤。

2.   清除交换机现有的配置,重新启动交换机。要求记录输入的命令和输出。

3.   为PC1和PC3设置192.168.1.XX/24(XX为学号的后两位)的IP地址,网关为192.168.1.254,并使用Ping命令进行连接测试。为PC2和PC4设置192.168.2.YY/24(YY为学号的后两位)的IP地址,网关为192.168.2.254,并使用Ping命令进行连接测试。要求给出每台IP地址的配置并记录其MAC地址,记录每台机器Ping其他三台机器的测试结果。(PC1和PC3通,PC2和PC4通,其他情况不通)。测试无误后方可进行后面的实验步骤。

4.   使用sysname命令为交换机SW1和SW2命名,记录输入的命令和输出。

5.   使用display interface查看接口状态。不要求记录输入的命令和输出。使用display mac-address查看交换机的转发表。不要求记录输入的命令和输出。

6.   在PC1所使用的交换机上创建VLAN2,并将PC1所使用的交换机的端口划分到VLAN2中。要求记录输入的命令和输出。

7.   在PC2所使用的交换机上创建VLAN3,并将PC2所使用的交换机的端口划分到VLAN3中。要求记录输入的命令和输出。

8.   在PC3所使用的交换机上创建VLAN2,并将PC3所使用的交换机的端口划分到VLAN2中。要求记录输入的命令和输出。

9.   在PC4所使用的交换机上创建VLAN3,并将PC4所使用的交换机的端口划分到VLAN3中。要求记录输入的命令和输出。

10.  将两台交换机的级联端口配置为trunk模式。要求记录输入的命令和输出。

11.  在SW1上为vlan 2接口配置ip地址192.168.1.254/24。要记录输入命令和输出。

12.  在SW1上为vlan 3接口配置ip地址192.168.2.254/24。要记录输入命令和输出。

13.  记录每台机器Ping其他三台机器的测试结果。(此时都能ping通)。

五、实验过程原始记录( 测试数据、图表、计算等)

硬件连接,完成PC1、PC2、PC3、PC4到交换机SW1和SW2的网络连接,清除交换机现有的配置,重新启动交换机。

清除配置:<quidway>reset saved-configuration

重新启动:<quidway>reboot  

注意:看清系统的提示,第一个问题请选择N,第二个问题请选择Y

交换机重新启动后,输入<quidway>display  save

没有任何提示,表示配置已清空

为PC1、PC2、PC3、PC4分别设置IP地址和掩码和网关,如图所示:

测试每台机器Ping其他三台机器的测试结果。

测试结果显示:PC1和PC3通,PC2和PC4通,其他情况不通。

使用sysname命令为交换机SW1和SW2命名,如图所示:

在PC1所使用的交换机上创建VLAN2,并将PC1所使用的交换机的端口划分到VLAN2中。在PC2所使用的交换机上创建VLAN3,并将PC2所使用的交换机的端口划分到VLAN3中。在PC3所使用的交换机上创建VLAN2,并将PC3所使用的交换机的端口划分到VLAN2中。在PC4所使用的交换机上创建VLAN3,并将PC4所使用的交换机的端口划分到VLAN3中。

以SW1为例

[zouhuayu1]vlan  2

[zouhuayu1-vlan2]quit

[zouhuayu1]interface GigabitEthernet 0/0/1

[zouhuayu1- GigabitEthernet0/0/1]port  link-type access

[zouhuayu1- GigabitEthernet0/0/1]port  default  vlan  2

[zouhuayu1- GigabitEthernet0/0/1]quit

[zouhuayu1]vlan  3

[zouhuayu1-vlan3]quit

[zouhuayu1]interface GigabitEthernet 0/0/2

[zouhuayu1- GigabitEthernet0/0/2]port  link-type access

[zouhuayu1- GigabitEthernet0/0/2]port  default  vlan  3

[zouhuayu1- GigabitEthernet0/0/2]quit

[zouhuayu1]

在交换机SW1,将Ethernet 0/0/3口配置为trunk模式。在交换机SW2上将Ethernet 0/0/3口配置为trunk模式。

[zouhuayu1]interface GigabitEthernet 0/0/3

[zouhuayu1- GigabitEthernet0/0/3]port  link-type  trunk

[zouhuayu1- GigabitEthernet0/0/3]port  trunk  allow-pass  vlan   all

[zouhuayu1- GigabitEthernet0/0/3]quit

在SW1上为vlan 2接口配置ip地址192.168.1.254/24。在SW1上为vlan 3接口配置ip地址192.168.2.254/24。

测试每台机器是否可以Ping通其他三台机器。

六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序运行结果、改进、收获)

通过此次试验,我不仅学到了课本上的一些知识,比如怎样在一个不同的子网里面来建立VLAN,同时也了解VLAN的基本原理;再次就是学会怎样建立trunk,也了解trunk的作用和原理;同时,在本次试验中,我了解了交换机的用途和工作原理,还学会怎么用华为模拟器,了解华为模拟器设备的要求与用途。此次实验,我最大的收获就是提高自己的实践操作能力和理论知识的理解。

注:教师必须按照上述各项内容严格要求,认真批改和评定学生成绩。


第二篇:昆明理工大学 人工智能 实验一


昆明理工大学信息工程与自动化学院学生实验报告

2011   2012   学年 1  学期

课程名称:人工智能       开课实验室: 444            20##年  12 月 9日

一、实验目的及内容

    实验目的:理解并熟悉掌握深度优先搜索和广度优先搜索地方法。

    实验内容:设有3个传教士和3个野人来到河边,打算乘一只船从右岸到左岸去。该船的负载能力为两人。在任何时候,如果野人人数超过传教士人数,野人就会把传教士吃掉。他们怎样才能用这条船安全的把所有人都渡过河去?

二、实验原理及基本技术路线图(方框原理图或程序流程图)

 

              

三、所用仪器、材料(设备名称、型号、规格等或使用软件)

       1台PC以及VISUAL C++6.0软件

四、实验方法、步骤(或:程序代码或操作过程)

   #include <stdio.h>

   #include <stdlib.h>

   #include <ctype.h>

  

   #define maxloop 100    /* 最大层数,对于不同的扩展方法自动调整取值 */

   #define pristnum 3     /*初始化时设定有3个野人3个传教士,实际可以改动*/

   #define slavenum 3

  

   struct SPQ{ int sr,pr;             /* 船运行一个来回后河右岸的野人、传教士的人数  */

   int sl,pl;             /* 船运行一个来回后河左岸的野人、传教士的人数  */

       int ssr,spr;           /* 回来(由左向右时)船上的人数 */

       int sst,spt;           /* 去时(由右向左时)船上的人数 */

       int loop;               /* 本结点所在的层数                  */

       struct SPQ *upnode ,*nextnode;/* 本结点的父结点和同层的下一个结点的地址 */

   }spq; 

   int loopnum;/* 记录总的扩展次数 */

   int openednum;/* 记录已扩展节点个数 */

   int unopenednum;/* 记录待扩展节点个数 */

   int resultnum;

   struct SPQ *opened;

   struct SPQ *oend;

   struct SPQ *unopened;         

   struct SPQ *uend;

   struct SPQ *result;

   void initiate();

   void releasemem();

   void showresult();

   void addtoopened(struct SPQ *ntx);

   int search();

   void goon();

   int stretch(struct SPQ* ntx);

   void recorder();

  

   int main()

   {

       int flag;       /* 标记扩展是否成功  */

       for( ; ; )

       {

           initiate();

           flag = search ();

           if(flag == 1)

        {

               recorder();

               releasemem();

               showresult();

               goon();

        }

           else

        {

               printf("无法找到符合条件的解");

               releasemem();

               goon();

        }

       }

      

       system("pause");

       return 0;

   }

  

   void initiate()

   {

       int x;

       char choice;

       uend = unopened = (struct SPQ*)malloc(sizeof(spq));

       if(uend==NULL)

       {

           printf("\n内存不够!\n");

           exit(0);

       }

       unopenednum=1;

       openednum=0;

       unopened -> upnode = unopened;       /* 保存父结点的地址以成链表 */

       unopened -> nextnode = unopened;

       unopened -> sr = slavenum;

       unopened -> pr = pristnum;

       unopened -> sl = 0;

       unopened -> pl = 0;

       unopened -> sst = 0;

       unopened -> spt = 0;

       unopened -> ssr = 0;

       unopened -> spr = 0;

       unopened -> loop = 0;

       printf("计科093班 孙浩川 200910405310\n\n");

       printf("设有3个传教士和3个野人来到河边,打算乘一只船从右岸到左岸去。该船的负载能力为两人。在任何时候,如果野人人数超过传教士人数,野人就会把传教士吃掉。他们怎样才能用这条船安全的把所有人都渡过河去?\n");

      /*printf("该船的负载能力为两人。在任何时候,如果野人人数超过传教士人数,野人\n");

       printf("就会把传教士吃掉。他们怎样才能用这条船安全的把所有人都渡过河去?\n");*/

      

       for(;;)

       {

           printf("\n是否开始?(Y/N)");

           scanf("%s",&choice);

           choice=toupper(choice);

           if(choice=='N')

           {  

               printf("\n请输入传教士人数");

               for(;;)

         {

                   scanf("%d",&x);

                if(x>0)

             {

                       unopened -> pr = x;

                 break;

             }

                   else printf("\n输入值应大于0!\n请重新输入");

         }

               printf("\n请输入野人人数");

               for(;;)

         {

                   scanf("%d",&x);

                if(x>0)

             {

                       unopened -> sr = x;

                 break;

             }

                   else printf("\n输入值应大于0!\n请重新输入");

            }

               break;

        }

           if(choice=='Y')break;

       }

      

   }

   int search()

   {

       int flag;

       struct SPQ *ntx;               /* 提供将要扩展的结点的指针 */

       for( ; ; )

       {

           ntx = unopened;        /* 从待扩展链表中提取最前面的一个 */

           if(ntx->loop == maxloop)

               return 0;

           addtoopened(ntx);       /* 将ntx加入已扩展链表,并将这个节点从待扩展链表中去掉 */

           flag = stretch(ntx);    /* 对ntx进行扩展,返回-1,0,1 */

           if(flag == 1)

               return 1;  

       }

   }

   int stretch(struct SPQ *ntx)

   {

       int fsr , fpr ; /* 在右岸上的人数 */

       int fsl , fpl ; /* 在左岸上的人数 */

       int sst , spt ; /* 出发时在船上的人数 */

       int ssr , spr ; /* 返回时船上的人数 */

       struct SPQ *newnode;

       for (sst = 0 ; sst <=  2 ; sst++) /* 讨论不同的可能性并判断是否符合条件 */

       {

           fsr = ntx -> sr;

           fpr = ntx -> pr;

           fsl = ntx -> sl;

           fpl = ntx -> pl;

           if ((sst <=  fsr) && (( 2 - sst) <=  fpr))/* 满足人数限制 */

        {

               spt = 2 - sst;

               fsr = fsr - sst;

               fpr = fpr - spt;

               if((fpr ==  0) && (fsr ==  0))/* 搜索成功 */

            {

                   newnode = (struct SPQ*) malloc (sizeof(spq));

                   if(newnode==NULL)

             {

                       printf("\n内存不够!\n");

                    exit(0);

             }

                   newnode -> upnode = ntx;       /* 保存父结点的地址以成链表 */

                   newnode -> nextnode = NULL;

                   newnode -> sr = 0;

                   newnode -> pr = 0;

                   newnode -> sl = opened -> sr;

                   newnode -> pl = opened -> pr;

                   newnode -> sst = sst;

                   newnode -> spt = spt;

                   newnode -> ssr = 0;

                   newnode -> spr = 0;

                   newnode -> loop = ntx -> loop + 1;

                   oend -> nextnode = newnode;

                   oend = newnode;

                   openednum++;

                   return 1;

            }  

               else if ((fpr - fsr) * fpr >= 0) /* 判断是否满足传教士人数必须大于或等于野人人数 */

         {

                   fsl = fsl + sst;

                   fpl = fpl + spt;

                   for (ssr = 0 ; ssr <= 1 ; ssr++)                  /* 返回 */

             {

                       int ffsl , ffpl;

                       if ((ssr <= fsl) && ((1 - ssr) <= fpl))

              {

                        spr = 1 - ssr;

                           ffsl = fsl - ssr;

                           ffpl = fpl - spr;

                           if ((ffpl - ffsl) * ffpl >= 0)

                           {   /* 若符合条件则分配内存并付值  */

                            int  ffsr , ffpr;

                            ffsr = fsr + ssr;

                               ffpr = fpr + spr;                                      

                               newnode = (struct SPQ*) malloc (sizeof(spq));

                            if(newnode==NULL)

                {

                                   printf("\n内存不够!\n");

                       exit(0);

                }

                               newnode -> upnode = ntx;       /* 保存父结点的地址以成链表 */

                               newnode -> sr = ffsr;

                               newnode -> pr = ffpr;

                               newnode -> sl = ffsl;

                               newnode -> pl = ffpl;

                               newnode -> sst = sst;

                               newnode -> spt = spt;

                               newnode -> ssr = ssr;

                               newnode -> spr = spr;

                               newnode -> loop = ntx -> loop + 1;

                               uend -> nextnode = newnode;

                            uend = newnode;

                               unopenednum++;       

               

               }

              }

             }

         }

        }

       }

       return 0;

   }

   void addtoopened(struct SPQ *ntx)

   {

       unopened = unopened -> nextnode;

       unopenednum--;

       if (openednum == 0 )

           oend = opened = ntx;

       oend -> nextnode = ntx;

       oend = ntx;

       openednum++;

   }

   void recorder()

   {

       int i , loop;

       struct SPQ *newnode;

       struct SPQ *ntx;

       loop = oend -> loop;

       ntx = oend;

       resultnum = 0;

       for( i = 0 ; i <= loop ; i++ )

       {

           newnode = (struct SPQ*) malloc (sizeof(spq));

           if(newnode==NULL)

        {

               printf("\n内存不够!\n");

               exit(0);

        }

           newnode -> sr = ntx -> sr;

           newnode -> pr = ntx -> pr;

           newnode -> sl = ntx -> sl;

           newnode -> pl = ntx -> pl;

           newnode -> sst = ntx -> sst;

           newnode -> spt = ntx -> spt;

           newnode -> ssr = ntx -> ssr;

           newnode -> spr = ntx -> spr;

           newnode -> nextnode = NULL;

           ntx = ntx -> upnode;   

           if(i == 0)

               result = newnode;

           newnode -> nextnode = result;

           result = newnode;

           resultnum++;

       }

   }

   void releasemem()

   {

       int i;

       struct SPQ* nodefree;

       for ( i = 1 ; i < openednum ; i++ )

       {

           nodefree = opened;

           opened = opened -> nextnode;

           free(nodefree);

       }

       for ( i = 0 ; i < unopenednum ; i++ )

       {

           nodefree = unopened;

           unopened = unopened -> nextnode;

           free(nodefree);

       }

   }

   void showresult()

   {

       int i;

       int fsr , fpr ; /* 在右岸上的人数 */

       int fsl , fpl ; /* 在左岸上的人数 */

       struct SPQ* nodefree;

       printf("%d个传教士",result -> pr);

       printf("%d个野人",result -> sr);

       printf("%d个传教士",result -> pl);

       printf("%d个野人",result -> sl);

       for ( i = 1 ; i < resultnum ; i++ )

       {

           nodefree = result;

           result = result -> nextnode;

           free(nodefree);

          // printf("\n\n\t左岸人数 船上人数及方向 右岸人数\n");

           printf("第%d轮\n",i);

           fpl = result -> pl - result -> spt + result -> spr;

           fpr = result -> pr - result -> spr;

           fsl = result -> sl - result -> sst + result -> ssr;

           fsr = result -> sr - result -> ssr;

          printf("传教士\t左岸%d人,船上%d人,向左,右岸%d人\n",fpl,result -> spt,fpr);

          printf("野  人\t左岸%d人,船上%d人,向左,右岸%d人\n",fsl,result -> sst,fsr);

           printf("传教士\t左岸%d人,船上%d人,向右,右岸%d人\n",result -> pl,result -> spr,result -> pr - result -> spr);

           printf("野  人\t左岸%d人,船上%d人,向右,右岸%d人\n",result -> sl,result -> ssr,result -> sr - result -> ssr);

       }

       printf("\n全体传教士和野人全部到达对岸");

       free(result);

   }

   void goon()

   {

       char choice;

       for(;;)

       {

           printf("是否继续?(Y/N)\n");

           scanf ("%s" , &choice);

           choice=toupper(choice);

           if(choice=='Y')break;

           if(choice=='N')exit(0);

       }

   }

五、实验过程原始记录( 测试数据、图表、计算等)

六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序运行结果、改进、收获)

   

这次试验让我熟悉了环境,加深了对算法的理解,掌握了把基本算法编程机器语言的能力。更加深入了解了什么是人工智能,让我了解了人工智能的作用以及含义和人工智能的使用范围以及对于我们未来生活得作用的广大。但由于自己编程能力弱,做的不是太好,主要是通过查资料完成的。人工智能这门课的知识比较逻辑化和抽象华,要学懂这门课比较困难,因此,在今后学习中,我要更加努力,熟读课本,以求熟悉并掌握该门课的知识要点。

注:教师必须按照上述各项内容严格要求,认真批改和评定学生成绩。

更多相关推荐:
大连理工大学实验报告模版

【大物实验】拉伸法测弹性模量http://hi.baidu.com/%CE%D2%B5%C4%D3%EE%D6%AE%D6%E6/blog/item/2fa915f54e65df75dcc4741b.html【…

RLC电流研究实验报告-大连理工大物实验

RLC电流研究实验报告

大连理工大学 大物实验报告 温度传感技术

这个实验操作步骤比较简单实验过程中主要就是等待不难老师是武震林人特别好报告为什么扣分我也不太清楚可能是数据点没用X表示需要注意的是伏安特性曲线要过原点有些点要舍去

大连理工大学盘锦校区大学物理实验报告页

大连理工大学大学物理实验报告实验报告完成日期学号姓名班级实验准备时间第周周第节实验完成时间第周周第节实验名称大连理工大学大学物理实验实验报告附件1预习与准备学号姓名班级实验准备时间年月日第周周第节实验名称大连理...

大工大物实验报告——低压气体直流击穿特性

低压气体直流击穿特性实验目的1研究低气压的实验和维持方法了解气压的测量原理2观测直流暗放电的脉冲现象研究电子碰撞引起雪崩电离的过程掌握分析和识别微观现象的实验方法认识低气压气体直流击穿现象研究雪崩电离过程与气体...

大工电机与拖动实验报告一

实验报告一实验名称单相变压器实验实验目的1通过空载和短路实验测定变压器的变比和参数2通过负载实验测取变压器的运行特性实验项目1空载实验测取空载特性U0fI0P0fU02短路实验测取短路特性UkfIkPkfI3负...

20xx年大连理工大学考研884物理化学及实验凯程学员回忆版

凯程考研集训营为学生引路为学员服务20xx年大连理工大学考研884物理化学及实验凯程学员回忆版选择填空题12小题每小题2分共24分恒温下反应As3Bg2CgDl判断该反应过程的H和U的大小正确答案是HU对于理想...

大学物理演示实验报告

浅谈混沌现象介于确定与随机之间的运动摘要混沌现象是指发生在确定性系统中的貌似随机的不规则运动一个确定性理论描述的系统其行为却表现为不确定性不可重复不可预测这就是混沌现象进一步研究表明混沌是非线性动力系统的固有特...

柏诺兹(J - 大学物理 大连理工大学国家级精品课程建设工程

柏诺兹JGeorgBednorz19xx和缪勒KarlAMuller19xx因发现钡镧铜氧系统中的高Tc超导电性共同分享了19xx年度诺贝尔物理学奖超导电性的发现使人们认识到超导技术有广泛的应用前景为了寻找更适...

大连理工大学物理与光电工程学院

大连理工大学物理与光电工程学院20xx年硕士研究生复试标准及复试方法学术型和全日制专业学位一复试分数线二复试比例以网上公布的复试名单为准按照物理学一级学科招生人数不含推免生下同的120来确定复试人数分专业排序录...

大连理工大学物理与光电工程学院

大连理工大学物理与光电工程学院20xx年硕士研究生复试标准及复试方法学术型和全日制专业学位一复试分数线二复试比例以网上公布的复试名单为准按照物理学一级学科招生人数不含推免生下同的120来确定复试人数分专业排序录...

大工15春《电机与拖动实验》学习要求及实验报告

大连理工大学网络教育学院电机与拖动实验课程学习要求一课程考核形式本课程的考核形式为离线作业实验报告无在线作业和考试离线作业及要求在该课程的离线作业模块中下载二离线作业要求学生需要在平台离线作业中下载大工15春电...

大连理工大学大物实验报告(17篇)