С.В. АНТОНОВИЧ Научный руководитель – В.М. НЕМЧИНОВ, к.т.н., профессор

advertisement
С.В. АНТОНОВИЧ
Научный руководитель – В.М. НЕМЧИНОВ, к.т.н., профессор
Национальный исследовательский ядерный университет «МИФИ»
ПРЕДСТАВЛЕНИЕ СТЕКА ПРОТОКОЛОВ TCP/IP В ВИДЕ
КОНЕЧНОГО АВТОМАТА УПРОЩАЕТ ЕГО
РЕАЛИЗАЦИЮ ДЛЯ МИКРОКОНТРОЛЛЕРОВ
Рассмотрена проблема реализации ресурсоемкой задачи сетевого
взаимодействия на ограниченных в ресурсах системах. Намечены возможные пути
решения задачи с применением автоматного программирования.
Подключение встраиваемой системы на микроконтроллере к
вычислительным сетям имеет ряд преимуществ:
- не требуется специального ПО на клиентских системах, так как
современные системы имеют встроенную поддержку сетей;
- скорости передачи данных могут достигать 1000 Мбит/с;
- устройство может быть разнесено с клиентским ПК на большое
расстояние и может быть доступно с любого ПК, подключенного к сети.
Основным недостатком сетевых интерфейсов является сложность их
реализации. Если физический уровень интерфейса может быть реализован
в специализированном контроллере, то реализация стека сетевых
протоколов TCP/IP ложится на плечи программиста: в соответствии с
сетевой моделью OSI [1] для реализации минимального встроенного в
микроконтроллер веб-сервера необходима разработка ПО сетевых
протоколов ARP, IP, TCP, HTTP. Наиболее сложным из перечисленных
протоколов является TCP, так как предполагает установку соединения
между узлами сети и обязательный контроль доставки данных.
Существуют готовые решения различной сложности. Автор
предлагает решение, по сравнению с существующими обладающее
максимальной простотой и удобством отладки: представление работы
протокола TCP в виде конечного автомата с явным выделением
состояний. Удобство такого подхода, в частности, состоит в полной
формализации работы протокола, что упрощает разработку, отладку,
тестирование и многократно улучшает понимание программистом логики
работы кода.
Подробное описание автоматного подхода может быть найдено в [2,
3]. Здесь более подробно остановимся на описании графа состояний
конечного автомата TCP для простейшего случая, когда встраиваемая
система выполняет роль сервера (полный граф состояний может быть
найден, например, в [4]).
Соответствующий граф показан на рис. 1.
Рис 1. Граф состояний конечного автомата TCP в роли сервера.
Условные обозначения, принятые на графе: SYN – сегмент с
установленным флагом синхронизации TCP, ACK – с флагом
подтверждения, FIN – с флагом закрытия соединения.
Стартовым состоянием является состояние «Closed». После начала
работы атомата сразу же производится переход в состояние «Listen», в
котором сервер готов принимать соединения.
При принятии сегмента с флагом SYN с запросом на установления
соединения сервер отсылает в ответ сегмент с флагами SYN, ACK, после
чего переходит в состояние «SYN received», в котором ожидает
подтверждения установки соединения (т.е. сегмента с флагом ACK от
клиента). После соответствующего подтверждения TCP-соединение
считается установленным, а конечный автомат находится в состоянии
«Opened», в котором возможна передача данных. Закрывается соединение
аналогичным образом, при этом конечный автомат проходит через
состояния «Wait for close» и «Last ACK».
Применение рассмотренного алгоритма на реальных прототипах
позволило значительно упростить обслуживание программного кода.
Список литературы
1. Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы.
СПб: Питер, 2010. – 943 с.
2. Поликарпова Н.И., Шалыто А.А. Автоматное программирование. СПб.: Питер, 2009. –
168 с.
3. Антонович С.В., Немчинов В.М. Унификация программного обеспечения
интеллектуальных датчиков во встраиваемых микропроцессорных средствах измерений. //
Датчики и системы. – 2012 – № 11.
4. Wright G, Stevens R. TCP/IP Illustrated, Volume 2: The Implementation. Addison-Wesley
Publishing Company, Inc.
Download