□ Надежная доставка. Когда протокол канального уровня предоставляет услугу по надежной доставке, он гарантирует перемещение каждой дейтаграммы сетевого уровня по линии связи без ошибок. Вспомним, что некоторые протоколы транспортного уровня (как, например, TCP) также обеспечивают надежную доставку. Аналогично службе надежной доставки транспортного уровня, служба надежной доставки канального уровня поддерживается с помощью механизмов подтверждений и повторных передач (см. раздел «Принципы надежной передачи данных»). Служба надежной доставки транспортного уровня часто обслуживает линии связи с высокой вероятностью ошибок, характерной, например, для беспроводных линий связи. Таким образом, на канальном уровне ошибки исправляются локально — на той линии связи, на которой они возникают, что позволяет отказаться от повторной передачи данных протоколом транспортного или прикладного уровня. Однако в линиях с низкой вероятностью ошибок надежная доставка на канальном уровне может оказаться излишней. К таким линиям относятся волоконно-оптические и экранированные кабели, а также различные категории линий типа «витая пара». Поэтому многие протоколы для кабельных линий не предоставляют услуги по надежной доставке.

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

НЕ нашли? Не то? Что вы ищете?

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

□ Исправление ошибок. Исправление ошибок выполняет расширенная служба обнаружения ошибок. Такая служба способна не только обнаружить ошибку в кадре, но также определить, в каком именно разряде она произошла, и таким образом исправить некоторые ошибки. Услуга по исправлению ошибок предоставляется некоторыми протоколами канального уровня (например, ATM), но, как правило, не для всего пакета, а только для его заголовка. Эта тема будет обсуждаться в разделе «Обнаружение и исправление ошибок».

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

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

2. Адаптеры

В каждой линии связи протокол канального уровня обычно реализован в адаптере. Адаптер представляет собой плату, или карту, PCMCIA (Personal Computer Memory Card International Association — Международная ассоциация производителей плат памяти для персональных компьютеров IBM PC), на которой, как правило, установлены микросхемы памяти и DSP (Digital Signal Processor — цифровой обработчик сигналов), а также интерфейсы шины хоста и линии связи. Адаптеры также часто называют сетевыми интерфейсными картами (Network Interface Card, NIC). Как показано на рис. 12.2, сетевой уровень передающего узла (то есть хоста или маршрутизатора) передает дейтаграмму сетевого уровня адаптеру, управляющему передающей стороной линии связи. Адаптер помещает дейтаграмму в кадр, а затем передает кадр в канал связи. На другой стороне линии связи принимающий адаптер получает кадр целиком, извлекает из него дейтаграмму сетевого уровня и передает ее сетевому уровню. Если протокол канального уровня обеспечивает обнаружение ошибок, тогда передающий адаптер считает контрольную сумму кадра и помещает ее в кадр перед отправкой, а принимающий адаптер проверяет контрольную сумму полученного кадра. Если протокол канального уровня обеспечивает надежную доставку, тогда в адаптерах полностью реализуются механизмы надежной доставки (например, порядковые номера, таймеры и подтверждения). Если протокол канального уровня предоставляет возможность произвольного доступа (см. раздел «Протоколы коллективного доступа»), тогда этот протокол также целиком реализуется в адаптерах.

Рис. 12. 2 Протокол канального уровня реализован в адаптерах на двух концах линии связи

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

Рис. 12. 3 Адаптер представляет собой полуавтономное устройство

Как показано на рисунке, основными компонентами адаптера являются интерфейсы шины и линии. Интерфейс шины отвечает за общение с родительским узлом. Он переносит данные и управляющую информацию между адаптером и родительским узлом. Интерфейс линии отвечает за реализацию протокола канального уровня. Помимо формирования кадров и извлечения из кадров дейтаграмм, он может предоставлять услуги по обнаружению ошибок, произвольному доступу и другие услуги канального уровня. Он также включает цепи передачи и приема. Такие популярные технологии, как Ethernet, реализованы в интерфейсе линии при помощи набора микросхем, которые можно приобрести на рынке. По этой причине Ethernet-адаптеры невероятно дешевы — часто меньше 30 долларов за адаптер, поддерживающий скорости передачи 10 Мбит/с и 100 Мбит/с.

3. Протоколы коллективного доступа

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

Двухточечная линия связи состоит из передатчика на одном конце линии и приемника на другом конце. Для двухточечных линий связи разработано множество протоколов канального уровня. Ниже в этой главе будет рассказано о двух таких протоколах: РРР (Point-to-Point Protocol — протокол передачи от точки к точке) и HDLC (High-level Data Link Control — высокоуровневый протокол управления каналом).

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

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76