
- •Санкт-Петербургский Институт Точной Механики и Оптики (Технический Университет) Домашнее задание №2 «Упаковка данных в кадры лвс»
- •2.3 Упаковка сообщения в кадры Token Ring
- •3.1 Результаты сравнительного анализа максимальной производительности [кадров в секунду] системы телекоммуникации и максимальной скорости передачи данных [бит в секунду] для лвс Ethernet и Token Ring.
- •3.2 Выводы по результатам формирования кадров лвс Ethernet и Token Ring.
- •4.1 Приложение
- •5.1 Литература
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;
}
}
}