Существует множество факторов, влияющих на производительность сетевого приложения, начиная с архитектурных решений, выбора протокола, перегрузки сети, вплоть до сериализации сообщений, выделения памяти и т. Д. Не существует способа «один размер подходит всем» сетевого взаимодействия, которое делает приложение автоматически масштабируемым, устойчивым к высоким нагрузкам и т. д.
Протоколы нижнего уровня имеют меньше накладных расходов, это правильно. Но протоколы более высокого уровня могут быть намного лучше для некоторых случаев использования, потому что они уже предоставляют некоторые функции, которые в противном случае вам пришлось бы реализовать самостоятельно. И, как я уже сказал, протокол не единственное, что влияет на производительность.
Вам необходимо собрать свое требование, определить узкие места, спроектировать соответствующую архитектуру, выбрать протокол на правильном уровне абстракции, а также профиль, профиль, профиль.