Skip to content

Latest commit

 

History

History
37 lines (21 loc) · 5.76 KB

lecture.adoc

File metadata and controls

37 lines (21 loc) · 5.76 KB

Ethernet (CSMA/CD)

И так, предположим, мы хотим собрать свою первую сеть состоящую из 3-х хостов. Как это сделать? С помощью чего мы их соединим, как будет работать сетевая карта, каким способом мы будем кодировать биты, каким разъемом подключать, как мы определим, кому из 3-х хостов мы отправили данные и так далее.

3 хоста.
Figure 1. 3 хоста.

Чтобы объединить 3 хоста в одну сеть, нужно определиться с технологией канального уровня. В стандартах IEEE 802.* можно найти описание различных технологий. Мы выберем Ethernet, как наиболее распространенный. Есть два основных стандарта по Ethernet:

  • 802.3 - проводной Ethernet

  • 802.11 - беспроводной Ethernet, мы его еще называем Wi-Fi.

Ethernet был придуман в 1973 году инженером Робертом Меткалфом (https://ethernethistory.typepad.com/papers/ethernetbobmemo.pdf). В то время Роберт работал в компании Xerox.

Note
На сегодняшний день только стандартов Wi-Fi (IEEE 802.11) существует несколько десятков (https://ru.wikipedia.org/wiki/IEEE_802.11) и они продолжают постоянно добавляться.
Note
Еще больше истории про создание Ethernet и о самом создателе можно почитать в статье на Хабре "Роберт Меткалф: папа EtherNet, отличный инженер и фиговый предсказатель (но за слова ответил)" (https://habr.com/ru/companies/edison/articles/277827/).

Физический уровень Ethernet

C 1983 году технология Ethernet была описана в стандартах IEEE 802.3. Рабочее название Ethernet известно как CSMA/CD (Carrier Sense Multiple Access with Collision Detection — множественный доступ с прослушиванием несущей и обнаружением коллизий). В этой аббревиатуре скрывается идея работы технологии. Для понятности, давайте разберем эту аббревиатуру в неправильном порядке:

  • MA (Multiple Access) - множественный доступ означает, что любой хост в сети Ethernet может отправить данные в сеть когда захочет. Помните, в начале курса мы говорили о пакетной коммутации. Она предполагает, что все каналы передачи данных уже установлены. Вот MA как раз и есть реализация этой идеи.

  • CS (Carrier Sense) - прослушиванием несущей, означает не отправлять данные в сеть, если кто-то другой уже передает что-то.

  • CD (Collision Detection) - определение коллизий. Если все-таки два и более хоста начали одновременно передавать данные в сеть, это называется коллизия. В этом случае полученные во время коллизии данные отбрасываются и хосты начинают передачу последнего пакета снова. Стоит отметить, что коллизия может случиться только в том, случае если используется полудуплексное соединение (half-duplex). Если у вас полнодуплексное соединение (full-duplex), то коллизия не произойдет, так как для отправки и приема данных используются разные каналы.

Итого, алгоритм работы сети Ethernet следующий:

  1. Каждый хост в сети Ethernet может передавать данные в любой момент времени.

  2. Перед передачей данных сетевая карта проверяет несущую. Если никто в настоящий момент не передает данные, сетевая карта начинает передавать данные.

  3. Если во время передачи данных сетевая карта определяет, что еще кто-то вместе с ней передает данные в сеть, то генерируется специальный JAM сигнал, сообщающий всем участникам сети, что произошла коллизия и текущий кадр с данными считать недействительным.

  4. Возврат на второй пункт.

Первая версия Ethernet стандарта IEEE 802.3 появилась в 1983 году и он предполагал передачу данных на скорости всего 10 Мбит/сек (примерно 1,25 Мбайт в секунду) с помощью коаксиального кабеля. А современные стандарты предполагают передачу данных на скорости 50 Гбит/сек.