Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000434.doc
Скачиваний:
7
Добавлен:
30.04.2022
Размер:
4.17 Mб
Скачать

1.4. Проблемы объединения (связи) компьютеров в сеть

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

А. Связь двух машин. Для осуществления её необходимо решить следующие задачи: физическая передача сигналов по каналу связи, представление данных в виде оптических или электрических сигналов; определение параметров линий связи, как внутренних в ПК, так и внешних, где действуют помехи и возможен перехват передаваемых сообщений; обеспечение синхронизации работы компьютера передатчика и компьютера-приемника заранее обусловленными кодами; защита от искажения передаваемых бит передачей и проверкой соответствующих контрольных сумм; обеспечение передачи квитанций о состоявшемся приеме данных; подбор адаптеров, работающих с определённой физической средой передачи.

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

1.4.1. Передача данных по сети

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

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

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

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

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

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

Она обеспечивает:

  • передачу исходных данных небольшими порциями;

  • сбор данных в надлежащем порядке (при их получении);

  • проверку данных на наличие ошибок (после сборки).

Пакеты могут содержать несколько типов данных:

  • информацию (например, сообщения или файлы);

  • определенные виды данных и команд, управляющих компьютером (например, запросы к службам);

  • коды управления сеансом (например, запрос на повторную передачу для исправления ошибки).

Некоторые компоненты являются обязательными для всех типов пакетов:

  • адрес источника, идентифицирующий компьютер-отправитель;

  • передаваемые данные;

  • адрес места назначения, идентифицирующий компьютер-получатель;

  • инструкции сетевым компонентам о дальнейшем маршруте данных;

  • информация компьютеру-получателю о том, как объединить передаваемый пакет с остальными, чтобы получить данные в исходном виде;

  • информация для проверки ошибок, обеспечивающая корректность передачи.

Компоненты пакета группируются в три раздела: заголовок, данные и трейлер.

Заголовок включает:

  • сигнал, "говорящий" о том, что передается пакет;

  • адрес источника;

  • адрес места назначения;

  • информацию, синхронизирующую передачу.

Следующую часть пакета составляют собственно передаваемые данные. В зависимости от типа сети ее размер может меняться. Но для большинства сетей он составляет от 512 байтов (0,5 Кб) до 4 Кб.

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

Содержимое трейлера зависит от метода связи, или протокола. Чаще всего трейлер содержит информацию для проверки ошибок, называемую циклическим избыточным кодом (Cyclical Redundancy Check, CRC). CRC – это число, получаемое в результате математических преобразований над пакетом и исходной информацией. Когда пакет достигает места назначения, эти преобразования повторяются. Если результат совпадает с CRC – пакет принят без ошибок. В противном случае – при передаче данные изменились, поэтому необходимо повторить передачу пакета. Процесс формирования пакета со всеми указанными атрибутами показан на рис. 1.4.

Рис.1.4. Процесс формирования пакета

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

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

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

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

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

Для того, чтобы пакет "попал" нужному получателю, он должен иметь адресную информацию.

Каждая плата сетевого адаптера "видит" все пакеты, передаваемые по сегменту кабеля, но только при совпадении адреса пакета с адресом компьютера она прерывает его работу. Используется также и широковещательная адресация (broadcast addressing). На пакет с таким типом адреса одновременно реагирует множество компьютеров в сети.

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

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

Продвижение пакетов

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

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

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

Указанные функции являются очень важными. Подробно они будут рассмотрены ниже – для самой распространенной у нас сети – сети типа Ethernet.

1.4.2. Адресация узлов сети

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

Адреса могут быть числовыми (например, 129.26.255.255) и символьными (site.domen.ru). Один и тот же адрес может быть записан в разных форматах, скажем, числовой адрес в предыдущем примере 129.26.255.255 может быть записан и шестнадцатеричными цифрами – 81.1a.ff.ff.

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

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

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

  • Адрес должен уникально идентифицировать сетевой интерфейс в сети любого масштаба.

  • Схема назначения адресов должна сводить к минимуму ручной труд администратора и вероятность дублирования адресов.

  • Желательно, чтобы адрес имел иерархическую структуру, удобную для построения больших сетей и наращивания малых сетей.

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

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

Нетрудно заметить, что эти требования противоречивы – например, символьные имена удобны для людей, но из-за переменного формата и потенциально большой длины их передача по сети не очень экономична. В связи с тем, что все перечисленные требования трудно совместить в рамках какой-либо одной схемы адресации, на практике обычно используется сразу несколько схем, так что сетевой интерфейс компьютера может одновременно иметь несколько адресов-имен. Каждый адрес задействуется в той ситуации, когда соответствующий вид адресации наиболее удобен. А для преобразования адресов из одного вида в другой используются специальные вспомогательные протоколы, которые называют иногда протоколами разрешения адресов (address resolution protocols).

Примером плоского числового адреса является МАС-адрес, предназначенный для однозначной идентификации сетевых интерфейсов в локальных сетях. Такой адрес обычно используется только аппаратурой, поэтому его стараются сделать по возможности компактным и записывают в виде двоичного или шестнадцатеричного значения, например 0081005е24а8. При задании МАС-адресов не требуется выполнение ручной работы, так как они обычно встраиваются в аппаратуру компанией-изготовителем, поэтому их называют также аппаратными адресами. Использование плоских адресов является жестким решением – при замене аппаратуры, например, сетевого адаптера, изменяется и адрес сетевого интерфейса компьютера.

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

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

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

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

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

Распределенный подход хорош тем, что не предполагает выделения специального компьютера, который к тому же часто требует ручного задания таблицы соответствия адресов. Недостатком распределенного подхода является необходимость широковещательных сообщений, которые перегружают сеть, так как они требуют обязательной обработки всеми узлами, а не только узлом назначения. Поэтому распределенный подход используется только в небольших локальных сетях. В крупных сетях распространение широковещательных сообщений по всем ее сегментам становится совершенно нереальным, поэтому для них характерен централизованный подход. Наиболее известной службой централизованного разрешения адресов является система доменных имен (Domain Name System, DNS) сети Интернет.

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