Не зависит от терминала. Зависит от «приложения».
С TCP не получите ping/rtt, но легче «горизонтально» масштабировать сервера.
С UDP легче адаптироваться под реально плохие каналы, избежать чудес билинга(за перепосылку данных вам платить но сколько данных не дошло на TCP знает только его стэк), но будут сложности с прокси и nat.
Если о gps трекере, то яб делал на UDP. Накапливаеш трек, и когда данных под завязку для MTU (тут есть нюансы но для трэкера их можно не учитывать) отправляешь на сервер. Сервер же молчит пока не заметит дыры в треке (или раз в н пакетов или м минут) делает запрос на повтор интервала/ов. Клиент очищает пересылает данные и очищает трэк вплоть до первого запрашиваемого интервала(фактически это ACK).
Если надо лаг уменьшить (к примеру трэкер смотрят онлайн) то сервер просит трекер уменьшить «MTU» на х секунд (фактически это может быть полем в запросе на пересылку). На трэкере в трек писать и инфу о выключенном трэкере. Трэк хранить в файле исплльзуемом как ленту стримера, чтобы никаких fseek за исключением возврата в начало файла.