Главная страница


 

IP-адресация в Сети Интернет

Машин в Интернете много, это факт. Так что вопрос о том, как можно их эффективно идентифицировать в пределах этой сети, оказывается далеко не праздным. Кроме того, практически все современные операционные системы работают в многозадач­ном режиме (поддерживают одновременную работу нескольких программ). Это зна­чит, что возникает также вопрос о том, как нам идентифицировать конкретную сис­тему или программу, желающую обмениваться данными через Сеть. Эти две задачи решаются стеком TCP/IP при помощи IP-адреса и номера порта. Давайте посмотрим, как.

Все , о чем рассказано далее , не является непреложной истиной . Скорее даже наоборот . Местами может показаться , что я " ломлюсь в открытую дверь " — пытаюсь доказать существование того , что и так существует . И все - таки , на мой взгляд , чтобы понять что - то , нужно сначала проникнуться мыслью , что основы этого " что - то " довольно просты , пусть даже они и абстрактны .

IP-адрес
Любой компьютер, подключенный к Интернету и желающий обмениваться информа­цией со своими "сородичами", должен иметь некоторое уникальное имя, или IP -адрес . Вот уже 30 лет (думаю, и в ближайшее десятилетие тоже) IP-адрес выглядит примерно так: 127.12.232.56
Как мы видим, это — четыре 8-разрядных числа (то есть принадлежащих диапазону от 0 до 255 включительно), соединенные точками. Не все числа допустимы в записи IP-адреса: ряд из них используется в служебных целях (например, адрес 127.0.0.1 выделен для обращения к локальной машине — той, на которой был произведен запрос, а число 255 соответствует широковещательной рассылке в пределах текущей подсети). Мы не будем здесь обсуждать эти исключения детально.
Возникает вопрос: ведь компьютеров в Интернете миллионы (а скоро будут миллиар­ды). Как же мы, простые пользователи, запросив IP-адрес машины, в считанные се­кунды с ней соединяемся? Как "оно" (и что это за "оно"?) узнает, где на самом деле расположен компьютер и устанавливает с ним связь, а в случае неверного адреса аде­кватно на это реагирует? Вопрос актуален, поскольку машина, с которой мы собира­емся связаться, вполне может находиться за океаном, и путь к ней пролегает через множество промежуточных серверов.
В деталях вопрос определения пути к адресату довольно сложен. Однако достаточно нетрудно представить себе общую картину, точнее, некоторую ее модель. Предполо­жим, что у нас есть 1 миллиард компьютеров (давайте завысим цифры), каждый из которых напрямую соединен с 11 (к примеру) другими через кабели. Получается эта­кая паутина из кабелей, не так ли? Кстати, это объясняет, почему одна из наиболее популярных служб Интернета, базирующаяся на протоколе HTTP, названа WWW (World Wide Web, или Всемирная паутина).

Следует заметить , что в реальных условиях , конечно же , компьютеры не со­единяют друг с другом таким большим количеством каналов . Вместо этого применяются всевозможные внутренние таблицы , которые позволяют компью­теру " знать ", где конкретно располагаются некоторые ближайшие его соседи . То есть любая машина в Сети имеет информацию о том , через какие узлы должен пройти сигнал , чтобы достигнуть самого близкого к ней адресата — а если не обладает этими знаниями , то получает их у ближайшего " сородича " в момент загрузки операционной системы . Разумеется , размер таких таблиц ог­раничен и они не могут содержать маршруты до всех машин в Интернете ( хотя в самом начале развития Интернета , когда компьютеров в Сети было немного , именно так и обстояло дело ). Потому - то я и провожу аналогию с одиннадца­тью соседями .

Итак, мы сидим за компьютером номер 1 и желаем соединиться с машиной somehost с таким-то IP-адресом. Мы даем нашему компьютеру запрос: выясни-ка у своих соседей, не знают ли они чего о somehost. Он рассылает в одиннадцать сторон этот запрос (считаем, что это занимает 0,1 с, т. к. все происходит практически одно­временно — размер запроса не настолько велик, чтобы сказалась задержка передачи данных), и ждет, что ему ответят.
Что же происходит дальше? Нетрудно догадаться. Каждый из компьютеров окруже­ния действует по точно такому же плану. Он спрашивает у своих десятерых соседей, не слышали ли они чего о somehost. Это, в свою очередь, занимает еще 0,1 с. Что же мы имеем? Всего за 0,2 с проверено уже 11?10= =110 компьютеров. Но это еще не все, ведь процесс нарастает лавинообразно. Не­трудно подсчитать, что за время порядка 1 секунды мы "разбудим" 10 в десятой сте­пени машин, т. е. в 10 раз больше, чем мы имеем!

Конечно, на самом деле процесс будет идти медленнее: какие-то системы могут быть заняты и не ответят сразу. С другой стороны, мы должны иметь механизм, который бы обеспечивал, чтобы одна машина не "опрашивалась" многократно. Но все равно, согласитесь, результаты впечатляют, даже если их и придется занизить для реальных условий хоть в 100 раз.

В действительности дело обстоит куда сложнее . Отличия от представленной схемы частично заключаются в том , что компьютеру совсем не обязательно " запрашивать " всех своих соседей — достаточно ограничиться только некото­рыми из них . Для убыстрения доступа все возможные IP- адреса делятся на че­тыре группы — так называемые адреса подсетей классов A , B , C и D . Но для нас сейчас это не представляет никакого интереса , поэтому не будем задержи­ваться на деталях . О TCP / IP можно написать целые тома ( что и делается ).



Рейтинг@Mail.ru
Используются технологии uCoz