Механизмы интернет для начинающих

Реклама

Введение

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

Интернет-это сеть, объединяющая другие компьютерные сети. Фактически она отличается от обычной локальной сети только количеством компьютеров в ней (в интернет их несколько миллионов) и режимом работы (в большинстве случаев вы работаете с интернетом в режиме "только чтение"). При подключении к интернету вы должны снять флажок "Войти в сеть после соединения", поэтому вы не видите списка файлов компьютера, а видите только то, что он вам предлагает. Этот режим, на котором построена глобальная сеть, режим запросов и ответов.

Компьютер в интернет называется сервером и работает он (в большинстве случаев) под управлением операционной системы UNIX. Хотя и принято считать сервером компьютер, но на самом деле это система программ (или операционная подсистема), установленная на компьютере. Она включает в себя все настройки и программы, необходимые для работы компьютера в глобальной сети в соответствии с принятыми стандартами HTTP (Hyper Text Transfer Protocol). Например один из самых распространенных HTTP-серверов - Apache. Но для упрощения повествования скажем так: Сервер - это компьютер (или компьютерная сеть) с соответствующим программным обеспечением, позволяющим использовать себя в качестве посредника при передаче данных. Сервер обычно состоит из целой сети компьютеров, эта внутренняя сеть называется Интранет (Intranet). Но существует более широкое понятие - узел интернета. В качестве узла выступают любые компьютеры, которые подключены к сети, даже обычные клиентские компьютеры соединенные с компьютером провайдера по телефонной линии через модем. Узлу назначается IP-адрес по сетевому протоколу TСP/IP и выглядит примерно так: 127.12.232.56 Как видно, это четыре 8-разрядных числа (т.е. лежащих в диапазоне от 0 до 255), соединенные точками. Разумеется в рамках сети не может быть 2 одинаковых IP-адреса, поэтому выходя в интернет Вы получаете уникальный идентификатор (IP - Identification Protocol) от своего провайдера, предоставляющего Вам доступ в интернет.

Принцип IP-адресации

Теперь давайте разберемся как компьютеры находят друг-друга, ведь их в интернете миллионы. Для этого представим себе некую модель. Предположим, что у нас есть 1 миллиард компьютеров, каждый из которых напрямую соединен с 11 другими при помощи кабелей. Получилась паутина из кабелей, которая обычно использует аббревиатуру WWW - World Wide Web (Всемирная паутина). Итак мы находимся за одним из этих компьютеров и желаем соединиться с другим, зная его IP-адрес. Мы даем нашему компьютеру запрос: не знаешь-ли ты чего о компьютере с таким-то IP-адресом. Если он непосредственно соединен с этим компьютером среди десяти прочих, то тут-же будет получен ответ, а если нет, то наш компьютер перешлет этот запрос своим одиннадцати соседям и будет ждать ответа. Допустим этот запрос занимает 0.1с времени (на самом деле ненамного медленнее). Далее нетрудно догадаться, что каждый компьютер из окружения действует по такому-же принципу, опрашивая своих 11 соседей. Итак за 0.2с мы опросили уже 11х10=110 компьютеров. Дальше-больше, процесс нарастает лавинообразно и уже через 1с мы сможем опросить 10 в десятой степени компьютеров (а это уже в 10 раз больше 1 миллиарда)!

DNS-адресация

И все-же человеку неудобно работать с безликими IP-адресами. Для назначения серверам мнемонических имен существует служба DNS (Domain Name Service). Ее принцип прост: назначать IP-адресу символьное имя. Обрабатывают запросы DNS-сервера, которые имеют в своем распоряжении DNS-таблицы (hosts-файл). Каждая строчка в ней - это хост. В частности в ней может быть такая строка: 80.73.164.120 www.arian.isety.net - т.е. назначить адресу www.arian.isety.net IP-адрес 80.73.164.120 Этот набор слов соединенных точками называется доменом. net - домен первого уровня, isety.net - второго, arian.isety.net - третьего и т.д. Как ведется поиск сервера по доменному имени? Ну начнем с того, что DNS-адрес считывается машиной не слева направо, а наоборот. Каждое слово до точки считается зоной. На самом деле вышеприведенный адрес имеет вид www.arian.isety.net. Точка на конце - это главная зона root. Ее адрес всегда известен, поэтому запрос начинается с опроса этой зоны (зона root для Вас находится на DNS-сервере провайдера). Далее находится адрес зоны net. и запрос пересылается ей, она, в свою очередь, пересылает запрос зоне isety.net. И так вплоть до последней зоны www.arian.isety.net. Эта последняя зона и возвращает IP-адрес сервера, к которому привязана. А далее соединение происходит по принципу IP-адресации, описанной выше. При повторном запросе Вам сразу будет возвращен IP-адрес сервера, поскольку сервер провайдера сохранил информацию в кэше запросов.

Протоколы и стеки

Вот мы и вернулись к теме, затронутой ранее. Что такое протоколы? Вообще протокол - это набор стандартов и соглашений, позволяющих работать двум системам по одному принципу. Так на Вашем компьютере может стоять операционная система Windows, а на компьютере провайдера, с которым Вы соединяетесь, UNIX. Разумеется две совершенно разные системы не смогут "договориться" друг с другом без посредников, так как и "разговаривают"-то они на разных языках. Однако они прекрасно существуют в единой связке благодаря протоколам TCP и IP. Да-да, на самом деле TCP/IP - это не один протокол, а стек. Поскольку они не могут обойтись друг без друга, то объединены в единый стек, который для упрощения стали называть протоколом интернета TCP/IP. Протокол IP отвечает за адресацию компьютеров в сети. TCP отвечает за адресацию процессов внутри компьютера (т.е. за программы). Если протокол IP оперирует IP-адресами, с которыми мы уже познакомились, то TCP оперирует портами, к которым можно подключится. Порт - это целое число в диапазоне от 0 до 65535 (2 байта). При передаче запроса, например через броузер, вы являетесь клиентом и отправляете запрос на сервер. Стандартный порт броузера - 80, т.е. вы передаете драйверу TCP через 80-й порт запрос, тот пересылает его драйверу IP, который находит компьютер-адресат. Компьютер-адресат является сервером и принимает запрос через свой драйвер IP на TCP. Отсюда видно, что уровень TCP и IP может быть выше или ниже относительно друг-друга, в зависимости от направления запроса (входящий он или исходящий). От клиента идет направление с TCP на IP, а к серверу приходит уже в направлении с IP на TCP. Вот когда нельзя однозначно определить какой протокол верхнего, а какой нижнего уровня их и объединяют в стеки. А стек, или протокол TCP/IP - это протокол нижнего уровня.

Ваш броузер Microsoft Internet Explorer (или любой другой) - программа, т.е. процесс в памяти. Это не драйвер, который общается с системой напрямую. Он должен получать информацию в определенном виде, иначе не поймет. Поэтому общается он с протоколом нижнего уровня TCP/IP через протоколы верхнего уровня. Самый распространенный из них - HTTP. Набирая в адресной строке http://какой-то_адрес, Вы сообщаете броузеру, что нужно переслать запрос на HTTP-сервер, тоже программу, но на стороне сервера. Обычно HTTP-сервер сидит на 80-м порте, и об этом все знают. Если он находится не на стандартном порте, то его нужно указать явно, как это делает TCP, перед пересылкой запроса. А именно: он изменяет строку http://какой-то_адрес на http://какой-то_адрес:80 Если это другой протокол передачи данных, например FTP (File Transfer Protocol), то строка будет вида ftp://какой-то_адрес:21

После пересылки запроса клиент (в частности броузер) опрашивает порт, через который послал запрос, в ожидании ответа. Именно через него он его и получит, или не получит, если у компьютера-адресата этот порт свободен, т.е. его не опрашивает ни одна программа. За опрос стандартных портов на стороне сервера отвечает программа-сервер. Она работает в фоновом режиме, обрабатывает запросы и формирует ответы.

Выше мы рассматривали принцип DNS-адресации. Согласно ему, в конце концов клиент получает прямое соединение к серверу через IP для пересылки запроса. В заголовке запроса ему пересылается и адрес хоста. Допустим адрес http://www.arian.isety.net в заголовке броузера привел нас к серверу с IP 80.73.164.120. Значит запрос посылается ему через 80-й порт (протокол HTTP), на котором "сидит" программа Small HTTP Server. Она изучает запрос и создает среду окружения, в которой содержится в частности Remote-adress=ваш IP - которому нужно отправить ответ и Referer=www.arian.isety.net - виртуальный хост, из которого нужно сформировать ответ. Виртуальный хост привязан к определенному физическому каталогу на диске сервера и, поскольку документ не был задан явно (как например при запросе http://www.arian.isety.net/price.htm), то будет искаться файл index.* в этом каталоге. Будет найден файл index.htm, содержание которого будет отправлено в теле ответа клиенту с IP=Remote-adress, а в заголовке будет содержаться информация о том, что это текстовый html-документ. Так броузер клиента его и получит.

P.S.

Гуляя по пространствам интернет вы не раз услышите мудреные словечки типа IP-адрес, DNS, HTTP и прочие. По крайней мере вы теперь знаете что они означают.

Реклама
Карта сайта