Если в потоке данных возникают пропуски, потому что протокол Ethernet теряет кадры, видит ли эти пропуски приложение на хосте В? Как отмечалось в главе 3, это полностью зависит от используемого приложением протокола (UDP или TCP). Если это протокол UDP, тогда приложению самому придется заниматься проблемой потерянных кадров. Если же это протокол TCP, то проблемой пропущенных кадров будет заниматься протокол TCP, с помощью механизма подтверждений и интервалов ожидания заставляя хост А передавать пропущенные данные повторно. Обратите внимание, когда протокол TCP передает данные повторно, эти данные снова продвигаются тем же Ethernet-адаптером. Так что в этом смысле Ethernet может повторять передачу данных. Однако следует помнить, что Ethernet-сеть не догадывается о том, что передает данные повторно, наивно полагая, что получает новенькую дейтаграмму с новыми данными.

Немодулированная передачаи Манчестерское кодирование

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

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

Рис. 13.2 Манчестерское кодирование

2. Протокол CSMA/CD

Узлы в локальной Ethernet-сети соединены широковещательным каналом, так что кадр, переданный одним адаптером, принимается всеми адаптерами локальной сети. В разделе «Протоколы коллективного доступа» упоминался применяемый в Ethernet алгоритм коллективного доступа CSMA/CD (Carrier Sense Multiple Access with Collision Detection — множественный доступ с контролем несущей и обнаружением коллизий). Вспомним некоторые его свойства.

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

Благодаря этим свойствам производительность протокола CSMA/CD значительно превышает производительность дискретного протокола ALOHA. В самом деле, если максимальная задержка распространения сигнала между станциями невелика, эффективность протокола CSMA/CD может достигать 100 %. Однако обратите внимание, что адаптеру приходится решать две важные задачи: прослушивать передачу другого адаптера (контролировать несущую) и обнаруживать коллизии. Эти две задачи адаптеры выполняют, измеряя уровни напряжения на линии перед началом и во время передачи.

Протокол CSMA/CD работает на каждом адаптере независимо от других адаптеров локальной Ethernet-сети.

1.  Адаптер принимает от своего родительского узла единицу обмена (PDU) сетевого уровня, формирует Ethernet-кадр и помещает его в буфер адаптера.

2.  Если адаптер определяет, что канал свободен (то есть в нем не наблюдается сигнала), он начинает передавать кадр. Если же канал занят, адаптер ждет, пока сигнал в линии не прекратится (плюс еще время, необходимое для передачи 96 бит), после чего начинает передачу кадра.

3.  Передавая кадр, адаптер отслеживает наличие напряжения от сигнала других адаптеров. Если адаптер успевает передать весь кадр, не обнаружив сигнала других адаптеров, передача кадра считается успешной.

4.  Если адаптер обнаруживает сигнал других адаптеров во время собственной передачи, он прекращает передачу кадра и передает 48-разрядный сигнал коллизии (jam signal).

5.  После этого адаптер входит в фазу экспоненциального отката. В частности, после п неудачных попыток повторить передачу одного и того же кадра адаптер выбирает значение К псевдослучайным образом из множества {0,1, 2,..., 2m - 1], где т:= min(n, 10). Затем адаптер выжидает в течение интервала времени, длительность которого равна К х 512 длительностей передачи одного бита, после чего возвращается к шагу 2.

Следует сделать несколько замечаний. Назначение сигнала коллизии — информировать все передающие адаптеры о том, что имела место коллизия. Рассмотрим следующий пример. Предположим, адаптер А начинает передавать кадр, и перед тем, как сигнал адаптера А достигнет адаптера В, адаптер В также начинает передачу. Поэтому адаптер В успевает передать всего несколько битов, после чего прерывает передачу. Разумеется, эти несколько битов достигают адаптера А, но скачка напряжения от них может оказаться недостаточно для того, чтобы адаптер А обнаружил коллизию. Чтобы адаптер А обнаружил коллизию наверняка (и также мог прервать свою передачу), адаптер В и передает 48-разрядный сигнал коллизии.

Теперь рассмотрим алгоритм экспоненциального отката. Прежде всего здесь следует обратить внимание на то, что время передачи одного бита очень мало; в Ethernet-сети со скоростью передачи данных 10 Мбит/с оно составляет всего лишь 0,1 мкс. Предположим, что адаптер пытается передать кадр в первый раз и обнаруживает коллизию. В этом случае с равной вероятностью 0,5 адаптер выбирает число К = 0 или К = 1. Если адаптер выбирает К = 0, тогда он, передав сигнал коллизии, немедленно переходит к шагу 2 алгоритма. Если же адаптер выбирает К = 1, тогда он, прежде чем перейти к шагу 2, ждет в течение 51,2 мкс. После второй коллизии подряд адаптер с равной вероятностью выбирает число К из набора {О, 1, 2, 3}. Испытав коллизию три раза подряд, адаптер выбирает число К из набора {0,1, 2, 3, 4, 5, 6, 7}. После десяти и более коллизий подряд число К выбирается из набора {0, 1, 2,..., 1023}. Таким образом, ряд чисел, из которого выбирается число К, растет экспоненциально с каждой следующей коллизией, пока количество попыток не достигнет 10. Поэтому алгоритм отката в протоколе Ethernet называется «экспоненциальным».

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

Почему используется экспоненциальный откат? Почему, например, не выбирать число К из набора (0,1, 2, 3,4, 5, 6, 7}? Причина в том, что после первой коллизии адаптер не знает, сколько адаптеров вовлечено в коллизию. Если число таких адаптеров невелико, имеет смысл выбирать число К из небольшого набора чисел. С другой стороны, если в коллизию вовлечено много адаптеров, лучше выбирать число К из большего набора (почему?). Увеличивая набор чисел после каждой коллизии, адаптер постепенно адаптируется к ситуации.

Также обратите внимание, что адаптер инициирует запуск алгоритма CSMA/CD при передаче каждого нового кадра. При этом, в частности, не учитывается, были или нет перед этим коллизии. Таким образом, возможно, что пока несколько адаптеров выжидают в состоянии экспоненциального отката, адаптер сумеет «протолкнуть» свой новый кадр.

Когда кадр для передачи есть только у одного узла, он может передавать данные с максимальной скоростью, предоставляемой технологией Ethernet (например, 10 Мбит/с, 100 Мбит/с или 1 Гбит/с). Однако если кадры одновременно хотят передавать несколько узлов, эффективная скорость передачи данных по каналу может быть значительно ниже. Определим эффективность Ethernet как оцененную за длительный период долю времени, в течение которого кадры передаются по каналу без коллизий при большом количестве активных узлов, у каждого из которых есть много кадров для передачи.

Чтобы найти аналитическое приближение эффективности Ethernet-сети, обозначим через tраспр максимальное время, необходимое для того, чтобы сигнал распространился между двумя самыми удаленными друг от друга адаптерами. Пусть tкадр обозначает время передачи Ethernet-кадра максимального размера (в локальной Ethernet-сети со скоростью передачи 10 Мбит/с это составляет приблизительно 1,2 мс). Вывод формулы эффективности локальной Ethernet-сети выходит за рамки темы этой книги, а здесь мы просто ее приведем:

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

3. Технологии Ethernet

На сегодняшний день наиболее распространенными технологиями Ethernet, являются технологии 10Base2, l0BaseT, 100BaseT и Gigabit Ethernet. Стандарт 10Base2 предусматривает использование коаксиального кабеля в сети с топологией общей шины и скорость передачи данных 10 Мбит/с. Стандарт l0BaseT предусматривает использование медной витой пары в сети с топологией звезды и скорость передачи данных 10 Мбит/с. Стандарт 100BaseT предусматривает использование, как правило, медной витой пары в сети с топологией звезды и скорость передачи данных 100 Мбит/с. Стандарт Gigabit Ethernet (гигабитная Ethernet-сеть) предусматривает использование оптоволоконного кабеля или медной витой пары и скорость передачи данных 1 Гбит/с. Эти технологии Ethernet стандартизированы рабочей группой IEEE 802.3, поэтому локальную Ethernet-сеть часто называют локальной сетью 802.3.

Из за большого объема этот материал размещен на нескольких страницах:
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