Интернет
Уровень 2
- канальный. Связь данных. Обеспечивает безошибочную передачу блоков
данных (называемых кадрами (frame)) через уровень 1, который при передаче
может искажать данные. Этот уровень должен определять начало и конец кадра
в битовом потоке, формировать из данных, передаваемых физическим уровнем,
кадры или последовательности , включать процедуру проверки наличия ошибок и
их исправления. Этот уровень (и только он) оперирует такими элементами, как
битовые последовательности, методы кодирования, маркеры. Он несет
ответственность за правильную передачу данных (пакетов) на участках между
непосредственно связанными элементами сети. Обеспечивает управление
доступом к среде передачи. В виду его сложности, канальный уровень
подразделяется на два подуровня: MAC (Medium Access Control) - Управление
доступом к среде и LLC (Logical Link Control) - Управление логической
связью (каналом). Уровень MAC управляет доступом к сети (с передачей
маркера в сетях Token Ring или распознаванием конфликтов (столкновений
передач) в сетях Ethernet) и управлением сетью. Уровень LLC, действующий
над уровнем MAC, и есть собственно тот уровень, который посылает и получает
сообщения с данными.
Уровень 3
- сетевой. Этот уровень пользуется возможностями, предоставляемыми ему
уровнем 2, для обеспечения связи двух любых точек в сети. Любых,
необязательно смежных. Этот уровень осуществляет проводку сообщений по
сети, которая может иметь много линий связи, или по множеству совместно
работающих сетей, что требует маршрутизации, т.е. определения пути, по
которому следует пересылать данные. Маршрутизация производится на этом же
уровне. Выполняет обработку адресов, а также и демультиплексирование.
Основной функцией программного обеспечения на этом уровне является выборка
информации из источника, преобразование ее в пакеты и правильная передача в
точку назначения.
Есть два принципиально различных способа работы сетевого уровня. Первый -
это метод виртуальных каналов. Он состоит в том, что канал связи
устанавливается при вызове (начале сеанса (session) связи), по нему
передается информация, и по окончании передачи канал закрывается
(уничтожается). Передача пакетов происходит с сохранением исходной
последовательности, даже если пакеты пересылаются по различным физическим
маршрутам, т.е. виртуальный канал динамически перенаправляется. При этом
пакеты данных не включают адрес пункта назначения, т.к. он определяется во
время установления связи.
Второй - метод дейтаграмм . Дейтаграммы - независимые , они включают всю
необходимую для их пересылки информацию. В то время, как первый метод
предоставляет следующему уровню (уровню 4) надежный канал передачи данных,
свободный от искажений (ошибок) и правильно доставляющий пакеты в пункт
назначения, второй метод требует от следующего уровня работы над ошибками и
проверки доставки нужному адресату.
Уровень 4
- транспортный. Регламентирует пересылку пакетов сообщений между
процессами, выполняемыми на компьютерах сети. Завершает организацию
передачи данных: контролирует на сквозной основе поток данных, проходящий
по маршруту, определенному третьим уровнем: правильность передачи блоков
данных, правильность доставки в нужный пункт назначения, их комплектность,
сохранность, порядок следования. Собирает информацию из блоков в ее прежний
вид. Или же оперирует с дейтаграммами, т.е. ожидает отклика-подтверждения
приема из пункта назначения, проверяет правильность доставки и адресации,
повторяет посылку дейтаграммы, если не пришел отклик. В рамках
транспортного протокола предусмотрено пять классов качества транспортировки
и соответствующие процедуры управления. Этот же уровень должен включать
развитую и надежную схему адресации для обеспечения связи через множество
сетей и шлюзов. Другими словами, задачей данного уровня является довести до
ума передачу информации из любой точки в любую во всей сети.
Транспортный уровень скрывает от всех высших уровней любые детали и
проблемы передачи данных, обеспечивает стандартное взаимодействие лежащего
над ним уровня с приемом-передачей информации независимо от конкретной
технической реализации этой передачи.
Уровень 5
- сеансовый. Координирует взаимодействие связывающихся пользователей:
устанавливает их связь, оперирует с ней, восстанавливает аварийно
оконченные сеансы. Этот же уровень ответственен за картографию сети - он
преобразовывает региональные (доменные) компьютерные имена в числовые
адреса , и наоборот. Он координирует не компьютеры и устройства, а процессы
в сети, поддерживает их взаимодействие - управляет сеансами связи между
процессами прикладного уровня.
Уровень 6
- уровень представления данных. Этот уровень имеет дело с синтаксисом и
семантикой передаваемой информации, т.е. здесь устанавливается
взаимопонимание двух сообщающихся компьютеров относительно того, как они
представляют и понимают по получении передаваемую информацию. Здесь
решаются, например, такие задачи, как перекодировка текстовой информации и
изображений, сжатие и распаковка, поддержка сетевых файловых систем (NFS),
абстрактных структур данных и т.д.
Уровень 7
- прикладной. Обеспечивает интерфейс между пользователем и сетью, делает
доступными для человека всевозможные услуги. На этом уровне реализуется, по
крайней мере, пять прикладных служб: передача файлов, удаленный
терминальный доступ, электронная передача сообщений, служба справочника и
управление сетью. В конкретной реализации определяется пользователем
(программистом) согласно его насущным нуждам и возможностям его кошелька,
интеллекта и фантазии. Имеет дело, например, с множеством различных
протоколов терминального типа, которых существует более ста.
Замечание.
Следует понимать, что подавляющее большинство современных сетей в силу
исторических причин лишь в общих чертах, приближенно, соответствуют
эталонной модели ISO OSI.
Уровни работы сети
Пересылка битов
Пересылка битов происходит на физическом уровне схемы ISO OSI. Увы, здесь
всякая попытка краткого и доступного описания обречена на провал. Требуется
введение огромного количества специальных терминов, понятий, описаний
процессов на физическом уровне и т.д. И потом, существует столь великое
разнообразие приемопередатчиков и передающих сред, - трудно даже и обозреть
этот океан технологий. Для понимания работы сетей этого и не требуется.
Считайте, что просто имеется труба, по которой из конца в конец
перекачиваются биты. Именно биты, безо всякого деления на какие-либо группы
(байты, декады и т.п.).
Пересылка данных
Об организации блочной, символьной передачи, обеспечении надежности
пересылки поговорим на других уровнях модели ISO OSI. Т.е. функции
канального уровня в Internet распределены по другим уровням, но не выше
транспортного. В этом смысле Internet не совсем соответствует стандарту
ISO. Здесь канальный уровень занимается только разбиением битового потока
на символы и кадры и передачей полученных данных на следующий уровень.
Обеспечением надежности передачи он себя не утруждает.
Сети коммутации пакетов
Настала пора поговорить об Internet именно как о сети, а не паутине линий
связи и множестве приемопередатчиков. Казалось бы, Internet вполне
аналогична телефонной сети, и модель телефонной сети достаточно адекватно
отражает ее структуру и работу. В самом деле, обе они электронные, обе
позволяют вам устанавливать связь и передавать информацию. И Internet тоже
состоит, в первую очередь, из выделенных телефонных линий. Но увы! Картина
эта неверна и приводит ко многим заблуждениям относительно работы Internet,
ко множеству недоразумений. Телефонная сеть - это так называемая сеть с
коммутацией линий, т.е. когда вы делаете вызов, устанавливается связь и на
все время сеанса связи имеется физическое соединение с абонентом. При этом
вам выделяется часть сети, которая для других уже не доступна, даже если вы
молча дышите в трубку, а другие абоненты хотели бы поговорить по
действительно неотложному делу. Это приводит к нерациональному
использованию очень дорогих ресурсов - линий сети. Internet же является
сетью с коммутацией пакетов, что принципиально отличается от сети с
коммутацией каналов.
Для Internet более подходит модель, которая поначалу может не внушать
доверия: почта, обыкновенная государственная почтовая служба. Почта
является сетью пакетной связи. Нет никакой выделенной вам части этой сети.
Ваше послание перемешивается с посланиями других пользователей, кидается в
контейнер, пересылается в другое почтовое отделение, где снова сортируется.
Хотя технологии сильно разнятся, почта является прекрасным и наглядным
примером сети с коммутацией пакетов. Модель почты удивительно точно
отражает суть работы и структуры Internet. Ею мы и будем пользоваться
далее.
Протокол Internet (IP)
По проводу можно переслать биты только из одного его конца в другой.
Internet же умудряется аккуратно передавать данные в различные точки,
разбросанные по всему миру. Как она это делает? Забота об этом возложена на
сетевой (межсетевой) уровень в эталонной модели ISO OSI. О нем и поговорим.
Различные части Internet - составляющие сети - соединяются между собой
посредством компьютеров, которые называются ``узлы''; так Сеть связывается
воедино. Сети эти могут быть Ethernet, Token Ring, сети на телефонных
линиях, пакетные радиосети и т.п. Выделенные линии и локальные сети суть
аналоги железных дорог, самолетов почты и почтовых отделений, почтальонов.
Посредством их почта движется с места на место. Узлы - аналоги почтовых
отделений, где принимается решение, как перемещать данные (``пакеты'') по
сети, точно так же, как почтовый узел намечает дальнейший путь почтового
конверта. Отделения или узлы не имеют прямых связей со всеми остальными.
Если вы отправляете конверт из Долгопрудного (Московская область) в Уфу
(Башкирия), конечно же, почта не станет нанимать самолет, который полетит
из ближайшего к Долгопрудному аэропорта (Шереметьево) в Уфу, просто местное
почтовое отделение отправляет послание на подстанцию в нужном направлении,
та в свою очередь, дальше в направлении пункта назначения на следующую
подстанцию; таким образом письмо станет последовательно приближаться к
пункту назначения, пока не достигнет почтового отделения, в ведении
которого находится нужный объект и которое доставит сообщение получателю.
Для работы такой системы требуется, чтобы каждая подстанция знала о
наличествующих связях и о том, на какую из ближайших подстанций оптимально
следует передать адресованный туда-то пакет. Примерно также и в Internet:
узлы выясняют, куда следует ваш пакет данных, решают куда его дальше
отправить и отправляют.
На каждой почтовой подстанции определяется следующая подстанция, куда будет
далее направлена корреспонденция, т.е. намечается дальнейший путь (маршрут)
- этот процесс называется маршрутизацией. Для осуществления маршрутизации
каждая подстанция имеет таблицу, где адресу пункта назначения (или индексу)
соответствует указание почтовой подстанции, куда следует посылать далее
этот конверт (бандероль). Их сетевые аналоги называются таблицами
маршрутизации. Эти таблицы рассылаются почтовым подстанциям централизовано
соответствующим почтовым подразделением. Время от времени рассылаются
предписания по изменению и дополнению этих таблиц. В Internet, как и любые
другие действия, составление и модификация, таблиц маршрутизации (этот
процесс тоже является частью маршрутизации и называется так же)
определяются соответствующими правилами - протоколами ICMP (Internet
Control Message Protocol), RIP (Routing Internet Protocol) и OSPF (Open
Shortest Path First). Узлы, занимающиеся маршрутизацией, называются
маршрутизаторами.
А откуда сеть знает, куда назначен ваш пакет данных? От вас. Если вы хотите
отправить письмо и хотите, чтобы ваше письмо достигло места назначения, вы
не можете просто кинуть листочек бумаги в ящик. Вам следует уложить его в
стандартный конверт и написать на нем не ``на деревню дедушке'', как Ванька
Жуков, а адрес получателя в стандартной форме. Только тогда почта сможет
правильно обработать ваше письмо и доставить его по назначению. Аналогично
в Internet имеется набор правил по обращению с пакетами - протоколы.
Протокол Internet (IP) берет на себя заботы по адресации или по
подтверждению того, что узлы понимают, что следует делать с вашими данными
по пути их дальнейшего следования. Согласно нашей аналогии, протокол
Internet работает также как правила обработки почтового конверта. В начало
каждого вашего послания помещается заголовок, несущий информацию об
адресате, сети. Чтобы определить, куда и как доставить пакет данных, этой
информации достаточно.
Адрес в Internet состоит из 4 байт. При записи байты отделяются друг от
друга точками: 123.45.67.89 или 3.33.33.3 . (Не пугайтесь, запоминать эти
цифры вам не придется !) В действительности адрес состоит из нескольких
частей. Так как Internet есть сеть сетей, начало адреса говорит узлам
Internet, частью какой из сетей вы являетесь. Правый конец адреса говорит
этой сети, какой компьютер или хост должен получить пакет (хотя реально не
все так просто, но идея такова). Каждый компьютер в Internet имеет в этой
схеме уникальный адрес, аналогично обычному почтовому адресу, а еще точнее
- индексу. Обработка пакета согласно адресу также аналогична. Почтовая
служба знает, где находится указанное в адресе почтовое отделение, а
почтовое отделение подробно знает подопечный район. Internet знает, где
искать указанную сеть, а эта сеть знает, где в ней находится конкретный
компьютер. Для определения, где в локальной сети находится компьютер с
данным числовым IP-адресом, локальные сети используют свои собственные
протоколы сетевого уровня. Например, Ethernet для отыскания Ethernet-адреса
по IP-адресу компьютера, находящегося в данной сети, использует протокол
ARP - протокол разрешения(в смысле различения) адресов. (См. документацию
по ARP: RFC 826, 917, 925, 1027)
Числовой адрес компьютера в Internet аналогичен почтовому индексу отделения
связи. Первые цифры индекса говорят о регионе (например, 45 - это Башкирия,
141 - подмосковье и т.д.), последние две цифры - номер почтового отделения
в городе, области или районе. Промежуточные цифры могут относиться как к
региону, так и к отделению, в зависимости от территориального деления и
вида населенного пункта. Аналогично существует несколько типов адресов
Internet (типы: A, B, C, D, E), которые по-разному делят адрес на поля
номера сети и номера узла, от типа такого деления зависит количество
возможных различных сетей и машин в таких сетях.
По ряду причин (особенно, - практических, из-за ограничений оборудования)
информация, пересылаемая по сетям IP, делится на части (по границам
байтов), раскладываемые в отдельные пакеты. Длина информации внутри пакета
обычно составляет от 1 до 1500 байт. Это защищает сеть от монополизирования
каким-либо пользователем и предоставляет всем примерно равные права.
Поэтому же, если сеть недостаточно быстра, чем больше пользователей ее
одновременно пользует, тем медленнее она будет общаться с каждым.
Протокол IP является дейтаграммным протоколом, т.е. IP-пакет является
дейтаграммой. Это совершенно не укладывается в модель ISO OSI, в рамках
которой уже сетевой уровень способен работать по методу виртуальных
каналов.
Одно из достоинств Internet состоит в том, что протокола IP самого по себе
уже вполне достаточно для работы (в принципе). Это совершенно неудобно, но,
при достаточных аскетичности, уме и упорстве удастся проделать немалый
объем работы. Как только данные помещаются в оболочку IP, сеть имеет всю
необходимую информацию для передачи их с исходного компьютера получателю.
Работа вручную с протоколом IP напоминает нам суровые времена
доперсональной компьютерной эры, когда пользователь всячески угождал ЭВМ,
укрощая свои тело, дух и эстетические чувства. Об удобстве пользователя
никто и не собирался думать, потому что машинное время стоило во много раз
дороже человеческого. Но сейчас в аскетизме надобности уже нет. Поэтому
следует построить на основе услуг, предоставляемых IP, более совершенную и
удобную систему. Для этого сначала следует разобраться с некоторыми
жизненно важными проблемами, которые имеют место при пересылке информации:
. большая часть пересылаемой информации длиннее 1500 символов. если бы
почта пересылала только почтовые карточки и отказывалась бы от пересылки
чего-либо большего, мы бы, например, лишились увлекательнейшего
литературного жанра - эпистолярного. Не говоря уже о том, что
практической пользы от такой почты было бы очень немного;
. возможны и неудачи. Почта, нередко бывает, письма теряет; сеть тоже,
бывает, теряет пакеты или искажает в пути информацию в них. В отличие от
почты, Internet может с честью выходить из таких затруднительных
положений;
. пакеты могут приходить в последовательности, отличной от начальной. Пара
писем, отправленных друг за другом на днях, не всегда приходит к
получателю в том же порядке; то же верно и для Internet.
Таким образом, следующий уровень Internet должен обеспечить способ
пересылки больших массивов информации и позаботиться об ``искажениях'',
которые могут возникать по вине сети.
Протокол управления передачей (TCP) и протокол пользовательских дейтаграмм
(UDP)
Transmission Control Protocol - это протокол, тесно связанный с IP, который
используется в аналогичных целях, но на более высоком уровне - транспортном
уровне эталонной модели ISO OSI. Часто эти протоколы, по причине их тесной
связи, именуют вместе, как TCP/IP. Термин ``TCP/IP'' обычно означает все,
что связано с протоколами TCP и IP. Он охватывает целое семейство
протоколов, прикладные программы и даже саму сеть. В состав семейства
входят протоколы TCP, UDP, ICMP, telnet, FTP и многие другие.TCP/IP - это
технология межсетевого взаимодействия, технология internet. Сеть, которая
использует технологию internet, называется internet.
Сам протокол TCP занимается проблемой пересылки больших объемов информации,
основываясь на возможностях протокола IP. Как это делается? Вполне здраво
можно рассмотреть следующую ситуацию. Как можно переслать книгу по почте,
если та принимает только письма и ничего более? Очень просто: разодрать ее
на страницы и отправить страницы отдельными конвертами. Получатель,
руководствуясь номерами страниц, легко сможет книгу восстановить. Этим же
простым и естественным методом и пользуется TCP.
TCP делит информацию, которую надо переслать, на несколько частей. Нумерует
каждую часть, чтобы позже восстановить порядок. Чтобы пересылать эту
нумерацию вместе с данными, он обкладывает каждый кусочек информации своей
обложкой - конвертом, который содержит соответствующую информацию. Это и
есть TCP-конверт. Получившийся TCP-пакет помещается в отдельный IP-конверт
и получается IP-пакет, с которым сеть уже умеет обращаться.
Получатель (TCP-модуль (процесс)) по получении распаковывает IP-конверты и
видит TCP-конверты, распаковывает и их и помещает данные в
последовательность частей в соответствующее место. Если чего-то не достает,
он требует переслать этот кусочек снова. В конце концов информация
собирается в нужном порядке и полностью восстанавливается. Вот теперь этот
массив пересылается выше к пользователю (на диск, на экран, на печать).
В действительности, это слегка утрированный взгляд на TCP. В реальности
пакеты не только теряются, но и могут искажаться при передаче из-за наличия
помех на линиях связи. TCP решает и эту проблему. Для этого он пользуется
системой кодов, исправляющих ошибки. Существует целая наука о таких
кодировках. Простейшим примером такового служит код с добавлением к каждому
пакету контрольной суммы (и к каждому байту бита проверки на четность). При
помещении в TCP-конверт вычисляется контрольная сумма, которая записывается
в TCP-заголовок. Если при приеме заново вычисленная сумма не совпадает с
той, что указана на конверте, значит что-то тут не то, - где-то в пути
имели место искажения, так что надо переслать этот пакет по новой, что и
делается.
Для ясности и полноты картины, необходимо сделать здесь важное замечание:
Модуль TCP разбивает поток байтов на пакеты, не сохраняя при этом границ
между записями. Т.е., если один прикладной процесс делает 3 записи в -порт,
то совсем не обязательно, что другой прикладной процесс на другом конце
виртуального канала получит из своего -порта именно 3 записи, причем именно
таких (по разбиению), что были переданы с другого конца. Вся информация
будет получена исправно и с сохранением порядка передачи, но она может уже
быть разбита по другому и на иное количество частей. Не существует
зависимости между числом и размером записываемых сообщений с одной стороны
и числом и размером считываемых сообщений с другой стороны. TCP требует,
чтобы все отправленные данные были подтверждены принявшей их стороной. Он
использует ожидания (таймауты) и повторные передачи для обеспечения
надежной доставки. Отправителю разрешается передавать некоторое количество
данных, не дожидаясь подтверждения приема ранее отправленных данных. Таким
образом, между отправленными и подтвержденными данными существует окно уже
отправленных, но еще не подтвержденных данных. Количество байт, которое
можно передавать без подтверждения, называется размером окна. Как правило,
размер окна устанавливается в стартовых файлах сетевого программного
обеспечения. Так как TCP-канал является , т.е. данные могут одновременно
передаваться в обоих направлениях, то подтверждения для данных, идущих в
одном направлении, могут передаваться вместе с данными, идущими в
противоположном направлении. Приемники на обеих сторонах виртуального
канала выполняют управление потоком передаваемых данных для того, чтобы не
допускать переполнения буферов.
Таким образом, протокол TCP обеспечивает гарантированную доставку с
установлением логического соединения в виде байтовых потоков. Он
освобождает прикладные процессы от необходимости использовать ожидания и
повторные передачи для обеспечения надежности. Наиболее типичными
прикладными процессами, использующими TCP, являются ftp и telnet. Кроме
того, TCP использует система X-Windows (стандартный многооконный
графический интерфейс с пользователем), ``r-команды''.
Большие возможности TCP даются не бесплатно, реализация TCP требует большой
производительности процессора и большой пропускной способности сети. Когда
прикладной процесс начинает использовать TCP, то начинают общаться модуль
TCP на машине пользователя и модуль на машине сервера. Эти два оконечных
модуля TCP поддерживают информацию о состоянии соединения - виртуального
канала. Этот виртуальный канал потребляет ресурсы обоих оконечных модулей
TCP. Канал этот, как уже указывалось, является дуплексным. Один прикладной
процесс пишет данные в TCP-порт, откуда они модулями соответствующих
уровней по цепочке передаются по сети и выдаются в TCP-порт на другом конце
канала, и другой прикладной процесс читает их отсюда - из своего TCP-порта.
эмулирует (создает видимость) выделенную линию связи двух пользователей.
Гарантирует неизменность передаваемой информации. Что входит на одном
конце, выйдет с другого. Хотя в действительности никакая прямая линия
отправителю и получателю в безраздельное владение не выделяется (другие
пользователи могут пользовать те же узлы и каналы связи в сети в
промежутках между пакетами этих), но извне это, практически, именно так и
выглядит.
Как бы хорошо это не звучало, но это не панацея. Как уже отмечалось,
установка TCP-виртуального канала связи требует больших расходов на
инициирование и поддержание соединения и приводит к задержкам передачи.
Если вся эта суета - излишество, лучше обойтись без нее. Если все данные,
предназначенные для пересылки, умещаются в одном пакете, и если вас не
особенно заботит надежность доставки (? - читайте дальше, - поймете), то
можно обойтись без TCP.
Имеется другой стандартный протокол транспортного уровня, который не
отягощен такими накладными расходами. Этот протокол называется UDP - User
Datagram Protocol - протокол пользовательских дейтаграмм. Он используется
вместо TCP. Здесь данные помещаются не в TCP, а в UDP-конверт, который
также помещается в IP-конверт. Этот протокол реализует дейтаграммный способ
передачи данных.
Дейтаграмма - это пакет, передаваемый через сеть независимо от других
пакетов без установления логического соединения и подтверждения приема.
Дейтаграмма - совершенно самостоятельный пакет, поскольку сама содержит всю
необходимую для ее передачи информацию. Ее передача происходит безо всякого
предварения и подготовки. Дейтаграммы, сами по себе, не содержат средств
обнаружения и исправления ошибок передачи, поэтому при передаче данных с их
помощью следует принимать меры по обеспечению надежности пересылки
информации. Методы организации надежности могут быть самыми разными, обычно
же используется метод подтверждения приема посылкой эхоотклика при
получении каждого пакета с дейтаграммой.
UDP проще TCP, поскольку он не заботится о возможной пропаже данных,
пакетов, о сохранении правильного порядка данных и т.д. UDP используется
для клиентов, которые посылают только короткие сообщения и могут просто
заново послать сообщение, если отклик подтверждения не придет достаточно
быстро. Предположим, что вы пишите программу, которая просматривает базу
данных с телефонными номерами где-нибудь в другом месте сети. Совершенно
незачем устанавливать TCP связь, чтобы передать 33 или около того символов
в каждом направлении. Вы можете просто уложить имя в UDP-пакет, запаковать
это в IP-пакет и послать. На другом конце прикладная программа получит
пакет, прочитает имя, посмотрит телефонный номер, положит его в другой UDP-
пакет и отправит обратно. Что произойдет, если пакет по пути потеряется?
Ваша программа тогда должна действовать так: если она ждет ответа слишком
долго и становится ясно, что пакет затерялся, она просто повторяет запрос,
т.е. посылает еще раз то же послание. Так обеспечивается надежность
передачи при использовании протокола UDP.
В отличие от TCP, данные, отправляемые прикладным процессом через модуль
UDP, достигают места назначения как единое целое. Например, если процесс-
отправитель производит 3 записи в UDP-порт, то процесс-получатель должен
будет сделать 3 чтения. Размер каждого записанного сообщения будет
совпадать с размером соответствующего прочитанного. Протокол UDP сохраняет
границы сообщений, определяемые прикладным процессом. Он никогда не
объединяет несколько сообщений в одно целое и не делит одно сообщение на
части.
Альтернатива TCP-UDP позволяет программисту гибко и рационально
использовать предоставленные ресурсы, исходя из своих возможностей и
потребностей. Если нужна надежная доставка, то лучше может быть TCP. Если
нужна доставка дейтаграмм, то - UDP. Если нужна эффективная доставка по
длинному и ненадежному каналу передачи данных, то лучше использовать TCP.
Если нужна эффективность на быстрых сетях с короткими соединениями, лучше
всего будет UDP. Если потребности не попадают ни в одну из этих категорий,
то выбор транспортного протокола не ясен. Прикладные программы, конечно,
могут устранять некоторые недостатки выбранного протокола. Например, если
вы выбрали UDP, а вам необходима надежность, то прикладная программа должна
обеспечить надежность сама, как описано выше: требовать подтверждения,
пересылки утерянных или увечных пакетов и т.д. Если вы выбрали TCP, а вам
нужно передавать записи, то прикладная программа должна вставлять метки в
поток
Создание сети с человеческим лицом. Прикладное обеспечение
И вот мы имеем возможность передавать информацию между различными точками в
сети. Вот теперь мы можем начать работать над созданием дружественного
интерфейса Internet, позаботиться об удобстве для пользователя. Для этого
мы напишем программное обеспечение, которое будет понимать язык команд,
выдавать сообщения об ошибках, подсказки, использовать для адресации
сетевых компьютеров при общении с пользователем имена, а не числа и т.д. В
модели ISO OSI на это работают уровни выше транспортного, т.е. сеансовый,
представления данных и прикладной. Вся эта деятельность направлена на
повышение уровня удобства работы в сети, на создание систем, позволяющих
пользоваться предоставляемыми возможностями обычному пользователю сети.
Ведь большинство пользователей совсем не волнует ни наличие надежного
потока битов между машинами, ни пропускная способность этих линий или
тонкости и особенности используемой технологии, ни даже экзотичность этой
технологии. Они хотят использовать этот битовый поток для дела, как то:
переслать файл, добраться до каких-то данных или просто поиграть в игру.
Приложения - это части программного обеспечения. Их создают на основе
сервиса TCP или UDP. Приложения позволяют пользователю достаточно просто
справиться с возникшей задачей, не погружаясь в пучину технической
информации о конкретной сети, о протоколах и т.д.
Прикладное обеспечение разнится очень сильно. Приложения могут быть от
самодельной программы до патентованных продуктов, поставляемых различными
фирмами (DEC, Microsoft и т.п.). Существует три стандартных Internet
-приложения: удаленный доступ, передача файлов, электронная почта (e-mail);
наряду с ними используются другие широко распространенные нестандартные
приложения.
Предоставление услуг Internet построено по схеме ``клиент - сервер''.
Предоставление услуг осуществляется совместной работой двух процессов: на
компьютере пользователя и на компьютере-сервере. Процесс на компьютере
пользователя называется клиентом, а на компьютере-сервере - сервером.
Клиент и сервер являются, по сути, частями одной программы,
взаимодействующие по виртуальной связи в сети. Сервер по указаниям клиента
выполняет соответствующие действия, например, пересылает клиенту файл. Для
предоставления услуги совершенно необходимо наличие двух этих модулей -
клиента и сервера, и их одновременная согласованная работа. Взаимодействие
клиента и сервера описывается соответствующими стандартными протоколами,
поэтому клиент и сервер могут быть выпущены совершенно разными
производителями и работать на разнородных компьютерах. Поэтому же
существует небольшая проблема нестандартности интерфейса клиента
непосредственно уже с пользователем. Это взаимодействие может иметь
совершенно различную форму: интерактивную, командную и т.д. Системы команд
могут различаться. Но от этого сами возможности не изменяются, поскольку
клиент и сервер всегда взаимодействуют одинаково - согласно протоколу.
Так как прикладным обеспечением снабжают по большей части через локальные
сети, в разговоре о приложениях возникает вышеупомянутая проблема: команды,
сообщения, справки, подсказки и т.п. в разных локальных сетях могут в той
или иной степени отличаться. Об этом не следует забывать при чтении
руководств пользователя: сообщения могут отличаться, но смысл их будет
такой же, то же касается и команд. Даже если они слегка отличаются, не
стоит волноваться, большинство приложений имеет разумную систему подсказок
и описание набора команд, где вы детально и конкретно сможете разузнать
все, что вам понадобится.
Системы сетевых адресов
Региональная Система Имен
Числовые адреса хороши для связи машин, люди же предпочитают имена. Очень
непросто разговаривать, используя машинную адресацию (как бы это звучало:
``192.112.36.5 обещает вскоре...''?), еще труднее запомнить эти адреса.
Поэтому компьютерам в Internet для удобства пользователей были присвоены
собственные имена. Тогда описанный разговор принимает вид: ``NIC обещает
вскоре...''. Все приложения Internet позволяют пользоваться системными
именами вместо числовых адресов.
Как мы уже упоминали, для понимания полезно использовать почтовую аналогию.
Сетевые численные адреса вполне аналогичны почтовой индексации. Машины,
сортирующие корреспонденцию на почтовых узлах, ориентируются именно по
индексам, и только если с индексами выходит какая-то несуразность, передают
почту на рассмотрение людям, которые по адресу могут определить правильный
индекс почтового отделения места назначения. Людям же приятнее и удобнее
иметь дело с географическими названиями - это аналоги доменных имен.
Конечно, такое именование имеет свои собственные проблемы. Прежде всего,
следует убедиться, что никакие два компьютера, включенные в сеть, не имеют
одинаковых имен. Должно также обеспечить преобразование имен в числовые
адреса, для того чтобы машины (и программы) могли понимать нас,
пользующихся именами: техника по-прежнему общается на языке цифр.
В начале Internet размерами напоминала курилку, и иметь дело с именами было
довольно просто. NIC создал регистратуру. Можно было послать запрос и в
ответ высылали список имен и адресов. Этот файл, называется ``host file''
(файл рабочих ЭВМ), регулярно распространялся по всей сети - рассылался
всем машинам. Имена были простыми словами, все были единственными. Если вы
использовали имя, ваш компьютер просматривал этот файл и подставлял вместо
имени реальный числовой адрес. Так же, как работает телефонный аппарат со
встроенным списком абонентов. Все было легко, просто и замечательно. Всем
хватало простых имен, в курилке был один Джон, один Пит, один Патермуфий.
Но по мере развития и расширения Internet возрастало количество
пользователей, хостов, а потому увеличивался и упомянутый файл. Возникали
значительные задержки при регистрации и получении имени новым компьютером,
стало затруднительно изыскивать имена, которые еще никто не использовал,
слишком много сетевого времени затрачивалось на рассылку этого огромного
файла всем машинам, в нем упомянутым. Стало очевидно, - чтобы справиться с
такими темпами изменений и роста сети, нужна распределенная оперативная
система, опирающаяся на новый принцип. Таковая была создана, ее назвали
``доменной системой имен'' - DNS, а способ адресации - способом адресации
по доменному принципу. DNS иногда еще называют региональной системой
наименований.
Структура региональной системы имен
Доменная система имен - это метод назначения имен путем передачи сетевым
группам ответственности за их подмножество имен. Каждый уровень этой
системы называется доменом. Домены в именах отделяются друг от друга
точками: inr.msk.su, nusun.jinr.dubna.su, arty.bashkiria.su,
Страницы: 1, 2, 3
|