3.1 Результаты сравнительного анализа максимальной производительности [кадров в секунду] системы телекоммуникации и максимальной скорости передачи данных [бит в секунду] для лвс Ethernet и Token Ring.

сеть

П [кадров/с]

V [Мбит/с]

Ethernet

39063

3,75

Token Ring

22727

2,18

3.2 Выводы по результатам формирования кадров лвс Ethernet и Token Ring.

Согласно полученным результатам сеть Ethernet является более предпочтительной, по сравнению с сетью Token Ring, для пересылки пакетов с полем данных равным 12 байтам (полная длина пакета 20 байт в сети Ethernet и 22 байта в сети Token Ring). Пересылка данных в сети Ethernet оказывается быстрее и дешевле.

Но если длина пакетов возрастёт, то сеть Token Ring станет более предпочтительной, т.к. в ней имеется защита от одновременной посылки пакетов сразу двумя станциями.

4.1 Приложение

Текст программы CRC, которую я написал для подсчёта контрольной суммы (Borland C++):

//coded by Churilov A., (c) 2002

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

#include <string.h>

int selector(char header[],char item1[],char item2[]){

gotoxy(1,8);

textbackground(7);

textcolor(15);

cprintf(header);

textbackground(0);

cprintf(" ");

textbackground(2);

cprintf(item1);

textbackground(0);

cprintf(" ");

cprintf(item2);

int key=0,xl=0;

for (;;)

{

key=getch();

switch (key)

{

case 75:

if(xl==0) continue;

gotoxy(2+strlen(header),8);

textbackground(2);

cprintf(item1);

textbackground(0);

cprintf(" ");

cprintf(item2);

xl--;

break;

case 77:

if(xl==1) continue;

gotoxy(2+strlen(header),8);

textbackground(0);

cprintf(item1);

cprintf(" ");

textbackground(2);

cprintf(item2);

xl++;

break;

case 13:

textbackground(0);

return xl;

break;

}

}

}

void main(){

int polin[9]={1,0,0,0,1,1,1,0,1};

int sum[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

int nextbt[8]={0,0,0,0,0,0,0,0};

int n=0;

char symread[8]={0,0,0,0,0,0,0,0};

int nb=1;

textbackground(0);

clrscr();

textbackground(7);

textcolor(15);

cprintf("CRC coder v0.1b by Churilov A.");

textbackground(0);

textcolor(15);

cout<<"\n\nenter a 1st byte (bit-for-bit in BIN):\n";

cin>>symread;

for(int i=0;i<8;i++)

{

if(symread[i]==48)sum[i]=0;

else sum[i]=1;

}

while(1){

n=0;

while(n!=8){

for(i=n;i<8;i++)if(sum[i]==1)break;

n=i;

if(n!=8)for(i=0;i<9;i++)

{

sum[n+i]=sum[n+i]+polin[i];

sum[n+i]=sum[n+i]%2;

}

}

cout<<"\n";

for(i=8;i<16;i++)cout<<sum[i];

cout<<"\n";

if (selector("next byte?","yes","no")==1)break;

for(i=0;i<8;i++)

{

sum[i]=sum[i+8];

sum[i+8]=0;

}

clrscr();

nb++;

cout<<"enter byte №"<<nb<<" (bit-for-bit in BIN):\n";

cin>>symread;

for(int i=0;i<8;i++)

{

if(symread[i]==48)nextbt[i]=0;

else nextbt[i]=1;

sum[i]=sum[i]+nextbt[i];

sum[i]=sum[i]%2;

}

}

}