Сайт о телевидении

Сайт о телевидении

» » Что обеспечивает протокол ip. Протокол IPv4

Что обеспечивает протокол ip. Протокол IPv4

IP (internet protocol - межсетевой протокол) - маршрутизируемый сетевой протокол, протокол сетевого уровня семейства («стека») TCP/IP. IPv4 описан в RFC 791 (сентябрь 1981 года).

Основные положения:

    IP - основной протокол стека TCP/IP, он решает вопросы доставки сообщений между узлами составной сети.

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

    IP относится к протоколам без установки соединений. IP используется для негарантированной доставки данных, разделяемых на так называемые пакеты от одного узла сети к другому. Это означает, что на уровне этого протокола (третий уровень сетевой модели OSI) не даётся гарантий надёжной доставки пакета до адресата. В частности, пакеты могут прийти не в том порядке, в котором были отправлены, продублироваться (когда приходят две копии одного пакета; в реальности это бывает крайне редко), оказаться повреждёнными (обычно повреждённые пакеты уничтожаются) или не прибыть вовсе. Гарантию безошибочной доставки пакетов дают протоколы более высокого (транспортного уровня) сетевой модели OSI - например, Порты TCP - которые используют IP в качестве транспорта.

    Протокол IP использует принцип маршрутизации. Вид таблицы IP- маршрутизации зависит от конкретной реализации маршрутизатора, но в таблицах всех типов маршрутизаторов есть все ключевые поля, необходимые для выполнения маршрутизации. Существует несколько источников, поставляющих записи в таблицу маршрутизации:

    • Во-первых, при инициализации программное обеспечение стека TCP/IP заносит в таблицу записи о непосредственно подключенных сетях и маршрутизаторах по умолчанию, а также записи об особых адресах типа 127.0.0.0.

      Во-вторых, администратор вручную заносит статические записи о специфичных маршрутах или о маршрутизаторе по умолчанию.

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

    Важной особенностью протокола IP, отличающей его от других сетевых протоколов, является его способность выполнять динамическую фрагментацию пакетов при передаче их между сетями с различными MTU .

Структура IP пакета

Пакет протокола IP состоит из заголовка и поля данных. Максимальная длина пакета 65 535 байт. Заголовок обычно имеет длину 20 байт и содержит информацию о сетевых адресах отправителя и получателя, о параметрах фрагментации, о времени жизни пакета, о контрольной сумме и некоторых других. В поле данных IP- пакета находятся сообщения более высокого уровня.

Рассмотрим поля структуру IP- пакета на конкретном примере.

    Поле Длина заголовка (IHL) IP- пакета занимает 4 бит и указывает значение длины заголовка, измеренное в 32-битовых словах. Обычно заголовок IP-пакета имеет длину в 20 байт (пять 32-битовых слов), но при увеличении объема служебной информации эта длина может быть увеличена. Наибольший заголовок занимает 60 октетов.

    Поле Тип сервиса (Type of Service) занимает один байт и задает приоритетность пакета и вид критерия выбора маршрута. Первые три бита этого поля образуют подполе приоритета пакета (Precedence) . Приоритет может иметь значения от самого низкого - 0 (нормальный пакет) до самого высокого - 7 (пакет управляющей информации) . Маршрутизаторы и компьютеры могут принимать во внимание приоритет пакета и обрабатывать более важные пакеты в первую очередь. Поле Type of Service содержит также три бита, определяющие критерий выбора маршрута. Реально выбор осуществляется между тремя альтернативами: малой задержкой, высокой достоверностью и высокой пропускной способностью. Во многих сетях улучшение одного из этих параметров связано с ухудшением другого, кроме того, обработка каждого из них требует дополнительных вычислительных затрат. Поэтому редко, когда имеет смысл устанавливать одновременно хотя бы два из этих трех критериев выбора маршрута. Зарезервированные биты имеют нулевое значение. Установленный * бит D (delay) говорит о том, что маршрут должен выбираться для минимизации задержки доставки данного пакета * бит Т - для максимизации пропускной способности * бит R - для максимизации надежности доставки.

    Поле Общая длина (Total Length) занимает 2 байта и означает общую длину пакета с учетом заголовка и поля данных. Максимальная длина пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65 535 байт, однако в большинстве компьютеров и сетей такие большие пакеты не используются. При передаче по сетям различного типа длина пакета выбирается с учетом максимальной длины пакета протокола нижнего уровня, несущего IP- пакеты. Если это кадры Ethernet, то выбираются пакеты с максимальной длиной в 1500 байт, умещающиеся в поле данных кадра Ethernet. В стандарте предусматривается, что все хосты должны быть готовы принимать пакеты вплоть до 576 байт длиной (приходят ли они целиком или по фрагментам). Существует такое правило: хостам рекомендуется отправлять пакеты размером более чем 576 байт, только если они уверены, что принимающий хост или промежуточная сеть готовы обслуживать пакеты такого размера.

    Поле Идентификатор пакета (Identification) занимает 2 байта и используется для распознавания пакетов, образовавшихся путем фрагментации исходного пакета. Все фрагменты должны иметь одинаковое значение этого поля.

    Поле Флаги (Flags) занимает 3 бита и содержит признаки, связанные с фрагментацией: установленный бит DF (Do not Fragment) запрещает маршрутизатору фрагментировать данный пакет, а установленный бит MF (More Fragments) говорит о том, что данный пакет является промежуточным (не последним) фрагментом. Оставшийся бит зарезервирован.

    Поле Смещение фрагмента (Fragment Offset) занимает 13 бит и задает смещение в байтах поля данных этого пакета от начала общего поля данных исходного пакета, подвергнутого фрагментации. Используется при сборке/разборке фрагментов пакетов при передачах их между сетями с различными величинами MTU . Смещение должно быть кратно 8 байт.

    Поле Время жизни (Time to Live) занимает 1 байт и означает предельный срок, в течение которого пакет может перемещаться по сети. Время жизни данного пакета измеряется в секундах и задается источником передачи. На маршрутизаторах и в других узлах сети по истечении каждой секунды из текущего времени жизни вычитается единица; единица вычитается и в том случае, когда время задержки меньше секунды. Поскольку современные маршрутизаторы редко обрабатывают пакет дольше, чем за одну секунду, то время жизни можно считать равным максимальному числу узлов, которые разрешено пройти данному пакету до того, как он достигнет места назначения. Если параметр времени жизни станет нулевым до того, как пакет достигнет получателя, этот пакет будет уничтожен. Время жизни можно рассматривать как часовой механизм самоуничтожения. Значение этого поля изменяется при обработке заголовка IP-пакета.

    Идентификатор Протокол верхнего уровня (Protocol) занимает 1 байт и указывает, какому протоколу верхнего уровня принадлежит информация, размещенная в поле данных пакета (например, это могут быть сегменты протоколов верхних уровней или протоколов маршрутизации). Значения идентификаторов для различных протоколов приводятся в документе RFC 3232 - Assigned Numbers.

    Контрольная сумма (Header Checksum) занимает 2 байта и рассчитывается только по заголовку. Поскольку некоторые поля заголовка меняют свое значение в процессе передачи пакета по сети (например, время жизни), контрольная сумма проверяется и повторно рассчитывается при каждой обработке IP- заголовка. Контрольная сумма - 16 бит - подсчитывается как дополнение к сумме всех 16-битовых слов заголовка. При вычислении контрольной суммы значение самого поля "контрольная сумма" устанавливается в нуль. Если контрольная сумма неверна, то пакет будет отброшен, как только ошибка будет обнаружена.

    Поля IP-адрес источника (Source IP Address) и

    IP-адрес назначения (Destination IP Address) имеют одинаковую длину - 32 бита - и одинаковую структуру.

    Поле Опции (IP Options) является необязательным и используется обычно только при отладке сети. Механизм опций предоставляет функции управления, которые необходимы или просто полезны при определенных ситуациях, однако он не нужен при обычных коммуникациях. Это поле состоит из нескольких подполей, каждое из которых может быть одного из восьми предопределенных типов. В этих подполях можно указывать точный маршрут прохождения маршрутизаторов, регистрировать проходимые пакетом маршрутизаторы, помещать данные системы безопасности, а также временные отметки. Так как число подполей может быть произвольным, то в конце поля Опции должно быть добавлено несколько байт для выравнивания заголовка пакета по 32-битной границе.

    Поле Выравнивание (Padding) используется для того, чтобы убедиться в том, что IP- заголовок заканчивается на 32-битной границе. Выравнивание осуществляется нулями.

IP фрагментация, MTU, MSS, и PMTUD

Фрагментация IP пакетов: MTU , MSS , и PMTUD . PMTUD (Path MTU Discovery) и проблема фрагментации пакетов (network mtu ping packet)

Почему же работают пинг при проблемах с MTU? Пакеты ICMP Request и Relpy имеют размер от 32 до 64 байтов, пингуемый сервер возвращает очень мало информации, которая вполне укладывается в допустимый размер вместе со всеми заголовками.

Протокол Порты TCP позволяет согласовать значение максимального размера сегмента (MSS) обоим участникам соединения. Каждая сторона указывает предлагаемый размер MSS в поле ОПЦИИ заголовка пакета TCP. Будет принято наименьшее из двух значений. Такое согласование позволяет избежать фрагментации пакетов при прохождении через маршрутизаторы и шлюзы, и их последующей сборки на целевом хосте, что приводит к задержкам и снижению скорости передачи.

Фрагментация подразумевает разбиение блока данных (пакета) на равные части. Соответственно после фрагментации следующим этапом следует сборка фрагментов. Протокол IP позволяет выполнять фрагментацию только тех пакетов, которые поступают на входные порты маршрутизаторов. Следует различать фрагментацию сообщений в узле-отправителе, и динамическую фрагментацию сообщений в маршрутизаторах. Дело в том, что практически во всех стеках протоколов есть протоколы, которые осуществляют фрагментацию сообщений прикладного уровня на такие части, которые укладываются в кадры канального уровня. В стеке TCP/IP, например, эту задачу решает протокол транспортного уровня TCP. Этот протокол может разбивать поток байтов, передаваемый ему с прикладного уровня на сообщения нужного размера (например, на 1460 байт для протокола Ethernet).

Поэтому протокол IP в узле-отправителе не использует свои возможности по фрагментации пакетов.

А вот при необходимости передать пакет в следующую сеть, для которой размер пакета является слишком большим, IP-фрагментация становится необходимой.

В функции уровня IP входит разбиение слишком длинного для конкретного типа составляющей сети сообщения на более короткие пакеты с созданием соответствующих служебных полей, нужных для последующей сборки фрагментов в исходное сообщение.

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

Сети Ethernet имеют значение MTU, равное 1500 байт, сети FDDI - 4096 байт, а сети Х.25 чаще всего работают с MTU в 128 байт.

Итак, необходимость фрагментации пакетов на уровне IP мы пояснили. Теперь перейдем к самому процессу фрагментации пакетов IP.

Как мы уже выяснили из предыдущего раздела нашего урока, в поле Flags заголовка IP-пакет может быть помечен как не фрагментируемый. Любой пакет, помеченный таким образом, не может быть фрагментирован модулем IP ни при каких условиях.

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

Протокол IP допускает возможность использования в пределах отдельной подсети ее собственных средств фрагментирования, невидимых для протокола IP.

Например, технология АТМ делит поступающие IP-пакеты на ячейки с полем данных в 48 байт с помощью своего уровня сегментирования, а затем собирает ячейки в исходные пакеты на выходе из сети. Но такие технологии, как АТМ, являются скорее исключением, чем правилом.

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

Для того, чтобы не перепутать фрагмент различных типов, в заголовке IP-пакетов используется поле Identification.

Модуль протокола IP, отправляющий пакет, устанавливает в поле Identification значение, которое должно быть уникальным для данной пары отправитель - получатель. Кроме этого отправитель в заголовке пакета устанавливает время, в течение которого пакет может быть активным в сети.

Поле смещения фрагмента (Fragment Offset) сообщает получателю положение фрагмента в исходном пакете. Смещение фрагмента и длина определяют часть исходного пакета, принесенную этим фрагментом. Флаг "more fragments" показывает появление последнего фрагмента. Модуль протокола IP, отправляющий неразбитый на фрагменты пакет, устанавливает в нуль флаг "more fragments" и смещение во фрагменте.

Все эти поля дают достаточное количество информации для сборки пакета.

Итак, чтобы разделить на фрагменты большой пакет, модуль протокола IP, установленный, например, на маршрутизаторе, создает несколько новых пакетов и копирует содержимое полей IP-заголовка из большого пакета в IP-заголовки всех новых пакетов. Данные из старого пакета делятся на соответствующее число частей, размер каждой из которых, кроме самой последней, обязательно должен быть кратным 8 байт.

Размер последней части данных равен полученному остатку.

Каждая из полученных частей данных помещается в новый пакет.

Когда происходит фрагментация, то некоторые параметры IP-заголовка копируются в заголовки всех фрагментов, а другие остаются лишь в заголовке первого фрагмента.

Процесс фрагментации может изменить значения данных, расположенных в поле параметров, и значение контрольной суммы заголовка, изменить значение флага "more fragments" и смещение фрагмента, изменить длину IP-заголовка и общую длину пакета.

В заголовок каждого пакета заносятся соответствующие значения в поле смещения "fragment offset", а в поле общей длины пакета помещается длина каждого пакета.

Таким образом, первый фрагмент будет иметь в поле "fragment offset" нулевое значение. Во всех пакетах, кроме последнего, флаг "more fragments" устанавливается в единицу, а в последнем фрагменте - в нуль.

Теперь давайте рассмотрим процесс сборки фрагментов пакетов.

Чтобы собрать фрагменты пакета, модуль протокола IP объединяет IP-пакеты, имеющие одинаковые значения в полях идентификатора, отправителя, получателя и протокола.

Таким образом, отправитель должен выбрать идентификатор таким образом, чтобы он был уникален для данной пары отправитель-получатель, для данного протокола и в течение того времени, пока данный пакет (или любой его фрагмент) может существовать в составной IP-сети.

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

Однако, поскольку поле идентификатора допускает 65 536 различных значений, некоторые хосты могут использовать просто уникальные идентификаторы, не зависящие от адреса получателя.

В некоторых случаях целесообразно, чтобы идентификаторы IP-пакетов выбирались протоколами более высокого, чем IP, уровня.

Процедура объединения заключается в помещении данных из каждого фрагмента в позицию, указанную в заголовке пакета в поле "fragment offset".

Каждый модуль IP должен быть способен передать пакет из 68 байт без дальнейшей фрагментации. Это связано с тем, что IP-заголовок может включать до 60 байт, а минимальный фрагмент данных - 8 байт. Каждый получатель должен быть в состоянии принять пакет из 576 байт в качестве единого куска либо в виде фрагментов, подлежащих сборке. Если бит флага запрета фрагментации (Don"t Fragment, DF) установлен, то фрагментация данного пакета запрещена, даже если в этом случае он будет потерян.

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

Итак, после длительных объяснений давайте закрепим на примере все, что мы сейчас узнали о фрагментации IP-пакетов.

Рассмотрим процесс фрагментации IP-пакетов при передаче между сетями с разным размером пакетов на примере, который показан на этом рисунке.

Канальный и физический уровни обозначены, как К1, Ф1, К2, Ф2 соответственно.

Пусть компьютер 1 связан с сетью, имеющей значение MTU в 4096 байт, например с сетью FDDI.

При поступлении на IP-уровень компьютера 1 сообщения от транспортного уровня размером в 5600 байт протокол IP делит его на два IP-пакета. В первом пакете устанавливает признак фрагментации и присваивает пакету уникальный идентификатор, например 486.

В первом пакете величина поля смещения равна 0, а во втором - 2800.

Признак фрагментации во втором пакете равен нулю, что показывает, что это последний фрагмент пакета.

Общая величина IP-пакета составляет 2800 плюс 20 (размер IP-заголовка), то есть 2820 байт, что умещается в поле данных кадра FDDI.

Сетевой интерфейс отправляет кадры следующему маршрутизатору.

После того, как кадры пройдут уровень сетевого интерфейса маршрутизатора (К1 и Ф1) и освободятся от заголовков FDDI, модуль IP по сетевому адресу определяет, что прибывшие два пакета нужно передать в сеть 2, которая является сетью Ethernet и имеет значение MTU, равное 1500.

Следовательно, прибывшие IP-пакеты необходимо фрагментировать.

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

Затем он формирует новые IP-пакеты, каждый из которых имеет длину 1400 + 20 = 1420 байт, что меньше 1500 байт, поэтому они нормально помещаются в поле данных кадров Ethernet.

В результате в компьютер 2 по сети Ethernet приходят четыре IP-пакета с общим идентификатором 486.

Протокол IP, работающий в компьютере 2, должен правильно собрать исходное сообщение.

Если пакеты пришли не в том порядке, в котором были посланы, то смещение укажет правильный порядок их объединения.

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

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

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

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

Предположим, что вы плохо владеете сетевыми технологиями, и даже не знаете элементарных основ. Но вам поставили задачу: в быстрые сроки построить информационную сеть на небольшом предприятии. У вас нет ни времени, ни желания изучать толстые талмуды по проектированию сетей, инструкции по использованию сетевого оборудования и вникать в сетевую безопасность. И, главное, в дальнейшем у вас нет никакого желания становиться профессионалом в этой области. Тогда эта статья для вас.


Вторая часть этой статьи, где рассматривается практическое применение изложенных здесь основ: Заметки о Cisco Catalyst: настройка VLAN, сброс пароля, перепрошивка операционной системы IOS

Понятие о стеке протоколов

Задача - передать информацию от пункта А в пункт В. Её можно передавать непрерывно. Но задача усложняется, если надо передавать информацию между пунктами A<-->B и A<-->C по одному и тому же физическому каналу. Если информация будет передаваться непрерывно, то когда С захочет передать информацию в А - ему придётся дождаться, пока В закончит передачу и освободит канал связи. Такой механизм передачи информации очень неудобен и непрактичен. И для решения этой проблемы было решено разделять информацию на порции.

На получателе эти порции требуется составить в единое целое, получить ту информацию, которая вышла от отправителя. Но на получателе А теперь мы видим порции информации как от В так и от С вперемешку. Значит, к каждой порции надо вписать идентификационный номер, что бы получатель А мог отличить порции информации с В от порций информации с С и собрать эти порции в изначальное сообщение. Очевидно, получатель должен знать, куда и в каком виде отправитель приписал идентификационные данные к исходной порции информации. И для этого они должны разработать определённые правила формирования и написания идентификационной информации. Далее слово «правило» будет заменяться словом «протокол».

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

В протоколе Ethernet находятся номер сетевого адаптера отправителя (MAC-адрес), номер сетевого адаптера получателя, тип передаваемых данных и непосредственно передаваемые данные. Порция информации, составленная в соответствии с протоколом Ethernet, называется кадром. Считается, что сетевых адаптеров с одинаковым номером не существует. Сетевое оборудование извлекает передаваемые данные из кадра (аппаратно или программно), и производит дальнейшую обработку.

Как правило, извлечённые данные в свою очередь сформированы в соответствии с протоколом IP и имеют другой вид идентификационной информации - ip адрес получателя (число размером в 4 байта), ip адрес отправителя и данные. А так же много другой необходимой служебной информации. Данные, сформированные в соответствии с IP протоколом, называются пакетами.

Далее извлекаются данные из пакета. Но и эти данные, как правило, ещё не являются изначально отправляемыми данными. Этот кусок информации тоже составлен в соответствии определённому протоколу. Наиболее широко используется TCP протокол. В нём содержится такая идентификационная информация, как порт отправителя (число размером в два байта) и порт источника, а так же данные и служебная информация. Извлечённые данные из TCP, как правило, и есть те данные, которые программа, работающая на компьютере В, отправляла «программе-приёмнику» на компьютере A.

Вложность протоколов (в данном случае TCP поверх IP поверх Ethernet) называется стеком протоколов.

ARP: протокол определения адреса

Существуют сети классов A, B, C, D и E. Они различаются по количеству компьютеров и по количеству возможных сетей/подсетей в них. Для простоты, и как наиболее часто встречающийся случай, будем рассматривать лишь сеть класса C, ip-адрес которой начинается на 192.168. Следующее число будет номером подсети, а за ним - номер сетевого оборудования. К примеру, компьютер с ip адресом 192.168.30.110 хочет отправить информацию другому компьютеру с номером 3, находящемуся в той же логической подсети. Это значит, что ip адрес получателя будет такой: 192.168.30.3

Важно понимать, что узел информационной сети - это компьютер, соединённый одним физическим каналом с коммутирующим оборудованием. Т.е. если мы отправим данные с сетевого адаптера «на волю», то у них одна дорога - они выйдут с другого конца витой пары. Мы можем послать совершенно любые данные, сформированные по любому, выдуманному нами правилу, ни указывая ни ip адреса, ни mac адреса ни других атрибутов. И, если этот другой конец присоединён к другому компьютеру, мы можем принять их там и интерпретировать как нам надо. Но если этот другой конец присоединён к коммутатору, то в таком случае пакет информации должен быть сформирован по строго определённым правилам, как бы давая коммутатору указания, что делать дальше с этим пакетом. Если пакет будет сформирован правильно, то коммутатор отправит его дальше, другому компьютеру, как было указано в пакете. После чего коммутатор удалит этот пакет из своей оперативной памяти. Но если пакет был сформирован не правильно, т.е. указания в нём были некорректны, то пакет «умрёт», т.е. коммутатор не будет отсылать его куда либо, а сразу удалит из своей оперативной памяти.

Для передачи информации другому компьютеру, в отправляемом пакете информации надо указать три идентификационных значения - mac адрес, ip адрес и порт. Условно говоря, порт - это номер, который, выдаёт операционная система каждой программе, которая хочет отослать данные в сеть. Ip адрес получателя вводит пользователь, либо программа сама получает его, в зависимости от специфики программы. Остаётся неизвестным mac адрес, т.е. номер сетевого адаптера компьютера получателя. Для получения необходимой данной, отправляется «широковещательный» запрос, составленный по так называемому «протоколу разрешения адресов ARP». Ниже приведена структура ARP пакета.

Сейчас нам не надо знать значения всех полей на приведённой картинке. Остановимся лишь на основных.

В поля записываются ip адрес источника и ip адрес назначения, а так же mac адрес источника.

Поле «адрес назначения Ethernet» заполняется единицами (ff:ff:ff:ff:ff:ff). Такой адрес называется широковещательным, и такой фрейм будер разослан всем «интерфейсам на кабеле», т.е. всем компьютерам, подключённым к коммутатору.

Коммутатор, получив такой широковещательный фрейм, отправляет его всем компьютерам сети, как бы обращаясь ко всем с вопросом: «если Вы владелец этого ip адреса (ip адреса назначения), пожалуйста сообщите мне Ваш mac адрес». Когда другой компьютер получает такой ARP запрос, он сверяет ip адрес назначения со своим собственным. И если он совпадает, то компьютер, на место единиц вставляет свой mac адрес, меняет местами ip и mac адреса источника и назначения, изменяет некоторую служебную информацию и отсылает пакет обратно коммутатору, а тот обратно - изначальному компьютеру, инициатору ARP запроса.

Таким образом ваш компьютер узнаёт mac адрес другого компьютера, которому вы хотите отправить данные. Если в сети находится сразу несколько компьютеров, отвечающих на этот ARP запрос, то мы получаем «конфликт ip адресов». В таком случае необходимо изменить ip адрес на компьютерах, что бы в сети не было одинаковых ip адресов.

Построение сетей

Задача построения сетей

На практике, как правило, требуется построить сети, число компьютеров в которой будет не менее ста. И кроме функций файлообмена, наша сеть должна быть безопасной и простой в управлении. Таким образом, при построении сети, можно выделить три требования:
  1. Простота в управлении. Если бухгалтера Лиду переведут в другой кабинет, ей по-прежнему понадобится доступ к компьютерам бухгалтеров Анны и Юлии. И при неправильном построении своей информационной сети, у администратора могут возникнуть трудности в выдаче Лиде доступа к компьютерам других бухгалтеров на её новом месте.
  2. Обеспечение безопасности. Для обеспечения безопасности нашей сети, права доступа к информационным ресурсам должны быть разграничены. Так же сеть должна быть защищена от угроз раскрытия, целостности и отказа в обслуживании. Подробнее читайте в книге «Атака на Internet» автора Илья Давидович Медведовский, глава «Основные понятия компьютерной безопасности» .
  3. Быстродействие сети. При построении сетей есть техническая проблема - зависимость скорости передачи от количества компьютеров в сети. Чем больше компьютеров - тем ниже скорость. При большом количестве компьютеров, быстродействие сети может стать настолько низким, что она станет неприемлемой заказчику.
Из-за чего при большом количестве компьютеров снижается скорость сети? - причина проста: из-за большого количества широковещательных сообщений (ШС). ШС - это сообщение, которое, приходя на коммутатор, отправляется всем хостам сети. Или, грубо говоря, всем компьютерам, находящимся в вашей подсети. Если компьютеров в сети 5, то каждый компьютер будет принимать по 4 ШС. Если их будет 200, то каждый компьютер в такой большой сети будет принимать по 199 ШС.

Существует большое множество приложений, программных модулей и сервисов, которые, для своей работы отправляют в сеть широковещательные сообщения. Описанный в пункте ARP: протокол определения адреса лишь один из множества ШС, отправляемый вашим компьютером в сеть. Например, когда вы заходите в «Сетевое окружение» (ОС Windows), ваш компьютер посылает ещё несколько ШС со специальной информацией, сформированной по протоколу NetBios, что бы просканировать сеть на наличие компьютеров, находящихся в той же рабочей группе. После чего ОС рисует найденные компьютеры в окне «Сетевое окружение» и вы их видите.

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

Виртуальные локальные сети

Для решения первой и третьей проблем, а так же в помощь решения второй проблемы, повсеместно используют механизм разбиения локальной сети на более маленькие сети, как бы отдельные локальные сети (Virtual Local Area Network). Грубо говоря, VLAN - это список портов на коммутаторе, принадлежащих одной сети. «Одной» в том смысле, что другой VLAN будет содержать список портов, принадлежащих другой сети.

Фактически, создание двух VLAN-ов на одном коммутаторе эквивалентно покупке двух коммутаторов, т.е. создание двух VLAN-ов - это всё равно, что один коммутатор разделить на два. Таким образом происходит разбиение сети из ста компьютеров на более маленькие сети, из 5-20 компьютеров - как правило именно такое количество соответствует физическому местонахождению компьютеров по надобности файлообмена.

  • При разбиении сети на VLAN-ы достигается простота управления. Так, при переходе бухгалтера Лиды в другой кабинет, администратору достаточно удалить порт из одного VLAN-а и добавить в другой. Подробнее это рассмотрено в пункте VLAN-ы, теория.
  • VLAN-ы помогают решить одно из требований к безопасности сети, а именно разграничение сетевых ресурсов. Так, студен из одной аудитории не сможет проникнуть на компьютеры другой аудитории или компьютер ректора, т.к. они находятся в фактически разных сетях.
  • Т.к. наша сеть разбита на VLAN-ы, т.е. на маленькие «как бы сети», пропадает проблема с широковещательными сообщениями.

VLAN-ы, теория

Возможно, фраза «администратору достаточно удалить порт из одного VLAN-а и добавить в другой» могла оказаться непонятной, поэтому поясню её подробнее. Порт в данном случае - это не номер, выдаваемый ОС приложению, как было рассказано в пункте Стек протоколов, а гнездо (место) куда можно присоединить (вставить) коннектор формата RJ-45. Такой коннектор (т.е. наконечник к проводу) прикрепляется к обоим концам 8-ми жильного провода, называемого «витая пара». На рисунке изображён коммутатор Cisco Catalyst 2950C-24 на 24 порта:
Как было сказано в пункте ARP: протокол определения адреса каждый компьютер соединён с сетью одним физическим каналом. Т.е. к коммутатору на 24 порта можно присоединить 24 компьютера. Витая пара физически пронизывает все помещения предприятия - все 24 провода от этого коммутатора тянутся в разные кабинеты. Пусть, к примеру, 17 проводов идут и подсоединяются к 17-ти компьютерам в аудитории, 4 провода идут в кабинет спецотдела и оставшиеся 3 провода идут в только что отремонтированный, новый кабинет бухгалтерии. И бухгалтера Лиду, за особые заслуги, перевели в этот самый кабинет.

Как сказано выше, VLAN можно представлять в виде списка принадлежащих сети портов. К примеру, на нашем коммутаторе было три VLAN-а, т.е. три списка, хранящиеся во flash-памяти коммутатора. В одном списке были записаны цифры 1, 2, 3… 17, в другом 18, 19, 20, 21 и в третьем 22, 23 и 24. Лидин компьютер раньше был присоединён к 20-ому порту. И вот она перешла в другой кабинет. Перетащили её старый компьютер в новый кабинет, или она села за новый компьютер - без разницы. Главное, что её компьютер присоединили витой парой, другой конец которой вставлен в порт 23 нашего коммутатора. И для того, что бы она со своего нового места могла по прежнему пересылать файлы своим коллегам, администратор должен удалить из второго списка число 20 и добавить число 23. Замечу, что один порт может принадлежать только одному VLAN-у, но мы нарушим это правило в конце этого пункта.

Замечу так же, что при смене членства порта в VLAN, администратору нет никакой нужды «перетыкать» провода в коммутаторе. Более того, ему даже не надо вставать с места. Потому что компьютер администратора присоединён к 22-ому порту, с помощью чего он может управлять коммутатором удалённо. Конечно, благодаря специальным настройкам, о которых будет рассказано позже, лишь администратор может управлять коммутатором. О том, как настраивать VLAN-ы, читайте в пункте VLAN-ы, практика [в следующей статье].

Как вы, наверное, заметили, изначально (в пункте Построение сетей) я говорил, что компьютеров в нашей сети будет не менее 100. Но к коммутатору можно присоединить лишь 24 компьютера. Конечно, есть коммутаторы с большим количеством портов. Но компьютеров в корпоративной сети/сети предприятия всё равно больше. И для соединения бесконечно большого числа компьютеров в сеть, соединяют между собой коммутаторы по так называемому транк-порту (trunk). При настройки коммутатора, любой из 24-портов можно определить как транк-порт. И транк-портов на коммутаторе может быть любое количество (но разумно делать не более двух). Если один из портов определён как trunk, то коммутатор формирует всю пришедшую на него информацию в особые пакеты, по протоколу ISL или 802.1Q, и отправляет эти пакеты на транк-порт.

Всю пришедшую информацию - имеется в виду, всю информацию, что пришла на него с остальных портов. А протокол 802.1Q вставляется в стек протоколов между Ethernet и тем протоколом, по которому были сформированные данные, что несёт этот кадр.

В данном примере, как вы, наверное, заметили, администратор сидит в одном кабинете вместе с Лидой, т.к. витая пора от портов 22, 23 и 24 ведёт в один и тот же кабинет. 24-ый порт настроен как транк-порт. А сам коммутатор стоит в подсобном помещении, рядом со старым кабинетом бухгалтеров и с аудиторией, в которой 17 компьютеров.

Витая пара, которая идёт от 24-ого порта в кабинет к администратору, подключается к ещё одному коммутатору, который в свою очередь, подключён к роутеру, о котором будет рассказано в следующих главах. Другие коммутаторы, которые соединяют другие 75 компьютеров и стоят в других подсобных помещениях предприятия - все они имеют, как правило, один транк-порт, соединённый витой парой или по оптоволокну с главным коммутатором, что стоит в кабинете с администратором.

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

Примерно так выглядело построение сетей больших предприятий во времена коммутатора Cisco Catalyst 1900. Вы, наверное, заметили два больших неудобства таких сетей. Во первых, использование транк-порта вызывает некоторые сложности и создаёт лишнюю работу при конфигурировании оборудования. А во вторых, и в самых главных - предположим, что наши «как бы сети» бухгалтеров, экономистов и диспетчеров хотят иметь одну на троих базу данных. Они хотят, что бы та же бухгалтерша смогла увидеть изменения в базе, которые сделала экономистка или диспетчер пару минут назад. Для этого нам надо сделать сервер, который будет доступен всем трём сетям.

Как говорилось в середине этого пункта, порт может находиться лишь в одном VLAN-е. И это действительно так, однако, лишь для коммутаторов серии Cisco Catalyst 1900 и старше и у некоторых младших моделей, таких как Cisco Catalyst 2950. У остальных коммутаторов, в частности Cisco Catalyst 2900XL это правило можно нарушить. При настройке портов в таких коммутаторах, каждый пор может иметь пять режимов работы: Static Access, Multi-VLAN, Dynamic Access, ISL Trunk и 802.1Q Trunk. Второй режим работы именно то, что нам нужно для выше поставленной задачи - дать доступ к серверу сразу с трёх сетей, т.е. сделать сервер принадлежащим к трём сетям одновременно. Так же это называется пересечением или таггированием VLAN-ов. В таком случае схема подключения может быть такой.

локальный адрес узла, определяемый технологией, с помощью которой построена отдельная сеть, куда входит данный узел.
  • Сетевой (IP-адрес) , состоящий из 4 байтов, например, 109.26.17.100 . Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов. IP-адрес состоит из двух частей: номера сети и номера узла. Номер сети может быть выбран администратором произвольно или назначен по рекомендации специального подразделения Интернета (Network Information Center, NIC ), если сеть должна работать как составная часть Интернета. Обычно провайдеры услуг Интернета получают диапазоны адресов у подразделений NIC , а затем распределяют их между своими абонентами.

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

  • Символьный (DNS-имя) - идентификатор-имя. Этот адрес назначается администратором и состоит из нескольких частей, например, имени машины, имени организации, имени домена.
  • Интернет - это совокупность тысяч компьютеров, объединенных в сети, которые, в свою очередь , соединены между собой посредством маршрутизаторов.

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

    Подавляющее большинство сетей сейчас использует протокол IPv4 (интернет-протокол версии 4) , хотя уже разработана шестая версия протокола IP . Схема адресации протокола IPv4 предусматривает размер адресного поля 32 бита, что дает 2 32 (или 4 294 967 296) потенциальных адресов.

    IP - адрес любой рабочей станции состоит из адреса сети и адреса компьютера в этой сети. В архитектуре адресации предусмотрено пять форматов адреса, каждый из которых начинается с одного, двух, трех или четырех битов, идентифицирующих класс сети ( класс А, В, С, D или Е ). Область сетевого идентификатора ( Network ID ) определяет конкретную сеть в классе, а область Host ID идентифицирует конкретный компьютер в сети, а именно:

    • адреса класса А идентифицируются начальным битом 0 . Следующие семь битов определяют конкретную сеть (число возможных значений - 128, или 2 7). Остальные 24 бита определяют конкретный компьютер в сети, при возможном количестве компьютеров 16 777 216 (2 24). Адреса класса А предназначены для очень крупных сетей с большим количеством рабочих станций;
    • адреса класса В идентифицируются начальной двухбитовой двоичной последовательностью 10 . Следующие 14 битов определяют сеть, при возможном количестве сетей 16 384 (2 14). Остальные 16 битов определяют конкретный компьютер, с возможным количеством компьютеров 65 536 (2 16);
    • адреса класса С идентифицируются начальной трехбитовой последовательностью 110 . Следующие 21 бит определяют сеть, с возможным количеством сетей 2 097 152. Остальные 8 битов определяют конкретный компьютер в сети, с возможным количеством компьютеров 256 (2 8). Большинство организаций имеют адреса класса С ;
    • адреса класса D идентифицируются начальной четырехбитовой последовательностью 1110 . Адреса этого класса предназначены для групповой передачи, и оставшиеся 28 битов определяют групповой адрес;
    • адреса класса Е идентифицируются начальной четырехбитовой двоичной последовательностью 1111 . Адреса этого класса зарезервированы для будущего использования.


    Рис. 2.1.

    Способ, при помощи которого записываются все IP -адреса, называется пунктирной десятичной системой обозначений. Каждое 32-битовое адресное поле разделено на четыре поля в виде ххх.ххх.ххх.ххх , и каждому полю дается десятичное числовое значение от 0 до 255, выраженное в виде одного октета (2 8 = 256, или 0-255). Адреса класса А начинаются с 1 до 127, адреса класса В - с 128 до 191, и адреса класса С - с 192 до 223.

    Класс Наименьший адрес Наибольший адрес
    А 1.0.0.0 126.0.0.0
    В 128.0.0.0 191.255.0.0
    С 192.0.0.0 223.255.255.0
    D 224.0.0.0 239.255.255.255
    Е 240.0.0.0 247.255.255.255

    Строго говоря, адрес идентифицирует только сетевой интерфейс рабочей станции, т. е. точку подключения к сети.

    IP -адреса распределяются Корпорацией Интернет по присвоению имен и номеров (ICANN) . Класс IP -адреса и, следовательно, количество возможных адресов компьютеров зависит от размеров организации. Организация, которой присвоены номера, может затем переназначить их на основе либо статической, либо динамической адресации. Статическая адресация означает жесткую привязку IP -адреса к конкретному компьютеру. При динамической адресации компьютеру присваивается доступный IP - адрес всякий раз при установлении соединения. Динамическое присвоение IP -адресов обычно осуществляется через маршрутизатор , работающий по протоколу DHCP (протокол динамической конфигурации рабочей станции) . Наоборот, если доступ к поставщику осуществляется по xDSL , поставщик услуг Интернет обычно присваивает пользователю один или более статических IP -адресов.

    Как уже отмечалось, протокол IP версии 4 предусматривает размер адресного поля 32 бита, что дает 2 32 (или 4 294 967 296) потенциальных адресов. Однако возрастающая популярность технологии TCP / IP привела к истощению плана нумерации протокола. Дополнительной проблемой является тот факт, что очень большое количество адресов класса А и класса В было выделено крупным организациям, которые в них на самом деле не нуждались, и поскольку фактически использовался только небольшой процент адресов, огромное количество доступных адресов было потеряно.

    Протокол IPv6 решает этот вопрос путем расширения адресного поля до 128 битов, обеспечивая тем самым 2 128 потенциальных адресов, что составляет величину 340.282.366.920.938.463.463.374.607.431.768.211.456.

    Протокол IPv6 обладает также дополнительными функциональными возможностями, хотя для их реализации потребуется модернизация существующего сетевого программного обеспечения.

    Но вернемся к протоколу IPv4. Компьютер , подключенный к сети Интернет , кроме IP -адреса может идентифицироваться доменным именем. Сеть Интернет разделена на логические области (домены). Адреса в системе имен доменов (DNS) , администрирование которых лежит на ICANN , имеют стандартный вид: последовательность имен, разделенных точками. Домены TLD , которые идентифицируются как суффикс доменного имени, бывают двух типов: обобщенные домены верхнего уровня (net, com, org ) и коды стран (ru, fi, ua ).

    Имена доменов гораздо легче запомнить и ввести, но необходимо преобразование для перевода имен доменов в IP -адреса - для того, чтобы разные маршрутизаторы и коммутаторы могли направить информацию в нужный пункт назначения.

    2.2. Модель OSI

    Функционирование сети Интернет основано на сложном комплексе протоколов, обеспечивающих выполнение различных функций - от непосредственно передачи данных до управления конфигурацией оборудования сети.

    Для того, чтобы классифицировать различные протоколы и понять их место в общей структуре технологии межсетевого взаимодействия, удобно воспользоваться так называемым "многоуровневым представлением сетевых протоколов". В рамках такого представления подразумевается, что протоколы более высокого уровня используют функции протоколов более низкого уровня. Классической моделью такого рода является семиуровневая модель взаимодействия открытых систем ( Open Systems Interconnection - OSI ), разработанная ITU -T.

    Первый уровень модели - уровень сетевого интерфейса - поддерживает физический процесс переноса информации между устройствами в сети, т. е. объединяет функции двух уровней OSI - физического и звена данных. Второй уровень сетевого интерфейса обеспечивает физическое соединение со средой передачи, обеспечивает разрешение конфликтов , возникающих в процессе организации доступа к среде (например, используя технологию CSMA /CD в сети Ethernet ), упаковывает данные в пакеты. Пакет - это протокольная единица , которая содержит информацию верхних уровней и служебные поля ( аппаратные адреса , порядковые номера, подтверждения и т. д.), необходимые для функционирования протоколов этого уровня.

    Сетевой уровень отвечает за передачу информации, упакованной в дейтаграммы ( datagram ), от одного компьютера к другому. Дейтаграмма - это протокольная единица , которой оперируют протоколы семейства TCP / IP . Она содержит адресную информацию, необходимую для переноса дейтаграммы через сеть , а не только в рамках одного звена данных. Понятие дейтаграммы никак не связано с физическими характеристиками сетей и каналов связи, что подчеркивает независимость протоколов TCP / IP от аппаратуры. Основным протоколом, реализующим функции сетевого уровня, является протокол IP . Этот протокол отвечает за маршрутизацию, фрагментацию и сборку дейтаграмм в рабочей станции.

    Обмен между сетевыми узлами информацией о состоянии сети, необходимой для формирования оптимальных маршрутов следования дейтаграмм , обеспечивают протоколы маршрутизации - RIP , EGP , BGP , OSPF и др.

    Протокол преобразования адресов ( Address Resolution Protocol - ARP ) преобразует IP -адреса в адреса, использующиеся в локальных сетях (например, Ethernet ). На некоторых рисунках, изображающих архитектуру и взаимосвязь протоколов, ARP размещают ниже IP , чтобы показать его тесную взаимосвязь с уровнем сетевого интерфейса.

    Протокол контрольных сообщений - ( Internet Control Message Protocol - ICMP ) предоставляет возможность программному обеспечению рабочей станции или маршрутизатора обмениваться информацией о проблемах маршрутизации пакетов с другими устройствами в сети. Протокол ICMP - необходимая часть реализации стека протоколов TCP / IP .

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

    Конечные пользователи взаимодействуют с компьютером на уровне пользовательских приложений. Разработано множество протоколов, применяемых соответствующими приложениями. Например, приложения передачи файлов используют протокол FTP , веб-приложения - протокол HTTP . Оба протокола, FTP и HTTP , базируются на протоколе TCP . Приложение Telnet обеспечивает подключение удаленных терминалов. Протокол эксплуатационного управления сетью SNMP позволяет управлять конфигурацией оборудования в сети и собирать информацию о его функционировании, в том числе и об аварийных ситуациях. Приложения, созданные для организации речевой связи и видеосвязи, используют протокол RTP для передачи информации, чувствительной к задержкам. Х Window - популярный протокол для подключения к интеллектуальному графическому терминалу. Этот список можно еще продолжить рядом протоколов.

    Таким образом, IP -сети используют для передачи информации разнообразные протоколы, причем функции протоколов не зависят от того, какие данные передаются. Иными словами, IP , ARP , ICMP , TCP , UDP и другие элементы стека протоколов TCP / IP предоставляют универсальные средства передачи информации, какой бы природы она ни была ( файл по FTP , веб-страница или аудиоданные).

    2.3. Основные протоколы IP-телефонии

    2.3.1. Протокол IP версии 4

    В качестве основного протокола сетевого уровня в стеке протоколов TCP/IP применяется протокол IP, который изначально проектировался как протокол передачи пакетов в сетях, состоящих из большого количества локальных сетей. Поэтому он хорошо работает в сетях со сложной топологией, рационально используя наличие в них подсистем и экономно расходуя пропускную способность низкоскоростных линий связи. Протокол IP организует пакетную передачу информации от узла к узлу IP-сети, не используя процедур установления соединения между источником и приемником информации. Кроме того, Internet Protocol является дейтаграммным протоколом: при передаче информации по протоколу IP каждый пакет передается от узла к узлу и обрабатывается в узлах независимо от других пакетов.

    В этой статье будут рассказаны основы модели TCP/IP. Для лучшего понимания описаны основные протоколы и службы. Главное - не торопиться и стараться понимать каждую вещь поэтапно. Все они взаимосвязаны и без понимания одной, трудно будет понять другую. Здесь скомпонована весьма поверхностная информация, так что эту статью смело можно назвать «стеком протоколов TCP/IP для чайников». Однако, многие вещи здесь не так трудны для понимания, как может показаться на первый взгляд.

    TCP/IP

    Стек TCP/IP - сетевая модель передачи данных в сети, она определяет порядок взаимодействия устройств. Данные поступают на канальный уровень и обрабатываются поочередно каждым уровнем выше. Стек представлен в виде абстракции, которая объясняет принципы обработки и приема данных.

    Стек протоколов сети TCP/IP имеет 4 уровня:

    1. Канальный (Link).
    2. Сетевой (Internet).
    3. Транспортный (Transport).
    4. Прикладной (Application).

    Прикладной уровень

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

    • HTTP;
    • SMTP;

    Каждый протокол определяет собственный порядок и принципы работы с данными.

    HTTP (HyperText Transfer Protocol) предназначен для передачи данных. По нему отправляются, например, документы в формате HTML, которые служат основой веб-страницы. Упрощенно схема работы представляется как «клиент - сервер». Клиент отправляет запрос, сервер его принимает, должным образом обрабатывает и возвращает конечный результат.

    Служит стандартом передачи файлов в сети. Клиент посылает запрос на некий файл, сервер ищет этот файл в своей базе и при успешном обнаружении отправляет его как ответ.

    Используется для передачи электронной почты. SMTP-операция включает в себя три последовательных шага:

    1. Определение адреса отправителя. Это необходимо для возвращения писем.
    2. Определение получателя. Этот шаг может повторяться некоторое количество раз при указании нескольких адресатов.
    3. Определение содержимого сообщения и отправка. В качестве служебной информации передаются данные о типе сообщения. Если сервер подтверждает готовность принять пакет, то совершается сама транзакция.

    Заголовок (Header)

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

    Например, заголовок, вложенный на транспортном уровне, на другой стороне может быть обработан только транспортным уровнем. Другие просто его проигнорируют.

    Транспортный уровень

    На транспортном уровне полученная информация обрабатывается как единый блок, вне зависимости от содержимого. Полученные сообщения делятся на сегменты, к ним добавляется заголовок, и все это отправляется ниже.

    Протоколы передачи данных:

    Самый распространенный протокол. Он отвечает за гарантированную передачу данных. При отправке пакетов контролируется их контрольная сумма, процесс транзакции. Это значит, что информация дойдет «в целости и сохранности» независимо от условий.

    UDP (User Datagram Protocol) - второй по популярности протокол. Он также отвечает за передачу данных. Отличительное свойство кроется в его простоте. Пакеты просто отправляются, не создавая особенной связи.

    TCP или UDP?

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

    Основное преимущество UDP заключается в скорости передачи. TCP является сложным протоколом с множеством проверок, в то время как UDP представляется более упрощенным, а значит, и более быстрым.

    Недостаток кроется в простоте. Ввиду отсутствия проверок не гарантируется целостность данных. Таким образом, информация просто отправляется, а все проверки и подобные манипуляции остаются за приложением.

    UDP используется, например, для просмотра видео. Для видеофайла не критична потеря небольшого количества сегментов, в то время как скорость загрузки - важнейший фактор.

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

    Сетевой уровень

    Сетевой уровень из полученной информации образует пакеты и добавляет заголовок. Наиболее важной частью данных являются IP и MAC-адреса отправителей и получателей.

    IP-адрес (Internet Protocol address) - логический адрес устройства. Содержит информацию о местоположении устройства в сети. Пример записи: .

    MAC-адрес (Media Access Control address) - физический адрес устройства. Используется для идентификации. Присваивается сетевому оборудованию на этапе изготовления. Представлен как шестибайтный номер. Например: .

    Сетевой уровень отвечает за:

    • Определение маршрутов доставки.
    • Передачу пакетов между сетями.
    • Присвоение уникальных адресов.

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

    Самый популярный протокол этого уровня - IP.

    IP (Internet Protocol) - интернет-протокол, предназначенный для адресации в сети. Используется для построения маршрутов, по которым происходит обмен пакетами. Не обладает никакими средствами проверки и подтверждения целостности. Для обеспечения гарантий доставки используется TCP, который использует IP в качестве транспортного протокола. Понимание принципов этой транзакции во многом объясняет основу того, как работает стек протоколов TCP/IP.

    Виды IP-адресов

    В сетях используются два вида IP-адресов:

    1. Публичные.
    2. Приватные.

    Публичные (Public) используются в Интернете. Главное правило - абсолютная уникальность. Пример их использования - маршрутизаторы, каждый из которых имеет свой IP-адрес для взаимодействия с сетью Интернет. Такой адрес называется публичным.

    Приватные (Private) не используются в Интернете. В глобальной сети такие адреса не являются уникальными. Пример - локальная сеть. Каждому устройству присваивается уникальный в пределах данной сети IP-адрес.

    Взаимодействие с сетью Интернет ведется через маршрутизатор, который, как уже было сказано выше, имеет свой публичный IP-адрес. Таким образом, все компьютеры, подключенные к маршрутизатору, представляются в сети Интернет от имени одного публичного IP-адреса.

    IPv4

    Самая распространенная версия интернет-протокола. Предшествует IPv6. Формат записи - четыре восьмибитных числа, разделенные точками. Через знак дроби указывается маска подсети. Длина адреса - 32 бита. В подавляющем большинстве случаев, когда речь идет об IP-адресе, имеется в виду именно IPv4.

    Формат записи: .

    IPv6

    Эта версия предназначается для решения проблем предыдущей версией. Длина адреса - 128 бит.

    Основная проблема, которую решает IPv6 - это исчерпание адресов IPv4. Предпосылки начали проявляться уже в начале 80-х годов. Несмотря на то, что эта проблема вступила в острую стадию уже в 2007-2009 годах, внедрение IPv6 очень медленно «набирает обороты».

    Главное преимущество IPv6 - более быстрое интернет-соединение. Это происходит из-за того, что для этой версии протокола не требуется трансляции адресов. Выполняется простая маршрутизация. Это является менее затратным и, следовательно, доступ к интернет-ресурсам предоставляется быстрее, чем в IPv4.

    Пример записи: .

    Существует три типа IPv6-адресов:

    1. Unicast.
    2. Anycast.
    3. Multicast.

    Unicast - тип одноадресных IPv6. При отправке пакет достигает только интерфейса, расположенного на соответствующем адресе.

    Anycast относится к групповым IPv6-адресам. Отправленный пакет попадет в ближайший сетевой интерфейс. Используется только маршрутизаторами.

    Multicast являются многоадресными. Это значит, что отправленный пакет достигнет всех интерфейсов, находящихся группе мультивещания. В отличие от broadcast, который является «вещанием для всех», multicast вещает лишь определенной группе.

    Маска подсети

    Маска подсети выявляет из IP-адреса подсеть и номер хоста.

    Например, IP-адрес имеет маску . В таком случае формат записи будет выглядеть так . Число «24» - это количество бит в маске. Восемь бит равняется одному октету, который также может называться байтом.

    Если подробнее, то маску подсети можно представить в двоичной системе счисления таким образом: . В ней имеется четыре октета, и запись состоит из «1» и «0». Если сложить количество единиц, то получим в сумме «24». К счастью, считать по единице не обязательно, ведь в одном октете - 8 значений. Видим, что три из них заполнены единицами, складываем и получаем «24».

    Если говорить именно о маске подсети, то в двоичном представлении она имеет в одном октете либо единицы, либо нули. При этом последовательность такова, что сначала идут байты с единицами, а только потом с нулями.

    Рассмотрим небольшой пример. Есть IP-адрес и маска подсети . Считаем и записываем: . Теперь сопоставляем маску с IP-адресом. Те октеты маски, в которых все значения равны единице (255) оставляют соответствующие им октеты в IP-адресе без изменения. Если же в значении нули (0), то октеты в IP-адресе также становятся нулями. Таким образом, в значении адреса подсети получаем .

    Подсеть и хост

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

    Хост - это адрес сетевого интерфейса (сетевой карты). Определяется из IP-адреса с помощью маски. Например: . Так как первые три октета - подсеть, то остается . Это и есть номер хоста.

    Диапазон адресов хоста - от 0 до 255. Хост под номером «0» является, собственно, адресом самой подсети. А хост под номером «255» является широковещательным.

    Адресация

    Для адресации в стеке протоколов TCP/IP используются три типа адресов:

    1. Локальные.
    2. Сетевые.
    3. Доменные имена.

    Локальными называются MAC-адреса. Они используются для адресации в таких технологиях локальной сети как, например, Ethernet. В контексте TCP/IP слово «локальные» означает, что они действуют лишь в пределах подсети.

    Сетевым адресом в стеке протоколов TCP/IP является IP-адрес. При отправке файла из его заголовка считывается адрес получателя. С его помощью маршрутизатор узнает номер хоста и подсеть и, основываясь на этой информации, прокладывает маршрут к конечному узлу.

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

    Домен первого уровня представляет конкретную информацию. Общие (.org, .net) не ограничены какими-либо строгими границами. Обратная ситуация - с локальными (.us, .ru). Они, как правило, привязаны территориально.

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

    Например, "www.test.quiz.sg" - корректное доменное имя, где «sg» - локальный домен первого (верхнего) уровня, «quiz.sg» - домен второго уровня, «test.quiz.sg» - домен третьего уровня. Доменные имена также могут называться DNS-именами.

    DNS (Domain Name System) устанавливает соответствие между доменными именами и публичным IP-адресом. При наборе доменного имени в строке браузера DNS обнаружит соответствующий IP-адрес и сообщит устройству. Устройство обработает этот и вернет его в виде веб-страницы.

    Канальный уровень

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

    Самые распространенные протоколы:

    1. Ethernet.
    2. WLAN.

    Ethernet - наиболее распространенная технология проводных локальных сетей.

    WLAN - локальная сеть на основе беспроводных технологий. Взаимодействие устройств происходит без физических кабельных соединений. Пример самого распространенного метода - Wi-Fi.

    Настройка TCP/IP для использования статического IPv4-адреса

    Статический IPv4-адрес назначается напрямую в настройках устройства или автоматически при подключении к сети и является постоянным.

    Для настройки стека протоколов TCP/IP на использование постоянного IPv4-адреса необходимо ввести в консоль команду ipconfig/all и найти следующие данные.

    Настройка TCP/IP для использования динамического IPv4-адреса

    Динамический IPv4-адрес используется какое-то время, сдается в аренду, после чего меняется. Присваивается устройству автоматически при подключении к сети.

    Чтобы настроить стек протоколов TCP/IP на использование непостоянного IP-адреса необходимо зайти в свойства нужного соединения, открыть свойства IPv4 и поставить отметки так, как указано.

    Способы передачи данных

    Данные передаются через физическую среду тремя способами:

    • Simplex.
    • Half-duplex.
    • Full Duplex.

    Simplex - это односторонняя связь. Передача ведется только одним устройством, в то время как другое только принимает сигнал. Можно сказать, что информация транслируется только в одном направлении.

    Примеры симплексной связи:

    • Телевещание.
    • Сигнал от спутников GPS.

    Half-duplex - это двусторонняя связь. Однако только один узел может передавать сигнал в определенный момент времени. При такой связи два устройства не могут одновременно использовать один канал. Полноценная двусторонняя связь может быть невозможна физически или приводить к коллизиям. Говорится, что они конфликтуют за среду передачи. Этот режим применяется при использовании коаксиального кабеля.

    Пример полудуплексной связи - общение по рации на одной частоте.

    Full Duplex - полноценная двусторонняя связь. Устройства могут одновременно транслировать сигнал и производить прием. Они не конфликтуют за среду передачи. Этот режим применяется при использовании технологии Fast Ethernet и соединении с помощью витой пары.

    Пример - общение по телефону через мобильную сеть.

    TCP/IP vs OSI

    Модель OSI определяет принципы передачи данных. Уровни стека протоколов TCP/IP прямо соответствуют этой модели. В отличие от четырехуровневого TCP/IP имеет 7 уровней:

    1. Физический (Physical).
    2. Канальный (Data Link).
    3. Сетевой (Network).
    4. Транспортный (Transport).
    5. Сеансовый (Session).
    6. Представительский (Presentation).
    7. Прикладной (Application).

    В данный момент не стоит сильно углубляться в эту модель, но необходимо хотя бы поверхностное понимание.

    Прикладной уровень в модели TCP/IP соответствует трем верхним уровням OSI. Все они работают с приложениями, поэтому можно отчетливо проследить логику такого объединения. Такая обобщенная структура стека протоколов TCP/IP способствует облегченному пониманию абстракции.

    Транспортный уровень остается без изменений. Выполняет одинаковые функции.

    Сетевой уровень также не изменен. Выполняет ровно те же задачи.

    Канальный уровень в TCP/IP соответствует двум последним уровням OSI. Канальный уровень устанавливает протоколы передачи данных через физическую среду.

    Физический представляет собой собственно физическую связь - электрические сигналы, коннекторы и т.п. В стеке протоколов TCP/IP было решено объединить эти два уровня в один, так как они оба работают с физической средой.

    Стек протоколов TCP/IP

    Это стандартизованный набор сетевых протоколов. В настоящее время - это основной набор протоколов взаимодействия в Интернете. Более подробно об этом стеке протоколов и не только о нем можно прочитать в этой статье .

    В состав стека протоколов TCP/IP входят два основных протокола: IP, TCP и несколько вспомогательных протоколов.

    • Протокол IP (Internet Protocol) - основной протокол сетевого уровня. Определяет способ адресации на сетевом уровне.
    • Протокол TCP (Transmission Control Protocol ) - протокол, обеспечивающий гарантированную доставку данных.

    Как работают эти протоколы?

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

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

    Каждой программе назначается номер TCP- порта в соответствии с ее функциональным назначением на основе определенных стандартов. Порт можно рассматривать как ячейку в почтовом отделении связи. Протокол IP определяет только адрес почтового отделения, а протокол TCP положит конверт в нужную ячейку.
    Таким образом, стек протоколов IP и TCP обеспечивают полную адресацию:

    • Номер TCP-порта позволяет однозначно идентифицировать программу на компьютере сети,
    • Компьютер в сети однозначно определяется IP-адресом.

    Следовательно, комбинация IP-адреса и номера порта позволяет однозначно идентифицировать программу в сети. Такой комбинированный адрес называется сокетом (socket).

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

    IP-адреса, IP-сети. Подсети и маски подсетей
    Более подробно об этом читаем в этой статье .
    IP-адреса

    Каждый компьютер в локальной сети имеет свой уникальный адрес, так же как человек имеет свой почтовый адрес. Именно по этим адресам компьютеры находят друг друга в сети. Двух одинаковых адресов в одной сети быть не должно. Формат адреса стандартный и определен протоколом IP.

    IP-адрес компьютера записывается в 32 разрядах (4 октета). Каждый октет содержит десятичное число от 0 до 255 (в двоичном виде запись представляет последовательность 0 и 1). IP-адрес представляет собой четыре числа, разделяемых точкой. Например, компьютер с IP-адресом 192.168.3.24. Общее число IP-адресов составляет 4,2 млрд., все адреса уникальны.
    IP-адрес может быть присвоен не только компьютеру, но и другим сетевым устройствам, например, принт-серверу или маршрутизатору. Поэтому все устройства в сети принято называть узлами или хостами .
    Одно и тоже физическое устройство (компьютер или др.) может иметь несколько IP-адресов. Например, если в компьютер установлено несколько сетевых адаптеров, то каждый адаптер должен иметь свой уникальный IP-адрес. Такие компьютеры используются для соединения нескольких локальных сетей и называются маршрутизаторами .

    IP сети

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

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

    Для удобства, компьютеры с одним номером сети группируются в логические сети IP-сети .
    Связь между логическими IP-сетями осуществляют маршрутизаторы, отвечающие за передачу данных. А сам процесс передачи данных - маршрутизацией .
    Процесс целенаправленной доставки данных между IP-сетями, связанный с обеспечением безопасности передаваемых данных, преобразование адресов, фильтрацию и т.п., осуществляют другие специальные устройства – шлюзы .

    Подсети и маски подсетей

    Введение адреса сети упростило проблемы маршрутизации, но не решило их до конца (например, в больших локальных сетях). Поэтому большую IP-сеть разбивают на несколько подсетей, присвоив каждой из них свой адрес.
    Подсети - это отдельные, самостоятельно функционирующие части сети, имеющие свой идентификатор.
    Для адреса подсети, в IP-адресе, выделяется пространство из адреса узла.
    Для определения адреса сети и подсети используется маска подсети . Формат записи маски подсети такой же, как и формат IP-адреса, это четыре поля, разделяемых точкой. Значения полей маски задаются следующим образом:

    • все биты, установленные в 1, соответствуют идентификатору сети;
    • все биты, установленные в 0, соответствуют идентификатору узла.

    Если все биты октета установлены в 1, то это эквивалентно числу 255. Маска рассматривается только в паре с IP-адресом. Например, маска подсети 255.255.255.0 и адрес 192.168.100.5 говорят о том, что 192.168.100 - это номер сети, а 5 - номер компьютера в этой сети.
    Просматривая адрес IP через маску подсети IP-протокол, определяет адрес сети, адрес подсети и номер узла.

    Таким образом, в паре с IP-адресом компьютеров обязательно указывается маска подсети.

    Статические и динамические IP-адреса. DHCP

    Все IP-адреса должны быть уникальны во всем пространстве сети. Есть два способа задать эти адреса компьютерам сети.

    Статические IP-адреса

    Статический IP-адрес присваивается компьютеру вручную. Он прописывается администратором сети в настройках протокола TCP/IP на каждом компьютере сети и жестко закрепляется за компьютером.
    Важное преимущество: постоянное соответствие IP-адресов определенным компьютерам. Это позволяет, например, запретить определенному компьютеру выходить в Интернет, или определить, с какого компьютера выходили в Интернет и т.п.
    В присвоении статических адресов компьютерам есть определенные неудобства:

    • Администратор сети должен вести учет всех используемых адресов, чтобы исключить повторы
    • При большом количестве компьютеров в локальной сети установка и настройка IP-адресов отнимают много времени

    Динамические IP-адреса

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

    Функция автоматического назначения IP-адреса гарантирует уникальность выдаваемого IP-адреса, но в одноранговой сети и в сети с сервером работает по разному.

    Сети с выделенным сервером

    В сетях, управляемых сервером, динамический IP-адрес назначается специальной серверной службой DHCP, входящей в состав Windows Server 2003. В параметрах службы DHCP администратором сети прописывается IP-диапазон, адреса из которого, будут выдаваться другим компьютерам сети.
    Сервер, на котором работает эта служба, называется DHCP-сервер. Компьютер, получающий IP-адрес из сети, называется DHCP-клиент.

    Одноранговые сети

    В одноранговой сети нет DHCP-сервера, а на каждом компьютере установлен (по умолчанию) DHCP-клиент. Во время загрузки операционной системы DHCP-клиент пытается найти в сети доступный DHCP-сервер для получения IP-адреса. После неудачной попытки получить IP-адрес, DHCP-клиент данного компьютера включает встроенную функцию IANA (Internet Assigned Numbers Authority), которая назначает компьютеру IP-адрес и маску подсети, используя один из зарезервированных адресов. При этом служба IANA отслеживает уникальность адресов в сети.

    Зарезервированные адреса назначаются из диапазона 169.254.0.0 до 169.254.255.255 с маской подсети 255.255.0.0. Последние два поля адреса представляют уникальный идентификатор клиента.

    Автоматическое назначение IP-адреса проводится последовательно на всех компьютерах сети.

    Маршрутизаторы и шлюзы.

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

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

    В качестве маршрутизатора может работать компьютер под управлением операционной системой Windows 2003 Server или Windows XP Professional. Функции маршрутизации входят в состав этих операционных систем.

    Маршрутизатор является шлюзом для каждой сети, которые он объединяет. Точнее шлюзом для локальной сети является сетевой адаптер, установленный в маршрутизаторе, и подключенный к этой сети. Например, рабочая станция локальной сети хочет подключиться к рабочей станции из другой сети. Она отправляет запрос в свою сеть с целью найти нужный IP-адрес. Если адрес не был найден в сети, то запрос отправляется в шлюз этой сети, т.е. на маршрутизатор, который в свою очередь перенаправляет запрос в другую сеть. Если во второй сети компьютер был найден, то они связываются через маршрутизатор.

    Дополнительно шлюзы могут выполнять функции, связанные с обеспечением безопасности передаваемых данных, преобразование адресов, фильтрацию и т.п.

    Наиболее распространенные протоколы маршрутизации, входящие в состав стека протоколов TCP/IP:

    Address Resolution Protocol, ARP. Протокол разрешения адресов, сопоставляет IP-адрес с адресом физического оборудования MAC-адресом. Посмотреть соответствие адресов из ARP-таблицы можно набрав в командной строке arp и указав IP-адрес.
    *Routing Information Protocol, RIP . Протокол маршрутной информации, который используется для обратной совместимости с существующими RIP-сетями.
    *Open Shortest Path First, OSPF . Протокол выбора кратчайшего маршрута.

    IP-маршрутизация.

    IP-Маршрутизация - процесс выбора пути для передачи пакета из одной сети в другую. Под путем (маршрутом) понимается последовательность маршрутизаторов, через которые проходит пакет по пути к узлу-назначению. IP-маршрутизатор - это специальное устройство, предназначенное для передачи пакетовиз одной сети в другую и обеспечивающее определение пути прохождения пакетов в составной сети. Маршрутизатор должен иметь несколько IP-адресов с номерами сетей, соответствующими номерам объединяемых сетей.

    Маршрутизация осуществляется на узле-отправителе в момент отправки IP-пакета, а затем на IP-маршрутизаторах.

    Принцип маршрутизации на узле отправителе выглядит достаточно просто. Когда требуется отправить пакет узлу с определенным IP-адресом, то узел-отправитель выделяет с помощью маски подсети из собственного IP-адреса и IP-адреса получателя номера сетей. Далее номера сетей сравниваются и если они совпадают, то пакет направляется непосредственно получателю, в противном случае - маршрутизатору, чей адрес указан в настройках протокола IP.
    Выбор пути на маршрутизаторе осуществляется на основе информации, представленной в таблице маршрутизации . Таблица маршрутизации - это специальная таблица, сопоставляющая IP-адресам сетей адреса следующих маршрутизаторов, на которые следует отправлять пакеты с целью их доставки в эти сети. Обязательной записью в таблице маршрутизации является так называемый маршрут по умолчанию , содержащий информацию о том, как направлять пакеты в сети, адреса которых отсутствуют в таблице, поэтому нет необходимости описывать в таблице маршруты для всех сетей. Таблицы маршрутизации могут строиться "вручную" администратором или динамически, на основе обмена информацией, который осуществляют маршрутизаторы с помощью специальных протоколов - протоколов динамической маршрутизации .

    Протоколы ARP и RARP.

    Основным функциональным достоинством IP-адресации является полная логическая независимость IP-адресов от физических адресов. Однако чтобы средства канального уровня могли осуществить доставку данных, необходимо знание физического адреса получателя. Механизм определения по IP-адресу физического адреса узла-получателя обеспечивает протокол ARP (Address Resolution Protocol, Протокол Разрешения Адреса).

    Определение физических адресов компьютеров осуществляется с помощью широковещательного запроса, в котором сообщается IP-адрес искомого компьютера (устройства). Получив такой ARP-запрос, каждый компьютер проверяет соответствие между указанным IP-адресом и своим собственным. В случае их совпадения сообщает отправителю свой физический адрес. После получения ответа инициировавший запрос компьютер заносит новые данные в специальную ARP-таблицу.

    Наличие на каждом узле ARP-таблицы позволяет снизить объем широковещательной рассылки, поскольку запрос направляется в сеть только в случае, если нужное соответствие не найдено в ARP-таблице.

    В ряде случаев может оказаться необходимым определить IP-адрес по MAC-адресу. Для этого используется протокол RARP (Reverse Address Resolution Protocol). Функционально RARP схож с протоколом ARP.

    Протоколы динамической маршрутизации

    Протоколы динамической маршрутизации предназначены для автоматизации процесса построения маршрутных таблиц маршрутизаторов. Принцип их использования достаточно прост: маршрутизаторы с помощью устанавливаемого протоколом порядка рассылают определенную информацию из своей таблицы маршрутизации другим и корректируют свою таблицу на основе полученных от других данных.
    Такой метод построения и поддержки маршрутных таблиц существенно упрощает задачу администрирования сетей, в которых могут происходить изменения (например, расширение) или в ситуациях, когда какие-либо маршрутизаторы и/или подсети выходят из строя.
    Следует отметить, что использование протоколов динамической маршрутизации не отменяет возможность "ручного" внесения данных в таблицы маршрутизаторов. Внесенные таким образом записи называют статическими, а записи, полученные в результате обмена информацией между маршрутизаторами - динамическими. В любой таблице маршрутизации всегда присутствует, по крайней мере, одна статическая запись - маршрут по умолчанию.
    Современные протоколы маршрутизации делятся на две группы: протоколы типа "вектор-расстояние" и протоколы типа "состояние канала".
    В протоколах типа "вектор-расстояние" каждый маршрутизатор рассылает список адресов доступных ему сетей ("векторов"), с каждым из которых связано параметр "расстояния" (например, количество маршрутизаторов до этой сети, значение, основанное на производительности канала и т.п.). Основным представителем протоколов данной группы является протокол RIP (Routing Information Protocol, протокол маршрутной информации).
    Протоколы типа "состояние канала" основаны на ином принципе. Маршрутизаторы обмениваются между собой топологической информацией о связях в сети: какие маршрутизаторы с какими сетями связаны. В результате каждый маршрутизатор имеет полное представление о структуре сети (причем это представление будет одинаковым для всех), на основе которого вычисляет собственную оптимальную таблицу маршрутизации. Протоколом этой группы является протокол OSPF (Open Shortest Path First, "открой кратчайший путь первым").

    Протокол RIP.

    Протокол RIP (Routing Information Protocol, протокол маршрутной информации) является наиболее простым протоколом динамической маршрутизации. Он относится к протоколам типа "вектор-расстояние".
    Под вектором протокол RIP определяет IP-адреса сетей, а расстояние измеряется в переходах ("хопах", hope) - количестве маршрутизаторов, которое должен пройти пакет, чтобы достичь указанной сети. Следует отметить, что максимальное значение расстояния для протокола RIP равно 15, значение 16 трактуется особым образом "сеть недостижима". Это определило основной недостаток протокола - он оказывается неприменимым в больших сетях, где Возможны маршруты, превышающие 15 переходов.
    Протокол RIP версии 1 имеет ряд существенных для практического использования недостатков. К числу важных проблем относятся следующие:

    • Оценка расстояния только с учетом числа переходов. Протокол RIP не учитывает реальную производительность каналов связи, что может оказаться неэффективным в гетерогенных сетях, т.е. сетях, объединяющих каналы связи различного устройства, производительности, в которых используются разные сетевые технологии.
    • Проблема медленной конвергенции . Маршрутизаторы, использующие протокол RIP. Рассылают маршрутную информацию каждые 30 с, причем их работа не синхронизирована. В ситуации, когда некоторый маршрутизатор обнаружит, что какая-либо сеть стала недоступной, то в худшем случае (если проблема была выявлена сразу после очередной рассылки) он сообщит об это соседям через 30 с. Для соседних маршрутизаторов все будет происходить также. Это означает, что информация о недоступности какой-либо сети может распространятся маршрутизаторам в достаточно долго, очевидно, что сеть при этом будет находиться в нестабильном состоянии.
    • Широковещательная рассылка таблиц маршрутизации . Протокол RIP изначально предполагал, что маршрутизаторы рассылают информацию в широковещательном режиме. Это означает, что отправленный пакет вынуждены получить и проанализировать на канальном, сетевом и транспортном уровне все компьютеры сети, в которую он направлен.

    Частично указанные проблемы решаются в версии 2 (RIP2).

    Протокол OSPF

    Протокол OSPF (Routing (Open Shortest Path First, "открой кратчайший путь первым") является более новым протоколом динамической маршрутизации и относится к протоколам типа "состояние канала".

    Функционирование протокола OSPF основано на использовании всеми маршрутизаторами единой базы данных, описывающей, как и с какими сетями связан каждый маршрутизатор. Описывая каждую связь, маршрутизаторы связывают с ней метрику - значение, характеризующее "качество" канала. Например, для сетей Ethernet со скоростью обмена 100 Мбит/с используется значение 1, а для коммутируемых соединений 56 Кбит/с - значение 1785. Это позволяет маршрутизаторам OSPF (в отличие от RIP, где все каналы равнозначны) учитывать реальную пропускную способность и выявлять эффективные маршруты. Важной особенностью протокола OSPF является то, что используется групповая, а не широковещательная рассылка.
    Указанные особенности, такие как групповая рассылка вместо широковещательной, отсутствие ограничений на длину маршрута, периодический обмен только короткими сообщениями о состоянии, учет "качества" каналов связи позволяют использовать OSPF в больших сетях. Однако такое использование может породить серьезную проблему - большое количество циркулирующей в сети маршрутной информации и увеличение таблиц маршрутизации. А поскольку алгоритм поиска эффективных маршрутов является, с точки зрения объема вычислений, достаточно сложным, то в больших сетях могут потребоваться высокопроизводительные и, следовательно, дорогие маршрутизаторы. Поэтому возможность построения эффективных таблиц маршрутизации может рассматриваться и как достоинство, и как недостаток протокола OSPF.