Ну для не-tcp-сетки нужно подобие "реального времени", с tcp в целом пофигу, ОС разберётся, ты знай себе читай уже заботливо собранные из пакетов байтики. А вот на udp/ip-производных уже надо очень быстро чистить входящий буфер и посылать свежие данные с конкретными таймингами, ведь скорость тоже регулируется тобой, ОС не будет ничего удерживать для тебя — засрёшь канал и всё что было отправлено после энного пакета неожиданно испарится. То же самое, кстати, с воспроизведением и процессингом аудио — там крайне желательно что-то похожее на реальное время чтобы вовремя подсовывать свежие кусочки звука, и чтобы один поток был занят одной единственной задачей дабы не лагало.
Опять таки, это крайне узкоспециализированная фигня, мало кто этим занимается, и кстати, чтобы сделать такое на многопоточке, знать многопоточку не нужно.