Авторы: Фёдор Гончаров, Нина Челышева
Вспомним фильмы 50-x годов, когда были проводные телефоны. Для того, что позвонить, абонент поднимал трубку своего аппарата, телефонистка отвечала и вручную соединяла с другим абонентом, физически соединяла провода.
Выходило, что между двумя абонентами был физически непрерывный провод, по которому они общались. При этом никто другой не мог пользоваться этим проводом в это время. Получается, кто первый занял канал, того и тапки.
Хочется, чтобы одновременно много абонентов могли пользоваться этим проводом. Для этого мы можем поделить канал на мелкие промежутки по времени и каждому абоненту выдавать их так, чтобы снаружи для него выглядело бесшовно, будто ему целиком дали канал. То есть, вместо коммутации каналов мы делаем коммутацию пакетов.
Коммутация каналов — формирование непрерывных проводов между абонентами так, чтобы целиком один провод непрерывный был только на одну пару клиентов.
Коммутация пакетов — пользователи общаются через пакеты данных небольшого размера, которые мы проносим по тем же проводам, только не выделяя всю линию под них.
Последнее можно сравнить с посылками и почтой России. В самолете летит сразу много посылок, а не одна 😊
P.S. Мультиплексирование может быть не только с разделением по времени, но и по частоте, по длине волны. Но на CPU только по времени)
Телефонистка за ручным коммутатором, 1975 год
int fd - файловый дескриптор, fd_set* fdset - множество файловых дескрипторов