Как работает Интернет? Как работает интернет.

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

Человек может учиться двумя путями:

  1. Через тупое формальное зазубривание шаблонных способов решения типовых задач (чему сейчас в основном и учат в школе). Такое обучение малоэффективно. Наверняка вам приходилось наблюдать панику и полную беспомощность бухгалтера при смене версии офисного софта - при малейшем изменении последовательности кликов мышки, требуемых для выполнения привычных действий. Или приходилось видеть человека, впадающего в ступор при изменении интерфейса рабочего стола?
  2. Через понимание сути проблем, явлений, закономерностей. Через понимание принципов построения той или иной системы. В этом случае обладание энциклопедическими знаниями не играет большой роли - недостающую информацию легко найти. Главное - знать, что искать. А для этого необходимо не формальное знание предмета, а понимание сути.

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

Итак, начнем.

Принципы работы интернет-протоколов TCP/IP по своей сути очень просты и сильно напоминают работу нашей советской почты.

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

На конверте письма будет написано примерно следующее:

Адрес отправителя: От кого : Иванов Иван Иванович Откуда : Ивантеевка, ул. Большая, д. 8, кв. 25 Адрес получателя: Кому : Петров Петр Петрович Куда : Москва, Усачевский переулок, д. 105, кв. 110

Теперь мы готовы рассмотреть взаимодействие компьютеров и приложений в сети Интернет (да и в локальной сети тоже). Обратите внимание, что аналогия с обычной почтой будет почти полной.

Каждый компьютер (он же: узел, хост) в рамках сети Интернет тоже имеет уникальный адрес, который называется IP-адрес (Internet Protocol Address), например: 195.34.32.116. IP адрес состоит из четырех десятичных чисел (от 0 до 255), разделенных точкой. Но знать только IP адрес компьютера еще недостаточно, т.к. в конечном счете обмениваются информацией не компьютеры сами по себе, а приложения, работающие на них. А на компьютере может одновременно работать сразу несколько приложений (например почтовый сервер, веб-сервер и пр.). Для доставки обычного бумажного письма недостаточно знать только адрес дома - необходимо еще знать номер квартиры. Также и каждое программное приложение имеет подобный номер, именуемый номером порта. Большинство серверных приложений имеют стандартные номера, например: почтовый сервис привязан к порту с номером 25 (еще говорят: «слушает» порт, принимает на него сообщения), веб-сервис привязан к порту 80, FTP - к порту 21 и так далее.

Таким образом имеем следующую практически полную аналогию с нашим обычным почтовым адресом:

"адрес дома" = "IP компьютера" "номер квартиры" = "номер порта"

В компьютерных сетях, работающих по протоколам TCP/IP, аналогом бумажного письма в конверте является пакет , который содержит собственно передаваемые данные и адресную информацию - адрес отправителя и адрес получателя, например:

Адрес отправителя (Source address): IP: 82.146.49.55 Port: 2049 Адрес получателя (Destination address): IP: 195.34.32.116 Port: 53 Данные пакета: ...

Конечно же в пакетах также присутствует служебная информация, но для понимания сути это не важно.

Обратите внимание, комбинация: "IP адрес и номер порта" - называется "сокет" .

В нашем примере мы с сокета 82.146.49.55:2049 посылаем пакет на сокет 195.34.32.116:53, т.е. пакет пойдет на компьютер, имеющий IP адрес 195.34.32.116, на порт 53. А порту 53 соответствует сервер распознавания имен (DNS-сервер), который примет этот пакет. Зная адрес отправителя, этот сервер сможет после обработки нашего запроса сформировать ответный пакет, который пойдет в обратном направлении на сокет отправителя 82.146.49.55:2049, который для DNS сервера будет являться сокетом получателя.

Как правило взаимодействие осуществляется по схеме «клиент-сервер»: "клиент" запрашивает какую-либо информацию (например страницу сайта), сервер принимает запрос, обрабатывает его и посылает результат. Номера портов серверных приложений общеизвестны, например: почтовый SMTP сервер «слушает» 25-й порт, POP3 сервер, обеспечивающий чтение почты из ваших почтовых ящиков «слушает» 110-порт, веб-сервер - 80-й порт и пр.

Большинство программ на домашнем компьютере являются клиентами - например почтовый клиент Outlook, веб-обозреватели IE, FireFox и пр.

Номера портов на клиенте не фиксированные как у сервера, а назначаются операционной системой динамически. Фиксированные серверные порты как правило имеют номера до 1024 (но есть исключения), а клиентские начинаются после 1024.

Повторение - мать учения: IP - это адрес компьютера (узла, хоста) в сети, а порт - номер конкретного приложения, работающего на этом компьютере.

Однако человеку запоминать цифровые IP адреса трудно - куда удобнее работать с буквенными именами. Ведь намного легче запомнить слово, чем набор цифр. Так и сделано - любой цифровой IP адрес можно связать с буквенно-цифровым именем. В результате например вместо 82.146.49.55 можно использовать имя А преобразованием доменного имени в цифровой IP адрес занимается сервис доменных имен - DNS (Domain Name System).

Рассмотрим подробнее, как это работает. Ваш провайдер явно (на бумажке, для ручной настройки соединения) или неявно (через автоматическую настройку соединения) предоставляет вам IP адрес сервера имен (DNS). На компьютере с этим IP адресом работает приложение (сервер имен), которое знает все доменные имена в Интернете и соответствующие им цифровые IP адреса. DNS-сервер «слушает» 53-й порт, принимает на него запросы и выдает ответы, например:

Запрос от нашего компьютера: "Какой IP адрес соответствует имени www.сайт?" Ответ сервера: "82.146.49.55."

Теперь рассмотрим, что происходит, когда в своем браузере вы набираете доменное имя (URL) этого сайта () и, нажав , в ответ от веб-сервера получаете страницу этого сайта.

Например:

IP адрес нашего компьютера: 91.76.65.216 Браузер: Internet Explorer (IE), DNS сервер (стрима): 195.34.32.116 (у вас может быть другой), Страница, которую мы хотим открыть: www.сайт.

Набираем в адресной строке браузера доменное имя и жмем . Далее операционная система производит примерно следующие действия:

Отправляется запрос (точнее пакет с запросом) DNS серверу на сокет 195.34.32.116:53. Как было рассмотренно выше, порт 53 соответствует DNS-серверу - приложению, занимающемуся распознаванием имен. А DNS-сервер, обработав наш запрос, возвращает IP-адрес, который соответствует введенному имени.

Диалог примерно следующий:

Какой IP адрес соответствует имени www.сайт ? - 82.146.49.55 .

Далее наш компьютер устанавливает соединение с портом 80 компьютера 82.146.49.55 и посылает запрос (пакет с запросом) на получение страницы . 80-й порт соответствует веб-серверу. В адресной строке браузера 80-й порт как правило не пишется, т.к. используется по умолчанию, но его можно и явно указать после двоеточия - .

Приняв от нас запрос, веб-сервер обрабатывает его и в нескольких пакетах посылает нам страницу в на языке HTML - языке разметки текста, который понимает браузер.

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

Зачем эти принципы надо понимать?

Например, вы заметили странное поведение своего компьютера - непонятная сетевая активность, тормоза и пр. Что делать? Открываем консоль (нажимаем кнопку «Пуск» - «Выполнить» - набираем cmd - «Ок»). В консоли набираем команду netstat -an и жмем . Эта утилита отобразит список установленных соединений между сокетами нашего компьютера и сокетами удаленных узлов. Если мы видим в колонке «Внешний адрес» какие-то чужие IP адреса, а через двоеточие 25-й порт, что это может означать? (Помните, что 25-й порт соответствует почтовому серверу?) Это означает то, что ваш компьютер установил соединение с каким-то почтовым сервером (серверами) и шлет через него какие-то письма. И если ваш почтовый клиент (Outlook например) в это время не запущен, да если еще таких соединений на 25-й порт много, то, вероятно, в вашем компьютере завелся вирус, который рассылает от вашего имени спам или пересылает номера ваших кредитных карточек вкупе с паролями злоумышленникам.

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

Ну и самое главное - эти знания крайне полезны при общении с техподдержкой .

Напоследок приведу список портов, с которыми вам, вероятно, придется столкнуться:

135-139 - эти порты используются Windows для доступа к общим ресурсам компьютера - папкам, принтерам. Не открывайте эти порты наружу, т.е. в районную локальную сеть и Интернет. Их следует закрыть фаерволлом. Также если в локальной сети вы не видите ничего в сетевом окружении или вас не видят, то вероятно это связано с тем, что фаерволл заблокировал эти порты. Таким образом для локальной сети эти порты должны быть открыты, а для Интернета закрыты. 21 - порт FTP сервера. 25 - порт почтового SMTP сервера. Через него ваш почтовый клиент отправляет письма. IP адрес SMTP сервера и его порт (25-й) следует указать в настройках вашего почтового клиента. 110 - порт POP3 сервера. Через него ваш почтовый клиент забирает письма из вашего почтового ящика. IP адрес POP3 сервера и его порт (110-й) также следует указать в настройках вашего почтового клиента. 80 - порт WEB -сервера. 3128, 8080 - прокси-серверы (настраиваются в параметрах браузера).

Несколько специальных IP адресов:

127.0.0.1 - это localhost, адрес локальной системы, т.е. локальный адрес вашего компьютера. 0.0.0.0 - так обозначаются все IP-адреса. 192.168.xxx.xxx - адреса, которые можно произвольно использовать в локальных сетях, в глобальной сети Интернет они не используются. Они уникальны только в рамках локальной сети. Адреса из этого диапазона вы можете использовать по своему усмотрению, например, для построения домашней или офисной сети.

Что такое маска подсети и шлюз по умолчанию (роутер, маршрутизатор)?

(Эти параметры задаются в настройках сетевых подключений).

Все просто. Компьютеры объединяются в локальные сети. В локальной сети компьютеры напрямую «видят» только друг друга. Локальные сети соединяются друг с другом через шлюзы (роутеры, маршрутизаторы). Маска подсети предназначена для определения - принадлежит ли компьютер-получатель к этой же локальной сети или нет. Если компьютер-получатель принадлежит этой же сети, что и компьютер-отправитель, то пакет передается ему напрямую, в противном случае пакет отправляется на шлюз по умолчанию, который далее, по известным ему маршрутам, передает пакет в другую сеть, т.е. в другое почтовое отделение (по аналогии с советской почтой).

Напоследок рассмотрим что же означают непонятные термины:

TCP/IP - это название набора сетевых протоколов. На самом деле передаваемый пакет проходит несколько уровней. (Как на почте: сначала вы пишете писмо, потом помещаете в конверт с адресом, затем на почте на нем ставится штамп и т.д.).

IP протокол - это протокол так называемого сетевого уровня. Задача этого уровня - доставка ip-пакетов от компьютера отправителя к компьютеру получателю. По-мимо собственно данных, пакеты этого уровня имеют ip-адрес отправителя и ip-адрес получателя. Номера портов на сетевом уровне не используются. Какому порту, т.е. приложению адресован этот пакет, был ли этот пакет доставлен или был потерян, на этом уровне неизвестно - это не его задача, это задача транспортного уровня.

TCP и UDP - это протоколы так называемого транспортного уровня. Транспортный уровень находится над сетевым. На этом уровне к пакету добавляется порт отправителя и порт получателя.

TCP - это протокол с установлением соединения и с гарантированной доставкой пакетов. Сначала производится обмен специальными пакетами для установления соединения, происходит что-то вроде рукопожатия (-Привет. -Привет. -Поболтаем? -Давай.). Далее по этому соединению туда и обратно посылаются пакеты (идет беседа), причем с проверкой, дошел ли пакет до получателя. Если пакет не дошел, то он посылается повторно («повтори, не расслышал»).

UDP - это протокол без установления соединения и с негарантированной доставкой пакетов. (Типа: крикнул что-нибудь, а услышат тебя или нет - неважно).

Над транспортным уровнем находится прикладной уровень. На этом уровне работают такие протоколы, как http , ftp и пр. Например HTTP и FTP - используют надежный протокол TCP, а DNS-сервер работает через ненадежный протокол UDP.

Как посмотреть текущие соединения?

Текущие соединения можно посмотреть с помощью команды

Netstat -an

(параметр n указывает выводить IP адреса вместо доменных имен).

Запускается эта команда следующим образом:

«Пуск» - «Выполнить» - набираем cmd - «Ок». В появившейся консоли (черное окно) набираем команду netstat -an и жмем . Результатом будет список установленных соединений между сокетами нашего компьютера и удаленных узлов.

Например получаем:

Активные подключения

Имя Локальный адрес Внешний адрес Состояние
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 91.76.65.216:139 0.0.0.0:0 LISTENING
TCP 91.76.65.216:1719 212.58.226.20:80 ESTABLISHED
TCP 91.76.65.216:1720 212.58.226.20:80 ESTABLISHED
TCP 91.76.65.216:1723 212.58.227.138:80 CLOSE_WAIT
TCP 91.76.65.216:1724 212.58.226.8:80 ESTABLISHED
...

В этом примере 0.0.0.0:135 - означает, что наш компьютер на всех своих IP адресах слушает (LISTENING) 135-й порт и готов принимать на него соединения от кого угодно (0.0.0.0:0) по протоколу TCP.

91.76.65.216:139 - наш компьютер слушает 139-й порт на своем IP-адресе 91.76.65.216.

Третья строка означает, что сейчас установлено (ESTABLISHED) соединение между нашей машиной (91.76.65.216:1719) и удаленной (212.58.226.20:80). Порт 80 означает, что наша машина обратилась с запросом к веб-серверу (у меня, действительно, открыты страницы в браузере).

В следующих статьях мы рассмотрим, как применять эти знания, например

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

Internet - international network. Дословно означает «интернациональная сеть». Фактически куча компьютеров, которые соединены между собой. Но, для того чтоб компьютеры могли находить друг друга им присваивают адреса. Такой адрес в сети интернет называется IP - адрес.

IP - internet protocol. Протокол - это нечто вроде языка или условностей. Например, я объясняю товарищам условный знак: если у меня в окне стоит цветок на подоконнике с левой или правой стороны, то родители дома, а если по центру подоконника то родаки уехали на дачу и ко мне можно забуриться с пивом на ночь. Это будет протокол мгновенного определения наличия предков дома и возможности зависнуть на ночь. Этим протоколом смогут пользоваться все ребята в нашей компании, кто точно знает об оговоренной условности. Если же эти условности узнают и будут использовать в другой компании, то мы им не сможем помешать, особенно если вместо цветка они обусловятся ставить на подоконник бутылку водки. Так же само протокол IP никто не запрещает использовать в сетях отличных от интернет. Сети использующие TCP/IP протоколы, но не входящие в сеть Internet называются Intranet.

На самом деле IP - это не один протокол, а сборник протоколов. Называется этот сборник стэк протоколов TCP/IP. Большинство сегодняшних программ написано именно под эти протоколы и ничто мне не мешает на необитаемом острове построить свою сеть интранет с использованием оборудования и программ работающих через интернет протокол TCP/IP, установить сервер с сайтом и вести блог на этом сайте. Вот только прочитать мой блог смогут только жители необитаемого острова, подключенные к моей сети интранет. А вот если, это будет сайт компании через который каждый работник будет получать план работы на день, то построение такой сети даже возымеет смысл.

Как я уже говорил каждый компьютер в интернете имеет IP-адрес. Его можно увидеть, если зайти в кнопку «ПУСК» -> «Выполнить», запустить «cmd» и выполнить команду «ipconfig». Эта команда напишет все сетевые настройки компьютера, независимо от того вписаны они вручную или получены автоматически.

Предположим что IP-адрес вашего компьютера 192.168.99.100 и маска подсети 255.255.255.0. Это значит, что ваш компьютер сможет напрямую без помощи маршрутизатора связаться с другими компьютерами вашей подсети 192.168.99.* . Это равносильно тому, что с любым из соседей вашего дома вы можете связаться просто высунувшись из окна и крикнуть во двор «Ваааська, заходи ко мне с пивом». Если же Васька живет на другой улице, то тут прийдется связываться с ним совсем по другому алгоритму - например по телефону.

Шлюз по умолчанию - маршрутизатор на который скидываются пакеты, которые предназначаются для IP адресов не относящихся в вашей подсети. На английском языке шлюз называется «gateway» или просто «gate». Так как на пользовательских компьютерах не известно и не должно быть известно ничего о нахождении других IP адресов во всем мире, то все что компьютер делает перед отправкой пакета - проверяет относится ли IP-адрес получателя к локальной подсети. Если относится, то пакет отправляется напрямую, если не относится, то пакет скидывается в шлюз и пусть шлюз сам разбирается как и где найти получателя. Аналогию можно провести такую. Вы выходите из своей двери в коридор. В коридоре множество дверей. Двери с разными номерами ведут в такие же кабинеты, как у вас и только одна дверь - это выход. Дверь выхода может иметь любой номер и выглядеть как и все остальные, единственное что ее отличает - это то что она является выходом с коридора. Выходов может быть много, включая пожарный. Так же и шлюзов в подсети может быть несколько. Итак, шлюз - это IP адрес в той же подсети, который отвечает за вывод пакетов во внешний мир. Если выход во внешний мир не нужен и локальная сеть работает самодостаточно, то шлюз не нужен.

Маршрутизатор - это, компьютер который согласно таблицам маршрутов знает куда отправлять пакеты, предназначенные для того или иного IP адреса. В английской терминологии маршрутизатор называют router, которое происходит от слова route - путь. Таблицы маршрутизации во всем мире меняются ежедневно из-за того, что появляются новые провайдеры, интернет расширяется, проводятся новые магистрали между странами и континентами. Изначально интернет был военной сетью и основной целью этой сети было обеспечение надежной связи, которая бы работала даже при разрушении части сети в случае военных действий. Эта надежность обеспечивается за счет наличия запасных маршрутов. А маршрутизатор знает эти маршруты и выбирает самый подходящий рабочий маршрут, по которому можно доставить пакет получателю. Таким образом, чтоб доехать из Харькова в Ростов вам нужно сначала добраться до трассы Харьков-Ростов, а когда доедете до Ростова по мелким улочкам закоулкам добраться до нужного вам адреса. Если же трассу Харьков-Ростов перекроют или разломают, это не будет значить, что больше нет возможности добраться в Ростов. Это будет значить что дорога будет дольше, неудобней и прийдется попотеть над картой, чтоб выбрать подходящий маршрут, который наверняка будет загружен, потому что желающих добраться в Ростов меньше не станет.

Виртуальные порты TCP/IP
Представте ситуацию, когда приходит почтальон и приносит по вашему адресу письмо, на котором стоит только номер вашей квартиры. Его встречает вся семья и интересуется, а для кого из членов семьи собственно говоря письмо? Такая же ситуация получилась бы, если бы на IP-адрес вашего компьютера пришел пакет, нельзя было бы определить какой программе предназначается пакет ICQ, Skype, Firefox ? Для того, чтоб не возникало таких инцидентов и мы могли запускать одновременно множество программ, использующих сеть ввели понятие виртуальных портов. Так же как на почтовых конвертах пишут имя получателя, IP-пакеты маркируются номером порта, для которого он предназначается. Так, каждая сетевая программа резервирует за собой воображаемый порт и все пакеты попадают нужным программам. Благодаря портам мы на одном компьютере можем запускать одновременно множество сетевых программ. Порт является просто числом от 0 до 65535 - двойка в 16 степени.

Кроме того, сервера предоставляя сервисы используют именно те порты, которые во всем мире принято использовать для каждого сервиса. Так, например, веб-сайты всегда работают по умолчанию на порту с номером 80, почта отправляется через порт 25, а получается через порт 110. Ничто не мешает администратору настроить сервер отдавать сайты через порт 25, но тогда получится ситуация что клиенты, зная что 25й порт это почтовый порт отправки почты работает по протоколу SMTP будут пытаться общаться с сервером, который отвечает по протоколу HTTP. Результат будет подобен тому, что я по оговоренному выше протоколу при желании выпить пива буду искать на подоконнике цветок, а буду находить бутылку водки.

Доменные имена
У каждого владельца паспорта имеется фискальный код, но так уж повелось, нам людям в отличие от компьютеров удобней работать с именами, а не с цифрами и мы друг друга зовем по имени, а не по фискальному коду. Так и вместо IP-адресов нам удобней набирать имена сайтов, такие как mail.ru или google.com. Система, которая преобразовывает имя в IP-адрес называется DNS - Domain Name System. В настройках сети, если вы пишете их вручную, всегда указывается DNS сервер для преобразования доменных имен в IP адреса. Или же сервер DNS получается вашим компьютером автоматически при подключении к интернету . Каждый раз когда вы набираете адрес сайта в браузере, ваш компьютер запрашивает у DNS сервера его IP адрес и устанавливает соединение с нужным IP адресом. У одного доменного имени может быть множество IP адресов. Это делается для распределения нагрузки. Можно увидеть набрав на разных компьютерах команду ping google.com, что пингуются совсем разные IP-адреса. Таким образом во всем мире люди набирают один адрес google.com, но попадают на разные сервера google, которых по всему миру тысячи. То же самое как в любой стране мира мы можем обратиться в Макдональдс, чтоб получить гамбургер, независимо от его адреса.

Сервер - это компьютер, который предоставляет сервисы. Название образуется от английского «to serve» - обслуживать. Когда вы даете доступ на файлы вашего компьютера, чтоб на него можно было зайти через сетевое окружение и скачать что либо, ваш компьютер становится сервером, потому что предоставляет сервис доступа к файлам. То же самое, если вы поставите на свой компьютер программное обеспечение веб сервера (например, веб сервер apache), то на ваш компьютер можно будет зайти через веб-браузер просто набрав IP адрес вашего компьютера и просмотреть вашу страничку. Другой вопрос, что для настоящих серверов используют более качественное и надежное оборудование, которое позволяет сервисам работать без сбоев круглые сутки и круглый год. Примеры предоставляемых популярных сервисов: HTTP для предоставления сайтов, DNS для преобразования доменных имен, FTP для обмена файлами, SMTP для отправки почты, POP3 или IMAP4 для получения почты, BitTorrent для пиринговых сетей, игровые серверы типа BattleNet. Свой сервер - это отличное решение для фирмы, офиса, локальной компьютерной сети или интернет клуба. Сервер помогает оптимизировать работу и сложить многие функции с людей на машину. Простой сервер может настроить единожды системный администратор. Корректно настроенный сервер практически не нуждается в обслуживании. Если же на сервер возложенно множество функций и от них зависит вся работа офиса, то фирме для обслуживания сервера понадобится должность системного администратора.

NAT
В любой локальной сети рано или поздно возникает потребность подключения к интернету. В локальных сетях для адресации компьютеров используются приватные IP-адреса, которые всему миру не известны. Провайдер же выдает только один реальный адрес на одно подключение. Как же быть, если в интернет надо подключить множество компьютеров, а адрес всего один? Так же, как это делается при подключении внутренних телефонных станций. Внутри офиса с телефонной станцией вы можете набрать номер 100 чтоб дозвониться начальнику или номер 101 чтоб дозвониться к коллеге. Но, если вы за пределеами офиса наберете номер 100 или 101, то вы наберете не существующий номер. Этот номер существует только в пределах внутренней телефонной сети вашего предприятия. Аналогично, в локальных компьютерных сетях используют внтренние IP адреса, которые начинаются на 192.168.*.* для адресации компьютеров и называются приватными. Такие адреса могут быть как в вашей локальной сети, так и в тысячах локалках всего мира. При попадании в интернет пакеты с таких приватных адресов выбрасываются, для них нет получателя. Поэтому при выходе пакета из локальной сети в мир используется следующий финт, который называется NAT - network address translation - преобразование сетевых адресов. На маршрутизаторе локалки, который отвечает за раздачу интернета, исходящий адрес пакета перебивается на адрес маршрутизатора. Всему интернету кажется что именно маршрутизатор отправил этот пакет и ответные пакеты отправляются на адрес этого же маршрутизатора. Маршрутизатор имеет именно тот единственный реальный IP адрес, который дал провайдер при подключении к интернету. При попадании на маршрутизатор система NAT понимает, что хоть адресом назначения и является адрес маршрутизатора, на самом деле пакет предназначается другому компьютеру. На пакете адрес назначения меняется на внутренний приватный адрес в вашей локальной сети и маршрутизатор заворачивает его в локальную сеть. Система NAT просто запоминает какой из компьютеров локальной сети инициализировал подключение и по таблицам подключений возвращает обратные пакеты. При такой системе выхода в интернет неудобство заключается в том, что никто из интернета не сможет инициализировать подключение к вашему компьютеру. Это плохо, если вы хотите на своем компьютере запустить веб сервер или сделать сервер ftp, или хотя бы создать сетевую игру вроде Counter-Strike или WarCraft. А преймущество в том, что вам не нужно защищать свой компьютер, ведь из интернета никто не может к вам подключиться и получить доступ к вашим ресурсам. Защищаться нужно только от компьютеров локальной сети, а это намного проще с учетом того что их немного и как правило они не настроены против вас враждебно.

Пробрасывание портов
Если же мы находимсся в локальной сети без реального адреса, а создать игру в WarCraft ой как хочется. В таком случае на помощь прийдет port forwarding. Маршрутизатор настраивается таким образом, что все попытки подключения на адрес маршрутизатора локальной сети на определенный порт не будут игнорироваться, даже если на этом порту маршрутизатора не запущены никакие сервисы. Пакеты приходящие на обусловленный порт маршрутизатора будут закидываться внутрь локалки на тот компьютер, где была создана сетевая игра или запущен какой то другой сетевой сервис.

Что такое фаервол/брэндмауэр и как он работает.
Жила была девочка Маша и радовалась каждому письму которое ей приходило. Но, когда она выросла и стала звездой мирового масштаба, ее стали заваливать сотнями писем в день. Одни письма были признаниями в любви, другие оскорблениями и угрозами, а Машу из всех писем интересовали только те, которые являлись предложениями о сотрудничестве. Маша доверила обработку всех приходящих пакетов секретарю, чтоб тот их фильтровал и выбирал только единицы полезных писем, проверял наличие корректного обратного адреса и оставлял письма только отпечатанные на лазерном принтере, а остальные выбрасывал. Так же секретарю указали выкидывать все письма из городов Урюпинск, Мухосранск и Бобруйск после неудачных концертов в этих городах. А для того, чтоб через письмо с якобы предложением о сотрудничестве не прислали бомбу или отраву снабдили секретаря приборами для тестирования всех писем на наличие взрывоопасных и токсичных веществ. А секретаря назвали Файрволом. В общем файрвол - это программа, которая фильтрует весь сетевой траффик приходящий на ваш компьютер, и в зависимости от ваших настроек блокирует его или разрешает. Так же файрвол может быть наделен функциями проверки траффика на вирусы и на прочие вредоносные данные.

Килобиты и килобайты
И последний вопрос, в котором больше всего путаются пользователи интернета - это килобиты и килобайты. Для пользователя все равно 128 килобит или килобайт, ему Opera на закачке показала 128кб, а в контракте написано 1024 кбит - обманули. Но разьве это не одно и тоже? А какая разница? Давайте все по порядку.

Компьютер воспринимает любую информацию в виде нулей и единиц. Будь это картинка, текст музыка или видео. Почему нулей и единиц? Потому что компьютеру так проще, он понимает только есть напряжение или нет напряжения. Допустим, вы с другом договорились свет горит в зале - есть родаки дома (единица), свет не горит - значит никого нет дома (ноль). Вы можете с помощью одного выключателя передать только два числа - ноль или один. А если нужно передать количество требуемых бутылок пива? Если выключателей несколько, то можно передать числа гораздо больше чем ноль и один даже несмотря на то что выключатель может только показать ВКЛ или ВЫКЛ, только надо обусловиться, как переводить из одной системы в другую. Рисуем такую таблицу для двух выключателей в двух разных комнатах:
00 - 0
01 - 1
10 - 2
11 - 3
Получается двумя выключателями можно передать число от 0 до 3 (то есть четыре числа). А если выключателей три?
000 - 0
001 - 1
010 - 2
011 - 3
100 - 4
101 - 5
110 - 6
111 - 7
Если выключателей три, то можно передать числа от нуля до 7, то есть восемь чисел.

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

Итак, если выключателей 8 штук, то 8 в восьмой степени = 256. В компьютерной терминологии один выключатель имеет объем информации 1 бит. А восемь объединенных в группу выключателей 1 байт. Итак, 1 байт - это число от 0 до 255.

С помощью числа от 0 до 255 можно уже договориться передавать буквы. Например,
1 = A
2 = B
и т.д.
Примерно так хранятся буквы в вашем компьютере. Так же само можно обсуловиться что каждое число будет обозначать градации какого то цвета в изобращении и тогда с помощью выключателей можно передавать изображения. Если же число будет обуславливать напряжение на динамике в определенный момент времени, то поток таких чисел задаст мелодию.

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

Для передачи информации по сети в сетевом кабеле на долю секунды выставляется состояние ВКЛ или ВЫКЛ. ВКЛ - есть напряжение, ВЫКЛ - нет напряжения. За такую долю секунды передается 1 бит. Чем быстрее передающий компьютер сможет выставлять состояние напряжения в кабеле, а принимающий распознать это состояние, тем больше информации можно передать за одну секунду по сети. Так, если переключать состояние напряжения сто миллионов раз в секунду, то мы получим сеть в сто мегабит. Вместо напряжения можно использовать любой эффект, который может нести информацию. Например, свет - горит или не горит как в случае с окнами. С помощью света информация передается по оптоволокну. В оптоволоконных кабелях скорость передачи информации составляет гигабит, десятки гигабит и даже сотни гигабит - это миллиард переключений в секунду.

Итак, в сети биты, килобиты, мегабиты используются потому что передаваемая информация приводится к элементарному ВКЛ или ВЫКЛ, что и является ячейкой в один бит.

Но, мы привыкли мерять объем текста, фото или видео с помощью байтов, килобайтов или мегабайтов. Зная, что 1 байт = 8 бит несложно преобразовать одну единицу измерения в другую. Именно поэтому Opera на закачке меряет в байтах, а сетевое оборудование меряют в битах.

Всегда с чем то интересным Новак Сергей на блоге

Как работает интернет?



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

Структура интернета

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

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

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

Как работает сеть интернет: составляющие элементы

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

Пользователь

Или какая-то автоматическая программа, посылающая запросы в интернет для получения информации.

Компьютер

Или любое другое средство выхода в интернет, например, телефон, планшет. Без таких устройств выйти в сеть нельзя.

Интернет-провайдер

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

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

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

Браузер

Это программа-клиент для работы в интернете, которую можно установить либо с диска, либо скачав через тот же интернет. Самыми популярными браузерами являются Google Chrome, Internet Explorer, Mozilla Firefox, Safari, Opera.

Пользователь может установить на свой ПК абсолютно любой браузер или даже несколько программ - по желанию. У каждой программы имеются свои особенности, плюсы и минусы.

Домен

Под этим понятием подразумевается некая зона в сети интернет, занятая тем или иным сайтом. Соответственно, у каждой страницы в интернете есть свое неповторимое доменное имя - адрес, по которому вы можете найти сайт в сети.

Запустив браузер, в адресной строке вы вводите именно доменное имя нужного вам ресурса. После этого система обращается с соответствующим запросом к сети интернет-провайдера. У провайдера установлен сервер типа DNS (Domain Name System), который позволяет перекодировать доменное имя сайта в IP-адрес. IP-адрес (Internet Protocol Address) - это уникальный адрес какой-то зоны в интернете, представленный, в отличие от доменного имени, в виде цифр. К слову, IP-адрес имеют не только сайты, но и сами компьютеры. Каждому ПК IP-адрес присваивает интернет-провайдер, предоставляющий доступ к сети. Это делается для того, чтобы иметь возможность поставлять трафик по нужному адресу, то есть к каждому конкретному ПК, а также чтобы решать какие-то проблемы в обслуживании.

После этого IP-адрес сайта перекодируется из десятичной системы вычисления в двоичную (с участием 0 и 1). В этом виде провайдер посредством сервера отправляет запрос о получении информации с нужного пользователю сайта на маршрутизатор.

Маршрутизатор

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

Передача информации осуществляется от одного маршрутизатора к другому вплоть до конечной точки - сервера.

Сервер

Мощный компьютер, который может выполнять в зависимости от его вида следующие задачи:

  • Обеспечивает получение компьютерами сети интернет-трафика.
  • Занимается перекодировкой доменных имен в IP-адреса.
  • Хранит данные. Например, это может быть сервер с данными пользователей какой-то электронной почты: входящими и исходящими письмами, письмами в корзине и в папке со спамом, информация из адресных книг и проч.
  • Размещает в своей памяти информации о различных сайтах сети, всех данных на них. Такие серверы называются хостингами.

Соответственно, в нашем примере запрос на открытие сайта будет передан через маршрутизаторы на соответствующий хостинг, хранящий информацию об искомой интернет-странице. Ответ сервера будет передан по обратной цепочке (через маршрутизаторы, интернет-провайдера и браузер) на ПК.

Однако прежде чем результат высветится на мониторе, для передачи информации будет использован один из многочисленных портов, которые использует ПК.

Порт

Это системный ресурс, выделяемый приложению для связи с другими приложениями в сети. То есть, поступая на определенный IP-адрес, те или иные данные затем расходятся по разным портам. Так, существует порт для отправки электронной почтой и отдельно - для ее получения.

Для работы с веб-сайтами также существует отдельный порт. Он анализирует полученную информацию и отправляет ее в браузер. В результате перед нами открывается желанная страница.

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

Положим, вы хотите переслать по почте вашему другу толстый журнал, не по- тратив при этом денег на отправку бандероли. Как решить эту проблему, если почта отказывается принимать письма, содержащие больше нескольких бумажных листов? Выход простой: разделить журнал на страницы и отправлять их отдельными письмами. По номерам страниц ваш друг сможет собрать журнал целиком. Приблизительно таким же способом работает протокол TCP. Он дробит информацию на несколько частей, присваивает каждой части номер, по которому данные впоследствии можно будет соединить воедино, добавляет к ней «служебную» информацию и укладывает все это в отдельный «IP-конверт».Далее этот «конверт» отправляется по Сети - ведь Интернет умеет обрабатывать IP-информацию. Поскольку в такой схеме протоколы TCP и IP тесно связаны, их часто объединяют в одно понятие: TCP/IP. Размер передаваемых в Интернете TCP/IP-пакетов составляет, как правило, от 1 до 1500 байт, что связано с техническими характеристиками Сети.
Наверняка, пользуясь услугами обычной почтовой связи, вы сталкивались с тем, что обычные письма, посылки и иные почтовые отправления теряются и приходят совсем не туда, куда нужно. Те же проблемы характерны и для Интернета. На почте такие неприятные ситуации решают руководители почтовых отделений, а в Интернете этим занимается протокол TCP. Если какой-либо па- кет данных не был доставлен получателю вовремя, TCP повторяет пересылку до тех пор, пока информация не будет принята корректно и в полном объеме.


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

Следует отметить также, что при отправке информационных пакетов протокол TCP требует от компьютера-получателя подтверждения приема информации. Это организуется путем создания временных задержек при приеме-передаче -тайм-аутов, или ожиданий. Тем временем отправитель продолжает пересылать данные. Образуется некий объем уже переданных, но еще не подтвержденных данных. Иными словами, TCP организует двунаправленный обмен информацией, что обеспечивает более высокую скорость ее трансляции.

При соединении двух компьютеров их модули TCP следят за состоянием связи. При этом само соединение, посредством которого осуществляется обмен данными, носит название виртуального канала.
Современная схема передачи данных в Интернете имеет многослойную структуру, включающую несколько уровней. Такая структура называется эталонной моделью ISO OSI (Open Systems Interconnection). Я не стану подробно раскрывать суть данной схемы, поскольку для общего понимания принципов работы Интернета она просто не нужна. Те, у кого возникнет острая необходимость подробно изучить эту абстрактную структуру, могут воспользоваться любым техническим справочником или почерпнуть информацию из самой Всемирной сети, набрав в окне запроса поискового сервера слово «Internet» или «ISOOSI».

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

Для того чтобы пакет с информацией не «заблудился» по дороге, узлы Интернета, через которые он движется, имеют в своем распоряжении так называемые таблицы маршрутизации - электронные базы данных, в которых содержатся указания, куда именно отсылать тот или иной пакет информации, если он следует на такой-то адрес. Таблицы маршрутизации рассылаются на узлы централизованно, периодически меняются и дополняются. Серверы узлов, осуществляющие маршрутизацию, называются маршрутизаторами, или роутерами (отангл, «router» - «маршрутизатор»). Правила маршрутизации описаны в протоколах ICMP (Internet Control Message Protocol), RIP (Routing InternetProtocol) и OSPF (Open Shortest Path First).
Откуда же маршрутизатор узнает, в каком именно направлении следует отсылать отправленный вами пакет данных? Да от вас же самих. Только при пересылке сообщений с почтовыми голубями не нужно указывать адрес назначения. К сожалению, Интернет не пользуется голубиной почтой, и потому для того, чтобы отправить куда-то послание через Сеть, вам нужно указать, куда именно.

Система адресации в Интернете. Каждый человек, живущий на Земле, имеет адрес, по которому его в случае необходимости можно разыскать. Думаю, ни у кого не вызовет удивления то, что каждая работающая в Интернете машина также имеет свой уникальный адрес. Адреса в Интернете разительно отличаются от привычных нам почтовых. Боюсь, совершенно бесполезно писать на отправляемом вами в Сеть пакете информации нечто вроде «Компьютеру Intel Pentium II 400, эсквайру, Пэнни-Лэйн,114, Ливерпуль, Англия». Увидев такую надпись, ваша персоналка в лучшем случае фундаментально зависнет. Но если вы укажете компьютеру в качестве адреса нечто вроде 195.85.102.14, машина вас прекрасно поймет.

Именно стандарт TCP/IP подразумевает подобную запись адресов подключенных к Интернет компьютеров. Такая запись носит название IP-адрес.

Из приведенного примера видно, что IP-адрес состоит из четырех десятизначных идентификаторов, или октетов, по одному байту каждый, разделенных точкой. Левый октет указывает тип локальной интрасети, в которой находится искомый компьютер. В рамках данного стандарта различается несколько подвидов интрасетей, определяемых значением первого октета. Это значение характеризует максимально возможное количество подсетей и узлов, которые может включать такая сеть. В табл. 1.1 приведено соответствие классов сетей значению первого октета IP-адреса.

Таблица 1.1. Соответствие классов сетей значению первого октета IP-адреса

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

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

Для того чтобы начать с наиболее привычной всем схемы, рассмотрим, как подключается к Интернету домашний компьютер, и проследим, по каким каналам путешествует информация, передаваемая и принимаемая нами из Сети. Если вы выходите в Интернет с домашнего компьютера, то, скорее всего, используете модемное подключение (рис. 1).

В принципе, соединение с провайдером может идти по различным каналам: по телефонной линии, по выделенной линии, на основе беспроводной или спутниковой связи, по сети кабельного телевидения или даже по силовым линиям - все эти альтернативные варианты показаны на рис. 1 .

Чаще всего это так называемое временное (сеансовое) соединение по телефонной линии. Вы набираете один из телефонных номеров, который предоставил вам провайдер, и дозваниваетесь на один из его модемов. На рис. 1 показан набор модемов провайдера, так называемый модемный пул. После того как вы соединились с вашим ISP (Internet Service Provider)-провайдером, вы становитесь частью сети данного ISP. Провайдер предоставляет своим пользователям различные сервисы, электронную почту, Usenet и т.д.

Каждый провайдер имеет свою магистральную сеть, или бэкбоун . На рис. 1 мы условно изобразили магистральную сеть некоего провайдера ISP-A. Его магистральная сеть показана зеленым цветом.

Обычно ISP-провайдеры - это крупные компании, которые в ряде регионов имеют так называемые точки присутствия (POP, Point of Presence), где происходит подключение локальных пользователей.

Обычно крупный провайдер имеет точки присутствия (POP) в нескольких крупных городах. В каждом городе находятся аналогичные модемные пулы, на которые звонят локальные клиенты этого ISP в данном городе. Провайдер может арендовать волоконно-оптические линии у телефонной компании для соединения всех своих точек присутствия (POP), а может протянуть свои собственные волоконно-оптические линии. Крупнейшие коммуникационные компаний имеют собственные высокопропускные каналы. На рис. 1 мы показали опорные сети двух Интернет-провайдеров. Очевидно, что все клиенты провайдера ISP-А могут взаимодействовать между собой по собственной сети, а все клиенты компании ISP-В - по своей, но при отсутствии связи между сетями ISP-A и ISP-B клиенты компании «A» и клиенты компании «В» не могут связаться друг с другом. Для реализации данной услуги компании «A» и «B» договариваются подключиться к так называемым точкам доступа (NAP - Network Access Points) в разных городах, и трафик между двумя компаниями течет по сетям через NAP. На рис. 1 показаны магистральные сети только двух ISP-провайдеров. Аналогично организуется подключение к другим магистральным сетям, в результате чего образуется объединение множества сетей высокого уровня.

В Интернете действуют сотни крупных Интернет-провайдеров, их магистральные сети связаны через NAP в различных городах, и миллиарды байтов данных текут по разным сетям через NAP-узлы.

Если вы пользуетесь Интернетом в офисе, то, скорее всего, вы подключены к локальной сети (LAN - Local Area Network). В этом случае рассмотренная нами схема несколько видоизменяется (рис. 2). Сеть организации обычно отделена от внешнего мира определенной службой защиты информации, которая на нашей схеме условно показана в виде кирпичной стены. Варианты подключения к провайдеру могут быть различными, хотя чаще всего это выделенная линия.

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

Скорость передачи информации на различных участках Сети существенно различается. Магистральные линии, или бэкбоуны, связывают все регионы мира (рис. 5) - это высокоскоростные каналы, построенные на основе волоконно-оптических кабелей. Кабели обозначаются OC (optical carrier), например OC-3, OC-12 или OC-48. Так, линия OC-3 может передавать 155 Мбит/с, а OC-48 - 2488 Мбит/с (2,488 Гбит/с). В то же время получение информации на домашний компьютер с модемным подключением 56 K происходит со скоростью всего 56 000 бит/с.

Как происходит передача информации в Интернете

Маршрутизаторы

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

Таким образом, маршрутизатор выполняет две различные, но взаимосвязанные функции. Во-первых, он направляет информацию по свободным каналам, предотвращая «закупорку» узких мест в Сети; во-вторых, проверяет, что информация следует в нужном направлении. При объединении двух сетей маршрутизатор включается в обе сети, пропуская информацию из одной в другую, и в некоторых случаях осуществляет перевод данных из одного протокола в другой, при этом защищая сети от лишнего трафика. Эту функцию маршрутизаторов можно сравнить с работой патрульной службы, которая с вертолета ведет наблюдение за движением в городе, контролирует общую ситуацию с поломками и заторами на дорогах и сообщает о наиболее загруженных участках трассы, чтобы водители выбирали оптимальный маршрут и не попадали в пробки.

Протоколы Интернета

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

Следует различать два типа протоколов: базовые и прикладные. Базовые протоколы отвечают за физическую пересылку сообщений между компьютерами в сети Интернет. Это протоколы IP и TCP. Прикладными называют протоколы более высокого уровня, они отвечают за функционирование специализированных служб. Например, протокол http служит для передачи гипертекстовых сообщений, протокол ftp - для передачи файлов, SMTP - для передачи электронной почты и т.д.

Набор протоколов разных уровней, работающих одновременно, называют стеком протоколов. Каждый нижележащий уровень стека протоколов имеет свою систему правил и предоставляет сервис для вышележащих.

Такое взаимодействие можно сравнить со схемой пересылки обычного письма. Например, директор фирмы «А» пишет письмо и отдает его секретарю. Секретарь помещает письмо в конверт, надписывает адрес и относит конверт на почту. Почта доставляет письмо в почтовое отделение. Почтовое отделение связи доставляет письмо получателю - секретарю директора фирмы «B». Секретарь распечатывает конверт и передает письмо директору фирмы «В». Информация (письмо) передается с верхнего уровня на нижний, обрастая на каждой стадии дополнительной служебной информацией (пакет, адрес на конверте, почтовый индекс, контейнер с корреспонденцией и т.д.), которая не имеет отношения к тексту письма.

Нижний уровень - это уровень почтового транспорта, которым письмо перевозится в пункт назначения. В пункте назначения происходит обратный процесс: корреспонденция извлекается, считывается адрес, почтальон несет конверт секретарю фирмы «B», который достает письмо, определяет его срочность, важность и в зависимости от этого передает информацию выше. Директора фирм «А» и «Б», передавая друг другу информацию, не заботятся о проблемах пересылки этой информации, подобно тому как секретаря не волнует, как доставляется почта.

Аналогично каждый протокол в стеке протоколов выполняет свою функцию, не заботясь о функциях протокола другого уровня.

На нижнем уровне, то есть на уровне TCP/IP , используется два основных протокола: IP (Internet Protocol - протокол Интернета) и ТСР (Transmission Control Protocol - протокол управления передачей).

Архитектура протоколов TCP/IP предназначена для объединенной сети. Интернет состоит из разнородных подсетей, соединенных друг с другом шлюзами. В качестве подсетей могут выступать разные локальные сети (Token Ring, Ethernet и т.п.), различные национальные, региональные и глобальные сети. К этим сетям могут подключаться машины разных типов. Каждая из подсетей работает в соответствии со своими принципами и типом связи. При этом каждая подсеть может принять пакет информации и доставить его по указанному адресу. Таким образом, требуется, чтобы каждая подсеть имела некий сквозной протокол для передачи сообщений между двумя внешними сетями.

Разобраться в работе протоколов поможет схема на рис. 6 . Предположим, имеется некое послание, отправляемое по электронной почте. Передача почты осуществляется по прикладному протоколу SMTP, который опирается на протоколы TCP/IP. Согласно протоколу TCP, отправляемые данные разбиваются на небольшие пакеты фиксированной структуры и длины, маркирующиеся таким образом, чтобы при получении данные можно было бы собрать в правильной последовательности.

Обычно длина одного пакета не превышает 1500 байт. Поэтому одно электронное письмо может состоять из нескольких сотен таких пакетов. Малая длина пакета не приводит к блокировке линий связи и не позволяет отдельным пользователям надолго захватывать канал связи.

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

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

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

При этом, если соединение нормальное, значит выделенная вам часть сети для других уже не доступна. Речь идет о сети с коммутацией каналов. Интернет же является сетью с коммутацией пакетов, а это совсем другая история. Процесс пересылки электронной почты принципиально иной.

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

Адресация в Интернете

ы уже упоминали IP-адрес, теперь расскажем о нем подробнее. Каждому компьютеру, подключенному к Интернету, присваивается идентификационный номер, который называется IP-адресом.

Но если вы осуществляете сеансовое подключение (то есть подключаетесь на время сеанса выхода в Интернет), то IP-адрес вам выделяется только на время этого сеанса. Присвоение адреса на время сеанса связи называется динамическим распределением IP-адресов. Оно удобно для ISP-провайдера, поскольку в тот период времени, пока вы не выходите в Интернет, IP-адрес, который вы получали, может быть выделен другому пользователю. Этот IP-адрес является уникальным только на время вашей сессии - в следующий раз, когда вы будете выходить в Интернет через своего провайдера, IP-адрес может быть другим. Таким образом, Интернет-провайдер должен иметь по одному IP-адресу на каждый обслуживаемый им модем, а не на каждого клиента, которых может быть намного больше.

IP-адрес имеет формат xxx.xxx.xxx.xxx, где xxx - числа от 0 до 255. Рассмотрим типичный IP-адрес: 193. 27.61.137.

Для облегчения запоминания IP-адрес обычно выражают рядом чисел в десятичной системе счисления, разделенных точками. Но компьютеры хранят его в бинарной форме. Например, тот же IP-адрес в двоичном коде будет выглядеть так:

11000001.00011011.00111101.10001001.

Четыре числа в IP-адресе называются октетами, поскольку в каждом из них при двоичном представлении имеется восемь разрядов: 4×8=32. Так как каждая из восьми позиций может иметь два различных состояния: 1 или 0, общий объем возможных комбинаций составляет 28, или 256, то есть каждый октет может принимать значения от 0 до 255. Комбинация четырех октетов дает 232 значений, то есть примерно 4,3 млрд. комбинаций, за исключением некоторых зарезервированных адресов.

Октеты служат не только для того, чтобы разделять числа, но и выполняют другие функции. Октеты можно распределить на две секции: Net и Host. Net-секция используется для того, чтобы определить сеть, к которой принадлежит компьютер. Host, который иногда называют узлом, определяет конкретный компьютер в сети.

Эта система аналогична системе, используемой в обычной почте, когда одна часть адреса определяет улицу, а вторая - конкретный дом на этой улице.

На ранней стадии своего развития Интернет состоял из небольшого количества компьютеров, объединенных модемами и телефонными линиями. Тогда пользователи могли установить соединение с компьютером, набрав цифровой адрес, например 163. 25.51.132. Это было удобно, пока сеть состояла из нескольких компьютеров. По мере увеличения их количества, учитывая тот факт, что текстовое имя всегда удобнее для запоминания, чем цифровое, постепенно цифровые имена стали заменять на текстовые.

Возникла проблема автоматизации данного процесса, и в 1983 году в Висконсинском университете США (University of Wisconsin) была создана так называемая DNS (Domain Name System)-система, которая автоматически устанавливала соответствие между текстовыми именами и IP-адресами. Вместо чисел была предложена ставшая сегодня для нас привычной запись типа http://www.myhobby.narod.ru/ .

Подобным образом осуществляется сортировка обычной почты. Люди привыкли ориентироваться по географическим адресам, например: «Москва, ул. Рылеева, д. 3, кв. 10», в то время как автомат на почте быстро сортирует почту по индексу.

Таким образом, при пересылке информации компьютеры используют цифровые адреса, люди - буквенные, а DNS-сервер служит своеобразным переводчиком.

Прежде чем переходить к описанию работы DNS-серверов, следует сказать несколько слов о структуре доменных имен.

Доменные имена

огда вы обращаетесь на Web или посылаете e-mail, вы используете доменное имя. Например, адрес http://www.microsoft.com/ содержит доменное имя microsoft.com. Аналогично e-mail-адрес [email protected] содержит доменное имя aha.ru.

В доменной системе имен реализуется принцип назначения имен с определением ответственности за их подмножество соответствующих сетевых групп.

И если каждая группа придерживается этого простого правила и всегда получает подтверждение, что имена, которые она присваивает, единственны среди множества ее непосредственных подчиненных, то никакие две системы, где бы те ни находились в сети Интернет, не смогут получить одинаковые имена.

Так же уникальны адреса, указываемые на конвертах при доставке писем обычной почтой. Таким образом, адрес на основе географических и административных названий однозначно определяет точку назначения.

Домены тоже имеют аналогичную иерархию. В именах домены отделяются друг от друга точками: companya.msk.ru, companyb.spb.ru. В имени может быть различное количество доменов, но обычно их не больше пяти. По мере движения по доменам в имени слева направо, количество имен, входящих в соответствующую группу, возрастает.

Каждый раз, когда вы используете доменное имя, вы также используете DNS-серверы для того, чтобы перевести буквенное доменное имя в IP-адрес на машинном языке.

В качестве примера давайте рассмотрим адрес http://www.pc.dpt1.company.msk.ru/ .

Первым в имени стоит название рабочей машины - реального компьютера с IP-адресом. Это имя создано и поддерживается группой dpt1. Группа входит в более крупное подразделение company, далее следует домен msk - он определяет имена московской части сети, а ru - российской.

Каждая страна имеет свой домен. Так au - соответствует Австралии, be - Бельгии и т.д. Это географические домены верхнего уровня.

Помимо географического признака используется тематический, в соответствии с которым существуют следующие доменные имена первого уровня:

  • com - обозначает коммерческие предприятия;
  • (edu) - образовательные;
  • Как работает DNS-сервер

    NS-сервер принимает запрос на конвертацию доменного имени в IP-адрес. При этом DNS-сервер выполняет следующие действия:

    • отвечает на запрос, выдав IP-адрес, поскольку уже знает IP-адрес запрашиваемого домена.
    • контактирует с другим DNS-сервером для того, чтобы найти IP-адрес запрошенного имени. Этот запрос может проходить по цепочке несколько раз.
    • выдает сообщение: «Я не знаю IP address домена, запрашиваемого вами, но вот IP address DNS-сервера, который знает больше меня»;
    • сообщает, что такой домен не существует.

    Представим, что вы набрали адрес http://www.pc.dpt1.company.com/ в вашем браузере, который имеет адрес в домене верхнего уровня COM (рис. 9). В простейшем варианте ваш браузер контактирует с DNS-сервером для того, чтобы получить IP-адрес искомого компьютера, и DNS-сервер возвращает искомый IP-адрес (рис. 10).

    На практике в Сети, где объединены миллионы компьютеров, найти DNS-сервер, который знает нужную вам информацию, - это целая проблема. Иными словами, если вы ищете какой-то компьютер в Сети, то прежде всего вам необходимо найти DNS-сервер, на котором хранится нужная вам информация. При этом в поиске информации может быть задействована целая цепочка серверов. Пояснить работу DNS-серверов можно на примере, показанном на рис. 11 .

    Предположим, что тот DNS-сервер, к которому вы обратились (на рис. 11 он обозначен как DNS1), не имеет нужной информации. DNS1 начнет поиск IP-адреса с обращения к одному из корневых DNS-серверов. Корневые DNS-серверы знают IP-адреса всех DNS-серверов, отвечающих за доменные имена верхнего уровня (COM, EDU, GOV, INT, MIL, NET, ORG и т.д.).

    Например, ваш сервер DNS1 может запросить адрес у корневого DNS-сервера. Если корневой сервер не знает данного адреса, возможно, он даст ответ: «Я не знаю IP-адреса для http://www.pc.dpt1.company.com/ , но могу предоставить IP-адрес COM DNS-сервера».

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

    Одна из причин, по которой система работает надежно, - это ее избыточность. Существует множество DNS-серверов на каждом уровне, и поэтому, если один из них не может дать ответ, наверняка существует другой, на котором есть необходимая вам информация. Другая технология, которая делает поиск более быстрым, - это система кэширования. Как только DNS-сервер выполняет запрос, он кэширует полученный IP-адрес. Однажды сделав запрос на корневой DNS (root DNS) и получив адрес DNS-сервера, обслуживающего COM-домены, в следующий раз он уже не должен будет повторно обращаться с подобным запросом. Подобное кэширование происходит с каждым запросом, что постепенно оптимизирует скорость работы системы. Несмотря на то что пользователям работа DNS-сервера не видна, эти серверы каждый день выполняют миллиарды запросов, обеспечивая работу миллионов пользователей.

    КомпьютерПресс 5"2002



Просмотров