8 лет назад 6 декабря 2010 в 19:14 60

Компьютерные сети – тема всеобъемлющая, и прежде всего надо выбрать, с чего начать рассказ о них. Пожалуй, с определения. Сеть – это структура, позволяющая вычислительным машинам взаимодействовать между собой, отправлять и принимать данные и команды. Сети в обязательном порядке включают в себя сами компьютеры, носитель (среду передачи) информации и, чаще всего, дополнительное сетевое оборудование. Классифицируются сети в первую очередь по размеру: они делятся на локальные (LAN, Local Area Network) и глобальные (WAN, Wide Area Network). И в этом материале речь пойдет в основном о локальных сетях, поскольку они ближе к пользователю и с их настройкой и применением связано больше всего вопросов. Об устройстве глобальных будет рассказано по мере надобности, тоже по большей части с прикладной точки зрения.

Модель для сетки
Для того чтобы компьютеры и сетевое оборудование могли понимать друг друга, были придуманы протоколы компьютерных сетей. А для того, чтобы разобраться с ними, надо для начала ознакомиться с моделью сети. Модель сети – это абстракция, в виде которой можно представить сеть. Международная организация по стандартизации (International Organization for Standardization, ISO) приняла в качестве эталонной сетевой модели OSI (Open Systems Interconnection Basic Reference Model). Модель OSI устроена сложно – она состоит из семи уровней и грешит оторванностью от реального устройства современных сетей, что неудивительно, так как она была разработана давно.

Она достаточно подробно описана в «Википедии», к которой и отсылаю наиболее любопытных читателей. Более близкая к делу модель DOD (Department of Defence, то есть Министерства обороны) была разработана соответствующим ведомством США. Согласно ей устроен стек протоколов TCP/IP, на котором основывается интернет. Именно ее, в применении к TCP/IP, и рассмотрим подробно. Только для начала определимся с тем, что такое протокол. Протокол сети – это набор правил, по которым происходит обмен данными между компьютерами. Это похоже на использование языка: например, следуя правилам орфографии, люди пишут слова без ошибок, и другой человек может их прочитать. Так же и компьютеры, когда держат связь по набору (стеку) протоколов TCP/IP, без проблем понимают друг друга.

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

Макет, который оказался сильней
Сетевая модель состоит из уровней, упорядоченных по вертикали. Чем выше уровень, тем он ближе к пользователю. Каждый протокол действует на определенном уровне сетевой модели, хотя из-за того, что сетевая модель абстрактна, некоторые протоколы не удается четко приписать к одному уровню – тогда их приписывают к двум соседним одновременно. Протоколы более низкого уровня вкладывают в себя высокоуровневые протоколы по принципу матрешек. Такая вложенность называется латинским словом «инкапсуляция», что переводится как «вкладывание», «упаковка». Модель DOD имеет четыре уровня, протоколы первого инкапсулируют протоколы второго и т. д. Это можно сравнить с работой почты. Письмо – пакет информации самого высокого уровня, ближе всего к адресату и отправителю, вкладывается, то есть инкапсулируется, в конверт. Конверт с адресом и индексом – более низкий уровень, дальше от пользователей почты. Он упаковывается в контейнер, вместе с другими конвертами, которые уйдут в том же направлении. Затем контейнер помещается в почтовый вагон поезда. Поезд доставляет контейнер в нужный город, там его разгружают, вынимают из него конверт и доставляют по нужному адресу. А получатель может вынуть из конверта само письмо и прочесть. Примерно так же происходит с пакетами информации.

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

Самый нижний уровень модели DOD называется уровнем сетевого доступа (Network Access). Он соответствует двум уровням модели OSI: физическому и канальному. Уровень сетевого доступа отвечает за доставку данных к физическим сетевым устройствам, таким как сетевые адаптеры, в виде кадров (фреймов, от англ. frame). На нем работают такие протоколы, как Ethernet, IEEE 802.11 (известный как Wi-Fi) и 802.16 (WiMAX), а также некоторые другие, не столь привычные для большинства юзеров. Они служат для того же, для чего обыкновенной почте нужны поезда, самолеты и курьеры, – то есть выступают в качестве транспорта. На следующем, втором уровне модели DOD происходит передача сообщений между сетями, в том числе разнородными по устройству. Этот уровень носит гордое название Internet (межсетевой) и сопоставляется сетевому уровню модели OSI. Именно на нем вольготно расположился протокол IP, отвечающий за доставку пакетов информации в современных компьютерных сетях, в том числе в глобальной сети интернет. Он будет достаточно подробно описан ниже, потому что важность IP для компьютерных сетей сложно переоценить.

Прежде всего следует иметь в виду, что протокол IP не гарантирует доставку всех пакетов данных в той последовательности, в какой они были отправлены. Пакет может потеряться по дороге, или, наоборот, продублироваться, или прийти не в свою очередь – протокол IP не имеет контроля за такими ошибками. Поэтому выше располагаются протоколы транспортного уровня (Transport) модели DOD, который соответствует одноименному уровню OSI. Два самых известных протокола транспортного уровня – TCP и UDP. Об их особенностях будет рассказано в материале «Построение сетей от 0 до 1».

Верхний, четвертый уровень DOD охватывает целых три уровня модели OSI (сеансовый, уровень представления и прикладной). Это прикладной уровень, именно на нем расположены протоколы доставки веб-контента (HTTP, HTTPS), файлов (FTP, BitTorrent), электронной почты (POP3, IMAP), а также удаленного администрирования (SSH, Telnet). Все эти, а также многие другие протоколы инкапсулируются в TCP и UDP. Вам интересно, каким образом определяется, по какому протоколу прикладного уровня передается конкретно вот этот сегмент данных TCP или UDP? Тогда читайте дальше.

Порт приписки
Дело в том, что каждому протоколу верхнего уровня приписан определенный порт TCP и / или UDP, реже несколько. Про такое понятие, как порт, слышали многие пользователи компьютерных сетей, но что это такое, не всем известно. Так вот: порт – это номер, который по возможности однозначно (во избежание путаницы) сопоставляется с протоколом верхнего уровня. Сопоставлением портов TCP и UDP с определенными протоколами прикладного уровня занимается IANA (Internet Assigned Numbers Authority, Администрация адресного пространства интернет). Эта организация еще будет упомянута в связи с управлением IP-адресацией.

Каждый сегмент данных TCP или UDP надписывается номером порта получателя и порта отправителя – «обратным адресом», на который приходят ответные пакеты. Например, отправляя пакеты данных по HTTP, программы надписывают их номером порта получателя 80. Номер порта отправителя не стандартизирован – он генерируется автоматически каждый раз при новом соединении и затем используется. Итак, с тем, как разобраться с протоколами прикладного уровня, «седлающими» TCP и UDP, все более или менее ясно. А вот как отличить пакеты TCP и UDP, упакованные в пакеты IP? Оказывается, у TCP, UDP и других менее известных и популярных протоколов транспортного уровня есть номера-идентификаторы – по смыслу типа портов. Они прописываются в IP-пакет, чтобы было ясно, что в него инкапсулировано.

Несколько забегая вперед, добавлю, что к открытию или закрытию тех или иных портов TCP и UDP сводится, по большей части, деятельность файрволлов (брандмауэров). Эти программы, как на компьютерах сети, так и на роутерах и межсетевых шлюзах, служат для защиты от хакерских атак. При этом на шлюзе можно блокировать порты как со стороны интернета, чтобы не допустить прохождения ненужных данных в ЛВС, так и со стороны локалки, если есть необходимость. Можно закрывать и открывать порты для определенных IP-адресов своей сети или их диапазонов. Подробнее об IP-адресах и интернет-шлюзах написано далее, а их практическое применение разобрано в «Практикуме» по сетям.

Мой адрес – не дом и не улица
Как компьютер определяет, по каким протоколам извлекать из IP-пакета сегмент транспортного уровня и согласно какому протоколу прикладного уровня обрабатывать его дальше, мы уже знаем. А вот как пакет информации попадает на нужный компьютер, точнее нужный сетевой интерфейс? Именно для пересылки данных на нужный сетевой интерфейс и служит протокол IP (Internet Protocol). Это протокол сетевого уровня модели OSI и межсетевого – модели DOD. На данный момент больше всего распространена его четвертая версия, однако мир медленно, но верно готовится переходить на более продвинутую шестую. Итак, каким же образом пакет, отправленный с одного сетевого интерфейса, попадает на другой?

В привычной нам четвертой версии протокола адрес сетевого интерфейса имеет вид наподобие 213.180.204.11 – четыре числа от 0 до 255, разделенных точками. На самом деле каждое число от 0 до 255 – это 8 бит, то есть IP-адрес состоит из четырех фрагментов по 8 бит (октетов), а всего из 32 бит. Соответственно, пакет IP содержит IP-адреса получателя и отправителя. В пределах сети каждый сетевой интерфейс снабжается уникальным IP-адресом. То есть в интернете не может быть двух компьютеров с одинаковыми айпишниками, так же, как их не может быть в отдельно взятой локальной сети. При этом в разных локалках могут встречаться сетевые карты с одинаковыми IP-адресами. В интернете они напрямую не видны. Для передачи пакетов IP между разными сетями, например между локалкой и интернетом, используются маршрутизаторы (они же роутеры). О том, как они в общих чертах работают, будет написано ниже.

Для использования в локалках выделено три специальных IP-диапазона: 192.168.0.0-192.168.255.255, 172.16.0.0-172.31.255.255, 10.0.0.0-10.255.255.255. Адреса из этих множеств отличаются тем, что в адресном пространстве глобальной сети интернет они отсутствуют. Это было сделано для того, чтобы при подключении нескольких машин одной локальной сети через общий шлюз (см. его определение ниже) не выделять интернет-адрес на каждую. Благодаря этому адресов IPv4 хватало на всех до самого недавнего времени. Таким образом, при построении локальной сети адреса ее устройствам назначаются из одного из этих множеств, в зависимости от размера ЛВС. В малых офисных и домашних сетях используется диапазон 192.168.0.0-192.168.255.255. В районных часто выдают IP-адреса от 172.16.0.0 и до 172.31.255.255.

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

IP – маршрутизируемый протокол. Это значит, что IP-пакеты могут переходить из одной сети в другую, например из локальной в глобальную и наоборот. Для этого применяются специальные аппаратные и программные средства – маршрутизаторы и межсетевые шлюзы. По идее, это разные вещи, однако на данный момент в малых сетях шлюзами между ЛВС и интернетом служат чаще всего маршрутизаторы, поэтому подробнее остановимся именно на них. Все они умеют направлять входящие пакеты из интернета на нужную машину в локальной сети и, наоборот, адресовать пакеты изнутри ЛВС на нужный сетевой интерфейс в интернете. За этот процесс отвечает механизм трансляции (перевода) сетевых адресов Network Address Transfer (NAT).

При соединении нескольких компьютеров малой офисной или домашней сети с интернетом через маршрутизатор или другой шлюз (см. RSS) машинам и другим устройствам сети выдаются IP-адреса из зарезервированных под эти цели диапазонов (они приведены выше). Их можно либо вручную прописать на каждой машине, либо раздать автоматически. Для раздачи адресов без «рукоприкладства» существует протокол DHCP (Dynamic Host Configuration Protocol, протокол динамической конфигурации узла). Он поддерживается всеми современными ОС (как Windows, так и GNU / Linux, и Mac OS). Во многие, если не во все имеющиеся в продаже, роутеры встраивают DHCP-сервер, автоматически раздающий IP-адреса и другие необходимые настройки сети всем подключающимся к ней компьютерам и другим девайсам (если они сами по себе поддерживают DHCP). При этом админ может без проблем настроить сервер дополнительно, задав диапазон, из которого будут выдаваться адреса. А если все же выдавать IP-адреса (из тех же диапазонов, кстати) вручную, то делать это нужно с умом. И об этом тоже будет рассказано в статье Конструктора.

Имена и номера
Рассмотрев более прицельно настройку локальной сети, а именно выдачу ее устройствам (не только компьютерам, см. RSS) адресов в совокупности с масками подсети, мы отвлеклись от темы глобальных вычислительных сетей. Самое время вернуться к ним, точнее к ней – к сети интернет. Мы узнали, что в локальных сетях используются адреса из специальных множеств, которые не применяются в интернете. А значит, во Всемирной паутине используют другие адреса. Причем делают это не «от балды», а согласно решениям IANA. Эта организация упоминалась выше в связи с припиской портов определенным протоколам прикладного уровня. И она же выдает айпишники крупным региональным регистраторам, которые раздают их более мелким компаниям, а они уже приписывают IP-адреса «большого интернета» конкретным ресурсам. Между прочим, запас свободных IPv4-адресов подошел к концу, и именно из-за этого постепенно внедряют IPv6, в котором адреса имеют длину в 128 бит и пишутся обычно восьмью группами по четыре шестнадцатеричных цифры (от 0 до F).

Но вы наверняка замечали, что при работе в сети обращаетесь к ресурсам по буквенным адресам, а не по IP-адресам. И скорее всего, знаете, что существует система, которая переводит близкие людям буквосочетания в понятные машинам цифровые коды, то есть URL (Uniform Resource Locator, неточный, но адекватный перевод – «единообразный адрес ресурса») в IP-адрес. Сейчас мы попробуем рассмотрим эту систему более детально. Она называется DNS, то есть Domain Name System, система доменных имен. Работой службы DNS в глобальном масштабе управляет ICANN (Internet Corporation for Assigned Names and Numbers, Международная корпорация по присвоенным именам и номерам). Тут господствует принцип той же иерархии, что и при раздаче IP-адресов. ICANN создает домен верхнего уровня и дает региональным регистраторам доменов право присваивать имена более низких уровней в этом домене (начиная со второго) определенным IP-адресам. Что же такое домен? Рассмотрим какой-нибудь адрес сетевого ресурса, например music.yandex.ru. Так вот, это домен третьего уровня. Домен первого уровня – .ru. Домен второго уровня – yandex.ru. Домен некоего уровня интересен тем, что в нем можно разместить несколько доменов более низких уровней, причем тут фантазия ограничена только практическими соображениями, то есть удобством запоминания интернет-адреса.

Итак, для того чтобы выдавать на каждое зарегистрированное в интернете доменное имя соответствующий ему IP-адрес, есть служба DNS. По одноименному с ней протоколу компьютер при вводе URL запрашивает специальный прописанный в его настройках сервер с целью выяснить, к какому IP-адресу обращаться. Сервер DNS ему отвечает, и он может установить соединение. У каждого провайдера есть свой DNS-сервер. Разумеется, он не может держать на своих дисках таблицу соответствия IP-адресам для всех URL в мире. Но для этой благородной и жизненно важной для сети интернет цели есть специальные, очень большие DNS-серверы. Они называются корневыми, и их всего 13 во всем мире. Большинство, кстати, находится в США. Если в кэше DNS-сервера провайдера нет нужной записи, он обращается к серверу более высокого ранга с запросом и добывает ее. Иногда запрос доходит по цепочке и до корневых серверов, и не сказать чтобы редко.

Итак, для выхода в интернет компьютеру необходимо знать IP-адрес DNS-сервера. Провайдер может выдавать его динамически по протоколу DHCP, так же как IP-адрес и некоторые другие настройки, а может просто написать в инструкции в явном виде. Тогда его нужно вбить в подходящее поле настройки сети на роутере (интернет-шлюзе) или конкретном компьютере. Чаще всего провайдер дает адреса двух DNS-серверов, и ввести желательно оба. Можно легко проверить, все ли в порядке с настройками DNS. Для этого надо обратиться к какому-нибудь ресурсу сначала по имени, а потом по IP-адресу. Например, у yandex.ru IP-адрес такой: 213.180.204.11. И если команда ping yandex.ru выдает ошибку, а ping 213.180.204.11 без проблем осуществляется, значит, что-то не так со службой DNS. Либо настройки неактуальны (например, провайдер поменял адрес сервера DNS), либо с самим этим сервером проблемы.

Вперед, в большую сеть!
Для того чтобы вывести машину из ЛВС в интернет, нужен маршрутизатор (роутер) или компьютер, играющий роль шлюза. При ручном, а не автоматическом вводе параметров сети необходимо указать на каждой из машин IP-адрес и маску подсети (подробности см. в «Практикуме»), а также адреса DNS-серверов (их надо выяснить у интернет-провайдера). Хотя DNS вообще-то бывает достаточно указать на роутере (шлюзе). Да, и еще надо указать адрес того самого шлюза. Причем задавать надо его внутренний сетевой адрес. В большинстве домашних и малых офисных сетей, где в качестве шлюза задействован роутер, он такой: 192.168.1.1, ну или похожий.

Однако ни слова не было сказано про настройку самого роутера или шлюза на взаимодействие с интернетом. Но это сделано просто потому, что тут разговор короткий: при подключении к конкретной сети провайдер просто инструктирует вас о том, с какими основными настройками нужно выходить в интернет. В зависимости от протокола, по которому осуществляется доступ в сеть, набор может варьироваться. Рассмотрим несколько популярных вариантов. Если доступ предоставлен через Ethernet (или другой протокол поверх него) со статическими IP, выдается IP-адрес, маска подсети, основной шлюз и адреса DNS. Если связь с глобальной сетью устанавливается по протоколу PPPoE, PPTP или другому, требующему ввода логина и пароля, то возможны два варианта. Первый – когда дело ограничивается парой «логин-пароль», а остальное выдается автоматически по специальным протоколам. Второй вариант – когда кроме этого выдают тот же полный набор статических настроек.

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

О чем боятся спросить
Теперь, когда вы в общих чертах освоились с локальными и глобальными вычислительными сетями на всех уровнях модели DOD, самое время вспомнить некоторые понятия, которые, даром что относятся к теме компьютерных сетей, не были описаны при обсуждении моделей OSI и DOD. И прежде всего это «сервер». Несмотря на то что само это понятие упоминалось в тексте данного материала уже четырнадцать раз, о том, что за ним стоит, не было сказано ни слова. Вообще, как правило, человек, не знающий или неуверенный в том, что такое сервер, предпочитает не спрашивать об этом. Тем более надо объяснить все как можно более четко. Что не так просто. Но я постараюсь.

Существует такая концепция взаимодействия по вычислительной сети: «клиент-сервер». Она сводится к тому, что клиент отправляет серверу запрос, а сервер на него отвечает. То есть клиент заказывает у сервера некую услугу (отсюда название «server», то есть «обслуживающий»). Причем этой услугой может являться что угодно, в зависимости от специализации сервера: IP-адрес в обмен на URL у DNS-сервера, страница сайта в обмен на ее адрес у веб-сервера, файл в обмен на его путь у FTP-сервера. Представили себе? Теперь самый тонкий момент, сродни психологическим и духовным изысканиям: надо четко определить, кто запрашивает услугу, а кто предоставляет. Строго говоря, и то и другое происходит на уровне программного обеспечения. Например, веб-страницы у веб-сервера запрашивает браузер, а файлы у FTP-сервера – клиент FTP. А программа, отвечающая на эти запросы с того конца канала, и называется собственно сервером. Так что же получается, сервер – это чисто софтовое понятие, просто класс программного обеспечения? Конечно, нет.

Дело тут в том, что востребованные клиентами услуги надо предоставлять бесперебойно, в режиме «24/7». Сеть должна работать постоянно. А для этого компьютеры, на которых крутятся предоставляющие услуги программы, должны быть более надежными, чем обычные клиентские машины. К тому же к популярным сетевым сервисам вроде поисковых машин или онлайн-хранилищ видео и музыки одновременно обращаются со всех концов интернета толпы клиентов. А значит, их мощность должна быть настолько большой, чтобы без проблем выдерживать натиск и не «падать». В связи с этим был выделен отдельный класс надежных, мощных и легко масштабируемых (объединяемых друг с другом для увеличения производительности) вычислительных машин. Их, не мудрствуя лукаво, назвали тоже серверами, а теперь из-за этого такая путаница. Но мы все же разобрались, что к чему.

Осталось добавить, что серверы (в смысле ПО) можно ставить и на обычные персональные компьютеры. Мало того, в состав браузера Opera последних версий входит прелюбопытный многоцелевой сервер Unite с простым в освоении интерфейсом. Если вы еще не «поднимали» серверов, можете начать с него. А можете пойти классической стезей – почитать руководства из Сети и запустить на своем ПК веб-сервер Apache. Что с ним делать дальше – тема, выходящая далеко за рамки этого материала (смайл). Кроме отношений «клиент-сервер» в сети встречается принцип «равный-равному» (peer-to-peer). При такой схеме каждый ее участник – и клиент, и сервер, то есть и высылает свои запросы, чтобы пользоваться услугами, и откликается на чужие, предоставляя услуги. Так работают файлообменные протоколы BitTorrent и DC, а также знаменитый сервис Skype.

Время закидывать сети
Теперь вы знаете об устройстве сетей достаточно, для того чтобы адекватно воспринять остальные статьи в этом номере (смайл). Мало того, после знакомства с данной статьей вам будет проще управляться с конкретными локальными сетями, и понятнее будут принципы работы глобальной сети. Далее вас ждут более конкретные сведения о сетевом оборудовании, строении сетей, протоколах и прочих нюансах, но общую картину вы уже видите. Не подробную, зато масштабную и иерархически упорядоченную. Эти знания помогут вам, если вы соберетесь создавать или администрировать сеть. Конечно, их не хватит, и надо будет обязательно прочесть более подробные руководства. Однако будет хотя бы понятно, о чем в них идет речь. Как видите, все устроено максимально просто и красиво – а то, что все сложно выглядит на первый взгляд, это результат в основном огромного масштаба и разнообразия глобальной сети. Основные, базовые принципы и концепции тут, в сущности, нехитрые, и они вполне поддаются освоению. UP

2 комментария

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

Читал другие статьи, но именно Ваш язык мне показался доступным для любого читателя, а это дорогого стоит, спасибо от возрастной категории Вам большое!!!