Способ резервирования для сетей связи
METHOD OF RESERVATION FOR COMMUNICATION NETWORKS

Область техники
Настоящее изобретение относится к способам резервирования при передаче данных по сетям связи, а более конкретно - к способу связи, основанному на передаче потока данных между узлами по меньшей мере по двум линиям связи.
Предпосылки создания изобретения
При стандартном подходе для увеличения уровня резервирования соединений между узлами в сети связи, таких как соединение с асинхронным последовательным интерфейсом (ASI; asynchronous serial interface) или соединение Ethernet, используются дублированные тракты передачи, каналы или линии между узлами связи. Этот способ далее называется соединением 1+1. Обычно принимающий узел конфигурируют для приема копий потока данных или потока пакетов от передающего узла. Дублированные потоки данных передают по основной линии и резервной линии в принимающий узел. Заметим, что линия может включать последовательность промежуточных участков передачи между узлами. В зависимости от качества или состояния связи на соответствующей линии, устройство выбора в принимающем узле определяет, какую из линий следует выбрать в качестве основной линии, с которой выходной поток данных будет пересылаться в другой узел или в приложение, связанное с этим узлом. Таким образом, основная идея соединения 1+1 заключается в том, что если в основной линии произошел отказ, выполняется переключение на резервную линию. Однако, например, из-за разных временных задержек связи в основной линии и резервной линии, если основная линия внезапно начинает работать с отказами, то сбои в форме потери данных или дублирования данных в пересылаемом потоке обычно остаются при переключении.
Известно, что при возникновении отказа вместо переключения линии связи целиком может производиться выбор дублированных данных для пересылки на основе идентификаторов, включаемых в соответствующие пакеты потока данных. В заявке на европейский патент ЕР 0854610 А2 раскрывается способ резервирования для соединения Ethernet между множеством узлов, которые соединяются друг с другом через первую и вторую независимые линии Ethernet. Идентичные пакеты данных, к каждому из которых добавлен идентификатор для идентификации содержимого данных, пересылают от передающего узла в принимающий узел по обеим линиям. На приеме данные, пересылаемые по первой и второй линиям, временно сохраняются в соответствующем буфере. В принимающем узле на основе идентификатора данных определяется, какие из данных, переданных по двум линиям связи, прибыли первыми и поэтому считаются основными данными для дальнейшего использования. Это обеспечивает способ резервирования с минимально вносимой задержкой для соответствующих частей данных при одновременном обеспечении резервирования соединения.
Сущность изобретения
В связи с вышеизложенным, целью настоящего изобретения является создание усовершенствованного способа резервирования для сети связи. В частности, целью является обеспечение бесперебойной связи между узлами по множеству линий связи, при этом связь может масштабироваться относительно числа входящих в узел линий, т.е. линии связи могут быть добавлены или удалены без потери функциональности или необходимости существенной реконструкции узла.
Эта цель достигается посредством способа связи между узлами в соответствии с настоящим изобретением, как заявлено в п. 1 формулы изобретения. Настоящее изобретение основано на том, что бесперебойное переключение на резерв может выполняться таким образом, что данные не дублируются и не теряются при передаче от узла к узлу, что обеспечивается использованием в принимающем узле одного общего индексированного буфера, в котором производится выборочное восстановление транспортируемого потока данных на основе отдельных элементов потока данных, т.е. кадров или пакетов, принятых по множеству линий связи.
Таким образом в соответствии с одним аспектом настоящего изобретения предлагается способ связи между узлами, включающий снабжение каждого пакета в потоке данных, подлежащем пересылке, соответствующим идентификатором, и передачу дублированных потоков данных от передающего узла в принимающий узел по меньшей мере по двум линиям связи. Далее данный способ включает, в принимающем узле, выборочный прием и буферизацию пакетов, полученных по упомянутым по меньшей мере двум линиям, для последующей пересылки потока данных. Идентификатор соответствует позиции пакета в потоке данных, а шаг буферизации включает восстановление заданной части потока данных в общем индексированном буфере на основе пакетов, принятых по меньшей мере по одной из по меньшей мере двух линий.
Данный способ имеет преимущество в том, что он может быть осуществлен в относительно нестабильных сетях, например, сетях Ethernet с потерями пакетов, включающих каналы с низкой производительностью. Поскольку поток данных передается между узлами по множеству линий и восстанавливается в общем буфере каждого принимающего узла путем добавления недостающих пакетов потока данных, принимаемых по одной из множества параллельных линий, то требование к качеству каждой отдельной линии снижается. Следует отметить, что может быть экономически более выгодным передавать данные по трем менее стабильным линиям по сравнению с двумя или одной стабильной линией вследствие стоимости аренды соединения. Кроме того использование общего буфера для восстановления пересылаемого потока данных обеспечивает преимущество легкого масштабирования системы, когда число входящих линий на принимающий узел может быть изменено без необходимости изменения конфигурации принимающего узла.
Следующее преимущество при использовании общего индексированного буфера для восстановления передаваемого потока данных состоит в том, что необходимый объем выделяемого пространства буфера в принимающем узле будет существенно меньше. При использовании общего буфера, например, для двух входящих линий, минимально необходимая емкость буфера для восстановления потока данных составляет половину объема по сравнению с известной системой. Кроме того, необходимая емкость буфера обычно обусловлена фактическими или расчетными дифференциальными задержками входящих линий, т.е. временным сдвигом между разными копиями потока данных, передаваемых по меньшей мере по двум линиям. Например, если пакет с конкретным идентификатором прибывает на 5 мс позже по одной линии относительно параллельной линии, то говорят, что это соединение имеет дифференциальную задержку 5 мс. Чтобы обеспечить бесперебойное соединение, эта задержка должна быть компенсирована путем помещения в буфер соответствующего временного фрагмента потока данных. В приведенном выше примере с двумя входящими линиями, когда принимающий узел имеет ограниченное общее пространство буфера, достигается двойной запас отказоустойчивости в отношении буферизации для компенсации дифференциальной задержки по сравнению с известной системой, где выполняется буферизация всех пакетов, принятых по всем линиям.
В соответствии с вариантом осуществления данного способа, шаг восстановления по меньшей мере части потока данных включает выбор для последующей записи в каждую индексированную позицию буфера только одного принятого пакета с конкретным идентификатором. В принимающий узел может прибыть несколько пакетов с одинаковым идентификатором по разным линиям. Но поскольку для восстановления потока данных требуется только одна копия пакета с таким идентификатором, то после того как одна копия записывается в общий буфер, остальные копии отбрасывают. Выбор копии пакета для записи базируется на текущем критерии выбора, например, первый прибывший пакет, самая надежная линия и т.п.
Помимо этого, данный способ обеспечивает бесперебойный режим связи между узлами по множеству линий с улучшенной обработкой почти нулевых дифференциальных задержек между входящими линиями. В решениях существующего уровня техники, указанных выше, при обеспечении бесперебойного режима могут быть затруднения. Это связано с тем, что при малых дифференциальных задержках между множеством входящих линий временные параметры первого фактически прибывшего сигнала могут меняться во времени, что приводит к затруднениям при определении того, какая линия является первой (основной линией), сколько времени нужно выполнять буферизацию для обеспечения бесперебойного соединения, и когда связь между узлами находится в нормальном состоянии.
В соответствии с вариантом осуществления данный способ включает, для каждого принятого пакета, определение по идентификатору принятого пакета соответствующего индекса буфера, проверку по полученному индексу буфера наличия данных, уже записанных в соответствующую позицию буфера, и если данные еще не записаны, то запись принятого пакета или соответствующего указателя на принятый пакет в определенную позицию буфера. Это позволяет эффективно сортировать пакеты, имеющие конкретные идентификаторы и прибывающие по входящим линиям, по правильным позициям буфера, даже если входящие пакеты прибывают в смешанном порядке. Для записи выбирают только те пакеты, которые еще не были записаны в буфер.
В соответствии с вариантом осуществления данный способ также включает отбрасывание принятых пакетов, прибывших после того, как пакет с таким же идентификатором уже записан, таким образом освобождая память.
В соответствии с вариантом осуществления данный способ одновременно обеспечивает выбор и запись в буфер принятых пакетов, имеющих разные идентификаторы и получаемых по разным линиям. Такая параллельная запись в общий буфер увеличивает скорость записи данных в буфер и, следовательно, уменьшает время, необходимое для выполнения восстановления части потока данных.
В соответствии с вариантом осуществления данный способ также включает, для каждого принятого пакета, установку записей битов достоверности в соответствии с полученными индексом буфера и входящей линией. Это обеспечивает эффективный способ контроля, показывающий какие пакеты по каким линиям приняты, какие пакеты могут быть использованы, например, для контроля качества входящих линий и определения возможности бесперебойного переключения на резерв.
В соответствии с вариантом осуществления данный способ также включает контроль текущего резервирования связи между узлами на основе записей с битами достоверности, что является преимуществом по причине сложности этой проблемы. Записи с битами достоверности могут также использоваться для контроля того, что общий буфер заполнен достаточно, чтобы обеспечить бесперебойное соединение при отказе одной или более линий.
В соответствии с вариантом осуществления данный способ также включает запись времени между прибытием пакетов в принимающем узле для каждого принятого пакета. Пересылка потока данных производится с выходной скоростью, определяемой на основе записанных данных о времени между прибытием пакетов, что минимизирует внесение эффектов дрожания/дрейфа в пересылаемый поток данных. Это имеет значение, например, при осуществлении данного способа в транспортном формате Ethernet или других форматах или услугах, где скорость прибытия пакетов в узел не является фиксированной, например, в видеоуслугах по сетям Ethernet.
В соответствии с вариантом осуществления данного способа, выходная скорость определяется пакет за пакетом так, что для пакета с конкретным индексом буфера выходная скорость выбирается на основе записанного времени между прибытием пакетов для одного из принятых пакетов, имеющих идентификатор, соответствующий этому конкретному индексу буфера. Это обеспечивает то, что пакеты пересылаются способом, который гарантирует такие же характеристики дрожания/дрейфа, как в исходном потоке данных.
В соответствии с вариантом осуществления данного способа выходная скорость для пересылки потока данных выбирается на основе записанного времени между прибытием пакетов по одной из по меньшей мере двух линий связи, что обеспечивает преимущество, когда требуется заставить синхронизирующую основную линию достичь конкретной выходной скорости пересылаемого потока данных. Это гарантирует, что синхронизация вывода пересылаемого потока данных становится такой же, как в одном из по меньшей мере двух входящих потоков данных, а не является случайной смесью.
В соответствии с вариантом осуществления данного способа, пересылка потока данных начинается через заранее заданное время после приема первого пакета потока данных по меньшей мере по двум линиям.
В соответствии с вариантом осуществления, данный способ может использоваться для изменения конфигурации промежуточного узла, расположенного в одной из по меньшей мере из двух линий в сети связи, а также для отключения промежуточного узла с целью обслуживания без прерывания услуг.
Согласно аспекту настоящего изобретения, данный способ осуществляется в форме программного модуля, сконфигурированного для выполнения способа, как описано выше, процессором компьютера.
Другие цели, особенности и преимущества настоящего изобретения раскрываются в последующем подробном описании, чертежах и прилагаемой формуле изобретения. Специалистам в данной области техники будет очевидно, что различные признаки настоящего изобретения могут комбинироваться для создания вариантов осуществления, отличающихся от рассмотренных в нижеследующем описании.
Краткое описание чертежей
Указанные выше, а также другие цели, особенности и преимущества настоящего изобретения будут более понятны из неограничивающего подробного описания предпочтительных вариантов осуществления на основе сопроводительных чертежей, где для одинаковых элементов используются одинаковые обозначения.
На фиг. 1 представлена схема системы связи между узлами в соответствии с настоящим изобретением.
На фиг. 2-6 представлена функциональная структура вариантов осуществления способа в соответствии с настоящим изобретением.
На фиг. 7 и 8 представлены схемы отключения узла в сети без перерыва связи на основе способа в соответствии с настоящим изобретением.
Все чертежи выполнены схематически и необязательно в масштабе. В основном на них показаны элементы, которые являются необходимыми для пояснения настоящего изобретения, тогда как другие части могут быть опущены или просто подразумеваться.
Подробное описание предпочтительных вариантов осуществления
Примеры осуществления способа связи между узлами в соответствии с настоящим изобретением рассматриваются далее на основе чертежей. В большинстве примеров осуществления показано соединение 1+1. Однако необходимо отметить, что раскрываемый способ применяется также для соединений 1+1+1 и т.д. Шаги данного способа представлены в виде числовой последовательности, однако некоторые шаги могут выполняться в другом порядке. Термин "пакет" или "кадр" используется в данном описании в качестве единицы разбиения данных, хотя в общем случае данные могут передаваться в непакетизированном формате.
На фиг. 1 представлена схема системы 10 связи между узлами в соответствии с концепцией настоящего изобретения. Система связи 10 включает бесперебойное соединение Ethernet по схеме 1+1, где используется способ связи между узлами в соответствии с настоящим изобретением. Система 10 связи между узлами включает первый узел N0 и второй узел N1, которые взаимодействуют по двум параллельным линиям А и В. Каждый узел включает средства для приема, обработки и передачи потока данных. Однако с целью упрощения в данном описании показаны и рассмотрены только те функциональные элементы, которые необходимы для понимания настоящего изобретения.
Поток 11 данных, подлежащий передаче между первым узлом N0 и вторым узлом N1, включает последовательность пакетов. Каждый пакет потока 11 данных в первом узле N0 снабжается идентификатором, соответствующим позиции этого пакета в потоке 11 данных. Идентификатор может представлять собой порядковый номер, выбранный с заданным интервалом. Однако в соответствии с вариантами осуществления данного способа идентификатор может быть осуществлен в форме любой временной метки в исходящем направлении потока данных.
n
Далее, после назначения идентификатора n, каждый индексированный пакет данных дублируется в первом узле N0 таким образом, что идентичные данные, т.е. дублированные пакеты, включающие одинаковый порядковый номер n, пересылаются из первого узла N0 во второй узел N1 по первой линии А и второй линии В, соответственно, т.е. от передающего узла в принимающий узел. Во втором узле N1 переданные копии пакетов потока данных принимаются по обеим линиям А и В и выборочно отбрасываются или помещаются в общий буфер (на фиг. 1 не показан, см общий буфер, схематически представленный в виде таблицы 120 на фиг. 2) для последующей пересылки потока данных в (исходящую) линию С. Общий буфер 120 - это единственный совместно используемый буфер, который индексируется порядковыми номерами b и может одновременно записывать данные из обеих линий А и В.
Варианты осуществления раскрываемого способа далее рассматриваются более подробно в отношении базовой функциональной структуры, поясняющей заявляемый способ, как схематично показано на фиг. 2. Базовая функциональная структура 100 включает две входящие линии А и В (хотя данный способ поддерживает любое применимое число линий А, В, … Z), блок 110 выбора, где каждая входящая линия оканчивается с точки зрения контроля работоспособности, и буфер 120 (соответствующий общему индексированному буферу, размещенному в принимающем узле N1, как описывается со ссылкой на фиг. 1). Каждый пакет данных, передаваемый по линиям А и В, включает соответствующий порядковый номер, который записывается в пакеты потока данных в передающем узле. Каждый пакет с каждым порядковым номером обозначается для линии А как А(n) и для линии В как В(n).
n
n
n
n
n
Буфер 120 представляет собой индексируемый кольцевой массив. Буфер 120 включает бит достоверности для каждой записи для каждой линии VA и VB, а также индекс b буфера. Блок 110 выбора включает средства для определения по идентификатору каждого принятого пакета, т.е. порядковому номеру пакета, соответствующего индекса b буфера для этого пакета. Это производится блоком 110 выбора, который обнаруживает запись, например, принятый пакет, то есть пакет из линии А или В, и вычисляет соответствующий индекс b буфера для этой записи путем сравнения смещения принятого порядкового номера относительно порядкового номера пакета головной записи буфера. Далее, для каждой записи, если для каждой линии оба бита достоверности VA и VB отсутствуют, то пакет записывается в буфер (не показано), и устанавливается бит достоверности линии VA или VB для этого индекса b буфера. Если для конкретной записи линии связи бит достоверности другой линии для этого индекса b буфера уже установлен, т.е. запись уже заполнена из другой линии, и пакет уже записан в буфер, то пакет этой конкретной записи отбрасывается после установки его бита достоверности. На фиг. 2 указан порядок считывания буфера при пересылке потока данных в линию С.
1
n
n
2
Рассмотрим пример заполнения буфера, как показано на фиг. 3. Линия А опережает линию В, т.е. порядковые номера пакетов в линии А, обнаруженные блоком 110 выбора, больше, чем в линии В. Пакеты из линии А записываются в буфер один за одним. В момент времени t А(n+3) в блок 110 выбора прибывает пакет А(n+3) и записывается в буфер 120, при этом бит достоверности для индекса b буфера, соответствующий порядковому номеру n+3, устанавливается для линии A (VA=1 для b=n+3). В момент времени t в буфер 120 записаны пакеты до А(n+4), но, как можно видеть по битам достоверности VB для линии В, только пакеты (n), В(n+1) и В(n+2) были получены по линии В, для которой соответствующие биты достоверности установлены, а соответствующие пакеты отброшены, поскольку они уже были получены по линии А. Порядок записи буфера, как показано на фиг. 3, становится: А(n), А(n+1), А(n+2), А(n+3), А(n+4).
3
1
n
n
3
В соединении по схеме 1+1 дифференциальная задержка Δ измеряется как разность времени прибытия между двумя копиями дублированного пакета, переданными по разным линиям. Важно, чтобы размер буфера был достаточно большим, чтобы охватывалась дифференциальная задержка Δ между разными линиями. На фиг. 3 пакет В(n+3) по линии В прибывает в блок 110 выбора в момент времени t=t+Δ, и поскольку буфер уже записан из линии А, пакет В(n+3) будет отброшен после установки бита достоверности VB для индекса b буфера, соответствующего порядковому номеру (n+3) (VB=1 для b=n+3 в момент времени >t). В случае, если в опережающей линии А по какой-либо причине произойдет сбой, и А(n+3) не будет получен, помещение данных в буфер должно обеспечивать покрытие дифференциальной задержки Δ между линиями А и В, так что когда прибывает В(n+3), он может быть использован для заполнения отсутствующего пакета и восстановления потока данных, см следующий пример.
На фиг. 4 представлен пример обеспечения бесперебойного переключения. Как показано на фиг. 4, линия А опережает линию В, т.е. порядковые номера пакетов в линии А, принимаемые блоком 110 выбора, больше, чем в линии В. В данном примере в линии А происходит сбой, т.е. прием пакетов по линии А после А(n+2) отсутствует, однако поскольку линия А опережает линию В, блок 110 выбора записывает в буфер пакеты А(n), А(n+1), А(n+2). Затем, как видно на фиг. 4, линия В догоняет А и начинает заполнять записи буфера, начиная с порядкового номера (n+3). Таким образом достигается бесперебойное переключение связи между линиями. Порядок записи буфера тогда становится А(n), А(n+1), А(n+2), В(n+3), В(n+4), как показано на фиг. 4.
5
На фиг. 5 показана параллельная запись в буфер, когда запись в буфер может производиться параллельно из обеих линий А и В. Другими словами, блок 110 выбора конфигурируют для обеспечения одновременного выбора и записи принятых пактов, т.е. пакетов, имеющих разные идентификаторы, такие как порядковые номера, и принятых по разным линиям, в данном случае по линии А и линии В. В этом примере линия А опережает линию В, но есть пакеты, пропущенные вследствие предыдущего сбоя. Пакет с порядковым номером (n) записывается из линии В, и параллельно пакет с порядковым номером (n+3) записывается из линии А. Соответственно пакет с порядковым номером (n+1) записывается из линии В, и параллельно пакет с порядковым номером (n+4) записывается из линии А, и так далее в соответствии с порядком записи буфера. Порядок записи буфера тогда имеет несколько записей для некоторых моментов времени, как показано на фиг. 5. К моменту времени t пакеты с порядковыми номерами n-(n+2) прибыли только по линии В, поэтому для этих пакетов биты достоверности VA для линии А не установлены, тогда как биты достоверности VB для линии В установлены. Первым пакетом, который установит оба бита достоверности VA и VB, будет пакет с порядковым номером (n+3), как видно на фиг. 5.
В соответствии с вариантом осуществления данного способа, биты достоверности VA, VB…VZ, записанные в общем буфере для разных линий A, B…Z, используют для управления пересылкой потока данных в исходящую линию С. В таком варианте осуществления пересылка потока данных начинается через заданное время после того, как первый кадр или пакет потока данных получен по меньшей мере по двум линиям. Заданное время выбирается так, чтобы обеспечить достаточно большой объем буфера, позволяющий покрыть максимально поддерживаемую дифференциальную задержку сети.
В соответствии с вариантом осуществления данного способа, биты достоверности VA, VB…VZ, записанные для разных линий A, B…Z в общем буфере, используют для контроля текущего резервирования связи между узлами. Контроль буфера производится при последующей пересылке потока данных из второго узла, см. узел N1 на фиг. 1, при этом для каждого пересылаемого пакета из буфера или очереди проверяют биты достоверности для линий А и В. Если для пакета с конфетным порядковым номером установлены оба бита достоверности VA и VB, это означает, что по обеим линиям А и В этот порядковый номер получен прежде, чем этот пакет был отправлен из буфера, что показывает, что уровень буферизации является достаточным для поддержания бесперебойного переключения на резерв. Напротив, если установлен только один бит, то объем буферизации является недостаточным, и поэтому данное соединение не может рассматриваться как отказоустойчивое, т.е. оно не находится в состоянии, обеспечивающем бесперебойное переключение на резерв. Для связи между узлами по множеству линий может использоваться контроль буфера, как описывается выше, для решения об одиночном, двойном, тройном и т.д. резервировании соединения.
В соответствии с вариантом осуществления данного способа, при запуске связи между узлами, например в системе связи между узлами, как описывается на основе фиг. 1 и фиг. 2, условия запуска заключаются в следующем: первоначально ни линия А, ни линия В не является опережающей, и состояние соединения не является отказоустойчивым. Затем либо линия А, либо линия В становится опережающей. Однако только когда оба канала находятся в рабочем состоянии, измеряется дифференциальная задержка двух линий, которая должна быть меньше поддерживаемого предела переключения, и если, как указано выше, пакеты, пересылаемые из очереди, имеют оба бита достоверности, то состояние соединения переходит в отказоустойчивое состояние.
В варианте осуществления, как только по первой линии прибывают данные, начинается их запись в буфер. Когда заполнение буфера достигает заданной величины, например 50%, начинается пересылка пакетов. В другом варианте осуществления пересылка потока данных начинается через заданное время после того, как был подтвержден пакет головной записи в обеих линиях А и В, т.е. установлены биты VA и VB. Пересылка потока данных предпочтительно производится с заданной скоростью вывода, как описывается в вариантах осуществления настоящего изобретения далее. В предпочтительном варианте скорость вывода выбирается так, чтобы поддерживать исходную скорость передачи потока данных. Когда прибывают данные по второй линии, они могут опережать существующую линию или запаздывать относительно нее. Если линия опережает существующую, то опережающая линия захватывается и начинает заполнение записей. Если она запаздывает, определяется дифференциальная задержка. В варианте осуществления, если дифференциальная задержка меньше, чем максимально поддерживаемая задержка, и это условие регистрируется в течение заранее заданного периода времени, например 10 с, после установления первого соединения, то вводится автоматический перерыв, чтобы принудительно перевести соединение в отказоустойчивое состояние. Однако если дифференциальная задержка меньше, чем максимально поддерживаемая задержка, и это условие регистрируется по истечении заранее заданного периода времени, например 10 с, то требуется операция ручного принудительного переключения, чтобы ввести перерыв и обеспечить переход соединения в отказоустойчивое состояние.
В варианте осуществления, после того как был введен перерыв, обе линии являются доступными. В этом случае сравниваются порядковые номера в соответствующих линиях, и выбирается линия с наименьшим порядковым номером, чтобы начать запись в буфер и таким образом установить головную запись буфера. В другом варианте осуществления может использоваться алгоритм случайного выбора линии.
Следует отметить, что до пересылки пакетов в буферный канал вносится некоторая задержка вследствие ожидания, пока заполнение буфера достигнет 50%. Если дифференциальная задержка меньше, чем величина трафика, которая соответствует 50% заполнению буфера, то вносимая задержка может быть больше, чем требуется для обеспечения бесперебойного переключения. Поэтому для приложений, чувствительных к задержке, при установлении соединения всегда рекомендуется вводить перерыв, чтобы величина буферизации и, следовательно, задержка могли быть оптимизированы.
Как было указано ранее, для уменьшения эффекта дрожания/дрейфа при связи между узлами могут использоваться режимы с различной скоростью вывода, которые описываются далее для вариантов осуществления способа в соответствии с настоящим изобретением.
a
В соответствии с вариантом осуществления способа, чтобы уменьшить эффект дрожания/дрейфа при связи между узлами, скорость вывода пакетов из буфера регулируется так, чтобы поддерживать скорость вывода буфера такой же как скорость, с которой пакеты прибывают в принимающий узел. На фиг. 6 показано, что данный способ в принимающем узле N1 для каждого принятого пакета включает запись времени между прибытием пакетов. Когда пакет прибывает по линии А или В, запускается счетчик 60 тактов в блоке 110 выбора, и когда прибывает следующий пакет, значение счетчика тактов записывается и связывается с прибывающим пакетом. Другими словами, в принимающем узле N1 записывается число тактов между прибывающими пакетами по каждой линии. Затем на основе записанных данных о времени между прибытием пакетов определяется выходная скорость для пересылки потока данных, например, путем выбора данных о времени между прибытием пакетов для первого принятого пакета с конкретным порядковым номером, см пример ниже. Полученное время используется как задержка d вывода. Как только пакет становится головным пакетом очереди, на фиг. 6 обозначен как "Головной пакет", и готов для пересылки, этот пакет перед отправкой задерживается в течение такого числа тактов, которое указывает задержка d вывода. Этот способ гарантирует, что пакеты будут пересылаться с такой же скоростью, с какой они прибывают. Последовательность T задержек вывода может использоваться для описания характеристик задержки вывода пакетов в линии:
n
A(n+3)
B(n+3)
D(n+3)
B(n+3)
A(n+4)
B(n+4)
D(n+4)
D(n+4)
A(n+5)
B(n+5)
D(n+5)
A(n+5)
В соответствии с вариантом осуществления данного способа, выходная скорость определяется пакет за пакетом так, что для пакета с конкретным индексом b буфера выходная скорость выбирается на основе задержки d вывода одного из принятых пакетов с идентификатором, соответствующим этому индексу буфера. Рассмотрим три входящих линии А, В, D (не показано). Для пакета с порядковым номером n+3 определяется не более трех задержек вывода d, d, d. В данном примере d выбирается в качестве задержки вывода этого пакета при его пересылке в исходящую линию С. Для следующего пакета с порядковым номером n+4 определяется не более трех задержек вывода d, d, d, и d выбирается в качестве задержки вывода этого пакета при его пересылке в исходящую линию С. Для следующего пакета с порядковым номером n+5 определяется не более трех задержек вывода d, d, d, и выбирается d. В результате последовательность задержек вывода буфера для этих пакетов соответствует:
aA
aB
aC
aC
aC
В соответствии с вариантом осуществления данного способа, выходная скорость при пересылке потока данных из принимающего узла выбирается на основе записанных интервалов времени между прибытием пакетов по одной из входящих линий. Рассмотрим две линии А и В, которые являются почти синхронизированными, т.е. порядковые номера пакетов, прибывающих по двум линиям А и В находятся очень близко друг к другу, но эти линии характеризуются некоторым непостоянством в отношении скорости прибытия пакетов. Если задержки вывода определяются пакет за пакетом, то в результате такого подхода данные в буфере могут часто чередоваться между этими двумя линиями. Тогда значения выходной скорости в линии С могут существенно отличаться от скорости передачи любого из прибывающих потоков данных по линиям А и В. Например, пакеты из линии А прибывают в блок 110 выбора и дают в результате последовательность задержек вывода T=[15, 2, 15, 2, 15]. Пакеты из линии В дают в результате последовательность задержек вывода T=[2, 15, 2, 15, 2]. Предположим, что эти линии практически синхронизированы и в результате в буферном канале каждый следующий пакет записывается из чередующихся линий. Последовательность задержек вывода для буфера тогда становится T=[15, 15, 15, 15, 15], что приведет к скорости вывода потока данных, пересылаемого в линию С, которая будет значительно отличаться от скорости прибытия пакетов потока данных и в линии А, и в линии В. Это может быть неприемлемым. Проблема решается, если одну из линий использовать для синхронизации. Например, запаздывающая линия выбирается в качестве основной синхронизирующей линии. Затем основная синхронизирующая линия перезаписывает задержки вывода в действующих записях буфера. В итоге буферизация позволяет обеспечить в буферизованном канале такую же последовательность задержек, как в запаздывающей линии. Тогда последовательность задержек вывода становится T=[15, 2, 15, 2, 15] или T=[2, 15, 2, 15, 2], и скорость вывода потока данных, пересылаемых в линию С, будет соответствовать скорости прибытия пакетов потока данных либо по каналу А, либо по каналу В. Выбор линии в качестве основной синхронизирующей линии может быть произведен на основе такого критерия как: первая линия с прибывшими данными, опережающая линия, история стабильности линии или любая комбинация этих условий.
Способ в соответствии с настоящим изобретением может также успешно использоваться для модернизации промежуточного узла в сети без перерыва связи. На фиг. 7 показан вариант осуществления системы 700 связи между узлами в соответствии с настоящим изобретением, где данный способ используется для отключения узла в сети без перерыва связи, например с целью модернизации этого узла. В процессе нормальной работы первый узел N0 соединяется со вторым узлом N1 через промежуточный узел NI. Узел NI требуется временно отключить от сети без прерывания услуг связи. Это достигается добавлением резервной линии NS между первым узлом N0 и вторым узлом N1 для обхода узла NI с целью его модернизации. Поток 11 данных, как описывается выше, дублируется в первом узле N0 и затем передается во второй узел N1 через промежуточный узел NI и резервную линию NS. После подтверждения отказоустойчивости соединения, первоначальное соединение через промежуточный узел NI может быть отключено, и может быть произведена модернизация промежуточного узла NI. После завершения работ первоначальное соединение через узел NI восстанавливается, и после подтверждения отказоустойчивости резервное обходное соединение может быть удалено. Этот способ обеспечивает возможность отключения узла с целью технического обслуживания без прерывания услуг связи.
На фиг. 8 показано, что данные способ и система могут успешно использоваться для мягкого отключения соединений при многоадресной передаче. На фиг. 8а многоадресный узел NM соединяется через многоадресную сеть связи между узлами, и в данном случае соединяется с первым узлом N0, со вторым узлом N1 и с третьим узлом N2. Чтобы обеспечить мягкое отключение многоадресного узла NM с целью его модернизации, добавляется резервная линия NS между первым узлом и третьим узлом, как показано на фиг. 8b. Затем устанавливается многоадресная передача от первого узла N0 во второй узел N1 и от первого узла N0 в третий узел N2 (по резервной линии NS). После подтверждения отказоустойчивости обоих соединений многоадресный узел NM отключается, и может быть выполнена его модернизация. После завершения работ восстанавливаются первоначальные соединения через узел NM, после подтверждения отказоустойчивости резервное обходное соединение NS отключается, и многоадресный канал от первого узла N0 удаляется.
Варианты осуществления способа в соответствии с настоящим изобретением предпочтительно реализовываются в системе связи между узлами посредством программного модуля, сконфигурированного для осуществления данного способа (не показан). Программный модуль может интегрироваться в узел связи, включающий соответствующие средства обработки и средства хранения данных, или может быть осуществлен в виде внешнего устройства, включающего соответствующие средства обработки и средства хранения данных, и установленного с целью взаимодействия с существующим узлом связи.
Специалисту в данной области техники понятно, что настоящее изобретение не ограничивается указанными выше вариантами осуществления. Напротив, множество модификаций и изменений находится в области охвата прилагаемой формулы изобретения. Кроме того, необходимо отметить, что способ в соответствии с настоящим изобретением применим для связи между узлами и для модернизации узла без перерыва связи в любой подходящей сети связи, а также в синхронных сетях связи.