Протокол MACA проиллюстрирован на рис. 4.12. Рассмотрим ситуацию, в которой станция A передает станции B. Станция A начинает с того, что посылает станции B кадр RTS (Request To Send — запрос на передачу), как показано на рис. 4.12, а. Этот короткий кадр (30 байт) содержит длину кадра данных, который последует за ним. Затем станция B отвечает кадром CTS (Clear To Send — разрешение передачи), как показано на рис. 4.12, б. Кадр CTS также содержит длину информационного кадра (скопированную из кадра RTS). Приняв кадр CTS, станция A начинает передачу.
Теперь посмотрим, как реагируют станции, которые слышат передачу одного из этих кадров. Любая станция, которая слышит кадр RTS, находится близко к станции A и поэтому должна хранить молчание, пока кадр CTS не будет принят станцией A. Станции, слышащие кадр CTS, находятся вблизи от станции B, следовательно, должны воздержаться от передачи, пока станция B не получит кадр данных, длину которого они могут узнать из кадра CTS.
Рис. 4.12. Протокол MACA: а — станция A посылает кадр RTS станции B; б — станция B отвечает кадром CTS станции A
На рис. 4.12 станция C находится в зоне станции A, но не входит в зону станции B. Поэтому она слышит кадр RTS, передаваемый станцией A, но не слышит кадр CTS, которым отвечает станция B. Поскольку она не интерферирует с кадром CTS, она не обязана воздерживаться от передачи в то время, пока пересылается информационный кадр. Станция D, напротив, находится близко от станции B, но далеко от станции A. Она не слышит кадра RTS, но слышит кадр CTS, а это означает, что она находится вблизи станции, собирающейся принять кадр с данными. Поэтому ей нельзя вести передачу, пока этот кадр не будет передан. Станция E слышит оба управляющих сообщения и так же, как и станция D, должна хранить молчание, пока не будет завершена передача информационного кадра.
Несмотря на все меры предосторожности, конфликты все равно могут произойти. Например, станции B и C могут одновременно послать кадры RTS станции A. При этом кадры столкнутся и не будут приняты. В этом случае передатчики, не услышав кадр CTS в установленный срок, ждут случайное время и после этого повторяют попытку.
4.3. Сеть Ethernet
Итак, мы в целом закончили обсуждение общих вопросов, касающихся протоколов распределения канала. Пришло время перейти к практическим приложениям. Большое число технологий для персональных (PAN), локальных (LAN) и общегородских (MAN) сетей стандартизировано в серии стандартов IEEE 802. Некоторые стандарты выжили, некоторые — нет (см. табл. 1.4). Люди, верящие в реинкарнацию, считают, что одним из членов Ассоциации стандартов IEEE является вновь родившийся Чарльз Дарвин, отбраковывающий слабые технологии. В общем-то, действительно выжили сильнейшие. Наиболее важны стандарты 802.3 (Ethernet) и 802.11 (беспроводные ЛВС). Bluetooth (беспроводные персональные сети) развернуты сегодня очень широко, но их описывают другие стандарты, помимо 802.15. О 802.16 (беспроводные региональные сети) говорить всерьез пока не приходится. Вероятно, им будет посвящен раздел в 6-й редакции этой книги.
Мы начнем исследование реальных систем с Ethernet, вероятно, наиболее распространенном типе компьютерных сетей в мире. Существует два типа Ethernet: классический Ethernet (classic Ethernet), который решает проблему множественного доступа с помощью техник, представленных в этой главе; и коммутируемый Ethernet (switched Ethernet), в котором для соединения компьютеров используются устройства под названием коммутаторы. Важно понимать, что хотя в обоих названиях присутствует слово Ethernet, между этими сетями много различий. Классический Ethernet — это воплощение оригинальной задумки; эти сети работали на скоростях от 3 до 10 Мбит/с. Коммутируемый Ethernet — это более высокий уровень; эти сети работают на скоростях 100, 1000 или 10 000 Мбит/с и носят названия Fast Ethernet («быстрый Ethernet»), Gigabit Ethernet («гигабитный Ethernet») и 10-Gigabit Ethernet («10-гигабитный Ethernet»). Сегодня на практике используется только коммутируемый Ethernet.
Мы обсудим эти исторические формы Ethernet в хронологическом порядке, продемонстрировав развитие сети. Так как Ethernet и IEEE 802.3 — это одно и то же (за исключением двух небольших деталей, которые мы вкратце обсудим), то многие используют оба названия. Мы тоже будем говорить то «Ethernet», то «IEEE 802.3». Дополнительную информацию, касающуюся Ethernet, можно найти в книге (Spurgeon, 2000).
4.3.1. Физический уровень классической сети Ethernet
История Ethernet начинается приблизительно во времена ALOHA, когда студент Боб Меткальф получил магистерскую степень в Массачусетском технологическом университете, а потом сменил место жительство, чтобы защитить докторскую в Гарварде. Во время учебы он познакомился с работой Абрамсона. Она так заинтересовала его, что после выпуска из Гарварда он решил провести лето на Гавайях, работая с Абрамсоном, и только после этого перебираться в исследовательский центр Xerox. Оказавшись в исследовательском центре, он увидел то, что впоследствии должно было стать персональным компьютером. Однако машины были изолированы. Используя свои знания о работе Абрамсона, он, вместе с коллегой Дэвидом Боггсом, создал и реализовал первую локальную сеть (Metcalfe, Boggs, 1976). Для нее использовался длинный толстый коаксиальный кабель, а скорость сети составляла 3 Мбит/с.
Они назвали систему Ethernet в честь люминофорного эфира, через который, как когда-то считалось, распространяются электромагнитные лучи. (Когда в XIX веке британский физик Джеймс Клерк Максвелл обнаружил, что электромагнитное излучение можно описать волновым уравнением, ученые предположили, что пространство должно быть заполнено некой эфирной средой, с помощью которой излучение распространяется. Только после знаменитого эксперимента Майкельсона—Морли, проведенного в 1887 году, физики поняли, что электромагнитное излучение способно распространяться в вакууме.)
Система Xerox Ethernet оказалась настолько успешной, что в 1978 году DEC Intel и Xerox разработали стандарт 10-мегабитного Ethernet, который называется стандартом DIX (DIX standard). С небольшими изменениями в 1983 году стандарт DIX превратился в стандарт IEEE 802.3. К несчастью для Xerox, у этой компании уже к тому моменту была длинная история значительных изобретений (таких как персональный компьютер), которые они не сумели успешно выпустить на рынок (прочитайте об этом в книге «Fumbling the Future», Smith, Alexander, 1988). Когда стало понятно, что у Xerox нет никакой заинтересованности в Ethernet и предложить эта компания может разве что помощь в стандартизации, Меткальф основал собственную компанию, 3Com, и стал продавать адаптеры Ethernet для персональных компьютеров. Были проданы миллионы устройств.
Классический Ethernet — это один длинный кабель, обвивающий здание, к которому подключаются компьютеры. Такая архитектура показана на рис. 4.13. Первый вариант, называемый в народе толстым Ethernet (thick Ethernet), напоминал желтый садовый шланг с маркировкой каждые 2,5 метра — в этих местах подключались компьютеры. (По стандарту 802.3 не требовалось, чтобы кабель был желтым, но это подразумевалось.) Ему на смену пришел тонкий Ethernet (thin Ethernet); эти кабели лучше гнулись, а соединения выполнялись с помощью стандартных разъемов BNC. Тонкий Ethernet был намного дешевле и проще в установке, но длина сегмента не превышала 185 метров (вместо 500 метров для толстого Ethernet), и каждый сегмент поддерживал не более 30 машин (вместо 100).
Все версии Ethernet имеют ограничения по длине кабелей в сегменте, то есть участкам кабелей без использования усилителя. Для построения сетей больших размеров несколько кабелей соединяются повторителями (repeaters). Повторитель — это устройство физического уровня. Он принимает, усиливает (регенерирует) и передает сигналы в обоих направлениях. С точки зрения программного обеспечения, ряд кабелей, соединенных повторителями, не отличается от сплошного кабеля (отличие заключается только во временной задержке, связанной с повторителями).