Описание технологии Ethernet
Протокол CSMA/CD и кое-что о стандарте IEEE 802.3
Протокол CSMA/CD состоит из двух частей : Carrier Sense Multiple Access и Collision Detection. Первая часть определяет, каким образом рабочая станция с сетевым адаптером "ловит" момент, когда ей следует послать сообщение. В соответствии с протоколом CSMA, рабочая станция вначале слушает сеть, чтобы определить, не передаётся ли в данный момент какое-либо другое сообщение. Если слышится несущий сигнал (carrier tone), значит, в данный момент сеть занята другим сообщением - рабочая станция переходит в режим ожидания и находится в нём до тех пор, пока сеть не освободится. Когда в сети наступает молчание, станция начинает передачу. Вторая часть - Collision Detection - служит для разрешения ситуаций, когда две или более рабочие станции пытаются передавать сообщения одновременно. Если две станции начнут передавать свои пакеты одновременно, то передаваемые данные наложатся друг на друга и не одно из сообщений не дойдёт до получателя. Такую ситуацию называют конфликтом или коллизией (сигналы одной станции перемешиваются с сигналами другой). Collision Detection требует, чтобы станция прослушала сеть также и после передачи пакета. Если обнаруживается конфликт, станция повторяет передачу пакета через случайным образом выбранный промежуток времени. Затем она вновь проверяет, не произошёл ли конфликт. Термин "множественный доступ" подчёркивает тот факт, что все станции имеют одинаковое право на доступ к сети.
Если одна из станций обнаружит коллизию, она пошлёт специальный сигнал, предупреждающий другие станции о произошедшем конфликте. При коллизии уничтожаются все данные в сети. После коллизии станции пытаются передать данные повторно. Для того, чтобы предотвратить одновременную передачу, был разработан специальный механизм прерываний, который предписывает каждой станции выждать случайный промежуток времени перед повторной передачей. Станция, которой достался самый короткий период ожидания, первой получит право на очередную попытку передать данные, а остальные определят, что сеть занята и вновь будут ожидать. Единицей измерения времени ожидания является удвоенное время распространения сигнала из конца в конец отрезка кабеля, равное примерно 51.2 мс. После первого конфликта каждая станция ждёт 0 или 1 единицу времени, прежде, чем попытается возобновить передачу. Если снова произошёл конфликт, что может быть, если две станции выбрали одно и то же число, то каждая из них выбирает одно из четырёх случайных чисел в качестве времени ожидания : 0,1,2,3. Если и в третий раз произошёл конфликт, случайное число выбирается из интервала 0-7. Таким образом, вероятность новой коллизии уменьшается. После десяти последовательных конфликтов интервал выбора случайных чисел фиксируется и становится равным 0-1023. После шестнадцати конфликтов контроллер отказывается от дальнейших попыток передать кадр и сообщает об этом компьютеру. Все дальнейшие действия по выходу из сложившейся ситуации осуществляются под руководством протоколов верхнего уровня. Такой алгоритм позволяет разрешить коллизии, когда конфликтующих станций немного.
Обнаружение конфликтов основано на сравнении посланных сигналов и сигналов других рабочих станций. Аппаратное обеспечение станции должно во время передачи "прослушивать" кабель для определения факта коллизии. Если сигнал, который станция регистрирует, отличается от передаваемого ею, значит, произошла коллизия. Поэтому, должен существовать механизм, позволяющий различать сигналы в кабеле. Этот механизм был найден - им стало манчестерское кодирование и дифференциальное манчестерское кодирование сигнала.
При манчестерском кодировании каждый интервал времени, в течение которого происходит передача одного бита, разделяется на две половинки. Единичный бит кодируется высоким напряжением в первой половине и низким напряжением во второй. Нулевой бит кодируется противоположным образом. Изменение напряжения в середине интервала облегчает принимающей стороне синхронизацию с передающей станцией.
Дифференциальное манчестерское кодирование представляет собой разновидность обычного манчестерского кодирования. В этом случае единичный бит характеризуется отсутствием изменения напряжения (напряжения в обеих половинках равны). Изменение напряжения в начале бита означает, что это нулевой бит.
Недостатком схемы дифференциального манчестерского кодирования является необходимость удвоения ширины полосы пропускания по сравнению с прямым кодированием. Однако, вследствие своей простоты, манчестерское кодирование используется в стандарте 802.3. Уровни высокого и низкого напряжения составляют +0.85 В и -0.85 В. Прямое двоичное кодирование построено на кодировании нулевого бита нулевым напряжением ( 0 В) и единичного бита ненулевым напряжением (5 В).
Описанные здесь принципы протокола CSMA/CD и способ кодирования крайне необходимы для для более или менее полного описания технологии Ethernet.