ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
16 октября
1548310 Топик полностью
Nikolay_Po (Вчера, 15:57, просмотров: 38) ответил Лaгyнoв на Модуль запрограммирован на соединение как TCP-клиент. С внешним сервером. Тот вроде работает как TCP-сервер. У меня нет никаких возможностей проверить со своей стороны. А если у меня UDP, то всё это так и будет?
TCP - сначала устанавливается сессия, потом шлются пакеты. Каждый пакет подтверждается. Надёжно. Обе стороны могут видеть, какие данные уже подтверждены корреспондентом. UDP - будто ты просто отправляешь пакет (кадр) байт по последовательному интерфейсу. Никакой сессии, никакого подтверждения. Просто данные ушли. А получил ли их корреспондент - его проблемы. 

UDP проще в реализации. Не требует установления соединения - просто послал пакет на адрес/порт и он сразу дошёл. Есть два минуса UDP - потерянный пакет будет просто тихо потерян. Приёмник не поймёт, какой это пакет по счёту, примет как очередной, даже если очередной был пропущен. И второй минус - из-за большого количества файерволов и трансляторов адресов, особенно, в сегменте мобильной сети, связи UDP может вообще не состояться, если файервол или NAT не разпознают пакеты как какой-то известный (и разрешённый) протокол. С TCP им проще - они, по крайней мере, видят, что установлена сессия и обмен идёт в рамках неё.