[МУЗЫКА] [МУЗЫКА] Здравствуйте, с вами я, Николай Булахов, и мы продолжаем изучать компьютерные сети. И сейчас настало время поговорить о, пожалуй, самой распространенной технологии передачи данных в компьютерных сетях — об Ethernet. Если быть точным, то Ethernet — это целое семейство технологий пакетной передачи данных в локальных компьютерных сетях. И до середины 90-х годов она успешно конкурировала с другими такими же технологиями, например, ARCnet или Token Ring. Однако у Ethernet есть одно большое преимущество — это открытая технология в отличие от ближайших конкурентов, которые основывались на патентованных технологиях, что и позволило в конечном итоге Ethernet опередить всех на долгие годы. Также Ethernet определяет, какими должны быть сигналы и способы кодирования информации. Помимо этого, задает стандарт передаваемого пакета, который в данном случае называется фреймом. Помимо этого, определяется и способ доступа к общей среде передачи данных. Изначально предполагалось, что информация, передаваемая одним узлом сети через общую среду передачу данных, доносится ко всем участникам сетевого взаимодействия, и адресат, то есть тот, кому эта информация непосредственно предназначена, получает ее из сети и обрабатывает в дальнейшем. Отсюда и происходит название этой технологии — Ether (эфир) и net (сеть). Позже стандарт позволил использовать, помимо гибридно-коаксиального кабеля в качестве среды передачи данных, оптоволокно и витую пару. На физическом уровне модели ISO/OSI стандартизуется, как должен передаваться поток бит от отправителя к получателю. На канальном, втором уровне модели ISO/OSI, информация разбивается на отдельные части — фреймы. Помимо этого, используется адресация и контролируется доступ к общей среде передачи данных. Проведем аналогию. В азбуке Морзе используются два знака — точка и тире. Они могут быть в виде звука, света или изображения. Эта договоренность и есть физический уровень модели ISO/OSI. Однако цель обычно — это передача некоторого сообщения, состоящего из символов, букв, цифр и знаков препинания. Для этого общая последовательность точек и тире разбивается на некоторые порции — это уже и есть второй уровень модели ISO/OSI. Заметьте, при этом неважно, как мы представляем точку и тире. Важна только их комбинация. Как же сигнал кодируется в Ethernet-сетях? Это уже нетривиальный вопрос, ведь в качестве среды передачи данных у нас может быть и гибридно-коаксиальный кабель, и витая пара, и оптоволокно. К тому же даже в одной среде может быть реализована разная скорость передачи данных. Рассмотрим один из самых распространенных вариантов — манчестерское кодирование при использовании медных проводов в виде витой пары. Нам надо реализовать передачу двух логических состояний — двух символов, то есть нуля и единицы. Мы будем подавать напряжение на наши проводники. При этом переключение с высокого напряжения на низкое будет обозначать логический ноль, а переключение с низкого уровня на высокий — логическую единицу. Это удобно, так как нам не надо синхронизовать между собой приемник и передатчик, ведь сигнал будет меняться при передаче каждого отдельного бита. И длинная последовательность нулей, единиц или их чередование не будет приводить к установлению постоянно высокого уровня сигнала или постоянно низкого. В этом случае наша система не собьется при подсчете количества переданных нулей и единиц. Помимо этого, будет отсутствовать постоянная составляющая сигнала. И это тоже считается положительным фактором при построении линии связи. Теперь, когда вы выяснили, как по проводам передаются нолики и единички, перейдем на уровень выше. В сетях Ethernet информация разбивается на порции. Каждая такая порция называется кадром. Перед кадром передается 64-битная последовательность ноликов и единичек, которая призвана синхронизовать между собой приемник и передатчик. После передачи отдельного кадра передатчик обязан замолчать на время, эквивалентное передачи 12 байт. Это называется межкадровый интервал. Сам же кадр состоит из шести байт адреса отправителя, шести байт адреса получателя, двух байт-кода, определяющего протокол заголовка внутри данного фрейма, далее идут данные, и заканчивается это все двумя байтами циклической контрольной суммы, которая показывает, был ли наш фрейм передан без ошибок или же при передаче что-то случилось. Адрес отправителя и получателя — это шестибайтовые числа. Они присваиваются каждой сетевой плате в отдельности на заводе изготовителя. При этом гарантируется, что каждый адрес уникален на всей планете. Но мы с вами уже говорили о том, что Ethernet подразумевает наличие общей среды передачи данных для всех компьютеров. Как же они ее делят, если хотят пообщаться одновременно? Для этого используется метод коллективного доступа с опознаванием несущей и обнаружением коллизий — CSMA/CD. Если кто-то хочет передать фрейм информации, при этом среда передачи данных свободна, он может это сделать. В этом случае все одновременно будут видеть передаваемый по общей среде передачи данных кадр. Но воспримет его только тот, кто обнаружит свой адрес в заголовке этого фрейма в качестве адреса получателя. Сигналы распространяются с конечной скоростью, поэтому может так случиться, что два компьютера решат, что сеть свободна, и начнут передавать данные одновременно. Это штатная ситуация в работе сети. Сигналы компьютеров наложатся друг на друга и уже не смогут быть разделены и корректно интерпретированы, то есть прочитаны из сети. Такая ситуация называется коллизией. Поэтому передающие компьютеры одновременно с передачей данных прослушивают сеть. И если они обнаруживают, что принятые данные отличаются от передаваемых, они понимают, что возникла коллизия. В этом случае передающие компьютеры усиливают коллизию так называемой jam-последовательностью. После этого замолкают на короткий случайный промежуток времени, после чего пытаются повторить передачу кадра. Если же и в этот раз передача завершается неуспешно, то случайный интервал ожидания радикально увеличивается. Если при этом не удастся передать кадр 16 раз подряд, то он отбрасывается. Надо отметить, что сети Ethernet обеспечивают передачу данных с наибольшим усердием, то есть они не гарантируют стопроцентную передачу данных. Протоколы более высоких уровней должны заботиться сами о подтверждении доставки. В связи с таким методом передачи данных на физический размер сети и минимальную передаваемую порцию данных налагаются ограничения. Представьте, у вас есть сеть, в ней множество компьютеров, и крайний решил передать информацию. Сигнал пошел по проводам. И в момент, когда он уже почти достиг противоположного края сети, другой крайний компьютер тоже решил передать данные. Возникла коллизия и искаженный сигнал начал распространяться в противоположном направлении. Он уже почти достиг изначального отправителя, но тут отправитель завершил свою передачу. Отправитель в этом случае решит, что работа выполнена, а коллизия, которую он обнаружит чуть позже, вызвана передачей сигналов от других компьютеров. Это негативный вариант развития событий в нашем случае, потому что кадр так и не был передан и попыток передать его позже так и не будет предпринято. Таким образом, фрейм должен передаваться достаточно долго, чтобы сигнал, передаваемый с одного края сети, мог достигнуть противоположного края и вернуться обратно, то есть мы должны задать длину сегмента в сети и минимальный размер фрейма. Стандартом принято, что, например, при скорости передачи данных 100 мегабит в секунду размер кадра не может быть меньше 64 байт, размер сегмента сети не может превышать 100 метров, однако эти величины взяты с запасом. Точный расчет покажет вам, насколько эти величины загрубили. Теперь вы знаете, как работает Ethernet-сеть. На этом пока все. До следующей встречи. [МУЗЫКА] [МУЗЫКА]