计算机网络实验书.docx
- 文档编号:26410063
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:35
- 大小:1.44MB
计算机网络实验书.docx
《计算机网络实验书.docx》由会员分享,可在线阅读,更多相关《计算机网络实验书.docx(35页珍藏版)》请在冰豆网上搜索。
计算机网络实验书
《数据通信与计算机网络》
实验指导书
通信工程系计算机通信教研室
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:
可以实时观察到数据流中不同协议的分布情况。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 实验