7 семестр / Готовые отчеты / ММиВА. Лабораторная работа 2
.pdf
Работа 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
