Скачиваний:
27
Добавлен:
23.12.2021
Размер:
1.17 Mб
Скачать

Работа UDPgd-сервера и UDPgd-клиента без имитации проблем на

соединении изображена на рисунке 3.

Рисунок 3. Работа UDPgd-сервера и UDPgd-клиента без имитации проблем на соединении

Работа UDPgd-сервера и UDPgd-клиента с имитацией проблем на

соединении изображена на рисунке 4.

Рисунок 4. Работа UDPgd-сервера и UDPgd-клиента с имитацией проблем на соединении

1.В данном случае программа работает аналогично предыдущей, за исключением того, что гарантирует доставку данных, хоть и достаточно наивным образом — контрольная сумма CRC-16 в

каждом пакете (если ошибка, то повторный запрос и проверка ответа); ожидание пакета заданное количество времени; повторные

31

запросы, если пакет не пришел; игнорирование ненужных пакетов (в

том числе дубликатов).

2.Программа md5sum вычисляет контрольные суммы MD5 исходного файла (file.txt) и скаченного (download_file.txt). Они совпадают.

3.Версия с имитацией проблем на соединении (константа

SIMULATE_CONNECTION_PROBLEMS равна 1) искусственно создает две

ситуации: потеря пакета и модификация пакета. Вероятность потери пакета задана программно: 0.0009 (аналог коэффициента потери IP-

пакетов). Вероятность случайной модификации пакета также задана программно: 0.00009 (аналог коэффициента ошибок пакетов IP).

Можно немного изменить программный код так, чтобы имитировать третью ситуацию — дублирование пакетов. И в этом случае программа также будет гарантировать доставку и сохранение целостности данных, но все равно будет работать дольше низкоуровневого TCP.

4.Отображение имитации проблем можно включить (константу

IS_DEBUG нужно поставить в 1). В таком случае получим информацию о потерянных или модифицированных пакетах (рис. 5-6).

Рисунок 5. Просмотр искусственно потерянных и модифицированных пакетов (1)

32

Рисунок 6. Просмотр искусственно потерянных и модифицированных пакетов (2)

Процесс передачи и приема представлен на рисунке 7.

Рисунок 7. Процесс передачи и приема данных

33

Под размером пакета подразумевается размер полезной части данных.

Результаты измерений времени работы представлены в таблице 9. В

каждом случае было проведено 50 экспериментов. На основе результатов экспериментов были вычислены доверительные интервалы.

Таблица 9. Измерения времени передачи данных (в секундах)

 

 

Размер пакета (без метаданных)

 

Реализация

10

100

1000

100001

UDP0

0.64752 ± 0.01840

0.06884 ± 0.00330

0.00921 ± 0.00082

0.00392 ± 0.00051

TCP

0.82048 ± 0.01601

0.08319 ± 0.00021

0.01339 ± 0.00193

0.00392 ± 0.00053

UDPgd

1.05973 ± 0.02220

0.18015 ± 0.00278

0.09533 ± 0.00433

0.08163 ± 0.00484

UDPgd с

 

 

 

 

имитацией

3.31145 ± 0.05686

0.52444 ± 0.02516

0.17551 ± 0.01547

0.11047 ± 0.01111

проблем

 

 

 

 

Также эти результаты представлены в виде диаграммы на рисунке 8.

 

3,5

 

 

 

секундах)

3

 

 

 

2,5

 

 

 

 

 

 

 

2

 

 

 

работы

 

 

 

1,5

 

 

 

Время

 

 

 

1

 

 

 

 

 

 

 

 

0,5

 

 

 

 

0

 

 

 

 

10

100

1000

10000

 

 

Размер пакета (без метаданных)

 

UDP0

TCP

UDPgd

UDPgd&Problems

Рисунок 8. Диаграмма зависимости времени передачи от размера пакета

ЗАКЛЮЧЕНИЕ

В результате выполнения лабораторной работы мы разработали клиент-

серверные приложения на основе протоколов TCP и UDP для передачи

файлов.

1 Размер пакета не может быть огромным — возникает ошибка «Message too long» (в случае UDP — если размер пакета ~65505 или больше). Однако на нижнем уровне пакет может разбиваться на более мелкие части, чтобы пройти путь с максимальным размером пакета Ethernet другого устройства.

34