Реализация надежного протокола передачи данных



© А.Д. Жданов, Т.М. Коломейцева, А.А. Шалыто

Санкт-Петербургский государственный университет информационных технологий, механики и оптики

Проектная документация
Исполняемая программа
Исходные тексты

Аннотация

Низкий уровень передачи данных обеспечивает корректную передачу пакета, но не гарантирует сохранения последовательности пакетов и факта их доставки.

Такие условия неприемлемы в современных сетях. В связи с этим появляется необходимость создания протокола, который бы гарантировал, что все переданные в сеть пакеты доставлены принимающей стороне в корректной последовательности. В данной работе рассмотрен вариант реализации помехоустойчивости соединения за счет индексирования всех переданных пакетов и подтверждения получения каждого пакета.

Данный протокол может быть использован как база для разработки протоколов более высокого уровня, как, например, протокола SMTP, используемого для передачи электронной почты.

Для упрощения понимания поведения сторон используется автоматный подход. Обратим внимание, что в спецификации также применяется автомат для описания работы протокола, но как говориться «автомат автомату рознь». Шесть разработанных автоматов совместно с функциями входных и выходных воздействий полностью описывают протокол и позволяют отказаться от словесного описания.

Проект реализован в виде библиотеки на языке C под операционной системой (ОС) Linux®. Для тестирования проекта реализована консольная версия клиента и сервера. Под ОС Windows® программа запускается посредством пакета Cygwin, обеспечивающего эмуляцию UNIX®-подобных систем.