Протоколы и серверы интернета

Введение
Сегодня множество людей неожиданно для себя открывают для себя существование глобальных сетей, объединяющих компьютеры во всем мире в единое информационное пространство, которое называется Internet. Что это такое, определить непросто. С технической точки зрения Internet - это объединение транснациональных компьютерных сетей, работающих по различным протоколам, связывающих всевозможные типы компьютеров, физически передающих данные по всем доступным типам линий - от витой пары и телефонных проводов до оптоволокна и спутниковых каналов. Большая часть компьютеров в Internet связано по протоколу TCP/IP. Можно сказать, что Internet- это сеть сетей, опутывающая весь земной шар.
Теперь немного информации о технологии «клиент-сервер». Она известна уже довольно длительное время, но раньше чаще всего использовалась в крупных сетях масштаба предприятия. Сегодня, с развитием Internet, эта технология все чаще привлекает взоры разработчиков программного обеспечения. В мире накоплено огромное количество информации по различным вопросам. Чаще всего эта информация хранится в базах данных (БД). Чтобы опубликовать её в Сети приходилось экспортировать БД в HTML–документы , что требовало больших затрат и усложняло поиск информации. Сегодня имеется большой опыт подобных работ. Практически любой пользователь Сети не раз сталкивался с подобными БД. Например, главное в работе популярного поискового сервера Yahoo (адрес: http::\\www.yahoo.com) – это запросы к базе данных WWW-сервера по ключевым словам. Ответ сервера - список гипертекстовых ссылок на найденные в Сети страницы, содержащие нужную информацию. Именно сегодня проблема Web-интерфейса к БД как никогда актуальна.



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

Основное, что отличает Internet от других сетей - это ее протоколы - TCP/IP. Вообще, термин TCP/IP обычно означает все, что связано с протоколами взаимодействия между компьютерами в Internet. Он охватывает целое семейство протоколов, прикладные программы, и даже саму сеть. TCP/IP - это технология межсетевого взаимодействия, технология Internet. Сеть, которая использует технологию Internet, называется "Internet". Если речь идет о глобальной сети, объединяющей множество сетей с технологией Internet, то ее называют Internet.
Свое название протокол TCP/IP получил от двух коммуникационных протоколов (или протоколов связи). Это Transmission Control Protocol (TCP) и Internet Protocol (IP). Несмотря на то, что в сети Internet используется большое число других протоколов, сеть Internet часто называют TCP/IP-сетью, так как эти два протокола, безусловно, являются важнейшими.
Как и во всякой другой сети в Internet существует 7 уровней взаимодействия между компьютерами: физический, логический, сетевой, транспортный, уровень сеансов связи, представительский и прикладной уровень. Соответственно каждому уровню взаимодействия соответствует набор протоколов (т.е. правил взаимодействия).
Протоколы физического уровня определяют вид и характеристики линий связи между компьютерами. В Internet используются практически все известные в настоящее время способы связи от простого провода (витая пара) до волоконно-оптических линий связи (ВОЛС).
Для каждого типа линий связи разработан соответствующий протокол логического уровня, занимающийся управлением передачей информации по каналу. К протоколам логического уровня для телефонных линий относятся протоколы SLIP (Serial Line Interface Protocol) и PPP (Point to Point Protocol). Для связи по кабелю локальной сети - это пакетные драйверы плат ЛВС.
Протоколы сетевого уровня отвечают за передачу данных между устройствами в разных сетях, то есть занимаются маршрутизацией пакетов в сети. К протоколам сетевого уровня принадлежат IP (Internet Protocol) и ARP (Address Resolution Protocol).
Протоколы транспортного уровня управляют передачей данных из одной программы в другую. К протоколам транспортного уровня принадлежат TCP (Transmission Control Protocol) и UDP (User Datagram Protocol).
Протоколы уровня сеансов связи отвечают за установку, поддержание и уничтожение соответствующих каналов. В Internet этим занимаются уже упомянутые TCP и UDP протоколы, а также протокол UUCP (Unix to Unix Copy Protocol).
Протоколы представительского уровня занимаются обслуживанием прикладных программ. К программам представительского уровня принадлежат программы, запускаемые, к примеру, на Unix-сервере, для предоставления различных услуг абонентам. К таким программам относятся: telnet-сервер, FTP-сервер, Gopher-сервер, NFS-сервер, NNTP (Net News Transfer Protocol), SMTP (Simple Mail Transfer Protocol), POP2 и POP3 (Post Office Protocol) и т.д.
К протоколам прикладного уровня относятся сетевые услуги и программы их предоставления.

Межсетевой протокол (IP).

С помощью линий связи обеспечивается доставка данных из одного пункта в другой. Но Вы уже знаете, что Internet может доставлять данные во многие точки, разбросанные по всему земному шару. Как это происходит?
Различные участки Internet связываются с помощью системы компьютеров (называемых маршрутизаторами) соединяющих между собой сети. Это могут быть сети Internet, сети с маркерным доступом, телефонные линии (см. рис.2).

Рисунок 1. Аппаратные средства Internet.


Телефонные линии и сети Ethernet эквивалентны автомобилям и самолетам службы доставки почты. Маршрутизаторы – это почтовые подстанции; они принимают решения о том, куда направлять данные («пакеты»), так же, как почтовая подстанция решает, куда направлять конверты с почтой. Каждая подстанция, или маршрутизатор, не имеет связи с остальными станциями. Если Вы опустили письмо в почтовый ящик в Нью-Хэмпшире, а адресат живет в Калифорнии, то местное почтовое отделение не будет бронировать самолет, чтобы доставить Ваше письмо в Калифорнию. Местное почтовое отделение посылает письмо на подстанцию, подстанция посылает его на другую подстанцию и так далее, пока письмо не дойдет до адресата. Таким образом, каждой подстанции нужно знать только, какие имеются соединения и какой из «следующих скачков» будет лучшим для перемещения пакета ближе к пункту назначения. Похожая ситуация складывается и в Internet: маршрутизатор смотрит, куда адресованы Ваши данные, и решает, куда их посылать.
Откуда Internet знает, куда следует направить Ваши данные? Если Вы отправляете письмо, то, просто опустив его в почтовый ящик без конверта, Вы не можете рассчитывать, что корреспонденция будет доставлена по назначению. Письмо нужно вложить в конверт, написать на конверте адрес и наклеить марку. Точно так же, как почтовое отделение следует по правилам, которые определяют порядок работы почтовой сети, определенные правила регламентируют порядок работы Internet. Эти правила называют протоколами. Межсетевой протокол (Internet Protocol, IP) отвечает за адресацию, т.е. гарантирует, что маршрутизатор знает, что делать с Вашими данными, когда они поступят. Следуя нашей аналогии с почтовым ведомством, можно сказать, что межсетевой протокол выполняет функции конверта.
Некоторая адресная информация приводится в начале Вашего сообщения. Она даёт сети достаточно сведений для доставки пакета данных.
Internet - адреса состоят из четырёх чисел, каждое из которых не превышает 256. При записи числа отделяются одно от другого точками, например:
192.112.36.5
128.174.5.6
Адрес фактически состоит из нескольких частей. Поскольку Internet – это сеть сетей, то начало адреса содержит информацию для маршрутизаторов о том, к какой сети относится Ваш компьютер. Правая часть адреса служит для того, чтобы сообщить сети, какой компьютер должен получить этот пакет.1 Каждый компьютер в Internet имеет свой уникальный адрес. Здесь нам опять поможет аналогия со службой доставки почты. Возьмем адрес «50 Kelly Road, Hamden, CT». Элемент «Hamden, CT» похож на адрес сети. Благодаря этому конверт попадает в необходимое почтовое отделение, то, которое знает об улицах в определенном районе. Элемент «Kelly Road» похож на адрес компьютера; он указывает на конкретный почтовый ящик в районе, который обслуживает данное почтовое отделение. Почтовое ведомство выполнило свою задачу, доставив почту в нужное местное отделение, а это отделение положило письмо в соответствующий почтовый ящик. Аналогичным образом, Internet выполнила свою задачу, когда ее маршрутизаторы направили данные в соответствующую сеть, а эта локальная сеть – в соответствующий компьютер.
По целому ряду технических причин (в основном это аппаратные ограничения) информация, посылаемая по IP- сетям, разбивается на порции, называемые пакетами. В одном пакете обычно посылается от одного до 1500 символов информации. Это не дает возможности одному пользователю монополизировать сеть, однако позволяет каждому рассчитывать на своевременное обслуживание. Это также означает, что в случае перегрузки сети качество ее работы несколько ухудшается для всех пользователей: она не умирает, если ее монополизировали несколько солидных пользователей.
Одно из достоинств Internet состоит в том, что для работы на базовом уровне достаточно только межсетевого протокола. Сеть будет не очень дружественной, но если Вы будете вести себя достаточно разумно, то решите свои задачи. Поскольку Ваши данные помещаются в IP-конверт, то сеть имеет всю информацию, необходимую для перемещения этого пакета из Вашего компьютера в пункт назначения. Здесь, однако, возникает сразу несколько проблем.
* Во-первых, в большинстве случаев объем пересылаемой информации превышает 1500 символов. Если бы почта принимала только открытки, Вас бы это, естественно, разочаровало.
* Во-вторых, может произойти ошибка. Почтовое ведомство иногда теряет письма, а сети иногда теряют пакеты или повреждают их при передаче. Вы увидите, что в отличие от почтовых отделений Internet успешно решает такие проблемы.
* В-третьих, последовательность доставки пакетов может быть нарушена. Если Вы послали по одному адресу одно за другим два письма, то нет никакой гарантии, что они пойдут по одному маршруту или придут в порядке их отправления. Такая же проблема существует и в Internet.
Поэтому следующий уровень сети даст нам возможность пересылать более крупные порции информации и позаботиться об устранении тех искажений, которые вносит сама сеть.



Протокол управления передачей (ТСР).

Для решения упомянутых выше проблем используется «протокол управления передачей» (Transmission Control Protocol, TCP), который часто упоминают вместе с протоколом IP. Как следовало бы поступить в случае, если Вы хотите послать кому-нибудь книгу, а почта принимает только письма? Выход один: вырвать из книги все страницы, вложить каждую в отдельный конверт и бросить все конверты в почтовый ящик. Получателю пришлось бы собирать все страницы (при условии, что ни одно письмо не пропало) и склеивать обратно в книгу. Вот эти задачи и выполняет ТСР.
Информацию, которую Вы хотите передать, ТСР разбивает на порции. Каждая порция нумеруется, чтобы можно было проверить, вся ли информация получена, и расположить данные в правильном порядке. Для передачи этого порядкового номера по сети у протокола есть свой собственный «конверт», на котором «написана» необходимая информация. Порция Ваших данных помещается в конверт ТСР. Конверт ТСР, в свою очередь, помещается в конверт IP и передается в сеть.
На принимающей стороне программное обеспечение протокола ТСР собирает конверты, извлекает из них данные и располагает их в правильном порядке. Если каких-нибудь конвертов нет, программа просит отправителя передать их еще раз. После размещения всей информации в правильном порядке эти данные передаются той прикладной программе, которая использует услуги ТСР.
Это, однако, несколько идеализированное представление о ТСР. В реальной жизни пакеты не только теряются, но и претерпевают изменения по дороге ввиду кратковременных отказов в телефонных линиях. ТСР решает и эту проблему. При помещении данных в конверт производится вычисление так называемой контрольной суммы. Контрольная сумма – это число, которое позволят принимающему ТСР выявлять ошибки в пакете.2 Когда пакет прибывает в пункт назначения, принимающий ТСР, вычисляет контрольную сумму и сравнивает ее с той, которую послал отправитель. Если значения не совпадают, то при передаче произошла ошибка. Принимающий ТСР отбрасывает этот пакет и запрашивает повторную передачу.
Другие протоколы передачи.

Протокол ТСР создает видимость выделенной линии связи между двумя прикладными программами, т.к. гарантирует, что информация, входящая на одном конце, выходит на втором. В действительности не существует выделенного канала между отправителем и получателем (другие люди могут использовать эти же маршрутизаторы и сетевые провода для передачи своей информации в промежутке между Вашими пакетами), однако создается впечатление, что он есть, и на практике этого обычно бывает достаточно.
Это не самый лучший подход к использованию сети. Формирование ТСР - соединения требует значительных расходов и затрат времени; если этот механизм не нужен, лучше не использовать его. Если данные, которые необходимо послать, помещаются в одном пакете, и гарантия доставки не особенно важна, ТСР может стать обузой.
Существует еще один стандартный протокол, который позволяет избежать таких накладных расходов. Он называется «протокол пользовательских дейтаграмм» (user datagram protocol, UDP) и используется в некоторых прикладных программах. Вместо вкладывания Ваших данных в конверт TCP и помещения этого конверта в конверт IP прикладная программа вкладывает данные в конверт UDP, который и помещается в конверт IP.
UPD проще ТСР, потому что этот протокол не заботится о пропавших пакетах, расположении данных в правильном порядке и других тонкостях. UDP используется для тех программ, которые посылают только короткие сообщения и могут повторить передачу данных, если ответ задерживается. Предположим, что Вы пишете программу, которая ищет номера телефонов в одной из сетевых баз данных. Нет нужды устанавливать ТСР - соединение для того, чтобы передать по всем направлениям по 20-30 символов. Можно просто поместить имя в один UDP- пакет, вложить его в IP-пакет и отослать. Принимающая прикладная программа получит этот пакет, прочитает имя, найдет номер телефона, вложит его в другой UDP- пакет и отправит обратно. Что случится, если пакет по дороге потеряется? Это – проблема Вашей программы: если слишком долго нет ответа, она посылает еще один запрос.




MNP- протоколы

MNP (Microsoft Network Protocols) - серия наиболее распространенных аппаратных протоколов, впервые реализованная на модемах фирмы Microsoft. Эти протоколы обеспечивают автоматическую коррекцию ошибок и компрессию передаваемых данных. Сейчас известны 10 протоколов:
MNP1. Протокол коррекции ошибок, использующий асинхронный полудуплексный метод передачи данных. Это самый простой из протоколов MNP.
MNP2. Протокол коррекции ошибок, использующий асинхронный дуплексный метод передачи данных.
MNP3. Протокол коррекции ошибок, использующий синхронный дуплексный метод передачи данных между модемами (интерфейс модем - компьютер остается асинхронным). Так как при асинхронной передаче используется десять бит на байт - восемь бит данных, стартовый бит и стоповый бит, а при синхронной только восемь, то в этом кроется возможность ускорить обмен данными на 20%.
MNP4. Протокол, использующий синхронный метод передачи, обеспечивает оптимизацию фазы данных, которая несколько улучшает неэффективность протоколов MNP2 и MNP3. Кроме того, при изменении числа ошибок на линии соответственно меняется и размер блоков передаваемых данных. При увеличении числа ошибок размер блоков уменьшается, увеличивая вероятность успешного прохождения отдельных блоков. Эффективность этого метода составляет около 20% по сравнению с простой передачей данных.
MNP5. Дополнительно к методам MNP4, MNP5 часто использует простой метод сжатия передаваемой информации. Символы часто встречающиеся в передаваемом блоке кодируются цепочками битов меньшей длины, чем редко встречающиеся символы. Дополнительно кодируются длинные цепочки одинаковых символов. Обычно при этом текстовые файлы сжимаются до 35% своей исходной длины. Вместе с 20% MNP4 это дает повышение эффективности до 50%. Заметим, что если вы передаете уже сжатые файлы, а в большинстве это так и есть, дополнительного увеличения эффективности за счет сжатия данных модемом этого не происходит.
MNP6. Дополнительно к методам протокола MNP5 протокол MNP6 автоматически переключается между дуплексным и полудуплексным методами передачи в зависимости от типа информации. Протокол MNP6 также обеспечивает совместимость с протоколом V.29.
MNP7. По сравнению с ранними протоколами использует более эффективный метод сжатия данных.
MNP9. Использует протокол V.32 и соответствующий метод работы, обеспечивающий совместимость с низкоскоростными модемами.
MNP10. Предназначен для обеспечения связи на сильно зашумленных линиях, таких, как линии сотовой связи, междугородними линиями, сельские линии. Это достигается при помощи следующих методов:- многократного повторения попытки установить связь
- изменения размера пакетов в соответствии с изменением уровня помех на линии
- динамического изменения скорости передачи в соответствии с уровнем помех линии
Все протоколы MNP совместимы между собой снизу вверх. При установлении связи происходит установка наивысшего возможного уровня MNP-протокола. Если же один из связывающихся модемов не поддерживает протокол MNP, то MNP-модем работает без MNP-протокола.

Почтовый сервер.

Почтовые серверы – это серверы, получающие и отправляющие электронные сообщения.
Сервер, получающий электронные сообщения, работает по протоколу POP (Post Office Protocol).
Сервер, отправляющий электронные сообщения работает по протоколу SMTP (Simple Mail Transfer Protocol).
Один сервер (что означает один компьютер) может выполнять функции как сервера SMTP, так и РОР. Каждый конкретный поставщик услуг устанавливает либо один и тот же сервер для получения и отправления почты, либо два разных – все зависит от его аппаратного обеспечения.

FTP-сервер.

Сейчас практически все узлы, которые только можно найти в сети, являются по сути Web-серверами, хранилищами гипертекстовых документов (только, в отличие от обычных серверов, они обладают гораздо большими графическими возможностями). И среди них есть огромное множество FTP-серверов, которые представляют собой настоящие хранилища файлов. Еще на заре Internet была создана система, призванная управлять передачей файлов от одного компьютера к другому ; этой системой и был FTP (File Transfer Protocol, Протокол передачи данных). С помощью FTP пользователи могут получить доступ к подобным хранилищам и загрузить себе на компьютер текстовые файлы, программы и многое другое.
Существует множество FTP-серверов, где можно искать интересующие вас файлы. Администраторы общедоступных узлов предоставляют «анонимный» доступ к данным. Многие FTP-серверы разрешают использовать такой доступ для соединения и получения файлов в неограниченных пределах. Установив связь, вы ищите нужные данные, а затем загружаете файлы на компьютер, не выходя из Web-броузера.

Сервер новостей.

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

Кластеризация серверов.

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


Использованная литература:


1. Д. Крейнак, Д. Хебрейкен «Энциклопедия ИНТЕРНЕТ». Санкт-Петербург, 2000 г.

2. Н. Рендалл «Кластеризация серверов». PC Magazine № 2, 1998 г.

3. Б. Ливингстон, Д. Штрауб «Компьютер у вас дома», Москва 2001 г.




1 Провести границу между подадресом сети и подадресом компьютера довольно сложно. Эта граница устанавливается по соглашению между соседними маршрутизаторами. К счастью, как пользователю, Вам никогда не придётся беспокоиться об этом. Это имеет значение только при создании сети.
2 Допустим, Вы передаёте необработанные цифровые данные 8-ми битовыми порциями или байтами. Самый простой вариант контрольной суммы – сложить значения этих байтов и поместить в конец этой порции информации дополнительный байт, содержащий эту сумму. (Или хотя бы ту её часть, которая помещается в 8-ми битах.) Принимающий TCP выполняет такой же расчёт. Если в процессе передачи какой-нибудь байт изменится, то контрольные суммы не будут совпадать, и Вы узнаете об ошибке. Конечно, при наличии двух ошибок они могут компенсировать друг друга, но такие ошибки можно выявить более сложными вычислениями.