Сети
Основы
Что такое сеть?
Сеть - это два или более устройств, которые обмениваются данными.
А как обмениваются? Нельзя ведь просто взять и кинуть картинку другу по проводу - максимум, если он схватиться за другой конец, его ударит током. И то не факт.
Для этого нужны правила - в какой момент начать передачу, как понять что данные дошли, что делать если 2 устройства заговорили одновременно.
Все эти договоренности - это протоколы, и вся сетевая инженерия, по сути - просто набор протоколов, где каждый следующий решает проблему, которую не решил предыдущий.
Как устроен интернет?
Как вообще мы ходим по интернету во всякие вк, инстаграм, порнхаб и прочие места? Ну, логически подумав, рисуем в уме схему:
ПК - Роутер - Интернет
В целом логично. Но... а дальше то куда оно? Запрос не растворяется в воздухе после роутера и не возвращается из ниоткуда с ответом. Целиком схема выглядит так:
ПК - Роутер - Провайдер - Магистральный оператор - Дата-центр - Сайт
Как раз магистральный оператор - их несколько, это владельцы магистральных сетей, протянутые между континентами - обмениваются трафиком между собой на IXP - Internet Exchange Point - точки обмена трафика.
То есть запрос в браузере с "YouTube" улетает от ПК на домашний роутер, оттуда по проводу провайдера улетает к нему на узел - их тоже несколько, но об этом позже - и уже с узла сети провайдера запрос улетает на магистраль - пакет с данными летит по разным протоколам одному известному ему путями и маршрутами, прежде чем наконец-то дойти до дата-центра, где и хранится искомый сайт.
Но это если очень грубо, жестко, без вазелина и прелюдий. На самом деле схема чуть сложнее, но нам для первички и этого хватит. Но остается вопрос, что это за пути и маршруты, почему разные протоколы и как вообще запрос из текста прилетает нам обратно в виде готового сайта.
Уровни сети
Вся сеть устроена слоями и каждый слой выполняет свою работу и ему дофени, что там и как делается на других уровнях.
Вообще, про модели OSI есть отдельная страничка - там куда больше информации и она может быть понятна, но если нет, то лучше сперва чуть получше изучить основы, чем лезть в то русло.
В самом низу обитает Физический уровень - L1 - тут нет ничего, кроме физики. Ну, точнее провода - оптика, обычный провод с медными жилами, радиоволны.
Задача этого уровня передавать биты - то есть 0 и 1. То есть, сами данные - запрос с "YouTube" -, просто на очень простом, машинном почти уровне.
Тут работают кабели, разъемы, приемники и передатчики.
Ну, провода есть, круто, а дальше? Кому конкретно передавать биты - в сети могут быть десятки, а то и сотни устройств. Следовательно, нужно знать конечный адрес, кому и куда мы отправляем биты.
Вторым слоем у нас является Канальный уровень - L2 - тут появляется MAC-адрес.
MAC-адрес - это заводской номер устройства. Он состоит из 48-бит и забит в сетевую карту еще с завода и выглядит как 6 пар шестнадцатеричных цифр (A:A.B:B.C:C.D:D.E:E.F:F).
На этом уровне данные упаковываются в Кадр - frames - что по сути можно считать конвертом, где написал MAC-отправитель, то есть От кого письмо, и MAC-получатель, то есть Кому.
На данном уровне работают уже Коммутаторы - switch - эти железяки бывают глупыми, а бывают умными, н оу них у всех вшита одна задача - смотреть порты и перенаправлять кадры только туда, куда нужно. Для этого у них есть таблица MAC-адресов.
НО!
MAC-адресация работает только в пределах одной локальной сети, они не маршрутизируются. То есть домашний роутер никак не сможет отправить запрос куда-то дальше себя, в глобальную сеть Интернета.
И вот тут мы переходим на третий уровень - Сетевой уровень - L3