21. Передача данных по сети. Структура и функции пакетов. Содержимое контрольного пакета


IPv4 [АйТи бубен]

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

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

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

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

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

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

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

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

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

  3. Поле Тип сервиса (Type of Service) занимает один байт и задает приоритетность пакета и вид критерия выбора маршрута. Первые три бита этого поля образуют подполе приоритета пакета (Precedence) . Приоритет может иметь значения от самого низкого - 0 (нормальный пакет) до самого высокого - 7 (пакет управляющей информации) . Маршрутизаторы и компьютеры могут принимать во внимание приоритет пакета и обрабатывать более важные пакеты в первую очередь. Поле Type of Service содержит также три бита, определяющие критерий выбора маршрута. Реально выбор осуществляется между тремя альтернативами: малой задержкой, высокой достоверностью и высокой пропускной способностью. Во многих сетях улучшение одного из этих параметров связано с ухудшением другого, кроме того, обработка каждого из них требует дополнительных вычислительных затрат. Поэтому редко, когда имеет смысл устанавливать одновременно хотя бы два из этих трех критериев выбора маршрута. Зарезервированные биты имеют нулевое значение. Установленный * бит D (delay) говорит о том, что маршрут должен выбираться для минимизации задержки доставки данного пакета * бит Т - для максимизации пропускной способности * бит R - для максимизации надежности доставки.
  4. Поле Общая длина (Total Length) занимает 2 байта и означает общую длину пакета с учетом заголовка и поля данных. Максимальная длина пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65 535 байт, однако в большинстве компьютеров и сетей такие большие пакеты не используются. При передаче по сетям различного типа длина пакета выбирается с учетом максимальной длины пакета протокола нижнего уровня, несущего IP- пакеты. Если это кадры Ethernet, то выбираются пакеты с максимальной длиной в 1500 байт, умещающиеся в поле данных кадра Ethernet. В стандарте предусматривается, что все хосты должны быть готовы принимать пакеты вплоть до 576 байт длиной (приходят ли они целиком или по фрагментам). Существует такое правило: хостам рекомендуется отправлять пакеты размером более чем 576 байт, только если они уверены, что принимающий хост или промежуточная сеть готовы обслуживать пакеты такого размера.

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

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

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

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

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

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

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

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

Фрагментация 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.

Далее модуль IP компьютера 1 передает эти пакеты своему сетевому интерфейсу (образуемому протоколами канального уровня К1 и физического уровня Ф1)

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

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

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

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

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

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

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

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

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

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

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

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

загрузка...

wiki.dieg.info

Перезапуск пакетов с помощью контрольных точек

Содержимое

В этой статье

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

Использование контрольных точек в пакете обеспечивает следующие преимущества.

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

Определение точек перезапуска

Контейнер сервера задач, в котором заключена единственная задача, является наименьшей единицей работы, которая может быть перезапущена. Контейнер «цикл по каждому элементу» и контейнер транзакций также рассматриваются как наименьшие единицы работы.

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

ПримечаниеПримечание

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

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

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

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

Настройка пакета для перезапуска

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

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

Свойство

Описание

CheckpointFileName

Определяет имя файла контрольных точек.

CheckpointUsage

Определяет, используются ли контрольные точки.

SaveCheckpoints

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

Также необходимо установить значение true для свойства FailPackageOnFailure всех контейнеров пакета, которые нужно обозначить как точки перезапуска.

Для проверки использования контрольных точек в пакете можно использовать свойство ForceExecutionResult. Установив для свойства ForceExecutionResult задачи или контейнера значение Failure, можно имитировать сбой в реальном времени. При перезапуске пакета вызвавшие сбой задача и контейнеры будут перезапущены.

Использование контрольных точек

Свойство CheckpointUsage может принимать следующие значения.

Значение

Описание

Never

Указывает, что файл контрольных точек не используется и пакет выполняется с начала рабочего процесса пакета.

Always

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

IfExists

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

ПримечаниеПримечание

Параметр /CheckPointing on команды dtexec эквивалентен присвоению свойству SaveCheckpoints пакета значения True, а свойству CheckpointUsage значения Always. Дополнительные сведения см. в разделе Программа dtexec.

Защита файлов контрольных точек

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

Настройка свойств контрольных точек

Внешние ресурсы

Значок служб Integration Services (маленький) Оставайтесь в курсе новых возможностей служб Integration Services

Чтобы получить новейшую документацию, статьи, образцы и видеоматериалы корпорации Майкрософт, а также лучшие решения участников сообщества, посетите страницу служб Службы Integration Services на сайте MSDN:

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

См. также

Основные понятия

Службы SQL Server Integration Services

technet.microsoft.com

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



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

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

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

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

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

Общий алгоритм формирования пакетов.

Пара программных модулей, которые реализуют описываемый алгоритм формирования пакетов встраиваются в пакетную сеть и работают в режимах передачи и приема соответственно. Их разделяет синхронный канал связи, в котором присутствует шум [4]. Это означает, что на передаваемые данные накладываются битовые ошибки. Данное явление можно представить как операцию сложения по модулю 2 последовательности бит, некий процент которой является единицами (зависит от уровня шума), и передаваемых данных. Шум искажает содержимое пакетов, но их предварительная обработка передающим программным модулем позволяет восстановить их исходный вид принимающей стороной. Если по каким-то причинам принять пакет не удается (например, внезапное ухудшение качества канала или переполнение буфера приемника), то приемник отбрасывает его [5].

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

Для наглядности процесс изображен на рисунке 1.

\

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

Для различных режимов работы (прием и передача) предусмотрены разные схемы данных и схемы алгоритмов. Основными данными, с которыми работает описываемый алгоритм в режиме передатчика, являются пакеты, подаваемые ему от прикладного ПО. Пакет данных модифицируется с помощью специальных последовательностей — процедура байтстаффинга [6]. Маркер начала и маркер конца являются специальными последовательностями, определяющими границы пакета. После завершения преобразований пакет становится готовым для отправки.

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

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

Схема алгоритма работы в режиме передатчика представлена на рисунке 2.

Схема алгоритма Передатчик

Рис. 2. Алгоритм работы в режиме передатчика

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

Схема алгоритма работы в режиме приемника представлена на рисунке 3.

Схема алгоритма Приемник

Рис. 3. Алгоритм работы в режиме приемника

Структура преобразованного пакета.

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

Перед отправкой данных в синхронный канал связи преобразуется пакет, полученный от прикладного ПО. Для обозначения границ пакета выделяется специальный символ. Его длина в битах может варьироваться в зависимости от качества канала. Для удобства данный символ можно называть маркером. За маркером следует специальная последовательность, которая интерпретируется приемником. К данной последовательности применяется помехозащитное кодирование (код Хэмминга).

Всего специальных последовательностей 39 (с учетом длины маркера равной 8 битам). Две из них отводятся на обозначение конца и начала пакета соответственно (Н, К). Остальные 37 получаются в результате байтстаффинга данных передаваемого пакета согласно следующей логике.

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

Возможных вариантов искажения маркера одной битовой ошибкой — 8, двумя — 26. И того получается (формула (1)):

(1)

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

Структура пакета представлена на рисунке 4.

23213

Рис. 4. Структура преобразованного пакета

В случае плохого качества канала, даже с использованием данной техники обработки пакета, вероятность восстановления пакета после его передачи через канал связи может падать ниже требуемой (0,95). В таком случае можно увеличить размер маркера до 16 бит, тем самым уменьшив влияние битовых ошибок на искажение маркеров пакета, что приведет к увеличению вероятности их распознавания принимающей стороной.

Тогда специальных последовательностей будет не 39, а 139, что получается из формулы (2).

(2)

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

Литература:
  1. От телеграфа до «военного интернета». [Электронный ресурс]. — Режим доступа: http://opkrt.ru/index.php/news/339-ot-telegrafa-do-voennogo-interneta/
  2. Военная техника связи. [Электронный ресурс]. — Режим доступа: http://elektronika-muk.ru/konspekt/voennaja-tehnika-svjazi.html/
  3. Прокис Джон. Цифровая связь. Пер. с англ. / Под ред. Д. Д. Кловского. — М.: Радио и связь. 2000. — 800 с.
  4. Интерфейсы. Синхронизация. Синхронные, асинхронные. Побитная, покадровая синхронизация. Форматы кадров. Битстаффинг, байтстаффинг. [Электронный ресурс]. — Режим доступа: http://studopedia.org/9–31760.html/
  5. Асинхронная и синхронная передачи. [Электронный ресурс]. — Режим доступа: http://supervideoman.narod.ru/4_4.htm/
  6. Bit Stuffing and Byte Stuffing. [Электронный ресурс]. — Режим доступа: http://girdhargopalbansal.blogspot.ru/2013/01/bit-stuffing-and-byte-stuffing.html/

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

moluch.ru

TCP/IP Ethernet(v2) на примере. Часть 3 — IP

Рассмотрим tcp/ip и ethernet протоколы на примере. Для этого я установил соединение c tcp сервером на ПК, через модем GPRS на модеме SIM900(о том как работать с SIM900 смотрите эту статью).

Для отслеживания сетевых пакетов на ПК используется программа анализатор трафика(сниффер) wireshark. Данная программа позволяет не только отслеживать сетевые данные, но и получать полную информацию о пакетах различных протоколов их вложенность и содержание.

ЧАСТЬ 1 —  TCP.

ЧАСТЬ 2 — Ethernet.

ЧАСТЬ 3 — IP.

IP протокол

Через WIRESHARK выловлен такой пакет:

01

 

IP пакет имеет следующую структуру:

13

Рассмотрим все эти поля на примере выловленного пакета.

Два эти поля занимают один байт — в wiresharp 0b01000101 = 45.

 

 

Номер версии протокола

Длина заголовка02Тип сервиса

03

Ощая длина

04

Индентификатор пакета

05

Флаги

06

Смещение фрагмента

07Время жизни

08Протокол верхнего уровня

09Контрольная сумма

10IP адрес источника

11IP адрес назначения

12

 

 

 

 

badembed.ru

Структура ip-пакета

IP-пакет состоит из заголовка и поля данных.

offset

0

3

4

7

8

15

16

31

0

Version

IHL

TOS

Total Length

PR

D

T

R

4

Identification

Flags

Fragment Offset

D

M

8

TTL

Protocol

Header Checksum

12

Source Address

16

Destination Address

20

Options

Padding

Рис. Формат заголовка IP-пакета

Номер версии (Version)– занимает 4 бита и указывает версию протокола IP. В настоящий момент используется версия 4 (IPv4), и готовится переход на версию 6 (IPv6).

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

Тип сервиса (TOS – Type Of Services)– занимает 1 байт и используется для идентификации используемого дейтаграммой сервиса, определяя вид ее обработки. Значения данного поля задает приоритетность пакета и вид критерия выбора маршрута. Поле используется преимущественно шлюзами, для выбора параметров передачи пакета по данной сети до сети следующего узла или шлюза маршрутизации. Первые 3 бита этого поля образуют подполеприоритета (Precedence)пакета. Приоритет может иметь значения от самого низкого – 0 (нормальный пакет) до самого высокого – 7 (пакет управляющей информации). Сначала обрабатываются пакеты с наивысшим приоритетом. Следующие 3 бита критерий выбора маршрута. Реально выбор осуществляется между тремя альтернативами: малой задержкой, высокой достоверностью и высокой пропускной способностью. Установленный бит D (Delay) говорит о необходимости выбора маршрута для минимизации задержки доставки данного пакета, бит T (Throughput) – для максимизации пропускной способности, а бит R (Reliability) – для максимизации надежности доставки. Зарезервированные биты имеют нулевое значение.

Общая длина (Total Length)– занимает 2 байта и означает общую длину пакета с учетом заголовка и поля данных. Максимальная длина пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65535 байт. При передаче по сетям различного типа длина пакета выбирается с учетом максимальной длины пакета протокола нижнего уровня, несущего IP-пакеты. В стандарте предусматривается, что все хосты должны работать с длинами пакета до 576 байт, превышать которую не рекомендуется.

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

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

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

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

Протокол верхнего уровня (Protocol)– занимает 1 байт и указывает, какому протоколу верхнего уровня принадлежит информация, размещенная в поле данных пакета.

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

Адрес источника (Source Address)– занимает 32 бита и содержит IP-адрес отправителя пакета.

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

Опции (Options)– является не обязательным и используется обычно только при отладке сети. Это поле состоит из нескольких подполей, каждое из которых может быть одного из восьми предопределенных типов. В этих подполях можно указывать точный маршрут прохождения пакетов через маршрутизаторы (структурыLSRR – Loose Source and Record RouteиSSRR – Strict Source and Record Route), регистрировать проходимые пакетом маршрутизаторы (структураRR – Record Route), помещать данные системы безопасности, а также временные метки прохождения шлюзов маршрутизации.

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

studfiles.net

Коммутация пакетов :: ВОЛС СИТИ

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

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

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

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

Пакеты

Рис. 5.12. Пакеты

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

На рис. 5.13 показаны основные операции. Рабочая станция или другое сетевое устройство посылает сообщение (например, файл данных) в виде последовательности пакетов (а). Каждый пакет наряду с данными содержит управляющую и/или контрольную информацию, в частности, адрес станции назначения, или идентификатор маршрута. Пакет первоначально посылается на узел, к которому подключена передающая станция. Узел, получая пакет, опре­деляет по контрольной информации направление маршрута и на основание этого перенаправляет пакет в выходной порт соответствующего канала. Если связь между узлами по этому каналу исправна, пакет передается на соседний узел. Все пакеты последовательно «отрабатывают» свои пути, двигаясь через сеть к нужной станции назначения. Коммутация пакетов имеет несколько преимуществ над коммутацией каналов.

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

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

4. В сетях с пакетной коммутацией можно использовать систему приоритетов. Если узел хочет передать несколько пакетов, то он может, в первую очередь, передать пакеты имеющие наивысший приоритет. Пакеты с высоким приоритетом будут доставляться с меньшей задержкой, чем пакеты с низким приоритетом.Пусть одна станция хочет послать сообщение другой в виде файла, размер которого превосходит максимальный размер пакета. Станция распределяет содержимое файла между несколькими пакетами и последовательно направляет пакеты в сеть. И здесь возникает вопрос, каким образом сеть должна обрабатывать эту последовательность пакетов, чтобы доставить их нужному адресату. В современных сетях с коммутацией пакетов используются два различных подхода, получившие название: дейтаграммные сети и сети с виртуальными каналами;

В дейтаграммной сети каждый пакет передается без ссылки на пакеты, которые идут до или после него, рис. 5.13.

Пакетная коммутация - дейтаграммная сеть

Рис. 5.13. Пакетная коммутация — дейтаграммная сеть

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

В сети с виртуальными каналами перед тем, как пакеты начинают идти, создается определенный маршрут следования. Это маршрут служит для поддержки логического соединения между удаленными станциями. Если маршрут установлен, то все пакеты между взаимодействующими станциями будут идти строго по этому маршруту, рис. 5.14. Поскольку на время логического соединения маршрут строго фиксирован, то такое логическое соединение в некоторой степени аналогично образованию канала в сетях с коммутацией каналов и называется виртуальным каналом. Каждый пакет теперь содержит идентификатор виртуального канала наряду с полем данных. Все узлы по маршруту знают, направлять такие пакеты — никакого решения по маршрутизации теперь эти узлы не принимают. В любое время каждая станция может установить один или несколько виртуальных каналов с другой станцией или станциями. Заметим, что виртуальный канал не является выделенным каналом, что было характерно для сетей с коммутацией каналов. Пакеты, двигаясь по виртуальному каналу, могут в случае перегруженности узла или сегмента помещаться в входные и выходные буферы на узлах . Главное различие с дейтаграммным подходом и классической маршрутизацией состоит в том, что в сетях с виртуальными каналами узел не принимает решение о отборе маршрута для каждого входящего пакета, а делает это (вернее, получает инструкцию перенаправлять пакеты с соответствующими идентификаторами маршрута) только один раз — на этапе формирования виртуального канала.

Пакетная коммутация - сеть с виртуальными каналами

Рис. 5.14. Пакетная коммутация — сеть с виртуальными каналами

Преимущества сети с виртуальными каналами. Если две станции желают обмениваться Ними на протяжении длительного времени, то подход с использованием виртуальных каналов имеет определенные преимущества. Первое, сеть может поддерживать ряд служб, связанных с виртуальными каналами, включая порядок следования, контроль ошибок и контроль потока. Правильный порядок следования легко поддерживается, поскольку все пакеты двигаются одним и тем же маршрутом и прибывают в первоначально установленной последовательности. Служба контроля ошибок гарантирует не только то, что пакеты прибывают в нужной последовательности, но и то, что все пакеты на приемной стороне корректны. Например, если один из пакетов в последовательности, двигаясь от узла 4 к узлу 6 (рис. 5.14) потерялся или пришел на узел 6 с ошибкой, то узел 6 может послать запрос на узел 4 с просьбой по­вторить «соответствующий пакет последовательности. Служба контроля потока гарантирует, что отправитель не может «завалить» получателя данными. Например, если станция Е буферизует данные от станции А и видит, что приемный буфер близок к переполнению, то она может просигнализировать через обратный виртуальный канал о необходимости уменьшить или временно прекратить передачу данных от станции А. Второе преимущество этой сети со­стоит в том, что пакеты передаются через узел быстрее, когда узел не принимает решения о маршрутизации пакета.

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

www.fiberman.ru

21. Передача данных по сети. Структура и функции пакетов.

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

· разбиения данных на пакеты;

· добавления к пакету адресной информации;

· подготовки пакетов к передаче;

· приема пакетов, передаваемых по кабелю;

· копирования данных из пакета для сборки исходных блоков данных;

· передачи этих восстановленных блоков в компьютер.

Чтобы обеспечить в сети связь, одновременно работает множество протоколов. Эти протоколы находятся в стеке на разных уровнях. Существует несколько стеков, которые используются в качестве стандартных протоколов. Наиболее известные среди них построены в соответствии с уровнями модели OSI.

Информация в локальных сетях, как правило, передается отдельными порциями, кусками, называемыми в различных источниках пакетами (packets), кадрами (frames) или блоками. Если бы вся требуемая информация передавалась каким-то абонентом сразу, непрерывно, без разделения на пакеты, то это привело бы к монопольному захвату сети этим абонентом на довольно продолжительное время. Все остальные абоненты вынуждены были бы ждать окончания передачи всей информации, что в ряде случаев могло бы потребовать десятков секунд и даже минут (например, при копировании содержимого целого жесткого диска). С тем чтобы уравнять в правах всех абонентов, а также сделать примерно одинаковыми для всех них величину времени доступа к сети и интегральную скорость передачи информации, как раз и применяются пакеты (кадры) ограниченной длины. Важно также и то, что при передаче больших массивов информации вероятность ошибки из-за помех и сбоев довольно высока. Например, при характерной для локальных сетей величине вероятности одиночной ошибки в 10-8пакет длиной 10 Кбит будет искажен с вероятностью 10-4, а массив длиной 10 Мбит – уже с вероятностью 10-1. К тому же выявить ошибку в массиве из нескольких мегабайт намного сложнее, чем в пакете из нескольких килобайт. А при обнаружении ошибки придется повторить передачу всего большого массива. Но и при повторной передаче большого массива снова высока вероятность ошибки, и процесс этот при слишком большом массиве может повторяться до бесконечности.

*Стартовая комбинация битов или преамбула, которая обеспечивает предварительную настройку аппаратуры адаптера или другого сетевого устройства на прием и обработку пакета. Это поле может полностью отсутствовать или же сводиться к единственному стартовому биту. * Сетевой адрес (идентификатор) принимающего абонента, то есть индивидуальный или групповой номер, присвоенный каждому принимающему абоненту в сети. Этот адрес позволяет приемнику распознать пакет, адресованный ему лично, группе, в которую он входит, или всем абонентам сети одновременно (при широком вещании). * Сетевой адрес (идентификатор) передающего абонента, то есть индивидуальный номер, присвоенный каждому передающему абоненту. Этот адрес информирует принимающего абонента, откуда пришел данный пакет. Включение в пакет адреса передатчика необходимо в том случае, когда одному приемнику могут попеременно приходить пакеты от разных передатчиков. * Служебная информация, которая может указывать на тип пакета, его номер, размер, формат, маршрут его доставки, на то, что с ним надо делать приемнику и т.д. * Данные (поле данных) – это та информация, ради передачи которой используется пакет. В отличие от всех остальных полей пакета поле данных имеет переменную длину, которая, собственно, и определяет полную длину пакета. Существуют специальные управляющие пакеты, которые не имеют поля данных. Их можно рассматривать как сетевые команды. Пакеты, включающие поле данных, называются информационными пакетами. Управляющие пакеты могут выполнять функцию начала и конца сеанса связи, подтверждения приема информационного пакета, запроса информационного пакета и т.д. * Контрольная сумма пакета – это числовой код, формируемый передатчиком по определенным правилам и содержащий в свернутом виде информацию обо всем пакете. Приемник, повторяя вычисления, сделанные передатчиком, с принятым пакетом, сравнивает их результат с контрольной суммой и делает вывод о правильности или ошибочности передачи пакета. Если пакет ошибочен, то приемник запрашивает его повторную передачу. Обычно используется циклическая контрольная сумма (CRC). Подробнее об этом рассказано в главе 7. * Стоповая комбинация служит для информирования аппаратуры принимающего абонента об окончании пакета, обеспечивает выход аппаратуры приемника из состояния приема. Это поле может отсутствовать, если используется самосинхронизирующийся код, позволяющий определять момент окончания передачи пакета.

Типичная структура пакета

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

studfiles.net


Смотрите также