Эта статья участвует в "Сетевой протокол должен знать должен знать"Требуют документов
Сеть — вещь виртуальная, она не видна и не осязаема в большом смысле:
- Сверху вниз он включает прикладной уровень, транспортный уровень, сетевой уровень, канальный уровень и физический уровень.
- Эта статья пойдет в противоположном направлении, по очереди охватывая физический уровень, канальный уровень и сетевой уровень.
физический слой
Это сетевой кабель, оптическое волокно, среда для передачи сигналов и физическая среда.
- Компьютеры обмениваются информацией через сигналы цепи
- Сетевой кабель или оптоволокно могут генерировать сигнал 01, который может распознать компьютер.
связующий слой
На физическом уровне мы знаем
- данные спотоксуществуют в среде коммуникации в виде
- Сетевой кабель является дуплексным, A может отправлять данные на B, а B также может отправлять на A. Если A продолжает отправлять, то B не может работать.
Нам нужно разделить некоторые нормы, чтобы эта простая сеть заработала.
Потоки и фреймы
Во-первых, это разделение пакетов, которое не позволяет потокам в одном направлении вечно занимать канал.
отправить как поток
Описанный здесь процесс выглядит следующим образом:
- A для отправки в первую очередь
- Б намеревается отправить
- B обнаруживает столкновение и ждет первым
- У A есть много контента для отправки, и он не остановился
- B всегда обнаруживал, что ссылка не простаивает, и будет ждать в течение длительного времени.
передача кадра по каналу
Итак, связующий слой делает некоторые вещи, как показано ниже:
-
Сетевая карта разбивает данные для отправки на кадр в соответствии с MTU.
-
A отправляет кадр первым
-
B намеревается отправить, и B сначала ждет, когда обнаружит коллизию
-
После того, как A отправляет кадр, ссылка простаивает
-
Б может отправить
-
A продолжает отправлять оставшиеся кадры после обнаружения простоя
В таком случае,кадр связующего слоярешеноэксклюзивная ссылкаПроблема.
Ethernet является наиболее широко используемым протоколом канального уровня.
Базовые элементы канального уровня
Таким образом, основные элементы уровня ссылок следующие:
-
Предположим, A передает часть данных B: 0111001010101.
-
Эти данные будут разделены на кадр
-
Канальный уровень протокола Ethernet является наиболее широко используемым протоколом канального уровня, а размер кадра (MTU: максимальная единица передачи) составляет 1500 байт.
-
Если данные, передаваемые за один раз, превышают MTU, канальный уровень необходимо разделить и отправить на физический уровень.
-
Общие сетевые карты должны реализовывать протокол Ethernet, включая настройки размера MTU.
Канальный уровень также определяетMAC-адресспецификации, каждая сетевая карта имеетФлаг уникального MAC-адреса.
Инструмент адресации канального уровня — Switch
Как правило, у хоста мало портов NIC, и очень мало машин можно подключить напрямую, поэтому вводится коммутатор.
Сам коммутатор не имеет MAC-адреса, и его назначение — помогать пересылать кадры.
Как показано выше:
- Сетевая карта также имеет уникальный знак MAC-адреса, а MAC-адрес составляет 48 бит.
- Коммутаторы имеют много портов, и обычно используются десятки портов.
- Коммутатор может кэшировать и автоматически записывать связь между портом и соответствующим MAC-адресом хоста.
Формат кадра связующего слоя
Ссылочный уровень сформулировал спецификацию mac-адреса.Вы можете видеть, что формат фрейма выглядит следующим образом:
- Playload — это содержимое отправляемых данных, здесь 0111001010101, пересылаемое в пункт назначения через dst mac
- размер кадра не превышает MTU
Состав сетевого мира канального уровняплемя
Как показано на рисунке ниже, коммутаторы могут образовывать большую сеть с помощью иерархической структуры:
A отправляет пакет C. Если подключенная в данный момент интерактивная машина не записывает этот mac-адрес, тобудет отправлено на все другие интерактивные машины, что дорого.
Mac-адрес хоста эквивалентен удостоверению личности без специальной отметки, и он может пройти через подключенный коммутатор, а затемпройти через всю сеть, чтобы обратиться.
Поэтому подсеть, подключенная свитчем, как правило, не содержит слишком много машин, и они эквивалентны друг другу.маленькое племя.
IP-уровень
формироваться через связующий слойбольшой онлайн мирЭто немного хлопотно, поэтому создатели сетевого протокола начали думать о новых решениях.
Если вы хотите общаться во многих-многих небольших племенах, маршрутизация станет очень сложной, поэтому создается уровень IP.
расширение сети
племя-деревня
Сетевой мир, состоящий из коммутаторов, эквивалентен одному за другиммаленькое племя, история нашего человеческого развития является лучшим ориентиром для развития сети
Как показано ниже:
- Несколько племен (сетей коммутаторов) составляют большуюпоселок
- Деревни можно узнать по уличным знакам
- Эти четыре племени могут быть представлены двумя двоичными цифрами.00,01,10а также11
Деревня - большая площадь
Тем не менее, сеть продолжает развиваться:
- Деревни постепенно увеличивались и превращались в районы.
- здесьплощадьВключенные деревни также могут быть представлены двузначным двоичным кодом.
- продолжай в том же духеРасширить сферуразвитие, которое в конечном итоге составляетвсемирная сеть.
IP-иерархия
Теперь сеть достаточно большая, но реальная сеть более плотная и сложная, чем эта.
Адрес и административный уровень
Мир тоже очень большой, мы хотим найти адрес человека, мы можем использоватьадминистративный уровеньПредставлять:
Для человека снизу вверх:Группа - Деревня - Поселок - Город - Уезд - Район - Город - Провинция - Страна - Планета
айпи адрес
В отличие от реального мира, мы используем IP-адреса для представления сетевых адресов. IP имеет32бит, а это значит, что в мире больше всего400 миллионовУникальный IP-адрес.
Вышеуказанные административные адреса разделены на10 уровней, хотя IP-адрес не имеет такого изображения, но такжеестественный слойиз.
- Каждое число IP имеет смысл, определенныйсколько битОн может представлять деревню-уезд-город в смысле интереса, но его не нужно понимать таким образом.
- MAC-адрес подобен идентификационному номеру (ID card), у этого нет адресной метки
- Таким образом, через IP-адрес вы, вероятно, знаете, что нужно перейти к определенному диапазону, чтобы найти соответствующий хост.
ipv4
Если он разделен на 8-битные группы, 32-битный IP делится на 4 группы, поэтому он называется ipv4.
Вышеупомянутый адрес является адресом ipv4.01101111.01111101.11111011.11110100то есть111.125.251.244.
Назначение IP
Когда спецификация IP-протокола была первоначально сформулирована, создатель спецификации также сделал некоторые разделения и назначения IP-адресов и сетей:
-
Адрес класса А: Перед IP-адресом8Биты представляют идентификатор сети, последние 24 бита представляют собой идентификатор хоста, за исключением некоторыхспециальный знак, таких сетей более 200, большинство из которых закреплены за американскими корпоративными группами, но поскольку адресов 2^24, многие из адресов хостов в них не используются, что приводит к большому количеству отходов.
- десятичныйНачиная со 127адрес:петлевой адрес, например, пропингуйте себя 127.0.0.1
- 127.0.0.0: Использование этого адреса равнозначно тому, что вы называете себя «я».
- 0.0.0.0Представляет собой общедоступную сеть
-
Адрес класса B: Перед IP-адресом16Биты представляют идентификатор сети, последние 16 бит представляют собой идентификатор хоста.
- 192.168.0.0: указывает текущую сеть
- Адрес класса С: Перед IP-адресом24Бит представляет идентификатор сети, последние 8 бит представляют собой идентификатор хоста, а в сети доступно более 250 адресов хостов.
- Все 0Сеть идентификаторов узлов: указываетсама сеть, например, IP-адрес 129.152.0.0 относится к сети класса B с идентификатором сети 129.152.
- Все единицыСеть идентификатора хоста: указывает широковещательный адрес
частная сеть
Просто количество компьютеров в мире должно быть намного больше 400 миллионов, и IP-адресов недостаточно, кроме того, упомянутые выше основаны на размере сети.подразделение АВСвызванныйнапрасно тратить, даже большеИП торопится. Поэтому чаще всего, как внаша страна, используемый многими сообществами, компаниями и школамичастная сетьплан.
-
Ваша домашняя сеть и сеть вашей компании, скорее всего, будут адресами в частной локальной сети.
-
Сервер, приобретенный в облаке, может иметь общедоступный IP-адрес.
Как показано ниже:
Случай ограничения частной сети 1
Из-за ограничений частной сети, когда хост внутри находится в сети, ему часто требуется выполнить еще один уровень обработки пакетов (еще один уровень преобразования по сравнению с общедоступной сетью).Следующий C1A открывает программу чата QQ для чата. с членами семьи за пределами школы,
- При отправке пакетов выходному маршрутизатору интрасети может потребоваться инкапсулировать пакет 1 как пакет 2 (плюс собственный общедоступный сетевой IP-адрес и MAC-адрес).
- При получении пакета выходному маршрутизатору интрасети необходимо преобразовать пакет 2 в пакет 1, а затем направить его на узел интрасети.
Случай ограничения частной сети2
Иногда необходимо получить доступ к частному адресу, как доступ к серверу.
НапримерP2PТип приложения, каждый является узлом в сети.
Из-за локальной сети нам нужно использовать некоторыеТехнология сетевой инверсиинапример NAT.
ipv6
Из-за чрезвычайного положения IP позже была сформулирована спецификация ipv6.
Этот стандартный IP имеет в общей сложности 128 бит, и каждые 16 бит разделены на 8 групп.
Но сейчас ipv6 не очень популярен.
маршрутизация
Вышеупомянутое разделение уровней IP, мы можемобразныйзнать, как добраться тудаНайдите другой хост в онлайн-мире.
С точки зрения конкретной реализации, все машины, реализующие протокол IP-уровня, поддерживают одинтаблица маршрутизации, эта таблица маршрутизации представляетВоспринимаемый онлайн-мир.
в состоянии пройтикоманда маршрутаПроверьте таблицу маршрутизации на хосте или маршрутизаторе,
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 9.134.64.1 0.0.0.0 UG 0 0 0 eth1
9.0.0.0 9.134.64.1 255.0.0.0 UG 0 0 0 eth1
9.134.64.0 0.0.0.0 255.255.240.0 U 0 0 0 eth1
10.0.0.0 9.134.64.1 255.0.0.0 UG 0 0 0 eth1
100.64.0.0 9.134.64.1 255.192.0.0 UG 0 0 0 eth1
172.16.0.0 9.134.64.1 255.240.0.0 UG 0 0 0 eth1
192.168.0.0 9.134.64.1 255.255.0.0 UG 0 0 0 eth1
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 docker0
Значение каждого поля в выходном результате:
- Флаги — это флаги, которые представляют маршруты. Доступные флаги и их значения:U указывает на то, что маршрут начинается, H указывает, что целью является хост,G означает использование шлюза
- Шлюз указывает имя хоста или IP-адрес, используемый шлюзом.
- Маска подсети — это 32-битный адрес, используемый для маскировки части IP-адреса, чтобы отличить идентификатор сети от идентификатора хоста, после чего его можно указать.Является ли IP-адрес в локальной или глобальной сети.
- Побитно по Genmask и IP-адресу пакета"&"Операция, если она совпадает с пунктом назначения, перенаправить в сеть этого пункта назначения.
- Пункт назначения указывает маршрутцелевая сеть, мы можем видеть, что этот пример имеет этисеть доступна
- 9.0.0.0: 1001000000000000000000000000 — это сеть класса A, которая может содержать множество (2^24) адресов узлов, доступных через шлюз 9.134.64.1.
- 9.134.64.0:1001100001100100000000000000 — это сеть класса B, IP текущей машины также находится в этой сети
- 10.0.0.0Также адрес класса А
- 100.64.0.0Это также адрес класса B, и он также напрямую доступен из сети.
- 192.168.0.0Указывает текущую локальную сеть
- 192.168.10.0Сеть, представляющая среду докера
- Если другие правила не выполняются, используется маршрут по умолчанию и перенаправляется в общедоступную сеть по умолчанию.
- 0.0.0.0Указывает общедоступную сеть
- Выбор маршрута будет обработан в соответствии с приоритетом наибольшего совпадения, поэтому значение по умолчанию будет обработано последним, а маска 255.255.255.0 будет обработана первой.
Суммировать
В этой статье описывается, как компьютеры в мире подключены, описывая физический уровень, уровень канала и сетевой уровень IP снизу вверх.
Шаг за шагом, слой за слоем, сеть постепенно менялась от своей первоначальной формы к тому, что она есть сейчас.модернизацияФорма.
Однако в этой статье не рассматривается конкретная адресация сети.как формируется сетьЭто предложение более подробно. Статьи, которые были добавлены на данный момент:Почему алгоритм вектора маршрутизации используется только для небольших сетей?