计算机网络实验1

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

杭州电子科技大学

实验报告

学生姓名:韩民杨学号: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-4 x4+x+1 ITU G.704

CRC-16 x16+x15+x2+1 IBM 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?

Case Error pattern

No error 0000 (0000)

One error 1000 (000)

Two errors 100 (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 error 0000 (0000)

One error 1000 (000)

Two errors 100 (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)

相关文档
最新文档