Приветствую вас, Глубокоуважаемые!
На каком-то этапе жизни, каждому упорному
упоротому DIY-щику перестает хватать кантовского Arduino как «вещи-в-себе»
they just can't!: поморгать светодиодиком, взять данные с датчиков и передать по проводу на PC конечно весело, но святой Грааль кроется в мобильности, в освобождении от «медных пут», в истинной свободе среди волн вселенского эфира.
Вот здесь нам и открывается суровая реальность неустойчивых каналов связи, ошибок передачи, недоставленных сообщений.
Боже упаси претендовать на оригинальность в этой области: человечество давно использует целый ворох протоколов на все случаи жизни.
Но наша цель — научиться, а так как я ярый сторонник разведки боем, то учиться мы будем, изобретая свой собственный протокольный «велосипед».
Сегодня я предлагаю разработать протокол, который обеспечивает гарантированную доставку, целостность и очередность сообщений между двумя абонентами (соединение точка-точка, Point-to-Point), умеет и применяет алгоритм
Нагла и
protocol pipelining, чтобы это ни значило. При этом он должен иметь минимальный
оверхед и втискиваться даже в тесный Arduino UNO.
Всех заинтересовавшихся прошу на борт, задраиваем люки, открываем кингстоны, заполняем балластные цистерны. Нам предстоит экскурсия в прошлое, destination: year 1974!