




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
杭杭 州州 电电 子子 科科 技技 大大 学学 实实 验验 报报 告告 学生姓名 韩民杨学生姓名 韩民杨 学学 号 号 12081420 指导教师 吴端坡指导教师 吴端坡 实验地点 实验地点 1 108 实验时间 实验时间 2015 4 24 一 实验室名称 一 实验室名称 1 108 二 实验项目名称 二 实验项目名称 计算机网络实验 1 Coding on error dectecting algorithms C 三 实验学时 三 实验学时 四 实验原理 四 实验原理 C 编程 五 实验目的 五 实验目的 利用 C 编程 CRC16 校验及奇偶校验 六 实验内容 六 实验内容 Coding on error dectecting algorithms C 1 Cyclic redundancy check Using the polynomials below to encode random generated data stream 40 100bits Show the FEC and encoded data frame CRC 4x4 x 1ITU G 704 CRC 16 x16 x15 x2 1IBM SDLC CRC 32 x32 x26 x23 x2 x 1 ZIP RAR IEEE 802 LAN FDDI IEEE 1394 PPP FCS For the error patter listed below what the conclusion does the receiver get Can the receiver find the errors CaseError pattern No error0000 0000 One error1000 000 Two errors100 001 Random errorsRandom error pattern 2 Parity check Using even or odd parity check on random generated data stream 8 20bits Show encoded data frame For the error patter listed below what the conclusion does the receiver get Can the receiver find the errors CaseError pattern No error0000 0000 One error1000 000 Two errors100 001 七 实验器材 设备 元器件 七 实验器材 设备 元器件 PC 机一台 装有 C 集成开发环境 八 实验步骤 八 实验步骤 include include include include include include define NO ERROR 1 define ONE ERROR 2 define TWO ERROR 3 define RANDOM ERROR 4 define RESULT 1 define CRC 0 define Parity 0 define check 1 int flag parity 判断奇偶校验 void ByteToBit char out const char in int bits void input message char message int xor char p char d int len char crc function char str p int len char dividend int len d int type char crc p char Parity check char message output int length int mode void main int pattern 0 int channel way 0 char message 8 NULL data that produced by chance char message output 1000 NULL char message crc NULL transport int length message s length 这是固定了为 4 为的 crc 当这里改变是就可以直接改变 crc 的长度了 char dividend 10011 char message input 1000 这里可以更改数值当时 16 为 crc 的时候 此时的 len d 为 15 int len d 5 被除数长度设置 char flag while true fflush stdin 任意输入数据 printf please input the message n gets message printf A need to send this message s n message length strlen message ByteToBit message output message length 8 for int k 0 k length 8 k printf d message output k message input k message output k 48 pattern 0 channel way 0 printf n printf Coding on error dectecting algorithms n printf 1 Cyclic redundancy check n printf 2 Parity check n printf please chice pattern n 选择进入的检错模式 scanf d fflush stdin 清空缓存区 if pattern 1 printf n printf analog channel n printf please choice the way of error n printf 1 No error n printf 2 One error n printf 3 Two errors n printf 4 Random errors n scanf d printf ncrc 进行 crc 检测 int len length 8 printf d n len char crc NULL crc crc function message input len dividend len d CRC NULL for int i 0 i len d i printf c crc message input length 8 i crc crc 1 printf n 模拟信道 Case Error pattern No error 0000 0000 One error 1000 000 Two errors 100 001 Random errorsRandom error pattern if channel way NO ERROR char result NULL int flagg 0 printf 信道中传输数据 for int f 0 f length 8 len d 1 f printf c message input f printf n printf 正在检错中 n printf 检错结果 fflush stdin result crc function message input len dividend len d RESULT crc len d for int i 0 i len d 1 i printf c result if result 48 0 printf n error n flagg 1 break result 1 if flagg 0 printf n no error n if channel way ONE ERROR char result NULL message input 0 message input 0 48 1 48 48 printf 信道中传输数据 for int f 0 f length 8 len d 1 f printf c message input f printf n printf 正在检错中 printf 检错结果 result crc function message input len dividend len d RESULT crc len d for int i 0 i len d 1 i if result 1 printf data error n break else continue result 1 if channel way TWO ERROR char result NULL message input 0 message input 0 48 1 48 48 message input length 8 1 message input length 8 1 48 1 48 48 printf 信道中传输数据 for int f 0 f length 8 len d 1 f printf c message input f printf n printf 正在检错中 printf 检错结果 result crc function message input len dividend len d RESULT crc for int i 0 i len d 1 i if result 0 printf data error n break else continue result 1 if channel way RANDOM ERROR char result NULL int no srand unsigned time NULL 初始化随机数 no rand length 8 message input no message input 0 48 1 48 48 printf 信道中传输数据 for int f 0 f length 8 len d 1 f printf c message input f printf n printf 正在检错中 n printf 检错结果 result crc function message input len dividend len d RESULT crc for int i 0 i len d 1 i if result 0 printf data error n break else continue result 1 printf n printf n printf n else printf Please select the parity mode n printf 1 Even parity n printf 2 Odd parity n scanf d char m Parity check message input length 8 Parity printf 在信道中传输的 message message input length 8 m for int message number 0 message number length 8 message number printf c message input message number printf n printf n printf analog channel n printf please choice the way of error n printf 1 No error n printf 2 One error n printf 3 Two errors n scanf d if channel way NO ERROR for int f 0 f length 8 f printf c message input f printf 正在检错中 n printf 检错结果 char flag parity mode Parity check message input length 8 check if flag parity mode message input length 8 printf no error n if channel way ONE ERROR message input 0 message input 0 48 1 48 48 for int f 0 f length 8 f printf c message input f printf 正在检错中 n printf 检错结果 char flag parity mode Parity check message input length 8 check printf error n if channel way TWO ERROR message input 0 message input 0 48 1 48 48 message input length 8 1 message input length 8 1 48 1 48 48 for int f 0 f length 8 f printf c message input f printf 正在检错中 n printf 检错结果 char flag parity mode Parity check message input length 8 check printf no error n printf n printf n printf n fflush stdin printf do you want to continue y n n scanf c if flag y continue else break function 完成字节转换成位的功能 输入字符 In 输出的二进制 Out void ByteToBit char out const char in int bits char out 1 1000 int i printf s n in for i 0 i 3 i printf d d n i out i function 完成异或除法 输入 p d 输出 直接将一次异或除法之后的结果覆盖 int xor char p char d int len 5 p 为 message d 为 crc 检测的中的 p int i 0 for i len i p p 48 d 48 48 p p 1 d d 1 d d len d 重新指向最新的 p p len 1 p 后移一位 return 0 function 完成 crc 检错以及 crc 计算 输入 传输字符 str p 传输字符长度 len 4 位的 crc 的检错方式 len d 是需要填 0 的个数 type 用于判断显示计算传输之后的结果还是计算 crc 输出 crc 或者计算传输之后的结果 char crc function char str p int len char dividend int len d int type char crc p NULL int i int j char input p char malloc sizeof char len len d 1 申请空间 char input p tmp NULL input p tmp input p 向指针指向的内存里存数据 for i 0 i len i input p tmp str p i input p tmp 补零个数为 len d 1 for i 0 i len d 1 i if type CRC 如果是求 crc 就补 0 input p tmp 0 input p tmp else 如果是求结果就补 crc input p tmp crc p crc p input p tmp input p tmp NULL 开始检查如果是 1 则进行异或除法 如果是 0 就指针向下移动一位 其中 0 48 for j 0 j len j 把 1 传入 48 表示为 0 if input p 48 指针后移一位 input p input p 1 else xor return input p function 完成奇偶校验 输入 message output 为需要传输的数据以及数据的长度 lengh 奇偶校验的模 式 输出 返回奇偶校验的结果 char Parity check char message output int length int mode fflush stdin int j 0 偶校验 if flag parity 1 if mode Parity for int i 0 i length i if message output i 49 j else co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 南京创业公司管理制度
- 公司行政基础管理制度
- 公司机关防疫管理制度
- 期货采购方案(3篇)
- 公益课堂策划管理制度
- 医学装备出库管理制度
- 公司研发基金管理制度
- 养老护理服务管理制度
- DB62T 4483-2021 绿色食品 大棚草莓生产技术规程
- DB62T 4384-2021 辣椒品种 苏武红
- VTE-住院患者相关评估量表课件
- 化学品安全技术说明书盐酸MSDS
- 巴杀杀菌作业指导书乳业有限公司
- 品质部质量体系管理制度
- 水利生产安全事故典型案例分析
- 中国古代的丝绸之课件
- 帕金森病中医药治疗探索课件
- 检验科 医院感染管理质量督查评分表
- 美发理发店各级别岗位职责考核
- 量值溯源图要求
- 高分子材料成型加工基础添加剂及配方设计课件
评论
0/150
提交评论