Каким же образом в Интернете один компьютер находит другой? Это очень интересный вопрос.
Как уже говорилось, Интернет – это глобальная компьютерная сеть с единой адресацией. Это означает, что каждый компьютер имеет в ней собственный уникальный адрес, который называется IP-адресом. Двух компьютеров с одинаковым IP-адресом, подключенных к Сети, быть не может. «Позвольте! – скажет читатель. – Но это же невозможно, компьютеров в мире для этого слишком много!»
Правильно, невозможно. Поэтому на самом деле адреса компьютерам в Интернете присваиваются более хитрым способом.
Представьте себе ЛВС большого учреждения, состоящую из нескольких сотен компьютеров. Для того чтобы сеть могла нормально работать, адрес каждой машины должен быть уникальным для данной сети. А вот в локальной сети соседнего учреждения вполне может быть компьютер, адрес которого совпадает с адресом машины из первой сети.
Почему же не возникает конфликтов и компьютер обувной фирмы не получает информацию, предназначенную для меховой? А потому, что компьютеры локальных сетей не имеют самостоятельного выхода в Интернет, только через сервер своей ЛВС. И вот этот-то сервер свой IP-адрес в сети Интернет имеет. Когда какой-нибудь компьютер из учрежденческой сети посылает запрос в Интернет, сервер пересылает этот запрос, но внутренний сетевой адрес этого компьютера подменяет своим. Когда из Интернета приходит ответ, сервер пересылает его внутрь сети тому компьютеру, который послал запрос и оставил свой IP-адрес на сервере. Таким образом, адреса компьютеров внутри локальных сетей могут быть, вообще говоря, какими угодно, лишь бы они не повторялись.
IP-адреса компьютеров в сети Интернет бывают двух видов: статические и динамические.
Статический адрес присваивается компьютеру, напрямую подключенному к Сети. Например, серверы имеют статические адреса. Статические адреса не могут повторяться.
Динамический адрес присваивается компьютеру на время сеанса подключения к Интернету, например, через модем. Если пользователь, поработав в Сети, отключится, а потом подключится снова, его IP-адрес будет уже другим, он по определенным правилам выбирается из пула (грубо говоря – набора) IP-адресов, принадлежащих провайдеру. Это очень полезная особенность Интернета с точки зрения компьютерной безопасности. Пользователю, подключающемуся к сети с помощью модема, почти не стоит опасаться хакерских атак (подробнее об этом рассказано в главе 6).
Так вот, поиском нужных компьютеров и организацией пересылки им IP-пакетов занимаются специальные устройства, которые называются маршрутизаторами.
Маршрутизаторы установлены на каждом из узлов Сети, они устроены так, что по IP-адресу принятого TCP-пакета способны автоматически определить, на какой из соседних узлов надо переправить этот пакет. Если компьютер-отправитель и компьютер-получатель зарегистрированы в одном узле, все совсем просто, но так бывает редко. Гораздо чаще отправитель и получатель находятся в адресном пространстве разных маршрутизаторов. Все, что может сделать в этом случае маршрутизатор, это передать TCP-пакет на соседний узел, который в сети ближе к компьютеру-получателю. Каждый маршрутизатор постоянно общается с серверами-соседями и их маршрутизаторами и потому знает, где что происходит, какой из соседей «закрыт» на техническое обслуживание или просто перегружен. В этом случае маршрутизатор обязательно найдет другой, обходной, но оптимальный в данный момент путь. Функции маршрутизатора может выполнять компьютерная программа на универсальном сервере, но маршрутизатором может быть и специально выделенный для этой цели компьютер, на котором установлена программа-маршрутизатор.