Способ и устройство для сжатия заголовка сегментной маршрутизации, способ и устройство для обработки услуги
METHOD AND DEVICE FOR SEGMENT ROUTING HEADER COMPRESSION, METHOD AND DEVICE FOR SERVICE PROCESSING

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
[0001] По настоящей заявке испрашивается приоритет согласно заявке на выдачу патента Китая №202010285171.9, поданной 13 апреля 2020 года, содержание которой полностью включено в настоящее описание посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
[0002] Варианты осуществления настоящего изобретения относятся к области техники беспроводной связи и, в частности, к способу и устройству для сжатия заголовка сегментной маршрутизации, способу и устройству для обработки услуги, компьютерному устройству и машиночитаемому носителю.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
[0003] Сегментная маршрутизация (SR, Segment Routing) представляет собой технологию для реализации маршрутизации от источника. Протокол RFC8402 определяет два стандартных механизма SR: SR-MPLS, основанный на плоскости пересылки согласно многопротокольной коммутации на основе меток (MPLS, Multi-Protocol Label Switching), и SRv6, основанный на плоскости пересылки согласно Интернет-протоколу версии 6 (IPv6, Internet Protocol Version 6). Протокол SRv6 может быть реализован непосредственно на основе расширенного заголовка маршрутизации IPv6 без дополнительной инкапсуляции, в результате чего реализуется унификация пересылки данных и туннельной пересылки данных Интернет-протокола (IP, Internet Protocol). Между тем, поскольку SRv6 использует идентификатор сегмента (SID, Segment ID) в 128-битном формате, и SID разделяется на две части, а именно: указатель местоположения (Locator) и функция (Function), можно обеспечить гибкое гибридное программирование сети и услуг, благодаря чему технология SRv6 широко распространена в промышленности.
[0004] Однако в решении SRv6 список SID, составленный из последовательности 128-битных SID, используется для описания тракта услуги, что приводит к проблеме значительного увеличения объема служебных данных заголовка пакета. Для устранения этой проблемы в данной области техники было предложено несколько решений, относящихся к сжатию заголовка сегментной маршрутизации (SRH, Segment Routing Header), например решение uSID (draft-filsfils-spring-net-pgm-extension-srv6-usid-02) и традиционное решение сжатого SID (C-SID, Compressed SID) (draft-1i-spring-compressed-srv6-np-00).
[0005] Согласно решению SRv6, пересылающему узлу (Transit) требуется только обрабатывать обычную пересылку данных IPv6, а конечному узлу (Endpoint) требуется обрабатывать заголовок SRH. Однако в указанном решении сжатия заголовка SRH всем конечным узлам требуется использовать формат сжатого SID (при этом согласно решению C-SID использование несжатого формата допускается в конечном узле последнего транзита (hop), но не допускается в промежуточном узле), то есть конечный узел, задействованный в пересылке пакетов IPv6, должен иметь возможность поддерживать сжатый SID, в результате чего в значительной степени возрастают требования к возможностям обработки SRH сетевых узлов и к планированию SID в сети, что в определенной степени ограничивает распространение и применение SRv6.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0006] В соответствии с первым аспектом, варианты осуществления настоящего изобретения предоставляют способ сжатия заголовка сегментной маршрутизации, включающий:
[0007] конфигурирование сжатого идентификатора сегмента или несжатого идентификатора сегмента для каждого узла в тракте сегментной маршрутизации и конфигурирование, для критического узла в тракте сегментной маршрутизации, сжатого идентификатора сегмента, дополнительно обладающего функцией выполнения преобразования типа идентификатора сегмента для идентификатора сегмента, указанного полем Segments Left (SL, оставшиеся сегменты), при этом критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, из двух смежных узлов, конфигурируемых с использованием различных типов идентификаторов сегментов;
[0008] генерацию списка сегментов, содержащего сконфигурированный сжатый идентификатор сегмента и сконфигурированный несжатый идентификатор сегмента;
[0009] генерацию заголовка сегментной маршрутизации пакета услуги, при этом заголовок сегментной маршрутизации пакета услуги содержит список сегментов и поле типа маршрутизации для указания формата заголовка сегментной маршрутизации, причем формат заголовка сегментной маршрутизации соответствует формату сжатого идентификатора сегмента.
[0010] Согласно второму аспекту, варианты осуществления настоящего изобретения также предоставляют способ обработки услуги, применимый к узлам тракта сегментной маршрутизации, причем каждый узел тракта сегментной маршрутизации конфигурируют с использованием сжатого идентификатора сегмента или несжатого идентификатора сегмента, критический узел в тракте сегментной маршрутизации конфигурируют с использованием сжатого идентификатора сегмента, дополнительно обладающего функцией выполнения преобразования типа идентификатора для идентификатора сегмента, указанного SL, и критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, из двух смежных узлов, конфигурируемых с использованием различных типов идентификаторов сегментов, при этом способ включает:
[0011] получение списка сегментов и поля типа маршрутизации для указания формата заголовка сегментной маршрутизации из заголовка сегментной маршрутизации принятого пакета услуги, при этом список сегментов содержит сконфигурированный сжатый идентификатор сегмента и сконфигурированный несжатый идентификатор сегмента;
[0012] обработку текущего идентификатора сегмента в списке сегментов и изменение SL в соответствии с полем типа маршрутизации;
[0013] если текущий узел является критическим узлом, выполнение преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL; и
[0014] пересылку пакета услуги в узел следующего транзита, при этом пакет услуги переносит тип идентификатора сегмента, указанного SL.
[0015] В соответствии с третьим аспектом, варианты осуществления настоящего изобретения также предоставляют устройство для сжатия заголовка сегментной маршрутизации, содержащее первый модуль генерации и второй модуль генерации, при этом
[0016] модуль конфигурирования выполнен с возможностью конфигурирования сжатого идентификатора сегмента или несжатого идентификатора сегмента для каждого узла в тракте сегментной маршрутизации и конфигурирования, для критического узла в тракте сегментной маршрутизации, сжатого идентификатора сегмента, дополнительно обладающего функцией выполнения преобразования типа идентификатора сегмента для идентификатора сегмента, указанного полем Segments Left (SL), при этом критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, из двух смежных узлов, конфигурируемых с использованием различных типов идентификаторов сегментов;
[0017] первый модуль генерации выполнен с возможностью генерации списка сегментов, содержащего сконфигурированный сжатый идентификатор сегмента и сконфигурированный несжатый идентификатор сегмента;
[0018] второй модуль генерации выполнен с возможностью генерации заголовка сегментной маршрутизации пакета услуги, при этом заголовок сегментной маршрутизации пакета услуги содержит список сегментов и поле типа маршрутизации для указания формата заголовка сегментной маршрутизации, и формат заголовка сегментной маршрутизации соответствует формату сжатого идентификатора сегмента.
[0019] Согласно четвертому аспекту, варианты осуществления настоящего изобретения также предоставляют устройство для обработки услуги, применимое к узлам тракта сегментной маршрутизации, причем каждый узел тракта сегментной маршрутизации конфигурируется с использованием сжатого идентификатора сегмента или несжатого идентификатора сегмента, критический узел в тракте сегментной маршрутизации конфигурируется с использованием сжатого идентификатора сегмента, дополнительно обладающего функцией выполнения преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL, и критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, из двух смежных узлов, конфигурируемых с использованием различных типов идентификаторов сегментов; и устройство для обработки услуги содержит модуль получения, модуль обработки, модуль преобразования и модуль пересылки, при этом
[0020] модуль получения выполнен с возможностью получения списка сегментов и поля типа маршрутизации для указания формата заголовка сегментной маршрутизации из заголовка сегментной маршрутизации принятого пакета услуги, и список сегментов содержит сконфигурированный сжатый идентификатор сегмента и сконфигурированный несжатый идентификатор сегмента;
[0021] модуль обработки выполнен с возможностью обработки текущего идентификатора сегмента в списке сегментов и изменения SL в соответствии с полем типа маршрутизации;
[0022] модуль преобразования выполнен с возможностью преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL, если текущий узел является критическим узлом; и
[0023] модуль пересылки выполнен с возможностью пересылки пакета услуги в узел следующего транзита, при этом пакет услуги переносит тип идентификатора сегмента, указанного SL.
[0024] В соответствии с пятым аспектом, варианты осуществления настоящего изобретения также предоставляют компьютерное устройство, содержащее один или более процессоров и запоминающее устройство, в котором хранится одна или более программ, при исполнении которых одним или более процессорами обеспечивается выполнение одним или более процессорами способа сжатия заголовка сегментной маршрутизации или способа обработки услуги, представленных описанными выше вариантами осуществления изобретения.
[0025] В соответствии с шестым аспектом, варианты осуществления настоящего изобретения также предоставляют машиночитаемый носитель, на котором хранится компьютерная программа, при исполнении которой осуществляется способ сжатия заголовка сегментной маршрутизации или способ обработки услуги, представленные описанными выше вариантами осуществления изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0026] На фиг. 1 показана блок-схема способа сжатия заголовка сегментной маршрутизации в соответствии с вариантом осуществления настоящего изобретения;
[0027] на фиг. 2 показана блок-схема способа обработки услуги в соответствии с вариантом осуществления настоящего изобретения;
[0028] на фиг. 3 показана блок-схема изменения SL в соответствии с полем типа маршрутизации согласно варианту осуществления настоящего изобретения;
[0029] на фиг. 4 показана схема сетевой топологии, представленная конкретным вариантом 1 осуществления настоящего изобретения;
[0030] на фиг. 5 показана структурная схема SRH в направлении A->Z передачи пакета услуги, представленная конкретным вариантом 1 осуществления настоящего изобретения;
[0031] на фиг. 6 показана структурная схема SRH в направлении Z->A передачи пакета услуги, представленная конкретным вариантом 1 осуществления настоящего изобретения;
[0032] на фиг. 7 показана схема процесса обработки услуги в направлении А->Z передачи пакета услуги, представленная конкретным вариантом 1 осуществления настоящего изобретения;
[0033] на фиг. 8 показана схема процесса обработки услуги в направлении Z->А передачи пакета услуги, представленная конкретным вариантом 1 осуществления настоящего изобретения;
[0034] на фиг. 9 показана схема сетевой топологии, представленная конкретным вариантом 2 осуществления настоящего изобретения;
[0035] на фиг. 10 показана структурная схема SRH_Ext в направлении A->Z передачи пакета услуги, представленная конкретным вариантом 2 осуществления настоящего изобретения;
[0036] на фиг. 11 показана структурная схема SRH_Ext в направлении Z->A передачи пакета услуги, представленная конкретным вариантом 2 осуществления настоящего изобретения;
[0037] на фиг. 12 показана схема процесса обработки услуги в направлении A->Z передачи пакета услуги, представленная конкретным вариантом 2 осуществления настоящего изобретения;
[0038] на фиг. 13 показана схема процесса обработки услуги в направлении Z->A передачи пакета услуги, представленная конкретным вариантом 2 осуществления настоящего изобретения;
[0039] на фиг. 14 показана структурная схема SRH в направлении A->Z передачи пакета услуги, представленная конкретным вариантом 3 осуществления настоящего изобретения;
[0040] на фиг. 15 показана структурная схема SRH в направлении Z->A передачи пакета услуги согласно варианту 3 осуществления настоящего изобретения;
[0041] на фиг. 16 показана схема процесса обработки услуги в направлении A->Z передачи пакета услуги, представленная конкретным вариантом 3 осуществления настоящего изобретения;
[0042] на фиг. 17 показана схема процесса обработки услуги в направлении Z->A передачи пакета услуги, представленная конкретным вариантом 3 осуществления настоящего изобретения;
[0043] на фиг. 18 показана структурная схема устройства для сжатия заголовка сегментной маршрутизации в соответствии с вариантом осуществления настоящего изобретения;
[0044] на фиг. 19 показана структурная схема устройства для обработки услуги в соответствии с вариантом осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0045] Далее более подробно описываются примеры осуществления настоящего изобретения со ссылкой на прилагаемые чертежи, однако эти примеры могут быть реализованы в различных формах, и возможности реализации не должны ограничиваться приведенными в этом описании вариантами. Напротив, целью представления этих вариантов осуществления изобретения является более тщательное и полное описание настоящего изобретения и предоставление специалистам в этой области техники возможности понять изобретение.
[0046] В данном описании сочетание "и/или" используется для обозначения любой комбинации или всех комбинаций одного или более связанных перечисляемых элементов.
[0047] Применяемая терминология используется только для описания конкретных вариантов осуществления изобретения и не предназначена для ограничения изобретения. В этом документе формы единственного числа также включают формы множественного числа, если из контекста явно не следует иное. Кроме того, следует понимать, что термины "содержит" и/или "состоящий из", используемые в этом описании, указывают на наличие конкретных признаков, совокупности, шагов, операций, элементов и/или компонентов, но не исключают наличие или добавление одного или более других признаков, совокупности, шагов, операций, элементов, компонентов и/или групп компонентов.
[0048] Описываемые варианты осуществления изобретения могут приводиться со ссылкой на виды сверху и/или поперечные сечения на основе идеальных диаграмм настоящего изобретения. Соответственно, типовые иллюстрации могут быть изменены согласно технике изготовления и/или допускам. Таким образом, варианты осуществления настоящего изобретения не ограничены теми, что показаны на чертежах, но включают модифицированные варианты, основанные на конфигурациях, полученных в процессе производства.
[0049] Если не указано иное, все термины (включая технические и научные термины), используемые в этом описании, имеют значение, общепринятое в данной области техники. Кроме того, следует принимать во внимание, что термины, определенные в общих словарях, следует толковать как имеющие значения, согласующиеся с их значениями в контексте соответствующей области техники и настоящего описания, и эти термины не должны рассматриваться как имеющие идеализированные или слишком формальные значения, если явно не указано иное.
[0050] Согласно варианту осуществления настоящего изобретения предлагается способ сжатия заголовка сегментной маршрутизации. Как показано на фиг. 1, способ сжатия заголовка сегментной маршрутизации включает описываемые ниже шаги S11-S13.
[0051] S11: конфигурирование сжатого идентификатора сегмента или несжатого идентификатора сегмента для каждого узла в тракте сегментной маршрутизации и конфигурирование, для критического узла в тракте сегментной маршрутизации, сжатого идентификатора сегмента, дополнительно обладающего функцией выполнения преобразования типа идентификатора сегмента для идентификатора сегмента, указанного полем Segments Left (SL).
[0052] Критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, из двух смежных узлов, конфигурируемых с использованием различных типов идентификаторов сегментов. Согласно варианту осуществления настоящего изобретения, тип идентификаторов сегментов включает сжатые идентификаторы сегментов и несжатые идентификаторы сегментов. Например, тракт сегментной маршрутизации формируют следующим образом: узел А-узел В-узел С, при этом сжатый идентификатор сегмента конфигурируют для узла А и узла В, а несжатый идентификатор сегмента конфигурируют для узла С. Типы идентификаторов сегментов узла В и узла С различны, и узел В конфигурируют с использованием сжатого идентификатора сегмента. Следовательно, узел В является критическим узлом в тракте сегментной маршрутизации.
[0053] На этом шаге устройство для сжатия заголовка сегментной маршрутизации конфигурирует либо сжатый идентификатор сегмента, либо несжатый идентификатор сегмента для каждого узла в тракте сегментной маршрутизации, а также конфигурирует для критического узла этого тракта сжатый идентификатор сегмента, дополнительно обладающий функцией выполнения преобразования типа идентификатора сегмента для идентификаторов сегментов, указанных полем Segments Left, то есть SL. То есть существуют два типа сжатых идентификаторов сегментов: один тип представляет сжатые идентификаторы сегментов, которые конфигурируются для некритических узлов и могут быть реализованы с использованием существующих сжатых идентификаторов сегментов; другой тип представляет сжатый идентификатор сегмента, который конфигурируется для критического узла и обладает функцией выполнения преобразования типа идентификатора сегмента для идентификаторов сегментов, указанных SL, например, такой идентификатор может быть реализован посредством поля функции, определяющей идентификатор сегмента.
[0054] После того как устройство для сжатия заголовка сегментной маршрутизации сконфигурирует для соответствующих узлов сжатые идентификаторы сегментов и несжатые идентификаторы сегментов, каждый узел может распространить сжатые идентификаторы сегментов и несжатые идентификаторы сегментов на весь домен SR посредством протокола внутреннего шлюза (IGP, Interior Gateway Protocol).
[0055] S12: генерация списка сегментов, содержащего сконфигурированный сжатый идентификатор сегмента и сконфигурированный несжатый идентификатор сегмента.
[0056] На этом шаге узел-источник тракта сегментной маршрутизации вычисляет и генерирует список сегментов, и список сегментов сжимают в сжатые идентификаторы сегментов или несжатые идентификаторы сегментов соответствующих узлов согласно требованиям программирования сети. В списке сегментов идентификаторы сегментов узлов в тракте сегментной маршрутизации перечислены в порядке пересылки пакетов услуги.
[0057] S13: генерация заголовка сегментной маршрутизации пакета услуги, при этом заголовок сегментной маршрутизации пакета услуги содержит список сегментов и поле типа маршрутизации для указания формата заголовка сегментной маршрутизации, причем формат заголовка сегментной маршрутизации соответствует формату сжатого идентификатора сегмента.
[0058] На этом шаге список сегментов переносят в заголовке сегментной маршрутизации (SRH) пакета услуги. Заголовок сегментной маршрутизации пакета услуги также содержит поле типа маршрутизации. Поле типа маршрутизации используют для указания формата заголовка сегментной маршрутизации. Формат заголовка сегментной маршрутизации соответствует формату сжатого идентификатора сегмента, и способы изменения SL, определяемые различными форматами заголовка сегментной маршрутизации, различны. Далее более подробно описываются способы изменения SL, определяемые различными форматами заголовка сегментной маршрутизации.
[0059] Согласно способу сжатия заголовка сегментной маршрутизации, представленному посредством вариантов осуществления настоящего изобретения, каждый узел в тракте сегментной маршрутизации конфигурируют с использованием сжатого идентификатора сегмента или несжатого идентификатора сегмента, и для критического узла дополнительно конфигурируют сжатый идентификатор сегмента, обладающий функцией выполнения преобразования типа идентификатора сегмента для идентификаторов сегментов, указанным набором SL, при этом критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, из двух смежных узлов, конфигурируемых с использованием различных типов идентификаторов сегментов; генерируют список сегментов, содержащий сконфигурированные сжатые идентификаторы сегментов и несжатые идентификаторы сегментов; генерируют заголовок сегментной маршрутизации пакета услуги, при этом заголовок сегментной маршрутизации пакета услуги содержит список сегментов и поле типа маршрутизации для указания формата заголовка сегментной маршрутизации, причем формат заголовка сегментной маршрутизации соответствует формату сжатого идентификатора сегмента. Согласно варианту осуществления настоящего изобретения путем выполнения преобразования типа идентификатора сегмента и определения формата заголовка сегментной маршрутизации, соответствующего формату сжатого идентификатора сегмента, можно добиться гибридного сетевого взаимодействия и гибридного программирования узлов, конфигурируемых с использованием сжатых идентификаторов сегментов, и узлов, конфигурируемых с использованием несжатых идентификаторов сегментов, благодаря чему маршрутизация SRv6 становится применимой к более сложной среде сетевого взаимодействия, что способствует быстрой установке средств SRv6 в существующей сети.
[0060] Согласно некоторым вариантам осуществления изобретения критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, и узел следующего транзита является узлом, конфигурируемым с использованием несжатого идентификатора сегмента. Например, тракт сегментной маршрутизации формируют следующим образом: узел А-узел В-узел С, тракт передачи пакета услуги представляет собой тракт А-В-С, при этом узел А и узел В конфигурируют с использованием сжатых идентификаторов сегментов, узел С конфигурируют с использованием несжатого идентификатора сегмента, и узел В является критическим узлом. Соответственно, функция выполнения преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL, является первой функцией преобразования, предназначенной для преобразования типа идентификатора сегмента, указанного SL, в несжатые идентификаторы сегментов.
[0061] Согласно некоторым вариантам осуществления изобретения критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, и узел предшествующего транзита является узлом, уже сконфигурированным с использованием несжатого идентификатора сегмента. Например, тракт сегментной маршрутизации формируют следующим образом: узел А-узел В-узел С, тракт передачи пакета услуги представляет собой тракт С-В-А, при этом узел А и узел В конфигурируют с использованием сжатых идентификаторов сегментов, узел С конфигурируют с использованием несжатого идентификатора сегмента, и узел В является критическим узлом. Соответственно, функция выполнения преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL, является второй функцией преобразования, предназначенной для преобразования типа идентификатора сегмента, указанного SL, в сжатые идентификаторы сегментов.
[0062] Согласно некоторым вариантам осуществления изобретения заголовок сегментной маршрутизации пакета услуги может также содержать поле флага (Flag) для указания типа идентификатора сегмента, указанного SL. Например, если значение поля флага равно 1, это указывает на то, что идентификатор сегмента, указанный текущим SL, является сжатым идентификатором сегмента; если значение поля флага равно 0, это указывает на то, что идентификатор сегмента, указанный текущим SL, является несжатым идентификатором сегмента.
[0063] Первая функция преобразования включает изменение значения поля флага в заголовке сегментной маршрутизации принятого пакета услуги на значение, представляющее флаг несжатого сегмента (то есть Flag=0). То есть первая функция преобразования определена как функция End.uzip, которая используется для реализации обработки преобразования сжатого идентификатора сегмента в несжатый идентификатор сегмента, при этом обработка заключается в следующем: изменение флага для изменения SL для указания несжатого идентификатора сегмента. Следует отметить, что обработка End.uzip может также включать операцию End сжатого идентификатора сегмента, при этом различным сжатым идентификаторам сегментов соответствуют различные схемы операции End, то есть вариант осуществления настоящего изобретения интегрирует схемы сжатия для различных идентификаторов сегментов.
[0064] Вторая функция преобразования включает изменение значения поля флага в заголовке сегментной маршрутизации принятого пакета услуги на значение, указывающее сжатый идентификатора сегмента (то есть Flag=1). То есть вторая функция преобразования определена как функция End.zip, которая используется для реализации обработки преобразования несжатого идентификатора сегмента в сжатый идентификатор сегмента, при этом обработка заключается в следующем: изменение флага для изменения SL для указания сжатого идентификатора сегмента. Следует отметить, что обработка End.zip может также включать операцию End сжатого идентификатора сегмента, при этом различные сжатые идентификаторы сегментов имеют различные схемы операции End, то есть вариант осуществления настоящего изобретения интегрирует схемы сжатия для различных идентификаторов сегментов.
[0065] Согласно некоторым вариантам осуществления изобретения значение поля типа маршрутизации является первым заранее заданным значением, например Routing type = 6. Соответственно, заголовок сегментной маршрутизации пакета услуги также содержит поле расширения (SRH_Ext), которое используется для указания первого формата заголовка сегментной маршрутизации, при этом выполняют следующую функцию: после завершения обработки сжатого идентификатора сегмента уменьшение значения SL на n, где n - отношение длины сжатого идентификатора сегмента к длине поддерживаемого самого короткого сжатого идентификатора сегмента, при этом n является положительным целым числом; и после завершения обработки несжатого идентификатора сегмента уменьшение значения SL на m, где m - отношение длины несжатого идентификатора сегмента к длине поддерживаемого самого короткого сжатого идентификатора сегмента, при этом m является положительным целым числом.
[0066] То есть в заголовке сегментной маршрутизации пакета услуги может использоваться новое поле, определяемое как SRHExt. Поле SRHExt может поддерживать гибридное программирование сжатых идентификаторов сегментов и несжатых идентификаторов сегментов, даже программирование сжатых идентификаторов сегментов с различными длинами. В этом случае операцию SL переопределяют в соответствии с самой короткой длиной сжатых идентификаторов сегментов. Например, если длина поддерживаемого самого короткого сжатого идентификатора сегмента составляет 16 битов, то поле SRH_Ext определяет следующие функции:
[0067] после завершения обработки 16-битного сжатого идентификатора сегмента уменьшение SL на 1 в операции End;
[0068] после завершения обработки 32-битного сжатого идентификатора сегмента уменьшение SL на 2 в операции End;
[0069] после завершения обработки 64-битного сжатого идентификатора сегмента уменьшение SL на 4 в операции End; и
[0070] после завершения обработки несжатого идентификатора сегмента (несжатого идентификатора сегмента длиной 128 битов) уменьшение SL на 8 в операции End.
[0071] Согласно некоторым вариантам осуществления изобретения значение поля типа маршрутизации является вторым заранее заданным значением, например, Routing type = 4. В этом случае заголовок сегментной маршрутизации продолжает использовать текущее поле типа маршрутизации, однако требуется переопределить функцию поля типа маршрутизации для обеспечения совместимости как со сжатыми, так и с несжатыми идентификаторами сегментов. Более конкретно, поле типа маршрутизации используют для указания второго формата заголовка сегментной маршрутизации, который содержит р сжатых идентификаторов сегментов, занимающих биты длиной в t несжатых идентификаторов сегментов, где t - положительное целое число, р - значение, полученное путем округления отношения длины несжатого идентификатора сегмента к длине сжатого идентификатора сегмента. Если общая длина р сжатых идентификаторов сегментов меньше общей длины t несжатых идентификаторов сегментов, используют зарезервированные байты для заполнения оставшейся длины. Соответственно, поле типа маршрутизации используют для выполнения следующей функции: уменьшение SL на 1 после завершения обработки всех сжатых идентификаторов сегментов в пределах длины несжатого идентификатора сегмента. Следует отметить, что поле типа маршрутизации может также выполнять следующую функцию в соответствии с существующим определением: уменьшение значения SL на 1 после выполнения обработки несжатого идентификатора сегмента.
[0072] То есть, если Routing type = 4, то SL по-прежнему указывает количество идентификаторов сегментов в пределах длины одного несжатого идентификатора сегмента (128 битов). Если в заголовке сегментной маршрутизации пакета услуги применяют сжатые идентификаторы сегментов, требуется объединить множество сжатых идентификаторов сегментов для занятия 128 битов. Если не может быть занято целое число битов, кратное 128 битам (целое число равно t, и t больше или равно 1), зарезервированные поля заполняют для формирования целого числа битов, кратного 128 битам. Затем обрабатывают сжатые идентификаторы сегментов, и только после обработки всех сжатых идентификаторов сегментов в пределах 128 битов SL уменьшают на 1. После завершения обработки несжатого идентификатора сегмента SL уменьшают на 1 в операции End.
[0073] При обработке сжатых идентификаторов сегментов необходимо определить, следует ли изменять значение SL после оценки того, что обработка всех сжатых идентификаторов сегментов в пределах 128 битов завершена.
[0074] В некоторых вариантах осуществления изобретения, например, сжатый идентификатор сегмента сжимают посредством способа uSID (draft-filsfils-spring-net-pgm-extension-srv6-usid-02). Соответственно, завершение обработки всех сжатых идентификаторов сегментов в пределах длины одного несжатого идентификатора сегмента означает, что биты после текущего обработанного идентификатора сегмента в списке сегментов являются нулевыми.
[0075] В некоторых вариантах осуществления изобретения, например, сжатый идентификатор сегмента сжимают посредством способа C-SID (draft-filsfils-spring-net-pgm-extension-srv6-usid-02). Соответственно, заголовок сегмента маршрутизации пакета услуги или список сегментов также может конфигурироваться с использованием поля счетчика (Sub_SL) для записи количества необработанных сжатых идентификаторов сегментов; всякий раз, когда обработка сжатого идентификатора сегмента завершается, значение поля счетчика уменьшают на 1, при этом начальное значение поля счетчика равно р (где р - значение, полученное путем округления отношения длины несжатого идентификатора сегмента к длине сжатого идентификатора сегмента). Соответственно, завершение обработки всех сжатых идентификаторов сегментов в пределах длины одного несжатого идентификатора сегмента означает также, что значение поля счетчика равно нулю.
[0076] Согласно варианту осуществления настоящего изобретения также предлагается способ обработки услуги. Способ применим к узлам тракта сегментной маршрутизации, причем каждый узел тракта сегментной маршрутизации конфигурируют с использованием сжатого идентификатора сегмента или несжатого идентификатора сегмента, критический узел в тракте сегментной маршрутизации дополнительно конфигурируют с использованием сжатого идентификатора сегмента, обладающего функцией выполнения преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL, и критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, из двух смежных узлов, конфигурируемых с использованием различных типов идентификаторов сегментов. Как показано на фиг. 2, способ обработки услуги включает следующие шаги:
[0077] S21: получение списка сегментов и поля типа маршрутизации для указания формата заголовка сегментной маршрутизации из заголовка сегментной маршрутизации принятого пакета услуги, при этом список сегментов содержит сконфигурированные сжатые идентификаторы сегментов и сконфигурированные несжатые идентификаторы сегментов.
[0078] Перед пересылкой пакета услуги устройство для сжатия заголовка сегментной маршрутизации генерирует список сегментов, содержащий сжатые идентификаторы сегментов и несжатые идентификаторы сегментов, и переносит список сегментов в заголовке сегментной маршрутизации пакета услуги. На этом шаге после приема пакета услуги, переданного узлом предшествующего транзита, узел в тракте сегментной маршрутизации получает список сегментов из заголовка сегментной маршрутизации пакета услуги, а также получает поле типа маршрутизации, представляющее формат заголовка сегментной маршрутизации.
[0079] S22: обработка текущего идентификатора сегмента в списке сегментов и изменение SL в соответствии с полем типа маршрутизации.
[0080] На этом шаге устройство для обработки услуги обрабатывает текущий идентификатор сегмента в списке сегментов, при этом идентификатор сегмента представляет собой сжатый идентификатор сегмента или несжатый идентификатор сегмента. Способы изменения SL, определяемые различными типами маршрутизации после завершения обработки идентификатора сегмента, различны, поэтому необходимо определить тип маршрутизации и изменить SL в соответствии с типом маршрутизации. Способы изменения SL в зависимости от различных типов маршрутизации более подробно описываются ниже со ссылкой на фиг. 3.
[0081] S23: если текущий узел является критическим узлом, выполнение преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL.
[0082] Тип идентификатора сегмента включает сжатый идентификатор сегмента и несжатый идентификатор сегмента. Преобразование типа идентификатора сегмента включает преобразование сжатого идентификатора сегмента в несжатый идентификатор сегмента или преобразование несжатого идентификатора сегмента в сжатый идентификатор сегмента.
[0083] Следует отметить, что если узел не является критическим, выполняется функция, определяемая идентификатором сегмента (который может быть сжатым идентификатором сегмента или несжатым идентификатором сегмента), сконфигурированным в этом узле, без выполнения преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL.
[0084] S24: пересылка пакета услуги в узел следующего транзита, при этом пакет услуги переносит тип идентификатора сегмента, указанного SL.
[0085] На этом шаге устройство для обработки услуги переносит преобразованный тип идентификатора сегмента, полученный на шаге S23, в пакете услуги и пересылает пакет услуги в узел следующего транзита.
[0086] Согласно способу обработки услуги, представленному вариантами осуществления настоящего изобретения, список сегментов и поле типа маршрутизации для указания формата заголовка сегментной маршрутизации извлекают из заголовка сегментной маршрутизации принятого пакета услуги, список сегментов содержит сконфигурированные сжатые идентификаторы сегментов и сконфигурированные несжатые идентификаторы сегментов; обрабатывают текущий идентификатор сегмента в списке сегментов и изменяют SL в соответствии с полем типа маршрутизации; если текущий узел является критическим узлом, выполняют преобразование типа идентификатора сегмента для идентификатора сегмента, указанного SL; пакет услуги пересылают в узел следующего транзита, причем пакет услуги переносит тип идентификатора сегмента, указанного SL. Согласно варианту осуществления настоящего изобретения, путем выполнения в критическом узле преобразования типа идентификатора сегмента, указанного SL, и изменения SL в соответствии с полем типа маршрутизации можно добиться гибридного сетевого взаимодействия и гибридного программирования узлов, конфигурируемых с использованием сжатых идентификаторов сегментов, и узлов, конфигурируемых с использованием несжатых идентификаторов сегментов, благодаря чему маршрутизация SRv6 становится применимой к более сложной среде сетевого взаимодействия, что способствует быстрой установке средств SRv6 в существующей сети.
[0087] Согласно некоторым вариантам осуществления изобретения критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, и узел следующего транзита является узлом, конфигурируемым с использованием несжатого идентификатора сегмента. Соответственно, выполнение преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL (то есть S23), включает изменение типа идентификатора сегмента, указанного SL, на несжатый идентификатор сегмента. То есть в направлении пакетной передачи узел предшествующего транзита по отношению к критическому узлу является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, а узел следующего транзита по отношению к критическому узлу является узлом, конфигурируемым с использованием несжатого идентификатора сегмента.
[0088] Согласно некоторым вариантам осуществления изобретения критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, и узел предшествующего транзита является узлом, конфигурируемым с использованием несжатого идентификатора сегмента. Соответственно, выполнение преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL (то есть шаг S23), включает изменение типа идентификатора сегмента, указанного SL, на сжатый идентификатор сегмента. То есть в направлении пакетной передачи узел предшествующего транзита по отношению к критическому узлу является узлом, конфигурируемым с использованием несжатого идентификатора сегмента, а узел следующего транзита по отношению к критическому узлу является узлом, конфигурируемым с использованием сжатого идентификатора сегмента.
[0089] Согласно некоторым вариантам осуществления изобретения функция преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL, может быть реализована путем установки поля Flag. Более конкретно, заголовок сегментной маршрутизации пакета услуги также содержит поле Flag для указания типа идентификатора сегмента, указанного SL, и тип идентификатора сегмента включает сжатый идентификатор сегмента и несжатый идентификатор сегмента. Например, Flag = 0 может быть определен для указания несжатого идентификатора сегмента, a Flag = 1 - для указания сжатого идентификатора сегмента.
[0090] Соответственно, на шаге S23 перед выполнением преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL, способ также включает получение поля Flag из заголовка сегментной маршрутизации пакета услуги.
[0091] Соответственно, если критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, и узел следующего транзита является узлом, конфигурируемым с использованием несжатого идентификатора сегмента, изменение типа идентификаторов сегментов, указанных UL, на несжатый идентификатор сегмента включает изменение значения поля Flag на значение, указывающее на несжатый идентификатор сегмента, например, изменение значения поля Flag на 0.
[0092] Соответственно, если критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, и узел предшествующего транзита является узлом, конфигурируемым с использованием несжатого идентификатора сегмента, изменение типа идентификаторов сегментов, указанных SL, на несжатый идентификатор сегмента включает изменение значения поля Flag на значение, указывающее на сжатый идентификатор сегмента, например, изменение значения поля Flag на 1.
[0093] В процессе пересылки пакета услуги по окончании обработки идентификатора сегмента требуется изменить SL. Согласно варианту осуществления настоящего изобретения формат заголовка сегментной маршрутизации определяют в поле типа маршрутизации и определяют способы изменения SL в зависимости от различных заголовков сегментной маршрутизации. Способы изменения SL в зависимости от различных форматов сегментной маршрутизации более подробно описываются ниже со ссылкой на фиг. 3.
[0094] Согласно некоторым вариантам осуществления изобретения, как показано на фиг. 3, изменение SL в соответствии с полем типа маршрутизации (то есть шаг S23) включает:
[0095] S231: определение формата заголовка сегментной маршрутизации в соответствии с полем типа маршрутизации и выполнение шага S232, если формат заголовка сегментной маршрутизация является первым форматом заголовка сегментной маршрутизации; выполнение шага S233, если формат заголовка сегментной маршрутизация является вторым форматом заголовка сегментной маршрутизации.
[0096] Согласно некоторым вариантам осуществления настоящего изобретения формат заголовка сегментной маршрутизации может определяться в соответствии со значением поля типа маршрутизации. Если значение поля типа маршрутизации является первым заранее заданным значением, то определяют, что формат заголовка сегментной маршрутизации является первым форматом заголовка сегментной маршрутизации; если значение поля типа маршрутизации является вторым заранее заданным значением, то определяют, что формат заголовка сегментной маршрутизации является вторым форматом заголовка сегментной маршрутизации. Например, первое заранее заданное значение может быть равно 6, а второе заранее заданное значение может быть равно 4. Если значение поля типа маршрутизации является первым заранее заданным значением, это указывает на то, что заголовок сегментной маршрутизации пакета услуги также содержит поле расширения (SRH_Ext), и SL изменяют способом, определенным полем SRH_Ext. Если значение поля типа маршрутизации является вторым заранее заданным значением, это указывает на то, что SL изменяют по-прежнему способом, определяемым полем типа маршрутизации (нужно иметь в виду, что способ изменения SL, определяемый полем типа маршрутизации, согласно настоящему изобретению отличается от способа изменения SL, принятого в известном уровне техники).
[0097] S232: после завершения обработки сжатого идентификатора сегмента уменьшение значения SL на n, где n - отношение длины сжатого идентификатора сегмента к длине поддерживаемого самого короткого сжатого идентификатора сегмента, при этом n является положительным целым числом; и после завершения обработки несжатого идентификатора сегмента уменьшение значения SL на m, где m - отношение длины несжатого идентификатора сегмента к длине поддерживаемого самого короткого сжатого идентификатора сегмента, при этом m является положительным целым числом.
[0098] На этом шаге, если Routing type = 6, обработку SL переопределяют в соответствии с самой короткой длиной сжатого идентификатора сегмента. Например, если длина поддерживаемого самого короткого сжатого идентификатора сегмента составляет 16 битов, то SL уменьшают на 1 (n=16/16=1) при выполнении операции End после завершения обработки 16-битного сжатого идентификатора сегмента; SL уменьшают на 2 (n=32/16=2) при выполнении операции End после завершения обработки 32-битного сжатого идентификатора сегмента; SL уменьшают на 4 (n=64/16=4) при выполнении операции End после завершения обработки 64-битного сжатого идентификатора сегмента; и SL уменьшают на 8 (m=128/16=8) при выполнении операции End после завершения обработки 128-битного несжатого идентификатора сегмента.
[0099] Следует отметить, что для обеспечения корректной проверки соответственно в поле Last Entry заголовка сегментной маршрутизации определяют, что при выполнении проверки поле SL также следует вычислять в соответствии с множеством поддерживаемых самых коротких длин сжатого сегмента (например, 16 битов).
[00100] На шаге S233 уменьшают SL на 1 после завершения обработки всех сжатых идентификаторов сегментов в пределах длины одного несжатого идентификатора сегмента.
[00101] Во втором формате заголовка сегментной маршрутизации р сжатых идентификаторов сегментов занимают биты длиной в t несжатых идентификаторов сегментов, где t - положительное целое число, р - значение, полученное путем округления отношения длины несжатого идентификатора сегмента к длине сжатого идентификатора сегмента. Если общая длина р сжатых идентификаторов сегментов меньше общей длины t несжатых идентификаторов сегментов, используют зарезервированные байты для заполнения оставшейся длины. То есть, если Routing type = 4, то SL по-прежнему указывает количество идентификаторов сегментов в пределах длины одного несжатого идентификатора сегмента (128 битов). Если в заголовке сегментной маршрутизации пакета услуги применяют сжатые идентификаторы сегментов, необходимо совместно объединить множество идентификаторов сегментов для занятия 128 битов. Если не может быть занято целое число битов, кратное 128 битам (где целое число равно t, и t больше или равно 1), зарезервированные поля заполняют для формирования целого числа битов, кратного 128 битам. Соответственно, после завершения обработки сжатых идентификаторов сегментов, SL уменьшают на 1, если завершена обработка всех сжатых идентификаторов сегментов в пределах 128 битов.
[00102] Следует принимать во внимание, что на этом шаге значение SL уменьшают на 1 после завершения обработки несжатого идентификатора сегмента.
[00103] Согласно варианту осуществления настоящего изобретения при обработке сжатых идентификаторов сегментов необходимо определить, следует ли изменить значение SL после оценки того, что обработка всех сжатых идентификаторов сегментов в пределах 128 битов завершена.
[00104] В соответствии с некоторыми вариантами осуществления изобретения, например, для сжатых идентификаторов сегментов, сжатых посредством способа uSID, определение того, что все сжатые идентификаторы сегментов в пределах 128 битов обработаны, может выполняться путем оценки оставшихся битов. Соответственно, завершение обработки всех сжатых идентификаторов сегментов в пределах длины одного несжатого идентификатора сегмента означает, что биты после текущего обработанного идентификатора сегмента в списке сегментов являются нулевыми.
[00105] В соответствии с некоторыми вариантами осуществления изобретения, например, для сжатых идентификаторов сегментов, сжатых посредством способа C-SID, определение того, что все сжатые идентификаторы сегментов в пределах 128 битов обработаны, может выполняться путем использования счетчика. Более конкретно, в заголовке сегмента маршрутизации пакета услуги или в списке сегментов предоставляют поле счетчика (Sub_SL) для записи количества необработанных сжатых идентификаторов сегментов; всякий раз, когда обработка сжатого идентификатора сегмента завершается, значение поля Sub_SL уменьшают на 1, при этом начальное значение Sub_SL равно р. Соответственно, завершение обработки всех сжатых идентификаторов сегментов в пределах длины одного несжатого идентификатора сегмента также означает, что значение поля счетчика равно нулю.
[00106] Следует отметить, что значение Sub_SL и значение SL не обязательно равны нулю одновременно. При обработке сжатого идентификатора сегмента возможна ситуация, когда значение SL уже равно нулю, но значение Sub_SL еще не равно нулю. В этом случае это означает, что в процессе обработки достигнуты последние 128 битов в списке сегментов, однако все еще существуют необработанные сжатые идентификаторы сегментов, которые не следует обрабатывать как последний транзит.
[00107] Ниже для пояснения решений, соответствующих вариантам осуществления настоящего изобретения, приводится более подробное описание этих вариантов с помощью трех конкретных примеров.
[00108] Вариант 1 осуществления изобретения
[00109] Сетевая топология, соответствующая варианту 1 осуществления изобретения, показана на фиг. 4. В настоящее время существует услуга VPN4. Требуется создать тракт A-B-D-F-M-Z SRv6, в котором задействовано гибридное программирование узлов со сжатыми SID и несжатыми SID. Узлы A-G конфигурируют с использованием 32-битных сжатых идентификаторов сегментов, которые сжаты с использованием схемы сжатия uSid, общий префикс (uSID Block) сжатых SID составляет 32 бита, и длина каждого сжатого идентификатора сегмента равна 32 битам. Таким образом, после удаления uSID Block из 128 битов могут быть представлены сжатые SID трех узлов SRv6. Узлы М, N и Z конфигурируют с использованием 128-битных несжатых SID.
[00110] В процессе сжатия SRH выполняют следующие определения:
[00111] (1) Задают поле Flag = 1 в SRH для указания на то, что в настоящий момент идентификатор SID является сжатым SID, и задают поле Flag = 0 в SRH для указания на то, что в настоящий момент идентификатор SID является несжатым SID.
[00112] (2) Задают первую функцию End.uzip преобразования (кодированную как 0x77) критического узла между сжатым SID и несжатым SID для выполнения преобразования типа идентификатора сегмента, указанного SL, из сжатого SID в несжатый SID. Код выглядит следующим образом:
[00113] If (SRH.Flag == 1)
[00114] Установить SRH.Flag = 0
[00115] Уменьшить SL на 1
[00116] Обновить IPv6 DA с использованием Segment_List[SL]
[00117] Переслать пакет по новому DA;
[00118] (3) Задают вторую функцию End.uzip преобразования (кодированную как 0x78) критического узла между несжатым SID и сжатым SID для выполнения преобразования типа идентификатора сегмента, указанного SL, из несжатого SID в сжатый SID. Код выглядит следующим образом:
[00119] If (SRH.Flag == 0)
[00120] Установить SRH.Flag = 1
[00121] Уменьшить SL на 1
[00122] Обновить IPv6 DA с использованием Segment_List[SL]
[00123] Переслать пакет по новому IPv6 DA;
[00124] На фиг. 5 показана структурная схема SRH в направлении A->Z передачи пакета услуги. В узле А используется SRH, показанный на фиг. 5, для представления тракта A-B-D-F-M-Z передачи услуги VPN4, при этом в узле F применяется F:77 для указания на то, что должна выполняться операция End.uzip для преобразования сжатого SID в несжатый SID.
[00125] На фиг. 6 показана структурная схема SRH в направлении Z->A передачи пакета услуги. В узле Z используется SRH, показанный на фиг. 6, для представления тракта Z-M-F-D-B-A передачи услуги VPN4, при этом узел F конфигурируется с использованием 128-битного несжатого SID, и в этом узле применяется F:78 для указания на то, что должна выполняться операция End.uzip для преобразования несжатого SID в сжатый SID.
[00126] В этом конкретном варианте 1 осуществления изобретения Routing type = 4 указывает на то, что формат SRH является вторым форматом заголовка сегментной маршрутизации, то есть поле типа маршрутизации в SRH совместимо с существующим SRH. В процессе выполнения операции End сжатого SID значение SL уменьшают на 1, если завершена обработка всех сжатых SID в 128 битах (то есть SID, сжатых с помощью способа uSID). Код выглядит следующим образом:
[00127] IF (SRH.Flag == 1)
[00128] IF DA[64..95] !=0 //Еще остались необработанные uSID
[00129] Копировать DA[64..127] в DAL32..95]
[00130] Установить DA[96..127] на 0x0000
[00131] Переслать пакет по новому IPv6 DA;
[00132] ELSE IF (DA[64..95]=0) and SL>0 //завершена обработка всех uSID в текущих 128 битах, и для обработки берут сжатые SID в следующих 128 битах
[00133] Уменьшить SL на 1
[00134] Обновить IPv6 DAc использованием Segment_List[SL]
[00135] Переслать пакет по новому IPv6 DA;
[00136] ELSE
[00137] Сообщение об ошибке //если следующие 128 битов отсутствуют, должна выполняться обработка услуги, отличная от операции End, с выдачей сообщения об ошибке.
[00138] Алгоритм обработки услуги в направлении A->Z передачи пакета услуги показан на фиг. 7. Тракт сегментной маршрутизации представляет собой A-B-D-F-M-Z, и функция End.DX4 выполняется в соответствии с DA=20:02:Z:11::. Алгоритм обработки услуги в направлении Z->A передачи пакета услуги показан на фиг. 8. Тракт сегментной маршрутизации представляет собой Z-M-F-D-B-A, и функция End.DX4 выполняется в соответствии с DA=20:02:А:11::.
[00139] Вариант 2 осуществления изобретения
[00140] Сетевая топология, соответствующая варианту 2 осуществления изобретения, показана на фиг. 9. В настоящее время существует услуга L2VPN. Требуется создать тракт A-B-D-F-M-Z SRv6, в котором задействовано гибридное программирование узлов со сжатыми SID и несжатыми SID. В узлах A-G применяются 32-битные сжатые SID, а узлы М, N, Z конфигурируются с использованием 128-битных несжатых SID. Согласно этому варианту осуществления изобретения SRH является вторым форматом заголовка сегментной маршрутизации, то есть используется новое определенное поле SRH_Ext, то есть Routing Туре = 6, и SRH_Ext не задействует обработку, связанную с совместимостью с заголовком SRH известного уровня техники.
[00141] В процессе сжатия SRH выполняют следующие определения:
[00142] (1) Задают поле Flag = 1 в SRH_Ext для указания на то, что в настоящий момент SID является сжатым SID, и задают поле Flag = 0 для указания на то, что в настоящий момент SID является несжатым SID.
[00143] (2) Задают первую функцию End.uzip преобразования (кодированную как 0x77) критического узла между сжатым SID и несжатым SID для выполнения преобразования типа идентификатора сегмента, указанного SL, из сжатого SID в несжатый SID. Код выглядит следующим образом:
[00144] IF (SRH.Flag == 1)
[00145] Установить SRH.Flag = 0
[00146] IF(SL>=10)
[00147] Уменьшить SL на 2 //В предположении, что поддерживается самый короткий 16-битный сжатый SID, поскольку в данном случае сжатый SID занимает 32 бита, SL следует уменьшить на 2
[00148] Обновить IPv6 DA с использованием Segment_List[SL] //взять следующий несжатый SID
[00149] Переслать пакет по IPv6 DA;
[00150] ELSE
[00151] Сообщение об ошибке //узел следующего транзита не является несжатым SID, и выдают сообщение об ошибке;
[00152] (3) Задают вторую функцию End.uzip преобразования (кодированную как 0x78) критического узла между несжатым SID и сжатым SID для выполнения преобразования типа идентификатора сегмента, указанного SL, из несжатого SID в сжатый SID. Код выглядит следующим образом:
[00153] If (SRH.Flag == 0)
[00154] Установить SRH.Flag = 1
[00155] IF SL>10
[00156] Уменьшить SL на 8
[00157] Обновить IPv6 DA с использованием Segment_List[SL] //взять следующий сжатый SID
[00158] Переслать пакет по новому IPv6 DA;
[00159] На фиг. 10 показана структурная схема SRH_Ext в направлении A->Z передачи пакета услуги. В узле А используется поле SRH_Ext, показанное на фиг. 10, для представления тракта A-B-D-F-M-Z передачи услуги L2VPN, при этом в узле применяется F:77 для указания на то, что должна выполняться операция End.uzip для преобразования сжатого SID в несжатый SID.
[00160] На фиг. 11 показана структурная схема SRH_Ext в направлении Z->A передачи пакета услуги. В узле Z используется поле SRH_Ext, показанное на фиг. 11, для представления тракта Z-M-F-D-B-A передачи услуги L2VPN, при этом в узле F применяется F:78 для указания на то, что должна выполняться операция End.uzip для преобразования несжатого SID в сжатый SID.
[00161] Поскольку в этом конкретном варианте 2 осуществления изобретения применяется новое значение Routing type (6), не обязательно следует принимать во внимание совместимость с существующим способом обработки SRH. В предположении, что SRH_Ext поддерживает сжатый SID с минимальной длиной 16 битов, поскольку в данном случае сжатый SID занимает 32 бита, SL уменьшают на 2 при выполнении операции End для сжатого SID, и SL уменьшают на 8 при выполнении операции End для несжатого SID.
[00162] На фиг. 12 показан алгоритм обработки услуги в направлении A->Z передачи пакета услуги. Тракт сегментной маршрутизации представляет собой A-B-D-F-M-Z, и функция End.DX2 выполняется в соответствии с DA=20:02:Z:15::. Алгоритм обработки услуги в направлении Z->A передачи пакета услуги показан на фиг. 13. Тракт сегментной маршрутизации представляет собой Z-M-F-D-B-A, и функция End.DX2 выполняется в соответствии с DA=20:02:А:15::.
[00163] Вариант 3 осуществления изобретения
[00164] Сетевая топология, соответствующая варианту 3 осуществления изобретения, показана на фиг. 9. В настоящее время существует услуга L2VPN. Требуется создать тракт A-B-D-F-M-Z SRv6, в котором задействовано гибридное программирование узлов со сжатыми SID и несжатыми SID. В узлах A-G применяются 32-битные сжатые SID, а узлы М, N, Z конфигурируются с использованием 128-битных несжатых SID. Разница между вариантом 3 осуществления изобретения и вариантом 2 осуществления изобретения заключается в том, что SRH в данном варианте является вторым форматом заголовка сегментной маршрутизации, то есть дополнительное поле расширения не добавляется, и соблюдается совместимость с обычной обработкой SRH, а именно: Routing Туре = 4.
[00165] В процессе сжатия SRH выполняют следующие определения:
[00166] (1) Задают поле Flag = 1 в SRH для указания на то, что в настоящий момент SID являются сжатым SID, и задают поле Flag = 0 для указания на то, что в настоящий момент SID является несжатым SID. В этом случае поле Flag, видимое в узле с несжатым SID (например, в узле М), является нулевым, как и в обычном SRH.
[00167] (2) Задают первую функцию End.uzip преобразования (кодированную как 0x77) критического узла между сжатым SID и несжатым SID для выполнения преобразования типа идентификатора сегмента, указанного SL, из сжатого SID в несжатый SID. Код выглядит следующим образом:
[00168] IF (SRH.Flag == 1)
[00169] Установить SRH.Flag = 0
[00170] IF(SL>0)
[00171] Уменьшить SL на 1
[00172] Обновить IPv6 DA с использованием Segment_List[SL]
[00173] Переслать пакет по новому DA
[00174] ELSE
[00175] Сообщение об ошибке //последний SID, операция преобразования не может быть выполнена, и выдают сообщение об ошибке;
[00176] (3) Задают вторую функцию End.uzip преобразования (кодированную как 0x78) критического узла между несжатым SID и сжатым SID для выполнения преобразования типа идентификатора сегмента, указанного SL, из несжатого SID в сжатый SID. Код выглядит следующим образом:
[00177] IF (SRH.Flag == 0)
[00178] Установить SRH.Flag = 1
[00179] IF(SL>0)
[00180] Уменьшить SL на 1
[00181] Установить Sub_SLc использованием Segment_List[SL] //путем оценки длины зарезервированного байта в конце 128 битов идентификация количества содержащихся там сжатых SID
[00182] Обновить IPv6 DAc использованием Segment_ListfSL]
[00183] Переслать пакет по новому IPv6 DA;
[00184] ELSE
[00185] Сообщение об ошибке //последний SID, операция преобразования не может быть выполнена, и выдают сообщение об ошибке.
[00186] На фиг. 14 показана структурная схема SRH в направлении A->Z передачи пакета услуги. В узле А используется SRH, показанный на фиг. 14, для представления тракта A-B-D-F-M-Z пересылки услуги L2VPN, при этом в узле F применяется F:77 для указания на то, что должна выполняться операция End.uzip для преобразования сжатого SID в несжатый SID.
[00187] На фиг. 15 показана структурная схема SRH в направлении Z->A передачи пакета услуги. В узле Z используется SRH, показанный на фиг. 15, для представления тракта Z-M-F-D-B-A передачи услуги L2VPN, при этом узел F кодирован в 128 битах, и в нем применяется F:78 для указания на то, что должна выполняться операция End.uzip для преобразования несжатого SID в сжатый SID.
[00188] Поскольку в этом варианте 3 осуществления изобретения применяется схема, совместимая с обычным SRH, то есть Routing type = 4, способ обработки с поддержкой совместимости включает выполнение следующих операций: SL по-прежнему указывает количество SID в 128 битах; если используется сжатый SID в SRH, множество сжатых SID объединяют для занятия целого числа битов, кратного 128 битам; если целое кратное число битов не достигается после объединения множества сжатых SID, зарезервированные байты заполняют для формирования целого числа битов, кратного 128 битам. Например, как показано на фиг. 14, в направлении А->Z передачи пакета услуги существуют только три сжатых SID в списке сегментов. В этом случае все нулевые коды должны быть добавлены для заполнения 128 битов.
[00189] Если обрабатывают несжатый SID, то SL уменьшают на 1 в процессе выполнения операции End. Если обрабатывают сжатый SID, то SL уменьшают на 1 только после завершения обработки всех сжатых SID в 128 битах, при этом путем установки Sub_SL записывают количество необработанных сжатых идентификаторов сегментов в пределах 128 битов. Код выглядит следующим образом:
[00190] IF (SRH.Flag == 1)
[00191] IF Sub_SL>0 //еще остались сжатые необработанные SID в текущих 128 битах
[00192] Обновить IPv6 DAc использованием Segment_List[SL]
[00193] Уменьшить Sub_SL на 1
[00194] Переслать пакет по новому IPv6 DA;
[00195] ELSE IF (DA[64..95] == 0) and SL>0 //завершена обработка всех сжатых SID в текущих 128 битах, и для обработки берут сжатые SID в следующих 128 битах
[00196] Уменьшить SL на 1
[00197] Установить Sub_SL посредством Segment_List[SL]
[00198] Обновить IPv6 DAc использованием Segment_List[SL]
[00199] Переслать пакет по новому IPv6 DA;
[00200] ELSE
[00201] Сообщение об ошибке //если следующие 128 битов отсутствуют, должна выполняться обработка услуги, отличная от операции End, с выдачей сообщения об ошибке.
[00202] Следует отметить, что при обработке сжатого SID возможна ситуация, когда значение SL уже равно нулю, но значение Sub_SL не равно нулю. В этом случае это указывает на то, что в процессе обработки достигнуты последние 128 битов в списке сегментов, однако все еще существуют необработанные сжатые идентификаторы сегментов, которые в этом случае не следует обрабатывать как последний транзит.
[00203] На фиг. 16 показан алгоритм обработки услуги в направлении A->Z передачи пакета услуги. Тракт сегментной маршрутизации представляет собой A-B-D-F-M-Z, и функция End.DX2 выполняется в соответствии с DA=20:02:Z:15::. Алгоритм обработки услуги в направлении Z->A передачи пакета услуги показан на фиг. 17. Тракт сегментной маршрутизации представляет собой Z-M-F-D-B-A, и функцию End.DX2 выполняют в соответствии с DA=20:02:А:15::.
[00204] Согласно вариантам осуществления настоящего изобретения предлагается способ сжатия SRH, который одновременно поддерживает как формат сжатых SID, так и формат несжатых SID в заголовке SRH SRv6, благодаря чему тракт пересылки SRv6 может содержать узлы, представленные сжатыми SID, или узлы, представленные несжатыми SID, в связи с чем расширяются сценарии применения SRv6. Определяется новое поле флага, указывающее на то, является ли SID, указанный SL в SRH, сжатым SID или несжатым SID, и определяется новая функция для выполнения преобразования сжатого SID в несжатый SID и несжатого SID в сжатый SID в тракте пересылки SRv6.
[00205] На основе той же технической концепции в рамках варианта осуществления настоящего изобретения также предлагается устройство для сжатия заголовка сегментной маршрутизации. Как показано на фиг. 18, устройство для сжатия заголовка сегментной маршрутизации содержит модуль 101 конфигурирования, первый модуль 102 генерации и второй модуль 103 генерации. Модуль 101 конфигурирования выполнен с возможностью конфигурирования сжатого идентификатора сегмента или несжатого идентификатора сегмента для каждого узла в тракте сегментной маршрутизации и конфигурирования, для критического узла в тракте сегментной маршрутизации, сжатого идентификатора сегмента, дополнительно обладающего функцией выполнения преобразования типа идентификатора сегмента для идентификатора сегмента, указанного полем Segments Left (SL), при этом критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, из двух смежных узлов, конфигурируемых с использованием различных типов идентификаторов сегментов.
[00206] Первый модуль 102 генерации выполнен с возможностью генерации списка сегментов, содержащего сконфигурированный сжатый идентификатор сегмента и сконфигурированный несжатый идентификатор сегмента.
[00207] Второй модуль 103 генерации выполнен с возможностью генерации заголовка сегментной маршрутизации пакета услуги, при этом заголовок сегментной маршрутизации пакета услуги содержит список сегментов и поле типа маршрутизации для указания формата заголовка сегментной маршрутизации, причем формат заголовка сегментной маршрутизации соответствует формату сжатого идентификатора сегмента.
[00208] Согласно некоторым вариантам осуществления изобретения критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, и узел следующего транзита конфигурируется с использованием несжатого идентификатора сегмента. Функция выполнения преобразования типа идентификатора сегмента для идентификатора сегмента, указанного полем Segments Left (SL), является первой функцией преобразования, предназначенной для преобразования типа идентификатора сегмента, указанного SL, в несжатый идентификатор сегмента.
[00209] Согласно некоторым вариантам осуществления изобретения критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, и узел предшествующего транзита конфигурируется с использованием несжатого идентификатора сегмента. Функция выполнения преобразования типа идентификатора сегмента для идентификатора сегмента, указанного полем Segments Left (SL), является второй функцией преобразования, предназначенной для преобразования типа идентификатора сегмента, указанного SL, в сжатый идентификатор сегмента.
[00210] Согласно некоторым вариантам осуществления изобретения заголовок сегментной маршрутизации пакета услуги также содержит поле флага для указания типа идентификатора сегмента для идентификатора сегмента, указанного SL; первая функция преобразования включает изменение значения поля флага в заголовке сегментной маршрутизации принятого пакета услуги на значение, указывающее несжатый идентификатор сегмента; и/или вторая функция преобразования включает изменение значения поля флага в заголовке сегментной маршрутизации принятого пакета услуги на значение, указывающее сжатый идентификатор сегмента.
[00211] Согласно некоторым вариантам осуществления изобретения заголовок сегментной маршрутизации пакета услуги также содержит поле расширения, которое используется для указания первого формата заголовка сегментной маршрутизации, и выполняют следующие функции после завершения обработки сжатого идентификатора сегмента: уменьшение значения SL на n, где n - отношение длины сжатого идентификатора сегмента к длине поддерживаемого самого короткого сжатого идентификатора сегмента, при этом n является положительным целым числом; и после завершения обработки несжатого идентификатора сегмента уменьшение значения SL на m, где m - отношение длины несжатого идентификатора сегмента к длине поддерживаемого самого короткого сжатого идентификатора сегмента, при этом m является положительным целым числом.
[00212] Согласно некоторым вариантам осуществления изобретения поле типа маршрутизации используют для указания второго формата заголовка сегментной маршрутизации, и второй формат заголовка сегментной маршрутизации содержит р сжатых идентификаторов сегментов, занимающих биты длиной в t несжатых идентификаторов сегментов, где t - положительное целое число, р - значение, полученное путем округления отношения длины несжатого идентификатора сегмента к длине сжатого идентификатора сегмента. Если общая длина р сжатых идентификаторов сегментов меньше общей длины t несжатых идентификаторов сегментов, используют зарезервированные байты для заполнения оставшейся длины.
[00213] Поле типа маршрутизации используют для выполнения следующей функции: уменьшение SL на 1 после завершения обработки всех сжатых идентификаторов сегментов в пределах длины несжатого идентификатора сегмента.
[00214] Согласно некоторым вариантам осуществления изобретения завершение обработки всех сжатых идентификаторов сегментов в пределах длины несжатого идентификатора сегмента включает то, что все биты после текущего обработанного идентификатора сегмента в списке сегментов равны нулю.
[00215] Согласно некоторым вариантам осуществления изобретения заголовок сегментной маршрутизации пакета услуги или список сегментов также содержит поле счетчика для записи количества необработанных сжатых идентификаторов сегментов; и всякий раз, когда обработка сжатого идентификатора сегмента завершается, значение поля счетчика уменьшают на 1, при этом начальное значение поля счетчика равно р; и завершение обработки всех сжатых идентификаторов сегментов в пределах длины несжатого идентификатора сегмента включает то, что значение поля счетчика равно нулю.
[00216] На основе той же технической концепции согласно настоящему изобретению также предлагается устройство для обработки услуги, применимое к узлам тракта сегментной маршрутизации, причем каждый узел тракта сегментной маршрутизации конфигурируется с использованием сжатого идентификатора сегмента или несжатого идентификатора сегмента, критический узел в тракте сегментной маршрутизации конфигурируется с использованием сжатого идентификатора сегмента, дополнительно обладающего функцией выполнения преобразования типа идентификатора сегмента для идентификатора сегмента, указанного полем SL, и критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, из двух смежных узлов, конфигурируемых с использованием различных типов идентификаторов сегментов. Как показано на фиг. 19, устройство для обработки услуги содержит: модуль 201 получения, модуль 202 обработки, модуль 203 преобразования и модуль 204 пересылки, при этом модуль 201 получения выполнен с возможностью получения списка сегментов и поля типа маршрутизации для указания формата заголовка сегментной маршрутизации из заголовка сегментной маршрутизации принятого пакета услуги, и список сегментов содержит сконфигурированный сжатый идентификатор сегмента и сконфигурированный несжатый идентификатор сегмента.
[00217] Модуль 202 обработки выполнен с возможностью обработки текущего идентификатора сегмента в списке сегментов и изменения SL в соответствии с полем типа маршрутизации.
[00218] Модуль 203 преобразования выполнен с возможностью преобразования типа идентификатора сегмента для идентификатора сегмента, указанного SL, если текущий узел является критическим узлом.
[00219] Модуль 204 пересылки выполнен с возможностью пересылки пакета услуги в узел следующего транзита, при этом пакет услуги переносит тип идентификатора сегмента, указанного SL.
[00220] Согласно некоторым вариантам осуществления изобретения критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, и узел следующего транзита конфигурируется с использованием несжатого идентификатора сегмента; и модуль 203 преобразования выполнен с возможностью изменения типа идентификатора сегмента, указанного SL, на несжатый идентификатор сегмента.
[00221] Согласно некоторым вариантам осуществления изобретения критический узел является узлом, конфигурируемым с использованием сжатого идентификатора сегмента, и узел предшествующего транзита конфигурируется с использованием несжатого идентификатора сегмента; и модуль 203 преобразования выполнен с возможностью изменения типа идентификатора сегмента, указанного SL, на сжатый идентификатор сегмента.
[00222] Согласно некоторым вариантам осуществления изобретения заголовок сегментной маршрутизации пакета услуги также включает поле флага для указания типа идентификатора сегмента, указанного SL.
[00223] Модуль 201 получения также выполнен с возможностью получения поля флага из заголовка сегментной маршрутизации пакета услуги, перед тем как модуль 203 преобразования преобразует тип идентификатора сегмента для идентификатора сегмента, указанного SL.
[00224] Модуль 202 обработки выполнен с возможностью изменения значения поля флага на значение, указывающее несжатый идентификатор сегмента, и/или для изменения значения поля флага на значение, указывающее сжатый идентификатор сегмента.
[00225] Согласно некоторым вариантам осуществления изобретения модуль 202 обработки выполнен с возможностью, если заголовок сегментной маршрутизации является первым форматом заголовка сегментной маршрутизации, после завершения обработки сжатого идентификатора сегмента, уменьшения значения SL на n, где n - отношение длины сжатого идентификатора сегмента к длине поддерживаемого самого короткого сжатого идентификатора сегмента, при этом n является положительным целым числом; и, после завершения обработки несжатого идентификатора сегмента, уменьшения значения SL на m, где m - отношение длины несжатого идентификатора сегмента к длине поддерживаемого самого короткого сжатого идентификатора сегмента, при этом m является положительным целым числом.
[00226] Согласно некоторым вариантам осуществления изобретения модуль 202 обработки выполнен с возможностью, если заголовок сегментной маршрутизации является вторым форматом заголовка сегментной маршрутизации, после завершения обработки всех сжатых идентификаторов сегментов в пределах длины несжатого идентификатора сегмента, уменьшения SL на 1; при этом р сжатых идентификаторов сегментов занимают биты длиной в t несжатых идентификаторов сегментов, где t - положительное целое число, р - значение, полученное путем округления отношения длины несжатого идентификатора сегмента к длине сжатого идентификатора сегмента; и, если общая длина р сжатых идентификаторов сегментов меньше общей длины t несжатых идентификаторов сегментов, то используются зарезервированные биты для заполнения оставшейся длины.
[00227] Согласно некоторым вариантам осуществления изобретения завершение обработки всех сжатых идентификаторов сегментов в пределах длины несжатого идентификатора сегмента включает то, что все биты после текущего обработанного идентификатора сегмента в списке сегментов являются нулевыми.
[00228] Согласно некоторым вариантам осуществления изобретения заголовок сегментной маршрутизации пакета услуги или список сегментов также содержит поле счетчика для записи количества необработанных сжатых идентификаторов сегментов; и всякий раз, когда обработка сжатого идентификатора сегмента завершается, значение поля счетчика уменьшается на 1, при этом начальное значение поля счетчика равно р; и завершение обработки всех сжатых идентификаторов сегментов в пределах длины несжатого идентификатора сегмента включает то, что значение поля счетчика равно нулю.
[00229] В соответствии с настоящим изобретением также предлагается компьютерное устройство, содержащее один или более процессоров и запоминающее устройство, в котором хранится одна или более программ, при исполнении которых одним или более процессорами обеспечивается выполнение одним или более процессорами способа сжатия заголовка сегментной маршрутизации, представленного указанными выше вариантами осуществления изобретения.
[00230] Согласно варианту осуществления настоящего изобретения предлагается машиночитаемый носитель, на котором хранится компьютерная программа, при исполнении которой осуществляется способ обработки услуги, представленный указанными выше вариантами осуществления изобретения.
[00231] Специалисты в этой области техники могут понять, что все или некоторые шаги способов, раскрытых выше, и функциональные модули/блоки в устройстве могут быть реализованы в виде программного обеспечения, встроенного программного обеспечения, аппаратного обеспечения или подходящих их комбинаций. В случае аппаратной реализации разделение на функциональные модули/блоки, указанное выше, не обязательно соответствует разделению на физические компоненты; например, один физический компонент может выполнять несколько функций, или одна функция или шаг могут выполняться несколькими компонентами совместно. Некоторые или все физические компоненты могут быть реализованы в виде программного обеспечения, исполняемого процессором, например, центральным процессором, цифровым сигнальным процессором или микропроцессором, или в виде аппаратного обеспечения либо интегральной схемы, такой как специализированная интегральная схема. Такое программное обеспечение может распространяться на машиночитаемом носителе, который может включать компьютерный носитель (или носитель для хранения данных) и носитель связи (временный носитель). Как известно специалистам в этой области техники, термин «машиночитаемый носитель» включает энергозависимую и энергонезависимую память, съемную и несъемную память, реализованную с помощью любого способа или технологии хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные. Машиночитаемый носитель включает, без ограничения приведенными примерами, RAM, ROM, EEPROM, флэш-память или память, реализованную с помощью других технологий, CD-ROM, универсальный цифровой диск (DVD, Digital Versatile Disk) или другое оптическое запоминающее устройство, магнитную кассету, магнитную ленту, магнитный диск или другие магнитные запоминающие устройства, или любой другой носитель, который может использоваться для хранения требуемой информации и доступа к ней компьютера. Кроме того, как хорошо известно специалистам в этой области техники, носители связи обычно содержат машиночитаемые инструкции, структуры данных, программные модули или другие данные, переносимые модулированным сигналом передачи данных, таким как несущая или другой механизм передачи, и могут включать любые носители для доставки информации.
[00232] В этом описании приведены примеры осуществления настоящего изобретения. Хотя в этом описании используются конкретные термины, эти термины применяются и должны рассматриваться только в общем описательном смысле и не должны ограничивать изобретение. Специалистам в этой области техники очевидно, что, если явно не указано иное, в некоторых примерах признаки, характеристики и/или элементы, описанные в связи с конкретным вариантом осуществления изобретения, могут использоваться отдельно или в сочетании с признаками, характеристиками и/или элементами, описанными в связи с другими вариантами осуществления настоящего изобретения. Соответственно, специалисту в данной области техники должно быть понятно, что различные изменения в форме и деталях изобретения могут быть выполнены в пределах сущности изобретения, определяемой прилагаемой формулой изобретения.