计算机网络实验1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

杭州电子科技大学实验报告

学生姓名:韩民杨实验地点: 1#108学号: 12081420 指导教师:吴端坡

实验时间: 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-16x16+x15+x2+1IBM SDLC

CRC-32x32+x26+x23+...+x2+ ZIP, RAR, IEEE 802 LAN/FDDI, IEEE x+11394, PPP-FCS

For the error patter listed below, what the conclusion does the receiver get? Can the receiver find the errors?

Case Error pattern

No error0000⋯⋯ 0000

One error1000⋯ ..000

Two errors100⋯ .001

Random errors Random 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?

Case Error 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

{ 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",&pattern);

fflush(stdin);// 清空缓存区

if(pattern == 1)

相关文档
最新文档