В каком формате передаются данные через ethernet
Интернет очень большой и комплексный. Но на базовом уровне это всего лишь связь между различными компьютерами (не только персональными). Эта связь представляет из себя сетевые протоколы передачи данных — набор правил, который определяет порядок и особенности передачи информации для конкретных случаев.
Протоколов большое множество. Про основные из них рассказано далее.
IP — Internet Protocol
Протокол передачи, который первым объединил отдельные компьютеры в единую сеть. Самый примитивный в этом списке. Он является ненадёжным, т. е. не подтверждает доставку пакетов получателю и не контролирует целостность данных. По протоколу IP передача данных осуществляется без установки соединения.
Основная задача этого протокола — маршрутизация датаграмм, т. е. определение пути следования данных по узлам сети.
Популярная версия на текущий момент — IPv4 с 32-битными адресами. Это значит, что в интернете могут хранится 4.29 млрд адресов IPv4. Число большое, но не бесконечное. Поэтому существует версия IPv6, которая поможет решить проблему переполнения адресов, ведь уникальных IPv6 будет 2 ^ 128 адресов (число с 38 знаками).
TCP/IP — Transmission Control Protocol/Internet Protocol
Это стек протоколов TCP и IP. Первый обеспечивает и контролирует надёжную передачу данных и следит за её целостностью. Второй же отвечает за маршрутизацию для отправки данных. Протокол TCP часто используется более комплексными протоколами.
UDP — User Datagram Protocol
Протокол, обеспечивающий передачу данных без предварительного создания соединения между ними. Этот протокол является ненадёжным. В нём пакеты могут не только не дойти, но и прийти не по порядку или вовсе продублироваться.
Основное преимущество UDP протокола заключается в скорости доставки данных. Именно поэтому чувствительные к сетевым задержкам приложения часто используют этот тип передачи данных.
FTP — File Transfer Protocol
Протокол передачи файлов. Его использовали ещё в 1971 году — задолго до появления протокола IP. На текущий момент этим протоколом пользуются при удалённом доступе к хостингам. FTP является надёжным протоколом, поэтому гарантирует передачу данных.
Этот протокол работает по принципу клиент-серверной архитектуры. Пользователь проходит аутентификацию (хотя в отдельных случаях может подключаться анонимно) и получает доступ к файловой системе сервера.
Это не только система доменных имён (Domain Name System), но и протокол, без которого эта система не смогла бы работать. Он позволяет клиентским компьютерам запрашивать у DNS-сервера IP-адрес какого-либо сайта, а также помогает обмениваться базами данных между серверами DNS. В работе этого протокола также используются TCP и UDP.
NTP — Network Time Protocol
Не все протоколы передачи нужны для обмена классического вида информацией. NTP — протокол для синхронизации локальных часов устройства со временем в сети. Он использует алгоритм Марзулло. Благодаря нему протокол выбирает более точный источник времени. NTP работает поверх UDP — поэтому ему удаётся достигать большой скорости передачи данных. Протокол достаточно устойчив к изменениям задержек в сети.
Последняя версия NTPv4 способна достигать точности 10мс в интернете и до 0,2мс в локальных сетях.
SSH — Secure SHell
Протокол для удалённого управления операционной системой с использованием TCP. В SSH шифруется весь трафик, причём с возможностью выбора алгоритма шифрования. В основном это нужно для передачи паролей и другой важной информации.
Также SSH позволяет обрабатывать любые другие протоколы передачи. Это значит, что кроме удалённого управления компьютером, через протокол можно пропускать любые файлы или даже аудио/видео поток.
SSH часто применяется при работе с хостингами, когда клиент может удалённо подключиться к серверу и работать уже оттуда.
Статья получилась довольно объёмная, рассмотренные темы — форматы Ethenet фреймов, границы размеров L3 Payload, эволюция размеров Ethernet заголовков, Jumbo Frame, Baby-Giant, и много чего задето вскользь. Что-то вы уже встречали в обзорной литературе по сетям передачи данных, но со многим, однозначно, не сталкивались, если глубоко не занимались изысканиями.
Начнём с рассмотрения форматов заголовков Ethernet фреймов в очереди их появления на свет.
Форматы Ehternet фреймов.
1) Ethernet II
Рис. 1
Preamble – последовательность бит, по сути, не являющаяся частью ETH заголовка определяющая начало Ethernet фрейма.
DA (Destination Address) – MAC адрес назначения, может быть юникастом, мультикастом, бродкастом.
SA (Source Address) – MAC адрес отправителя. Всегда юникаст.
Payload – L3 пакет размером от 46 до 1500 байт
FCS (Frame Check Sequences) – 4 байтное значение CRC используемое для выявления ошибок передачи. Вычисляется отправляющей стороной, и помещается в поле FCS. Принимающая сторона вычисляет данное значение самостоятельно и сравнивает с полученным.
Данный формат был создан в сотрудничестве 3-х компаний – DEC, Intel и Xerox. В связи с этим, стандарт также носит название DIX Ethernet standard. Данная версия стандарта была опубликована в 1982г (первая версия, Ehernet I – в 1980г. Различия в версиях небольшие, формат в целом остался неизменным). В 1997г. году данный стандарт был добавлен IEEE к стандарту 802.3, и на данный момент, подавляющее большинство пакетов в Ethernet сетях инкапсулированы согласно этого стандарта.
2) Ethernet_802.3/802.2 (802.3 with LLC header)
Рис. 2
Как вы понимаете, комитет IEEE не мог смотреть спокойно, как власть, деньги и женщины буквально ускользают из рук. Поэтому, занятый более насущными проблемами, за стандартизацию технологии Ethernet взялся с некоторым опозданием (в 1980 взялись за дело, в 1983 дали миру драфт, а в 1985 сам стандарт), но большим воодушевлением. Провозгласив инновации и оптимизацию своими главными принципами, комитет выдал следующий формат фрейма, который вы можете наблюдать на Рисунке 2.
Первым делом обращаем внимание на то, что “ненужное” поле E-TYPE преобразовано в поле Length, которое указывало на количество байт следующее за этим полем и до поля FCS. Теперь, понять у кого длинее можно было уже на втором уровне системы OSI. Жить стало лучше. Жить стало веселее.
Но, указатель на тип протокола 3его уровня был нужен, и IEEE дало миру следующую инновацию — два поля по 1 байту — Source Service Access Point(SSAP) и Destination Service Access Point (DSAP). Цель, таже самая, – идентифицировать вышестоящий протокол, но какова реализация! Теперь, благодаря наличию двух полей в рамках одной сессии пакет мог передаваться между разными протоколами, либо же один и тот же протокол мог по разному называться на двух концах одной сессии. А? Каково? Где ваше Сколково?
Не давая себе передышки, в IEEE зарезервировали по 1 биту в SSAP и DSAP. В SSAP под указание command или response пакета, в DSAP под указание группового или индивидуального адреса (см. Рис. 6). В Ethernet сетях эти вещи распространения не получили, но количество бит в полях SAP сократилось до 7, что оставило лишь 128 возможных номера под указание вышестоящего протокола. Запоминаем этот факт, к нему мы ещё вернёмся.
Было уже сложно остановиться в своём стремлении сделать лучший формат фрейма на земле, и в IEEE фрейм формате появляется 1 байтное поле Control. Отвечающее, не много, не мало, за Connection-less или же Connection-oriented соединение!
Выдохнув и осмотрев своё детище, в IEEE решили взять паузу.
Замечание: Рассматриваемые 3 поля — DSAP, SNAP и Control и являются LLC заголовком.
3) «Raw» 802.3
Рис. 3
Данный «недостандарт» явил в мир Novell. Это были лихие 80-ые, все выживали, как могли, и Novell не был исключением. Заполучив ещё в процессе разработки спецификации стандарта 802.3/802.2, и лёгким движением руки выкинув LLC заголовок, в Novell получили вполне себе неплохой фрейм формат (с возможность измерения длины на втором уровне!), но одним существенным недостатком – отсутствием возможности указания вышестоящего протокола. Но, как вы уже могли догадаться, работали там ребята не глупые, и по здравому размышлению выработали решение – «а обратим ка мы свои недостатки в свои же достоинства», и ограничили этот фрейм-формат исключительно IPX протоколом, который сами же и поддерживали. И задумка хорошая, и план был стратегически верный, но, как показала история, не фортануло.
4) 802.3 with SNAP Header.
Время шло. В комитет IEEE приходило осознание того, что номера протоколов и деньги кончаются. Благодарные пользователи засыпали редакцию письмами, где 3-х байтный LLC заголовок ставился в один ряд с такими великими инновациями человечества, как оборудование собаки 5ой ногой, или же с рукавом, который можно использовать для оптимизации женской анатомии. Выжидать дальше было нельзя, настало время заявить о себе миру повторно.
Рис. 4
И в помощь страждущим от нехватки номеров протоколов (их всего могло быть 128 – мы упоминали), IEEE вводит новый стандарт фрейма Ethernet SNAP (Рис. 4). Основное нововведение — добавление 5-ти байтного поля Subnetwork Access Protocol (SNAP), которое в свою очередь состоит из двух частей – 3х байтного поля Organizationally Unique Identifier (OUI) и 2х байтного Protocol ID (PID) — Рис. 5.
Рис. 5
OUI или же vendor code – позволяет идентифицировать пропиетарные протоколы указанием вендора. К примеру, если вы отловите WireShark`ом пакет PVST+, то в поле OUI увидите код 0x00000c, который является идентификатором Cisco Systems (Рис. 6).
Рис. 6
Замечание: Встретить пакет с инкапсуляцией в формат фрейма 802.3 SNAP довольно легко и сейчас – это все протоколы семейства STP, протоколы CDP, VTP, DTP.
Поле PID это, по сути, то же поле EtherType из DIX Ethernet II — 2 байта под указание протокола вышестоящего уровня. Так как ранее, для этого использовались DSAP и SSAP поля LLC заголовка, то для указания того, что тип вышестоящего протокола нужно смотреть в поле SNAP, поля DSAP и SSAP принимают фиксированное значение 0xAA (также видно на Рис. 6)
Замечание: При использовании для переноса IP пакетов формата фрейма LLC/SNAP, IP MTU снижается с 1500 до 1497 и 1492 байт соответственно.
По заголовкам в формате фрейма в принципе всё. Хотел бы обратить внимание на ещё один момент в формате фрейма – размер payload. Откуда взялся этот диапазон — от 46 до 1500 байт?
Размер L3 Payload.
Откуда взялось нижнее ограничение, знает, пожалуй, каждый, кто хотя бы читал первый курикулум CCNA. Данное ограничение является следствием ограничения в размер фрейма в 64 байта (64 байта – 14 байт L2 заголовок — 4 байта FCS = 46 байт ) накладываемого методом CSMA/CD – время требуемое на передачу 64 байт сетевым интерфейсом является необходимым и достаточным для определения коллизии в среде Ethernet.
Замечание: В современных сетях, где возникновение коллизий исключено, данное ограничение уже не актуально, но требование сохраняется. Это не единственный «аппендикс» оставшийся с тех времен, но о них поговорим в другой статье.
- Задержка при передаче – чем больше фрейм, тем дольше длится передача. Для ранних сетей, где Collision домен не ограничивался портом, и все станции должны были ждать завершения передачи, это было серьёзной проблемой.
- Чем больше фрейм, тем больше вероятность того что фрейм при передаче будет поврежден, что приведет к необходимости повторной передачи, и все устройства в collision домене будут вынуждены опять ожидать.
- Ограничения, накладываемые памятью используемой под интерфейс буферы – на тот момент (1979г) увеличение буферов значительно удорожало стоимость интерфейса.
- Ограничение, вносимое полем Length/Type – в стандарте закреплено, что все значения выше 1536 (от 05-DD до 05-FF.) указывают на EtherType, соответственно длина должна быть меньше 05-DC. (У меня правда есть подозрение, что это скорее следствие, чем предпосылка, но вроде инфа от разработчиков стандарта 802.3)
Замечание: Фреймы меньше 64 байт называются Runts, фреймы больше 1518 байт называются Giants. Просмотреть кол-во таких фреймов полученных на интерфейсе можно командой show interface gigabitEthernet module/number и show interface gigabitEthernet module/number counters errors. Причём до IOS 12.1(19) в счётчики шли как фреймы с неверным, так и верным CRS (хотя вторые не всегда дропались – зависит от платформы и условий). А вот начиная с 12.1.(19) отображаются в этих счётчиках только те runt и giant фреймы, которые имеют неверный CRS, фреймы меньше 64 байт, но с верным CRS (причина возникновения обычно связана с детегированием 802.1Q или источником фреймов, а не проблемами физического уровня) с этой версии попадают в счётчик Undersize, дропаются они, или же форвардятся дальше, зависит от платформы.
Эволюция размеров Ethernet заголовков.
- 802.3AC — увеличивает максимальный размер фрейма до 1522 – добавляется Q-tag – несущий информацию о 802.1Q (VLAN tag) и 802.1p (биты под COS)
- 802.1AD — увеличивает максимальный размер фрейма до 1526, поддержка QinQ
- 802.1AH (MIM) – Provider Bridge Backbone Mac in Mac + 30 байт к размеру фрейма
- MPLS – увеличиваем размер фрейма на стек меток 1518 + n*4, где n – количество меток в стеке.
- 802.1AE – Mac Security, к стандартным полям добавляются поля Security Tag и Message Authentication Code + 68 байт к размеру фрейма.
Все эти фреймы увеличенного размера группируются под одни именем – Baby-Giant frames. Негласное верхнее ограничение по размерам для Baby-Giant – это 1600 байт. Современные сетевые интерфейсы будут форвардить эти фреймы, зачастую, даже без изменения значения HW MTU.
Отдельно обратим внимание на спецификации 802.3AS — увеличивает максимальный размер фрейма до 2000 (но сохраняет размер MTU в 1500 байт!). Увеличение приходится на заголовок и трейлер. Изначально увеличение планировалось на 128 байт – для нативной поддержки стандартом 802.3 вышеперечисленных расширений, но в итоге сошлись на 2х тысячах, видимо, чтобы два раза не собираться (или как говорят в IEEE – this frame size will support encapsulation requirements of the foreseeable future). Стандарт утвержден в 2006 году, но кроме как на презентациях IEEE, я его не встречал. Если у кого есть что добавить здесь (и не только здесь) – добро пожаловать в комменты. В целом тенденция увеличения размера фрейма при сохранении размера PAYLOAD, порождает у меня в голове смутные сомнения в правильности выбранного направления движения.
Замечание: Немного в стороне от перечисленного обосновался FCoE фрейм – размер фрейма до 2500 байт, зачастую, эти фреймы называются mini-jumbo. Для их саппорта необходимо включать поддержку jumbo-frame.
- Выгода соотношения Payload к заголовкам. Чем больше это соотношение, тем эффективней мы можем использовать линии связи. Конечно здесь разрыв будет не такой как в сравнении с использованием пакетов в 64 байт и 1518 байт для TCP сессий. Но свои 3-8 процентов, в зависимости от типа трафика выиграть можно.
- Значительно меньшее количество заголовков генерирует меньшую нагрузку на Forwading Engine, также и на сервисные Engine. К примеру, frame rate для 10G линка загруженного фреймами по 1500 байт равен 812 744 фреймов в секунду, а тот же линк загруженный Jumbo фреймами в 9000 байт генерирует фрейм рейт всего лишь в 138 587 фрейм в секунду. На рисунке 7 приведены график из отчёта Alteon Networks (ссылка будет внизу статьи) утилизации CPU и гигабитного линка, в зависимости от типа используемого размера фрейма.
- Увеличение TCP Throughput при изменении размера MTU — staff.psc.edu/rreddy/networking/mtu.html
- Чем больше фрейм, тем дольше он будет передаваться (Рис. 8):
- Буферы в памяти сетевых устройств заполняются быстрее, что может вызвать нежелательные последствия. По сути, решаемо на стадии проектирования оборудования, но увеличивает стоимость.
- Проприетарная реализация у каждого производителя – все устройства должны поддерживать или одинаковые размеры Jumbo фрейма, или же наборы размеров.
- Использование на больших участках сети находящихся под разным административным контролем, по сути, невозможно, из-за отсутствия механизма Jumbo Frame Discovery – промежуточный узел может не поддерживать Jumbo Frame совсем или определенный размер.
- В серверных кластерах
- При бэкапировании
- Network File System (NFS) Protocol
- iSCSI SANs
- FCoE SANs
Замечание: Верхнее ограничение размера есть и у Jumbo MTU. Оно определяется размером поля FCS (4 байт) и алгоритмом Cyclic Redundancy Check и равняется 11 455 байт. На практике же, Jumbo MTU обычно ограничен размером в 9216 байт, на некоторых платформах в 9000 байт, на более старом железе в 8092 байт (речь о Cisco).
Фух, в принципе всё. Что хотел рассмотреть по теории, рассмотрели. По конфигурации размеров MTU и теории с финтами стоящими за этими тремя буквами, прошу в мою прошлую статью – «Maximum Transmission Unit (MTU). Мифы и рифы».
В заключение обещанный линк на отчёт Alteon Networks «Extended Frame Sizes for Next Generation Ethernets» — staff.psc.edu/mathis/MTU/AlteonExtendedFrames_W0601.pdf, и небольшой анонс на следующую статью – в ней мы падём ещё ниже — на физический уровень, и будем разбираться с тяжелым наследием CSMA/CD, энкодингами, и, походя, зацепим ещё чего из злободневного.
Кто-то считает, что это очевидные вещи, другие скажут, что скучная и ненужная теория. Тем не менее на собеседованиях периодически можно услышать подобные вопросы. Мое мнение: о том, о чем ниже пойдет речь, нужно знать всем, кому приходится брать в руки «обжимку» 8P8C (этот разъем обычно ошибочно называют RJ-45). На академическую глубину не претендую, воздержусь от формул и таблиц, так же за бортом оставим линейное кодирование. Речь пойдет в основном о медных проводах, не об оптике, т.к. они шире распространены в быту.
Технология Ethernet описывает сразу два нижних уровня модели OSI. Физический и канальный. Дальше будем говорить только о физическом, т.е. о том, как передаются биты между двумя соседними устройствами.
Технология Ethernet — часть богатого наследия исследовательского центра Xerox PARC. Ранние версии Ethernet использовали в качестве среды передачи коаксиальный кабель, но со временем он был полностью вытеснен оптоволокном и витой парой. Однако важно понимать, что применение коаксиального кабеля во многом определило принципы работы Ethernet. Дело в том, что коаксиальный кабель — разделяемая среда передачи. Важная особенность разделяемой среды: ее могут использовать одновременно несколько интерфейсов, но передавать в каждый момент времени должен только один. С помощью коаксиального кабеля можно соединит не только 2 компьютера между собой, но и более двух, без применения активного оборудования. Такая топология называется шина. Однако если хотябы два узла на одной шине начнут одновременно передавать информацию, то их сигналы наложатся друг на друга и приемники других узлов ничего не разберут. Такая ситуация называется коллизией, а часть сети, узлы в которой конкурируют за общую среду передачи — доменом коллизий. Для того чтоб распознать коллизию, передающий узел постоянно наблюдает за сигналов в среде и если собственный передаваемый сигнал отличается от наблюдаемого — фиксируется коллизия. В этом случае все узлы перестают передавать и возобновляют передачу через случайный промежуток времени.
Диаметр коллизионного домена и минимальный размер кадра
Таким образом чем больше потенциальный размер сегмента сети, тем больше накладных расходов уходит на передачу порций данных маленького размера. Разработчикам технологии Ethernet пришлось искать золотую середину между двумя этими параметрами, и минимальным размером кадра была установлена величина 64 байта.
Витая пара и дуплексный режим рабты
Витая пара в качестве среды передачи отличается от коаксиального кабеля тем, что может соединять только два узла и использует разделенные среды для передачи информации в разных направлениях. Одна пара используется для передачи (1,2 контакты, как правило оранжевый и бело-оранжевый провода) и одна пара для приема (3,6 контакты, как правило зеленый и бело-зеленый провода). На активном сетевом оборудовании наоборот. Не трудно заметить, что пропущена центральная пара контактов: 4, 5. Эту пару специально оставили свободной, если в ту же розетку вставить RJ11, то он займет как раз свободные контакты. Таким образом можно использовать один кабели и одну розетку, для LAN и, например, телефона. Пары в кабеле выбраны таким образом, чтоб свести к минимуму взаимное влияние сигналов друг на друга и улучшить качество связи. Провода одной пару свиты между собой для того, чтоб влияние внешних помех на оба провода в паре было примерно одинаковым.
Для соединения двух однотипных устройств, к примеру двух компьютеров, используется так называемый кроссовер-кабель(crossover), в котором одна пара соединяет контакты 1,2 одной стороны и 3,6 другой, а вторая наоборот: 3,6 контакты одной стороны и 1,2 другой. Это нужно для того, чтоб соединить приемник с передатчиком, если использовать прямой кабель, то получится приемник-приемник, передатчик-передатчик. Хотя сейчас это имеет значение только если работать с каким-то архаичным оборудованием, т.к. почти всё современное оборудование поддерживает Auto-MDIX — технология позволяющая интерфейсу автоматически определять на какой паре прием, а на какой передача.
Возникает вопрос: откуда берется ограничение на длину сегмента у Ethernet по витой паре, если нет разделяемой среды? Всё дело в том, первые сети построенные на витой паре использовали концентраторы. Концентратор (иначе говоря многовходовый повторитель) — устройство имеющее несколько портов Ethernet и транслирующее полученный пакет во все порты кроме того, с которого этот пакет пришел. Таким образом если концентратор начинал принимать сигналы сразу с двух портов, то он не знал, что транслировать в остальные порты, это была коллизия. То же касалось и первых Ethernet-сетей использующих оптику (10Base-FL).
Зачем же тогда использовать 4х-парный кабель, если из 4х пар используются только две? Резонный вопрос, и вот несколько причин для того, чтобы делать это:
- 4х-парный кабель механически более надежен чем 2х-парный.
- 4х-парный кабель не придется менять при переходе на Gigabit Ethernet или 100BaseT4, использующие уже все 4 пары
- Если перебита одна пара, можно вместо нее использовать свободную и не перекладывать кабель
- Возможность использовать технологию Power over ethernet
Не смотря на это на практике часто используют 2х-парный кабель, подключают сразу 2 компьютера по одному 4х-парному, либо используют свободные пары для подключения телефона.
Gigabit Ethernet
В отличии от своих предшественников Gigabit Ethernet всегда использует для передачи одновременно все 4 пары. Причем сразу в двух направлениях. Кроме того информация кодируется не двумя уровнями как обычно (0 и 1), а четырьмя (00,01,10,11). Т.е. уровень напряжения в каждый конкретный момент кодирует не один, а сразу два бита. Это сделано для того, чтоб снизить частоту модуляции с 250 МГц до 125 МГц. Кроме того добавлен пятый уровень, для создания избыточности кода. Он делает возможной коррекцию ошибок на приеме. Такой вид кодирования называется пятиуровневым импульсно-амплитудным кодированием (PAM-5). Кроме того, для того, чтоб использовать все пары одновременно для приема и передачи сетевой адаптер вычитает из общего сигнала собственный переданный сигнал, чтоб получить сигнал переданный другой стороной. Таким образом реализуется полнодуплексный режим по одному каналу.
Дальше — больше
10 Gigabit Ethernet уже во всю используется провайдерами, но в SOHO сегменте не применяется, т.к. судя по всему там вполне хватает Gigabit Ethernet. 10GBE качестве среды распространения использует одно- и многомодовое волокно, с или без уплотнением по длине волны, медные кабели с разъемом InfiniBand а так же витую пару в стандарте 10GBASE-T или IEEE 802.3an-2006.
40-гигабитный Ethernet (или 40GbE) и 100-гигабитный Ethernet (или 100GbE). Разработка этих стандартов была закончена в июле 2010 года. В настоящий момент ведущие производители сетевого оборудования, такие как Cisco, Juniper Networks и Huawei уже заняты разработкой и выпуском первых маршрутизаторов поддерживающих эти технологии.
В заключении стоит упомянуть о перспективной технологии Terabit Ethernet. Боб Меткалф, создатель предположил, что технология будет разработана к 2015 году, и так же сказал:
Чтобы реализовать Ethernet 1 ТБит/с, необходимо преодолеть множество ограничений, включая 1550-нанометровые лазеры и модуляцию с частотой 15 ГГц. Для будущей сети нужны новые схемы модуляции, а также новое оптоволокно, новые лазеры, в общем, все новое
UPD: Спасибо хабраюзеру Nickel3000, что подсказал, про то что разъем, который я всю жизнь называл RJ45 на самом деле 8P8C.
UPD2:: Спасибо пользователю Wott, что объяснил, почему используются контакты 1,2,3 и 6.
Вынужденная пауза в выходе новых статей подошла к концу и, собственно, этой статьей мы положим начало активному периоду наполнения сайта новым контентом. С выбором темы для статьи было в этот раз все максимально просто - в далекие-далекие времена была обещана статья про работу с Ethernet, наконец-то настало время исполнить обещанное. Но начнем мы для начала с общего обзора и описания технологии и некоторых нюансов, связанных с работой. А уже в следующих статьях будет практическое использование.
Семейство технологий Ethernet.
Как в самом начале не привести максимально "стандартное" и распространенное определение, вот оно: Ethernet - семейство технологий пакетной передачи данных между устройствами для компьютерных и промышленных сетей. А теперь уже переходим непосредственно к сути.
В сетевой модели OSI (про нее скоро тоже будет статья, а здесь появится ссылка на нее) Ethernet отвечает за 2 самых низких уровня - физический и канальный. Собственно, физический уровень определяет метод, который используется для непосредственной передачи двоичных данных. Канальный же, в свою очередь, обеспечивает упаковку полученных с физического уровня данных в структурированные кадры, а также контролирует их целостность и безошибочность.
Модификации Ethernet.
Классификация модификаций Ethernet в основном заключается в различиях двух факторов - используемого типа кабеля, а также возможной скорости передачи данных. Различают:
Варианты соединения | Скорость | |
---|---|---|
Ethernet | Коаксиальный кабель, оптика, витая пара | 10 Мб/с |
Fast Ethernet | Оптика, витая пара | 100 Мб/с |
Gigabit Ethernet | Оптика, витая пара | 1 Гб/с |
10G Ethernet | Оптика, витая пара | 10 Гб/с |
Как мы и отметили сразу, различаются, в первую очередь, скорость передачи данных и тип используемого кабеля. На заре развития Ethernet использовались исключительно коаксиальные кабели, и лишь затем появились варианты с витой парой и оптикой, что привело к значительному расширению возможностей. К примеру, использование витой пары дает одновременно:
- на порядки более высокую помехозащищенность, благодаря использованию дифференциального сигнала, что мы уже отмечали ранее, при обсуждении RS-485.
- повышенная надежность сети, в основном, за счет появления возможности использовать соединение по топологии "звезда". То есть при обрыве связи между любыми двумя узлами сети это не влияет на незатронутые этим обрывом остальные узлы.
- возможность использовать Full Duplex передачу данных. В двух словах об этом, наглядная табличка:
Внутри указанных четырех модификаций (Ethernet, Fast Ethernet, Gigabit Ethernet, 10G Ethernet) присутствует дополнительное "внутреннее" разделение. Например, возьмем 10 Мбит/с Ethernet. Этот тип включает в себя:
Ethernet (10 Мб/с) |
---|
10Base-2 |
10Base-5 |
10Base-T |
10Base-F |
10Base-FL |
При этом различная физическая реализация подключения (разные кабели) приводят к возможности использования разных топологий сети. Для 10Base-5 максимально топорно:
А вот 10Base-T уже может использовать полнодуплексную передачу данных:
Здесь, как видите присутствует устройство под названием сетевой концентратор. Поэтому небольшое лирическое отступление на эту тему.
Зачастую термины сетевой концентратор, сетевой коммутатор и маршрутизатор перемешиваются и могут использоваться для описания одного и того же. Но строго говоря, все эти три термина относятся к абсолютно разному типу устройств:
- Сетевой концентратор (хаб) работает на 1-м (физическом) уровне модели OSI и ретранслирует сигнал с одного входящего порта, на несколько исходящих. На этом его функционал заканчивается.
- Сетевой коммутатор (свитч) работает на 2-м (канальном уровне). Здесь также происходит передача данных от одного устройства нескольким, но при этом коммутатор анализирует кадры на предмет MAC-адреса получателя и передает пакет только тому узлу, которому он адресован(!). Адресацию и структуру кадров подробно разберем чуть ниже.
- Маршрутизатор же и вовсе работает на 3-м уровне (сетевом) модели OSI.
Возвращаемся к схеме для стандарта 10Base-T. Поскольку для передачи и приема используются физически разные линии, то нет и препятствий для одновременного протекания данных процессов. Принцип же формирования данных остается неизменным практически для всех модификаций Ethernet, к обсуждению чего мы и переходим.
Кадр Ethernet.
Вся передаваемая информация поделена на пакеты/кадры, имеющие следующий формат:
Рассмотрим блоки подробнее:
- MAC-адрес устройства, которому предназначен данный кадр.
- MAC-адрес отправителя.
- EtherType - двухбайтное поле, которое служит для указания типа протокола для данных, передаваемых в этом кадре. Для наглядности, некоторые возможные значения:
- 0x0800 - IPv4
- 0x86DD - IPv6
- 0x0842 - Wake-on-LAN
- 0x809B - AppleTalk
Все поля, кроме поля данных, являются служебными.
Методика анализа контрольной суммы абсолютно стандартна: отправитель рассчитывает контрольную сумму на основе остальных данных кадра и добавляет рассчитанное значение к этому же отправляемому кадру. Получатель также рассчитывает контрольную сумму на основе принятых данных и сравнивает ее с принятой (которую рассчитывал отправитель). Несовпадение рассчитанного и принятого значений CRC - явный сигнал к тому, что данные повреждены и некорректны.
При этом контрольная сумма в данном случае никоим образом не может помочь в устранении ошибки, она только сигнализирует о ее наличии. В результате принятый кадр целиком считается некорректным. Это, в свою очередь, приводит к необходимости передать ошибочный кадр еще раз.
Кроме этого, возможна еще одна неприятная ситуация, так называемая коллизия - когда несколько узлов начинают передавать данные одновременно. Для предотвращения этого в Ethernet используется технология CSMA/CD - Carrier Sense Multiple Access with Collision Detection — множественный доступ с прослушиванием несущей и обнаружением коллизий. Эта тема тоже довольно-таки интересная, в связи с чем, принято волевое решение посвятить ей отдельную статью ) Поэтому здесь и сейчас на этом не останавливаемся.
В первых по очередности двух полях кадра Ethernet содержатся MAC-адреса узлов сети - передатчика и приемника. Изначально при разработке первых версий технологии было предусмотрено, что любая сетевая карта должна иметь свой уникальный идентификатор. Роль этого идентификатора и играет MAC-адрес, состоящий из 6 байт.
При работе он позволяет идентифицировать все устройства в сети и определить, какому именно из них предназначен тот или иной кадр данных. Распределением MAC-адресов занимается регулирующий комитет IEEE Registration Authority, именно сюда производитель сетевого устройства должен обращаться для выделения ему некоего диапазона адресов, которые он сможет использовать для своей продукции.
И на этой ноте заканчиваем вводную теоретическую часть по Ethernet, в дальнейшем приступим к практическому использованию в своих устройствах. До скорого 🤝
Ethernet - это самый распространенный на сегодняшний день стандарт технологии сети.
- работает с коаксиальным кабелем, витой парой, оптическими кабелями;
- топология – шина, звезда;
- метод доступа – CSMA/CD.
Архитектура сетевой технологии Ethernet фактически объединяет целый набор стандартов, имеющих как общие черты, так и отличия.
Технология Ethernet была разработана вместе со многими первыми проектами корпорации Xerox PARC. Общепринято считать, что Ethernet был изобретён 22 мая 1973 года, когда Роберт Меткалф составил докладную записку для главы PARC о потенциале технологии Ethernet. Но законное право на технологию Меткалф получил через несколько лет. В 1976 году он и его ассистент Дэвид Боггс издали брошюру под названием «Ethernet: Distributed Packet Switching For Local Computer Networks». Меткалф ушёл из Xerox в 1979 году и основал компанию 3Com для продвижения компьютеров и локальных вычислительных сетей. Ему удалось убедить DEC, Intel и Xerox работать совместно и разработать стандарт Ethernet (DIX). Впервые этот стандарт был опубликован 30 сентября 1980 года.
Дальнейшее развитие технологии EtherNet:
MAC адрес
На уровне MAC, который обеспечивает доступ к среде и передаче кадра, для идентификации сетевых интерфейсов узлов сети используются регламентированные стандартом уникальные 6-байтовые адреса, называемые MAC-адресами. Обычно MAC-адрес записывается в виде шести пар шестнадцатеричных цифр, разделенных тире или двоеточиями, например 00-29-5E-3C-5B-88. Каждый сетевой адаптер имеет MAC-адрес.
Структура MAC-адреса Ethernet
- первый бит MAC-адреса получателя называется битом I/G (individual/group или широковещательным). В адресе источника он называется индикатором маршрута от источника (Source Route Indicator);
- второй бит определяет способ назначения адреса;
- три старших байта адреса называются защитным адресом (Burned In Address, BIA) или уникальным идентификатором организации (Organizationally UniqueIdentifier, OUI);
- за уникальность младших трех байт адреса отвечает сам производитель.
Некоторые сетевые программы, в частности wireshark, могут сразу отображать вместо кода производителя - название фирмы производителя данной сетевой карты.
Формат кадра технологии EtherNet
В сетях Ethernet существует 4 типа фреймов (кадров):
- кадр 802.3/LLC (или кадр Novell802.2),
- кадр Raw 802.3 (или кадр Novell 802.3),
- кадр Ethernet DIX (или кадр Ethernet II),
- кадр Ethernet SNAP.
На практике в оборудовании EtherNet используется только один формат кадра, а именно кадр EtherNet DIX, который иногда называют кадром EtherNet II по номеру последнего стандарта DIX.
Кадр EtherNet DIX (II) не отражает разделения канального уровня EtherNet на уровень MAC и уровень LLC: его поля поддерживают функции обоих уровней, например интерфейсные функции поля T относятся у функциям уровня LLC, в то время как все остальные поля поддерживают функции уровня MAC.
Рассмотрим формат кадра EtherNet II на примере перехваченного пакета с помощью сетевого анализатора Wireshark
Обратите внимание, что так как MAC адрес состоит из кода производителя и номера интерфейса, то сетевой анализатор сразу преобразует код производителя в название фирмы-изготовителя.
Таким образом в технологии EtherNet в качестве адреса назначения и адреса получателя выступают MAC адреса.
Стандарты технологии Ethernet
Физические спецификации технологии Ethernet включают следующие среды передачи данных.
- 10Base-5 - коаксиальный кабель диаметром 0,5 дюйма (1дм=2,54см), называемый «толстым» коаксиальным кабелем, с волновым сопротивлением 50Ом.
- 10Base-2 - коаксиальный кабель диаметром 0,25 дюйма, называемый «тонким» коаксиальным кабелем, с волновым сопротивлением 50Ом.
- 10Base-T - кабель на основе не экранированной витой пары (Unshielded Twisted Pair, UTP), категории 3,4,5.
- 10Base-F - волоконно-оптический кабель.
Число 10 обозначает номинальную битовую скорость передачи данных стандарта, то есть 10Мбит/с а слово «Base» - метод передачи на одной базовой частоте. Последний символ обозначает тип кабеля.
10Base-5
Кабель используется как моноканал для всех станций, максимальная длина сегмента 500м. Станция подключаться к кабелю через приемопередатчик - трансивер. Трансивер соединяется с сетевым адаптером разъема DB-15 интерфейсным кабелем AUI. Требуется наличие терминаторов на каждом конце, для поглощения распространяющихся по кабелю сигналов.
Правила «5-4-3» для коаксиальных сетей:
Стандарт сетей на коаксиальном кабеле разрешает использование в сети не более 4 повторителей и, соответственно, не более 5 сегментов кабеля. При максимальной длине сегмента кабеля в 500 м это дает максимальную длину сети в 500*5=2500 м. Только 3 сегмента из 5 могут быть нагруженными, то есть такими, к которым подключаются конечные узлы. Между нагруженными сегментами должны быть не нагруженные сегменты.
10Base-2
Кабель используется как моноканал для всех станций, максимальная длина сегмента 185 м. Для подключения кабеля к сетевой карте нужен T-коннектор, а на кабеле должен быть BNC-коннектор.
Также используется правило 5-4-3.
10Base-T
Образует звездообразную топологию на основе концентратора, концентратор осуществляет функцию повторителя и образует единый моноканал, максимальная длина сегмента 100м. Конечные узлы соединяются с помощью двух витых пар. Одна пара для передачи данных от узла к концентратору - Tx, а другая для передачи данных от концентратора к узлу – Rx.
Правила «4-х хабов» для сетей на основе витой пары:
В стандарте сетей на витой паре определено максимально число концентраторов между любыми двумя станциями сети, а именно 4. Это правило носит название «правила 4-х хабов». Очевидно, что если между любыми двумя узлами сети не должно быть больше 4-х повторителей, то максимальный диаметр сети на основе витой пары составляет 5*100 = 500 м (максимальная длина сегмента 100м).10Base-F
Функционально сеть Ethernet на оптическом кабеле состоит из тех же элементов, что и сеть стандарта 10Base-T
Стандарт FOIRL (Fiber Optic Inter-Repeater Link) первый стандарт комитета 802.3 для использования оптоволокна в сетях Ethernet. Мах длина сегмента 1000м, мах число хабов 4, при общей длине сети не более 2500 м.
Стандарт 10Base-FL незначительное улучшение стандарта FOIRL. Мах длина сегмента 2000 м. Максимальное число хабов 4,а максимальная длина сети - 2500 м.
Стандарт 10Base-FB предназначен только для соединения повторителей. Конечные узлы не могут использовать этот стандарт для присоединения к портам концентратора. Мах число хабов 5, мах длина одного сегмента 2000 м и максимальной длине сети 2740 м.
Таблица. Параметры спецификаций физического уровня для стандарта Ethernet
При рассмотрении правила «5-4-3» или «4-х хабов», в случае появления на пути распространения по кабелям воображаемого сигнала устройства типа «свич», расчет топологических ограничений начинается с нуля.
Пропускная способность сети Ethernet
Пропускная способность оценивается через количество кадров либо количество байт данных, передаваемых по сети за единицу времени. Если в сети не происходят коллизии, максимальная скорость передачи кадров минимального размера(64 байта) составляет 14881 кадров в секунду. При этом полезная пропускная способность для кадров Ethernet II – 5.48 Мбит/с.
Максимальная скорость передачи кадров максимального размера (1500 байт) составляет 813 кадров в секунду. Полезная пропускная способность при этом составит 9.76 Мбит/с.
Читайте также:
- Какой датой проводить больничный в 1с датой выдачи и датой когда сдали
- Как прошить телефон андроид через компьютер если телефон не включается
- Что делает браузер в первую очередь чтобы найти ip адрес сайта который вы открываете
- Перерасчет больничного листа после оплаты в 1с 8 3 бухгалтерия
- Итеративные вычисления в excel что это