网络编程实验报告4kn

2024-10-01

网络编程实验报告4kn(精选8篇)

1.网络编程实验报告4kn 篇一

学号

计算机网络实验报告

实验一

建网的基本技能和组建以太网

成指

长姓名 级 绩 方星 10网络2班高树成 导教师

计算机与信息工程学院

2010年 09月 16日

一、实验要求:

1.预习以太网相关原理及协议内容;

2.独立实验,编写实验报告,要求写明完成实验过程的步骤及遇到的问题、解决的方法;

3.画出网络连接拓扑,写出客户机和服务器进行网络TCP/IP协议配置的方法及原则

4.写出本次实验的体会

二、实验内容:

1.2.3.4.5.6.制作直连和交叉双绞线并进行连接测试 工作站操作系统的安装 服务器操作系统的安装和调试 掌握网络连接介质(双绞线)的制作 建立局域网 配置对等网

三、实验过程、步骤及实验网络拓扑图

„„„

四、实验分组:

本实验采用分组方式,并确认每个成员的任务。

实验分组:2组

小组组长:王沁卿

小组人员:方兴、李卉、周文达、常昊、刘建伟、刘翯、余文硕、李娜

五、实验心得:

在学习计算机网络时学习了组建网络,这次实验知道了如何利用“Console”端口对交换机和路由器进行配置和管理,怎样跨交换机实现VLAN,实现交换机端口隔离,如何配置交换设备的远程管理,配置基本的办公服务器。

从试验过程中可以看出实现不同VLAN之间的两种方式,一个是通过单臂路由实现,另一个是通过三层交换的路由功能实现的,可以说不同VLAN之间的通信必须通过路由功能才能实现通信。其次,不同网段之间都需要配置下一跳地址(网关)才能通信。那么什么时候用单臂路由,什么时候选择三层交换呢。单臂路由是不具有扩展性的,如果VLAN的数量不断增加,流经路由器与交换机之间链路的流量也变得非常大,这时,这条链路也就成为了整个网络的瓶颈,即使你网络的带宽再快,也是如此。

三层交换技术在第三层实现了数据包的高速转发,从而解决了传统路由器低速、负责所造成的网络瓶颈问题。

在老师的悉心指导下,使我们顺利完成实验。

2.网络技术报告及实验报告要求 篇二

报告内容:

阐述TCP/IP协议的体系结构(分层及每层的具体内容);

阐述网络互联的方式及所在的TCP/IP层;

阐述IP协议中的IP地址的概念及分类;

局域网的工作原理;

WWW服务的工作过程(HTML,SERVER,CLIENT,HTTP)。

报告要求:

结构合理、层次清晰、书写规范;字数不少于2500,请不要在网络上大量拷贝,谢谢。

网络技术课程实验报告要求

报告内容:

实验1:网页浏览、电子邮件、文件下载

实验2:网页设计

实验3:WWW服务器配置

实验4:DNS服务器配置

实验5:网络管理软件的使用

报告要求:

实验时间地点、实验环境(操作系统、应用软件)、实验过程、实验结果。

3.实验报告:网络管理 篇三

课程名称:计算机网络

学生信息:07计算机班 郭文(2007114046)

实验时间:2010年6月6日

实验目的:

理解网络管理的概念

利用网络管理软件进行实践

实验原理:

网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能、服务质量等。网络管理常简称为网管。

实验内容:

通过使用网络管理软件PcAnywhere实现网络管理。

实验器材:

服务器一台、客户机四台(已连接)、管理软件PcAnywhere。

实验步骤:

1.客户端的安装:

根据PcAnywhere安装说明,将客户端安装到服务器上。

2.服务端的安装:

根据PcAnywhere安装说明,将服务端安装到客户机上。

3.PcAnywhere设置:

按照PcAnywhere的使用说明书,对客户端与服务器分别进行设置。

4.软件测试:

使用客户端连接服务器,进行控制管理。

实验结果:

4.网络编程实验报告4kn 篇四

姓名:

学号:

一、实验学时:2学时

二、实验目的1、理解网络营销的重要性

2、了解网络营销的方法

3、比较网络营销与传统营销方法的异同

三、实验内容

整理至少3个网络营销的案例,完成以下内容: http:// 艺龙旅行网;QQ团购网; 百度;网易邮箱简历中心。

1.网站采用了哪些网络营销方法?

策略:价格策略,促销策略,网络广告策略,市场战略 方式:发布供求信息,直接想潜在客户发送信息,加入专业经贸信息网,加入行业信息网

常用方法:搜索引擎营销、交换链接、网络广告、信息发布、博客营销、个性化营销、会员制营销、网上商店、病毒性营销、网络视频营销、论坛营销、WIKI营销、网络营销联盟、竞价推广、电子书营销、事件营销、视频营销、品牌营销、整合营销、IM工具营销、微博营销。

2.这些网络营销方法具有传统营销方法所不具备的哪些优势?

1)网络营销是一种网络营销是一种以消费者为导向,强调个性化的营销模式。

2)网络的互动性似的全程营销成为可能。

3)网络营销极大方便了消费者购物,提高了消费者的购物效率。

4)网络营销可以使消费者获得理想的价格。

3.结合教材中网络营销的特点和网络营销的策略,通过实例比较网络营销和传统营销有何不同?

案例:百度http://;(微博炒作 利用受众看客心理自行扩散)。首先要说的是,“度娘”刘冬的一时爆红到现在还不能说到底是不是一个炒作,但不管炒作与否,她的出现成了互联网公司最成功的招聘广告,甚至现在还有很多网友会有这样类似的说法“有不懂的,找度娘去!”从一个层面上讲,让度娘爆红,微博上的看客转发出了很大功劳,那如何让这么多的微博用户主动地去转发、评论传播这条微博呢?林志铃的明星效应、性感服装的吸引力、百度HR身份的特殊性……这些都构成度娘刘冬一夜爆红的因素。接着,微博上的互动引出多个争议点,如照片的真实性、度娘身份的真实性等,有争议就会受关注,这让度娘事件进一步白热化,更是推到新浪微博热点话题榜首位。而这时,百度官方微博站出来验证度娘身份的真实性,也很顺其自然地利用这个回应做了一个真正的招聘广告…… 与传统营销不同,互联网普及,市场转移到网上。网络互动性强。通过微博炒作,利用受众看客心理自行扩散。

4.通过案例说明为什么网络营销是许可式营销?分析现代化技术对网络营销的极大影响?

比如说:http:// 艺龙旅行网;http://tuan.qq.com/ QQ团购网。这些网站会正的用户会员同意,发送相关邮件到用户会员的邮箱。

许可式营销就是许可EMAIL营销(opt-in e-mail)。Email营销是在用户事先许可的前提下,通过电子邮件的方式向目标用户传递有价值信息的一种网络营销手段。Email营销有三个基本因素:基于用户许可、通过电子邮件传递信息、信息对用户是有价值的。互联网技术对网络营销的影响

互联网作为网络营销的战场,其技术的发展为网络营销提供了技术手段,是影响网络营销方式的重要内容。在互联网技术发展的历史进程中,大致经历了以下几个时期:门户网站时期、搜索平台时期和用户原创页面时期,分别对网络营销的发展有重要的影响,特别是近期用户原创页面技术的发展开创了口碑营销的重要局面。

门户网站。以其可靠的信息来源,丰富的信息内容最先进入商家的视野,成为网络营销的第一平台。门户网站积累的用户数量和用户忠诚度能够有效的提高网络广告的效用。万瑞数据发布的《网络广告受众分析报告》显示,网民对大型门户网站信任度达到85.3%,网页广告的信任度为64%,大型门户网站的网页广告仍是最有效的网络广告形式。于此同时,综合门户网站也遭遇越来越多的挑战,其中精准匹配和广告形式多样化成为关键词。

搜索引擎技术。搜索引擎技术是互联网发展过程中的一大创举,极大的改变了互联网用户的网络使用习惯,同时将“搜索引擎营销”带入一个全盛时代。搜索引擎营销利用人们对搜索引擎的依赖和使用习惯,在人们检索信息的时候将营销信息传递给目标客户。基于搜索平台的营销策略关注目标消费者的搜索习惯以及推广信息的内容设置,以期实现两者的有效匹配,提高营销内容的客户到达率。

用户原创型内容发布技术。计算机终端发布技术和互动技术的广泛应用使互联网营销进入一个新的时代———互动时代,客户主导时代。环球资源Global Sources 旗下《世界经理人》推出的“以web2.0 环境下企业营销调查”为主题的调查结果显示,社区网站(如微博、社交网站、BBS 等)在受访者的工作及生活中占有极为重要的地位。用户原创型内容发布技术将“口碑传播”的效用扩大至网络范围,并且,通过提高消费者的卷入度增强口碑的力量。金立印对口碑传播和购买决策之间的关系进行了研究,结果表明负向口碑的影响力强于正向口碑;描述主观感受的信息影响力强于描述产品客观属性的信息;在口碑对消费者决策的程度受到消费者卷入度的影响。

5.网络广告对消费者有哪些影响?

1)、传播范围广,不受时间和空间的限制

Internet是一种能覆盖全球的公共网络,具有超容量的信息空间。互联网的全球性,决定了互联网上发布的广告也是全球性的。网络广告可以不受时间和空间的限制,通过国际互联网把广告信息24小时部间断地传播到世界各地,使得人们可以在任何时间、任何地点来点击查看这些广告。

2)、交互性强

与传统媒体不同,在网络上受众是广告的主人。他们不再被动地接受信息,而是根据自己地兴趣或需要区选择相应的广告信息。而且网络的传送速度极快,信息的发送和接受基本上是同步的。

3)、针对性明确

网络广告所针对的目标群体是确定的。由于点阅信息者即为有兴趣者,所以可以直 接命中潜在客户,还可以为不同的受众推出不同的广告内容,为其提供更好的服务。目 前己经出 现了 可以分析网站访问者的喜好几 精确定位投放广告的技术,这使得网上广告的针对性更强了。消费者也可以根据网络广告针对的具体方面,很快搜索到自己需要的 信息,享受其为自己提供的个性化服务。

4)、形式多样,感官性强

网络广告的形式多样:在尺寸上可以采取旗帜广告; 在技术上可以采用动画,FLASH,游戏等方式;在形式上可以在线收听,收看,试玩,调查等等。它可以集各种传统媒体 形式的著华,从而达到传统媒体无法具有的效果。网络广告通过图、声、文、像的形式,传送多感官的信息,让消费者如身临其境般地感受产品或服务。

由于网络广告具有上述种种传统媒体无法比拟的优势,消费者比较愿意尝试并接受网络广告这一新的广告形式,而商家也愿意在网上大做广告以提高品牌的知名度以及增加销售。这使得网络广告得以蓬勃发展。

6.网络营销对电子商务有什么影响?

5.网络综合布线实验报告心得 篇五

网络安全要从两方面来入手

第一、管理层面。

包括各种网络安全规章制度的建立、实施以及监督

第二、技术层面。

包括各种安全设备实施,安全技术措施应用等

按照你的描述 首先我提醒你一点

安全是要花钱的 如果不想花钱就你现有的这些设备

我认为应该从以下几点入手

一、制定并实施网络安全管理制度 包括服务器以及个人主机安全管理、包括个级别权限管理等等

二、制定并实施网络安全日常工作程序,包括监测上网行为、包括入侵监测

三、从技术层面上,你那里估计是一根专线接入后用交换机或者无线路由器DHCP分配IP地址供大家上网,这样的话你做不到上网行为管理,你需要一台防火墙进行包过滤以及日志记录或者作一台代理服务器进行上网行为管理并进行日志记录。

四、局域网内计算机系统管理 包括操作系统防病毒 更新补丁等工作 堡垒往往是从内部攻破 内部计算机中毒主动向外发送数据,造成泄密 这已经是很常见的事情所以做好主机防护很重要。

当然 如果您有钱 黑洞系统 入侵监测 漏洞扫描 多级防火墙 审计系统都可以招呼

最后提醒一点 那就是 没有绝对的安全 安全都是相对的

你需要什么级别的安全 就配套做什么级别的安全措施

管理永远大于技术 技术只是辅助手段

具体有什么问题 请更新问题 我会再来回答 或者用Baidu Hi来联系我

只是我不定期在

________________

怎么网络安全

1。

安装好杀毒软件和防火墙并及时更新。

2。

养成良好的上网习惯,不去点击一些不良网站和邮件。

3。

定期杀毒,及时给系统打好补丁。

4。

学习网络安全知识,远离黑客工具。

______________________________

网络安全学习内容

1。

防火墙(正确的配置和日常应用)

2。

系统安全(针对服务器的安全加固和WEB代码的安全加固以及各种应用服务器的组建,例如WEB MAIL FTP等等)

3。

安全审核(入侵检测。

日志追踪)

4。

网络工程师,CCNA课程(网络基础知识。

6.C#基础编程设计实验报告 篇六

一、实验目的

1、熟悉 Visual Studio.NET 开发环境。

2、掌握 C#应用程序的基本操作过程。

3、掌握 C#的数据类型,运算符以及表达式的使用。

4、掌握分支和循环语句的使用方法。

5、掌握一维数组,二维数组及数组型数组的使用。

二、实验要求

(1)编写程序要规范、正确,上机调试过程和结果要有记录(2)做完实验后给出本实验的实验报告。

三、实验设备、环境

安装有 Visual Studio.NET 软件。

四、实验步骤

1、分析题意。

2、根据题目要求,新建项目。

3、编写并输入相关的程序代码。

5、运行与调试项目。

6、保存项目。

五、实验内容

1、编写一个简单的控制台应用程序,打印一行文字(如你的姓名)。

using System;using System.Collections.Generic;

using System.Linq;using System.Text;

namespace one.first {

class Program

{

static void Main(string[] args)

{

System.Console.WriteLine(“我叫王蕾!”);

}

} } 2、编写一个简单的 Windows 应用程序,在窗体 Load 事件中书写代码,标签中显示你的姓名。

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;

using System.Windows.Forms;

namespace one.second {

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

this.Text = “Windows 程序”;

Label lblShow = new Label();

lblShow.Location = new Point(20, 30);

lblShow.AutoSize = true;

lblShow.Text = “王蕾!”;

this.Controls.Add(lblShow);

}

}

} 3、编写一个一个程序,用来判断输入的是大写字母,小写字母,数字还是其他的字符。

using System;using System.Collections.Generic;using System.Text;

namespace one.third {

class Program

{

static void Main(string[] args)

{

Console.WriteLine(“请输入一个字符:”);

char c = Convert.ToChar(Console.ReadLine());

if((c>=“a”&&c<=“z”)||(c>=“A”&&c<=“Z”))

Console.WriteLine(“这是一个字母”);

if(char.IsDigit(c))

Console.WriteLine(“这是一个数字”);

}

}

} 4、分别用 while,do-while,for 循环求 1 到 100 的和。

using System;using System.Collections.Generic;using System.Text;

namespace one.forth.one {

class Program

{

static void Main(string[] args)

{

int i = 1, sum = 0;

while(i <= 100)

{

sum = sum + i;

i++;

}

Console.WriteLine(“1 到 100 的自然数之和为:” + sum);

}

}

} using System;using System.Collections.Generic;using System.Text;

namespace one.forth.two {

class Program

{

static void Main(string[] args)

{

int i = 1, sum = 0;

do

{

sum = sum + i;

i++;

}

while(i <= 100);

Console.WriteLine(“1 到 100 的自然数的和为:” + sum);

}

}

} using System;using System.Collections.Generic;using System.Text;

namespace one.forth.three {

class Program

{

static void Main(string[] args)

{

int i , sum = 0;

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

{

sum = sum + i;

}

Console.WriteLine(“1 到 100 的自然数的和为:” + sum);

}

} } 5、定义一个一维数组,用随机数为此赋值,用 foreach 循环输

出其中的内容。

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace first.five {

class Program

{

static void Main(string[] args)

{

int[] a = {0,1,2,3,4};

foreach(int i in a)

{

Console.WriteLine(a[i]);

}

}

} } 6、实现二维数组的输入和输出。

using System;

using System.Collections.Generic;using System.Linq;using System.Text;

namespace first.six {

class Program

{

static void Main(string[] args)

{

int[,] a = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } };

{

for(int i = 0;i < 2;i++)

{

for(int j = 0;j < 3;j++)

{ Console.WriteLine(a[i, j]);}

}

}

}

} }

7、实现数组型数组的输入和输出。

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace first.seven {

class Program

{

static void Main(string[] args)

{

int[][] a = new int[][] { new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 } };

for(int i = 0;i < a.Length;i++)

{

for(int j = 0;j < a[i].Length;j++)

{

Console.WriteLine(a[i][j]);

}

}

}

} } 六、实验体会(遇到问题及解决办法,编程后的心得体会)

刚开始编程的时候觉得无从下手,尽管我们已经学了好几种高级编程语言,但每个都有其独特的地方,稍不留神就会混淆。

通过这次实验,我体会到课后复习巩固的重要性。在编程的时候,很多内容都不记得,需要去翻书。不得不说,实验是巩固课程的好方法!本次实验,我熟悉 Visual Studio.NET 开发环境;掌握了 C#应用程序的基本操作过程;掌握了 C#的数据类型,运算符以及表达式的使用;掌握了分支和循环语句的使用方法以及一维数组,二维数组及数组型数组的使用。

实验项目名称:

类与对象

实验学时:

同组学生姓名:

实验地点:

1318

实验日期:

月 26 日-11 月 9 日 实验成绩:

批改教师:

批改时间:

实验 2

类与对象

一、实验目的、要求

(1)掌握类的定义和使用;(2)掌握类的数据成员,属性的定义和使用;(3)掌握方法的定义,调用和重载以及方法参数的传递;(4)掌握构造函数的定义和使用。

二、实验要求

(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。

三、实验设备、环境

安装有 Visual Studio.NET 软件。

四、实验步骤

1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。

五、实验内容

1、定义一个方法,实现两个数的交换(分别把参数按值传递和按引用传递)。

using System;

using System.Collections.Generic;using System.Text;

namespace second.one {

class Program

{

static void Main(string[] args)

{

Swaper s = new Swaper();

Console.WriteLine(“输入 x 的值:”);

int a = Convert.ToInt32(Console.ReadLine());

Console.WriteLine(“输入 y 的值:”);

int b=Convert.ToInt32(Console.ReadLine());

Console.WriteLine(s.Swap(a, b));

Console.WriteLine(s.Swap(ref a,ref b));

}

class Swaper

{

public string Swap(int x, int y)

{

int temp;

temp = x;

x = y;

y = temp;

return string.Format(“按值传参交换之后:x={0},y={1}”,x,y);

}

public string Swap(ref int x, ref int y)

{

int temp;

temp = x;

x = y;

y = temp;

return string.Format(“按引用传参交换之后:x={0},y={1}”, x, y);

}

}

} }2、定义一个方法,实现数组的排序。

using System;using System.Collections.Generic;using System.Text;

namespace second.two {

class Program

{

public class sort

{

public void change(int[] a)

{

Console.WriteLine(“排序前,数组顺序为:”);

show(a);

int i, j, m;

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

{

m = a[i];

j = i-1;//a[j]为数组前一个值

while(j >= 0 && m > a[j])//判断 i 下标的数是否大于 j 下标的数

{

a[j + 1] = a[j];//如果 i 下标大于j 把 j 往后移一个位

j--;

}

a[j+1] = m;//当不大于 j 的时候就把 M的值放到 i 下标下面 j+1 是为了下标减到最前时考虑-1 + 1 还是下标的最前面

}

Console.WriteLine(“排序后,数组顺序为:”);

show(a);

}

void show(int[] a)

{

int i;

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

{

Console.Write(“{0} ”, a[i]);

}

Console.WriteLine();

}

}

static void Main(string[] args)

{

int[] a ={ 4, 7, 1, 2, 5, 8, 9, 10, 3, 6 };

sort s=new sort();

s.change(a);

}

} } 3、定义一个学生类,把学生类当作对象来传递。

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace second.three {

class Program

{

public class student

{

public void st()

{

int a = 999;

}

}

public class st

{

public void aa(student s)

{

Console.WriteLine(s);

}

}

static void Main(string[] args)

{

student s=new student();

st s1 = new st();

s1.aa(s);

}

} } 4、定义一个方法,求两个数的和和差,通过参数把这两个值带回。

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace

second.four

{

class Program

{

public class sum

{

public void ab(out int m, out

int n,int a, int b)

{

m = a + b;

n = a-b;

}

}

static void Main(string[] args)

{

sum s = new sum();

int a = 10;

int b = 3;

int m, n;

s.ab(out m, out n, a, b);

Console.WriteLine(“{0}+{1}={2};{0}-

{1}={3}”,a,b,m,n);

}

} } 5、用构造函数重载,实现矩形的面积,圆的面积,梯形的面积; using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace secong.five {

class Program

{

public class square

{

public double area;

public square(){ }

public square(double a)

{

area = a * a * 3.14;

}

public square(double a, double b)

{

area = a * b;

}

public square(double a, double b, double h)

{

area =(a + b)/ 2 * h;

}

}

static void Main(string[] args)

{

double a, b, h,area;

a = 2;b = 5;h = 3;

square s = new square(a,b);

Console.WriteLine(“求矩形面积,长为 a={0},宽为 b={1},面积 area={2}”,a,b,s.area);

square i = new square(a);

Console.WriteLine(“求圆形面积,半径 a={0},面积 area={1}”, a, i.area);

square j = new square(a, b, h);

Console.WriteLine(“求梯形面积,上底为a={0},下底为 b={1},高为 h={2}面积 area={3}”, a, b,h, j.area);

}

} } 6、设计一个 windows 应用程序,在该程序中定义一个学生类和班级类,以处理每个学生的学号,姓名,语文,数学和英语成绩,要求:

1)能查询每个学生的总成绩。

2)能显示全班前三名的名单。

3)能显示单科成绩最高分和不及格的学生名单。

4)能统计全班学生的平均成绩。

5)能显示各科成绩不同分数段的学生人数的百分比。

Student 类:

using System;using System.Collections.Generic;using System.Text;namespace Test2_6 {

public class Student

{

public string stuNo;

public string name;

public double chinese;

public double math;

public double english;

public double sumScore

{

get { return chinese + math + english;}

}

} } StudentList 类:

using System;using System.Collections.Generic;using System.Text;namespace Test2_6 {

public class StudentList:Student

{

int snums;

public Student[] stu=new Student[50];

public StudentList()

{

snums = 0;

}

public void addstu(Student s)

{

stu[snums] = s;

snums++;

}

public int searchstu(string name)

{

int i;

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

{

if(stu[i].name == name)break;

}

if(i == snums)return-1;

else return i;

}

//给所有成绩排序,用后面实现前三名的排名

public void ProThree()

{

for(int i = 0;i < snums;i++)

{

int k = i;

for(int j = i + 1;j < snums;j++)

if(stu[j].sumScore > stu[k].sumScore)k = j;

if(k!= i)

{

Student temp;

temp = stu[k];

stu[k] = stu[i];

stu[i] = temp;

}

}

}

//显示单科成绩的最高分

public int HighScore(int k)

{

int p = 0;

if(k == 0)

{

for(int i = 1;i < snums;i++)

if(stu[i].math > stu[p].math)p = i;

}

else if(k == 1)

{

for(int i = 1;i < snums;i++)

if(stu[i].chinese > stu[p].chinese)p = i;

}

else

{

for(int i = 1;i < snums;i++)

if(stu[i].chinese > stu[p].chinese)p = i;

}

return p;

}

//显示不及格名单

public string

BuhgName(int k)

{

string name=“ ”;

if(k == 0)

{

for(int i = 0;i < snums;i++)

if(stu[i].math < 60)name +=stu[i].name+“n”;

}

else if(k == 1)

{

for(int i = 0;i < snums;i++)

if(stu[i].chinese < 60)name += stu[i].name + “n”;

}

else

{

for(int i = 0;i < snums;i++)

if(stu[i].english < 60)name += stu[i].name + “n”;

}

return name;

}

public string getHL()

{

string Maxer = “ ”, Loser = “ ”;

Maxer += “ 单 科 数 学 最 高 :

” + stu[HighScore(0)].name + “n”;

Maxer += “ 单 科 语 文 最 高 :

” +

stu[HighScore(1)].name + “n”;

Maxer += “ 单 科 英 语 最 高 :

” + stu[HighScore(2)].name + “n”;

Loser += “单科数学挂科名单:” +BuhgName(0)+ “n”;

Loser += “单科语文挂科名单:” + BuhgName(1)+ “n”;

Loser += “单科英语挂科名单:” + BuhgName(2)+ “n”;

return Maxer + “n” + Loser;

}

//全班的平均成绩

public string SumScore()

{

double sum = 0;

double avg=0;

for(int i = 0;i < snums;i++)

{

sum = sum + stu[i].sumScore;

}

avg = sum / snums;

return “班级总分平均分:”+avg;

}

//各科成绩不同分数段的学生百分比

//英语成绩各分数段百分比

public string PerC()

{

double per1, per2, per3, per4, per5;

double sumC1 = 0, sumC2 = 0, sumC3 = 0, sumC4 = 0, sumC5 = 0;

for(int i = 0;i < snums;i++)

{

if((stu[i].chinese > 90)&&(stu[i].chinese <= 100))

{

sumC1++;

}

else if((80 <= stu[i].chinese)&&(stu[i].chinese < 90))

{

sumC2++;

}

else if((70<=stu[i].chinese)&&(stu[i].chinese < 80))

{

sumC3++;

}

else if((60<=stu[i].chinese)&&(stu[i].chinese < 70))

{

sumC4++;

}

else

{sumC5++;}

}

per1 = sumC1 / snums;

per2 = sumC2 / snums;

per3 = sumC3 / snums;

per4 = sumC4 / snums;

per5 = sumC5 / snums;

return “ 语 文 成 绩 百 分 比 :”+“n”+“90~100:”+per1+“

80~90:”+per2+“

80~70:”+per3+“

70~60:”+per4+“

以下的:”+per5;

}

//数学成绩各分数段百分比

public string PerM()

{

double per1, per2, per3, per4, per5;

double sumC1 = 0, sumC2 = 0, sumC3 = 0, sumC4 = 0, sumC5 = 0;

for(int i = 0;i < snums;i++)

{

if((stu[i].math> 90)&&(stu[i].math <= 100))

{

sumC1++;

}

else if((80 <= stu[i].math)&&(stu[i].math < 90))

{

sumC2++;

}

else if((70 <= stu[i].math)&&(stu[i].math < 80))

{

sumC3++;

}

else if((60 <= stu[i].math)&&(stu[i].math < 70))

{

sumC4++;

}

else

{ sumC5++;}

}

per1 = sumC1 / snums;

per2 = sumC2 / snums;

per3 = sumC3 / snums;

per4 = sumC4 / snums;

per5 = sumC5 / snums;

return string.Format(“数学成绩百分比:” + “n” + “90~100:” + per1 + “

80~90:” + per2 + “

80~70:” + per3 + “

70~60:” + per4 + “

以下的:” + per5);

}

//英语成绩各分数段百分比

public string PerE()

{

double per1, per2, per3, per4, per5;

double sumC1 = 0, sumC2 = 0, sumC3 = 0, sumC4 = 0, sumC5 = 0;

for(int i = 0;i < snums;i++)

{

if((stu[i].english > 90)&&(stu[i].english <= 100))

{

sumC1++;

}

else if((80 <= stu[i].english)&&(stu[i].english < 90))

{

sumC2++;

}

else if((70 <= stu[i].english)&&(stu[i].english < 80))

{

sumC3++;

}

else if((60 <= stu[i].english)&&(stu[i].english < 70))

{

sumC4++;

}

else

{ sumC5++;}

}

per1 = sumC1 / snums;

per2 = sumC2 / snums;

per3 = sumC3 / snums;

per4 = sumC4 / snums;

per5 = sumC5 / snums;

return string.Format(“数学成绩百分比:” + “n” + “90~100:” + per1 + “

80~90:” + per2 + “

80~70:” + per3 + “

70~60:” + per4 + “

以下的:” + per5);

}

} } From 窗体代码:

using System;using System.Collections.Generic;

using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test2_6 {

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

public StudentList sl = new StudentList();

private void btnAdd_Click(object sender, EventArgs e)

{

Student s = new Student();

s.stuNo = txtStuNo.Text;

s.name = txtName.Text;

s.chinese = Convert.ToDouble(txtChina.Text);

s.math = Convert.ToDouble(txtMath.Text);

s.english = Convert.ToDouble(txtEng.Text);

sl.addstu(s);

MessageBox.Show(“添加成功”);

}

private void btnSearch_Click(object sender, EventArgs e)

{

int pos = sl.searchstu(this.textBox1.Text);

if(pos!=-1)

{

label7.Text = this.textBox1.Text + “的总成绩:” + sl.stu[pos].sumScore;

}

else { MessageBox.Show(“不存在这个人!”);}

}

private void btnFinish_Click(object sender, EventArgs e)

{

label7.Text = “前 3 名:”+“n”;

for(int i = 0;i < 3;i++)

{

sl.ProThree();

label7.Text+= sl.stu[i].name+“n”;

}

label7.Text += sl.getHL()+“n”;

label7.Text += Convert.ToString(sl.SumScore())+“n”;

label7.Text += sl.PerC()+“n”;

label7.Text += sl.PerM()+“n”;

label7.Text += sl.PerE()+“n”;

}

} }

六、实验体会(遇到问题及解决办法,编程后的心得体会)

通过本次实验,我掌握了类的定义与使用;掌握了类的数据成员,属性的定义和使用;掌握了方法的定义,调用和重载以及方法参数的传递以及构造函数的定义和使用。值得注意的是:本次实验中 return的使用以及所在的位置,类型转换时也经常用到

实验项目名称:

继承与多态

实验学时:

同组学生姓名:

实验地点:

1318

实验日期:月 16 日-11 月 30 日 实验成绩:

批改教师:

批改时间:

实验 3

继承与多态

一、实验目的、要求

(1)掌握类的继承性与多态性;(2)掌握虚方法的定义以及如何使用虚方法实现多态;(3)掌握抽象类的定义以及如何使用抽象方法实现多态; 二、实验要求

(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。

三、实验设备、环境

安装有 Visual Studio.NET 软件。

四、实验步骤

1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。

五、实验内容

1、设计一个 Windows 应用程序,在该程序中首先构造一个学生基本类,再分别构造小学生、中学生、大学生派生类,当输入相关数据,单击不用的按钮时,将分别创建不同的学生类对象,并输出当前学生的总人数,该学生的姓名,学生类型,平均成绩。

Student 类:

using System;using System.Collections.Generic;using System.Text;namespace Test3_1 {

public abstract class Student

{

protected string name;

protected int age;

public static int number;

public Student(string name, int age)

{

this.name = name;

this.age = age;

number++;

}

public string Name

{

get { return name;}

}

public abstract double Average();

}

public class Pupil : Student

{

protected double chinese;

protected double math;

public Pupil(string name, int age, double chinese, double math)

: base(name, age)

{

this.chinese = chinese;

this.math = math;

}

public override double Average()

{

return(chinese + math)/ 2;

}

}

public class Middle : Student

{

protected double chinese;

protected double math;

protected double english;

public Middle(string name, int age, double

chinese, double math, double english)

: base(name, age)

{

this.chinese = chinese;

this.math = math;

this.english = english;

}

public override double Average()

{

return(chinese + math + english)/ 3;

}

}

public class College : Student

{

protected double required;

protected double elective;

public College(string name, int age, double required, double elective)

: base(name, age)

{

this.required = required;

this.elective = elective;

}

public override double Average()

{

return(required + elective)/ 2;

}

} } Form 窗体内的代码:

using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test3_1 {

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void btnSmall_Click(object sender, EventArgs e)

{

Pupil p = new Pupil(txtName.Text,Convert.ToInt32(txtAge.Text),Convert.ToDouble(txtChinese.Text),Convert.ToDouble(txtMath.Text));

lblShow.Text += “ 总 人 数 :” +Convert.ToString(Student.number)+ “,” + “姓名:” + p.Name + “,” + “小学生” + “,” + “平均成绩为:” + p.Average()+“n”;

}

private void btnMiddle_Click(object sender, EventArgs e)

{

Middle m = new Middle(txtName.Text, Convert.ToInt32(txtAge.Text), Convert.ToDouble(txtChinese.Text), Convert.ToDouble(txtMath.Text),Convert.ToDouble(TxtEnglish.Text));

lblShow.Text += “ 总 人 数 :” + Convert.ToString(Student.number)+ “,” + “姓名:” + m.Name +

“,” + “中学生” + “,” + “平均成绩为:” + m.Average()+ “n”;

}

private void btnBig_Click(object sender, EventArgs e)

{

College c = new College(txtName.Text, Convert.ToInt32(txtAge.Text), Convert.ToDouble(txtChinese.Text), Convert.ToDouble(txtMath.Text));

lblShow.Text += “ 总 人 数 :” + Convert.ToString(Student.number)+ “,” + “姓名:” + c.Name + “,” + “大学生” + “,” + “平均成绩为:” + c.Average()+ “n”;

}

} } 2、设计一个 Windows 应用程序,在该程序中定义平面图形抽象类和派生类圆,矩形和三角形。

Figure 类代码:

using System;using System.Collections.Generic;using System.Text;namespace Test3_2

{

public abstract class Figure

{

public abstract double Area();

}

public class Circle:Figure

{

double radius;

public Circle(double r)

{

radius = r;

}

public override double Area()

{

return radius * radius * 3.14;

}

}

public class JUxing:Figure

{

double chang;

double kuan;

public JUxing(double c, double k)

{

this.chang = c;

this.kuan = k;

}

public override double Area()

{

return chang * kuan;

}

}

public class San:Figure

{

double bian;

double heigth;

public San(double b, double h)

{

this.bian = b;

this.heigth = h;

}

public override double Area()

{

return bian * heigth / 2;

}

} } Form 窗体代码:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test3_2 {

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void btnCircle_Click(object sender, EventArgs e)

{

Circle c=new

Circle(Convert.ToInt32(TxtChang.Text));

lblShow.Text = “圆的面积为:” + c.Area();

}

private void btnJu_Click(object sender, EventArgs e)

{

JUxing j = new JUxing(Convert.ToInt32(TxtChang.Text),Convert.ToInt32(TxtHigh.Text));

lblShow.Text = “矩形的面积为:” + j.Area();

}

private void btnSan_Click(object sender, EventArgs e)

{

San s = new San(Convert.ToInt32(TxtChang.Text), Convert.ToInt32(TxtHigh.Text));

lblShow.Text = “三角形的面积为:” + s.Area();

}

} }

3、定义一个 Person 类,包含姓名字段和一个方法,早上 8:30学生开始上课,教师开始讲课。分别用 new 关键字,虚方法,抽象类实现多态性。

New 关键字:

using System;using System.Collections.Generic;using System.Text;

namespace third.three {

class Program

{

static void Main(string[] args)

{

Student s=new Student(“学生”);

Teacher t=new Teacher(“教师”);

Console.WriteLine(s.name+s.work());

Console.WriteLine(t.name+t.work());

Console.ReadLine();

}

}

public class Person

{

public string name;

public interface method

{ string work();}

}

public class Student:Person

{

public Student(string name)

{ this.name = name;}

public string work()

{ return “早上 8:30 开始上课”;}

}

public class Teacher:Person

{

public Teacher(string name)

{ this.name = name;}

public string work()

{ return “开始讲课”;}

} } 虚方法:

using System;

using System.Collections.Generic;using System.Text;

namespace third.three.two {

class Program

{

static void Main(string[] args)

{

Student s = new Student(“张三”,“学生”);

PersonWork(s);

Teacher t=new Teacher(“李斯”,“教师”);

PersonWork(t);

}

private static void PersonWork(Person Person)

{ Console.WriteLine(Person.Work());}

}

public class Person

{

public string name;

public Person(string name)

{ this.name = name;}

public virtual string Work()

{ return string.Format(“Person{0}:早上 8:30 开始”,name);}

}

public class Student : Person

{

private string type;

public Student(string name, string type)

: base(name)

{ this.type = type;}

public override string Work()

{

return string.Format(“Person{0}:早上 8:30 开始上课”, name);

}

}

public class Teacher : Person

{

private string type;

public Teacher(string name, string type)

: base(name)

{ this.type = type;}

public override string Work()

{

return string.Format(“Person{0}:开始讲课”, name);

}

} }

抽象类:

using System;using System.Collections.Generic;using System.Text;

namespace third.three.three {

class Program

{

static void Main(string[] args)

{

Student s = new Student(“张三”, “学生”);

PersonWork(s);

Teacher t = new Teacher(“李斯”, “教师”);

PersonWork(t);

}

private static void PersonWork(Person person)

{

Console.WriteLine(person.Work());

}

}

public abstract class Person

{

public string name;

public Person(string name)

{ this.name = name;}

public abstract string Work();

}

public class Student : Person

{

private string type;

public Student(string name, string type)

: base(name)

{

this.type = type;

}

public override string Work()

{

return string.Format(“Person{0}:早上 8:30 开始上课”, name);

}

}

public class Teacher : Person

{

private string type;

public Teacher(string name, string type)

: base(name)

{

this.type = type;

}

public override string Work()

{

return string.Format(“Person{0}:开始讲课”, name);

}

}

}

六、实验体会(遇到问题及解决办法,编程后的心得体会)

通过本次实验,我理解了类的继承性与多态性;掌握了虚方法的定义以及如何用虚方法来实现多态;掌握了抽象类的定义以及如何用抽象方法来实现多态。

这次实验与前两次不同,采用 Windows 应用程序,既涉及到代码段也涉及到界面的设计。所以,勉强通过实验。

实验项目名称:

接口、文件和流

实验学时:

同组学生姓名:

实验地点:

A205

实验日期:月 7 日-12 月 21 日 实验成绩:

批改教师:

批改时间:

实验 4

接口、文件和流

一、实验目的

(1)掌握接口的定义及使用方法;(2)掌握流,序列化和反序列化的概念和使用方法;(3)掌握流文件的读写操作类及其使用方法;(4)掌握 OpenFileDialog,SaveFileDialog 等控件的使用。

二、实验要求

(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。

三、实验设备、环境

安装有 Visual Studio.NET 软件。

四、实验步骤

1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。

五、实验内容

1、定义一个 Person 类,包含姓名字段和一个方法,早上 8:30学生开始上课,教师开始讲课。用接口来实现。

using System;using System.Collections.Generic;

using System.Text;namespace Test4_1 {

class Program

{

static void Main(string[] args)

{

Student s = new Student(“张三”,“学生”);

Console.WriteLine(s.Work());

Teacher t = new Teacher(“李四”,“老师”);

Console.WriteLine(t.Work());

}

public abstract class Person

{

public string name;

public Person(string name)

{

this.name = name;

}

}

interface IPerson

{

string type { get;}

string Work();

}

public class Student :Person, IPerson

{

public string type

{

get { return string.Format(“老师”);}

}

public Student(string name, string type)

: base(name)

{

this.name=name;

}

public string Work()

{

return string.Format(“Person{0}:早上 8:30 开始上课”, name);

}

}

7.网络营销教学实验报告二 篇七

班级:营销1001

姓名:苏玲玲

学号:102507128 选定一个网址:

一、利用网站专业性免费评价工具(站长工具-中国站长站http://tool.chinaz.com/)进行在线评价,记录每类指标评价结果如下:

1、网址在各大搜索引擎的收录反链查询结果:

2、关键词“蒙牛集团”的网站在百度的收录结果:前100条有2条记录:

3、网页关键词密度检测结果: ①关键词:“蒙牛”

②关键词:“蒙牛集团”

4、网址META信息检测结果如下:

5、站内链接分析:

6、ALEXA排名查询:

7、Google PR值查询:

8、PR输出值查询:

二、人工评价:

1、网站概况:

(1)布局结构:“蒙牛集团”的网站界面较为简单明了,把公司的项目内容都罗列了出来而且界面的色彩较为鲜明,能给予较好的视觉效应,以绿色表达了它贴近自然的理念,利用动态的方式将公司的最新动态展示出来,给予人不一样的视觉效果,使人觉得简单明了,一目了然,可以吸引来访者的注意,可以使浏览者根据自己的搜索目标浏览该网页并获得所需的信息。(2)网站栏目:

①可以通过主页可以到达任何一个一级栏目首页及最终页。②通过任何一个栏目也可以返回上一级栏目页及首页。③改网站建有英文和中文两个版本且链接正常。

④一级栏目主页面的主题明确,不存在混乱的情况。(3)信息的表示及位置:

①在首页的左上角是蒙牛的标志。

②主页标题栏用绿色突显,并放在了页面的顶部,引人注目。③页面没有其他企业的广告。

④站内搜索和英文的切换虽然是在页面的顶部,但是相较于标题栏颜色较浅不是很醒目。

⑤图片上都有明显的文字说明,对其含义一目了然。

2、网站内容:

该企业网站主要的访问者有:直接用户、合作商、竞争者等。其中现有用户和潜在用户是网站重点照顾对象。该企业网站的一般内容:“蒙牛公司”的历史及简介、企业产品介绍、企业最新的动态、企业的管理结构和招聘信息。

3、网站的功能:

该网站目前实现的最主要功能仅仅是作为企业相关内容的宣传和信息发布用,也就是说该企业的网站只是一个展示平台。仅有的营销功能是方便来访者了解企业的产品的详细信息和招聘信息。

4、网站服务:

产品介绍、招聘信息、企业最新动态、公益活动

5、网站可信度研究: 网站信息准确性比较强;网站显示出一个真实的企业;强调产品的优质和提供的服务及专业;显示出网站背后有一个值得信任的团队存在;用户比较方便的与企业联系;经常更新,导航合理;促销适可而止,各个目标链准确,没有太多的广告。

三、网站的优、缺点

1、蒙牛网站的优点:

①网站信息的有效性(及时更新),蒙牛经常对其网站的内容进行更新,企业有什么最新产品和活动都会发布在网站上。②网页下载速度比较快。

③网站简单易用(查找信息方便),蒙牛网站的分类清晰,每一个页面都有搜索引擎的帮助。

④保持网站功能正常运行,至少我每次去看这个网站的时候它都是正常运转的。

⑤保持网络链接有效,蒙牛网站的内部连接和外部链接是同样准确和有效的。⑥避免对用户造成滋扰,没有类似强制插件、音乐等网站内容影响用户的浏览。

2、蒙牛网站的缺点:

①没有电子商务的环节,只限于在线推销,而没有提供交易的平台,即没有在线订购销售环节,没有设置优惠券等促销方法。

②产品信息不够全面,相关信息较少,介绍简单,用户无法获得有价值的信息,新产品推荐不突出,用户很难找到相关信息。企业可对不同层次的用户进行针对性介绍。

③缺少与用户沟通环节,仅仅设置了顾客反馈平台,没有设置在线问题解答平台,无法清楚了解到顾客个性化需求。

(四)建议与总结:

企业网站建设的完成并不意味着网络营销的终结,以网站推广、销售促进、顾客关系和服务为标准等是网络营销的重要内容,无论大型企业还是中小企业,都需要重视网络营销的真正含义和主要内容,而不仅仅是企业网站建设本身。通过本次实验对蒙牛网站的整体网站诊断及分析评价,我了解到,整体来看,蒙牛公司在网络结构、内容,功能方面还是很不错的,页面清晰,颜色搭配合理,布局紧凑,个性突出,广告宣传很独特,出现的问题也都是一般传统企业所共性的问题。而对于蒙牛这个网站来说,首先,该企业需要在原来的网站上建立一个网上交易的平台,即在线订购系统和一些促销活动,将电子商务真正的应用到企业的网站里。其次,丰富网站的信息,在可以建立一个新品频道,主打新产品,这样可以起到产品的推广和宣传的作用。然后,设立网站的在线客服方便来访者进行咨询,有些消费者没有耐心,不愿通过的阅读来筛选出他们想要的信息,在线客服不仅可以为消费者提供咨询的服务,同时它也可以将消费者的问题向企业及时的反应出来,可以让高层有充裕的时间想出解决办法。

8.计算机网络实验报告 篇八

姓 名 学 号 专 业 班 级 指导教师毛绪纹

2017.12 实验2-1 PPP 与 PPPoE 学习

实验配置说明

该实验主要用于观察PPPoE和PPP的数据封装格式。其中,PC1到ISP1段的链路使用PPPoE,ISP1已经配置为PPPoE服务器。ISP1和ISP2之间的链路使用PPP。实验目的

了解PPP协议的封装格式。

了解PPPoE协议的封装格式。实验步骤

任务:观察PPP协议和PPPoE协议的数据封装格式

步骤1:准备工作

单击主窗口右下角 Realtime 和 Simulation 模式切换按钮数次,直至交换机指示灯呈绿色

步骤2:建立PPPoE连接

单击拓扑图中的 PC1,在弹出窗口中单击 Desktop 选项卡,选择桌面上 的 Command 工具,在其中输入 ipconfig 命令查看 PC1 的 IP 地址信息,PC1 在初始状态下并未配置 IP 地址。选择 PPPoE 拨号工具,在弹出窗口中输入拨号 信息,即用户名(User Name)和密码(Password):ISP1 预设了两个用户 名,分别为 user 和 admin,密码与用户名相同。输入拨号信息后单击 Connect 按钮,建立 PPPoE 连接。关闭 PPPoE 拨号窗口,重新打开 Command 工具,输入 ipconfig 命令查 看 PC1 是否获取到 IP 地址。如已获取到 ISP1 预设的地址池范围内的 IP 地 址,则表示 PPPoE 拨号成功。

步骤3:添加并捕获数据包

进入 Simulation(模拟)模式。设置 Event List Filters(事件列表过滤器)只显示 ICMP 事件。单击 Add Simple PDU(添加简单PDU)按钮,在拓扑图中添加PC1 向 PC2 发送的数据包。单击 Auto Capture/Play(自动捕获/播放)按钮捕获数据。此时PC1 上出现信封图标,并在信封图标上闪烁“√”图标。此时可再次单击 Auto Capture/Play(自动捕获/播放)按钮停止捕获数据包。

步骤4:观察PPPoE协议封装格式

选择事件列表中PC1 到Switch0 或者 Switch0 到 ISP1 的数据包,即事件 列表中的第二或第三个数据包。单击其 Info 项上的色块,在弹出的 PDU 信 息窗口中选择 Inbound PDU Details 选项卡。

步骤5:观察PPP协议的封装格式 选择事件列表中 ISP1 到 ISP2 的数据包,即事件列表中第四个数据包。单击其 Info 项上的色块,在弹出的 PDU 信息窗口中选择 Inbound PDU Details 选项卡。观察 PPP 的封装,将鼠标焦点置于协议某字段内,按住鼠 标左键并上下或左右拖动鼠标可以观察到该字段完整的取值。

思考题:

1.ADSL 接入采用 PPPoE 的优点有哪些?

答:PPPoE具有较高的性能价格比。实用方便,实际组网方式也很简单,大大降低了网络的复杂程度。2.PPPoE 中,PPP 帧和 Ethernet 帧的封装关系是什么? 答:PPPOE的封装层次:IP->PPP->PPPOE->Ethernet.实验2-以太网帧的封装实验

实验目的

观察以太网帧的封装格式。

对比单播以太网帧和广播以太网帧的目标MAC地址。实验步骤

(1)任务一:观察单播以太网帧的封装

步骤1:准备工作

单击主窗口右下角 Realtime 和 Simulation 模式切换按钮数次,直至交换机指示灯呈绿色。

步骤2:捕获数据包

进入 Simulation(模拟)模式。设置 Event List Filters(事件列表过滤器)只显示 ICMP 事件。单击 Add Simple PDU(添加简单 PDU)按钮,在拓扑图中添加 PC0 向 PC2 发送的数据包。单击 Auto Capture/Play(自动捕获/执行)按钮,捕获数据包。当 PC2 发送的响应包返回 PC0 后通信结束,再次单击 Auto Capture/Play(自动捕获/执行)按钮,停止数据包的捕获。

步骤3:观察以太网帧的封装格式

选择事件列表中第二个数据包(即 PC0 到 Switch0 的数据包),单击其 右端 Info 项中的色块。注意弹出窗口顶端的窗口信息:PDU Information at Device:Switch0,即当前查看的是交换机 Switch0 上的 PDU 信息。在弹出 窗口中选择 Inbound PDU Details 选项卡。观察其中 Ethernet(以太网)对应的封装格式。

步骤4:观察交换机是否会修改以太网帧各字段取值

选择事件列表中第三个数据包(即 Switch0 到 PC2 的数据包),单击其 右端 Info 项中的色块。注意弹出窗口顶端的窗口信息: PDU Information at Device:PC2,即当前查看的是 PC2 接收到的 PDU 信息。在弹出窗口中选择 Inboud PDU Details 选项卡。仔细观察其中 Ehternet 各字段取值,与步骤 2 中观察的各字段取值进行 对比,哪些字段取值发生了变化?重点观察 DEST MAC 和 SRC MAC。

(2)任务二:观察广播以太网帧的封装

步骤1:捕获数据包

单击 Add Complex PDU(添加复杂 PDU)按钮,单击 PC0,在弹出 的对话框中设置参数:Destination IP Address(目标 IP 地址)设置为 255.255.255.255(这是一个广播地址,表示该数据包发送给源站点所在广 播域内的所有站点),Source IP Address(源 IP 地址)设置为 192.168.1.1(该实验拓扑中预设的 PC0 的 IP 地址),Sequence Number(序列号)设置 为 1,Size 设置为 0,Simulation Settings(模拟设置)选中 One Shot,其 对应的 Time 设置为 1,然后单击该对话框下方的 Create PDU 按钮,创建数据包单击 Auto Capture/Play(自动捕获/执行)按钮,捕获数据包。

步骤2:观察该广播包的以太网封装 选择事件列表中第二个数据包(即 PC0 到 Switch0 的数据包),单击其 右端 Info 项中的色块。在弹出窗口中选择 Inboud PDU Details 选项卡。观察其 Ethernet 的封装,重点观察其 DEST MAC 字段的取值并进行记 录。结合背景知识中 MAC 地址的类型,思考 DEST MAC 字段取值的含义。

思考题

1.任务一中,观察到的以太网帧封装格式中前导码字段的取值是什 么?阐述其在数据帧传输过程中的作用。

答:任务一中,前导码字段取值为10101010···1010;

作用:以太网使用曼彻斯特编码传输数据,其特征是每个码元中间有一次电压的跳变,用于接收方提取同步信号,实现与发送方的时钟同步。

2.任务一中,Switch0 在转发数据帧时是否修改其源 MAC 地址和目标 MAC 地址? 答:switch0转发给pc2地数据帧中源MAC地址和目标MAC地址并未进行修改。

3.交换机接收数据帧后,依据什么判断该数据帧是单播还是广播?或 依据什么判断向哪个目标结点转发? 答:交换机工作在数据链路层,依据数据帧中的目标MAC地址的取值判断数据帧是单播还是广播,依据目标MAC地址判断向哪个目标节点转发。

实验2-3 集线器与交换机的对比实验

实验配置说明

该实验用到4个拓扑图。其中拓扑图1和拓扑图2是以集线器为中心的共享式以太网;拓扑图3和拓扑图4是以交换机为中心的交换式以太网。其中拓扑图1和拓扑图2主要用于观察集线器的运行及理解冲突域的概念;拓扑图3和拓扑图4主要用于观察交换机的运行及理解交换机隔离冲突域但不隔离广播域的特性。在对应的实验步骤中,我们需要将拓扑图1和拓扑图2使用交叉双绞线连接起来,将拓扑图3和拓扑图4使用交叉双绞线连接起来,从而观察使用集线器和交换机进行以太网扩展时对冲突域和广播域的影响,从而理解两类设备在扩展以太网时的作用和局限性。实验目的

了解集线器和交换机的如何转发数据。

理解冲突域和广播域的概念。

理解集线器和交换机在扩大网络规模中的作用和局限性。实验步骤

(1)任务一:观察集线器和交换机的运行

步骤1:准备工作

单击主窗口右下角 Realtime 和 Simulation 模式切换按钮数次,直至交换机指示灯呈绿色。在 Realtime(实时模 式)下,当拓扑图中集线器及交换机各端口均呈绿色后,鼠标双击右下角 处事件列表中 Fire 项下的暗红色椭圆图标,至 Last Status 均为 Successful 状态。若单击后 Last Status 不是 Successful,则重新双击该事件对应的暗红色椭圆图标。单击下方 Delete 按钮,删除所有场景。步骤2:观察集线器对单播包的处理

进入 Simulation(模拟模式),设置 Event List Filters(事件列表过滤器)只显示ICMP事件。单击 Add Simple PDU(添加简单 PDU)按钮,添加一个PC0向PC2发送的数据包。单击Auto Capture/Play(自动捕获/播放)按 钮捕获数据,仔细观察数据包发送过程中,集线器向哪些 PC 转发该单播包,以及各 PC 接收到数据包后如何处理该数据包。记录观察结果,以便后续实 验进行对比分析。

步骤3.观察交换机对单播包的处理

单击下方 Delete 按钮,删除所有场景。进入 Simulation(模拟模式),设置 Event List Filters(事件列表过滤器)只显示 ICMP 事件。单击 Add Simple PDU(添加简单 PDU)按钮,添加一个 PC6 向 PC8 发送的数据包。单击 Auto Capture/Play(自动捕获/播放)按钮,仔细观察数据包发送 过程中,交换机向哪些 PC 转发该单播包,以及各 PC 接收到数据包后如何 处理该数据包。记录观察结果并与步骤 2 进行对比分析。

步骤 4.观察集线器对广播包的处理

单击下方 Delete 按钮,删除所有场景。进入 Simulation(模拟模式),设置 Event List Filters(事件列表过滤器)只显示 ICMP 事件。单击 Add Complex PDU(添加复杂 PDU)按钮,单击 PC0,在弹出 的对话框中设置参数:Destination IP Address(目标 IP 地址)设置为 255.255.255.255(这是一个广播地址,表示该数据包发送给源站点所在广 播域内的所有站点),Source IP Address(源 IP 地址)设置为 192.168.1.1(该实验拓扑中预设的 PC0 的 IP 地址),Sequence Number(序列号)设置 为 1,Size 设置为 0,Simulation Settings(模拟设置)选中 One Shot,其 对应的 Time 设置为 1,然后单击该对话框中下方的 Create PDU 按钮,创建数据包。单击 Capture/Forward(捕获/转发)按钮,数据包到达集线器,再次单 击 Capture/Forward(捕获/转发)按钮,集线器向与源站点 PC0 在同一广播域的所有站点转发数据包。

步骤5.观察交换机对广播包的处理

单击下方 Delete 按钮,删除所有场景。参照步骤 4 的方法,在 PC6 上 添加一个复杂的 PDU,参数设置与步骤 4 相同(PC6 的预设 IP 地址也是 192.168.1.1)。单击

Capture/Forward(捕获/转发)按钮,数据包到达交换机,再次单 击 Capture/Forward(捕获/转发)按钮,交换机向与源站点 PC6 在同一广播 域的所有站点转发数据包。仔细观察这一过程中,交换机如何处理广播包,进而观察以交换机为中心的以太网的广播域的范围。

(2)任务二:分别观察以集线器和以交换机为中心的以太网中,多个站点同时发送数据的情况,理解冲突域的概念。

步骤1.观察以集线器为中心的以太网中多个站点同时发送数据的情况

单击下方 Delete 按钮,删除所有场景。进入 Simulation(模拟)模式。设置 Event List Filters(事件列表过滤器)只显示 ICMP 事件。单击 Add Simple PDU(添加简单 PDU)按钮,在拓扑图 1 中添加 PC0 向 PC2 发送的数据包;再次单击 Add Simple PDU(添加简单 PDU)按钮,添加 PC1 向 PC3 发送的数据包。单击 Auto Capture/Play(自动捕获/播放)按钮,在此过程中仔细观察 数据包到达各个结点的情况,集线器及主机对数据包的处理。注 注: :设备上出现信封图标表示数据包到达该设备,信封上闪烁“ √” 表示通信成功完成,信封上闪烁“ Χ” 表示设备丢弃数据包,信封上 出现闪烁的火苗表示数据冲突。

步骤2.观察以交换机为中心的以太网中多个站点同时发送数据的情况

单击下方 Delete 按钮,删除所有场景。进入 Simulation(模拟)模式。设置 Event List Filters(事件列表过滤器)只显示 ICMP 事件。单击 Add Simple PDU(添加简单 PDU)按钮,在拓扑图 3 中添加 PC6 向 PC8 发送的数据包;再次单击 Add Simple PDU(添加简单 PDU)按钮,添加 PC7 向 PC9 发送的数据包。单击 Auto Capture/Play(自动捕获/播放)按钮,在此过程中仔细观察 数据包到达各个结点的情况,交换机及主机对数据包的处理。

(3)任务三:观察集线器和交换机在扩展以太网覆盖范围的同时,对冲突域和广播域范围的影响

步骤1.观察集线器扩展以太网时对冲突域范围的影响

单击下方 Delete 按钮,删除所有场景。单击左下方 Connections(连接)图标,选中 Copper Cross-Over(交叉线),在拓扑图 1 中单击集线器 1,在 弹出菜单中选中 port4;拖动鼠标,单击集线器 2,在弹出菜单中选中 port2。至此,我们得到一个由两台集线器互连起来的以太网。进入 Simulation(模拟)模式。设置 Event List Filters(事件列表过滤器)只显示 ICMP 事件。单击 Add Simple PDU(添加简单 PDU)按钮,在拓扑图中添加 PC0 向 PC2 发送的数据包;再次单击 Add Simple PDU(添加简单 PDU)按钮,添 加 PC4 向 PC5 发送的数据包。依次单击 Capture/Forward(捕获/转发)按钮,直至此次通信结束。在 此过程中仔细观察并思考每一步骤数据包是被如何处理的。在这一过程中,由于延迟的存在,在 PC4 发送的数据到达集线器 1 冲突之前,PC0 发送的 数据包已经到达 PC2,而在 PC2 发送应答包时,与到达集线器 1 的数据冲 突。间隔一定时间后。PC2 重新发送数据包,最终数据到达 PC0。PC4 与 PC5 的情况类似。

步骤2.观察集线器扩展以太网时对广播域范围的影响

单击下方 Delete 按钮,删除所有场景。参照任务一中的步骤4的操作方法,在PC0向其所在广播域内所有结点发送广播包。依次单击 Capture/Forward(捕获/转发)按钮,观察广播包的发送范围。

步骤3.观察交换机扩展以太网时对冲突域及广播域的影响

单击下方 Delete 按钮,删除所有场景。参照步骤1和步骤 2,观察交换机扩展以太网时对冲突域和广播域范围的影响。

思考题

① 集线器在接收到发送给某结点的单播包时是如何转发数据的?交换机又是如何处理单播包的?

答:集线器是把数据发往全部端口,交换机把数据发往相应端口。

② 在以集线器/交换机为中心的以太网中,当多个站点同时发送数据时,是否会发生冲突?为什么?

答:集线器会发生冲突,交换机不会发生冲突。

③ 使用集线器扩大以太网规模时,有没有可能会使以太网的性能下降? 答:不会。

④ 使用交换机扩大以太网规模时,有没有可能会使以太网的性能下降?为什么 答:有可能。使用交换机解决了冲突域的问题,但是交换机并不隔离广播域,使用交换机扩大网络规模的同时也扩大了广播域。这将使以太网中广播包的数量增加,当广播包的数据量达到一定数量时,网络性能下降。

2.4 实验四:交换机工作原理

实验配置说明

该拓扑图用于对交换机工作原理的观察和理解。在数据包的发送过程中,观察交换机地址转发表的变化情况以及其根据地址转发表的不同情况 采用不同的方式处理数据包的过程,从而理解交换机通过逆向自学习建立 地址转发表及其对数据包的转发规则。实验目的

理解交换机通过逆向自学习算法建立地址转发表的过程。②

理解交换机转发数据帧的规则。③

理解交换机的工作原理。

实验步骤

1.任务一:准备工作

步骤 1:拓扑训练 打开该实验对应的练习文件“2-4 交换机工作原理.pka”。若此时交换 机端口指示灯呈橙色,则单击主窗口右下角 Realtime 和 Simulation 模式切 换按钮数次,直至交换机指示灯呈绿色。在 Realtime(实时模式)下,当拓 扑图中交换机各端口均呈绿色后,鼠标双击右下角处事件列表中 Fire 项下 的暗红色椭圆图标,至 Last Status 均为 Successful 状态。若单击后 Last Status 不是 Successful,则重新双击该事件对应的暗红色椭圆图标。单击下方 Delete 按钮,删除所有场景。

步骤 2:删除交换机地址转发表 参照上文给出的删除 Switch1 上地址转发表的操作方法,分别删除 Switch0、Switch1 和 Switch2 上的地址转发表。

2.任务二:观察交换机的工作原理

步骤 1:查看并记录 PC0 和 PC2 的 MAC 地址 鼠标左键单击 PC0,在弹出窗口中选择Config 选项卡,选择 FastEthernet0,查看并记录其 MAC 地址(图 2-13)。同样的方法,查看并记 录 PC2 的 MAC 地址。

步骤 2:添加 PC0到PC2的数据包进入Simulation(模拟)模式。设置 Event List Filters(事件列表过滤器)只显示 ICMP 事件。单击Add Simple PDU(添加简单 PDU)按钮,在拓扑图中添加 PC0 向 PC2 发送的数据包。

步骤 3:分别查看三台交换机在发送数据前的地址转发表选中拓扑工作区工具条上的 Inspect 工具,鼠标移至拓扑工作区单击 Switch0,在弹出菜单中选择 MAC Table 菜单项,弹出窗口中显示 Switch0 当前的地址转发表,如图 2-14 所示(注:下图仅为说明地址转发表的含义,并不是该步骤的查询结果,实验者需要自行查看并记录结果)。

其中,Mac Adddress 是 PC 的 MAC 地址,Port 是该 PC 与交换机相连 的端口号或者 PC 与通过此端口与该交换机相连的交换机相连,例如,PC4 与 Switch2 相连,Switch2 与 Switch1 相连,Switch1 与 Switch0 的 Fa0/3 相 连,PC4 的 MAC 地址在 Switch0 的地址转发表中将对应 Fa0/3 口。该步骤重点观察并记录源端主机 PC0 和目标主机 PC2 的 MAC 地址是 否存在于 Switch0 的地址转发表中。参照上述步骤查看并记录 Switch1 和 Switch2 的地址转发表。

步骤 4:查看 Switch0 的学习和转发过程 单击 Capture/Forward(捕获/前进)按钮一次,在 Switch0 的图标上出 现信封图标后,查看 Switch0 的地址转发表,与步骤 3 的结果进行对比,观 察并记录增加的地址转发表项。查看地址转发表的方法可参照步骤 3。单击 Capture/Forward(捕获/转发)按钮一次,观察并记录 Switch0 是 如何处理该数据包的(转发,通过特定端口转发;洪泛转发,向所有除接 收端口外的其它端口转发;丢弃,不转发数据)。结合当前状态下 Switch0 的地址转发表,思考为什么 Switch0 如此处理该数据包。

步骤 5:观察 Switch1 和 Switch2 的学习和转发过程 参照步骤 4 的操作方法,分别针对 Switch1 和 Switch2 完成上述操作,在这个过程中对比Switch1 和Switch2 在接收到数据包前和接收到数据包后地址转发表的变化情况,以及观察其对数据包的处理方式。结合当前状态 下地址转发表,对结果进行思考和分析。单击下方 Delete 按钮,删除所有场景。参照上述操作步骤,完成 PC1 向 PC0 发送数据、删除 Switch1 的地址 转发表后 PC1 向 PC0 发送数据的实验操作。

思考题

① 在实验过程中,将观察结果填入下表。转发表栏内填写交换机接收 到数据后 MAC 地址转发表中增加的项,如无增加或该交换机未收到该数据 帧则用横线表示。对数据的处理填写转发、洪泛或丢弃,如交换机未收到 该数据帧则用横线表示。

② Switch0 收到 PC0 向 PC2 发送的数据帧后,其地址转发表是否有变 化?如有给出增加的条目并解释原因。

答:地址转换表增加了一条:00E0.F966.5625 F0/1

③ Swtich1 收到 PC0 向 PC2 发送的数据帧后,是如何处理的?说明其 如此处理的原因。答:向除接收端口之外的所有其他端口转发,即洪泛转发。

④ 在删除 Switch1 上的地址转发表前后,PC1 向 PC0 发送数据时 Swtch2 是如何处理的?说明其如此处理的原因。

答:向除接收端口之外的所有其他端口转发,即洪泛转发。

2.5 实验五:生成树协议(STP)分析

实验配置说明

在该实验对应的练习文件中包含两个拓扑图,其中拓扑图 1 中关闭了4台交换机的生成树协议,拓扑图2中开启了4台交换机的生成树协议。实验过程中,任务一在拓扑图 1 中完成,任务二和任务三在拓扑图2中完成。拓扑图1和拓扑图2的其它配置完全相同。实验目的

理解链路中的环路问题。②

理解生成树协议的工作原理。实验步骤

1.任务一:观察无生成树协议的以太网环路中广播帧的传播

步骤 1:准备工作 打开该实验对应的练习文件“2-5 生成树协议(STP)分析.pka”。若此 时拓扑图 1 中交换机端口指示灯呈橙色,则单击主窗口右下角 Realtime 和 Simulation 模式切换按钮数次,直至交换机指示灯呈绿色。否则,略过此步骤。

步骤 2:在拓扑图 1 中添加广播包 进入 Simulation(模拟)模式。设置 Event List Filters(事件列表过滤器)只显示 ICMP 事件。单击 Add Complex PDU(添加复杂 PDU)按钮,单击拓扑图 1 中的 PC0,在弹出的对话框中设置参数:Destination IP Address(目标 IP 地址)设置为 255.255.255.255(广播地址),Source IP Address(源 IP 地址)设置为 192.168.1.1(该实验拓扑中预设的 PC0 的 IP 地址),Sequence Number(序 列号)设置为 1,Size 设置为 0,Simulation Settings(模拟设置)选中 One Shot,其对应的 Time 设置为 1,然后单击该对话框中下方的 Create PDU 按钮,创建数据包。

步骤 3:捕获数据包,观察广播包的传播 单击 Auto Capture/Play(自动捕获/播放)按钮,捕获数据包。观察拓 扑图 1 中广播包的传播动画。此时,我们会注意到每台交换机在接收到数据包后都会通过其它所有 端口转发出去。因此,交换机不停地接收来自其它交换机转发的数据包,不停地向其它交换机转发数据包,导致该广播包无休止地在四台交换机形 成的环路中传播。 注 注: :此过程不会停止,完成步骤 3 后单击 Realtime(实时模式)按钮 切换到实时模式,进行步骤 4 的操作。

步骤 4:在实时模式下,测试网络是否正常 进入 Realtime(实时模式),单击 PC0,在打开的窗口中选择 Desktop(桌面)选项卡,选择其中的 Command Prompt 工具,在操作界面中输入 ping 192.168.1.2(测试 PC0 与 PC1 是否能够连通)并回车,实验结果如图所示。

如图所示,PC0 到 PC1 的连通测试失败,反馈结果为 Request timed out,即请求超时。这是因为上述操作步骤中的广播包仍然在网络中不停转 发(切换到实时模式拓扑图中不再显示数据包传输动画),形成了广播风暴,耗尽网络资源导致 PC0 发往 PC1 的请求包无法到达 PC1。单击下方 Delete(删除)按钮删除所有场景,为下一任务实验做好准备。

2.任务二:观察启用生成树协议的以太网环路中广播帧的传播

步骤 1:观察拓扑图 2 中启用生成树协议后的逻辑拓扑图 观察拓扑图 2 中各端口指示灯的颜色。端口指示灯为绿色表示该端口 可以接收和转发数据帧,端口指示灯颜色为橙色表示该端口不能接收和转 发数据帧。在网络正常运行情况下,生成树协议会将以太网环路中一些端口屏蔽,禁止其接收和转发数据帧,形成无环的树形逻辑拓扑(即实际转发数据的 拓扑图),从而避免广播帧无休止地在环路中传播。拓扑图中指示灯为橙色 的端口即为生成树协议屏蔽的端口。根据观察结果,画出拓扑图 2 对应的 树形逻辑拓扑图。步骤 2:在拓扑图 2 中添加广播包 进入 Simulation(模拟)模式,在拓扑图 2 中添加广播包。具体操作可 参照任务一中的步骤 2。

步骤 3:捕获数据包,观察广播包的传播 连续单击 Capture/Forward(捕获/前进)按钮捕获数据包,直至该过程 结束不再产生新的数据包。在此过程中仔细观察广播包的转发情况,并记 录每台交换机的哪些端口丢弃该广播包,哪些端口转发该广播包。与步骤 1 记录的树形拓扑图进行对比,观察数据包是否沿树形拓扑中的链路转发。

步骤 4:在实时模式下,测试网络是否正常 进入 Realtime(实时模式),单击 PC0,在打开的窗口中选择 Desktop(桌面)选项卡,选择其中的 Command Prompt 工具,在操作界面中输入 ping 192.168.1.2 并回车,如图 2-18 所示。测试结果为 Reply from 192.168.1.2:„„此结果表示 PC0 发送了请求包后,接收到来自 192.168.1.2 的响应,即 PC0 和 PC1 之间 可以正常通信。对比任务一和任务二中连通性测试结果,理解生成树协议的作用。单击下方 Delete(删除)按钮删除所有场景,为下一任务实验做好准备。

3.任务三:观察链路故障时生成树协议启用冗余链路的情况

步骤 1:制造故障链路 单击拓扑图 2 中的 Switch3,在其配置窗口中选择 Config 选项卡,在 INTERFACE 列表下单击 FastEthernet0/1 端口。在右端 FastEthernet0/1 的配 置界面中,单击 Port Status 项对应的复选框,取消勾选,即关闭该端口。此时,观察拓扑图 2 中 Switch3 和 Switch2 连接的链路上两个端口指示 灯为红色,表示端口关闭,即该链路已经中断。

步骤 2:观察生成树协议启用冗余链路 当树形逻辑拓扑图中出现链路故障时,生成树协议将自动启用屏蔽端 口形成新的树形拓扑,保证网络的连通性。为了加快这一过程,可单击主 窗口右下角 Realtime 和 Simulation 模式切换按钮数次,直至原来橙色指示 灯变为绿色。

注:因为生成树协议需要重新交换数据,重新计算生成树,在 Packet Tracer 6.0中这一过程耗时较长,可能持续数十秒甚至 1、2 分钟时间。

重复执行任务二中的步骤

2、步骤 3 和步骤 4,观察数据包转发路径的变化并确认链路故障时网络的连通性。

步骤 3:恢复故障端口,并观察生成树的变化 参照步骤 1 的操作方法,重新打开FastEthernet0/1。参照步骤 2,观察拓扑图中各端口指示灯颜色的变化,即生成树屏蔽端口的变化。在新的生成树计算完成后,重复执行任务二中的步骤

2、步骤3和步骤4,观察数据 包转发的路径。

思考题

① 任务一中,为什么 PC0 无法 ping 通 PC1? 答:因为上述操作步骤中的广播包仍然在网络中不停转发(切换到实时模式拓扑图中不再显示数据包传输动画),形成了广播风暴,耗尽网络资源导致 PC0 发往 PC1 的请求包无法到达 PC1。

② 结合任务二实验情况,简述生成树协议是如何解决环路问题的。

答:生成树协议会将以太网环路中一些端口屏蔽,禁止其接收和转发数据帧,形成无环的树形逻辑拓扑。

③ 任务三中,当网络中出现链路故障时,PC0和PC1是否能通信? 答:不能。

2.6 实验六:虚拟局域网(VLAN)工作原理

实验配置说明

该实验用到的拓扑图已经预先按任务一的需求进行配置了。在实验 过程中,任务二也在该拓扑图的基础上完成,即 VLAN 的创建和划分。而任务三必须在任务二的基础上完成,因此实验过程中不能跳过任务二。实验目的

理解虚拟局域网 VLAN 的概念。

了解 VLAN 技术在交换式以太网中的使用。

理解 VLAN 技术在数据链路层隔离广播域的作用。实验步骤

步骤 1:准备工作 打开该实验对应的练习文件“2-6 虚拟局域网(VLAN)工作原理.pka”。若此时交换机端口指示灯呈橙色,则单击主窗口右下角 Realtime 和 Simulation 模式切换按钮数次,直至交换机指示灯呈绿色。

步骤 2:查看交换机上的 VLAN 信息 选中拓扑工作区工具条中的 Inspect 工具,鼠标移至拓扑工作区,鼠标 左键单击 Switch0,在弹出菜单中选择“Port Status Summary Table”选项卡,打开端口状态信息窗口。如图 2-21 所示,当前 Switch0 上所有端口均属于 VLAN1(VLAN1 为交换机默认 VLAN),即未划分 VLAN。用同样的方法 查看 Switch1 的 VLAN 信息。 步骤 3:观察在未划分 VLAN 的情况下,交换机对广播包的转发方法 进入Simulation(模拟)模式。设置 Event List Filters(事件列表过滤器)只显示 ARP和ICMP 事件。单击Add Simple PDU(添加简单 PDU)按钮,在拓扑图中添加 PC0向PC2发送的数据包。此时,在Event List(事件列表中),会出现两个事件,第一个是 ICMP 类型,第二个是ARP类型(这两个协议将在第 3 章中详述)。双击ARP右端的色块,弹出ARP包的详细封装信息,我们会观察到其 目标 MAC 地址为 FFFF.FFFF.FFFF,是一个广播地址,所以这个 ARP 包是 一个广播包。单击Auto Capture/Play(自动捕获/播放)按钮,观察数据发送过程。重点观察交换机向哪些站点发送 ARP 广播包,记录该广播包的传播范围。单击下方 Delete(删除)按钮删除所有场景,为下一任务实验做好准备。

2.任务二:创建两个 VLAN,并将端口划分到不同 VLAN 内

步骤 1:创建 VLAN 单击拓扑图中 Switch0,在弹出窗口中选择 Config 选项卡,如图 2-22 所示。单击左端配置列表区中的 SWITCH(交换机)项下的 VLAN Database(VLAN 数据库)按钮,在右端配置区将显示 VLAN Configuration(VLAN 配置)界面。如图 2-22 所示,在 VLAN Number(VLAN 编号)栏内输入 VLAN 编号“2”;在 VLAN Name 栏内输入 VLAN 名“vlan2” ;单击 Add(添加)按钮,此时在下方 VLAN 列表区中将会增加 VLAN 2 的信息,即表示 VLAN 2 创建成功。若须删除某个 VLAN,则在 VLAN 列表区中选中要删除的 VLAN,然 后单击 Remove(移除)按钮即可。参照上述步骤,在 Switch0 上创建 VLAN 3。单击 Switch1,在其配置窗口中参照上述步骤,创建VLAN 2 和 VLAN 3。

步骤 2:设置 Switch0 和 Switch1 之间的中继连接 在 Switch0 的配置窗口中选择 Config 选项卡,单击其左端配置列表中 的 INTERFACE(接口)项下的 FastEthernet0/1(Switch0 用来连接 Switch1 的端口),在右端配置区内,如图 2-23 所示,单击左端的下拉按钮,在下拉 菜单中选择 Trunk 选项。该选项表示将端口设置为 Trunk 模式(中继连接模 式)。参照上述操作步骤,将 Swtich1 的 FastEthernet0/1 设置为 Trunk 模式。步骤 3:将端口划分到不同 VLAN 内 在 Switch0 的配置窗口中选择 Config 选项卡,单击其左端配置列表中 的 INTERFACE(接口)项下的 FastEthernet0/2。如图 2-24 所示,保持其端口模式为 Access 不变,单击右端 VLAN 项对应的下拉按钮,在下拉菜单中 勾选对应的 VLAN,对于 FastEthernet0/2 端口,勾选 vlan2。

将 Switch0 和 Switch1 上连接了主机的端 口划分到不同的 VLAN 内。

步骤 4:修改 PC IP 地址 步骤 3 中将 PC 划分到不同的 VLAN 内,因此需要按照表 2-7 重新规划 PC 的 IP 地址。单击 PC,选择其配置窗口的 Desktop 选项卡,单击 IP Configuration 工 具,在配置窗口中 IP Address 和 Subnet Mask 栏内分别对照表 2-7 列出的 PC 的 IP 地址和子网掩码信息,完成 PC 机 IP 地址的配置。若此时交换机端口指示灯呈橙色,则单击主窗口右下角 Realtime 和 Simulation 模式切换按钮数次,直至交换机指示灯呈绿色。

3.任务三:观察划分 VLAN 后,交换机对广播包的处理

步骤 1:查看交换机上的 VLAN 信息 在任务二中,我们已经在两台交换机上创建了两个 VLAN:VLAN2 和 VLAN3,并将 PC 机分别划分到两个 VLAN 内,从而得到两个广播域(在 此拓扑中,没有接入默认的VLAN1的PC机,所以只存在VLAN2和VLAN3 两个广播域)。选中拓扑工作区工具条中的 Inspect 工具,鼠标移至拓扑工作区,单击 Switch0,在弹出菜单中选择“Port Status Summary Table”选项,打开端口 状态信息窗口。如图2-25所示,当前Switch0上FastEthernet0/2属于VLAN2,FastEthernet0/3 和 FastEthernet0/4 属于 VLAN3。其他端口未接 PC,仍属于 默认的 VLAN1。用同样的方法查看 Switch1 的 VLAN 信息。

步骤 2:观察交换机对广播包的处理,理解划分 VLAN 情况下,广播 域的范围 进入 Simulation(模拟)模式。设置 Event List Filters(事件列表过滤器)只显示 ARP 和 ICMP 事件。单击 Add Simple PDU(添加简单 PDU)按钮,在拓扑图中添加 PC0 向 PC3 发送的数据包。双击 ARP 右端的色块,弹出 ARP 包的详细封装信息,我们会观察到其 目标 MAC 地址为 FFFF.FFFF.FFFF,是一个广播地址,所以这个 ARP 包是 一个广播包。单击 Auto Capture/Play(自动捕获/播放)按钮,观察数据发送过程。

重点观察两台交换机转发该广播包的范围,即哪些 PC 机最终接收到了该广 播包,哪些 PC 机最终没有接收到该广播包。结合步骤 1 查看的 VLAN 信 息,对结果进行分析。按照上述步骤,在拓扑图中添加 PC1 向 PC2 发送的数据包,观察其 ARP 广播包发送的情况并记录其结果。

思考题

在任务一,两台交换机分别如何处理广播包?其广播包的传播范围 有多大?

② 在任务三中,当一台 PC 发送广播包时,与之连接在同一台交换机 上的其它 PC 机是否一定能接收到该广播包?根据实验结果举例说明。

③ 通过分析任务一和任务三的实验结果,说明划分 VLAN 的作用。

第三章 网络层协议实验

实验一:IP分析

实验配置说明

实验目的

熟悉 IP 的报文格式以及关键字段的含义。

掌握 IP 地址的分配方法。

理解路由器转发 IP 数据报的流程。实验步骤

任务一:观察数据包的封装以及字段变化

步骤1:初始化所有设备的 ARP 表信息 

步骤2:观察IP数据报的转发

任务二:观察路由器转发 IP 数据报的方式 

步骤1:初始化并观察各路由器的路由表

删除所有场景,打开 Router0、Router1 和 Router2 的路由表并比较三个路由表。

步骤2:观察 PC0 到 PC2 的往返过程 单击 Add Simple PDU 按钮,然后分别单击 PC0 和 PC2。单击 Capture/Forward 按钮传送数据包。分别检查在At Device(在设备)显示为Router0和Router2的数据包信息。在Out Layers中选择第三层。

步骤3:观察 PC2 到 PC1 的往返过程

任务三:观察IP分片原理

步骤1:

步骤2:观察IP数据包分片情况

思考题:

1.一个IP分组经路由器转发后,有哪些字段会发生变化? TTL会发生改变,源MAC 地址和目的MAC 地址

2.为什么任务3中的两个分片的长度分别是1500和48?

因为发送的包的大小是1500,封装它的 IP 数据报超出了以太网帧的负载上限,因此该 IP 报文被分拆为两个 ID一样的分片,一个长度为 1500 字节,另一个为 48 字节。

实验二:IP地址分配实验

实验配置说明

实验目的  掌握主机和路由器的 IP 地址配置。

熟悉 CIDR 的 IP 地址编址方法。理解 CIDR 的路由聚合功能。实验步骤

任务一:练习主机和路由器的IP地址配置

步骤1:选择适当的IP地址,掩码和网关 PC0IP地址选 192.168.1.1子网掩码选255.255.255.0 网关选182.168.1.254 Router0 seial0/0 IP选192.168.4.1 子网掩码选255.255.255.0 

步骤2:为主机分配所选的信息

步骤3:为Rounter0 的se0/0/0接口分配所选的信息

步骤2:测试连通性

任务二:练习CIDR地址规划

步骤1:为Router1接口选择合适的IP地址和掩码 

步骤2:为路由器分配所选的信息 

步骤3:在路由器上进行路由聚合 

步骤4:测试连通性

思考题

1.与分类的 IP 编址方法相比,CIDR 编址方案具有什么优点? 2.路由器的不同接口能否使用相同的网络号?

不可以。

实验三:APR 分析 实验配置说明

实验目的

 掌握基本的 ARP 命令。

 熟悉 ARP 报文格式和数据封装方式。理解 ARP 的工作原理。实验步骤

任务1:在Packet Tracer中熟悉arp命令

步骤1:熟悉 arp 命令

步骤2:观察ARP缓存中条目的动态增减

任务2:观察ARP工作原理

步骤1: 捕获并观察 ARP 数据包的转发 

步骤2:研究ARP报文格式和封装方式

步骤3: 研究不同广播域内主机互访时的ARP执行过程

没有ARP 思考题: 1.任务一完成后,哪些pc的ARP缓存拥有pc0的MAC地址记录?哪些PC新添加了PC1的MAC地址记录? PC2 2.ARP缓存的作用是什么?缓存中记录的保存时间是否越长越好?解释理由。

用于存放其他设备的 IP 地址到物理地址的映射表。当主机欲向本局域网上其他主机发送IP 包时,先在本地 ARP 缓存中查看是否有对方的 MAC 地址信息。如果没有,则 ARP 会在网络中广播一个 ARP 请求,拥有该目的 IP 地址的设备将自动发回一个 ARP 回应,对应的 MAC 地址将记录到主机的 ARP 缓存中。

记录的保存时间不是越长越好。网络可能经常有设备动态加入或者撤出,并且更换设备的网卡或 IP 地址也都会引起主机地址映射发生变化

3.主机使用ARP能查询到其他的网段的MAc地址吗?为什么?

不能,不同网段的通信需要依靠网关,需要在IP协议的层面实现,而ARP只能帮助主机寻找同段的主机MAC地址。

4.在任务二的步骤3中,ARP被执行了几次?

0次。

实验四:ICMP 分析

实验配置说明

实验目的

熟悉 ICMP 报文格式和数据单元的封装方式。

利用 ping 程序和 tracert 命令,熟悉 ICMP 的工作原理。

进一步理解 ICMP 的作用。实验步骤

任务一:使用 Ping 命令观察 ICMP 

步骤1:捕获并观察 ping 程序发送和回应的 ICMP 报文

请在其中 At Device显示为 PC0 的下一个事件中,这是第一条应答报文。单击 Inbound PDU Details查看 ICMP 报文的内容。



步骤2:观察主机无法达到的 ICMP 回应报文

任务二:使用 tracert 命令观察 ICMP 

步骤1:使用 tracert 命令观察一个 IP 数据包从源点到终点的转发路径

在 PC0 的命令行窗口中输入命令: tracert 200.1.2.1,观察IP 数据包从 PC0 到 PC1 的转发路径。将命令的输出结果与网络图及设备的IP 地址进行比对。



步骤2:在 Simulation 模式中观察学习tracert 命令的工作原理 进入 Simulation 模式。设置 Event List Filters 只显示 ICMP 事件,并重复步骤 1。最小化 PC0 的配置窗口,运行模拟并捕获事件和数据包。

在 Event List中,分别找到其中 At Device 显示为 Router1和 PC2 的下一个事件,单击其彩色正方形。这分别是第一条 ICMP 超时错误报告报文和应答报告报文。单击 Inbound PDU Details查看 ICMP 报文的内容。

 思考题

1.在 traert 命令中,为什么源主机对于每个 TTL 值都要重复进行多次探测? 2.ICMP 是否会给 Internet 带来安全隐患?

4-1 运输层端口观察实验

实验目的:

理解运输层的端口与应用层的进程之间的关系; 

了解端口号的划分和分配。实验步骤:

任务一:通过捕获的DNS事件查看并分析UDP的端口号

步骤1:捕获DNS事件

步骤2:查看并分析UDP用户数据报中的端口号

请求包的与应答包的源、目的端口号是相反的。

步骤3:分析端口号的变化规律

重新回到PC机的浏览器窗口单击Go(转到)按钮再次请求相同的网页,从新捕获的DNS事件中观察DNS客户端与DNS服务器端的端口号是否发生变化。如果没有,分析其原因;如果有,分析其变化的规律。

PC端的端口发生了改变,而服务器的端口号没有改变。服务器的端口号是固定的,而客户端的端口不固定。

任务二:通过捕获的HTTP事件查看并分析TCP的端口号

步骤1:捕获HTTP事件

步骤2:查看并分析TCP报文中的端口号

PC端的端口号是1028,服务器端的端口号是80.

任务三:分析运输层端口号

步骤1:分析运输层端口号与应用进程之间的关系

不一样,任务一服务器端口号是53,任务二中是80.

步骤2:分析运输层动态端口号的分配规律

前后两次客户端的端口号都改变了,而服务器的端口号没有改变。思考:

运输层如何区分应用层的不同进程? 通过数据包的源端口号。

若使用Reset Simulation(重置模拟)按钮后再重新进行捕获,端口号如何变化?新的值与重置前有关吗? 端口号会改变,和之前的没有关系。

4-2 UDP协议与TCP协议的对比分析

实验目的:

熟悉UDP与TCP协议的主要特点及支持的应用协议; 

理解UDP的无连接通信与TCP的面向连接通信; 

熟悉TCP报文段和UDP报文的数据封装格式。实验步骤:

任务一:观察UDP无连接的工作模式

步骤1:捕获UDP事件

步骤2:分析UDP无连接的工作过程

没有建立连接,直接由服务器发送数据包过来。

LENGTH长为35。首部占用8字节,数据部分为23字节。

任务二:观察TCP面向连接的工作模式

步骤1:捕获TCP事件

步骤2:分析TCP面向连接的工作过程

在捕获到的第一个HTTP事件之前及最后一个HTTP事件之后是否有TCP事件; 都有TCP事件。

第一个以及最后一个HTTP事件对应的TCP报文中的sequence number(序号)、ACK number(确认号)的值以及它们与data length(数据长度)的关系;

sequence number(序号)、ACK number(确认号)的值两次的都不一样。data langth都是20。

思考:

TCP报文首部中的序号和确认号有什么作用?

序号是:当前所携带的数据的第一个字节的顺序号(如:本次连接共要发送1000个字节,已发出了100个字节,现在发送下一个报文,假设每个报文携带的数据为100字节,则这个报文的头结构中的序号是100【注:从0开始编号】)。

确认序号是:接收端期望接收的下一个报文的序号,如上例中那个报文已被正确接收,则接收端会发送一个ACK=1且确认序号=200的应答报文给发送方。

无连接的UDP和面向连接的TCP各有什么优缺点?

1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付

3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的

UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

5、TCP首部开销20字节;UDP的首部开销小,只有8个字节

6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

4-3 TCP的连接管理

实验目的:

熟悉TCP通信的三个阶段;

理解TCP连接建立过程和TCP连接释放过程。实验步骤:

任务一:捕获TCP事件

任务二:分析TCP连接建立阶段的三次握手

任务三:分析TCP连接释放阶段的四次握手、、思考:

连接建立阶段的第一次握手是否需要消耗一个序号?其SYN报文段是否携带数据?为什么?第二次握手呢?

第一次要消耗一个序号,SYN没有携带数据。因为TCP规定,SYN不能携带数据。第二次握手,也需要消耗一个序号,同样也不能携带信息。

本实验中连接释放过程的第二、三次握手是同时进行的还是分开进行的?这两次握手何时需要分开进行?

是同时进行的,当双方均有数据需要发送时,而只有一方数据发送完毕而关闭单方向的TCP连接时,第二第三次握手才需要分开进行。

本实验中连接释放阶段的第四次握手,PC向Server发送最后一个TCP确认报文段后,为什么不是直接进入CLOSED(已关闭)连接状态,而是进入CLOSING(正在关闭)连接状态?

因为此时PC还需要进入TIME-WAIT状态,以保证PC发送的最后一个ACK保温能够到达Server,同时还可以防止失效的连接请求报文段出现在本连接中。

本实验中TCP连接建立后的数据通信阶段,PC向Server发送的了多少数据? Server向PC发送的数据呢?

PC向Server发送了107B数据,Server向PC发送了333B的数据。

5-1 DNS解析实验 实验目的:

理解DNS系统的工作原理; 

熟悉DNS服务器的工作过程; 

熟悉DNS报文格式; 

理解DNS缓存的作用。实验步骤:

任务一:观察本地域名解析过程

步骤1:在PC的浏览器窗口请求内部Web服务器的网页

步骤2:捕获DNS事件并分析本地域名解析过程

任务二:观察外网域名解析过程

步骤1:在PC的浏览器窗口请求外部Web服务器的网页

步骤2:捕获DNS事件并分析外网域名解析过程

任务三:观察缓存的作用

步骤1:查看本地域名服务器cn_dns的缓存

步骤2:在PC的浏览器窗口请求外部Web服务器的网页

思考:

DNS协议使用运输层的什么协议?

UDP协议

DNS缓存有什么作用?在Packet Tracer中如何清空DNS缓存?

DNS缓存用来存放最近解析过的域名等信息,因此可以提高解析 效率。若需要在Packet Tracer中清空某个DNS服务器的缓存,可以进入该 DNS服务器的配置窗口,单击窗口下方的DNS Cache按钮,在弹出的窗口 中单击下方的Clear Cache按钮即可把DNS缓存清空。

本实验中PC与本地域名服务器cn_dns之间的解析是递归还是迭代?本地域名服务器cn_dns与根域名服务器root_dns之间呢?若后者用另一种解析方法,则域名服务器之间DNS的请求和应答的交互过程应如何?

本实验中PC与本地域名服务器cn_dns之间的解析是递归查询,本地域名服务器cn_dns与根域名服务器root_dns之间也是递归查询。若后 者用的是迭代查询,则当cn_dns向根域名服务器root_dns请求解析而 root_dns无法解析出结果时,不是由root_dns全权帮助cn_dns直接解析出结果并将解析结果告知cn_dns而是root_dns会告诉cn_dns应该向哪一个域名服务器进行查询,剩下的解析由cn_dns自己进行。

5-2 DHCP分析

实验目的:

了解DHCP协议的作用; 

熟悉DHCP的工作过程; 

熟悉DHCP的报文格式。实验步骤:

任务一:DHCP服务器为内网主机PC1动态分配IP地址

步骤1:捕获DHCP事件

步骤2:分析DHCP的工作过程及报文格式

本步骤注意观察并完成以下几项内容: 

分析DHCP协议的工作过程; DHCP客户端发送Discover包

PC0接收DHCP发来的DHCP offerpacket

DHCP服务器接收到来自PC0的DHCP requestedpacket

PC0接收DHCP发来的DHCP ACK packet

回到静态配置IP状态PC给DHCP发送releasepacket

DHCP报文类型; 是UDP报文类型

丢弃 路由器Router1对DHCP报文的处理方式;

判断DHCP报文的发送方式(单播/广播); 广播的形式,交换机将数据包转发给了所有连接的主机

DHCP报文格式中各字段的值及其含义;

PC1分配到的IP地址。最后IP为192.168.2.6

任务二:DHCP服务器为外网主机PC2动态分配IP地址

步骤1:捕获DHCP事件

步骤2:配置DHCP中继后重新捕获DHCP事件 

步骤3:分析DHCP的工作过程 

PC2分配到的IP地址。

完成后单击Reset Simulation(重置模拟)按钮,将原有的事件全部清空;同时关闭PC1的配置窗口。

思考:

如何判断报文的发送方式是单播还是广播? 查看报文的目的IP地址。

任务二中为何需要在路由器Router2中配置DHCP中继?DHCP中继有何作用? 

分析DHCP服务器在分配IP地址时的规律。

若有多个DHCP服务器,DHCP协议的工作过程会有变化吗?为什么?

5-3 HTTP分析

实验目的:

熟悉HTTP协议的工作过程; 

理解HTTP报文的封装格式。实验步骤:

任务一:PC请求较小的页面文档

步骤1:捕获PC与Web1之间的HTTP事件

步骤2:理解HTTP协议的工作过程并分析HTTP报文格式

任务二:PC请求较大的页面文档并与任务一对比

步骤1:捕获PC与Web2之间的HTTP事件

步骤2:与任务一进行对比

本任务中PC请求的页面文档长度比任务一中更大,Web2回发的HTTP 响应报文中需要使用多个TCP报文段。

思考:

HTTP响应报文使用的TCP报文段的个数由什么值决定?该值在什么时候确定?本实验中该值为多少?

HTTP响应报文使用的TCP报文段的个数由MSS决定,该值在 TCP连接建立阶段确定。本实验中该值在TCP连接建立阶段确定为536B。

若PC请求的页面文档长度超过66000字节,HTTP的整个通信过程如何?

若在PC的Web浏览器中输入的域名有误,是否能捕获到HTTP事件?为什么?

若在PC的Web浏览器中输入的域名有误,将无法捕获到HTTP 事件。因为无法从域名中解析出相应的IP地址,因而也就无法找到正确的 Web服务器并向其发送HTTP请求。

在PC机的浏览器窗口向Web1请求网页math.fjnu.edu.cn并收到Web1返回的页面后,TCP的连接会保持还是断开?若进一步点击页面中的超链接,是否需要重新建立一条TCP连接?

在PC的浏览器窗口向Web 1请求网页math.Qnu.edu.cn并收到Web 1 返回的页面后,TCP的连接将会断开。因此,当进一步点击页面中的超链接时,将需要重新建立一条TCP连接。

5-4 电子邮件协议分析

实验目的:

了解邮件服务器的配置以及邮件客户端账号的设置; 

熟悉Packet Tracer中收发电子邮件的操作方法;

观察发送和接收邮件时的报文交换,从而更好的理解发送邮件和接收邮件的工作过程。实验步骤:

任务一:分析用SMTP发送邮件的工作过程

步骤1:在PC0设备发邮件并捕获SMTP事件

步骤2:理解SMTP发送邮件的工作过程

PC0建立SMTP数据包,然后通过Switch1发送给MAIL_SEV_1,MAIL_Sev_1,在给PC0发送确认。之后MAIL_Sev_1通过Switch1,Switch0,Switch2发送给MAIL_Sev_2, MAIL_Sev_2再给MALI_Sev_1发送确认消息。

当PC0向本地邮件服务器MAIL_Serv_1发送邮件时,PC0使用的端口号是1027,MAIL_Sev_1使用的是25.当MAIL_Serv_1作为SMTP客户端向接收方邮件服务器MAIL_Serv_2发送邮件时,MAIL_Serv_1使用的是1027,MAIL_Serv_2使用的端口号是25。

任务二:分析用POP3接收邮件的工作过程

步骤1:在PC1设备收邮件并捕获POP3事件

步骤2:理解POP3的工作过程

POP3接收邮件的完整过程;

PC1给MAIL_Sev_2发送接受邮件请求,MAIL_Sev_2收到后,发送右键给PC1。

当PC1作为POP3客户端向接收方邮件服务器MAIL_Serv_2读取邮件时,PC1及MAIL_Serv_2使用的端口号。

PC1使用的是1026端口号,MAIL_Serv_2使用的是110。

思考:

(1)若希望同时捕获SMTP和POP3事件,应该如何操作?

先给PC1发送一封邮件,MAIL_Sev_2收到后,再发送一封,同时PC2点击接受邮件,就可以同时捕获到SMTPA和POP3。

(2)若电子邮件的发送方与接收方不在同一个网段,则本实验需要如何修改?

将发送发接受方设置同一网关。

5-5 文件传送协议分析

实验目的:

了解FTP协议的作用;

熟悉Packet Tracert 中FTP常用命令的使用并进行验证; 实验步骤:

任务一:PC登录FTP Server

步骤1:PC登录FTP服务器端并捕获相关的FTP事件

步骤2:分析登录过程中FTP协议的工作过程

通过分析报文交互的过程观察FTP登录时PC和FTP Server之间FTP协议的工作过程。注意观察并分析FTP登录过程中各类报文的内容及含义。

服务器向PC请求用户名

pc向服务器发送用户名。

上一篇:春季田径运动会开幕式讲话稿下一篇:职场励志心得体会美文