Главная » 2013 » Декабрь » 12 » 1.7. Что такое сервер? (или Курс Молодого Администратора)
01:42
1.7. Что такое сервер? (или Курс Молодого Администратора)

Эта глава предназначена для начинающих системных администраторов, которые вообще с трудом представляют, что такое сервер и с чем его едят. Я принципиально не буду называть таких читателей «чайниками», поскольку сам когда‑то таким был. В этой главе я попытаюсь вкратце объяснить некоторые термины, которые связаны с сетью (я имею в виду компьютерной!), а также с протоколом TCP/IP. Эту главу можно рассматривать как своеобразный курс молодого бойца (администратора). Сразу нужно отметить, что углубляться в технические подробности мы не станем – для этого существует множество другой литературы, например, «Компьютерные сети. Принципы, технологии, протоколы» В. Г. Олифера.

1.7.1. Архитектура сети: одноранговая и клиент/сервер

Начнем с самого главного – архитектуры сети. Существуют две основные архитектуры сети: одноранговая (peer‑to‑peer) и клиент/сервер (client/ server), причем вторая практически вытеснила первую. В одноранговой сети все компьютеры равны – имеют один ранг. Любой компьютер может выступать как в роли сервера, то есть предоставлять свои ресурсы (файлы, принтеры) другому компьютеру, так и в роли клиента, другими словами – использовать предоставленные ему ресурсы. Одноранговые сети преимущественно распространены в домашних сетях или небольших офисах. В самом простом случае для организации такой сети нужно всего лишь пара компьютеров, снабженных сетевыми платами и коаксиальный кабель (нужна еще пара терминаторов (заглушек), но я обещал сильно не углубляться).

Когда сеть создана физически (компьютеры связаны с помощью коаксиального кабеля), нужно настроить сеть программно. Для этого необходимо, чтобы на компьютерах были установлены сетевые операционные системы (Linux, FreeBSD, Windows NT, Windows 98) или сетевые системы с поддержкой сетевых функций (Windows 95, Windows for Workgroups).

Компьютеры в одноранговой сети объединяются в рабочие группы. Каждая рабочая группа имеет свой идентификатор – имя рабочей группы. Если вы сейчас работаете в Windows 9x, узнать имя рабочей группы вы можете, запустив апплет Сеть с Панели управления (см. рис. 1.4).

Рис. 1.4. Идентификатор рабочей группы в ОС Windows 9x

Для примера допустим, что в вашей одноранговой сети три компьютера А, В, С. Первые два входят в рабочую группу WG1, а компьютер С – в рабочую группу WG2 (см. рис. 1.5).

Рис. 1.5. Схема одноранговой сети

Даже несмотря на то, что компьютеры входят в один сегмент сети (физически подключены к одному кабелю), компьютеры А и В не будут «видеть» компьютер С, а компьютер С не будет видеть компьютеры А и В. Если выполнить команду поиска компьютера в Windows 9x (Пуск→Поиск→Найти компьютер), компьютер «увидит» компьютеры А и В, но будет сообщено, что они находятся в другой рабочей группе – WG1.

Единственное ограничение доступа, которое возможно в одноранговой сети, это использование пароля для доступа к какому‑нибудь ресурсу. Для того, чтобы получить доступ к этому ресурсу, например, принтеру, нужнознать пароль. Это называется управлением доступом на уровне ресурсов. В сети клиент/сервер используется другой способ управления доступом – на уровне пользователей. В этом случае можно разрешить доступ к ресурсу только определенным пользователям. Например, ваш компьютер А через сеть могут использовать два пользователя: Иванов и Петров. К этому компьютеру подключен принтер, который можно использовать по сети. Но вы не хотите, чтобы кто угодно печатал на вашем принтере, и установили пароль для доступа к этому ресурсу. Если у вас одноранговая сеть, то любой, кто узнает этот пароль, сможет использовать ваш принтер. В случае с сетью клиент/сервер вы можете разрешить использовать ваш принтер только Иванову или только Петрову (можно и обоим).

Для получения доступа к ресурсу в сети клиент/сервер пользователь должен ввести свой уникальный идентификатор – имя пользователя (login – логин) и пароль (password). Логин пользователя является общедоступной информацией и это правильно: возможно, если кто‑нибудь захочет отправить пользователю сообщение по электронной почте, то для этого ему достаточно знать его логин (естественно, и имя сервера электронной почты, который «знает» этого пользователя).

Использование логина и пароля для доступа к ресурсам называется Аутентификацией пользователя (user authentication). Существуют и другие виды аутентификации, например, аутентификация источника данных или однорангового объекта, но сейчас мы рассматривать их не будем. В любом случае, Аутентификация – это проверка подлинности.

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

В отличие от одноранговой сети, в сети клиент/сервер существует один или несколько главных компьютеров – серверов. Все остальные компьютеры сети называются клиентами или рабочими станциями (workstations). Как я уже писал выше, Сервер – это специальный компьютер, который предоставляет определенные услуги другим компьютерам. Существуют различные виды серверов (в зависимости от предоставляемых ими услуг): серверы баз данных, файловые серверы, серверы печати (принт‑серверы), почтовые серверы, Web‑серверы и т. д.

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

Функции и программное обеспечение сервера Таблица 1.1

Функция

Программное обеспечение

Дистрибутив

Глава

Авторизация удаленных пользователей (dialup)

Пакет ррр

Да

17

Автоматическое конфигурирование узлов сети

Dhcp

Да

8

Доступ (совместный) к файлам

NFS, FTPd (ProFTPD, wu‑ftpd)

Да

8, 13

Доступ к сети Microsoft

Пакет samba

Да

9

Кэширование передаваемой информации

Пакет Squid

Да

15

Маршрутизация

Route(d)

Да

8, 14

Обмен сообщениями электронной почты

Пакеты sendmail (или postfix/qmail) и imap

Да (Да/Нет), Да

13

Подсчет передаваемого по сети трафика

Ядро Linux, IPChains

Да

8, 14

Передача секретной информации

ModSSL

Да (не во всех дистрибутивах)

12

Разрешение (резолвинг) имени компьютера в IP‑адрес

Пакет bind

Да

10

Сетевая печать

Lpd, Samba, CUPS

Да

6, 9

Функции Web‑сервера

Пакет apache

Да

12

Фильтрация пакетов

IPChains (IPTables в новых версиях Linux)

Да

14

Управление базой данных

MySQL / PostgreSQL / InterBase

Да / Да / Не во всех

16

IP‑Маскарадинг

IPChains

Да

14

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

Для экономии средств, как правило, один сервер сочетает в себе функции нескольких серверов, например, почтовик может быть также и Web‑сервером. Услуги, которые может предоставлять сервер, ограничиваются только его физическими возможностями – чем мощнее сервер, тем больше услуг и с большим качеством он может предоставлять, поэтому в качестве сервера выбирается довольно мощный компьютер. Хотя эта формула (чем мощнее, тем лучше) не всегда оправдана, например, если ваш сервер используется для предоставления доступа к Интернет небольшой сети, то в этом случае с поставленной задачей прекрасно справится старенький 486DX/66 – 32 Мб ОЗУ. Однако, если вы являетесь Интернет‑провайдером, то есть предоставляете коммерческий доступ к сети Интернет, такой конфигурации будет явно недостаточно.

Хотя установке Linux посвящена вторая глава, в которой подробно расписаны все рекомендуемые конфигурации, уже сейчас отмечу, что в случае с Linux‑сервером объем оперативной памяти более критичен, чем частота процессора. Поэтому, если у вас есть возможность установить больше оперативной памяти, установите – не пожалеете.

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

1.7.2. Протокол и интерфейс

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

Из рис. 1.6 видно, что средства, которые обеспечивают взаимодействие модулей разных уровней в рамках Одной системы (например, В1 и В2), называются интерфейсом, а средства, обеспечивающие взаимодействие компонент одного уровня Разных систем (например, А1 и В1), называются протоколом. Протокол и интерфейс можно сравнить еще и так: разговор двух директоров разных предприятий можно назвать протоколом, а разговор директора и подчиненного одного предприятия можно считать интерфейсом. Как вы уже догадались, разговор сотрудников разных предприятий будет протоколом.

Рис. 1.6. Протоколы и интерфейсы

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

Самым главным – святыней всех святынь – является протокол TCP/IP. TCP/IP (Transmission Control Protocol/Internet Protocol – Протокол Управления Передачей/Интернет‑протокол) – это базовый транспортный сетевой протокол. На этом протоколе основана вся сеть Интернет.

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

FTP (File Transfer Protocol) – протокол передачи файлов. Служит для обмена файлами между системами. Например, вам нужно передать файл на сервер или, наоборот, скачать файл с сервера. Для этого вам нужно подключиться к файловому серверу (он же FTP‑сервер) и выполнить необходимую вам операцию. Подключение осуществляется с помощью FTP‑клиента. Простейший FTP‑клиент входит в состав практически любой операционной системы. Обычно для запуска FTP‑клиента нужно ввести команду ftp.

HTTP (Hyper Text Transfer Protocol) – протокол обмена гипертекстовой информацией, то есть документами HTML. Протокол HTTP используется Web‑серверами. HTTP‑клиенты называются браузерами.

POP (Post Office Protocol) – протокол почтового отделения. Этот протокол используется для получения электронной почты с почтовых серверов. А для передачи электронной почты служит протокол SMTP (Simple Mail Transfer Protocol) – протокол передачи сообщений электронной почты.

Раз уж затронули тему почтовых протоколов, давайте разберемся, как происходит чтение и отправление почты. Для получения сообщений пользователь соединяется с POP‑сервером, сообщает ему свое Имя пользователя и Пароль, и, если аутентификация прошла успешно, получает сообщения. Обратите внимание, что пользователь именно Получает сообщения, а не просматривает их. Прочитать сообщение пользователь может только после его загрузки на свой компьютер. Обычно полученные сообщения удаляются на сервере, но это зависит от настроек почтового клиента пользователя. Почтовый клиент – это программа, которая выполняет все операции по работе с электронной почтой. Самыми распространенными почтовыми клиентами являются The Bat!, Outlook, Outlook Express, Netscape Messenger, KMail.

Для передачи сообщения пользователь просто соединяется с SMTP‑сервером и передает сообщение. При этом никакой аутентификации не происходит, хотя можно настроить сервер так, что он будет запрашивать имя пользователя и пароль перед началом передачи сообщения на сервер. Настройке SMTP‑аутентификации посвящен п. 13.2 этой книги. После передачи сообщения на сервер SMTP оно становится в очередь. Через определенное время это сообщение передается нужному POP‑серверу, который принимает сообщение. Потом сообщение может получить пользователь, для которого оно предназначено. Если же сервер SMTP не может отправить сообщение (например, нужный POP‑сервер не существует или недоступен, или же адресат не зарегистрирован на этом сервере POP), письмо возвращается отправителю.

Для чтения почты существует и другой протокол – IMAP. Его отличие от протокола POP состоит в том, что пользователь читает сообщения электронной почты, не загружая их на свой компьютер. Все сообщения хранятся на сервере. При удалении сообщения оно удаляется с сервера. SLIP (Serial Line Internet Protocol) – протокол подключения к сети Интернет по последовательной линии. Используется для установления связи с удаленными узлами через низкоскоростные последовательные интерфейсы. В настоящее время вытеснен протоколом РРР и практически не используется. РРР (Point‑to‑Point Protocol) обеспечивает управление конфигурацией, обнаружение ошибок и повышенную безопасность при передаче данных на более высоком уровне, чем протокол SLIP. Поэтому при настройке сервера рекомендуется использовать именно этот протокол. Протокол PPP рассмотрен в RFC 1547 и RFC 1661.

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

В начале 80‑х годов международной организацией по стандартизации (ISO – International Organization for Standardization) была разработана Модель взаимодействия открытых систем (OSI – Open System Interconnection). В другой литературе вы можете встретить и другие названия этой модели: сокращенное – модель OSI или более полное – семиуровневая модель взаимодействия открытых систем OSI. Средства взаимодействия (см. рис. 1.7) в модели OSI делятся на семь уровней:

1. Физический.

2. Канальный.

3. Сетевой.

4. Транспортный.

5. Сеансовый.

6. Представительный.

7. Прикладной.

Рис. 1.7. Модель OSI

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

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

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

Рассмотрим взаимодействие двух компьютеров более подробно на примере файловой службы. Допустим, нам (компьютер 1) нужно записать какую‑нибудь информацию в файл на удаленном компьютере 2. Обычное сообщение состоит из заголовка и поля данных. В заголовке содержится различная служебная информация. Как изменяется заголовок видно из рис. 1.7. Например, в заголовке может содержаться информация о нашем компьютере (его адрес), компьютере получателя, а также имя и расположение файла, в который нужно записать информацию. Поле данных может быть и пустым, но в нашем случае, очевидно, содержит информацию, которую нужно записать в файл.

Приложение (процесс 1) формирует стандартное сообщение, которое передается прикладному уровню. Точнее, процесс 1 работает на прикладном уровне.

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

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

Физический уровень (Physical Layer)

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

Функции физического уровня реализуются сетевым адаптером или последовательным портом. Примером протокола физического уровня может послужить спецификация 100Base‑TX (технология Ethernet).

Канальный уровень (Data link Layer)

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

Этот уровень выполняет адресацию по физическим адресам (МАС‑адресам), «вшитым» в сетевые адаптеры предприятием‑изготовителем. Каждый сетевой адаптер имеет свой Уникальный МАС‑адрес, то есть вы не найдете две сетевые платы с одним и тем же МАС‑адресом.

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

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

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

• Общая шина.

• Кольцо.

• Звезда.

Рис. 1.8. Основные топологии локальных компьютерны хсетей

Протоколы канального уровня используются компьютерами, мостами, маршрутизаторами. Глобальные сети (в том числе и Интернет) редко обладают регулярной топологией, поэтому канальный уровень обеспечивает связь только между компьютерами, соединенными индивидуальной линией связи. При этом для доставки данных через всю глобальную сеть используются средства сетевого уровня (протоколы «точка‑точка»). Примерами протоколов «точка‑точка» могут послужить РРР, LAP‑B.

Сетевой уровень (Network Layer)

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

Протоколы канального уровня передают кадры между узлами только в рамках сети с соответствующей топологией. Проще говоря – в рамках одной сети.

Нельзя передать кадр канального уровня узлу, который находится в другой сети. Данное ограничение не позволяет строить сети с развитой структурой или сети с избыточностью связей. Построить одну Большую сеть также невозможно из‑за физических ограничений. К тому же даже если построить довольно большую сеть (например, спецификация 10Base‑T позволяет использовать 1024 узла в одном сегменте), производительность данной сети не будет вас радовать. Более подробно о причинах разделения сети на подсети и возникающих при этом трудностях мы поговорим немного позже, а сейчас продолжим рассматривать сетевой уровень.

На сетевом уровне термин Сеть следует понимать как совокупность компьютеров, которые соединены в соответствии с одной из основных топологий и использующих для передачи данных один из протоколов канального уровня.

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

Сообщения на сетевом уровне называются пакетами. На сетевом уровне работают несколько видов протоколов. Прежде всего – это сетевые протоколы, которые обеспечивают передвижение пакетов по сети, в том числе в другую сеть. Поэтому довольно часто к сетевому уровню относят протоколы маршрутизации (routing protocols) – RIP и OSPF.

Еще одним видом протоколов, работающих на сетевом уровне, являются протоколы разрешения адреса – Address Resolution Protocol (ARP). Хотя эти протоколы иногда относят и к канальному уровню.

Классические примеры протоколов сетевого уровня: IP (стек TCP/IP), IPX (стек Novell).

Транспортный уровень (Transport Layer)

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

1. Срочность.

2. Восстановление прерванной связи.

3. Наличие средств мультиплексирования нескольких соединений.

4. Обнаружение ошибок.

5. Исправление ошибок.

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

Примеры протоколов транспортного уровня: TCP и UDP (стек TCP/IP), SPX (стек Novell).

Сеансовый уровень (Session Layer)

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

Сеанс – это логическое соединение между компьютерами. Каждый сеанс имеет три фазы:

1. Установление соединения. Здесь узлы «договариваются» между собой о протоколах и параметрах связи.

2. Передача информации.

3. Разрыв связи.

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

Представительный уровень (Presentation Layer)

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

Пример протокола представительного уровня: SSL (Secure Socket Layer). Данный протокол обеспечивает секретный обмен данными.

Прикладной уровень (Application Layer)

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

Примеры протоколов: HTTP, FTP, TFTP, SMTP, POP, SMB, NFS.

Интернет и модель OSI

При взаимодействии открытой системы и Интернет модель OSI упрощается, так как некоторые протоколы Интернет включают в себя функции нескольких уровней. Если к сети Интернет подключается один пользователь, а не вся сеть, то автоматически исчезают канальный и физический уровни, потому что нет сетевых адаптеров, а значит, нет и физических адресов. В данном случае конечным протоколом будет протокол типа «точка‑точка», например, РРР. В этот протокол будут вложены все остальные.

1.7.3. Протокол TCP/IP

В этом разделе давайте рассмотрим, как передается информация в TCP/IP‑сети. Любая информация передается небольшими порциями, которые называются пакетами. Если нужный объем информации нельзя передать одним пакетом, он разбивается на части. В заголовке каждого пакета указывается IP‑адрес отправителя и IP‑адрес получателя, а также номер порта.

Любому компьютеру в IP‑сети (TCP/IP‑сети) назначен уникальный адрес, который называется IP‑адресом. IP‑адрес – это 32‑разрядное число, которое принято записывать в десятеричном или шестнадцатиричном формате в виде четырех чисел, разделенных точками, например:

1. 111.111.213.232

2. 127.0.0.1

3. 192.168.9.2

При условии, что ваша сеть подключена к Интернет, протокол TCP/IP обеспечивает работу вашей сетевой программы с любым компьютером в мире, как будто тот находится в локальной сети. Уникальность IP‑адреса достигается достаточно просто – IP‑адреса назначаются централизованно Сетевым Информационным Центром (Nic , Network Information Center).

Для понимания остальной информации нужно отметить, что существуют локальные (LAN, Local Area Networks) и региональные (Wide Area Networks) сети. Сеть Интернет сначала была региональной (Arpanet), а потом стала глобальной, объединив все региональные сети мира. Если ваша локальная (или даже региональная) сеть не соединена с Интернет, то внутри сети вы можете использовать любые IP‑адреса без согласования с NIC. Обычно в локальных сетях используются особые IP‑адреса, о которых мы поговорим немного позже.

Любую сеть, независимо от типа – LAN или WAN, можно разделить на подсети. Причины разбиения сети на подсети кроются в ранних версиях протокола IP. Тогда существовало несколько сетей класса А, содержащих несколько миллионов узлов (о классах читайте далее). Помимо всего прочего, в таких сетях очень велика вероятность коллизий, то есть одновременного доступа двух или более узлов к среде передачи данных. Управлять такой сетью крайне неудобно, да и сеть будет перегружена собственным трафиком. Поэтому основной принцип разделения – «разделяй и властвуй».

К другим причинам разделения относят создание маленьких подсетей с использованием разных технологий – Ethernet, Token Ring, FDDI, ATM. Вы не можете смешивать эти технологии в одной сети, однако они могут быть взаимосвязаны с помощью разделения на подсети.

Разделение на подсети может быть также произведено из соображений безопасности. Более подробно об этой и других причинах разделения сети на подсети вы можете прочитать в руководстве IP Sub‑networking‑HOWTO, которое вы найдете на прилагаемом компакт‑диске.

Как я уже писал, каждый компьютер в сети имеет свой уникальный адрес. Но оказывается, что и сеть (подсеть) также имеет свой уникальный адрес. Под сетью можно понимать «пачку» IP‑адресов, идущих подряд, то есть 192.168.1.0…192.168.1.255. Самый младший и самый старший адреса резервируются. Младший (192.168.1.0) является адресом сети, а старший является широковещательным (broadcast) адресом сети. Адрес сети может потребоваться, когда нужно указать всю сеть (подсеть), например, при задании маршрутизации для этой сети.

Представьте, что у вас есть две отдельных сети и вам нужно объединить их в одну. Тогда эта одна «большая» сеть станет называться сетью, а две «маленькие» – подсетями. Устройство, которое будет обеспечивать связь этих сетей (маршрутизацию), называется, как уже было отмечено выше, маршрутизатором. Маршрутизатор может быть как аппаратным (отдельное устройство), так и программным.

В роли программного маршрутизатора может выступать любой компьютер с двумя (или более) сетевыми интерфейсами, например, двумя сетевыми платами. В качестве операционной системы может быть установлена любая сетевая операционная система, поддерживающая перенаправление пакетов IPv4‑Forwarding. Такой операционной системой может быть Linux, FreeBSD, любая UNIX‑система, Windows NT/2000. Маршрутизатор можно настроить и на базе Windows 98, но делать это я не рекомендую, поскольку вряд ли он будет работать надежно. Традиционно в роли маршрутизатора используются UNIX‑системы, к которым относится и Linux.

Широковещательный адрес используется для передачи сообщений «всем – всем – всем» в рамках сети, то есть когда нужно передать сообщение (пакет) сразу всем компьютерам сети. Широковещательные запросы очень часто используются, например, для построения ARP‑таблиц.

Для каждой подсети определена ее маска. Фактически, маска – это размер сети, то есть число адресов в сети. Маску принято записывать в десятично‑побайтном виде:

255.255.255.0

Маска на 256 адресов (0…255);

255.255.255.192

Маска на 64 адреса (192…255);

255.255.0.0

Маска на 65536 адресов (256*256).

В общем случае IP‑сети делятся на пять классов: А, В, С, D и Е.

Сети класса А – это огромные сети. Маска сети класса А: 255.0.0.0. В каждой сети такого класса может находиться 16777216 адресов. Адреса таких сетей лежат в промежутке 1.0.0.0…126.0.0.0, а адреса хостов (компьютеров) имеют вид 125.*.*.*

Сети класса В – это средние сети. Маска такой сети – 255.255.0.0. Эта сеть содержит 65536 адресов. Диапазон адресов таких сетей 128.0.0.0…191.255.0.0. Адреса хостов имеют вид 136.12.*.*

Сеть класса С – маленькие сети. Содержат 256 адресов (на самом деле всего 254 хоста, так как номера 0 и 255 зарезервированы). Маска сети класса С – 255.255.255.0. Интервал адресов: 192.0.1.0…223.255.255.0. Адреса хостов имеют вид: 195.136.12.*

Класс сети определить очень легко. Для этого нужно перевести десятичное представление адреса сети в двоичное. Например, адрес сети 128.11.1.0 в двоичном представлении будет выглядеть так:

10000000 00001011 00000001 00000000

А сети 192.168.1.0:

11000000 10101000 00000001 00000000

Если адрес начинается с последовательности битов 10, то данная сеть относится к классу В, а если с последовательности 110, то – к классу С.

Если адрес начинается с последовательности 1110, то сеть является сетью класса D, а сам адрес является особым – групповым (multicast). Если в пакете указан адрес сети класса D, то этот пакет должны получить все хосты, которым присвоен данный адрес.

Адреса класса Е зарезервированы для будущего применения. В табл. 1.2 приведены сравнительные характеристики сетей классов А, В, С, D и Е.

Характеристики сетей различных классов Таблица 1.2

Класс

Первые биты

Диапазон адресов

Количество узлов

А

0

1.0.0.0…126.0.0.0

16777216 (224)

В

10

128.0.0.0…191.255.0.0

65536 (216)

С

110

192.0.1.0…223.255.255.0

256 (28)

D

1110

224.0.0.0...239.255.255.255

Multicast

Е

11110

240.0.0.0…247.255.255.255

Зарезервирован

Теперь самое время немного сказать о специальных адресах, о которых я упомянул немного выше. Если весь IP‑адрес состоит из нулей (0.0.0.0), то значит, что он обозначает адрес того узла, который сгенерировал этот пакет.

Адрес 255.255.255.255 – это широковещательный адрес. Пакет с таким адресом будет рассылаться всем узлам, которые находятся в той же сети, что и источник пакета. Это явление называется ограниченным широковещанием. Существует также другая рассылка, которая называется широковещательным сообщением. В этом случае вместо номера узла стоят все единицы в двоичном представлении (255). Например, 192.168.2.255. Это означает, что данный пакет будет рассылаться всем узлам сети 192.168.2.0.

Особое значение имеет IP‑адрес 127.0.0.1 – это адрес локального компьютера. Он используется для тестирования сетевых программ и взаимодействия сетевых процессов. При попытке отправить пакет по этому адресу данные не передаются по сети, а возвращаются протоколам верхних уровней, как только что принятые. При этом образуется как бы «петля». Этот адрес называется loopback. В IP‑сети запрещается использовать IP‑адреса, которые начинаются со 127. Любой адрес подсети 127.0.0.0 относится к локальному компьютеру, например: 127.0.0.1, 127.0.0.5, 127.77.0.6.

Существует также специальные адреса, которые зарезервированы для несвязанных локальных сетей – это сети, которые используют протокол IP, но не подключены к Интернет. Вот эти адреса:

10.0.0.0 (сеть класса А, маска сети 255.0.0.0).

172.16.0.0…172.31.0.0 (16 сетей класса В, маска каждой сети 255.255.0.0).

192.168.0.0…192.168.255.0 (256 сетей класса С, маска каждой сети 255.255.255.0).

В этой книге я старался использовать именно такие адреса, чтобы не вызвать пересечение с реальными IP‑адресами.

1.7.4.Системадоменныхимен–DNS

Для того чтобы подключиться к какому‑нибудь другому компьютеру, например, Web‑серверу, нужно знать его IP‑адрес. Это не очень удобно, потому что человеку намного проще запомнить символьное название сервера, чем последовательность чисел. Представьте, что вместо http://www. romb. net в окне браузера вам нужно было бы вводить http://62.244.59.193. Оба способа будут работать, но первый запоминается намного проще. Фактически, нужно запомнить только слово из четырех букв – romb, a www и net – это «само собой». Компьютеру же, наоборот, проще обрабатывать числа, а не символьную информацию.

Для преобразования IP‑адреса в символьное имя и обратно используется служба доменных имен – DNS (Domain Name System). Обычно на любом сервере устанавливается своя служба DNS, даже если этот сервер не поддерживает домена. В отличие от одноранговой сети, в IP‑сети компьютеры объединяются в домены, а не в рабочие группы. На самом деле, понятие домен гораздо шире, чем рабочая группа, но пока остановимся на таком определении.

Предположим, адрес Web‑сервера вашего подразделения выглядит так: http://www. department. firma. isp. ru. Рассмотрим, что происходит, когда пользователь вводит в окне браузера этот адрес. Сначала отправляется запрос на разрешение (преобразование) имени в IP‑адрес серверу DNS, который принадлежит провайдеру пользователя. Если такое имя есть в кэше DNS‑сервера провайдера (для определенности назовем его user‑dns), он возвращает IP‑адрес и браузер устанавливает соединение с этим компьютером. Если же такого адреса в кэше сервера DNS не оказалось, DNS‑сервер провайдера обращается к серверу, который содержит домен наивысшего уровня, то есть к корню дерева (см. рис. 1.9). Тот обращается к домену ru (этот сервер пусть называется ru‑dns). Сервер ru‑dns в свою очередь обращается к серверу, который делегирует домен isp (это ваш провайдер). Сервер isp обращается к серверу, который делегирует (администрирует) домен firma, а он уже к серверу, отвечающему за домен department, который и возвращает IP‑адрес компьютера www. department. firma. isp. ru. Таким образом, получается своеобразная цепочка. Ясно, что если эта цепочка оборвется на каком‑нибудь звене, то пользователю, точнее, серверу DNS user‑dns, будет сообщено о невозможности разрешения имени компьютера в IP‑адрес.

Рис. 1.9. Иерархическая структура системы доменных имен

Вся структура службы DNS является иерархической. Существуют домены первого, второго, третьего, n‑го уровней. В рассмотренном примере доменом первого уровня является ru, isp – второго, firma – третьего, а department – четвертого уровня (см. рис. 1.9).

Корневой домен управляется центром InterNIC. Домены верхнего (первого) уровня назначаются для каждой страны (см. табл. 1.3).

Обозначения стран по стандарту ISO 3166 Таблица 1.3

Домен

Страна

Домен

Страна

Ru

Россия

Ua

Украина

By

Белоруссия

It

Литва

Iv

Латвия

Ее

Эстония

Md

Молдова

Kz

Казахстан

Tr

Турция

Ro

Румыния

Iq

Ирак

Ir

Иран

Il

Израиль

Tm

Туркменистан

Pl

Польша

It

Италия

Es

Испания

Gb

Великобритания

Fr

Франция

De

Германия

Id

Индонезия

Vn

Вьетнам

Gr

Греция

Va

Ватикан

At

Австрия

Co

Колумбия

Hu

Венгрия

Mx

Мексика

Для США и Канады единый домен отсутствует, но иногда используется обозначение us. Обозначения стран соответствуют международному стандарту ISO 3166. Данные сведения могут быть получены по адресу ftp:/ftp. ripe. net/iso3166‑countrycodes.

Для различных типов организаций могут использоваться такие обозначения:

com

Коммерческие организации (например, yahoo. com).

Edu

Образовательные учреждения (например, mit. edu).

Gov

Правительственные организации (например, nasa. gov).

Org

Некоммерческие организации (например, linux. org).

Net

Обычно провайдеры (например, ukr. net).

По данным ISC (Internet Software Consortium) по состоянию на январь 2002 года зарегистрировано около 150 миллионов узлов сети Интернет (см. рис. 1.10). Данные сведения публикуются с разрешения ISC.

Рис. 1.10 Динамика роста узлов в сети Интернет

1.7.5. Многоуровневая архитектура стека TCP/IP

Этот пункт книги является необязательным: если вы считаете, что у вас уже достаточно знаний о протоколе TCP/IP, то можете перейти к следующим разделам, а к этому вернуться позже. Здесь будет описана многоуровневая архитектура протокола TCP/IP – для большего понимания происходящего.

Вначале давайте рассмотрим историю создания протокола TCP/IP. Протокол TCP/IP был создан в конце 60‑х – начале 70‑х годов агентством DARPA Министерства Обороны США (U. S. Department of Defense Advanced Research Projects Agency). Основные этапы развития этого протокола отмечены в табл. 1.4.

Этапы развития протокола TCP/IP Таблица 1.4

Год

Событие

1970

Введен в использование протокол NCP (Network Control Protocol) для узлов сети Arpanet

1972

Вышла первая спецификация Telnet (см. RFC 318)

1973

Введен протокол FTP (RFC 454)

1974

Программа TCP (Transmission Control Program)

1981

Опубликован стандарт протокола IP (RFC 791)

1982

Объединение протоколов TCP и IP в одно целое – TCP/IP

1983

Сеть Arpanet переведена на протокол TCP (ранее использовался протокол NCP)

1984

Введена доменная система имен DNS

Как вы видите, все стандарты Интернет‑протоколов опубликованы в документах RFC. Документы RFC (Request For Comments) – это запрос комментариев. В этих документах описывается устройство сети Интернет.

Документы RFC создаются сообществом Интернет (Internet Society, ISOC). Любой член ISOC может опубликовать свой стандарт в документе RFC. Документы RFC делятся на пять типов:

Требуется (Required)

Данный стандарт должен быть реализован на всех основных узлах TCP/IP.

Рекомендуется (Recommended)

Обычно такие спецификации RFC также реализуются

Выборочно (Elective)

Реализация не обязательна.

Ограниченное использование (Limited use)

Не рекомендуется для всеобщего применения.

Не рекомендуется (Not recommended)

Не рекомендуется.

Все необходимые документы RFC вы найдете на прилагаемом компакт‑диске.

Протоколы семейства TCP/IP можно представить в виде модели, состоящей из четырех уровней: прикладного, основного, межсетевого и сетевого (см. рис. 1.11).

Уровень 1

Прикладной уровень (уровень приложения, Application Layer)

Уровень 2

Основной (транспортный) уровень (Transport Layer)

Уровень 3

Межсетевой уровень (уровень Internet, Internet Layer)

Уровень 4

Уровень сетевых интерфейсов (Network Interface Layer)

Рис. 1.11. Уровни стека протоколов TCP/IP

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

Уровень сетевого интерфейса

Данный уровень лежит в основании всей модели протоколов семейства TCP/IP. Уровень сетевого интерфейса отвечает за отправку в сеть и прием из сети кадров, которые содержат информацию. Кадры передаются по сети как одно целое. Кадр (frame) – это единица данных, которыми обмениваются компьютеры в сети Ethernet. Для обозначения блоков данных определенных уровней используют термины кадр (frame), пакет (packet), дейтаграмма (datagram), сегмент (segment). Все эти термины обозначают транспортируемые отдельно блоки данных и их можно считать синонимами. Название блока пересылаемых данных изменяется в зависимости от уровня (см. рис. 1.12).

Рис. 1.12. Пересылка блока данных в стеке протоколов TCP/IP

Межсетевой уровень

Протоколы Интернет инкапсулируют блоки данных в пакеты (дейтаграммы) и обеспечивают необходимую маршрутизацию. К основным Интернет‑протоколам относятся:

IP (Internet Protocol)

Предназначен для отправки и маршрутизации пакетов.

ARP (Address Resolution Protocol)

Используется для получения МАС‑адресов (аппаратных адресов) сетевых адаптеров.

ICMP (Internet Control Message Protocol)

Предназначен для отправки извещений и сообщений об ошибках при передаче пакетов.

IGMP (Internet Group Management Protocol)

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

RIP (Route Internet Protocol) и OSPF (Open Shortest Path First)

Протоколы маршрутизации.

На этом уровне реализуется передача пакетов без установки соединения – дейтаграммным способом. Межсетевой уровень обеспечивает перемещение пакетов по сети с использованием наиболее рационального маршрута (протокол OSPF). Основная функция межсетевого уровня – передача пакетов через составную сеть, поэтому этот уровень также называется уровнем Интернет.

Транспортный (основной) уровень

Данный уровень обеспечивает сеансы связи между компьютерами. Существует два транспортных протокола: TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Протокол TCP ориентирован на установление соединения, то есть перед передачей данных компьютеры «договариваются» между собой. Обычно по этому протоколу передаются большие объемы данных или данные, для которых требуется подтверждение их приема. Этот протокол используется большинством сетевых приложений, так как обеспечивает достаточную надежность при передаче данных.

Протокол UDP не ориентирован на соединение и не гарантирует доставку пакетов (дейтаграмм). Однако протокол UDP является более быстродействующим по сравнению с TCP. Обычно по этому протоколу передаются небольшие объемы данных. Ответственность за доставку данных несет сетевая программа.

Уровень приложений

Данный уровень является вершиной модели TCP/IP. На этом уровне работают практически все распространенные утилиты и службы: DNS, Telnet, WWW, Gopher, WAIS, SNMP, FTP, TFTP, SMTP, POP, IMAP.

В качестве завершения данного пункта рассмотрим соответствие уровней стека протокола TCP/IP семиуровневой модели OSI (см. табл. 1.5).

Соответствие уровней стека TCP/IP модели OSI Таблица 1.5

Уровень модели OSI

Протокол

Уровень стека TCP/IP

7, 6

WWW (HTTP), FTP, TFTP, SMTP, POP, telnet, WAIS, SNMP

1

5, 4

TCP, UDP

2

3

IP, ICMP, RIP, OSPF, ARP

3

2, 1

Ethernet, PPP, SLIP

4

В следующем пункте рассмотрено такое важное понятие протокола TCP/IP как порт. В том же пункте будут рассмотрены структуры пакетов IP и TCP, поскольку рассмотрение этого материала без введения определения порта не имеет смысла.

1.7.6. Порты и демоны

Дальнейшее изложение материала построено, исходя из того, что вы уже знаете, что такое сервер и какие службы вам придется настраивать. В пункте Как устроена книга (п. 1.5) было подробно описано, в каких главах описана настройка той или иной службы. Здесь же давайте рассмотрим некоторые базовые понятия, каковыми являются понятие «демон» и «порт».

Как уже было отмечено, в заголовке каждого пакета указывается IP‑адрес отправителя и IP‑адрес получателя, а также номер порта. С IP‑адресом отправителя и получателя все понятно, осталось сказать, что же такое порт. Дело в том, что сразу несколько приложений на одном компьютере могут осуществлять обмен данными через сеть. При этом, если в качестве адресата указывать только IP‑адрес получателя, то приложения, выполняемые на нем, не смогут разобраться кому из них предназначены присланные данные. Чтобы решить эту проблему используется механизм портов. Номер порта – это просто номер программы, которая будет обрабатывать переданные данные. Каждой сетевой программе, которая работает по протоколу TCP/IP, сопоставлен свой номер порта. Например, 80 – это порт WWW‑сервера (обычно это Apache), a 53 – это порт системы доменных имен.

Термин демон происходит от английского слова demon (или daemon) и означает программу, которая выполняется в фоновом режиме и дополняет операционную систему каким‑нибудь сервисом. Как правило, пользователь не замечает работу демона: он даже и не подозревает, что данная программа запущена. Программа‑демон чем‑то напоминает резидентные программы в операционной системе DOS. Как видите, нет ничего общего с ужасными существами потустороннего мира. Обычно демон ожидает определенного события, после которого он активизируется и выполняет свою работу. Сетевые демоны ожидают получения пакета с определенным номером порта и, получив его, обрабатывают содержащиеся в нем данные. В книге мы еще неоднократно поговорим об этих «существах», поэтому сейчас не будем подробно останавливаться на них.

1.7.7. Структура пакетов IP и TCP

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

Структура заголовка IP‑пакета Таблица 1.6

Поле

Описание

Source IP‑address

(IP‑адрес отправителя) Отправитель пакета

Destination IP‑address

(IP‑адрес получателя) Получатель пакета

Protocol (Протокол)

TCP или UDP

Checksum (Контрольная сумма)

Значение для проверки целостности пакета

TTL (Time to Live, время жизни пакета)

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

Version Версия протокола IP – 4 или 6.

Шестая версия протокола IP рассматривается в гл. 8 (4 бита)

Header Length (Длина заголовка)

Минимальный размер заголовка – 20 байт (4 бита)

Type of Service (Тип обслуживания)

Обозначение требуемого для этого пакета качества обслуживания при доставке через маршрутизаторы IP‑сети. Здесь определяются приоритет, задержки, пропускная способность. (8 бит)

Total Length (Общая длина)

Длина дейтаграммы IP‑протокола (16 бит)

Identification (Идентификация)

Идентификатор пакета. Если пакет фрагментирован (разбит на части), то все фрагменты имеют одинаковый идентификатор (16 бит)

Fragmentation Flags (Фрагментационные флаги)

3 бита для флагов фрагментации и 2 бита для текущего использования

Fragmentation Offset (Смещение фрагмента)

Указывает на положение фрагментов относительно начала поля данных IP‑пакета. Если фрагментации нет, смещение равно 0x0 (13 бит)

Options and Padding (Опции и заполнение)

Опции

Протокол TCP, в отличие от протокола IP, ориентирован на установление соединения и обеспечивает надежную доставку данных. Структура TCP‑пакета описана в табл. 1.7.

Структура TCP‑пакета Таблица 1.7

Поле

Описание

Source port (Порт отправителя)

Порт TCP узла‑отправителя

Destination Port (Порт получателя)

Порт TCP узла‑получателя

Sequence Number (Порядковый номер)

Номер последовательности пакетов

Acknowledgement Number (Номер подтверждения)

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

Data Length (Длина данных)

Длина TCP– пакета

Reserved (Зарезервировано)

Зарезервировано для будущего использования

Flags (Флаги)

Описание содержимого сегмента

Window (Окно)

Показывает доступное место в окне протокола TCP

Checksum (Контрольная сумма)

Значение для проверки целостности пакета

Urgent Pointer (Указатель срочности)

При отправке срочных данных (поле Flags) в этом поле задается граница области срочных данных

Категория: Введение | Просмотров: 451 | Добавил: spb_serge | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: