Stm32 и ethernet. часть 3. канальный уровень. протокол arp

Мультикаст на канальном уровне

Итак, позади долгая трудовая неделя с недосыпами, переработками, тестами — вы успешно внедрили мультикаст и удовлетворили клиентов, директора и отдел продаж.

Пятница — не самый плохой день, чтобы обозреть творение и позволить себе приятный отдых.

Но ваш послеобеденный сон вдруг потревожил звонок техподдержки, потом ещё один и ещё — ничего не работает, всё сломалось. Проверяете — идут потери, разрывы. Всё сходится на одном сегменте из нескольких коммутаторов.

Расчехлили SSH, проверили CPU, проверили утилизацию интерфейсов и волосы дыбом — загрузка почти под 100% на всех интерфейсах одного VLAN’а. Петля! Но откуда ей взяться, если никаких работ не проводилось? Минут 10 проверки и вы заметили, что на восходящем интерфейсе к ядру у вас много входящего трафика, а на всех нисходящих к клиентам — исходящего. Для петли это тоже характерно, но как-то подозрительно: внедрили мультикаст, никаких работ по переключению не делали и скачок только в одном направлении.

Проверили список мультикастовых групп на маршрутизаторе — а там подписка на все возможные каналы и все на один порт — естественно, тот, который ведёт в этот сегмент.

Дотошное расследование показало, что компьютер клиента заражён и рассылает IGMP Query на все мультикастовые адреса подряд.

Потери пакетов начались, потому что коммутаторам пришлось пропускать через себя огромный объём трафика. Это вызвало переполнение буферов интерфейсов.

Главный вопрос — почему трафик одного клиента начал копироваться во все порты?

Причина этого кроется в природе мультикастовых MAC-адресов. Дело в том, пространство мультикастовых IP-адресов специальным образом отображается в пространство мультикастовых MAC-адресов. И загвоздка в том, что они никогда не будут использоваться в качестве MAC-адреса источника, а следовательно, не будут изучены коммутатором и занесены в таблицу MAC-адресов. А как поступает коммутатор с кадрами, адрес назначения которых не изучен? Он их рассылает во все порты. Что и произошло.

Это действие по умолчанию.

Multicast Flooding

Прототип Чертежник — как решать?

Последний прототип, который составители включили в 12 задание ЕГЭ по информатике — это Чертежник

Здесь при решении важно правильно составить систему уравнений и найти наибольший/наименьший делитель двух чисел. Посмотрим, как это сделать

Пример 4 (Чертежник)

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду сместиться на (a, b), где a, b – целые числа. Эта команда перемещает Чертёжника из точки с координатами (x, y) в точку с координатами (x + a, y + b).

Например, если Чертёжник находится в точке с координатами (4, 2), то команда сместиться на (2, −3) переместит Чертёжника в точку (6, −1).

Цикл

ПОВТОРИ число РАЗ

последовательность команд

КОНЕЦ ПОВТОРИ

означает, что последовательность команд будет выполнена указанное число раз (число должно быть натуральным).

Чертёжнику был дан для исполнения следующий алгоритм (количество повторений и величины смещения в первой из повторяемых команд неизвестны):

В результате выполнения этого алгоритма Чертёжник возвращается в исходную точку. Какое наибольшее число повторений могло быть указано в конструкции «ПОВТОРИ … РАЗ»?

Решение

Чтобы решить это задание, необходимо обозначить неизвестными пропуски в алгоритме.

Далее составим систему уравнений. Нам известно, как перемещался Чертежник, и сказано, что он вернулся в начальную точку. Получается, его перемещение равно 0.

Теперь мы можем найти n — наибольшее количество повторений цикла. Число n должно быть делителем как 24, так и 16, то есть нам нужно найти НОД(24, 16). Он равен 8. Это и будет ответом к заданию.

Ответ: 8

Люди

Почитайте, как специалисты из разных профессий пришли к тому, что они умеют сейчас, чем они занимались на старте и как вообще пришли в ИТ:

Как стать руководителем ИТ-команды за 5 лет. Александр Штыков: путь от контент-менеджера до тимлида.

Владимир Олохтонов о работе старшего разработчика в Авито. Путь от монтажника локальных сетей до инженера машинного обучения.

«Никто не верил, что я сама пишу код». Анастасия Никулина: о дата-сайнс, ютубе и программировании.

Главные языки и технологии для старта

Для разных профессий нужны разные навыки и языки. Но для быстрого старта достаточно этого:

HTML — на нём пишут и верстают все сайты в интернете. 

CSS — помогает оформлять красиво то, что уже свёрстано.

JavaScript — для программирования разных возможностей сайта: добавления товара в корзину, формирования персональной ленты или для корпоративного чат-бота.

Python — для тех, кто хочет пойти в бэкенд или в дата-сайенс. Для обычной веб-разработки он не нужен.

Для общего развития

Обычно такое не спрашивают при трудоустройстве, но для общего ИТ-развития это будет полезно. Заодно посмотрите, как ИТ влияет на привычные вещи.

Как устроен интернет, можно ли его отключить

Где учиться

Лучше всего учиться с наставником — он поможет быстро разобраться с тем, что непонятно, и проконтролирует весь процесс погружения в профессию. В Практикуме есть бесплатная часть с обучением — попробуйте, если понравится — продолжите учиться дальше. 

Подборка

Михаил Полянин

Редактор

Максим Ильяхов

Корректор

Ирина Михеева

Иллюстратор

Даня Берковский

Вёрстка

Мария Дронова

Соцсети

Олег Вешкурцев

Настройки локальной сети

Отредактируйте файл конфигурации netplan который находится в директории :

sudo vim /etc/netplan/00-installer-config.yaml

Здесь придётся прописать всё ручками, если у вас ещё нет доступа по SSH. У меня этот файл уже редактировался, мне необходимо изменить только IP адрес.

Основные настройки:

  • addresses — ip адрес который будет назначен вашей сетевой карте.
  • gateway4 — ip адрес вашего роутера.
  • nameservers — DNS сервера. Первый — наш роутер.
  • search — домен в котором будет произведен поиск. Домен можно настроить при помощи DNS сервера

Мои настройки:

network:
 ethernets:
  enp0s3:
   addresses:
    - 192.168.0.105/24
   gateway4: 192.168.0.1
   nameservers:
    addresses: 
   optional: true
 version: 2
 renderer: networkd

После редактирования файла: -> -> -> .

Если есть необходимость передать управление сетевыми устройствами утилите NetworkManager:

network:
 version: 2
 renderer: NetworkManager

Что нужно запомнить?

  1. Если вам попадется Редактор, можете написать программу, которая найдет ответ вместо вас. Но всегда рассчитывайте, что будет рациональнее: аналитическое решение или компьютерное. Если останется время, можно проверить себя вторым способом.
  2. Решая задание с Роботом, не нужно проверять все клетки — это долго. Проанализируйте алгоритм и проверяйте только те клетки, которые действительно могут подойти под условия.
  3. Чтобы разобраться с Чертежником, внимательно составляйте систему уравнений. Ищите НОД, если нужно найти наибольшее количество повторений цикла. 
  4. Если в конце экзамена осталось время, вернитесь к заданию и проверьте его — ребята часто теряют баллы из-за невнимательности. Особенно рекомендую перепроверить Робота — решите его заново. 

Теперь вы знаете, как решать 12 задание ЕГЭ по информатике! Обязательно прочитайте наш гайд по этому экзамену, если хотите разобраться с остальными темами и заданиями. Там вы найдете структуру экзамена, актуальные прототипы, тематические блоки и лайфхаки от наших преподавателей. Желаем удачи в подготовке

DHCP Client Configuration

Setting additional DNS Servers

Example: dhclient3 uses /etc/dhcp/dhclient.conf. The setting you want is

supersede domain-name-servers 12.34.56.78, 12.34.56.79;

or perhaps

prepend domain-name-servers 12.34.56.78, 12.34.56.79;

Setting additional search domains

adding search domains for VPNs or local virtual networks:

append domain-name " virt vpn";

Note the leading space since the string is literally appended to the search domain provided by other configurations.

See the dhclient.conf(5) manual page for details.

Bridging

Bridging puts multiple interfaces into the same network segment. This is very popular when connecting a server to multiple switches for high availability or with virtualization. In the latter case it is usually used to create a bridge in the host (eg. dom0) and put the virtual interfaces of the guests (domU) into the bridge.

The bridge-utils package is required to create bridged interfaces.

Example: Connect a server to 2 switches (via eth0 and eth1) by defining bridge 0 and give the server an IP address in this subnet:

auto br0
iface br0 inet static
        address 10.10.0.15/24
        gateway 10.10.0.1
        bridge_ports eth0 eth1
        up /usr/sbin/brctl stp br0 on

If a server is connected to multiple switches then you usually need to run the spanning tree protocol to avoid loops. Therefore STP must be turned on via an «up» command as shown above.

Example: Bridge setup without IP address configuration (use «manual» instead of «static») to «forward» an interface to a guest VM. (The static bridge config contains only 1 physical interface. The virtual interface will be added to the bridge when the VM is started.)

auto br1
iface br1 inet manual
        bridge_ports eth4
        up /usr/sbin/brctl setageing br1 0
        up /usr/sbin/brctl stp br1 off

Note: The Linux bridge supports only STP, no RSTP (Rapid Spanning Tree). Therefore it supports only the old STP Costs, not the new RSTP Costs (see ). This is usually fine with Cisco Switches, but eg. Juniper switches use the RSTP costs and therefore this may lead to different spanning tree calculations and loop problems. This can be fixed by settings the costs manually, either on the switch or on the server. Setting the cost on the switch is preferred as Linux switches back to the default costs whenever an interface does down/up.

Настройка проводной сети

Настройка IP-адреса, шлюза по умолчанию, маски подсети

Отредактируйте файл конфигурации , например так:

$ sudo nano /etc/network/interfaces 

И допишите в него:

Для статического IP:

iface eth0 inet static 
address 192.168.0.1 
netmask 255.255.255.0 
gateway 192.168.0.254
dns-nameservers 192.168.0.254 8.8.8.8
auto eth0 

Где:

  • — указывает что IP адрес (address) нашей сетевой карты 192.168.0.1;
  • — указывает что наша маска подсети (netmask) имеет значение 255.255.255.0;
  • — адрес шлюза () по умолчанию 192.168.0.254;
  • — адреса DNS серверов (о ниж мы расскажем позже)
  • — указывет системе что интерфейс необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.

eth0 — имя подключаемого своего интерфейса. Список интерфейсов можно посмотреть набрав:

$ ip addr

В итоге файл должен выглядеть примерно так:

(для одного проводного соединения со статическим IP)

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Моя проводная сеть.
iface eth0 inet static 
address 192.168.0.1 
netmask 255.255.255.0 
gateway 192.168.0.254 
dns-nameservers 192.168.0.254 8.8.8.8
auto eth0 

Сохраните файл и закройте редактор. В данном примере (редактор nano) — нажмите Ctrl+X, затем Y, убедитесь, что «Имя файла для записи» — /etc/network/interfaces и нажмите Enter.

Пример конфигурации для динамического IP:

iface eth0 inet dhcp
auto eth0 

Временная настройка IP-адреса и маски подсети

При необходимости задать пробные настройки, выполните:

$ sudo ip addr add 192.168.0.1/24 dev eth0

Где 192.168.0.1 — наш IP-адрес, /24 — число бит в префиксной части адреса (соответствует маске подсети 255.255.255.0). eth0 — подключаемый сетевой интерфейс.

Данные настройки пропадут после перезагрузки системы и не повлияют на файл

Порты и сокеты – что это и зачем они нужны

Процессы, работающие на прикладном уровне, «общаются» с транспортным, но они видны ему как «черные ящики» с зашифрованной информацией. Зато он понимает, на какой IP-адрес адресованы данные и через какой порт надо их принимать. Этого достаточно для точного распределения пакетов по сети независимо от месторасположения хостов. Порты с 0 до 1023 зарезервированы операционными системами, остальные, в диапазоне от 1024 до 49151, условно свободны и могут использоваться сторонними приложениями.

Комбинация IP-адреса и порта называется сокетом и используется при идентификации компьютера. Если первый критерий уникален для каждого хоста, второй обычно фиксирован для определенного типа приложений. Так, получение электронной почты проходит через 110 порт, передача данных по протоколу FTP – по 21, открытие сайтов – по 80.

Семейство адресов IPX

Этот раздел описывает методы, доступные для семейства адресов ipx.

Метод static

Этот метод может использоваться для настройки интерфейса IPX. Он требует команду ipx_interface.

Опции:

frame тип – Тип используемых кадров Ethernet (например 802.2).

netnum идентификатор – Номер сети.

Метод dynamic

Этот метод может использоваться для динамической настройки интерфейса IPX.

Опции:

frame тип – Тип используемых кадров Ethernet (например 802.2).

Метод static

Этот метод может использоваться для описания интерфейсов со статически назначенными IPv6 адресами.

Опции:

address адрес – Необходимый адрес (разделенный двоеточиями).

netmask маска_сети – Необходимая сетевая маска (количество бит, например 64).

gateway адрес – Шлюз по умолчанию (разделенный двоеточиями).

media тип – Тип носителя, зависящий от драйвера.

hwaddress класс адрес – Аппаратный адрес. Класс – это одно из следующих значений: ether, ax25, ARCnet или netrom. Адрес зависит от выбранного класса.

mtu размер – Размер MTU.

Метод manual

Этот метод может использоваться для описания интерфейсов, для которых нет настроек применяемых по умолчанию. Такие интерфейсы могут настраиваться вручную, подразумеваемыми командами up и down, или сценариями из каталогов /etc/network/if-*.d.

Метод v4tunnel

Этот метод может использоваться для настройки туннеля IPv6-over-IPv4. Для него необходима команда ip из пакета iproute.

Опции:

address адрес – Адрес (разделенный двоеточиями).

netmask маска_сети – Маска сети (количество бит, например 64).

endpoint адрес – Необходимый адрес удалённой точки туннеля (IPv4 – четвёрка чисел, разделённых точками).

local адрес – Адрес локальной точки (IPv4 – четвёрка чисел, разделённых точками).

gateway адрес – Шлюз по умолчанию (разделенный двоеточиями).

ttl время – Настройка TTL.

Известные ошибки/ограничения

ifup и ifdown работают с так называемыми «физическими» именами интерфейсов. Эти имена обозначены оборудованию ядром. К несчастью может случиться так, что ядро каждый раз будет назначать разные имена физических интерфейсов одному и тому же оборудованию; например, тот что называется «eth0″ после перезагрузки может называться «eth1″ или наоборот. Это создаёт проблему, если вы хотите настроить интерфейсы соответствующим образом. Для избежания подобного следует использовать сцеанрии отображения, которые выбирают логические имена интерфейсов в соответствии со свойствами аппаратного интерфейса. Смотри сценарий get-mac-address.sh из каталога примеров, который является примером такого сценария отображения. Смотри также Debian bug #101728.

В настоящее время невозможно разделить /etc/network/interfaces на различные файлы. Возможность, которая сделает это возможным, это некая разновидность директивы включения. В текущей программе ifupdown это не возможно. За более подробной информацией обратитесь Debian bug #159884.

Автор

Комплекс программ ifupdown был написан Энтони Таунсом (Anthony Towns) . Это руководство предоставлено Джо Хессом (Joey Hess) .

Смотри также

ifup(8), iwconfig(8), run-parts(8)

Для получения консультаций по настройке этого пакета читайте главу Сетевая Настройка из справочного руководства Debian, который доступен по адресу http://www.debian.org/doc/manuals/reference/ch-gateway.en.html или в пакете debian-reference-en.

Примеры настройки interfaces вы можете найти в /usr/share/doc/ifupdown/examples/network-interfaces.

Восприятие аудио

В частотном спектре человек может слышать в диапазоне от 20 Гц до 20 кГц. Кроме того, потеря слуха из-за возраста или других факторов может ограничить наш частотный диапазон. Учитывая, что слуховые способности каждого человека могут несколько отличаться, необходимо помнить об этом для создания оптимального микса. Этот фактор восприятия звука — еще одна причина, по которой понимание динамического диапазона, пиковых уровней, интегрированных LUFS и других единиц измерения громкости имеет первостепенное значение.

То, как наши уши воспринимают звук, также является надежным ориентиром для того, как следует изменять эквалайзер. Это должен быть хороший баланс технических навыков и знаний психоакустики. Конечно, технические навыки могут помочь в создании музыки, но знание психоакустики может вывести ваш трек на новый уровень. Кроме того, при большем количестве треков, наложенных друг на друга, большее количество частот начнет маскироваться, поскольку они будут бороться за одно и то же пространство.

Для достижения желаемого микса необходим правильный баланс по всему частотному спектру. Хотя существуют определенные частотные параметры, в пределах которых мы можем работать, это может быть субъективной областью для работы. Наши уши могут быть обманчивы в зависимости от того, какой диапазон частот мы воспринимаем. С возрастом маскировка частот может стать более характерной для нашего слуха. Это еще одна причина, по которой визуальное представление интегральной громкости, пикового уровня, средней громкости и т.д

так важно

Формат кадра

На рис. 3 приведен формат информационного кадра Х.25. Этот формат включает заголовок кадра З2, концевик кадра К2 и пакет данных третьего уровня. Кадр обрамляется флагами (F). Основным полем заголовка З2 является поле управления потоком, в котором основными характеристиками являются тип кадра и номера передаваемого и принимаемого информационного кадра: соответственно – N(S) и N(R).

Управление потоком в канале (например, между смежными узлами в сети X.25) состоит в следущем. Передаваемый кадр сохраняется в буфере передающего узла, ожидая приёма квитанции о правильном приёме кадра узла получателя. Если кадр был искажен в канале, то передача должна быть повторена.

Поле «Данные» (пакет сетевого уровня «Д») присутствует только в информационном кадре («I»). З3 означает заголовок пакета «Д». Концевик включает в себя контрольно-проверочную комбинацию КПК (К2), необходимую для выявления кадров, искаженных помехами в канале. Кроме информационных кадров в процедуре используются супервизорные кадры RR, REJ для подтверждения или запроса повторной передачи «I» кадров, принятых с искажениями из-за помех в канале, а также кадр RNR для приостановки передачи информационных кадров при перегрузке принимающей стороны. Эти кадры включают только параметр N(R). Ненумерованные кадры (SABM, DISK, UA и др.) служат, например, для установления или разъединения соединений между смежными узлами коммутации.


Рис. 3. Формат информационного кадра Х.25

Убедимся в необходимости применения при службе передачи данных схем обнаружения ошибок в принимаемых кадрах. Для этого определим вероятность появления таких искаженных кадров. Обозначим вероятность единичного ошибочного бита через Рв – эта характеристика канала, именуемая также частотой ошибочных битов (bit error rate – BER). При использовании каналов в сети Х.25 эта величина может составлять Рв=0,0001. Если считать, что в канале возникают одиночные ошибки, статически независимые, то при длине кадра Х.25 порядка L=128 байт вероятность безошибочного приема кадра P=(1−PB)≈(,9999)1024≈,9{\displaystyle P=(1-P_{B})\approx (0,9999)^{1024}\approx 0,9}, т.е. каждый десятый кадр искажен на приеме.

Частота появления ошибочных бит в аналоговом канале сети Х.25 нередко составляет даже PB=,001{\displaystyle P_{B}=0,001}. Ошибки в каналах связи чаще бывают не единичными, а групповыми, то есть имеет место пакетирование ошибок. Это значительно уменьшает частоту искаженных кадров.

Полученный результат свидетельствует о необходимости применения схем обнаружения ошибок. Работа всех методов обнаружения ошибок основывается на использовании помехоустойчивого кодирования. На передающей стороне заголовок З2 и информационная часть, которая присутствует только в информационных кадрах, представляется как последовательность из k бит, которую требуется защитить от ошибок. К данной последовательности добавляется контрольно-проверочная комбинация КПК, которая вычисляется по определенному алгоритму как функция k битов передаваемого кадра. В результате формируется кодовая комбинация, имеющая длину n бит и включающая контрольно-проверочную комбинацию (n-k) бит (рис. 4). На приеме из кадра выделяется КПК. На основании принятых k бит приемник вычисляет КПК и сверяет результат вычисления с принятой КПК. Если принятая и вычисленная КПК не совпадают, кадр считается искаженным и аннулируется. В сети Х.25 используется один из наиболее широко используемых методов обнаружения ошибок – с помощью циклического избыточного кода CRC (Cyclic redundancy check). В сети X.25 n-k = 16 бит.


Рис. 4. Контрольно-проверочная комбинация в составе кадра из n бит

В разделе 4 приводится описание кода CRC тремя способами: с помощью арифметики по модулю 2, с использованием полинома, аппаратная реализация. Циклический код используется не только в сетях X.25, но и в IP — сетях, в беспроводных сетях стандарта GSM и др.

Что такое TCP/IP

Произошло наименование протокола от сокращения двух английских понятий – Transmission Control Protocol и Internet Protocol. Набор правил, входящий в него, позволяет обрабатывать как сквозную передачу данных, так и другие детали этого механизма. Сюда входит формирование пакетов, способ их отправки, получения, маршрутизации, распаковки для передачи программному обеспечению.

Стек протоколов TCP/IP был создан в 1972 году на базе NCP (Network Control Protocol), в январе 1983 года он стал официальным стандартом для всего интернета. Техническая спецификация уровней взаимодействия описана в документе RFC 1122.

В составе стека есть и другие известные протоколы передачи данных – UDP, FTP, ICMP, IGMP, SMTP. Они представляют собой частные случаи применения технологии: например, у SMTP единственное предназначение заключается в отправке электронных писем. 

3 ответа

На настольном компьютере, используя Network Manager, все пальцы указывают на Network Manager. /etc/network/interfaces лишена информации о сети или беспроводной сети, ожидая, что NM выполнит эту работу. Кроме того, в настольных установках даже netplan отдает работу NM. Вот типичный файл netplan:

Хотя вполне возможно обойти или даже удалить NM, нет никаких веских оснований для этого, кроме «настроить его до тех пор, пока он не сломается».

Я предлагаю, чтобы ваш статический IP-адрес был установлен в NM:

Чтобы правильно установить статический IP-адрес, убедитесь, что выбранный адрес находится вне пула адресов, используемых для DHCP в маршрутизаторе. Например, настройте маршрутизатор для назначения DHCP с 192.168.1.2 по 192.168.1.50. Затем установите статический IP-адрес 192.168.1.100, и вы знаете, что это вы, а не маршрутизатор, который выбрал адрес.

ответ дан
22 May 2018 в 15:48

На настольном компьютере, используя Network Manager, все пальцы указывают на Network Manager. /etc/network/interfaces лишена информации о сети или беспроводной сети, ожидая, что NM выполнит эту работу. Кроме того, в настольных установках даже netplan отдает работу NM. Вот типичный файл netplan:

Хотя вполне возможно обойти или даже удалить NM, нет никаких веских оснований для этого, кроме «настроить его до тех пор, пока он не сломается».

Я предлагаю, чтобы ваш статический IP-адрес был установлен в NM:

Чтобы правильно установить статический IP-адрес, убедитесь, что выбранный адрес находится вне пула адресов, используемых для DHCP в маршрутизаторе. Например, настройте маршрутизатор для назначения DHCP с 192.168.1.2 по 192.168.1.50. Затем установите статический IP-адрес 192.168.1.100, и вы знаете, что это вы, а не маршрутизатор, который выбрал адрес.

ответ дан
18 July 2018 в 02:21

На настольном компьютере, используя Network Manager, все пальцы указывают на Network Manager. /etc/network/interfaces лишена информации о сети или беспроводной сети, ожидая, что NM выполнит эту работу. Кроме того, в настольных установках даже netplan отдает работу NM. Вот типичный файл netplan:

Хотя вполне возможно обойти или даже удалить NM, нет никаких веских оснований для этого, кроме «настроить его до тех пор, пока он не сломается».

Я предлагаю, чтобы ваш статический IP-адрес был установлен в NM:

Чтобы правильно установить статический IP-адрес, убедитесь, что выбранный адрес находится вне пула адресов, используемых для DHCP в маршрутизаторе. Например, настройте маршрутизатор для назначения DHCP с 192.168.1.2 по 192.168.1.50. Затем установите статический IP-адрес 192.168.1.100, и вы знаете, что это вы, а не маршрутизатор, который выбрал адрес.

ответ дан
24 July 2018 в 17:32

Параметры

Вопрос, связанный со статистическими факторами универсален для всех типов бизнеса и продукта. Сюда стоит включить ожидания по размеру эффекта и выбор границ по ошибкам I и II типов. В диаграмме 1 также не с проста стоит отдельным пунктом дисперсия. Дисперсию можно сократить, благодаря техникам оптимизации. Например, степенные трансформации. Прежде, чем их рассматривать, лучше разобрать приведенные выше факторы, а затем уже начать их изучение.

Время эксперимента рассчитывается, исходя из необходимого объема выборки для обнаружения истинного эффекта, который станет известен уже по факту. Определимся с базовой терминологией и двинемся дальше

Обнаружение и исправление ошибок

Самый простой способ это обнаружить ошибку. Например, с помощью контрольной суммы или какого-либо другого алгоритма. Если у нас технология канального уровня использует обнаружение технических ошибок, то кадр в котором произошла ошибка, просто отбрасывается. Попыток восстановить данные не производится. 

Более сложный механизм — это исправление ошибок. Чтобы иметь возможность исправить ошибку, нужно добавить к данным дополнительную информацию, с помощью которой мы сможем обнаружить ошибки и восстановить правильные данные. Для этого используются специальные коды исправляющие ошибки. 

Другой вариант исправление ошибок при передаче данных — это повторная отправка тех кадров в которых произошла ошибка. Он используется совместно с обнаружением ошибок, когда отправитель передает данные получателю, получатель обнаруживает ошибку в данных, но вместо того чтобы исправить ошибку в передаваемых данных, отправитель передает эти данные еще раз. 

Давайте рассмотрим, как реализуется повторная отправка сообщений. Предположим, что у нас есть отправитель и получатель и отправитель передал получателю некоторое сообщение. Получатель получил это сообщение проверил его на корректность убедился, что данные переданы правильно и после этого передает отправителю подтверждение о получении. Отправитель передает следующее сообщение предположим, что здесь произошла ошибка, получатель эту ошибку обнаружил или сообщение вообще не дошло до получателя, поэтому получатель не может передать подтверждение о получении этого сообщения. 

Отправитель, после того как, отправил сообщение запустил таймер ожидания подтверждения. По истечению времени ожидания  подтверждение не пришло, отправитель понял, что при передаче сообщения произошла проблема и нужно повторно передать то же самое сообщение.

В этот раз сообщение успешно дошло до получателя и он снова передает подтверждение. После этого отправитель может передавать следующий кадр. 

Есть два варианта метода повторной отправки сообщения. Схему которую мы рассмотрели называется с остановкой и ожиданием. Отправитель передает фрейм и останавливается ожидая подтверждение. Следующий кадр передается только после того, как пришло подтверждение о получении предыдущего сообщения. Такой метод используются в технологии канального уровня Wi-Fi. 

Другой вариант метода повторной отправки это скользящее окно. В этом случае отправитель передает ни одно сообщение, а сразу несколько сообщений и количество сообщений, которые можно передать не дожидаясь подтверждения называется размером окна. Здесь получатель передает подтверждение не для каждого отдельного сообщения, а для последнего полученного сообщения. Такой метод лучше работает на высокоскоростных каналах связи. Сейчас нет технологии канального уровня, которая использует этот метод, но он используется на транспортном уровне в протоколе TCP. 

У нас есть несколько вариантов, что можно делать с ошибками. Можно их обнаруживать, исправлять с помощью кодов исправления ошибок, либо с помощью повторной доставки сообщений. Также мы можем исправлять и обнаруживать ошибки на канальном уровне, либо на вышестоящих уровнях. 

Масштабируемость Ethernet

Оказывается, Ethernet и другие технологии канального уровня не подходят для создания крупной сети, которая может охватить весь мир из-за того, что у них есть существенные ограничения по масштабируемости. 

Давайте рассмотрим существующие ограничения. Коммутаторы изернет для передачи кадра пользуются таблицами коммутации. И эта таблица должна содержать все MAК-адреса компьютеров в сети. Если для локальной сети это можно сделать, то для глобальной сети, в которой несколько миллиардов устройств, никакому коммутатору не хватит памяти, чтобы хранить подобную таблицу. И искать нужный порт в такой огромной таблице будут очень долго. 

Следующая проблема в том, что если коммутатор не понимает куда отправлять кадр, он передает его на все порты, надеясь, что где-то там находиться получатель. Такой подход тоже работает в локальных сетях, но в глобальных сетях не работает. Если в интернет мы не знаем куда отправить пакет и будем пересылать всем компьютерам в интернете, то через некоторое время, мы засорим сеть такими мусорными пакетами и это приведет к отказу в обслуживании. 

Другая проблема это отсутствие дублирующих путей между коммутаторами. В Ethernet у нас всегда должно быть одно соединение, чтобы не образовалось кольца, иначе сеть будет перегружена широковещательным штормом. В Ethernet есть технология STP, которая позволяет создавать несколько связей между коммутаторами, но в каждый момент времени активно всего одно соединение.

Рассмотрим пример, в нашей сети есть несколько коммутаторов. Они соединены между собой и есть такое соединение, которое приводит к образованию кольца. 

В сети запускается протокол STP, коммутаторы выбирают корневой. Рассчитывают расстояние до корневого и отключают одно из соединений. 

Если коммутаторы используются для построения локальной сети, где расстояние между коммутаторами небольшое, то такой подход работает отлично. Но, предположим, что мы строим глобальную сеть и если мы хотим отправить данные из Екб в Челябинск, который является соседним городом и расположен близко, то на уровне Ethernet мы это сделать не сможем, потому что прямое соединение отключено протоколом STP.

Необходимо передавать данные через другие города, расстояние гораздо больше, поэтому скорость передачи будет существенно ниже. От этого хотелось бы избавиться. 

Масштабируемость на сетевом уровне

Что делает сетевой уровень, чтобы обеспечить масштабирование и построить такую сеть, которая способна объединить все компьютеры во всем мире, например сеть интернет. 

  • Первое это агрегация адресов. Сетевой уровень работает не с отдельными адресами, а с группами адресов, которые объединяются и такие блоки адресов называются сетью.
  • Пакеты, для которых путь доставки неизвестен на сетевом уровне отбрасываются. Это обеспечивает защиту составной сети от циркуляции мусорных пакетов. 
  • И возможность наличия нескольких активных путей в сети. Это является одной из причин создания сетей с пакетной коммутацией. В нашей сети всегда есть некое количество активных путей между отправителем и получателем. И данные могут пройти по любому из этих путей. В том числе, если один путь выйдет из строя, то другой путь останется доступным. Но если у нас есть несколько путей, то на сетевом уровне появляется задача маршрутизации. То есть, на каждом этапе мы должны определять, по какому пути мы отправим ту или иную порцию данных. 
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: