Вычислитeльны систeмы сeти и тeлeкоммуникации 7 |

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

 

При цифровом кодировании дискретной информации применяют потенциальные и импульсные коды. Для мультиплексирования линий связи используются технологии частотного, временного и волнового мультиплексирования.    Контрольные вопросы и задания    1. Приведите классификацию линий связи.  2. Охарактеризуйте наиболее распространенные кабельные линии связи.  3. Представьте основные беспроводные линии связи и дайте их сравнительную характеристику.  4. Из-за каких физических факторов каналы связи искажают передаваемые сигналы?

 

5.

 

Что такое амплитудно-частотная характеристика канала связи?  6. В каких единицах измеряется пропускная способность канала связи?  7.

 

Опишите понятие «помехоустойчивость линии связи».  8.

 

Что определяет характеристика «достоверность передачи данных» и в каких единицах она измеряется?

 

9. Что такое «аналоговая модуляция» и какие ее виды применяется для передачи дискретных данных?

 

10.

 

Какое устройство выполняет функции модуляции несущей синусоиды на передающей стороне и ее демодуляции на приемной стороне?  11. Укажите различие между потенциальным и импульсным кодированием цифровых сигналов.  12. Что представляют собой самосинхронизирующиеся коды?  13. С какой целью используется логическое кодирование цифровых сигналов и какие методы при этом применяются?  14.

 

Опишите технологию частотного мультиплексирования линий связи.  15.

 

Каковы особенности технологии мультиплексирования с разделением времени?

 

16. Какая технология мультиплексирования применяется в волоконно-оптических кабелях для организации дуплексного режима работы при использовании только одного оптического волокна?  17. Для каких целей разработана технология плотного волнового мультиплексирования?  8. Канальный уровень сетевых телекоммуникаций  8.1.

 

Организация канального уровня    Важнейшими задачами, решаемыми канальным уровнем модели сетевого взаимодействия (иногда этот уровень называют уровнем передачи данных), являются задачи предоставления определенных сервисов сетево­му уровню. Основным сервисом является передача данных от сетевого уровня пе­редающей вычислительной машины сетевому уровню принимающей машины. На передающей ма­шине работает процесс, который передает биты с сетевого уровня на канальный уровень для передачи их по назначению. Работа канального уров­ня заключается в передаче этих битов на принимающую маши­ну так, чтобы они могли быть переданы сетевому уровню принимающей машины. Физически данные передаются по реальным каналам передачи, как схематично пока­зано на рис. 8.1.а. Однако посредством протоколов канального уровня виртуальный путь передачи данных связывает канальные уровни пе­редающей и принимающей вычислительной машины (рис. 8.1.б).        Рис. 8.1. Пути передачи данных: а – виртуальный; б – фактический    Протоколы канального уровня описывают, каким образом логические биты или символы, передаваемые физическим уровнем, объединяются в более крупные единицы – кадры. Обобщенная структура кадра показана на рис. 8.2.

 

В общем случае, каждый кадр содер­жит заголовок, поле данных и трейлер (или так называемый «концевик»). Управление кадрами – одна их главнейших функций работы канального уровня.     Кадр       Заголовок  канального уровня   Поле данных   сетевого уровня   Трейлер   канального уровня       Рис. 8.2. Обобщенная структура кадра протокола канального уровня     Канальный уровень может предоставлять различные сервисы и их на­бор может быть разным для разных систем. Обычно рассматриваются следующие возможные вари­анты:   1) сервис без подтверждений приема кадров и без установления соединения;   2) сервис с подтверждениями приема кадров и без установления соединения;   3) сервис с подтверждениями приема кадров и с установлением соединения.   Сервис без подтверждений приема кадров и без установления соединения заключается в том, что передающая машина посылает независимые кадры принимающей машине, а принимающая машина не посылает подтверждений о приеме кадров. Никакие соединения заранее не устанавливаются и не разрываются после передачи кад­ров. Если какой-либо кадр теряется из-за помех в линии связи, то на канальном уровне не предпринимается никаких попыток восстановить его. Данный класс сервисов приемлем при очень низком уровне ошибок. В этом случае вопросы, связанные с восстановлением потерянных при передаче данных, могут быть переданы для решения верхним уровням. Этот класс сервисов также применяется в линиях связи реального вре­мени (например, при передаче речи), в которых явно предпочтительнее получить искаженные данные, чем получить их с большой задержкой. Сервис без подтверждений и без установления соединения используется на канальном уровне в большинстве локаль­ных сетей.   Следующим шагом в сторону повышения надежности является сервис с под­тверждениями приема кадров, но без установления соединения.

 

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

 

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

 

Когда кадр прибывает в пункт назначения, его контрольная сумма подсчитывается снова. Если она отличается от содержащейся в кадре, то канальный уровень «понимает», что при переда­че кадра произошла ошибка, и принимает соответствующие меры (например, игнорирует испор­ченный кадр и посылает передающей машине сообщение об ошибке). Разбиение потока битов на отдельные кадры представляет собой не очень простую задачу.

 

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

 

Тогда принимающая машина потеряет синхронизацию и не сможет обнаружить начало следующего кадра. Даже если контрольная сумма не совпадет и принимающая машина «пой­мет», что кадр принят неверно, то она все равно не сможет определить, где начало следующего кадра. Запрашивать повторную передачу кадра также бесполезно, поскольку принимающая машина не «знает», сколько символов нужно пропус­тить до начала повторной передачи. По этой причине метод подсчета символов теперь практически не применяется.   Второй метод формирования кадров решает проблему восстановления син­хронизации после сбоя при помощи маркировки начала и конца каждого кадра специальными байтами. В последнее время большинство протоколов перешло на использова­ние в обоих случаях одного и того же байта, называемого флаговым. Таким образом, если приемник теряет синхронизацию, ему необходимо просто найти флаговый байт, с помощью которого он распозна­ет конец текущего кадра.

 

Два соседних флаговых байта говорят о том, что кон­чился один кадр и начался другой.

 

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

 

Возникновение такой ситуации, скорее всего, собьет синхронизацию.

 

Одним из способов решения проблемы является добав­ление специального escape-символа (знака переключения кода – ESC) непосред­ственно перед байтом, случайно совпавшим с флаговым байтом внутри кадра. Канальный уровень получателя вначале убирает эти escape-символы, затем переда­ет кадр на сетевой уровень. Этот метод называется символьным заполнением. Таким образом, настоящий флаг можно отличить от «случайно совпавшего» по наличию или отсутствию перед ним символа ESC.

 

Если же и символ ESC случайно окажется среди прочих данных, то перед этим фиктивным escape-символом также вставляется настоящий. Тогда любой одиночный ESC будет частью escape-после­довательности, а двойной будет указывать на то, что служебный байт случайно оказался в потоке данных. После очищения от вставных символов байтовая последовательности в точности совпадает с исходной. Главный недостаток этого метода заключается в том, что он тесно связан с 8-битными символами. Между тем не во всех кодировках один символ соответ­ствует 8 битам.

 

Например, кодировка UNICODE использует 16-битное кодирование.   Следующий метод позволяет использовать кадры и наборы символов, состоящие из любого количества битов. При этом каждый кадр начинается и завершается специальной последовательностью битов 01111110. Битовое заполнение аналогично символьному, при котором в кадр перед случайно встретившимся среди данных флагом вставляется escape-символ. Битовое заполнение, как и сим­вольное, является абсолютно прозрачным для сетевого уровня обеих машин. Если флаговая последовательность битов (01111110) встречается в данных пользователя, она передается в виде 011111010, но в памяти принимающего ком­пьютера сохраняется опять в исходном виде: 01111110. Благодаря битовому заполнению границы между двумя кадрами могут быть безошибочно распознаны с помощью флаговой последовательности. Таким образом, если приемная сторона потеряет границы кадров, ей нужно всего лишь оты­скать в полученном потоке битов флаговый байт, поскольку он встречается толь­ко на границах кадров и не может присутствовать в данных пользователя.  Наконец, последний из рассматриваемых методов формирования кадров приемлем только в сетях, в которых физический носитель обладает некоторой избыточностью.

 

Например, некоторые локальные сети кодируют один бит данных двумя физическими бита­ми. Так в «манчестерском» коде бит 1 кодируется парой высокого и низкого уровней сигналов (от­рицательный перепад), а бит 0 – наоборот, парой низкого и высокого уровней (положительный перепад). В такой схеме каждый передаваемый бит данных со­держит в середине переход, благодаря чему упрощается распознавание границ битов.

 

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

 

Отметим, что многие современные протоколы пе­редачи данных для повышения надежности применяют комбинированные методы формирования кадра.

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

Протокол передачи данных HDLC     Классический бит-ориентированный про­токол HDLC (High-level Data Link Control – высокоуровневый протокол управления каналом) относится к группе тесно связанных друг с другом протоко­лов, про­изошедших от одного из первых протоколов передачи данных SDLC (Synchronous Data Link Control – синхронный протокол управления каналом).

 

После разработки прото­кола SDLC корпорация IBM представила его на рассмотрение институтов ANSI (American National Standards Institute – Американский национальный институт стандартов) и ISO для утверждения в качестве стандарта США и международного стандарта.

 

Институт ANSI модифицировал протокол в ADCCP (Advanced Data Communication Control Procedure – усовершенствованная процедура управле­ния информационным обменом), a международная организация стандартов ISO переделала его в HDLC. После этого протокол HDLC был адаптирован для протокола доступа к каналу LAP (Link Access Procedure – процедура доступа к каналу), а затем протокол LAP модифицирован в протокол LAP-B (Link Access Procedure Balanced – процедура сбалансированного доступа), который более совместим с новой версией протокола HDLC. В основе всех этих протоколов лежат одни и те же принципы. Все они являют­ся бит-ориентированными, и во всех применяется битовое заполнение, обеспечи­вающее прозрачность данных. Они различаются только в незначительных, но, тем не менее, существенных деталях.

 

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

 

Поле Control (Управляющая информация) используется для хранения поряд­ковых номеров, подтверждений и других служебных данных. Поле Data (Данные) может содержать произвольную информацию.

 

Оно мо­жет быть любой длины, хотя эффективность контрольной суммы снижается с увеличением длины кадра из-за увеличения вероятности многочисленных паке­тов ошибок. Поле Checksum (Контрольная сумма) является разновидностью циклического избыточного кода.   В качестве заголовка и трейлера кадра используется флаговый байт (01111110). В линиях «точка–точка», которые в текущий момент времени про­стаивают, флаговые последовательности передаются постоянно.

 

Кадр минималь­ного размера состоит из трех полей, занимающих в общей сложности 32 бита (не считая флаги в начале и в конце кадра).    Биты 8 8 8 16 8      01111110    Address  Control   Data  Checksum  01111110      Рис.

 

8.3. Формат кадра бит-ориентированных протоколов    Все кадры можно разделить на три категории: информационные, супервизорные и ненумерованные. Содержимое поля Control для этих трех типов кад­ров показано на рис. 8.4.     Биты 1 3 1 3       а 0   Seq   P/F   Next       б 1   0   Type   P/F   Next       в 1   1   Type   P/F   Modifier         Рис. 8.4.

 

Управляющее поле: а – информационного кадра;   б – супервизорного кадра; в – ненумерованного кадра     В каждый момент времени в сети может находиться не бо­лее семи неподтвержденных кадров. Поле Seq содержит порядко­вый номер кадра. Поле Next является пересылаемым вместе с кадром подтвер­ждением. Однако все протоколы придерживаются соглашения о том, что вместо номера последнего правильно принятого кадра в поле Next пересылается номер первого не принятого кадра (то есть следующего ожидаемого кадра). Впрочем, номер кадра, используемого для подтверждения, не принципиален. Важно лишь, чтобы все участники придерживались одного и того же соглашения. Бит P/F означает Poll/Final (Опрос/Финальный). Он используется, когда получатель опрашивает группу отправителей. В случае значе­ния Р получатель предлагает отправителю посылать данные.

 

Во всех кадрах, посылаемых отправителем (кроме последнего), бит P/F устанавливается в Р. В последнем кадре этот бит устанавливается в F. Некоторые протоколы используют бит P/F, чтобы заставить другую машину послать супервизорный кадр немедленно, не ожидая попутного потока данных. Этот бит также изредка используется в ненумерованных кадрах.   Тип супервизорного кадра указывается с помощью значения поля Туре.

 

Если Туре = 0, значит, данный кадр является подтверждением. Он официально назы­вается RECEIVE READY («к приему готов»). Такой кадр сообщает номер следующего ожидаемого кадра и применяется при отсутствии попутного потока данных для передачи подтверждения. Туре = 1 является признаком отрицательного подтверждения, официально на­зывающегося REJECT («отказ»).

 

Он применяется для сообщения об обнаружении ошибки передачи.

 

Поле Next в этом случае содержит номер первого неверно по­лученного кадра (то есть первого кадра, который следует переслать повторно). Отправитель должен переслать повторно все неподтвержденные кадры, начиная с кадра с номером Next. Туре = 2 означает RECEIVE NOT READY («к приему не готов»). При этом, как и в слу­чае RECEIVE READY, подтверждается прием всех кадров вплоть до Next – 1, однако от­правителю сообщается, что передачу следует приостановить. Сигнал неготовно­сти к приему предназначен не для обозначения наличия у получателя каких-либо времен­ных проблем, например отсутствия свободной памяти в буферах.

 

Когда получа­тель сможет продолжить работу, он пошлет сигнал готовности, отказа или дру­гой управляющий кадр. Туре = 3 означает SELECTIVE REJECT («выборочный отказ»). Такой байт представ­ляет собой запрос повторной передачи только указанных кадров. Таким образом, если получатель хочет сохранить в буфере несвоевременные кадры для последующего использования, он может запросить повторную передачу любого кадра с помощью SELECTIVE REJECT. Протоколы HDLC и ADCCP поддерживают этот тип кадра, а протоколы SDLC и LAP-B – нет, то есть в этих протоколах нет команды выборочного отказа, а кадры со значением Туре = 3 не используются.   Третий класс кадров составляют ненумерованные кадры. Иногда они приме­няются для служебных целей, но могут переносить и данные, когда требуется ненадежный, не требующий соединения сервис. В отличие от предыдущих двух классов, в которых различные бит-ориентированные протоколы были почти иден­тичными, в вопросе использования ненумерованных кадров они очень сильно различаются.

 

Для обозначения типа кадра зарезервировано 5 бит, однако исполь­зуются значительно меньше, чем 32 возможных комбинации.   Все протоколы поддерживают команду DISC (Disconnect – прервать связь), позволяющую предупредить, что машина скоро будет выключена (например, для профилактического обслуживания).

 

Также имеется команда SNRM (Set Normal Response Mode – установить нормальный режим отве­та), позволяющая ма­шине, только что вернувшейся в подключенный режим (on-line), заявить о своем присутствии и принудительно обнулить все порядковые номера. Третьей командой, поддерживаемой всеми указанными протоколами, является FRMR (FRaMe Reject – отклонить кадр), применяющаяся тогда, когда приходит кадр с вер­ной контрольной суммой, но недопустимой семантикой (например, супервизорный кадр со значением Туре = 3 в протоколе LAP-B, кадр с длиной менее 32 бит, недопустимый управляющий кадр и т. д.).   Управляющие кадры могут быть повреждены или потеряны так же, как и ин­формационные кадры, поэтому им тоже нужны подтверждения.

 

Для этой цели предназначен специальный служебный кадр, называемый UA (Unnumbered Acknowledgement – ненумерованное подтверждение).  8.3. Протокол передачи данных РРР     В качестве еще одного примера протоколов передачи данных рассмотрим протокол двухточечного соединения РРР (Point-to-Point Protocol – протокол передачи от точки к точке). На практике двухточечное соединение (типа «точка–точка») главным образом используется в двух ситуациях.

 

Во-первых, у многих организаций есть по одной или по несколько ло­кальных сетей, каждая из которых связана с «внешним ми­ром» (в том числе с глобальной сетью Интер­нет) выделенны­ми линиями связи типа «точка–точка». Во-вторых, соединения типа «точка–точка» связывают миллионы индивидуальных пользо­вателей с помощью модемов и телефонных линий с сетью Интер­нет. Для реализации двухточечных соединений в Интернете широко используется протокол РРР.

 

Протокол РРР выполняет обнаружение ошибок, позволяет динамически изменять IP-адреса во время соединения (см. раздел 11), разрешает аутентификацию, а также имеет ряд других свойств.   Протокол РРР поддерживает:   1. Метод формирования кадров, однозначно обозначающий конец одного кадра и начало следующего. Формат кадров также обеспечивает обнаружение оши­бок.   2. Протокол управления каналом LCP (Link Cont­rol Protocol), позволяющий устанавливать и тестировать каналы связи, договариваться о параметрах их использования, от­ключать каналы связи, когда они не нужны.

 

Этот протокол поддерживает синхронные и асинхронные линии, бит- и байт-ориентированное кодирование.   3. Способ осуществления договоренности о параметрах сетевого уровня, который не зависит от используемого протокола сетевого уровня. Для каждого поддерживаемого се­тевого уровня этот метод должен иметь свой сетевой протокол управления NCP (Network Control Protocol).   В качестве иллюстрации работы протокола PPP рассмотрим типичный сцена­рий, когда домашний пользователь звонит со своего персонального компьютера через модем на маршрутизатор провайдера – поставщика услуг Интернета. Пос­ле того, как модем маршрутизатора ответит на звонок и установит физическое соединение, ПК посылает маршрутизатору серию LCP-пакетов в поле данных пользователя одного или нескольких РРР-кадров. Эти па­кеты и ответы на них определяют параметры протокола РРР. После согласования обеими сторонами параметров посылается серия NCP-пакетов для настройки сетевого уровня. Обычно ПК жела­ет запустить стек протоколов TCP/IP (см. раздел 11), для чего ему нужен IP-адрес. Для назначения IP-адреса используется протокол NCP для IP. После назначения IP-адреса ПК фактически становится хостом Интер­нета и может посылать и принимать IP-пакеты так же, как и постоянные хосты. Когда пользователь заканчивает сеанс связи, NCP используется для разрыва соединения сетевого уровня и освобождения IP-адреса. Затем используется LCP для разрыва соединения канального уровня.

 

Наконец, компьютер дает модему команду повесить трубку, чем освобождает линию на физическом уровне.   Формат кадра РРР (рис. 8.5) близок к формату кадра HDLC. В отличие от бит-ориентированного протокола HDLC, РРР является байт-ориентированным. В частности, в РРР применяется символьное заполнение на модемных телефонных линиях, поэтому все кадры состоят из це­лого числа байтов. С помощью протокола РРР невозможно послать кадр, состоя­щий, например, из 26,75 байт, как это можно было сделать в протоколе HDLC. Кадры РРР могут посылаться не только по телефонным линиям связи, но и по другим сетям (например, по бит-ориентированным HDLC-линиям).    Байты 1 1 1 1 или 2 2 или 4 1     Flag  01111110   Address  11111111 Control  00000011 Proto-col   Pay-  load   Check-  sum Flag  01111110      Рис. 8.5. Полный формат кадра РРР для работы в ненумерованном режиме     Все РРР-кадры начинаются со стандартного флагового байта протокола HDLC (01111110). Если такой байт встречается в поле данных, то применяется символьное заполнение. Следом за ним идет поле Address, которому все­гда присваивается двоичное значение 11111111, которое означает, что все станции должны принимать этот кадр. Использование такого адреса позволяет избежать необходимости назначения адресов передачи данных.

 

За полем адреса следует поле Control, его значение по умолчанию равно 00000011. Это число означает ненумерованный кадр. Другими словами, РРР по умолчанию не обеспечивает надежной передачи с использованием порядковых номеров и подтверждений. В «зашумленных» каналах, например при беспроводной связи, может применяться надежная передача с порядковыми номерами. Так как в конфигурации по умолчанию поля Address и Control являются кон­стантами, протокол LCP предоставляет возможность двум сторонам договориться о возможности пропускать оба поля и экономить, таким образом, по 2 байта на кадр. Четвертое поле РРР-кадра – Protocol (протокол). Оно определяет тип пакета, содержащегося в поле данных Payload (поле полезной нагрузки). Определены коды для разных протоколов. Размер поля Protocol по умолчанию составляет 2 байта, од­нако путем переговоров с помощью LCP этот размер может быть уменьшен до одного байта. Поле данных Payload может быть пере­менной длины, вплоть до некоего оговоренного максимального значения. Если размер не оговорен во время установки соединения при помощи LCP, то по умолчанию он может составлять до 1500 байт. При необходимости данные поль­зователя могут дополняться специальными символами. Следом за полем Payload располагается поле Checksum (контрольная сумма), которое в обычном состоянии занимает 2 байта, но при необходимости по договоренности может занимать 4 байта.

 

Итак, РРР является механизмом формирования кадров, поддерживающим различные протоколы, которым можно пользоваться при модемных соединени­ях, в последовательных линиях HDLC, волоконно-оптических сетях SONET и других физиче­ских средах. РРР поддерживает обнаружение ошибок, переговоры о параметрах, сжатие заголовков, а также, по желанию, надежное соединение с использованием кадров HDLC.   Рассмотрим способы установления и разрыва соединения. Начальное состояние протокола таково: линия в состоянии DEAD (отключена), физический носитель отсутствует, соединение на физическом уровне не существует. После того, как физическое соединение установлено, линия переходит в состояние ESTABLISH (установка). В этот момент начинаются переговоры о параметрах с помощью про­токола LCP. При успешном результате переговоров линия переходит в фазу AUTHENTICATE (идентифицировать). Теперь обе стороны по желанию могут проверить, кем является собеседник. При переходе к фазе NETWORK (сеть) включается соответствующий протокол NCP для настройки сетевого уровня. Ес­ли настройка проходит успешно, линия переходит в фазу OPEN (открытая), при этом может осуществляться передача данных. Когда передача данных закончена, линия переходит к фазе TERMINATE (завершение), а затем снова в состояние DEAD (отключена), когда физическое соединение разрывается.   Протокол LCP используется для переговоров об используемых параметрах уровня передачи данных во время установочной фазы (ESTABLISH).

 

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

 

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

 

Каждый из протоколов NCP исполь­зуется со своим сетевым протоколом и позволяет осуществлять переговоры о па­раметрах, специфичных для этого конкретного протокола. Например, для протокола IP важ­нейшим свойством является возможность назначения динамического IP-адреса (см. раздел 11).  8.4.

 

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

 

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

 

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

 

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

 

Важнейшим параметром является так называемый диаметр сети: наибольшее рас­стояние между двумя приемопередатчиками (пространственное для бес­проводных сетей или по кабелю для сетей кабельных). Для сетей с выде­ленной центральной станцией важнейшим параметром оказывается ра­диус сети: расстояние от центральной станции до самой удаленной рабо­чей станции. Размер сети часто измеряют не линейными единицами, а временем прохождения сигнала. Это особенно важно для кабельных се­тей, в которых скорость прохождения сигнала отличается от световой, а также возможна ситуация, когда скорость прохождения сигнала различна в разных сегментах сети (например, при сочетании медных и волоконно-оптических кабелей или кабелей и радиосегментов).   Множество рабочих станций, функционирование которых может приводить к возникновению коллизий, на­зывается доменом коллизий.

 

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

 

Этот способ используется сущест­венно реже, потому что требует значительного усложнения приемника.

 

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

 

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

 

Безотноси­тельно к этому, он транслирует полученный кадр дальше по кольцу. Задача удаления кадра из кольца возлагается на отправителя. Таким образом отправитель может узнать судьбу своих данных: нашли ли они адре­сата, и если нашли, то были ли приняты. Смысл удаления кадра отправителем заключается в обеспечении «справедливого» управления доступом: удаление кадра из кольца сопровождается генерацией свободного марке­ра. Если бы оно производилось получателем, то какая-либо из пар «отправитель–получатель» могла бы завладеть маркером на неограниченное время. Маркерные кольца имеют ряд преимуществ, главным из которых яв­ляется хорошая реакция на перегрузку: не получив маркер, сетевой ин­терфейс ничего не может передать, что обеспечивает эффективное распределение доступа к среде и возможность передачи данных реально­го времени, в том числе и в сочетании с пакетными данными. Недостат­ком маркерных колец является необходимость ожидания маркера, что при низкой загрузке сети может привести к неоправданно большим за­держкам.

 

Наличие нескольких маркеров в кольце сглаживает этот недостаток.   Технология передачи маркера имеет успех не только в физически кольцевых сетях, но и в некоторых сетях шинной и звездообразной топологии. В ряде сетей маркер передается по шине. Маркер содержит адрес станции, которая имеет право начать передачу.   Существуют два основ­ных способа генерации маркера: логическое кольцо и выделенный кон­троллер. В логическом кольце маркер поочередно генерируется всеми станциями. Получив маркер, станция, возможно, посылает пакет данных и после этого обязана породить маркер для следующей по кольцу стан­ции. Определенную сложность при этом представляет включение новых станций в логическое кольцо. В сетях с контроллером маркер генериру­ется одним устройством. В некоторых сетях контроллер выбирается ди­намически и им может оказаться любой (или почти любой) адаптер: на­пример, при включении сети или пропадании старого контроллера (про­падание определяется по отсутствию маркера в течение определенного интервала) производятся выборы, в которых побеждает станция с наи­меньшим адресом. В шинных сетях основной недостаток маркерной схемы – большие задержки – не может быть скомпенсирован запуском нескольких маркеров, поэтому маркерные шины эффективны лишь в низкоскоростных сетях и при небольшом количестве станций.   Для широковещательных сред передачи без централизованного ар­битра распространенным решением проблемы доступа к среде является применение соревновательного механизма доступа.   Простейший протокол соревновательного доступа к среде был реали­зован в начале 1970-х годов в экспериментальной радиосети ALOHANet (название ALOHA не является аббревиатурой). Использо­ванный в этой сети протокол достаточно прост и состоит в том, что станции передают пакеты данных, когда сочтут нужным. Если в результате произойдет коллизия, считается, что этому пакету «не повезло». Не по­лучив в течение определенного времени подтверждения на отправлен­ный пакет, станция делает вывод, что он был потерян, и повторяет пере­дачу. Главный смысл механизма доступа протокола ALOHA, воспроизведенного позднее в ряде других протоколов доступа к среде, заключается в том, что повторять передачу сразу после истечения таймера нельзя: если пакет был потерян в результате коллизии, то вторая станция также сделает по­вторную попытку передачи. Если интервал между попытками определя­ется только тайм-аутом ожидания подтверждения, все последующие по­пытки также будут приводить к коллизиям и, следовательно, к блокиров­ке.

 

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

 

Оче­видно, что пропускная способность среды с таким алгоритмом управле­ния доступом будет невелика: коллизии редки только при малом числе посылаемых пакетов. Преимуществами стратегии ALOHA являются простота и нечувствительность к диаметру сети – эта стратегия работо­способна практически при любых условиях.

 

Характерным преимущест­венным свойством ALOHA и других подобных алгоритмов разрешения коллизий является малая задержка при низких уровнях загрузки сети.

 

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

 

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

 

Одним из эффективных приемов повышения производительности соревновательных сетей является разделение домена коллизий. Напри­мер, при разделении частотного диапазона на два поддиапазона и работе одной половины станций в одном поддиапазоне, а второй половины – в другом, происходит разделение сегмента, за который происходит сорев­нование, на две части. При этом ожидаемое число попыток передачи уменьшается более чем вдвое.   Ряд протоколов соревновательного доступа используют экспоненциальный откат – при каждой последующей коллизии время ожидания увеличивается в определенное число раз (чаще всего в два раза). Это по­зволяет сохранить низкие задержки при малых загрузках и сгладить ко­роткие всплески сетевой активности. Экспоненциальный откат в некото­рых случаях приводит к «несправедливому» распределению пропускной способности. А именно, при множественной коллизии, в которой участ­вовало несколько станций, та станция, которой удалось успешно пере­дать пакет, начинает следующую попытку с нулевым счетчиком колли­зий и будет использовать при следующей коллизии меньший интервал ожидания. Чтобы компенсировать это явление, многие протоколы, применяющие экспоненциальный откат, ограничивают количество попы­ток повторных передач после коллизии.  Существенного улучшения характеристик сети можно добиться, синхронизировав передатчики (то есть заставив их всех начинать переда­чу в дискретные промежутки времени). На практике это вдвое снижает интервал перекрытия пакетов, а максимальная пропускная способность сети оказывается вдвое выше и достигается при вдвое большей интен­сивности посылки пакетов. Такую реализацию доступа к среде называют дискретной (или синхронной) ALOHA.

 

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

 

Кроме того, синхронная ALOHA требует согласования часов передатчиков. На практике это час­то достигается рассылкой синхросигналов с базовой станции. При значи­тельных диаметрах сети интервалы часто приходится разделять защит­ными паузами.   Практически важным усовершенствованием протокола ALOHA яв­ляется протокол CSMA (Carrier Sence Multiple Access –множественный доступ с контролем несущей), который состоит в том, что станция перед началом передачи прослушивает среду и только убеждаясь, что никто больше не передает, начинает свою передачу. Из-за конечного времени распространения сигнала это не исключает возможности коллизий, но оказывается эффективным. В отличие от ALOHA, этот протокол устанавливает ограничение на диаметр сети: если время распространения сигнала по сети превосходит время передачи самого короткого из воз­можных пакетов, он сводится к базовому ALOHA. He удается также отказаться и от подтверждений на отправленные пакеты. Значительное улучшение характеристик CSMA может быть достигнуто за счет отказа от «настойчивости»: если станция при попытке передачи обнаруживает, что среда занята, она не начинает свою передачу сразу по освобождении среды, а выжидает случайный промежуток времени, как и при коллизии.

 

«Ненастойчивый» CSMA устойчив в том смысле, что график пропускной способности в зависимости от активности не имеет максимума и асим­птотически (хотя и относительно медленно) приближается к 1. За это приходится платить увеличением задержек и некоторым снижением эф­фективности при низких загрузках. В целом CSMA представляет лишь некоторое улучшение по сравнению с базовыми вариантами ALOHA. Тем не менее CSMA, ALOHA и их варианты часто используются, но обычно их роль оказывается вспомогательной.  Важное улучшение алгоритма CSMA может быть достигнуто, если передатчик прослушивает среду не только до начала передачи, но и во время передачи. Таким образом, коллизия может быть обнаружена не только по отсутствию подтверждения от приемника, но и непосредст­венно во время ее возникновения.

 

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

 

Такой алгоритм (и соответствующий протокол) имеет название CSMA/CD (Carrier Sence Multiple Access/Collision Detection – множественный доступ с контролем несущей и обнаружением коллизий). Размер пакета в CSMA/CD должен быть ограничен как сверху, так и снизу.

 

Ограничение сверху обусловлено, во-первых, желанием обеспе­чить «справедливость» – имея возможность передавать пакеты неограни­ченной длины, станция может занять среду на практически неограничен­ное время (по этой же причине запрещено передавать кадры вплотную один за другим); во-вторых, как и во всех других пакетных протоколах, станции должны иметь буфер, достаточный для приема пакета (иначе они попросту не смогут его принять); в третьих, использование длинных пакетов сведет на нет главное преимущество соревновательных сред – малые задержки. Ограничение снизу обусловлено требованием, чтобы самый короткий из пакетов успевал распространиться по всей среде и все станции, которые могли бы начать за это время передачу, обнаружили бы столкновение. Для этого время передачи минимального пакета должно превосходить удвоенное время прохождения сигнала по среде.   CSMA/CD можно рассматривать как протокол, переходный от чисто соревновательных протоколов к обширному семейству протоколов с ре­зервированием пропускной способности: передав начало пакета (размер которого определяется диаметром сети), абонент резервирует среду пе­редачи на весь остальной пакет. Для резервирования используется алго­ритм CSMA. Реальная производительность CSMA/CD определяется не только интенсивностью передачи, но и средней длиной пакета. Увеличе­ние длины пакета приводит к повышению эффективности.

 

Алгоритм CSMA/CD удобен в кабельных сетях, где затухание сигна­ла на пути от передатчика к приемнику невелико. В беспроводных сетях мощность собственного сигнала на антенне нередко превосходит мощ­ность принимаемых сигналов на несколько порядков. В этих условиях обнаружение коллизий практически не реализуемо, но большой успех имеет родственный протокол, называемый CSMA/CA (Carrier Sence Multiple Access/Collision Avoidance – множественный доступ с контролем несущей и избежанием коллизий). Другое название этого протокола – МАСА (Multiple Access with Collision Avoidance – множественный доступ с из­бежанием коллизий). CSMA/CD использует для резервирования алго­ритм CSMA, a CSMA/CA – алгоритм ALOHA.  Станция, желающая передать пакет данных, сначала посылает в сеть запрос RTS (Request To Send – запрос на отправку) с указанием адресата будущего пакета. Если адресат нормально принимает этот пакет, то он посылает CTS (Clear To Send – разрешение отправки) с указанием адреса от­правителя.

 

Получив CTS, отправитель передает пакет данных и ждет под­тверждения АСК (ACKnowledge – подтверждение). Все остальные станции, услышав обмен пакетами RTS/CTS, воспринимают это как резервирование полосы пропускания и воздерживаются от каких-либо передач или до прохода пакета АСК, или (если в течение заданного интервала времени АСК не последует) выжидают, как при коллизии, случайный интервал времени.    Резюме     Канальным уровнем многоуровневой модели сетевого взаимодействия решаются задачи передачи данных от сетевого уровня передающей вычислительной машины сетевому уровню принимающей машины. Протоколы канального уровня описывают, каким образом логические биты или символы, передаваемые физическим уровнем, объединяются в более крупные единицы – кадры.

 

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

 

Множество рабочих станций, функционирование которых может приводить к возникновению коллизий, на­зывается доменом коллизий. Вероятность возникновения коллизии зависит от степени вероятности одновременной передачи данных каж­дой станцией и общего количества работающих станций.   В сетях с кольцевой топологией управление доступом к среде осуществляется посредством использования так называемого маркера, который предваряет сообщение. Для широковещательных сред передачи без централизованного ар­битра распространенным решением проблемы доступа к среде является применение соревновательного механизма доступа. Простейшим протоколом соревновательного доступа к среде является протокол ALOHA. Эффективных приемом повышения производительности соревновательных сетей является разделение домена коллизий.   Практически важным усовершенствованием протокола ALOHA яв­ляется протокол множественного доступа с контролем несущей частоты и обнаружением коллизий CSMA/CD. В беспроводных сетях находит применение протокол множественного доступа с контролем несущей частоты и избежанием коллизий CSMA/CA.  Контрольные вопросы и задания    1. Какой основной вид сервиса предоставляет канальный уровень модели сетевого взаимодействия сетево­му уровню?  2. Опишите структура кадра протокола канального уровня.  3.

 

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

 

5. Охарактеризуйте наиболее популярные методы маркировки границ кадров.  6.

 

В чем различие между байт-ориентированными и бит-ориентированными типами синхронных протоколов.  7. Представьте формат кадра бит-ориентированных протоколов.  8. Укажите различия информационных, супервизорных и ненумерованных кадров.

 

9.

 

В каких практических ситуациях чаще всего используется двухточечное соединение типа «точка–точка»?  10. Какими важнейшими свойствами обладает протокол РРР?  11. Опишите формат кадра байт-ориентированного протокола РРР.  12. Представьте способы установления и разрыва соединения.  13. В каких случаях требуется решение задачи управления доступом к среде передачи данных?  14. Дайте определение понятию «коллизия».  15.Что понимается под параметрами «диаметр сети» и «радиус сети».  16.

 

Охарактеризуйте маркерный способ управления доступом к среде передачи данных в коль­цевой сети.  17. Представьте два основ­ных способа генерации маркера.  18. Опишите особенности практической реализации соревновательных механизмов доступа к среде передачи данных.  19. Какой прием повышения производительности сетей соревновательного типа является одним из наиболее эффективных?  20. Охарактеризуйте механизм экспоненциального отката, используемого рядом протоколов соревновательного доступа к среде передачи данных.  21. Дайте описание протокола множественного доступа с контролем несущей и обнаружением коллизий CSMA/CD.  22. В чем заключается принципиальное отличие протокола CSMA/CA от протокола CSMA/CD?

 

9. Основные типы аппаратных сетевых устройств физического и канального уровней    9.1. Сетевые адаптеры     Адаптер (плата, карта) сетевого интерфейса (Net­work Interface Card, NIC) или сетевой адаптер устанавливается в слот расширения материнской платы компьютера, а в настоящее время обычно бывает встроенным в интегрированную микросхему материнской платы.

 

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

 

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

 

Сетевой адаптер реализует соответствующий механизм управления доступом к сетевой среде, необходимый протоколу канального уровня. Характер управления зави­сит от используемого протокола.    9.2. Концентраторы     Практически во всех современных технологиях локальных сетей определено устройство, которое имеет несколько равноправных названий – концентратор (concentrator), хаб (hub), повторитель (repeator). В зависимости от области применения этого устройства в значительной степени изменяется состав его функций и конструктивное исполнение.

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

Мост также не способен считывать содержимое поля данных в кадре канального уровня, где находится информация, сгенерированная протоколом сетевого уровня.   Применение моста сокращает трафик, проходящий по каждому из сегментов сети, примерно в два раза, так как пакеты не направляются в сегмент сети, где они не нужны. О двух сегментах сети, связанных мостом, говорят, что они находятся в разных коллизионных доменах. При разделении сети мостом на два коллизионных домена число коллизий и ретрансляций уменьшается, что приводит к снижению трафика и повышению производительности всей сети.   Широковещательный домен (broadcast domain ) – другое важное понятие технологии сетевого соединения с помощью мостов. Широковещательное (broadcast) сообщение представляет собой пакет с особым адресом назначения, в соответствии с которым это сообщение читают и обрабатывают все получившие его компьютеры. Различают также узковещательные (unicast) сообщения, адресованные одному компьютеру сети, и многоадресные (multicast) сообщения, адресованные нескольким (но не всем) компьютерам.

 

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

 

Если адрес системы-получателя сопоставлен с другим сегментом, мост пересылает пакет соответствующему сегменту.

 

Обычный мост, связывающий однотипные сетевые сегменты в пределах одного помещения, называется локальным мостом (local bridge).

 

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

 

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

 

Таким образом мост сохраняет целостность широковещательного домена. Из-за дополнительных манипуляций с пакетами мост-транслятор работает медленнее локального. Поскольку сети разных типов можно связывать и с помощью других устройств (например, маршрутизаторов), мосты-трансляторы используются относительно редко.   Удаленный мост (remote bridge) с помощью технологий глобальных сетевых связей соединяет два сетевых сегмента, которыерасположены на значительном расстоянии друг от друга. Связь может осуществляться с помощью модемов, выделенной телефонной линии или других средств.   Другой тип устройств канального уровня – коммутатор. В современных сетях они практически вытеснили мосты.

 

Коммутатор внешне похож на концентратор.

 

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

 

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

 

два компьютера могут передавать данные в обоих направлениях одновременно, используя отдельные пары проводов в сетевом кабеле.   Двумя основными типами коммутаторов являются коммутаторы сквозные (cut-througf) и с промежуточной буферизацией (store-and-forward).   Сквозной коммутатор (или коммутатор с так называемой коммутацией «на лету») передает пакеты через соответствующий порт без дополнительной обработки, то есть немедленно, как только они получены, считывая адрес целевой системы в заголовке протокола канального уровня. Коммутатор начинает передачу пакета, даже не дожидаясь завершения его приема. Как правило, в сквозных коммутаторах используется аппаратный компонент, состоящий из набора схем ввода-вывода, который позволяет данным поступать в коммутатор и покидать его через любой порт (подробнее о схемах построения коммутаторов см. в разделе 13). Такие коммутаторы сводят к минимуму так называемое время ожидания (latency), т. е. время, затрачиваемое коммутатором на обработку пакетов.

 

Коммутатор с промежуточной буферизацией дожидается завершения приема пакета и лишь потом отправляет его по назначению. Различают коммутаторы с общей памятью (shared-memory switch), то есть с общим буфером для хранения данных всех портов, и коммутаторы с шинной архитектурой (bus architecture switch) – с отдельными буферами для каждого порта, соединенными шиной.

 

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

 

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

 

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

 

Пропускная способность коммутатора измеряется количеством пользовательских данных (в мегабайтах в секунду), переданных в единицу времени через его порты. Так как коммутатор главным образом работает на канальном уровне (то есть чаще всего соединяет отдельные компьютеры, а не сети), для него пользовательскими данными являются те данные, которые переносятся в поле данных кадров протоколов канального уровня. Максимальное значение пропускной способности коммутатора всегда достигается на кадрах максимальной длины, так как при этом доля накладных расходов на служебную информацию кадра гораздо ниже, чем для кадров минимальной длины, а время выполнения коммутатором операций по обработке кадра, приходящееся на один байт пользовательской информации, существенно меньше. При этом коммутатор может быть блокирующим для кадров минимальной длины, но иметь хорошие показатели максимальной пропускной способности.   Задержка передачи кадра измеряется как время, прошедшее с момента прихода первого байта на входной порт коммутатора до момента появления этого байта на его выходном порту. Задержка складывается из времени, затрачиваемого на буферизацию кадра, а также времени, затрачиваемого на обработку кадра коммутатором, – просмотра адресной таблицы, принятия решения о фильтрации или продвижении кадра и получения доступа к среде выходного порта. Величина вносимой коммутатором задержки зависит от типа коммутации. Если коммутация осуществляется «на лету», то задержки обычно невелики и составляют от 5 до 40 мкс, а при промежуточной буферизации кадров – от 50 до 200 мкс (для кадров минимальной длины).   Тип коммутации оказывает существенное влияние на производительность коммутаторов. Коммутаторы, передающие пакеты «на лету», вносят меньшие задержки передачи кадров на каждом промежуточном коммутаторе, поэтому общее уменьшение задержки доставки данных может быть значительным, что важно, например, для мультимедийного трафика. Кроме того, выбранный способ коммутации оказывает влияние на возможности реализации некоторых полезных дополнительных функций, например, трансляции протоколов канального уровня.

 

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

 

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

 

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

 

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

 

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

 

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

 

Передача кадра на магистральный порт производится в расчете на то, что этот порт подключен к вышестоящему коммутатору (при иерархическом соединении коммутаторов в крупной сети), который имеет достаточную емкость адресной таблицы и знает, куда нужно передать любой кадр.   Внутренняя буферная память коммутатора нужна для временного хранения кадров данных в тех случаях, когда их невозможно немедленно передать на выходной порт. Буфер позволяет сглаживать кратковременные пульсации трафика, так как если даже производительность процессоров портов коммутатора достаточна для передачи средних значений трафика, то такой величины производительности может не хватить при пиковых значениях нагрузок.   Для предотвращения потерь кадров при кратковременном многократном превышении среднего значения интенсивности трафика (а для локальных сетей часто встречаются значения коэффициента пульсации трафика в диапазоне 50–100) единственным средством служит буфер большого объема. Как и в случае адресных таблиц, каждый процессорный модуль порта обычно имеет свою буферную память для хранения кадров. Чем больше объем этой памяти, тем менее вероятны потери кадров при перегрузках.    Резюме     Основными типами аппаратных сетевых устройств физического и канального уровней являются адаптеры сетевого интерфейса, концентраторы, мосты и коммутаторы.   Адаптер сетевого интерфейса (сетевой адаптер) устанавливается в слот расширения материнской платы компьютера, а в настоящее время обычно бывает встроенным в интегрированную микросхему материнской платы. Сетевой адаптер и его драйвер ответственны за реализацию большинства функций протоколов канального и физического уровней, необходимых для связи между компьютером и сетью. Сетевой адаптер кодирует информацию на физическом уровне, преобразуя двоичные дан­ные (сгенерированные на сетевом уровне) в электрические сигналы, световые импульсы или другие сиг­налы (в зависимости от вида сетевой среды), а также преобразует принятые сигналы в двоичные данные для дальнейшего исполь­зования на вышележащих уровнях.   Основная функция концентраторов (хабов) – повторение входящего пакета либо на всех портах, либо только на некоторых портах в соответствии с конкретным стандартом.   При значительной загрузке сети возникают многочисленные коллизии, приводящие к увеличению времени ожидания доступа к сети отдельных рабочих станций. Ограничения, возникающие из-за использования общей разделяемой среды, могут быть преодолены в результате разделения сети на несколько логических сегментов.

 

Мосты и коммутаторы являются устройствами логической структуризации сетей, работающих на канальном уровне стека сетевых протоколов. Мост – это физическое двухпортовое устройство, применяемое для связи сегментов сети. С его помощью можно объединить две ЛВС или разделить одну ЛВС на два сегмента. Обычный мост, связывающий однотипные сетевые сегменты в пределах одного помещения, называется локальным мостом. Мост-транслятор представляет собой устройство канального уровня, связывающее сегменты сети, в которых используются разные сетевые среды или разные протоколы. Удаленный мост с помощью технологий глобальных сетевых связей соединяет два сетевых сегмента, которые расположены на значительном расстоянии друг от друга. В современных сетях мосты практически вытеснены коммутаторами. В отличие от концентраторов, которые передают каждый входящий пакет через все порты, коммутаторы направляют входящий пакет только на порт, обеспечивающий доступ к целевой системе. Двумя основными типами коммутаторов являются коммутаторы сквозные и с промежуточной буферизацией.   Важнейший эксплуатационный параметр коммутатора – его производительность, которая определяется такими характеристиками, как скорость фильтрации кадров, скорость продвижения кадров, пропускная способность, задержка передачи кадра. Существенное влияние на производительность коммутатора оказывают тип коммутации («на лету» или с промежуточной буферизацией), размер буфера (буферов) кадров, производительность внутренней шины, производительность собственного процессора (или процессоров), размер внутренней адресной таблицы.    Контрольные вопросы и задания    1.

 

Что такое «сетевой адаптер» и какие функции он выполняет?  2. Опишите назначение, принцип действия и основные функции сетевых концентраторов.  3.

 

Какие характеристики локальных вычислительных сетей улучшаются в результате использования концентраторов?  4. Перечислите и охарактеризуйте устройства логической структуризации сетей, работающие на канальном уровне.

 

5. Дайте определение понятию «широковещательный домен».  6. В чем принципиальное отличие таких сетевых устройств, как коммутатор и концентратор?

 

7. Охарактеризуйте основные типы коммутаторов.  8.

 

Каковы преимущества и недостатки коммутаторов с промежуточной буферизацией?  9. Какие характеристики коммутатора влияют на его производительность?  10. Что понимают под скоростью фильтрации кадров?  11. В каких единицах измеряется пропускная способность коммутатора?

 

12. Как трактуется время задержки передачи кадра?  13. На какие параметры коммутатора оказывает влияние размер внутренней адресной таблицы?  14. Для каких целей используется внутренняя буферная память коммутатора?          10. Базовые сетевые технологии    10.1. Сетевые стандарты и спецификации    Международная организация по стандартизации ISO (Interna-tional Standardization Organization), представляющая собой всемирную федерацию национальных органов стандартизации, определяет стандарты как «документированные согла­шения, содержащие технические спецификации или другие точные критерии, которых следует придерживаться в качестве правил, директив или необходимых параметров, опре­деляющих соответствие материалов, продуктов, процессов и услуг своему назначению».

 

Разработкой стан­дартов в сфере современных вычислительных сетей занимается международный Инсти­тут инженеров по электротехнике и электронике IEEE (Institute of Electrical and Electronics Engineers).   В феврале 1980 года под эгидой IEEE был организован Комитет по стандартизации локальных и региональ­ных сетей (Local and Metropolitan Area Network Standards Committee), получивший на­звание Project 802 (мнемоническое числовое обозначение – «802» – от даты организации этого Комитета – «второй месяц восьмидесятого года»).

 

В результате деятельности ряда подкомитетов, работающих в рамках Комитета Project 802, было принято семейство стандартов IEEE 802.x, которые содержат рекомендации по проектированию сетей и сетевых устройств.

(Visited 1 times, 1 visits today)
Do NOT follow this link or you will be banned from the site! Пролистать наверх