- •1 Аналіз інформаційних мереж 10
- •1 Аналіз інформаційних мереж
- •1.1 Види мереж
- •1.2 Особливості та призначення корпоративних мереж, історія розвитку
- •1.3 Опис корпоративної мережі, що досліджується
- •2 Дослідження канального рівня мережі
- •2.1 Обгрунтування стандартизації функцій інформаційних мереж міжнародною спілкою електрозв’язку
- •2.2 Передача даних на канальному рівні
- •2.2.1 Протоколи канального рівня
- •2.2.2 Система опитування/вибір
- •2.2.3 Двійкове синхронне керування
- •2.2.4 Режими каналу
- •2.2.5 Високорівневе керування каналом (hdlc)
- •2.2.6 Формат у кадрі hdlc
- •2.2.7 Кодонезалежність і синхронізація hdlc
- •2.2.8 Керуюче поле hdlc
- •2.2.9 Протокол sdlc
- •2.2.10 Перетворення протоколів
- •3 Функціональна схема роботи кінцевого і центрального вузлів мережі
- •3.1 Склад та функції мережі
- •3.2 Функціональна схема кінцевого вузла (кв) мережі
- •3.2.2 Вихідний виклик до центрального вузла.
- •3.2.3 Вхідний виклик від центрального вузла
- •3.3 Функціональна схема центрального вузла (цв) мережі
- •3.3.1 Вихідний стан.
- •3.3.2 Вихідний виклик всіх кв по черзі
- •3.3.3 Виборочний вихідний виклик до кв
- •3.3.4 Вхідний виклик від кв
- •4. Розробка алгоритму канального рівня
- •4.1 Обгрунтування вибору середовища програмування Delphi
- •4.2 Структура програмного забезпечення
- •4.3 Опис алгоритму роботи канального рівня центрального вузла
- •4.4 Опис алгоритму роботи канального рівня кінцевого вузла
- •4.4.1 Процедура формування блоку для передачі FormBlock
- •4.4.2 Процедура передачі блоку рівню 1 PdBlock
- •4.4.3 Процедура прийому блоку від рівня 1
- •Висновки
- •Перелік посилань
- •Додаток а програма канального рівня
- •Додаток б перелік команд які використовуються в алгоритмах
- •Додаток в перелік прапорців
- •Додаток г перелік тайм-аутів
- •Обов’язкові креслення
Висновки
В дипломній роботі отримані такі результати:
Проведено аналіз конвергентних мереж, вирішено завдання розробки програмного забезпечення канального рівня кінцевого та центрального вузлів для корпоративної мережі телекомунікаційної компанії.
Визначено основні завдання, компоненти, принципи побудови, структуру мережі та її складових. Наведено характеристику мережі з точки зору еталонної моделі взаємодії відкритих систем.
Розглянуто рівні моделі OSI, докладно – функції та протоколи канального рівня.
Побудовано та описано функціональні схеми роботи кінцевого та центрального вузлів мережі, за допомогою яких пояснюються режими роботи та стани цих вузлів.
Досліджено принципи розробки програмного забезпечення. Перевагою даної роботи є те, що програмне забезпечення створювалося для роботи під керуванням операційної системи Windows, що дозволяє використовувати його в реальних умовах.
Розроблені алгоритми дають можливість виконувати основні функції канального рівня для передачі та прийому необхідних обсягів інформації, слідкування за правильністю переданих даних, повторну передачу при необхідності.
На основі розроблених алгоритмів написана програма роботи канального рівня.
Сукупність проведених досліджень, розробок в дипломній роботі складає вирішення завдання з поліпшення показників якості на канальному рівні в інформаційних мережах.
Перелік посилань
Стеклов В.К., Беркман Л.Н. Проектування телекомунікаційних мереж: Підручник для студентів вищ. навч. закладів за напрямком
„ Телекомунікації” /за ред. В.К.Стеклова.-К.: Техніка, 2002.-792 с.
Буров Є. Комп`ютерні мережі. – Львів, 1999. – 468 с.
Калита Д. М. Комп`ютерні мережі. Апаратні засоби та протоколи передачі даних. – К.: Видовничо-поліграфічний центр „Київський Університет”, 2003. – 327 с.
Сергеев Н.П, Вашкевич Н.П. Основы вычислительной техники. – Москва.:
”Высшая школа”, 1988. – 311 с.
Спортак М., Паппас Ф. Комп`ютерні мережі та мережні технології. – К.: ООО “ТИД “ДС”, 2002. – 736 с.
Стеклов В. К., Беркман Л. Н. Телекомунікаційні мережі. – К.: Техніка, 2001.- 392 с.
Нейман В. І., Романова О.М. Загальні напрямки розвитку корпоративних мереж і систем // ВКCС. Connect! – 2001, №4. – с. 15-28.
Культін Н. Б. Основи програмування в Delphi 7. – СПб.: БХВ-Петербург, 2003. – 608 с.
Лагутенко О.И. Современные модемы. – Москва: Око – Трендз, 2002.-380 с.
Додаток а програма канального рівня
unit KNetProtocol;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls,
syncobjs, {Debug, AdPort,} Math;
type
str40 = string[40];
TKNetProtocol = class
private
FMainTimer: TTimer;
NBlokPd, KBlokPd, NBlokPm, SB_L3:integer;
RS_COM2:integer;
FETXPd,FETXPm:boolean;
FNAK, FACK, FTA:boolean;
SBBlokPd:integer;
SBBlokPm:integer;
Contr_SumPd:integer;
Contr_SumPm:integer;
RG21_1, RG21_2, RG12_1, RG12_2:Array[0..19] of integer;
RG32_1, RG32_2, RG23_1, RG23_2:Array[0..511] of integer;
FHandle: HWnD;
// внутренние переменные и флаги
FVxDIsLoaded : Boolean;
FErrorCode : integer;
hCVxD : THandle;
RetInfo : Array[0..9]Of DWord;
PutInfo : Array[0..9]Of DWord;
cbBytesReturned: DWord;
pReceive1:pointer;
pReceive3:pointer;
pTransmit1:pointer;
pTransmit3:pointer;
pStr40:pointer;
procedure VxDProc(var Msg: TMessage);
function LoadVxD: integer;
function FreeVxD: integer;
procedure FormBlok(var j:integer);
procedure Com_Mod;
procedure HookIRQ;
procedure TransmitInf;
procedure OnMainTimer(Sender: TObject);
public
FPm_VxD:boolean;
NT:string;
function Ur1_Init:integer;
procedure Ur1_Done;
function Pd_Inf_L1(var BufSize:integer; pTransmit3:pointer):integer;
published
end;
const
wm_VxD = wm_User;
MES_PROTOCOL_NAK = wm_VxD+1;
MES_PROTOCOL_ACK = wm_VxD+2;
MES_PROTOCOL_STX = wm_VxD+3;
CVXD_APIFUNC_1 = 1; {Завантаження параметрів в VxD}
CVXD_APIFUNC_2 = 2; {Передача команди для модему}
CVXD_APIFUNC_3 = 3; {Передача інформації в VxD}
CVXD_APIFUNC_4 = 4;
STX = 2; {"Початок тексту"}
ETB = $17; {"Кінець блоку"}
ETX = $03; {"Кінець тексту"}
EOT = $04; {"Кінець передачі"}
ENQ = $05; {"КТМ"}
DLE = $10; {"АР1"}
NAK = $15; {"Ні"}
ACK = $06; {"Так"}
SBBI = 16; {Кількість інформаційних байтів в блоці}
AddrCOM2 = $2F8;{Базова адреса порта}
NIRQ = $10;
command1:Str40 = 'ATDP';
command2:Str40 = 'ATH0';
implementation
procedure TKNetProtocol.FormBlok(var j:integer);
var i:byte;
begin
SBBlokPm:=0;
if NBlokPd=(KBlokPd-1) then
FETXPd:=True
else
FETXPd:=False;
i:=0;
if pTransmit1=@RG21_1 then
begin
RG21_1[i]:=STX;
Inc(i);
RG21_1[i]:=NBlokPd;
Inc(i);
Contr_SumPd:=STX XOR NBlokPd;
Repeat
RG21_1[i]:=RG32_1[j];
Contr_SumPd:=Contr_SumPd XOR RG21_1[i];
Inc(i);
Inc(j);
Inc(SBBlokPd);
Until SBBlokPd < SBBI;
if FETXPd then RG21_1[i]:=ETX
else RG21_1[i]:=ETB;
Inc(i);
RG21_1[i]:=Contr_SumPd;
pTransmit1:=@RG21_2;
end
else
begin
RG21_2[i]:=STX;
Contr_SumPd:=Contr_SumPd XOR RG21_1[i];
Inc(i);
RG21_2[i]:=NBlokPd;
Inc(i);
Contr_SumPd:=STX XOR NBlokPd;
Repeat
RG21_2[i]:=RG32_1[j];
Inc(i);
Inc(j);
Inc(SBBlokPd);
Until SBBlokPd < SBBI;
if FETXPd then RG21_2[i]:=ETX
else RG21_2[i]:=ETB;
Inc(i);
RG21_2[i]:=Contr_SumPd;
pTransmit1:=@RG21_1;
end;
end;
function TKNetProtocol.Pd_Inf_L1(var BufSize:integer; pTransmit3:pointer):integer;
var j:integer;
Label Pd_Inf1,Pd_Inf2;
begin
Result:=0;
j:=0;
NBlokPd:=0;
FTA:=False;
KBlokPd:=BufSize div 16;
FNAK:=False;
FETXPd:=False;
FACK:=True;
Pd_Inf1:
if FACK then
begin
FACK:=False;
FMainTimer.Enabled:=False;{Зупинити відлік Т1}
if NOT FETXPd then
begin
Pd_Inf2:
FormBlok(j);
Inc(NBlokPd);
TransmitInf;
FMainTimer.Enabled:=True;{Запуск відліку Т1}
end
else
begin
FETXPd:=False;
Result:=1;
Exit;
end;
end
else
begin
if FNAK then
begin
Dec(NBlokPd);
FNAK:=False;
FMainTimer.Enabled:=False;{Зупинити відлік Т1}
goto Pd_Inf2;
end
else
begin
if FTA then
begin
FTA:=False;
Result:=0;
Exit;
end
else goto Pd_Inf1;
end;
end;
end;