АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Теоретична частина. ECHO-сервіс це досить корисний інструмент для налагодження й виконання вимірювань

Читайте также:
  1. VІІІ. Теоретична база
  2. Б) Змістовна частина тестових завдань.
  3. Вступ Основна частина Висновки ПИТАННЯ-
  4. Графічна частина
  5. Графічна частина
  6. Графічна частина курсового коректу
  7. ГРАФІЧНА ЧАСТИНА ПРОЕКТУ
  8. Графічна частина.
  9. Графічна частина:_____________________________________________________
  10. Допит потерпілого проводиться з дотриманням правил, передбачених частинами другою, третьою, п'ятою - чотирнадцятою статті 352 цього Кодексу.
  11. ДОХОДНА ЧАСТИНА БЮДЖЕТУ ЗМІЇВСЬКОГО РАЙОНУ
  12. ЕКСПЕРИМЕНТАЛЬНА ЧАСТИНА

1. Опис протоколу

 

ECHO-сервіс це досить корисний інструмент для налагодження й виконання вимірювань. Цей сервіс просто повертає відправникові будь-які дані, отримані від нього.

Один з варіантів ECHO-сервісу визначений як заснований на організації з'єднань додаток TCP. ECHO-сервер прослуховує з'єднання TCP на порту 7. Після організації з'єднання всі отримані через це з'єднання дані вертаються відправникові. Процес повернення отриманих даних відправникові триває доти, поки ініціатор з'єднання не розірве це з'єднання.

Інший варіант ECHO-Сервісу не використовує прямих з'єднань і заснований на передачі датаграм UDP. ECHO-Сервер прослуховує порт 7 (UDP) і повертає відправникові всі прийняті через цей порт датаграми.

 

 

2. Узагальнений алгоритм тестування системи

 

Сервер у системах тестування з’єднання виконує досить пасивну роль. Створивши та прослуховуючи сокет він чекає на підключення клієнта. Після підключення сервер отримує від клієнта певну послідовність даних, яку повертає клієнту без змін. У деяких протоколах можлива перевірка контрольної суми в пакеті, що надійшов від клієнта. Процес прийому/передачі сервер повторює до закінчення сеансу зв’язку. У нескінченному циклі сервер чекає на підключення клієнта, та повторює з кожним клієнтом усі попередні дії.

Клієнт створивши сокет та підключившись до сервера, відправляє йому певну послідовність даних. Після чого він замірює час відправлення пакету та чекає на повернення даних з сервера. Отримавши дані клієнт знов замірює час та порівнює час відправлення з часом отримання даних, а також перевіряє отриману послідовність на зразок помилок. Передача та отримання даних повторюються декілька разів. Таким чином клієнт має змогу надати користувачу досить повну статистичну інформацію щодо стану мережі, яка буде включати: час затримки між передачею та отриманням даних, наявність помилок при передачі даних, наявність загублених пакетів. Після завершення циклу передачі/прийому даних клієнт розриває з’єднання з сервером.

 

 

3. Пооператорна схема алгоритму програми клієнт

 

1) для коректної роботи бібліотеки Winsock необхідна ініціалізація, тож виконуємо її за допомогою функції WSAStartup:

WSAStartup($0202, wsData);

 

2) створюємо потоковий сокет для протоколу TCP:

ConnectSocket:= socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

 

1) задаємо IP адресу та порт для сокета (для сервіса ECHO це порт з номером 7) шляхом заповнення структури sockaddr_in;

 

3) виконуємо підключення до сервера за допомогою функції connect:

connect(ConnectSocket, service, sizeof(service));

 

4) відправляємо серверу відому послідовність даних:

send(ConnectSocket, sendbuf, 32, 0);

 

5) отримуємо поточний час у мілісекундах та зберігаємо його:

time_stamp:= MilliSecondOf(Time);

 

6) чекаємо повернення даних від сервера, шляхом циклічного виклику функції recv:

bytesRecv:= SOCKET_ERROR;

while bytesRecv = SOCKET_ERROR do

bytesRecv:= recv(ConnectSocket, recvbuf, 32, 0);

 

 

7) отримуємо час передачі пакету віднявши від поточного часу збережене раніше значення:

MilliSecondOf(Time) - time_stamp

 

8) перевіряємо правильність отриманих даних, порівнюючи їх з даними, що були відправлені серверу;

 

9) виводимо на екран інформацію про час та успішність передачі даних;

 

10) повторюємо пункти 4 – 9 декілька разів для отримання більш повної статистичної інформації щодо стану мережі;

 

11) завершуємо з’єднання з сервером викликавши функцію closesocket:

closesocket(ConnectSocket);

 

 

4. Пооператорна схема алгоритму програми сервер

 

2) для коректної роботи бібліотеки Winsock необхідна ініціалізація, тож виконуємо її за допомогою функції WSAStartup:

WSAStartup($0202, wsData);

 

3) створюємо потоковий сокет для протоколу TCP:

ListenSocket:= socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

 

4) задаємо порт для сокета (для сервіса ECHO це порт з номером 7) шляхом заповнення структури sockaddr_in;

 

5) викликом функції bind відкриваємо сокет для підключення клієнта:

bind(ListenSocket, service, sizeof(service));

 

6) розпочинаємо процес прослуховування сокета:

listen(ListenSocket, 1);

 

7) чекаємо на підключення клієнта шляхом виклику у циклі функції accept та перевірки значення, що вона повернула:

AcceptSocket:= SOCKET_ERROR;

while AcceptSocket = SOCKET_ERROR do

AcceptSocket:= accept(ListenSocket, nil, nil);

 

8) коли клієнта підключено чекаємо та отримуємо дані, які він надіслав:

bytesRecv:= SOCKET_ERROR;

while bytesRecv = SOCKET_ERROR do

bytesRecv:= recv(AcceptSocket, buffer, 32, 0);

 

9) після отримання даних, за специфікацією ECHO-сервісу, повертаємо їх клієнтові:

send(AcceptSocket, buffer, 32, 0);

 

10) повторюємо кроки 7 – 8 доки клієнт не відключиться від сервера;

11) повторюємо кроки 6 – 9 до безкінечності, або виникнення помилки;

 


1 | 2 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)