计算机网络实验书.docx

上传人:b****2 文档编号:13908092 上传时间:2023-06-19 格式:DOCX 页数:35 大小:1.44MB
下载 相关 举报
计算机网络实验书.docx_第1页
第1页 / 共35页
计算机网络实验书.docx_第2页
第2页 / 共35页
计算机网络实验书.docx_第3页
第3页 / 共35页
计算机网络实验书.docx_第4页
第4页 / 共35页
计算机网络实验书.docx_第5页
第5页 / 共35页
计算机网络实验书.docx_第6页
第6页 / 共35页
计算机网络实验书.docx_第7页
第7页 / 共35页
计算机网络实验书.docx_第8页
第8页 / 共35页
计算机网络实验书.docx_第9页
第9页 / 共35页
计算机网络实验书.docx_第10页
第10页 / 共35页
计算机网络实验书.docx_第11页
第11页 / 共35页
计算机网络实验书.docx_第12页
第12页 / 共35页
计算机网络实验书.docx_第13页
第13页 / 共35页
计算机网络实验书.docx_第14页
第14页 / 共35页
计算机网络实验书.docx_第15页
第15页 / 共35页
计算机网络实验书.docx_第16页
第16页 / 共35页
计算机网络实验书.docx_第17页
第17页 / 共35页
计算机网络实验书.docx_第18页
第18页 / 共35页
计算机网络实验书.docx_第19页
第19页 / 共35页
计算机网络实验书.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

计算机网络实验书.docx

《计算机网络实验书.docx》由会员分享,可在线阅读,更多相关《计算机网络实验书.docx(35页珍藏版)》请在冰点文库上搜索。

计算机网络实验书.docx

计算机网络实验书

《数据通信与计算机网络》

实验指导书

通信工程系计算机通信教研室

2007年3月

前言

《数据通信与计算机网络》是通信工程专业一门重要的专业课,属核心必修课。

本课程技术性、系统性和实践性强,涉及到数据通信的相关概念;信源、信道的编码的相关知识;通信协议以及计算机网络的相关概念、TCP/IP协议的基本原理、局域网相关概念。

因此课堂教学应该与实践环节紧密结合。

《数据通信与计算机网络》力求在理论教学和实践环节有所突破,使学生学好网络理论知识,对TCP/IP协议族和数据通信的相关知识有一个全面深入的认识,掌握TCP/IP协议族构成,并能在此基础上,通过编程实践和网络命令及常用工具软件的具体操作,提高学生对数据通信知识的掌握及计算机网络的认识。

本实验课程中的网络编程采用WINDOWS操作系统下的VB或其它高级语言作为开发工具,编程实现基于socket的通信。

通过本实验,使学生能深刻理解TCP/IP协议簇中各主要协议的相互关系。

本实验课程中基于通信网络通信协议的编写以及对信道编码C语言编程实现的实验,加深对数据通信相关知识与技能的掌握和运用。

同时在本门课程中也涉用到常用网络工具与命令使用的实验,加深同学对网络知识的认识,提高学生的动手能力。

目录

前言I

目录II

实验一PC机间的串口通信1

1.实验目的1

2.实验内容1

3.实验步骤1

实验二差错编码的C语言实现1

1.实验目的1

2.实验内容1

3.实验步骤1

实验三简单通信协议的编写2

1.实验目的2

2.实验内容2

3.实验步骤2

实验四常用网络命令和一些工具的使用实验3

1.实验目的3

2.实验内容3

3.实验步骤3

附录4

附录1:

1PC机串口通信程序代码4

附录2:

差错控制编码C代码(汉明码、奇偶校验6

附录3:

特定通信网络图8

附录4:

通信协议8

附录5Sniffer的使用10

附录6Windump的使用范例16

附录7网络执法官操作方法18

实验1PC机间的串口通信

一、实验目的

通过对PC机串行口的具体操作,掌握RS232通信协议。

同时,通过高级语言编程实现计算机间的数据传输,了解并掌握通信协议的软件实现方法。

二、实验内容

程序编写类题目:

两台电脑通过串口线连接。

编写收、发程序,实现两计算机之间的数据(要求数据打包传输)传输。

建议在VC、VB中使用Common控件实现。

三、实验步骤

1.问题理解和分析

充分地分析和理解问题本身,弄清要求做什么。

2.确定解决问题的方法(设计)

主要是找到解决问题的主要思路,是怎么做。

在此阶段可考虑系统的功能和模块划分等。

3.详细设计和编码

确定算法的主要流程,再进行编程。

4.程序调试和运行。

5.附录1PC机串口通信VB实现代码。

(放弃)实验2差错编码的C语言实现

一、实验目的

通过C语言实现海明码的程序设计,掌握信道编码的基本概念、作用以及实现方法。

允分理解数据通信中信道编码的意义与具体的实现方法。

二、实验内容

程序编写类题目

[问题描述]

用软件实验通信中差错编码。

[基本要求]

(1)熟练掌握海明码的基本原理。

(2)分别编写函数实现编码、解码的子函数。

(3)对给定的任意先序序列进行编、解码。

三、实验步骤

1.问题理解和分析

充分地分析和理解问题本身,弄清要求做什么。

2.确定解决问题的方法(设计)

主要是找到解决问题的主要思路,是怎么做。

在此阶段可考虑系统的功能和模块划分等。

3.详细设计和编码

确定算法的主要流程,再进行编程。

4.程序调试和运行

5.附录2海明码、奇偶校验的C语言实现代码。

 

实验2网络编程

一、实验目的

学会使用socket网络编程

二、实验内容

程序编写类题目

[问题描述]

编程实现网络聊天功能。

[基本要求]

掌握socket网络编程,如VC的socket控件使用。

能实现两台计算机之间的聊天功能。

三、实验步骤

1.问题理解和分析

充分地分析和理解问题本身,弄清要求做什么。

2.确定解决问题的方法(设计)

主要是找到解决问题的主要思路,是怎么做。

在此阶段可考虑系统的功能和模块划分等。

3.详细设计和编码

确定算法的主要流程,再进行编程。

4.程序调试和运行

 

实验3简单通信协议的编写

一、实验目的

在数据通信与计算机网络中通信协议起着致关重要的作用,本知识点也是该课程的重难点。

通过对通信协议理论知识的学习,要求学生对一个简单通信系统,编写一个较完整的通信协议,实现系统的通信任务,以强化学生对通信协议的理解和掌握。

二、实验内容

文字描述类题目

[问题描述]

假如学生食堂RFIC卡售饭系统的网络结构如下所示请写出其通信协议(用文字描述即可)。

(见附录3图1)。

[基本要求]

(1)学生自己要了解整个系统的功能要求。

(2)根据图示给出的网络连接图采用停-等模式写出完整通信协议

(3)协议的正确与否以协议是否能满足系统的功能要求为准。

三、实验步骤

1.问题理解和分析

充分地分析和理解问题本身,弄清要求做什么。

2.确定解决问题的方法

主要是找到解决问题的主要思路。

3.写出完整的通信协议

根据所掌握的知识设计出通信协议的具体内容

4.附录4通信协议。

 

实验4常用网络命令和一些工具的使用实验

一、实验目的

通过对计算机网络基本知识的学习,动手操作一些常用的命令、工具,加深对计算机网络的认识与使用。

二、实验内容

简单操作类题目

1.EtherDetectPacketSniffer的使用,它是一个强大、易用的网络数据包嗅探器。

它能够完整地捕捉到所处局域网中所有计算机的上、下行数据包,你也可以保存捕捉到的数据包。

此软件可用于本地网络安全、网页设计、局域网管理、网络程序设计...等的辅助工作。

Windump是Windows环境下一款经典的网络协议分析软件,其Unix版本名称为Tcpdump。

它可以捕捉网络上两台电脑之间所有的数据包,供网络管理员/入侵分析员做进一步流量分析和入侵检测。

在这种监视状态下,任何两台电脑之间都没有秘密可言,所有的流量、所有的数据都逃不过你的眼睛(当然加密的数据不在讨论范畴之内,而且,对数据包分析的结果依赖于你的TCP/IP知识和经验,不同水平的人得出的结果可能会大相径庭)。

如果你做过DEBUG或者反汇编,你会发现二者是那么惊人的相似。

2.局域网管理软件(网络执法官的使用)

局域网上网限制软件,上网监管,网络监控,邮件监控,互联网监控,上网监控,上网管理,网络监控软件,邮件拦截,邮件备份,上网过滤,网页过滤,管理上网,局域网管理,局域网监控,网络监视,邮件监视,上网监视,网络监测,邮件监测,网络检测,邮件检测,限制上网,限制聊天,上网限制,聊天限制,控制上网,网络管理程序,限制QQ,限制MSN,封堵QQ,禁止MSN,电子邮件监控,email监控……

3.PINGMSCONFIGIPCONFIGGPEDITWINGATEPROXY等软件的使用方法比如要知道PING不同的对象代表什么含义

4.网上邻居的故障及维护

5.网络打印共享的管理及维护

三、实验步骤

1.从网上收集相关命令和软件的说明书、了解其功能及作用。

2.从网上收集相关命令和软件的使用方法。

3.下载相关软件、并安装到PC机。

4.动手使用相关命令及软件。

5.

5.附录5Sniffer的使用附录6Windump的使用范例附录7网络执法官操作方法

 

附录1PC机串口通信程序代码

VERSION5.00

Object="{648A5603-2C6E-101B-82B6-000000000014}#1.1#0";"MSCOMM32.OCX"

BeginVB.FormForm1

Caption="Form1"

ClientHeight=5010

ClientLeft=60

ClientTop=345

ClientWidth=6750

LinkTopic="Form1"

ScaleHeight=5010

ScaleWidth=6750

StartUpPosition=3'窗口缺省

BeginVB.CommandButtonCommand1

Caption="发送"

Height=495

Left=2400

TabIndex=4

Top=4080

Width=1215

End

BeginMSCommLib.MSCommMSComm1

Left=5760

Top=4080

_ExtentX=1005

_ExtentY=1005

_Version=393216

DTREnable=-1'True

End

BeginVB.TextBoxText2

Height=1095

Left=360

TabIndex=3

Top=2640

Width=5895

End

BeginVB.FrameFrame2

Caption="发射端"

Height=375

Left=360

TabIndex=2

Top=2160

Width=1575

End

BeginVB.TextBoxText1

Height=1215

Left=480

MultiLine=-1'True

ScrollBars=2'Vertical

TabIndex=1

Top=720

Width=5895

End

BeginVB.FrameFrame1

Caption="接收端"

Height=375

Left=360

TabIndex=0

Top=240

Width=1455

End

End

AttributeVB_Name="Form1"

AttributeVB_GlobalNameSpace=False

AttributeVB_Creatable=False

AttributeVB_PredeclaredId=True

AttributeVB_Exposed=False

PrivateSubCommand1_Click()

MSComm1.OutBufferCount=0

MSComm1.Output=Text2.Text

MSComm1.InputLen=0

MSComm1.RThreshold=1

MSComm1.SThreshold=1

Text2.SetFocus

Text2.Text=""

EndSub

PrivateSubForm_Load()

MSComm1.CommPort=1

MSComm1.Settings="9600,n,8,1"

MSComm1.PortOpen=True

EndSub

PrivateSubMSComm1_OnComm()

SelectCaseMSComm1.CommEvent

CasecomEvReceive

Text1.SelText=MSComm1.Input

MSComm1.InBufferCount=0

EndSelect

EndSub

 

附录2差错控制编码C代码(汉明码、奇偶校验)

//8比特汉明码模拟通讯程序

#defineN8//原始数据的字节数

unsignedcharHM[16]={0x00,0x71,0xB2,0xC3,0xD4,0xA5,0x66,0x17,//编码表

0xE8,0x99,0x5A,0x2B,0x3C,0x4D,0x8E,0xFF};

unsignedcharerr[8]={0x00,0x20,0x40,0x01,0x80,0x02,0x04,0x08};//错误图样

unsignedcharS=0xA6;//原始数据

unsignedcharDT[2];//原始数据的汉明码(发送的内容)

unsignedcharDR[2];//收到的汉明码

unsignedcharR;//解码结果(接收的内容)

voidTRANS(unsignedcharps)//编码程序(模拟发送)

{

unsignedcharc1,c2;

c1=ps/16;//c1为原始数据的高4位

c2=ps%16;//c2为原始数据的低4位

DT[0]=HM[c1];//按编码表对c1进行编码

DT[1]=HM[c2];//按编码表对c2进行编码

//P0=DT[0];

//P1=DT[1];

}

unsignedcharparity(unsignedcharch)//偶校验

{

unsignedchari,k=0;

for(i=0;i<8;i++){

if(ch&0x01)k^=0x01;

ch>>=1;

}

returnk;

}

unsignedcharUNHM(unsignedcharch)//汉明码解码算法

{

unsignedcharc,p,q0,q1,q2;

p=parity(ch);//保存全字节偶校验结果

q1=parity(ch&0x4d);//对D1、D3、D5、D7进行偶校验

q0=parity(ch&0x2b);//对D2、D3、D6、D7进行偶校验

q2=parity(ch&0x8E);//对D4、D5、D6、D7进行偶校验

c=q0|q1<<1|q2<<2;//拼装校验结果,得到错误图样

ch^=err[c];//按错误图样进行纠错

ch&=0x0f;//取出4比特信息内容

//if(c&&!

p)ch+=0x20;//发现两个差错

returnch;

}

//将接收到的两字节信息解码拼装为一字节数据

voidRECEV()//解码程序(模拟接收)

{

unsignedcharc1,c2;

DR[0]=DT[0];

DR[1]=DT[1];

c1=UNHM(DR[0]);//解码一字节

if(c1>16)c1&=0x0f;//差错判断

c2=UNHM(DR[1]);//再解码一字节

if(c2>16)c2&=0x0f;//差错判断

R=c1*16+c2;//拼装为一字节数据

//P2=R;

}

main()

{

TRANS(S);//对原始数据进行汉明编码(模拟发送)

RECEV();//对没有干扰的数据进行解码(模拟接收),f=1,成功.

while

(1);//在这一行设置断点,中止程序运行,以便观察程序运行的结果

}

 

附录3特定通信网络图

图1

附录4通信协议

一.协议的各种规定和要求

1.互相之间通信采用RS485。

2.每个客户端(从设备)须要唯一的设备地址,以便服务器(主设备)按地址识别发来的消息,决定要产生何种行动。

如果需要回应,服务器将生成反馈信息。

3.数据如何在网络上转输

通信使用主—从方式,即只有服务器能初始化传输和数据。

从设备根据主设备查询提供的数据并作出相应反应。

主设备可单独和从设备通信,也能以广播方式和所有从设备通信。

如果单独通信,从设备返回消息作为回应,如果是以广播方式查询的,则从设备不作任何回应。

协议建立了主设备查询的格式:

设备(或广播)地址、功能代码、所有要发送的数据、一错误检测域。

从设备回应消息也由协议构成,包括确认要行动的域、任何要返回的数据、和一错误检测域。

如果在消息接收过程中发生一错误(无相应的功能码),或从设备不能执行其命令,从设备将建立一错误消息并把它作为回应发送出去。

4.数据长度帧发送

接收到正确的总线确认数据后,数据采集与传输控制器发送数据长度帧,9字节,1~2字节是数据长度的低、高字节,最长为OFFFFH,即一次发送数据长度应小于64K,若数据总长度超过64K,应分别发送,并在数据中加入标记,以便主机能正确对后继数据进行追加;3~8字节等于03H,第9字节为校验和,然后等待主机返回一个确认字节,03H表示接收正确,58H表示错误,需重发,当连续错误次数达到一定值(40H次)或在一定时间内收不到确认字节,程序就不在发送数据,1~2字节定义的数据长度应为8的整数倍,即发送数据长度>实际数据长度。

数据长度中不包括本帧数据长度和各帧中的校验字节(即每帧按8字节计算长度),包括后面所有数据帧长度。

5.错误检测方法 

(1)超时检测

用户要给主设备配置一预先定义的超时时间间隔,这个时间间隔要足够长,以使任何从设备都能作为正常反应。

如果从设备检测到一传输错误,消息将不会接收,也不会向主设备作出回应。

这样超时事件将触发主设备来处理错误。

发往不存在的从设备的地址也会产生超时。

 

(2)CRC检测 

CRC域是一个字节,检测了整个消息的内容。

它由传输设备计算后加入到消息中。

接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误,从设备对本消息不作回应。

 

通讯网络只设有一个主机,所有通信都由他发起。

网络可支持254个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。

 

6.传输速率:

9600BPS

二.通信接口协议命令定义

1.刷卡:

161+chr

(1)+客户端物理地址(PDANo)+持卡人编号+就餐金额

注:

就餐金额若为0则表示没有就餐

2、信息暂时保存:

162+chr

(2)+客户端物理地址(PDANo)+持卡人编号+就餐金额+消费的次数

3、查询节余

163+chr(3)+客户端物理地址(PDANo)+持卡人编号+剩余金额

4、数据传输:

164+chr(4)+客户端物理地址(PDANo)+持卡人编号+传输数据

5、接口操作:

165+chr(5)+客户端物理地址(PDANo)+服务器地址+接口命令

6、客户端传输数据命令:

166+chr(6)+传输命令+客户端物理地址(PDANo)+持卡人编号+剩余金额

7、刷卡失败:

167+chr(7)+客户端物理地址(PDANo)+持卡人编号+操作标志+不存储数据标志+清空客户端对应的记录

8、卡锁定:

(说明:

由于刷卡过快,或者是丢失等原因需要暂时把用户的卡锁定,这种锁定只能在服务器端进行相应的操作之后才可以在使用本张卡,而且本次消费失败。

168+chr(8)+客户端物理地址(PDANo)+持卡人编号+操作标志+不扣除本次的就餐金额+服务器卡锁定+客户端执行命令+清空客户端对应的记录

9、冲值:

169+chr(9)+客户端物理地址(PDANo)+持卡人编号+冲值操作标志+冲值金额+服务器记录修改命令+客户端修改命令+与银行卡之间的交易

10.客户端对总线的侦听、:

170+chr(10)+客户端物理地址(PDANo)+持卡人编号十请求命令+服务器地址

11.总线的应答

171+chr(11)+客户端物理地址(PDANo)+持卡人编号十请求命令+服务器地址+忙闲标志

三.服务器的数据库

1.要实现对各个终端的管理必须在服务器端上建立相应的数据库,用来保存终端的数据,并且防止终端的数据丢失以后从服务器端取数据,方便以后的查询和维护。

2.数据库中的数据内容:

终端地址(编号),卡的编号,消费时间,消费金额,剩余金额(冲值金额也算在里边),消费次数,冲值时间,冲值机的编号

3.说明:

对于各个终端来说,终端地址(编号),卡的编号,剩余金额(冲值金额也算在里边),是每次刷卡的时候必须显示的,而其他的数据可以不传。

 

附录5Sniffer的使用

捕获数据包前的准备工作

在默认情况下,sniffer将捕获其接入碰撞域中流经的所有数据包,但在某些场景下,有些数据包可能不是我们所需要的,为了快速定位网络问题所在,有必要对所要捕获的数据包作过滤。

Sniffer提供了捕获数据包前的过滤规则的定义,过滤规则包括2、3层地址的定义和几百种协议的定义。

定义过滤规则的做法一般如下:

1、在主界面选择captureàdefinefilter选项。

2、definefilteràaddress,这是最常用的定义。

其中包括MAC地址、ip地址和ipx地址的定义。

以定义IP地址过滤为例,见图1。

图1

比如,现在要捕获地址为10.1.30.100的主机与其他主机通信的信息,在Mode选项卡中,选Include(选Exclude选项,是表示捕获除此地址外所有的数据包);在station选项中,在任意一栏填上10.1.30.100,另外一栏填上any(any表示所有的IP地址)。

这样就完成了地址的定义。

注意到Dir.栏的图标:

表示,捕获station1收发的数据包;

表示,捕获station1发送的数据包;

表示,捕获station1收到的数据包。

最后,选取 

将定义的规则保存下来,供以后使用。

3、definefilteràadvanced,定义希望捕获的相关协议的数据包。

如图2。

图2

比如,想捕获FTP、NETBIOS、DNS、HTTP的数据包,那么说首先打开TCP选项卡,再进一步选协议;还要明确DNS、NETBIOS的数据包有些是属于UDP协议,故需在UDP选项卡做类似TCP选项卡的工作,否则捕获的数据包将不全。

如果不选任何协议,则捕获所有协议的数据包。

PacketSize选项中,可以定义捕获的包大小,图3,是定义捕获包大小界于64至128bytes的数据包。

图3

4、definefilteràbuffer,定义捕获数据包的缓冲区。

如图4:

图4

Buffersize选项卡,将其设为最大40M。

Capturebuffer选项卡,将设置缓冲区文件存放的位置。

5、最后,需将定义的过滤规则应用于捕获中。

如图5:

图5

点选SelectFilteràCapture中选取定义的捕获规则。

二、捕获数据包时观察到的信息

CaptureàStart,启动捕获引擎。

sniffer可以实时监控主机、协议、应用程序、不同包类型等的分布情况。

如图6:

图6

Dashboard:

可以实时统计每秒钟接收到的包的数量、出错包的数量、丢弃包的数量、广播包的数量、多播包的数量以及带宽的利用率等。

HostTable:

可以查看通信量最大的前10位主机。

Matrix:

通过连线,可以形象的看到不同主机之间的通信。

ApplicationResponseTime:

可以了解到不同主机通信的最小、最大、平均响应时间方面的信息。

HistorySamples:

可以看到历史数据抽样出来的统计值。

Protocoldistribution:

可以实时观察到数据流中不同协议的分布情况。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2