ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:261.91KB ,
资源ID:4424884      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4424884.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《工业计算机网络与通信》实验一二09.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《工业计算机网络与通信》实验一二09.docx

1、工业计算机网络与通信实验一二09工业计算机网络与通信实 验 指 导 书自动化学院 控制工程系编写:李娟 王巧玲北 京 信 息 科 技 大 学2010年9月实验一 校验码的生成一、实验目的1. 理解校验码的原理与校验过程;2. 掌握求和校验码的软件生成方法;3. 掌握CRC校验码的软件生成方法。二、实验仪器及设备1. PC机;2. Visual C+ 6.0或TurboC 3.0。三、实验说明 1. CRC校验码(生成多项式取为CRC-16) G(x)x16+x15+x2+1,要求采用Modbus协议规定的CRC计算函数,参见附录1。2. CRC校验码(生成多项式取为CRC-CCITT)G(x)

2、x16+x12+x5+1,CRC码的计算可按下述三种算法之一进行:1)按位计算CRC;2)按字节计算CRC;3)按半字节计算CRC。1)按位计算CRC算法步骤如下:(1) 令16位的CRC寄存器初值为0;(2) 取数据包的第1个8位字节(高字节);(3) 取当前字节的最高位;(4) 若CRC寄存器的最高位为1,则CRC寄存器的内容左移1位,最低位补0,然后与多项式值0x1021异或,得到新的CRC值; 若CRC寄存器的最高位为0,则CRC寄存器的内容左移1位,得到新的CRC值;(5) 若当前字节的当前位为1,则CRC寄存器的内容与多项式值0x1021异或,得到新的CRC值;(6) 当前字节左移

3、一位(即:取当前字节的下1位);(7) 重复步骤4到6,直至当前字节的8位处理完;(8) 取数据包的下一字节;(9) 重复步骤3到8,直至所有字节被处理完;关键算法:计算本位后的CRC码等于上一位CRC码乘以2后除以多项式,所得的余数再加上本位值除以多项式所得的余数。2)按字节计算CRC关键算法:计算本字节后的CRC码等于上一字节余式CRC码的低8位左移8位后,再加上上一字节CRC右移8位(也既取高8位)和本字节之和后查表所求得的CRC码。 3)按半字节计算CRC 关键算法:计算本半字节后的CRC码等于上一字节CRC码的低12位左移4位后,再加上上一字节余式CRC右移12位(也既取高4位)和本

4、半字节之和后查表所求得的CRC码。按位计算CRC码的参考函数,及按字节、半字节计算的CRC码表参见附录一。 3. 求和校验码对数据包的内容累加求和,取累加和的低字节作为该数据包的求和校验码。四、实验内容及步骤 (1) 甲、乙两同学组成虚拟通讯小组,约定校验方式;(2) 要发送的数据序列包括6个字节,按发送的先后顺序依次为:0x18,0x04,0x00,0x00,0x00,0x08。按(1)中规定的校验方式编程计算校验码,并按数据发送的先后顺序显示应发送的全部数据;(3) 甲、乙两同学分别任意设定欲发送数据序列,重新计算校验码,并交换应发送的全部码字作为接收数据,验证接收数据序列的正确性。五、思

5、考题与习题1. 甲、乙两同学计算出的校验码是否相同,如果不同,原因是什么?2. 串行通信中常用的差错校验方法还有哪些?实验二 基于PC的以太网通信实验一、实验目的1. 熟悉以太网通信的基本参数配置;2. 掌握以太网交叉双绞线电缆的制作方法;3. 掌握网络协议分析的基本技术,深入理解以太网的协议格式、协议层次和应用数据封装过程。二、实验仪器及设备1. PC机;2. 五类双绞线电缆;3. RJ45插头;4. 专用压线钳;5 工具软件网络协议分析仪Ethereal;5. 工具软件以太网通信调试助手WizPort V2.5。三、实验说明 1. 网线 1)RJ-45连接器8根针脚的编号规定RJ-45连接

6、器包括一个插头和一个插孔(或插座)。插孔安装在机器上,而插头和连接导线(现在最常用的就是采用无屏蔽双绞线的5类线)相连。EIA/TIA制定的布线标准规定了8根针脚的编号。如果看插孔,使针脚接触点在上方,那么最左边是,最右边是(见下图6.1(a)如果看插头,将插头的末端面对眼睛,而且针脚的接触点在插头的下方,那么最左边是,最右边是(见下图6.1(b)。 (a)插孔 (b)插头 图6.1 RJ45连接器在10 Mbps和100 Mbps以太网中只使用两对导线。即使用下表中的4根针脚(1、2、3和6),1和2用于发送,3和6用于接收。 表6.1 RJ45连接器的针脚定义针脚1发送针脚2发送针脚3接收

7、针脚4不使用针脚5不使用针脚6接收针脚7不使用针脚8不使用2)五类双绞线电缆与RJ45插头连接的规定五类线缆内部包含4对双绞线,关于不同颜色的双绞线与RJ45插头针脚的连接,EIA/TIA-568标准规定了两种连接标准,即EIA/TIA-568A和EIA/TIA-568B。这两种标准并没有实质上的差别,即:1和2是一对线,而3和6又是一对线。)在通常的工程实践中,T568B使用得较多。这两种标准的连接方法如下图所示。表6.2(a)T568A规定的连接方法线颜色白绿绿色白橙蓝色白蓝橙色白棕棕色线序12345678表6.2(b)T568B规定的连接方法线颜色白橙橙色白绿蓝色白蓝绿色白棕棕色线序12

8、345678表中“白绿”是指白色的外层上有些绿色,表示和绿色的是一对线;其它线对的确定方法类同。注意:线序是不能随意改动的。3)将5类线电缆与RJ-45插头连接起来的具体操作步骤参见附录3。2. PC机的TCP/IP属性设置打开控制面板中的“网络连接”文件夹,打开该文件夹中的“本地连接”的属性对话框,在“常规”选项下,打开“Internet 协议(TCP/IP)”的属性对话框,设置IP地址,显示界面如图6.2所示。更新IP地址后,要将“本地连接”停用,然后再启用,使新设置的IP地址生效。图6.2 TCP/IP的属性设置3. 以太网通信调试助手WizPort V2.5端口精灵WizPort是一个

9、可以为工程技术人员调试以太网和串口带来方便的免费工具,支持 WIN98/NT/2000。它主要特点是: 体积小,为一个348K的独立的可执行文件,无需安装,无需其它运行库或控件支持。 在线修改串口的各种参数如端口号、波特率、数据位、停止位、校验方式以及RTS控制等。 在线修改以太网的发送参数,如目的地址和端口号等。软件支持以太网组播的发送和接收。 灵活的数据显示控制,可以暂停、全屏显示报文或为显示报文打上时标;可以把显示的发送和接收报文保存为文本文件;可以对显示报文进行过滤。 可以选择手动发送和定时自动发送。软件的帮助中提供了建立到关闭一个端口的过程,以及常用快捷键说明。Wizport的发送端

10、口的参数设置界面如图6.3所示;接收端口只需设置端口号。收发报文的显示窗口如图6.4所示。图6.3 wizport 端口精灵发送端口的参数设置界面图6.4 wizport 端口精灵的发送窗口 4. 网络协议分析仪Ethereal Ethereal是目前流行的开放源码的网络协议分析器,支持Linux和windows平台。1998年发布最早的0.2版本,如今Ethereal已经支持五百多种协议解析。网络分析系统首先依赖于一套捕捉网络数据包的函数库。这套函数库工作在在网络分析系统模块的最底层。作用是从网卡取得数据包或者根据过滤规则取出数据包的子集,再转交给上层分析模块。从协议上说,这套函数库将一个数

11、据包从链路层接收,至少将其还原至传输层以上,以供上层分析。Ethereal网络分析系统也需要一个底层的抓包平台,在Linux中是采用Libpcap函数库抓包,在windows系统中采用winpcap函数库抓包。双击“Ethereal”图标,启动Ethereal,出现图6.5所示界面。图6.5 Ethereal主界面点击Capture/Start菜单,出现选项设置界面,如图6.6所示。在“Interface”框的下拉表中选择网卡接口;并将Display Options下的三个选项全部选中。最后点击OK按钮,被捕获的数据包将出现在Ethereal窗口中,如图6.7所示。顶部视图显示每个网络分组的序

12、号、时间戳、源和目的IP地址、协议类型和相应的描述项;中间视图显示选定分组的协议首部字段;底部视图是选定分组的十六进制显示区,在中间视图的协议树中选择一个字段,将高亮底部视图中对应的字节。点击Capture/Stop,停止抓包。保存数据包。保存后的文件可用Ethereal打开。图6.6 Ethereal选项界面图6.7 Ethereal捕获的数据包四、实验步骤1. 制作网线准备好五类双绞线、RJ45插头和压线钳。依据五类双绞线定义,RJ45定义。制作双机点对点以太网交叉双绞线通信线缆,即:将5类线电缆的两端各与一个RJ-45插头连接。2. 以太网的连接用做好的网线连接两台PC机,构成独立的小型

13、的以太网。3. 设置PC的以太网参数 甲、乙两同学分别设置以太网的其中一台PC机的TCP/IP参数;4. 测试网络的连通性在DOS状态下,使用Ping 命令测试网络的连通性。 5 启动Ethereal,监视以太网数据包 6. 应用WizPort收发UDP数据包打开WizPort的主界面,选择端口菜单中的新建命令,在弹出的对话框中选择以太网UDP报文接收端口设置项,然后设置UDP报文接收端口号(如:1234),完成对UDP报文接收的设置。回到WizPort的主界面,选择端口菜单中的新建命令,在弹出的对话框中选择以太网UDP报文发送端口设置项。然后在UDP发送选项下,设置UDP报文发送的目的端口号

14、,以及目标IP地址。在发送报文选项下,编辑发送报文,完成发送UDP报文的设置。7. 协议分析在Ethereal的顶部视图中选中一个报文分组,在底部视图中拷贝该报文,进行协议分析。五、思考题与习题1. 以太网数据帧的封装分为哪几个层次?其中UDP数据报的组成包括哪几部分?2. 是否可以将Modbus通信规约应用在以太网上?附录1 CRC校验码生成例程1下述13中计算CRC码的生成多项式均选为CRC-CCITT:G(x)x16x15x211. 按位计算CRC校验码函数声明:unsigned int cal_crc(unsigned char *ptr, unsigned char len)函数参数

15、:ptr待发送数据序列存放起始地址指针; len待发送数据长度(字节数);函数返回值:16位的CRC校验码unsigned int cal_crc(unsigned char *ptr, unsigned char len) unsigned char i; unsigned int crc=0; while(len-!=0) for(i=0x80; i!=0; i/=2) if(crc&0x8000)!=0) crc*=2; crc=0x1021; /* 余式CRC乘以2再求CRC */ else crc*=2; if(*ptr&i)!=0) crc=0x1021; /* 再加上本位的CRC

16、 */ ptr+; return(crc);2. 按半字节计算CRC码表数组crc_ta16中依次存放数据0x000x0f的CRC校验码,入下所示:unsigned int crc_ta16=0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef;3. 按字节计算CRC码表数组crc_ta256中依次存放数据0x000xff的CRC校验码,如下所示:unsigned int crc_ta256=0x0000, 0x1021, 0

17、x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,0

18、xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0

19、xa90a, 0xb92b,0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0

20、x3e13, 0x2e32, 0x1e51, 0x0e70,0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,0x02b1, 0x1290, 0x

21、22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,

22、0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad

23、8b, 0x9de8, 0x8dc9, 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0; /* CRC余式表 */附录1 MODBUS CRC校验码的生成函数CRC Generation Example The function takes two argument

24、s:unsigned char *puchMsg ; A pointer to the message buffer containingbinary data to be used for generating the CRCunsigned short usDataLen ; The quantity of bytes in the message buffer.The function returns the CRC as a type unsigned short.CRC Generation Functionunsigned short CRC16(puchMsg, usDataLe

25、n)unsigned char *puchMsg ; /* message to calculate CRC upon */unsigned short usDataLen ; /* quantity of bytes in message */unsigned char uchCRCHi = 0xFF ; /* high byte of CRC initialized */unsigned char uchCRCLo = 0xFF ; /* low byte of CRC initialized */unsigned uIndex ; /* will index into CRC looku

26、p table */while (usDataLen-) /* pass through message buffer */uIndex = uchCRCHi *puchMsgg+ ; /* calculate the CRC */uchCRCHi = uchCRCLo auchCRCHiuIndex ;uchCRCLo = auchCRCLouIndex ;return (uchCRCHi 8 | uchCRCLo) ;High-Order Byte Table/* Table of CRC values for highorder byte */static unsigned char a

27、uchCRCHi = 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00

28、, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0

29、x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0

30、,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x

31、01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1