И так, предположим, мы хотим собрать свою первую сеть состоящую из 3-х хостов. Как это сделать? С помощью чего мы их соединим, как будет работать сетевая карта, каким способом мы будем кодировать биты, каким разъемом подключать, как мы определим, кому из 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/). |
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 следующий:
-
Каждый хост в сети Ethernet может передавать данные в любой момент времени.
-
Перед передачей данных сетевая карта проверяет несущую. Если никто в настоящий момент не передает данные, сетевая карта начинает передавать данные.
-
Если во время передачи данных сетевая карта определяет, что еще кто-то вместе с ней передает данные в сеть, то генерируется специальный JAM сигнал, сообщающий всем участникам сети, что произошла коллизия и текущий кадр с данными считать недействительным.
-
Возврат на второй пункт.
Первая версия Ethernet стандарта IEEE 802.3 появилась в 1983 году и он предполагал передачу данных на скорости всего 10 Мбит/сек (примерно 1,25 Мбайт в секунду) с помощью коаксиального кабеля. А современные стандарты предполагают передачу данных на скорости 50 Гбит/сек.