Как работают такие приложения как WhatsApp или Viber?
Сергей, вопрос слишком общий. Держится постоянное соединение с сервером, через сокеты. Есть внутренний протокол, по которому общаются сервер и клиент, обычно это TCP для текста, UDP для голоса и видео.
Сокеты или что?
На низком уровне при работе с сетью сокеты в любом случае используются.
Вообще можно по разному, самый простой способ - сокеты, держать соединение и обмениваться информацией в реалтайме.
Вообще не понятно что вас интересует, реализация сервера, клиента, конкретно вайбера? Там разве не P2P?