СПОСОБ И УСТРОЙСТВО ДЛЯ ОБНОВЛЕНИЯ КОЛИЧЕСТВА ПОВТОРНЫХ ПЕРЕДАЧ В БЕСПРОВОДНОЙ ЯЧЕИСТОЙ СЕТИ
METHOD AND APPARATUS FOR UPDATING THE NUMBER OF RETRANSMISSIONS IN A WIRELESS MESH NETWORK

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение в общем случае относится к беспроводной ячеистой сети, в частности к способам обновления количества повторных передач для конкретного узла ячеистой сети в ячеистой сети.
УРОВЕНЬ ТЕХНИКИ
Беспроводная ячеистая сеть, WMN, содержит множество узлов ячеистой сети, организованных в ячеистой топологии. При этом каждый узел ячеистой сети также является своего рода поставщиком, ретранслирующим данные на следующий узел ячеистой сети. Сетевая инфраструктура является децентрализованной и упрощенной, поскольку каждому узлу ячеистой сети только нужно иметь возможность передавать на соседний узел ячеистой сети. Такие беспроводные ячеистые сети позволяют людям, живущим в отдаленных областях, и малым предприятиям, действующим в пригородах, соединять свои сети друг с другом для создания доступных по цене интернет-соединений.
Беспроводная ячеистая сеть может быть самостроящейся и саморемонтирующейся. Эти сети могут быть реализованы посредством различных беспроводных технологий в том числе 802.11, 802.15, 802.16, сотовых технологий и не предполагают ограничения конкретной технологией или протоколом.
Беспроводные технологии низкой мощности исполняют ячеистые сетевые топологии для увеличения покрытия и гибкости сети. Ячеистая сеть состоит из машинных устройств, например датчиков и приводов, и ретрансляционных узлов, которые имеют возможность ретранслировать пакеты и в конце концов позволяют осуществлять связь между узлами, которые находятся за пределами дальности радиосвязи друг от друга.
Простейшим и наиболее прямолинейным способом сетевой связи является лавинообразная маршрутизация. В сети с лавинообразной маршрутизацией, каждый ретранслятор, приняв пакет, ретранслирует его. Этот способ устойчив к изменениям топологии сети. Также этот подход хорошо согласуется с характеристиками устройств в сетях низкой мощности, которые обычно ограничены в отношении памяти и вычислительных ресурсов.
В ячеистых сетях низкой мощности, работающих в нелицензированном диапазоне, каждая передача от каждого узла может приводить к помехам или конфликтам на беспроводном канале с передачами других узлов. Чем больший трафик инжектируется в сеть, тем больше возникает помех и конфликтов, приводя к потере пакетов.
Для одноцелевых передач технологии обычно предусматривают квитирование на канальном уровне, чтобы гарантировать надежную связь от узла к узлу. С другой стороны, в ячеистой сети, передача часто имеет несколько приемников, данные часто рассылаются. Типичный подход к увеличению надежности в широковещательных беспроводных ячеистых сетях состоит в том, чтобы вслепую повторять широковещательные передачи несколько раз, как если бы первоначальная попытка не удалась.
Bluetooth mesh, официально запущенный в июле 2017 г., является долгожданным дополнением к коммуникационному пространству интернет вещей (IoT). Решение основано на лавинообразной маршрутизации с использованием рассылки по набору совместно используемых каналов - каналов объявлений.
Приложение генерирует информационные сообщения, связанные с заранее заданными моделями Bluetooth. Верхний транспортный уровень обеспечивает шифрование и аутентификацию сообщений приложений, совместно с признаками управления. Нижний транспортный уровень обеспечивает функциональные возможности сегментирования и повторной сборки, в том числе передача сквозных сообщений квитирования сегментов для квитирования приема сегментированных сообщений. Квитирование сегментов обязательно для сегментированных пакетов, но в необязательном порядке может использоваться для квитирования коротких пакетов при отправке в одиночном сегментированном сообщении. Сетевой уровень отвечает за ретрансляцию сообщений по надлежащему каналу-носителю (например, контроллер Bluetooth Core v4.0).
Узел, действующий как ретранслятор в сети Bluetooth mesh, сканирует каналы объявлений на предмет пакетов Bluetooth mesh. При обнаружении и приеме пакета узел проверяет, является ли он пунктом назначения пакета - если да, содержимое пакета отправляется на приложение, где обрабатывается. Если узел не является пунктом назначения пакета, узел проверяет в сетевом кэше, выполнил ли он уже прием и ретрансляцию пакета. Если да, пакет игнорируется. Если нет, пакет ретранслируется в ячеистой сети посредством его повторной передачи по каналам объявлений, чтобы соседние узлы могли принять его. Обычно некоторая произвольная задержка вносится до ретрансляции пакета во избежание конфликтов. Посредством этого распределенного механизма пакет ретранслируется от узла к узлу(ам) в сети, пока пакет не поступит в пункт назначения. Во избежание циклов с бесконечными повторными передачами, применяются некоторые ограничения: если сообщение ранее было принято или ретранслировано более сконфигурированного числа раз (срок жизни), то оно игнорируется. Однако в установках малого масштаба, предполагается, что все узлы в конце концов принимают сообщения, сгенерированные в сети. Кроме того, каждое сообщение передается несколько раз отправителем и ретрансляторами, для увеличения вероятности успеха.
Сообщения в сети Bluetooth mesh защищены механизмом двухуровневой аутентификации и шифрования. Один ключ используется для защиты полезной нагрузки сетевого уровня и известен всем узлам, принадлежащим сети. Верхний транспортный уровень использует другой ключ для аутентификации и шифрования данных приложения. Этот ключ совместно используется только среди узлов, которые совместно используют одно и то же приложение. Целью отделения ключей приложения от ключей сети является обеспечение возможности передачи данных приложения через промежуточные узлы, и обеспечение этим узлам возможности аутентификации этих сообщений при их ретрансляции, не требуя от промежуточных узлов считывать или изменять данные приложения. Например, лампочка не должна быть способна отпирать двери. Узлы могут ретранслировать сообщения приложений, с использованием сетевого ключа, без необходимости знать ключ приложения и, таким образом, без возможности изменять или понимать данные приложения.
В европейской патентной заявке EP 2437440 A1 раскрыт способ регулировки количества повторных передач на основе расстояния между исходным и конечным узлами. Такой способ не влияет на качество канала между двумя последовательными узлами.
В международной публикации патентной заявки WO 2016/015213 раскрыт способ регулировки количества повторяющихся кодированных пакетов, передаваемых в сети беспроводной связи. Такой подход использует количество пакетов, успешно декодированных получателем, а не количество фактически принятых пакетов. Кроме того, такой способ нельзя применять к каждому промежуточному узлу в ячеистой сети, поскольку он не способен декодировать сообщения, адресованные не ему.
Один из недостатков существующих принципов состоит в отсутствии информации, доступной на конкретном узле ячеистой сети для локального определения, успешно ли доставлено ретранслированное сообщение.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Задача состоит в обеспечении способа обновления количества повторных передач для узла ячеистой сети в ячеистой сети, содержащей множество узлов ячеистой сети.
Еще одна задача состоит в обеспечении узла ячеистой сети, способного обновлять количество повторных передач, которые он совершает.
В первом аспекте предусмотрен способ обновления количества повторных передач для узла ячеистой сети в ячеистой сети, содержащей множество узлов ячеистой сети, причем упомянутое количество повторных передач указывает, насколько часто упомянутый узел ячеистой сети повторно передает принятые сообщения в упомянутой ячеистой сети.
Способ содержит этап приема, упомянутым узлом ячеистой сети, некоторого количества информационных сообщений, ожидающих квитирования, причем каждое из упомянутых информационных сообщений исходит из одного и того же исходного узла (узла-источника) ячеистой сети и адресовано одному и тому же конечному узлу (узлу-адресату) ячеистой сети в упомянутой ячеистой сети.
Кроме того, способ содержит этап передачи, упомянутым узлом ячеистой сети, каждого из упомянутого количества информационных сообщений на основе упомянутого количества повторных передач.
Кроме того, способ содержит этап приема, упомянутым узлом ячеистой сети, некоторого количества сообщений квитирования, причем каждое сообщение квитирования отправляется из упомянутого конечного узла ячеистой сети и квитирует прием конкретного информационного сообщения из упомянутого первого количества информационных сообщений.
Кроме того, способ содержит этап обновления, упомянутым узлом ячеистой сети, упомянутого количества повторных передач на основе упомянутого количества информационных сообщений и на основе упомянутого количества сообщений квитирования.
Было установлено, что в ячеистых сетях количество повторных передач часто бывает заранее сконфигурировано и статически назначается на фазе инициализации узла ячеистой сети, но динамика развернутой и действующей ячеистой сети не учитывается. Неоправданно высокая оценка количества повторных передач может приводить к снижению производительности сети вследствие перегрузки сети.
На уровне приложений, прием сообщения статуса от конечного узла ячеистой сети может интерпретироваться отправителем или узлом ячеистой сети, отправляющим сообщение запроса/конфигурации, как сквозное квитирование для этого сообщения. Однако эта информация может не быть доступной на промежуточных узлах ячеистой сети в сети, поскольку сообщения могут обрабатываться только промежуточными узлами ячеистой сети вплоть до нижнего транспортного уровня, и содержимое уровня приложений дешифруется только на исходном узле ячеистой сети и в пункте(ах) назначения сообщения.
В результате, в ячеистых сетях может не существовать механизма, который позволял бы узлам ячеистой сети автоматически регулировать количество передач сетевого уровня на основе фактической необходимости.
В соответствии вышесказанным, настоящее изобретение предусматривает механизм, позволяющий узлу ячеистой сети собирать статистику приема сообщений для пар исходного узла ячеистой сети и конечного узла ячеистой сети и регулировать режим передачи на основе этой статистики.
В соответствии с настоящим изобретением, конкретный узел ячеистой сети может принимать информационные сообщения от любого узла ячеистой сети в ячеистой сети. Конкретный узел ячеистой сети может даже несколько раз принять одно и то же информационное сообщение, от одного и того же узла ячеистой сети или от множества узлов ячеистой сети.
В таком случае узел ячеистой сети может принимать решение сохранить принятое информационное сообщение в памяти. Каждый раз, когда одно и то же информационное сообщение принимается снова, например, от одного и того же узла ячеистой сети или от другого узла ячеистой сети, принимается решение, что информационное сообщение уже было принято, поскольку информационное сообщение уже присутствует в памяти. Можно считать, что конкретное информационное сообщение принято один раз, несмотря на то, что одно и то же информационное сообщение может приниматься конкретным узлом ячеистой сети несколько раз. Таким образом, каждое информационное сообщение либо принимается на конкретном узле ячеистой сети, либо не принимается.
Вышеприведенные соображения применимы к сообщениям квитирования, которые отправляются конечным узлом ячеистой сети на исходный узел ячеистой сети. Конкретный узел ячеистой сети в ячеистой сети может решить, что сообщение квитирования было принято только один раз, несмотря на то, что это конкретное сообщение квитирования могло быть принято несколько раз, от одного и того же или разных узлов ячеистой сети.
В соответствии с вышеприведенными примерами, количество принятых сообщений квитирования не может превышать количество принятых информационных сообщений. Таким образом, отношение принятых сообщений квитирования к принятым информационным сообщениям может составлять от нуля до единицы.
Преимущество вышеописанного способа состоит в том, что надежность ячеистой сети повышается, и что средняя перегрузка снижается.
Согласно варианту осуществления настоящего изобретения, этап приема упомянутого количества информационных сообщений содержит определение, упомянутым узлом ячеистой сети, что принятое сообщение является информационным сообщением, посредством идентификации, в упомянутом принятом сообщении, любого из поля DST пункта назначения на сетевом уровне, которое является одноцелевым адресом, бита CTL индикации сетевого управляющего сообщения на сетевом уровне, заданного равным нулю, и/или битового поля SEG индикации сегмента нижнего транспортного уровня, заданного равным единице.
Поле DST является 16-битовым значением, которое идентифицирует элемент или элементы, на который(е) направляется протокольный блок данных, PDU, сети. Этот адрес может быть одноцелевым адресом, групповым адресом или виртуальным адресом. Поле DST устанавливается узлом-отправителем и не подвергается влиянию сетевого уровня на узлах, действующих как ретрансляционный узел. Поле CTL является 1-битовое значение, которое используется для определения, является ли сообщение частью управляющего сообщения или сообщения доступа. Если поле CTL установлено равным 0, нижний транспортный PDU содержит сообщение доступа. Старший бит первого октета нижнего транспортного PDU является полем SEG, которое используется для определения, сформатирована ли нижний транспортный PDU как сегментированное или несегментированное сообщение.
Таким образом, бит CTL, установленный равным 0, и бит SEG, установленный равным 1 совместно указывают, что нижний транспортный PDU является сегментированным сообщением доступа. Этот формат определяется уникальным образом для информационных сообщений, отправляемый на конечный узел. Кроме того, узел принимающий сообщение, где бит SEG нижнего транспортного уровня устанавливается равным 1, понимает, что следует ожидать соответствующее сообщение квитирования.
Любое одно или более из вышеупомянутых полей можно проверять для идентификации, что принятое сообщение является информационным сообщением. Однако для повышения устойчивости может быть полезно проверять все вышеупомянутые поля. Дополнительно следует указать, что вышеописанные поля типичны для пакетов Bluetooth mesh.
Когда узел ячеистой сети определяет, что принятое сообщение является информационным сообщением, узел ячеистой сети проверяет, было ли ранее принято узлом одно и то же информационное сообщение. Если оно не было принято, локальная копия может храниться в кэш-памяти, и счетчик активируется для увеличения количества принятых информационных сообщений на 1. Если, после проверки, принимается решение, что информационное сообщение уже было принято узлом, сообщение может игнорироваться.
Можно понять, что отдельный счетчик принятых информационных сообщений поддерживается для сообщений, связанных с разными парами узлов отправитель-получатель. Кроме того, можно указать, что все упомянутые поля вызываются на участке сообщения, не зашифрованном ключом приложения и видимы любому узлу в сети.
Как упомянуто выше, сообщения в ячеистой сети могут защищаться механизмом двухуровневой аутентификации и шифрования. Один ключ используется для защиты полезной нагрузки сетевого уровня и известен всем узлам, принадлежащим сети. Верхний транспортный уровень использует другой ключ для аутентификации и шифрования данных приложения. Этот ключ совместно используется только среди узлов, которые совместно используют одно и то же приложение. С использованием этого принципа, любой промежуточный узел способен по меньшей мере определять, является ли принятое сообщение информационным сообщением, т.е. сообщение, отправляемое от исходного узла ячеистой сети и адресованное конечному узлу ячеистой сети, или сообщение квитирования, т.е. сообщение, отправляемое от конечного узла ячеистой сети и адресованное исходному узлу ячеистой сети, для квитирования приема информационного сообщения.
Согласно варианту осуществления настоящего изобретения, этап приема упомянутого количества сообщений квитирования содержит определение, упомянутым узлом ячеистой сети, что принятое сообщение является сообщением квитирования, посредством идентификации, в упомянутом принятом сообщении, любого из поля CTL сетевого уровня, заданного равным единице, поля SEG нижнего транспортного уровня, заданного равным нулю и/или операционного кода нижнего транспортного уровня, заданного равным нулю.
Аналогично идентификации принятого сообщения в качестве информационного сообщения, принятое сообщение можно идентифицировать как сообщение квитирования посредством проверки одного или более полей из CTL сетевого уровня, SEG нижнего транспортного уровня и/или операционного кода нижнего транспортного уровня. Бит CTL, установленный равным 1, и бит SEG, установленный равным 0, совместно указывают, что нижний транспортный PDU является несегментированным управляющим сообщением. Кроме того, операционный код 0 указывает, что несегментированное управляющее сообщение является сообщением квитирования сегмента. Предпочтительно, операционный код выражен в шестнадцатеричном формате и задан равным 0x00.
Любое одно или более из вышеупомянутых полей можно проверять для идентификации, что принятое сообщение является информационным сообщением. Однако для повышения устойчивости может быть полезно проверять все вышеупомянутые поля. Например, один лишь операционный код 0x00 определяет, что принятое сообщение является сообщением квитирования сегмента, но дополнительная проверка битов CTL и SEG повышает устойчивость способа согласно настоящему изобретению.
Поле BlockACK может присутствовать в блоке пакетных данных, PDU, нижнего транспортного уровня, т.е. сообщении квитирования, которое содержит информацию от том, какие сегменты сегментированного сообщения квитированы. В альтернативе одиночное сообщение квитирования также может квитировать несколько сегментов за один раз, которые могут учитываться при определении количества повторных передач.
Когда узел определяет, что принятое сообщение является сообщением квитирования, узел может проверять, принято ли было ранее узлом то же сообщение квитирования. Если оно не было принято, информационное сообщение, которому соответствует принятое сообщение квитирования, помечается как квитированное и счетчик может активироваться для увеличения количества принятых сообщений квитирования на единицу. Если, после проверки, принимается решение, что информационное сообщение уже было принято узлом, сообщение может игнорироваться.
Можно понять, что отдельный счетчик принятых информационных сообщений может поддерживаться для сообщений, связанных с разными парами узлов отправитель-получатель. Кроме того, можно указать, что все упомянутые поля вызываются на участке сообщения, не зашифрованном ключом приложения и видимы любому узлу в сети.
Согласно варианту осуществления изобретения, этап обновления, упомянутым узлом ячеистой сети, упомянутого количества повторных передач содержит определение, упомянутым узлом ячеистой сети, порога надежности, являющегося отношением упомянутого количества сообщений квитирования к упомянутому количеству информационных сообщений, сравнение, упомянутым узлом ячеистой сети, упомянутого порога надежности с заранее заданным порогом, когда упомянутый определенный порог надежности не равен нулю, и задание упомянутого количество повторных передач равным нулю, когда упомянутый порог надежности равен нулю, и увеличение, упомянутым узлом ячеистой сети, упомянутого количества повторных передач в случае, когда упомянутый порог надежности падает ниже упомянутого заранее заданного порога, и уменьшение упомянутого количества повторных передач в случае, когда упомянутый порог надежности превышает упомянутый заранее заданный порог.
Порог надежности вычисляется как отношение количества принятых сообщений квитирования к количеству принятых информационных сообщений. Поскольку последующие копии информационного сообщения и сообщения квитирования игнорируются, количество принятых сообщений квитирования не может превысить количество принятых информационных сообщений. В результате, порог надежности имеет максимальное значение 1.
Определенный порог надежности сравнивается с заранее заданным порогом. Если порог надежности ниже заранее заданного порога, количество повторных передач увеличивается, и если установлено, что порог надежности выше заранее заданного порога, количество повторных передач уменьшается. Можно понять, что если установлено, что порог надежности равен заранее заданному порогу, количество повторных передач не регулируется.
Если узел имеет слабую линию связи в сети, не все отправляемые им сообщения, могут приниматься соседствующими с ним узлами. Это приведет к низкому значению порога надежности на узле. Поэтому, благодаря увеличению количества повторных передач, вероятность приема сообщения соседними узлами увеличивается. Аналогично, если узел имеет хорошую линию связи в сети, в результате чего, порог надежности превышает заранее заданный порог, желательно снижать трафик в сети и, таким образом, количество повторных передач уменьшается для уменьшения количества избыточных сообщений в сети.
Кроме того, при увеличении количества повторных передач, можно задать максимальный предел, сверх которого количество повторных передач больше не увеличивается. В таком случае, узел дополнительно проверяет, превышает ли количество повторных передач максимальный предел, и если да, устанавливает количество повторных передач равным максимальному пределу. Аналогично, минимальное количество повторных передач можно задать равным 1. Таким образом, каждый узел повторно передает сообщение по меньшей мере один раз. В таком случае, узел проверяет, после обновления количество повторных передач, меньше ли количество повторных передач, чем 1, и в этом случае количество повторных передач устанавливается равным 1.
В качестве особого случая можно рассматривать сценарий, в котором порог надежности равен нулю. Такая ситуация может возникнуть, когда узел не принимает никаких сообщений квитирования для принятых информационных сообщений. Такая ситуация возникает из-за того, что узел не находится на пути между исходным узлом и конечным узлом. В этой ситуации узлу не имеет смысла рассылать принятые сообщения, таким образом, увеличивая трафик в сети. Таким образом, если порог надежности равен нулю, количество повторных передач также устанавливается равным нулю. Поэтому на этапе обновления количество повторных передач, можно задать четыре исхода:
i. Если порог надежности равен нулю, то количество повторных передач устанавливается равным нуль.
ii. Если порог надежности больше нуля, но ниже заранее заданного порога, то количество повторных передач увеличивается на 1, возможно, ограничиваясь заданным максимальным количеством повторных передач.
iii. Если порог надежности равен заранее заданному порогу, количество повторных передач не изменяется.
iv. Если порог надежности больше заранее заданного порога, то количество передач уменьшается на 1, возможно, ограничиваясь минимальным количеством повторных передач - обычно 1.
Заметим, что количество повторных передач может быть установлено равным нулю всякий раз, когда определенный порог надежности равен нулю. Такая мера предосторожности может предприниматься временно во избежание полной остановки сети. Таким образом, количество повторных передач может быть установлено равным нулю в течение конкретного времени ожидания и по истечении времени ожидания, количество повторных передач может снова устанавливаться равным значению, принятому по умолчанию.
Специалисту в данной области техники очевидно, что конкретный исход, в котором порог надежности равен заранее определенному порогу можно объединять с любым из исходов, указанных в пункте ii или iv.
Согласно варианту осуществления, заранее заданный порог составляет от 0,7 до 0,9, предпочтительно около 0,8. Это гарантирует, что большинство рассылаемых сообщений квитируется и в то же время гарантирует, что трафик в сети не слишком высок.
Согласно варианту осуществления настоящего изобретения, узел ячеистой сети содержит память, и при этом упомянутый способ содержит этапы сохранения, упомянутым узлом ячеистой сети, любых принятых информационных сообщений в упомянутой памяти, и коррелирования, упомянутым узлом ячеистой сети, любого принятого сообщения квитирования с информационными сообщениями, хранящимися в упомянутой памяти.
Как рассмотрено выше, может быть полезно поддерживать реестр принятых сообщений для каждой пары узлов отправителя-получателя и помечать эти сообщения как квитированные после приема соответствующего сообщения квитирования.
Согласно варианту осуществления изобретения, сеть является сетью типа Bluetooth Mesh. Хотя принципы настоящего изобретения можно применять к проводной или беспроводной ячеистой сети любого типа, сеть предпочтительно является сетью типа Bluetooth Mesh.
В соответствии с настоящим изобретением, разные аспекты, применимые к вышеупомянутым примерам способов, включая их преимущества, соответствуют аспектам, применимым к узлам ячеистой сети.
Во втором аспекте изобретения, предусмотрен узел ячеистой сети для обновления количества повторных передач для упомянутого узла ячеистой сети в ячеистой сети, содержащей множество узлов ячеистой сети, причем упомянутое количество повторных передач указывает, насколько часто упомянутый узел ячеистой сети повторно передает принятые сообщения в упомянутой ячеистой сети, причем упомянутый узел ячеистой сети содержит приемное оборудование для приема некоторого количества информационных сообщений, причем каждое из упомянутых информационных сообщений отправляется из одного и того же исходного узла ячеистой сети и адресовано одному и тому же конечному узлу ячеистой сети в упомянутой ячеистой сети. Узел дополнительно содержит передающее оборудование для передачи каждого из упомянутого количества информационных сообщений на основе упомянутого количества повторных передач. Приемное оборудование дополнительно выполнено с возможностью приема некоторого количества сообщений квитирования, причем каждое сообщение квитирования отправляется из упомянутого RD узла ячеистой сети и квитирует прием конкретного информационного сообщения из упомянутого первого количества информационных сообщений, и при этом упомянутый узел ячеистой сети дополнительно содержит процессор, выполненный с возможностью обновления упомянутого количества повторных передач на основе упомянутого количества информационных сообщений и на основе упомянутого количества сообщений квитирования.
Преимущества первого аспекта изобретения, предусматривающего способ обновления количества повторных передач для узла ячеистой сети в ячеистой сети, также, по существу, составляют часть второго аспекта изобретения.
В примере согласно второму аспекту изобретения, приемное оборудование дополнительно выполнено с возможностью определения, что принятое сообщение является информационным сообщением, посредством идентификации, в упомянутом принятом сообщении, любого из поля DST пункта назначения на сетевом уровне, которое является одноцелевым адресом, поля CTL сетевого уровня, заданного равным нулю, и/или поля SEG нижнего транспортного уровня, заданного равным единице.
Согласно примеру второго аспекта изобретения, приемное оборудование дополнительно выполнено с возможностью определения, что принятое сообщение является сообщением квитирования, посредством идентификации, в упомянутом принятом сообщении, любого из поля CTL сетевого уровня, заданного равным единице поля SEG нижнего транспортного уровня, заданного равным нулю, и/или операционного кода нижнего транспортного уровня, заданного равным нулю.
Согласно варианту осуществления второго аспекта изобретения, процессор дополнительно выполнен с возможностью определения порога надежности, являющегося отношением упомянутого количества сообщений квитирования к упомянутому количеству информационных сообщений, сравнения упомянутого порога надежности с заранее заданным порогом, когда упомянутый определенный порог надежности не равен нулю, и задания упомянутого количества повторных передач равным нулю, когда упомянутый порог надежности равен нулю, увеличения упомянутого количества повторных передач в случае, когда упомянутый порог надежности падает ниже упомянутого заранее заданного порога, и уменьшения упомянутого количества повторных передач в случае, когда упомянутый порог надежности превышает упомянутый заранее заданный порог.
Согласно варианту осуществления второго аспекта изобретения, заранее заданный порог составляет от 0,7 до 0,9, предпочтительно около 0,8.
Согласно примеру второго аспекта изобретения, узел ячеистой сети содержит память, и при этом упомянутый процессор дополнительно выполнен с возможностью сохранения, упомянутым узлом ячеистой сети, любых принятых информационных сообщений в упомянутой памяти, и коррелирования, упомянутым узлом ячеистой сети, любого принятого сообщения квитирования с информационными сообщениями, хранящимися в упомянутой памяти.
Согласно третьему аспекту изобретения, предусмотрен долговременный машиночитаемый носитель данных, содержащий инструкции, которые, при их выполнении на по меньшей мере одном процессоре, предписывают по меньшей мере одному процессору осуществлять объясненные выше способы.
В этом аспекте изобретения, предусмотрен машиночитаемый носитель данных с инструкциями, которые позволяют системе, куда загружаются упомянутые носители данных, осуществлять способ согласно настоящему изобретению.
Вышеупомянутый и другие признаки и преимущества изобретения явствуют из нижеследующего описания, приведенного со ссылкой на прилагаемые чертежи. В чертежах аналогичные ссылочные позиции обозначают идентичный части или части, осуществляющие идентичные или сходные функции или операции.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
фиг. 1 схематически демонстрирует осуществление способа согласно настоящему изобретению
фиг. 2 схематически демонстрирует осуществление способа согласно настоящему изобретению
фиг. 3 - схема, демонстрирующая пример сетевого элемента согласно настоящему изобретению
ПОДРОБНОЕ ОПИСАНИЕ
На фиг. 1 показана схема 10, демонстрирующая различные этапы, осуществляемые узлом в ячеистой сети для осуществления способа согласно настоящему изобретению. На этапе приема 10 узел ячеистой сети принимает несколько информационных сообщений. В ячеистой сети, содержащей множество узлов, существует исходный узел ячеистой сети. Исходный узел ячеистой сети может альтернативно именоваться узлом-отправителем, исходным узлом или исходным узлом ячеистой сети. Исходный узел ячеистой сети может дополнительно осуществлять связь с сервером, на котором выполняется приложение, который инициирует запрос или отправляет информацию от приложения на один или более узлов в сети.
Исходный узел ячеистой сети отправляет информацию на конечный узел ячеистой сети. Конечный узел ячеистой сети также может именоваться конечным узлом. При отправке информации от исходного узла ячеистой сети на конечный узел ячеистой сети, она обычно отправляется не напрямую, но через промежуточные узлы в сети. Информация также может разбиваться на пакеты или сообщения меньших размеров для более эффективно использования полосы. Все отправляемые сообщения содержат по меньшей мере сведения об исходном узле ячеистой сети, а также конечном узле ячеистой сети совместно с информацией, подлежащей отправке.
На этапе приема 20 узел может дополнительно идентифицировать сообщения как информационное сообщение. Такая идентификация может осуществляться посредством проверки одного или более полей из пункта назначения DST сетевого уровня, CTL сетевого уровня и/или SEG нижнего транспортного уровня. Если принятое сообщение идентифицировано как информационное сообщение, проверка может осуществляться процессором узла для определения, что принятое сообщение ранее не принималось. В случае идентификации уникального информационного сообщения, принятое информационное сообщение может сохраняться локально в памяти, доступной на узле, и/или может активироваться счетчик для увеличения количества принятых сообщений на 1.
В ячеистой сети сообщение распространяется от исходного узла ячеистой сети к конечному узлу ячеистой сети в процессе, известном как лавинообразная маршрутизация. При лавинообразной маршрутизации каждый узел, принимающий информационное сообщение, рассылает его. Таким образом на следующем этапе, этапе передачи 30, узел передает принятое информационное сообщение на все соседствующие с ним узлы. Можно указать, что сообщение должно передаваться узлом определенное число раз. Задача изобретения состоит в том, чтобы обеспечить возможность динамически регулировать кратность передачи сообщения конкретным узлом.
До передачи узел может проверять, было ли сообщение передано заданное число раз. На дополнительном этапе приема 40, узел принимает сообщения квитирования для соответствующих информационных сообщений, отправленных узлом. Приняв сообщение квитирования, узел проверяет, какому информационному сообщению соответствует принятое сообщение квитирования. После идентификации узел может дополнительно помечать информационное сообщение как квитированное и/или активировать счетчик для увеличения количества принятых сообщений квитирования на 1.
Узел может проверять данные, присутствующие в любом из поля CTL сетевого уровня, поля SEG нижнего транспортного уровня и/или операционного кода нижнего транспортного уровня для определения, что принятое сообщение является сообщением квитирования. Можно понять, что если квитирование конкретного информационного сообщения уже было принято, последующие принимаемые сообщения квитирования для того же информационного сообщения могут игнорироваться.
На этапе обновления 50, узел обновляет количество повторных передач, осуществляемых узлом. Такое обновление основано на количестве принятых информационных сообщений и количестве принятых сообщений квитирования узлом для конкретной пары RO - конечные узлы ячеистой сети. Специалисту в данной области техники очевидно, что отдельные счетчики, или отдельные записи, указывающие счетчик, нужно поддерживать для отсчета количества принятых информационных сообщений и сообщений квитирования для каждой пары RO - конечный узел ячеистой сети.
Точная последовательность этапов, осуществляемых узлом, представлена в блок-схеме операций 100, показанной на фиг. 2. На этапе 101 сообщение принимается узлом в ячеистой сети. На этапе 102 узел определяет, сохранено ли уже сообщение в кэш-памяти узла. Если сообщение уже сохранено в кэше, то сообщение игнорируется 103. Это означает, что если сообщение, независимо от того, является ли оно информационным сообщением или сообщением квитирования, уже было принято на узле, оно просто отброшенный без какой-либо дополнительной обработки.
Если же сообщения еще нет в кэш-памяти, оно сохраняется 104 в кэш-памяти. На следующем этапе определения 105, узел определяет, является ли принятое сообщение информационным сообщением. Это может определяться посредством проверки одного или более полей из пункта назначения DST сетевого уровня, которое является одноцелевым адресом, поля CTL сетевого уровня, заданного равным нулю, и/или поля SEG нижнего транспортного уровня, заданного равным единице.
Если узел определяет, что принятое сообщение не является информационным сообщением, то узел переходит к проверке 106, является ли принятое сообщение сообщением квитирования. Это может определяться посредством проверки одного или более полей из поля CTL сетевого уровня, заданного равным единице, поля SEG нижнего транспортного уровня, заданного равным нулю, и/или операционного кода нижнего транспортного уровня, заданного равным нулю. Если сообщение также не является сообщением квитирования, никаких действий не осуществляется 107. Если принятое сообщение является сообщением квитирования, соответствующее информационное сообщение помечается 108 как квитированное и дополнительно счетчик активируется для увеличения количества принятых сообщений квитирования.
Если на этапе 105 принимается решение, что принятое сообщение является информационным сообщением, активируется 109 таймер ожидания соответствующего сообщения квитирования, и на этапе 110 обновляется статистика надежности для конкретной пары RO-конечный узел ячеистой сети. Специалисту в данной области техники очевидно, что пара RO-конечный узел ячеистой сети, для которой обновляются статистика надежности, является парой RO-конечный узел ячеистой сети, которая соответствует принятому информационному сообщению. Кроме того на этапе 109, после определения, что принятое сообщение является информационным сообщением, количество принятых информационных сообщений также может увеличиваться на 1.
На этапе 111, производится проверка, приняты ли какие-либо сообщения квитирования для информационных сообщений, передаваемых узлом. Если ни одного сообщения квитирования для конкретной пары RO-конечный узел ячеистой сети не принято узлом, делается вывод, что узел не находится на пути, образованном парой RO-конечный узел ячеистой сети. Таким образом, имеет смысл остановить передачу всех принятых сообщений для конкретной пары RO-конечный узел ячеистой сети и, таким образом, снизить трафик в сети и сэкономить энергию. Таким образом количество передач для соответствующей пары RO-конечный узел ячеистой сети устанавливается 112 равным нулю.
Если же сообщения квитирования принимаются, вычисляется порог надежности. Порог надежности может задаваться просто как отношение количества принятых сообщений квитирования к количеству принятых информационных сообщений. На этапе 113 производится проверка, ниже ли порог надежности заранее определенного порога. Если порог надежности ниже заранее определенного порога, то количество повторных передач увеличивается 114 на единицу. Если же порог надежности больше заранее определенного порога, то количество повторных передач уменьшается 115 на единицу.
Хотя это не показано на фигуре, на дополнительном этапе, если порог надежности равен заранее определенному порогу, количество повторных передач может не изменяться.
На фиг. 3 позиция 200 обозначает сетевой элемент для осуществления способа согласно настоящему изобретению. Таким сетевым элементом 200 может быть узел, например, в ячеистой сети узлов. Такой узел 200 содержит средство 201, 2012 приема, предназначенное для приема сообщений от соседних узлов сети. Принятые сообщения могут быть информационными сообщениями или сообщениями квитирования. Узел дополнительно содержит средство передачи для передачи принятых информационных сообщений на соседние узлы.
Узел 200 содержит процессор, выполненный с возможностью выполнения способа согласно настоящему изобретению. Кроме того, узел 200 также содержит память 206. Память 206 выполнена с возможностью хранения компьютерного программного продукта, который, при его исполнении процессором, предписывает узлу осуществлять способ согласно настоящему изобретению. Память 206 также может предназначаться для хранения копий принятых сообщений и поддержания счетчика принятых информационных сообщений и сообщений квитирования для каждой пары RO-конечный узел ячеистой сети в сети.
Специалисты в данной области техники могут понять и реализовать разнообразные вариации раскрытых примеров заявленного изобретения на основе чертежей, описания изобретения и нижеследующей формулы изобретения. В формуле изобретения слово "содержащий" не исключает других элементов или этапов, и употребление их названий в единственном числе не исключает возможности наличия множества таких элементов или этапов. Одиночный процессор или другой модуль может выполнять функции нескольких элементов, упомянутых в формуле изобретения. Лишь тот факт, что некоторые меры упомянуты в разных зависимых пунктах формулы изобретения, не говорит о том, что сочетание этих мер нельзя выгодно использовать. Компьютерная программа может хранятся/распространяться на подходящем носителе, например, оптическом носителе данных или твердотельном носителе, поставляемом совместно с другим оборудованием или как его часть, но также может распространяться в других формах, например, через интернет или другие проводные или беспроводные системы связи. Никакие ссылочные позиции в формуле изобретения не следует рассматривать в порядке ограничения ее объема.
Настоящее изобретение не ограничивается вышеприведенными примерами и допускает модификацию и расширение специалистами в данной области техники за пределы объема настоящего изобретения, раскрытого в нижеследующей формуле изобретения без необходимости применения творческих способностей.