Подключение к системе через сеть

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

Виртуальные соединения возникают при попытке установки связи между двумя программами, выполняющимися на разных компьютерах. Так как вполне возможно подключится с любого компьютера, расположенного в сети, на любой другой компьютер, то существует довольно большое количество потенциальных виртуальных соединений. В связи с этим метод запуска отдельной программы getty для каждого потенциального подключения не применяется.

Существует отдельный процесс, отслеживающий все сетевые подключения. Когда он определяет попытку подключения к системе (т.е. устанавливается новое виртуальное соединение с другим компьютером), то он запускает новый процесс, обрабатывающий это подключение, а старый процесс остается отслеживать другие подключения.

На практике существует множество протоколов связи для сетевых подключений. Среди самых важных можно выделить telnet и rlogin. Помимо стандартных подключений, имеется ряд виртуальных соединений для различных сетевых служб, таких как FTP, Gopher, HTTP и другие. Было бы нецелесообразно создавать отдельный процесс для каждого типа соединения. Вместо этого применяется единый процесс, который определяет тип соединения и запускает нужную программу для установления этого соединения. Такой процесс называется inetd. Для более подробной информации обратитесь к Руководству Сетевого Администратора Системы Linux.