Интернет давно изменился. Один из основных протоколов Интернета – UDP используется приложениям не только для доставки дейтаграмм и широковещательных рассылок, но и для обеспечения «peer-to-peer» соединений между узлами сети. Ввиду своего простого устройства, у данного протокола появилось множество не запланированных ранее способов применения, правда, недостатки протокола, такие как отсутствие гарантированной доставки, никуда при этом не исчезли. В этой статье описывается реализация протокола гарантированной доставки поверх UDP.
Требования к протоколу
Заголовок Reliable UDP
Общие принципы работы протокола
Тайм-ауты и таймеры протокола
Диаграмма состояний передачи Reliable UDP
Глубже в код. Блок управления передачей
Глубже в код. Состояния
Глубже в код. Создание и установление соединений
Глубже в код. Закрытие соединения по тайм-ауту
Глубже в код. Восстановление передачи данных
API Reliable UDP
Заключение
Полезные ссылки и статьи
Вступление
Первоначальная архитектура Интернета подразумевала однородное адресное пространство, в котором каждый узел имел глобальный и уникальный IP адрес, и мог напрямую общаться с другими узлами. Сейчас Интернет, по факту, имеет другую архитектуру – одну область глобальных IP адресов и множество областей с частным адресами, скрытых за NAT устройствами.Читать полностью »