RU2233473C2 - Device and method for performing high-speed search for routes of internet protocol and controlling routing/transfer tables - Google Patents

Device and method for performing high-speed search for routes of internet protocol and controlling routing/transfer tables Download PDF

Info

Publication number
RU2233473C2
RU2233473C2 RU2002122720/09A RU2002122720A RU2233473C2 RU 2233473 C2 RU2233473 C2 RU 2233473C2 RU 2002122720/09 A RU2002122720/09 A RU 2002122720/09A RU 2002122720 A RU2002122720 A RU 2002122720A RU 2233473 C2 RU2233473 C2 RU 2233473C2
Authority
RU
Russia
Prior art keywords
prefix
node
range
route
routing
Prior art date
Application number
RU2002122720/09A
Other languages
Russian (ru)
Other versions
RU2002122720A (en
Inventor
Мионгсу ЧОЕ (KR)
Мионгсу ЧОЕ
Original Assignee
Самсунг Электроникс Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR10-2001-0007568A external-priority patent/KR100493099B1/en
Application filed by Самсунг Электроникс Ко., Лтд. filed Critical Самсунг Электроникс Ко., Лтд.
Application granted granted Critical
Publication of RU2233473C2 publication Critical patent/RU2233473C2/en
Publication of RU2002122720A publication Critical patent/RU2002122720A/en

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

FIELD: Internet routing technologies.
SUBSTANCE: method for forming tables of transfer/routing for searching of Internet protocol address(IP-address) with use of access list includes steps of separation of IP-address prefix lengths range by previously given method, creation of header node having maximum level, on basis of several clusters picked in range of prefix lengths, while header node pints to each node in the access list, and creation of sub-nodes by means of picked clusters, while each of sub-nodes has a selected prefix lengths range as a key.
EFFECT: lower time needed for accessing memory and its effective use, simplified routes changing, effective composition of routing table and/or transfer table without sorting acceptable routes in accordance to length of routes prefix, inputted in process of tables forming.
7 cl, 2 tbl, 18 dwg

Description

Область техникиTechnical field

Настоящее изобретение относится в целом к способам маршрутизации для пересылки пакетов по месту назначения в сети Интернет и, в частности, касается устройства и способа для выполнения высокоскоростного поиска IP (протокол Интернет) маршрута и управления таблицей маршрутизации (или пересылки).The present invention relates generally to routing methods for forwarding packets to a destination on the Internet, and in particular, to a device and method for performing a high-speed IP search (Internet Protocol) for a route and managing a routing table (or forwarding).

Уровень техникиState of the art

В связи с увеличением количества пользователей сети Интернет, расширением перечня поддерживаемых услуг и областей обслуживания, таких как прикладные системы VoIP (протокол передачи речи через сеть Интернет) и системы, ориентированные на обработку потоков, наблюдается экспоненциальный рост трафика в Интернете. Возможным решением этой проблемы может стать пересылка пакетов на следующий транзитный интерфейс путем нахождения пути к месту назначения практически без задержек с использованием появившихся высокоскоростных маршрутизаторов со скоростями порядка гигабит/с или терабит/с. Для того чтобы найти путь к месту назначения пакетов, пересылаемых через физические входные интерфейсы маршрутизатора, требуется поддерживать таблицу маршрутизации (или пересылки) в компактном виде и минимизировать время поиска.Due to the increase in the number of Internet users, the expansion of the list of supported services and service areas, such as VoIP (Voice over Internet Protocol) application systems and stream-oriented systems, an exponential increase in Internet traffic is observed. A possible solution to this problem could be to forward packets to the next transit interface by finding the path to the destination with virtually no delay using high-speed routers with speeds of the order of gigabits / s or terabits / s. In order to find the path to the destination of packets forwarded through the physical input interfaces of the router, it is necessary to keep the routing table (or forwarding) in a compact form and minimize the search time.

Что касается известного маршрутизатора, то до появления недавно введенных в эксплуатацию высокоскоростных маршрутизаторов, когда время, требуемое для обработки пакетов и нахождения их адресатов, меньше времени, необходимого для трактов передачи, маршрутизатор как ретрансляционный узел, соединяющий подсети или другие сети, хорошо выполнял свои функции. В последнее время рост пропускной способности оптического сетевого интерфейса, такого как РОS ОС-192 (10 Гбит/с) или IP посредством DWDM (мультиплексирование по длине волны высокой плотности), привел к тому, что маршрутизатор, требующий определенного времени обработки, оказался самым узким местом в высокоскоростной сети Интернет. Описание маршрутизаторов можно найти в работах: Keshav, S. and Sharma, R., Issues and Trends in Router Design, IEEE Communications Magazine, pages 144-151, May, 1998; Kumar, V. and Lakshman, T. and Stiliadis, D., Beyond Best Effort: Router Architectures for the Differentiated Services of Tomorrow's Internet, IEEE Communications Magazine, pages 152-164, May, 1998; Chan, H., Alnuweiri, H. and Leung, V., A Framework for Optimizing the Cost and Performance of Next Generation IP Routers, IEEE Journal of Selected Areas in Communications, Vol. 17, No. 6, pages 1013-1029, June 1999; Partridge, C. et al., A 50-Gb/s IP Router, IEEE/ACM Trans. on Networking, vol. 6, no. 3, pages 237-248,1998; and Metz, C., IP Routers: New Tool for Gigabit Networking, IEEE Internet Computing, pages 14-18, Nov.-Dec., 1998.As for the well-known router, before the advent of the recently commissioned high-speed routers, when the time required to process the packets and find their destinations is less than the time required for the transmission paths, the router as a relay node connecting subnets or other networks performed its functions well . Recently, an increase in the bandwidth of an optical network interface, such as POS OS-192 (10 Gb / s) or IP via DWDM (high-density wavelength multiplexing), has led to the fact that the router requiring a certain processing time turned out to be the narrowest place in high speed internet. Router descriptions can be found in: Keshav, S. and Sharma, R., Issues and Trends in Router Design, IEEE Communications Magazine, pages 144-151, May, 1998; Kumar, V. and Lakshman, T. and Stiliadis, D., Beyond Best Effort: Router Architectures for the Differentiated Services of Tomorrow's Internet, IEEE Communications Magazine, pages 152-164, May, 1998; Chan, H., Alnuweiri, H. and Leung, V., A Framework for Optimizing the Cost and Performance of Next Generation IP Routers, IEEE Journal of Selected Areas in Communications, Vol. 17, No. 6, pages 1013-1029, June 1999; Partridge, C. et al., A 50-Gb / s IP Router, IEEE / ACM Trans. on Networking, vol. 6, no. 3, pages 237-248.1998; and Metz, C., IP Routers: New Tool for Gigabit Networking, IEEE Internet Computing, pages 14-18, Nov.-Dec., 1998.

В начале 1990 рабочая группа IETF (Проблемная группа проектирования средств Интернет) ввела новую схему IP адресации под названием CIDR (бесклассовая междоменная маршрутизация) для эффективного использования IP адресов в IPv4 (IP, версия 4) (См. RFC 1518, An Architecture for IP Address Allocation with CIDR, Sept., 1993; and RFC 1517, Applicability Statement for the Implementation of Classless Inter-Domain Routing (CIDR), Sept., 1993).In early 1990, the IETF (Internet Engineering Task Force) working group introduced a new IP addressing scheme called CIDR (Classless Cross-Domain Routing) to efficiently use IP addresses in IPv4 (IP, version 4) (See RFC 1518, An Architecture for IP Address Allocation with CIDR, Sept., 1993; and RFC 1517, Applicability Statement for the Implementation of Classless Inter-Domain Routing (CIDR), Sept., 1993).

В этом случае для захвата префикса в пакетах, имеющих префиксы разной длины, и нахождения IP адреса, соответствующего самому длинному префиксу, широко используется алгоритм LPM (совпадение по самому длинному префиксу) на основе так называемой "trie-структуры", или структуры данных Patricia (Рациональный алгоритм для поиска информации, закодированной алфавитно-цифровыми символами) (См. Doeringer, W., Karjoth, G. and Nassehi, M., Routing on Longest-Matching Prefixes, IEEE/ACM Trans. on Networking, vol. 4, no. 1, pages 86-97, Feb., 1996).In this case, to capture the prefix in packets with prefixes of different lengths and find the IP address corresponding to the longest prefix, the LPM algorithm (matching the longest prefix) based on the so-called "trie structure" or Patricia data structure ( A rational algorithm for finding information encoded with alphanumeric characters) (See Doeringer, W., Karjoth, G. and Nassehi, M., Routing on Longest-Matching Prefixes, IEEE / ACM Trans. On Networking, vol. 4, no . 1, pages 86-97, Feb., 1996).

Алгоритм LPM подробно описывается ниже со ссылками на таблицу 1. Таблица 1 является простым примером маршрутных записей, содержащихся в таблице маршрутизации (или пересылки). Звездочка указывает на возможность заполнения позиции любой цифрой: "0" или "1", хотя в случае использования протокола IPv4 длина самого префикса не может превышать 32.The LPM algorithm is described in detail below with reference to Table 1. Table 1 is a simple example of routing entries contained in a routing table (or forwarding). The asterisk indicates the possibility of filling the position with any number: "0" or "1", although in the case of using IPv4, the length of the prefix itself cannot exceed 32.

Figure 00000002
Figure 00000002

Маршрутная запись или маршрут представляется IP адресом: :={<networkprefix>,<xost number>}. Когда IP адрес назначения представляет собой '10010101000...0', первый бит IP адреса назначения сравнивается с сетевыми префиксами (просто префиксами), содержащимися в таблице маршрутизации. В результате такие префиксы, как '0*', '01010*', '010101*' и '0101011*' отбрасываются, поскольку у них первый бит начинается с '0'. Когда данный адрес назначения сравнивается с остальными префиксами, префиксы '11*', '1110*' и '1001010101*' исключаются, поскольку они не совпадают с адресом назначения, начиная со второго или десятого бита. Из подходящих префиксов (например, '1*', '10*' и '100101010*') в качестве самого длинного (или самого конкретного) префикса выбирается '100101010*', и IP пакет с IP адресом назначения пересылается на соседний маршрутизатор через интерфейс '10'.The route record or route is represented by the IP address:: = {<networkprefix>, <xost number>}. When the destination IP address is '10010101000 ... 0', the first bit of the destination IP address is compared with the network prefixes (simply prefixes) contained in the routing table. As a result, prefixes such as '0 *', '01010 *', '010101 *' and '0101011 *' are discarded because they have the first bit starting with '0'. When this destination address is compared with other prefixes, the prefixes '11 * ',' 1110 * 'and' 1001010101 * 'are excluded because they do not match the destination address starting from the second or tenth bit. Of the appropriate prefixes (for example, '1 *', '10 * 'and' 100101010 * '),' 100101010 * 'is selected as the longest (or most specific) prefix, and the IP packet with the destination IP address is sent to the neighboring router via the interface '10'.

Кроме того, в кэш-памяти того или иного процессора (процессора маршрутизации или процессора пересылки) хранится недавно анонсированный алгоритм поиска маршрутов для сокращения времени доступа к памяти. Хотя алгоритм поиска маршрутов на основе таблицы маршрутизации гарантирует эффективный поиск, он не может изменить таблицу маршрутизации (или пересылки). Следовательно, использование алгоритма поиска маршрутов может вызвать задержку, связанную с необходимостью отражения изменений в таблице маршрутизации.In addition, a recently announced route search algorithm is stored in the cache memory of a particular processor (routing processor or forwarding processor) to reduce memory access time. Although the route-finding algorithm based on the routing table guarantees efficient searches, it cannot modify the routing table (or forwarders). Therefore, using the route search algorithm may cause a delay associated with the need to reflect changes in the routing table.

Вдобавок таблица маршрутизации в процессоре маршрутизации копируется через карту DMA (прямой доступ к памяти), карту IPC (межпроцессорная связь) или коммутационную структуру, а затем подается в таблицу пересылки в процессоре пересылки. В этот момент необходимо построить новую таблицу пересылки, а не только добавить или удалить измененные маршруты. Это может привести к дополнительной временной задержке, а также к тому, что внутренняя память маршрутизатора или системная шина станет узким местом из-за увеличения пропускной способности памяти при запросе на доступ к памяти со стороны маршрутизатора.In addition, the routing table in the routing processor is copied through a DMA card (direct memory access), an IPC card (interprocess communication), or a switching structure, and then fed to the forwarding table in the forwarding processor. At this point, you need to build a new forwarding table, not just add or remove changed routes. This can lead to additional time delay, as well as to the fact that the internal memory of the router or the system bus will become a bottleneck due to the increase in memory bandwidth when requesting access to memory from the router.

Кроме того, в ряде алгоритмов начальную таблицу маршрутизации (или пересылки) необходимо строить с использованием информации о достижимости связей, представляющей текущее состояние связей маршрутизатора. Следовательно, для того чтобы последовательно вводить в таблицу маршрутизации информацию о достижимости связей, заранее необходим дополнительный процесс сортировки каждого маршрута в соответствии с длиной префикса (См. Degermark, М., Brodnik, A., Carlsson, S. and Pink, S., Small Forwarding Tables for Fast Routing Lookups, In Proceedings of ACM SIGCOMM '97, pages 3-14, Cannes, France, 1997; Srinivasan, V. and Varghese, G., Faster IP Lookups using Controlled Prefix Expansion, In Proceedings of ACM Sigmetries '98 Conf., pages 1-11, 1998; Lampson, В., Srinivasan, V. and Varghese, G., IP Lookups using Multi-way and Multicolumn Search, In IEEE Infocom, pages 1248-1256, 1998; Tzeng, H. and Pryzygienda, Т., On Fast Address-Lookup Algorithms, IEEE Journal on Selected Areas in Communications, Vol. 17, No. 6, pages 1067-1082, June, 1999; Waldvogel, M., Varghese, G., Turner, J. and Plattner, В., Scalable High Speed IP Routing Lookups, In Proceedings of ACM SIGCOMM '97, Cannes, France, pages 25-37, 1997; and Waldvogel, M., Varghese, G., Turner, J. and Plattner, В., Scalable Best Matching Prefix Lookups, In Proceedings of PODC '98, Puerto Vallarta, page, 1998).In addition, in a number of algorithms, the initial routing table (or forwarding) must be constructed using the connection reachability information representing the current state of the router's connections. Therefore, in order to sequentially enter information on the reachability of connections in the routing table, an additional process of sorting each route in accordance with the prefix length is necessary in advance (See Degermark, M., Brodnik, A., Carlsson, S. and Pink, S., Small Forwarding Tables for Fast Routing Lookups, In Proceedings of ACM SIGCOMM '97, pages 3-14, Cannes, France, 1997; Srinivasan, V. and Varghese, G., Faster IP Lookups using Controlled Prefix Expansion, In Proceedings of ACM Sigmetries '98 Conf., Pages 1-11, 1998; Lampson, B., Srinivasan, V. and Varghese, G., IP Lookups using Multi-way and Multicolumn Search, In IEEE Infocom, pages 1248-1256, 1998; Tzeng, H. and Pryzygienda, T., On Fast Address-Lookup Algorithms, IEEE Journal on Selected Areas in Communications, Vol. 17, No. 6 , pages 1067-1082, June, 1999; Waldvogel, M., Varghese, G., Turner, J. and Plattner, B., Scalable High Speed IP Routing Lookups, In Proceedings of ACM SIGCOMM '97, Cannes, France, pages 25-37, 1997; and Waldvogel, M., Varghese, G., Turner, J. and Plattner, B., Scalable Best Matching Prefix Lookups, In Proceedings of PODC '98, Puerto Vallarta, page, 1998).

Использование в таблице маршрутизации обычных структур данных, таких как базисное дерево или trie-структура Patricia, не только приводит к увеличению количества обращений к памяти, необходимых для нахождения пути для пакета, но также требует значительного времени обновления для отражения изменений в маршрутах, возникших в результате установки или удаления маршрутов из соседних маршрутизаторов соответствующего маршрутизатора. В работе Degermark, M., Brodnik, A., Carlsson, S. and Pink, S. в "Small Forwarding Tables for Fast Routing Lookups", in Proceedings of ACM SIGCOMM'97, pages 3-14, Cannes, France, 1997 предложена компактная таблица пересылки, которая может храниться в кэш-памяти процессора пересылки, но в ней трудно отражать изменения в маршрутах. Способ управляемого расширения префикса, предложенный в работе Srinivasan, V. and Varghese, G., Faster IP Lookups using Controlled Prefix Expansion, in Proceedings of ACM Sigmetrics 98 Conf., pages 1-11, 1998 (см. патент США №6011795, выданный George Varghese и Srinivasan на "Способ и устройство быстрого иерархического поиска адреса с использованием управляемого расширения префикса”), и алгоритм быстрого поиска адреса, предложенный Tzeng, Н. и Pryzygienda, Т., "On Fast Address-Lookup Algoritms, IEEE Journal on Selected Areas in Communications, Vol. 17, No.6, pages 1067-1082, June 1999, также основаны на использовании trie-структуры с переменной разрешающей способностью, но при применении этого алгоритма возникают проблемы при добавлении и удалении маршрутов, поскольку структуры данных основаны на trie-структуре (см. патент США №6061712 на “Способ поиска с использованием IP таблицы маршрутизации” IP и патент США №6067574 на “Высокоскоростную маршрутизацию с использованием процедуры сжатия дерева” на имя Hong-Yi Tzeng). Алгоритм связного поиска (Waldvogel, M., Varghese, G., Turner, J. and Plattner, В., Scalable High Speed IP Routing Lookups, In Proceedings of ACM SIGCOMM '97, Cannes, France, pages 25-37, 1997; and Waldvogel, M., Varghese, G., Turner, J. and Plattner, В., Scalable Best Matching Prefix Lookups, In Proceedings of PODC '98, Puerto Vallarta, page, 1998), основанный на отображении trie-структуры в двоичное дерево с помощью хэш-таблиц и полной префиксной trie-структуры на основе trie-структуры с переменной разрешающей способностью (Tzeng, H. and Pryzygienda, Т., On Fast Address-Lookup Algorithms, IEEE Journal on Selected Areas in Communications, Vol. 17, No. 6, pages 1067-1082, June, 1999), оказывается неэффективным из-за необходимости обновления записей измененных маршрутов, поскольку эти структуры данных основаны на trie-структуре (см. патент США №6018524, выданный Jonathan Turner, George Varghese и Marcel Waldvogel "Scalable High Speed IP Routing Lookups".The use of conventional data structures in the routing table, such as the base tree or the Patricia trie structure, not only increases the number of memory calls required to find the path for the packet, but also requires a significant update time to reflect changes in routes that result from setting or removing routes from neighboring routers of the corresponding router. Degermark, M., Brodnik, A., Carlsson, S. and Pink, S. in "Small Forwarding Tables for Fast Routing Lookups", in Proceedings of ACM SIGCOMM'97, pages 3-14, Cannes, France, 1997 A compact forwarding table is proposed that can be stored in the forwarding processor cache, but it is difficult to reflect changes in routes in it. A method for controlled extension of a prefix proposed by Srinivasan, V. and Varghese, G., Faster IP Lookups using Controlled Prefix Expansion, in Proceedings of ACM Sigmetrics 98 Conf., Pages 1-11, 1998 (see U.S. Patent No. 6,011795, issued George Varghese and Srinivasan on “A Method and Device for Quick Hierarchical Address Search Using a Managed Prefix Extension”), and the Fast Address Search Algorithm proposed by Tzeng, N. and Pryzygienda, T., “On Fast Address-Lookup Algoritms, IEEE Journal on Selected Areas in Communications, Vol. 17, No.6, pages 1067-1082, June 1999, are also based on the use of a variable resolution trie structure, but when applying this algorithm, problems arise when adding and removing routes, since data structures are based on a trie structure (see US patent No. 6061712 for “Search method using the IP routing table” IP and US patent No. 6067574 for “High-speed routing using the tree compression procedure” in the name of Hong-Yi Tzeng). Connected Search Algorithm (Waldvogel, M., Varghese, G., Turner, J. and Plattner, B., Scalable High Speed IP Routing Lookups, In Proceedings of ACM SIGCOMM '97, Cannes, France, pages 25-37, 1997; and Waldvogel, M., Varghese, G., Turner, J. and Plattner, B., Scalable Best Matching Prefix Lookups, In Proceedings of PODC '98, Puerto Vallarta, page, 1998), based on the mapping of the trie structure to binary a tree using hash tables and a full prefix trie structure based on a variable resolution trie structure (Tzeng, H. and Pryzygienda, T., On Fast Address-Lookup Algorithms, IEEE Journal on Selected Areas in Communications, Vol. 17 , No. 6, pages 1067-1082, June, 1999), is ineffective due to the need to update records modified x routes, as these data structures are based on trie-structure (see. US Patent №6018524 issued Jonathan Turner, George Varghese and Marcel Waldvogel "Scalable High Speed IP Routing Lookups".

Кроме того, были предложены другие варианты trie-структуры. Например, предложена схема со сдвоенной trie-структурой (Kijkanjanarat, Т. and Chao, H., Fast IP Lookups Using a Two-trie Data Structure, In Proceedings of Globecom '99, 1999), где для сокращения времени поиска связаны две trie-структуры, а также и trie-структура LC (Nillson, S. and Karlsoson, G., IP-Addresses Lookup Using LC-Tries, IEEE Journal on Selected Areas in Communications, Vol.17, No.16, pages 1083-1092, 1999) для уменьшения длины уровня в trie-структуре, и trie-структура DP (Doeringer, W., Karjoth, G. and Nassehi, M., Routing on Longest-Matching Prefixes, IEEE/ACM Trans. on Networking, vol.4, no.1, pages 86-97, Feb., 1996). Однако и в них возникают проблемы при отражении измененных маршрутов в таблице маршрутизации (или пересылки).In addition, other variants of the trie structure have been proposed. For example, a scheme with a double trie structure is proposed (Kijkanjanarat, T. and Chao, H., Fast IP Lookups Using a Two-trie Data Structure, In Proceedings of Globecom '99, 1999), where two trie- are connected to reduce the search time structures, as well as the trie structure of LC (Nillson, S. and Karlsoson, G., IP-Addresses Lookup Using LC-Tries, IEEE Journal on Selected Areas in Communications, Vol.17, No.16, pages 1083-1092, 1999) to reduce the level length in the trie structure, and the trie structure of DP (Doeringer, W., Karjoth, G. and Nassehi, M., Routing on Longest-Matching Prefixes, IEEE / ACM Trans. On Networking, vol. 4 , no.1, pages 86-97, Feb., 1996). However, they also have problems reflecting changed routes in the routing table (or forwarding).

Кроме того, хотя вышеупомянутые схемы способствуют сокращению времени поиска, остается проблема, касающаяся обновления маршрутов. Также были предложены схемы для уменьшения времени поиска на основе аппаратных средств. В работе Gupta, P., Lin, S. and McKeown, N., Routing Lookups in Hardware at Memory Access Speeds, In Proceedings of IEEE INFOCOM '98 Conf., pages 1240-1247, 1998 предложено решение на основе использования многомерной памяти. При этом возможно сокращение времени поиска по сравнению с вариантами на основе программных средств, но это предполагает использование значительного объема памяти и дополнительных расходов при переходе на версию IPv6. В работе McAuley, A. and Francis, P., Fast Routing Table Lookup Using CAMs, In Proceedings of IEEE INFOCOM '93, Vol.3, pages 1382-1391, 1993, предложена схема с использованием САМ (ассоциативная память), но из-за высокой стоимости САМ этот вариант в настоящее время не рассматривается. В работе Huang, N. и Zhao, S., в A Novel IP-Routing Lookup Scheme and Hardware Architecture for Multigigabit Switching Routers, IEEE Journal on Selected Areas in Communications, Vol. 17, No. 6, pages 1093-1104, June, 1999 предложен алгоритм косвенного поиска с обращением к конвейерной памяти для уменьшения числа обращений к памяти, хотя этот вариант хуже, чем переход на версию IPv6.In addition, although the aforementioned schemes contribute to a reduction in search time, there remains a problem regarding updating routes. Circuits have also been proposed to reduce hardware-based search time. Gupta, P., Lin, S. and McKeown, N., Routing Lookups in Hardware at Memory Access Speeds, In Proceedings of IEEE INFOCOM '98 Conf., Pages 1240-1247, 1998, proposed a solution based on the use of multidimensional memory. At the same time, it is possible to reduce the search time compared to the options based on software, but this involves the use of a significant amount of memory and additional costs when switching to the IPv6 version. McAuley, A. and Francis, P., Fast Routing Table Lookup Using CAMs, In Proceedings of IEEE INFOCOM '93, Vol.3, pages 1382-1391, 1993, proposed a scheme using CAM (associative memory), but from Due to the high cost of CAM, this option is currently not being considered. Huang, N. and Zhao, S., in A Novel IP-Routing Lookup Scheme and Hardware Architecture for Multigigabit Switching Routers, IEEE Journal on Selected Areas in Communications, Vol. 17, No. 6, pages 1093-1104, June, 1999, an indirect search algorithm with access to pipelined memory is proposed to reduce the number of memory accesses, although this option is worse than switching to IPv6.

Сущность изобретенияSUMMARY OF THE INVENTION

Таким образом, задачей настоящего изобретения является создание способа для выполнения высокоскоростных поисков IP маршрутов и управления таблицами маршрутизации/пересылки, способного минимизировать время доступа к памяти с использованием рандомизированного алгоритма, в результате чего гарантируется экономически эффективное использование памяти.Thus, it is an object of the present invention to provide a method for performing high-speed IP route lookups and managing routing / forwarding tables capable of minimizing memory access time using a randomized algorithm, thereby ensuring cost-effective memory utilization.

Также задачей настоящего изобретения является создание способа для высокоскоростных поисков IP маршрутов и управления таблицами маршрутизации/пересылки, который позволит легко изменять маршруты и управлять операциями добавления и удаления маршрутов.It is also an object of the present invention to provide a method for high-speed IP route lookups and routing / forwarding table management that makes it easy to change routes and control the operations of adding and removing routes.

Кроме того, задачей настоящего изобретения является создание способа для выполнения высокоскоростных поисков IP маршрутов и управления таблицами маршрутизации/пересылки, который позволит эффективно строить таблицу маршрутизации и/или таблицу пересылки без сортировки подходящих маршрутов в соответствии с длиной префикса маршрутов, вводимых в процессе построения таблиц.In addition, it is an object of the present invention to provide a method for performing high-speed searches of IP routes and managing routing / forwarding tables, which will allow efficiently building a routing table and / or forwarding table without sorting suitable routes according to the length of the route prefix entered during the table building process.

Согласно первому аспекту настоящего изобретения предлагается способ для поиска IP адреса, имеющего в качестве ключа диапазон длин префикса, с использованием списка пропусков, содержащего узел заголовка, который имеет ключ с заранее установленным максимальным значением, и множество узлов (подузлов), каждый из которых имеет ключ фиксированного (или переменного) диапазона, заранее установленный в убывающем порядке, и сохраняет маршрутные записи, соответствующие длинам префикса, в хэш-таблицах, связанных с соответствующими длинами префикса.According to a first aspect of the present invention, there is provided a method for finding an IP address having a prefix length range as a key, using a skip list containing a header node that has a key with a predetermined maximum value, and a plurality of nodes (subnodes), each of which has a key fixed (or variable) range, predefined in descending order, and saves route entries corresponding to prefix lengths in hash tables associated with corresponding prefix lengths .

Согласно второму аспекту настоящего изобретения способ для создания таблицы IP маршрутизации с использованием списка пропусков включает: создание узла заголовка, имеющего максимальный уровень, для управления каждым узлом в списке пропусков; вставку множества узлов, имеющих выделенный диапазон префикса, в список пропусков; и создание хэш-таблицы для сохранения маршрутных записей, заданных в каждом узле, соответствующем диапазону префикса.According to a second aspect of the present invention, a method for creating an IP routing table using a skip list includes: creating a header node having a maximum level for managing each node in the skip list; Insert a plurality of nodes having a selected prefix range into the skip list; and creating a hash table to save the routing entries specified in each node corresponding to the prefix range.

Согласно третьему аспекту настоящего изобретения предлагается способ для обновления таблицы маршрутизации, использующей список пропусков, где маршрутные записи запоминаются в виде хэш-таблицы в соответствии с длиной префикса, установленной в каждом узле, сформированном в соответствии с диапазоном длин префикса IP адреса. Способ включает: нахождение узла, в котором установлен диапазон префикса, соответствующий длине префикса обновляемого маршрута; поиск в хэш-таблице, имеющей ту же длину префикса, что и обновляемый маршрут в найденном узле; и обновление соответствующего маршрута в хэш-таблице, когда найдена хэш-таблица.According to a third aspect of the present invention, there is provided a method for updating a routing table using a skip list where routing entries are stored in a hash table in accordance with the prefix length set in each node configured in accordance with the IP address prefix length range. The method includes: finding a node in which a prefix range is set corresponding to the prefix length of the updated route; search in a hash table having the same prefix length as the updated route in the found node; and updating the corresponding route in the hash table when the hash table is found.

Согласно четвертому аспекту настоящего изобретения предлагается способ поиска маршрута по таблице маршрутизации с использованием списка пропусков, где маршрутные записи запоминаются в виде хэш-таблицы в соответствии с заранее установленными длинами префикса в каждом узле, сформированном в соответствии с распределением диапазона префикса IP адреса. Способ включает в себя: нахождение соседнего узла, начиная с первого узла списка пропусков; сравнение адреса назначения с соответствующими хэш-таблицами в соответствующем узле; и принятие совпадающего префикса в качестве самого длинного префикса, когда хэш-таблица содержит адрес назначения.According to a fourth aspect of the present invention, there is provided a method for finding a route from a routing table using a skip list, where the route entries are stored in a hash table in accordance with predefined prefix lengths at each node formed in accordance with the distribution of the IP address prefix range. The method includes: finding a neighboring node, starting from the first node of the skip list; comparing the destination address with the corresponding hash tables in the corresponding node; and accepting the matching prefix as the longest prefix when the hash table contains the destination address.

Краткое описание чертежейBrief Description of the Drawings

Настоящее изобретение и присущие ему преимущества поясняются в последующем подробном описании, иллюстрируемом чертежами, на которых одинаковые ссылочные позиции указывают одинаковые или подобные компоненты и на которых представлено следующее:The present invention and its inherent advantages are explained in the following detailed description, illustrated by drawings, in which the same reference numerals indicate the same or similar components and which show the following:

фиг.1 - схема, иллюстрирующая распределенную архитектуру маршрутизатора, для которой применимо настоящее изобретение;1 is a diagram illustrating a distributed router architecture for which the present invention is applicable;

фиг.2 - схема, иллюстрирующая параллельную архитектуру маршрутизатора, для которой применимо настоящее изобретение;2 is a diagram illustrating a parallel architecture of a router for which the present invention is applicable;

фиг.3 - схема, иллюстрирующая структуру механизма пересылки, для которой применимо настоящее изобретение;3 is a diagram illustrating the structure of a forwarding mechanism for which the present invention is applicable;

фиг.4 - схема, иллюстрирующая структуру процессора маршрутизации;4 is a diagram illustrating the structure of a routing processor;

фиг.5 - диаграмма, поясняющая алгоритм совпадения по самому длинному префиксу (LPM) согласно варианту осуществления настоящего изобретения;5 is a diagram illustrating a longest prefix matching algorithm (LPM) according to an embodiment of the present invention;

фиг.6 - диаграмма, иллюстрирующая структуру списка пропусков согласно варианту осуществления настоящего изобретения;6 is a diagram illustrating the structure of a skip list according to an embodiment of the present invention;

фигуры 7А и 7В - трафики, иллюстрирующие измеренные значения распределений длины префикса в сети Интернет;figures 7A and 7B are traffic illustrating the measured values of the distribution of the length of the prefix on the Internet;

фиг.8 - диаграмма, иллюстрирующая структуру узла заголовка согласно варианту осуществления настоящего изобретения;8 is a diagram illustrating a structure of a header node according to an embodiment of the present invention;

фиг.9 - диаграмма, объясняющая операцию построения списка пропусков согласно варианту осуществления настоящего изобретения;9 is a diagram explaining an operation for constructing a skip list according to an embodiment of the present invention;

фигуры 10А и 10В - диаграммы, раскрывающие операцию построения таблицы маршрутизации в зависимости от значений длины префикса согласно варианту осуществления настоящего изобретения;Figures 10A and 10B are diagrams illustrating an operation of constructing a routing table depending on prefix length values according to an embodiment of the present invention;

фиг.11 - блок-схема, иллюстрирующая процедуру создания таблицы маршрутизации согласно варианту осуществления настоящего изобретения;11 is a flowchart illustrating a procedure for creating a routing table according to an embodiment of the present invention;

фиг.12 - блок-схема, иллюстрирующая процедуру обновления таблицы маршрутизации согласно варианту осуществления настоящего изобретения;12 is a flowchart illustrating a routing table update procedure according to an embodiment of the present invention;

фигуры 13 и 14 - диаграммы, иллюстрирующие структуры списка пропусков для объяснения операций поиска и обновления маршрутов согласно варианту осуществления настоящего изобретения;Figures 13 and 14 are diagrams illustrating skip list structures for explaining search operations and updating routes according to an embodiment of the present invention;

фиг.15 - блок-схема, иллюстрирующая процесс поиска маршрута согласно варианту осуществления настоящего изобретения; и15 is a flowchart illustrating a route search process according to an embodiment of the present invention; and

фиг.16 - диаграмма, иллюстрирующая структуру списка пропусков для объяснения полного процесса поиска согласно варианту осуществления настоящего изобретения.FIG. 16 is a diagram illustrating a structure of a skip list for explaining a complete search process according to an embodiment of the present invention.

Подробное описание предпочтительного варианта осуществления изобретенияDetailed Description of a Preferred Embodiment

Ниже со ссылками на чертежи описан предпочтительный вариант осуществления настоящего изобретения. В последующем описании известные функции и конструкции подробно не описываются, чтобы не затемнять сущность изобретения ненужными деталями.Below, with reference to the drawings, a preferred embodiment of the present invention is described. In the following description, well-known functions and constructions are not described in detail so as not to obscure the invention with unnecessary details.

Сначала описывается маршрутизатор и способ маршрутизации, к которому применимо настоящее изобретение. В работе Chan и др. (A Framework for Optimizing the Cost and Performance of Next-Generation IP Routers, IEEE Journal of Selected Areas, in Communications, Vol. 17, No.6, pages 1013-1029, June, 1999) классифицируют два главных варианта архитектуры высокоскоростного маршрутизатора: распределенная архитектура и параллельная архитектура, причем основное различие между ними определяется местоположением процессора пересылки. Тенденция развития структуры высокоскоростного магистрального маршрутизатора скорее направлена к распределенной, а не к известной централизованной архитектуре.First, a router and a routing method are described to which the present invention is applicable. Chan et al. (A Framework for Optimizing the Cost and Performance of Next-Generation IP Routers, IEEE Journal of Selected Areas, in Communications, Vol. 17, No.6, pages 1013-1029, June, 1999) classify two The main architecture options for a high-speed router are: distributed architecture and parallel architecture, the main difference between them being determined by the location of the forwarding processor. The development trend of the structure of the high-speed backbone router is rather directed towards a distributed rather than a well-known centralized architecture.

На фиг.1 показан маршрутизатор с распределенной архитектурой, к которой применимо настоящее изобретение. Согласно фиг.1 маршрутизатор включает в себя: линейный модуль платы 110, снабженный процессором пересылки FE, через который выполняется ввод и вывод пакетов; процессор маршрутизации 120 для построения начальной таблицы маршрутизации RT и управления таблицей маршрутизации и коммутационная структура 130, используемая при коммутации пакетов на определенный порт в маршрутизаторе.Figure 1 shows a router with a distributed architecture to which the present invention is applicable. 1, a router includes: a line module of a board 110 provided with an FE forwarder through which packet input and output are performed; a routing processor 120 for constructing an initial RT routing table and managing a routing table; and a switching structure 130 used when switching packets to a specific port in a router.

Процессор маршрутизации 120 содержит таблицу маршрутизации RT, обновляемую путем отражения в ней последних измененных маршрутов. Таблица маршрутизации RT формируется на основе таких протоколов маршрутизации, как RIP (протокол маршрутной информации), OSPF (первоочередное открытие кратчайших маршрутов) или BGP-4 (пограничный межсетевой протокол 4), но список протоколов не ограничивается здесь указанными. Из таблицы маршрутизации в процессоре маршрутизации 120 копируется компактная таблица, называемая таблицей пересылки FT, которая предназначена для эффективного поиска. Таблица пересылки FT предназначается для эффективного поиска, что достигается за счет снижения эффективности добавлений и удалений маршрутов.Routing processor 120 comprises an RT routing table updated by reflecting the most recently changed routes therein. The routing table RT is formed on the basis of routing protocols such as RIP (routing information protocol), OSPF (first discovery of the shortest routes) or BGP-4 (border Internet protocol 4), but the list of protocols is not limited to those indicated here. From the routing table in routing processor 120, a compact table is called a FT forwarding table, which is designed to be efficiently searched. FT forwarding table is designed for efficient search, which is achieved by reducing the efficiency of route additions and deletions.

Если пакет, поступающий из линейного модуля платы 110, не может найти путь к месту своего назначения из таблицы пересылки FT, то соответствующий пакет должен пройти через коммутационную структуру 130 в процессор маршрутизации 120 для решения проблемы несогласованного маршрута. После нахождения места назначения пакет снова должен быть направлен в коммутационную структуру 130 для пересылки в выходной линейный модуль платы 110. В противном случае, если процессор маршрутизации 120 не может найти путь к месту назначения даже с помощью таблицы маршрутизации RT, то тогда такой пакет в процессоре маршрутизации 120 отбрасывается.If a packet arriving from the line module of the board 110 cannot find the path to its destination from the FT forwarding table, then the corresponding packet must go through the switching structure 130 to the routing processor 120 to solve the problem of an inconsistent route. After finding the destination, the packet must again be routed to the switching structure 130 for forwarding to the output line module of the board 110. Otherwise, if the routing processor 120 cannot find the path to the destination even using the routing table RT, then such a packet is in the processor routing 120 is discarded.

В работе Asthana, A., Delph, С., Jagadish, H. и Krzyzanowski, P., Towards a Gigabit IP Router, J. High Speed Network, vol. 1, no. 4, pages 281-288, 1992 и Partridge и др. (А 50-Gb/s IP Router, IEEE/ACM Trans. on Networking, vol. 6, no. 3, pages 237-248, 1998) раскрывается маршрутизатор с параллельной архитектурой. На фиг.2 показан маршрутизатор с параллельной архитектурой, к которому применимо настоящее изобретение. В маршрутизаторе с параллельной архитектурой, показанной на фиг.2, каждый процессор пересылки 112 с таблицей пересылки FT отделен от линейного модуля платы 110. В указанной параллельной архитектуре для поиска маршрутов и параллельной пакетной обработки в каждом механизме пересылки используется модель "клиент-сервер".Asthana, A., Delph, C., Jagadish, H., and Krzyzanowski, P., Towards a Gigabit IP Router, J. High Speed Network, vol. 1, no. 4, pages 281-288, 1992 and Partridge et al. (A 50-Gb / s IP Router, IEEE / ACM Trans. On Networking, vol. 6, no. 3, pages 237-248, 1998) a parallel router is disclosed architecture. FIG. 2 shows a parallel architecture router to which the present invention is applicable. In the parallel architecture router shown in FIG. 2, each forwarding processor 112 with the FT forwarding table is separate from the line module of the board 110. In the specified parallel architecture, a client-server model is used in each forwarding mechanism to find routes and parallel batch processing.

Таблица маршрутизации в процессоре маршрутизации 120 должна быть разработана таким образом, чтобы она была способна оперативно отражать изменения в маршрутах и легко их поддерживать. Кроме того, добавляемый или удаляемый маршрут должен отражаться в таблице пересылки FT в процессор пересылки 112 настолько быстро, насколько это возможно, и при минимальных затратах. Когда маршрут не отражен, входящий пакет пересылается в процессор маршрутизации 120 через коммутационную структуру 130, что приводит к увеличению задержки передачи из-за прохождения по дополнительному маршруту, необходимому при обработке соответствующего пакета.The routing table in routing processor 120 should be designed so that it is able to quickly reflect changes in routes and easily maintain them. In addition, the route to be added or removed should be reflected in the FT forwarding table to the forwarding processor 112 as fast as possible, and at minimal cost. When the route is not reflected, the incoming packet is sent to the routing processor 120 through the switching structure 130, which leads to an increase in transmission delay due to the passage along the additional route required when processing the corresponding packet.

Хотя изобретение описано со ссылками на распределенный маршрутизатор и параллельный маршрутизатор, специалистам в данной области техники очевидно, что изобретение можно использовать в маршрутизаторе, имеющем архитектуру других типов.Although the invention has been described with reference to a distributed router and a parallel router, it will be apparent to those skilled in the art that the invention can be used in a router having other types of architecture.

На фиг.3 показана структура процессора пересылки 112 в маршрутизаторе с распределенной или параллельной архитектурой. На фиг.4 показана структура процессора маршрутизации 120.Figure 3 shows the structure of the forwarding processor 112 in a router with a distributed or parallel architecture. Figure 4 shows the structure of the routing processor 120.

Согласно фиг.3 процессор пересылки 112 включает n входных интерфейсов, m выходных интерфейсов, n буферов для буферизации пакетов, вводимых через входные интерфейсы, классификатор пакетов для классификации пакетов, запоминаемых в буфере в соответствии с классами или типами, и контроллер поиска маршрутов для передачи пакетов, классифицированных с помощью таблицы пересылки и классификатора пакетов, на соответствующие выходные интерфейсы путем обращения к таблице пересылки.3, the forwarding processor 112 includes n input interfaces, m output interfaces, n buffers for buffering packets input through the input interfaces, a packet classifier for classifying packets stored in the buffer according to classes or types, and a route search controller for transmitting packets classified using the forwarding table and packet classifier to the corresponding output interfaces by accessing the forwarding table.

Согласно фиг.4, процессор маршрутизации 120 включает в себя n входных/выходных интерфейсов для приема и выдачи пакетов от/на коммутационную структуру 130, показанную на фиг. 1 и 2, коммутационный интерфейс для буферизации пакетов, вводимых и выводимых через входные/выходные интерфейсы, и обеспечения взаимодействия между коммутационной структурой 130 и контроллером для поиска маршрутов и обслуживания на следующей ступени, причем контроллер для поиска маршрутов и обслуживания обеспечивает пересылку пакетов, подаваемых из таблицы маршрутизации и коммутационного интерфейса, на соответствующий входной/выходной интерфейс через коммутационный интерфейс путем обращения к таблице маршрутизации.According to FIG. 4, routing processor 120 includes n input / output interfaces for receiving and issuing packets from / to the switching structure 130 shown in FIG. 1 and 2, a switching interface for buffering packets input and output via input / output interfaces, and for ensuring interaction between the switching structure 130 and the controller for finding routes and services in the next step, the controller for searching routes and services forwarding packets from routing tables and the switching interface to the corresponding input / output interface through the switching interface by accessing the routing table.

Согласно стандарту RFC таблица маршрутизации (или пересылки) не ограничивается ни структурами, такими как матрица, дерево и trie-структура, которые в основном и используют для поиска, ни алгоритмами, применяемыми для их обработки. Однако для совпадения по самому длинному префиксу требуется минимальное количество обращений к памяти, а измененные маршруты должны легко обновляться в таблице маршрутизации (или пересылки).According to the RFC standard, the routing (or forwarding) table is not limited to either structures, such as matrix, tree, and trie structures, which are mainly used for searching, or the algorithms used to process them. However, matching the longest prefix requires a minimum number of memory accesses, and changed routes should be easily updated in the routing table (or forwarders).

С этой целью в данном варианте настоящего изобретения используется рандомизированный алгоритм. Рандомизированный алгоритм - это алгоритм, реализующий случайный выбор в ходе своего выполнения. Алгоритм ориентирован на установление вероятности состояния каждого входа. То есть обработка конкретных входных данных основана не на определенной гипотезе, а на вероятности Р (например, на основе подбрасывания монеты). Преимущества использования рандомизированного алгоритма заключаются в его простоте и эффективности.To this end, a randomized algorithm is used in this embodiment of the present invention. A randomized algorithm is an algorithm that implements random selection during its execution. The algorithm is focused on establishing the probability of the state of each input. That is, the processing of specific input data is not based on a specific hypothesis, but on the probability P (for example, based on a coin toss). The advantages of using a randomized algorithm are its simplicity and efficiency.

Использование алгоритма согласно настоящему изобретению, основанного на рандомизированном алгоритме, гарантирует минимальное количество обращений к памяти и простое управление таблицей маршрутизации. Для управления маршрутными записями реконструируется только информация об изменении маршрута в отличие от известного способа, согласно которому реконструируется вся таблица. Кроме того, в отличие от алгоритма поиска маршрута на основе общего дерева или двоичной trie-структуры, алгоритм согласно настоящему изобретению ищет самый длинный префикс с хвоста IP адреса назначения, как показано на фиг.5.Using an algorithm according to the present invention based on a randomized algorithm guarantees a minimum number of memory accesses and simple routing table management. To manage the route records, only information about the change in the route is reconstructed, in contrast to the known method according to which the entire table is reconstructed. In addition, unlike a route search algorithm based on a common tree or binary trie structure, the algorithm according to the present invention searches for the longest prefix from the tail of the destination IP address, as shown in FIG.

Кроме того, в настоящем изобретении используется список пропусков для таблицы маршрутизации (См. Pugh, W, Skip Lists: A Probabilistic Alternatives to Balanced Trees, CACM 33(6), pages 6689-676, 1990).In addition, a skip list for a routing table is used in the present invention (See Pugh, W, Skip Lists: A Probabilistic Alternatives to Balanced Trees, CACM 33 (6), pages 6689-676, 1990).

Список пропусков рассматривается как связный список с n отсортированными узлами и обычно используется в структуре данных типа сбалансированного дерева, к примеру скошенного дерева (См. Sleator, D. и Tarjan, R., Self-Adjusting Binary Search Trees, JACM, Vol. 32, No. 3, July, 1985). Такой подход проще и эффективнее, чем использование сбалансированного дерева, с точки зрения операций ввода и удаления. В настоящем изобретении предлагается вариант списка пропусков для сопоставления по самому длинному префиксу, как показано на фиг.6.The skip list is considered as a linked list with n sorted nodes and is usually used in a data structure such as a balanced tree, such as a skew tree (See Sleator, D. and Tarjan, R., Self-Adjusting Binary Search Trees, JACM, Vol. 32, No. 3, July, 1985). This approach is simpler and more efficient than using a balanced tree in terms of input and delete operations. The present invention provides a variant of the skip list for matching by the longest prefix, as shown in FIG. 6.

На фиг.6 показан вариант списка пропусков согласно варианту осуществления настоящего изобретения. Согласно фиг.6 каждый узел имеет один указатель или множество указателей, а крайний левый узел называется узлом заголовка 210, поскольку все операции согласно данному варианту списка пропусков, такие как поиск, вставки, удаления и обновления, должны начинаться с узла заголовка 210.6 shows an embodiment of a skip list according to an embodiment of the present invention. 6, each node has one pointer or multiple pointers, and the leftmost node is called the header node 210, since all operations according to this option of the skip list, such as searching, inserting, deleting and updating, must start from the header node 210.

Узел заголовка 210 в качестве значения ключа содержит +∞ и указатель (указатели) для указания на следующий узел (узлы). Ключи в узлах 220, 230, 240, 250 и 260 отсортированы в убывающем порядке. Ключ в каждом узле означает "диапазон длины префикса" или "кластеризацию значения длины префикса", причем этот ключ вносится в убывающем порядке. В данном варианте изобретения поиск начинается от "листьев" к "корню" (или "родителю"), то есть в обратной последовательности значений ключа, что в корне отличается от способа на основе известных trie-структур или структур типа дерева.The header node 210 as the key value contains + ∞ and a pointer (s) to point to the next node (s). Keys at nodes 220, 230, 240, 250, and 260 are sorted in descending order. The key in each node means “prefix length range” or “clustering of the prefix length value”, this key being entered in descending order. In this embodiment of the invention, the search begins from “leaves” to “root” (or “parent”), that is, in the reverse sequence of key values, which is fundamentally different from the method based on known trie-structures or structures such as a tree.

Ключ второго узла 220 имеет диапазон длин префикса 32-24, и любой маршрут, имеющий длину префикса, принадлежащую этому диапазону длин префикса, запоминается в хэш-таблице, соответствующей его длине префикса. На фиг.6 показана хэш-таблица 222 с длиной префикса 30 бит и хэш-таблица 224 с длиной префикса 26 бит как пример хэш-таблиц маршрута, принадлежащего диапазону второго узла 220. Кроме того, на фиг.6 показана хэш-таблица 242 с длиной префикса 15 бит в качестве примера хэш-таблицы маршрута, принадлежащего диапазону четвертого узла 240 с диапазоном длин префикса 17-12.The key of the second node 220 has a 32-24 prefix length range, and any route having a prefix length belonging to this prefix length range is stored in a hash table corresponding to its prefix length. FIG. 6 shows a hash table 222 with a prefix length of 30 bits and a hash table 224 with a prefix length of 26 bits as an example of hash tables of a route belonging to the range of the second node 220. In addition, FIG. 6 shows a hash table 242 with a prefix length of 15 bits as an example of a hash table of a route belonging to a range of the fourth node 240 with a range of prefix lengths of 17-12.

Хотя на фиг.6 показан пример, где диапазоны длин префикса различных узлов привязаны к разным значениям длины, то есть пример диапазона префиксов с фиксированным разделением, в диапазоне длин префикса можно также выделить группу узлов с переменной длиной, то есть получить диапазон префиксов с непостоянным (переменным) разделением. В работе Srinivasan, V. и Varghese, G., "Faster IP Lookups using Controlled Prefix Expansion, In Proceedings of ACM sigmetrics '98 Conf., стр. 1-11, 1998, обсуждается способ динамического программирования для разделения диапазона префикса с целью оптимизации хранения данных. В алгоритме согласно настоящему изобретению группу длин префикса можно выделить, используя аналогичный способ. Однако в варианте осуществления настоящего изобретения, показанном на фиг.6, предпочтительно иметь фиксированный диапазон длин префикса, что позволяет избежать дополнительного использования вычислительных ресурсов из-за динамического программирования.Although Fig. 6 shows an example where the prefix length ranges of different nodes are tied to different lengths, that is, an example of a fixed-division prefix range, a group of nodes with a variable length can also be distinguished in the prefix length range, i.e., get a prefix range with a variable ( variable) separation. Srinivasan, V. and Varghese, G., "Faster IP Lookups using Controlled Prefix Expansion, In Proceedings of ACM sigmetrics '98 Conf., Pp. 1-11, 1998, discuss a dynamic programming method for splitting a prefix range for optimization In the algorithm according to the present invention, a group of prefix lengths can be distinguished using a similar method.However, in the embodiment of the present invention shown in Fig. 6, it is preferable to have a fixed range of prefix lengths, which avoids the additional use of computing resources in due to dynamic programming.

В случае использования IPv4, если диапазон длин префикса является фиксированным и равен 8, то тогда общее количество вводимых узлов может составить 5(1+[32/8] (где 32 - максимальное количество битов в адресе IPv4)). Как видно из эмпирических результатов, полученных от IPMA (Система измерений и анализа работы сети Интернет) (http://nic.merit.edu/ipma), распределение действительной базовой длины префикса носит асимметричный характер, то есть предполагает существование локальных особенностей в распределении базовой длины префикса. Следовательно, в настоящем изобретении можно использовать меньшее количество узлов. Например, из фиг.7А и 7В видно, что к длинам префикса от 17 до 27 обращаются чаще всего. Соответственно, можно установить один узел со значением ключа диапазона длин префикса, включающего соответствующую длину префикса, и установить множество узлов, соответствующих другому диапазону длин префикса.In the case of using IPv4, if the prefix length range is fixed and equal to 8, then the total number of input nodes can be 5 (1+ [32/8] (where 32 is the maximum number of bits in an IPv4 address)). As can be seen from the empirical results obtained from IPMA (Measurement and Analysis System for the Internet) (http://nic.merit.edu/ipma), the distribution of the actual base length of the prefix is asymmetric, that is, it assumes the existence of local features in the distribution of the base prefix lengths. Therefore, in the present invention, fewer nodes can be used. For example, FIGS. 7A and 7B show that prefix lengths of 17 to 27 are most often accessed. Accordingly, you can install one node with the key value of the prefix length range, including the corresponding prefix length, and set up many nodes corresponding to another prefix length range.

Согласно фиг.6, переменная 'MaxLevel' узла заголовка 210 представляет значение максимального уровня среди всех узлов, принадлежащих списку пропусков, то есть общее количество указателей в узле заголовка, указывающих на другие узлы, при этом каждый узел поддерживает значение ключа 'x→key' (или key(x)) и указатель (указатели) 'x→forward [L]' (или next (xL)) для обозначения указателя от узла х для указания на соседний узел на уровне L узла х.6, the variable 'MaxLevel' of the header node 210 represents the maximum level among all nodes belonging to the skip list, that is, the total number of pointers in the header node pointing to other nodes, with each node supporting the key value 'x → key' (or key (x)) and pointer (s) 'x → forward [L]' (or next (xL)) to indicate a pointer from node x to point to a neighboring node at level L of node x.

Каждый ключ в узле, кроме узла заголовка 210, имеет диапазон или набор длин префикса. На фиг.6 узел 220 имеет маршрутные записи, лежащие в диапазоне от 32 до 24, причем каждое значение длины префикса имеет свою собственную хэш-таблицу для запоминания маршрутных записей, совпадающих с соответствующей длиной префикса. Если имеются маршрутные записи, соответствующие каждому значению длины префикса в диапазоне от 32 до 24 включительно, то тогда соответствующий узел будет иметь девять (9) указателей, указывающих на девять (9) разных хэш-таблиц. В каждой хэш-таблице хранятся только те маршрутные записи, которые точно соответствуют длине префикса. По этой причине этот вариант списка пропусков называют списком пропусков с k-нарным хэшированным узлом (узлами).Each key in the node, except the header node 210, has a range or set of prefix lengths. 6, the node 220 has routing entries ranging from 32 to 24, with each prefix length value having its own hash table for storing routing entries matching the corresponding prefix length. If there are route entries corresponding to each prefix length value in the range from 32 to 24 inclusive, then the corresponding node will have nine (9) pointers pointing to nine (9) different hash tables. Each hash table only stores route entries that exactly match the length of the prefix. For this reason, this version of the skip list is called the skip list with a k-hashed node (s).

Алгоритм на основе списка пропусков согласно настоящему изобретению поясняется в последующем описании способа создания узла заголовка и построения вариантного списка пропусков.The skip list algorithm of the present invention is explained in the following description of a method for creating a header node and constructing a skip list.

На фиг.8 представлена диаграмма, поясняющая способ создания узла заголовка согласно варианту осуществления настоящего изобретения. Согласно фиг.8 узел заголовка имеет значение ключа +∞, a MaxLevel=5, (1+[32/8]), где MaxLevel=1+[W/n], W - длина IP адреса в битах, например, для IPv4 - 32, а для IPv6 - 128; a n - диапазон префикса. Поскольку узел заголовка должен покрыть все узлы исключительно в пределах списка пропусков, в случае использования версии IPv4 значение MaxLevel=33 подходит для структур данных, содержащих до 232 маршрутов, если вероятность р равна 1/2, а диапазон префикса равен 1. Узел заголовка имеет прямые указатели MaxLevel, проиндексированные от 0 до MaxLevel-1. В данном варианте настоящего изобретения из-за использования кластеризации диапазона префикса потребуется MaxLevel=5 в предположении, что фиксированный диапазон префикса равен 8.8 is a diagram for explaining a method for creating a header node according to an embodiment of the present invention. According to Fig. 8, the header node has the key value + ∞, a MaxLevel = 5, (1+ [32/8]), where MaxLevel = 1 + [W / n], W is the IP address length in bits, for example, for IPv4 - 32, and for IPv6 - 128; an is the prefix range. Since the header node must cover all nodes exclusively within the skip list, if IPv4 is used, MaxLevel = 33 is suitable for data structures containing up to 2 32 routes, if the probability p is 1/2 and the prefix range is 1. The header node has MaxLevel direct pointers indexed from 0 to MaxLevel-1. In this embodiment of the present invention, due to the use of clustering of the prefix range, MaxLevel = 5 is required under the assumption that the fixed prefix range is 8.

После создания узла заголовка строится вариант списка пропусков, как показано на фиг.9, где раскрывается операция построения списка пропусков согласно варианту осуществления настоящего изобретения. Если указатель верхнего уровня в узле заголовка нулевой, то есть если нет соседних узлов, или, другими словами, подузлов, соединенных с указателями узла заголовка, то уровень уменьшают на 1, пока указатель не укажет на соседний узел. Как показано на фиг.9, создается первый узел (а) со значением диапазона префикса 32-24, где указатель уровня 0 в узле заголовка указывает на первый узел. После этого последовательно создаются второй узел (b) с диапазоном префикса 23-18 и третий узел (с) с диапазоном префикса 17-12. В ходе этого процесса создается множество узлов, покрывающих каждый диапазон длины префикса.After creating the header node, a variant of the skip list is constructed, as shown in FIG. 9, where the operation of constructing the skip list according to an embodiment of the present invention is disclosed. If the top level pointer in the header node is zero, that is, if there are no neighboring nodes, or, in other words, subnodes connected to the pointers of the header node, then the level is reduced by 1 until the pointer points to the neighboring node. As shown in FIG. 9, a first node (a) is created with a prefix range value of 32-24, where a level 0 pointer in the header node points to the first node. After that, a second node (b) with a prefix range of 23-18 and a third node (c) with a prefix range of 17-12 are sequentially created. During this process, many nodes are created covering each range of prefix lengths.

Уровень каждого созданного узла устанавливается случайным образом с использованием рандомизированного алгоритма, показанного ниже в Программе 3 согласно настоящему изобретению. Сначала формируется значение случайного действительного числа в интервале (0,1). Если сформированное значение действительного случайного числа меньше заранее установленного эталонного значения вероятности (здесь эталонное значение вероятности устанавливается равным р=1/2 для создания идеального списка пропусков), и уровень соответствующего создаваемого узла также меньше, чем MaxLevel, то тогда уровень соответствующего узла увеличивают. В противном случае создается узел, имеющий значение уровня 0.The level of each created node is set randomly using the randomized algorithm shown below in Program 3 according to the present invention. First, the value of a random real number in the interval (0,1) is formed. If the generated value of the actual random number is less than the predefined reference probability value (here the reference probability value is set to p = 1/2 to create an ideal list of passes), and the level of the corresponding created node is also lower than MaxLevel, then the level of the corresponding node is increased. Otherwise, a node is created that has a value of level 0.

После построения узлов с диапазонами префикса в списке пропусков необходимо построить таблицу маршрутизации, содержащую маршрутные записи. Далее со ссылками на фиг.10А описывается способ построения таблицы маршрутизации в случае, когда маршрутизатор имеет маршруты с длиной префикса 30.After building nodes with prefix ranges in the skip list, you need to build a routing table containing route entries. Next, with reference to figa describes a method of constructing a routing table in the case when the router has routes with a prefix length of 30.

Согласно фиг.10А, если маршрутизатор имеет маршруты с длиной префикса 30, то ведется поиск в первом узле 220 с диапазоном длин префикса 32-24, а затем добавляемые маршрутные записи вводятся в виде хэш-таблицы. Узел в списке пропусков может иметь разные хэш-таблицы в зависимости от диапазона длин префикса. Согласно этой процедуре, добавляются маршруты с длиной префикса 15, как показано на фиг.10В, где хэш-таблица с длиной префикса 15 создается под узлом 240 с диапазоном префикса 17-12.10A, if the router has routes with a prefix length of 30, then a search is performed in the first node 220 with a range of prefix lengths of 32-24, and then the added route entries are entered as a hash table. A node in the skip list may have different hash tables depending on the range of prefix lengths. According to this procedure, routes with a prefix length of 15 are added, as shown in FIG. 10B, where a hash table with a prefix length of 15 is created under node 240 with a prefix range of 17-12.

Последовательность выполнения процедур создания таблицы маршрутизации согласно варианту осуществления настоящего изобретения представлена на фиг.11. На шаге 11а создается узел заголовка с MaxLevel для покрытия всех узлов в списке пропусков. Затем на шаге 11b в список вставляются узлы с фиксирование разделенным диапазоном префикса. Хотя для простоты в изобретении предполагается использование фиксированного разделения диапазона префикса, можно также допустить использование адаптивного разделения, отражающего действительное распределение длины префикса. После этого на шаге 11с для каждой данной маршрутной записи создается хэш-таблица под узлом с соответствующим диапазоном префикса. Новая схема согласно настоящему изобретению обеспечивает поиск, начиная с маршрутов, имеющих максимальную длину префикса, в отличие от поиска, начинающегося с самых коротких маршрутов, как это имеет место в известных trie-структурах и древовидных структурах.The sequence of procedures for creating a routing table according to a variant implementation of the present invention is presented in Fig.11. In step 11a, a header node with MaxLevel is created to cover all nodes in the skip list. Then, in step 11b, nodes with a divided prefix range are inserted into the list. Although for simplicity, the invention contemplates the use of fixed separation of the prefix range, adaptive separation reflecting the actual distribution of the length of the prefix may also be allowed. After that, in step 11c, a hash table is created for each given route record under the node with the corresponding prefix range. The new scheme according to the present invention provides a search starting from routes having a maximum prefix length, as opposed to a search starting from the shortest routes, as is the case in known trie structures and tree structures.

Маршрутизатор часто получает изменения маршрутов от подсоединенного к нему маршрутизатора (маршрутизаторов). Эти изменения должны найти свое отражение в текущей таблице маршрутизации (или пересылки). Последовательность шагов обновления по новой схеме представлена на фиг.12. Для данного измененного маршрута (префикса), отражаемого в таблице маршрутизации, на шаге 12а узел, соответствующий данной длине префикса, должен быть отброшен. Далее на шаге 12b выполняется поиск в хэш-таблице, соответствующей длине префикса, равной длине префикса измененного маршрута. Если на шаге 12с соответствующая хэш-таблица найдена, то выполняется переход к шагу 12d, где отброшенный маршрут в соответствующей хэш-таблице обновляется или удаляется. Если на шаге 12с выясняется, что искомая хэш-таблица не существует, то тогда следующим выполняется шаг 12е. Если маршрут должен быть добавлен, то тогда выполняется переход к шагу 12f, где создается хэш-таблица, имеющая длину префикса, равную длине префикса измененного маршрута. Затем на шаге 12d измененный маршрут вводится во вновь созданную хэш-таблицу. В противном случае измененный маршрут на шаге 12h отбрасывается.A router often receives route changes from a router (s) connected to it. These changes should be reflected in the current routing table (or forwarding). The sequence of update steps for the new scheme is presented in Fig. 12. For this changed route (prefix) reflected in the routing table, in step 12a, the node corresponding to the given prefix length should be discarded. Next, in step 12b, a search is made in the hash table corresponding to the prefix length equal to the prefix length of the changed route. If the corresponding hash table is found in step 12c, then proceed to step 12d, where the dropped route in the corresponding hash table is updated or deleted. If it turns out at step 12c that the desired hash table does not exist, then the next step is performed at step 12e. If the route is to be added, then go to step 12f, where a hash table is created having a prefix length equal to the prefix length of the changed route. Then, in step 12d, the changed route is entered into the newly created hash table. Otherwise, the changed route in step 12h is discarded.

На фиг.13 и 14 представлены диаграммы, раскрывающие процедуры поиска и обновления маршрутов согласно варианту осуществления настоящего изобретения.13 and 14 are diagrams illustrating routing and updating routes according to an embodiment of the present invention.

Со ссылками на фиг.13 ниже описана процедура поиска маршрута с длиной префикса 15. Необходимо найти узел с той же длиной префикса (15). Поиск начинается с верхнего уровня (то есть уровня 4) узла заголовка 210 (последовательность (1) на фиг.13). Указатель уровня 4 указывает на следующий узел, имеющий уровень 4, то есть узел 260 с диапазоном (ключом) длины префикса 8-1 (последовательность (2) на фиг.13). После этого выполняется сравнение длины префикса маршрута с ключом узла 200. Значение ключа не совпадает, и поиск возвращается на тот же уровень (то есть уровень 4) узла заголовка 210 (последовательность (3) на фиг.13). Уровень узла заголовка 210 уменьшается на единицу (последовательность (4) на фиг.13), и указатель следующего уровня (уровень 3) указывает на следующий узел, имеющий уровень 3, то есть узел 240 с ключом 17-12 (последовательность (5) на фиг.13). Когда в узле 240 обнаруживается совпадающее значение ключа (последовательность (6) на фиг.13), выполняется поиск в хэш-таблице, соответствующей длине префикса измененного маршрута (последовательность (7) на фиг.13). Если хэш-таблица существует, то выполняется следующий переход (последовательность (8) на фиг.13). Если хэш-таблица не существует, то для добавления нового маршрута она должна быть создана.With reference to FIG. 13, a route search procedure with a prefix length of 15 is described below. It is necessary to find a node with the same prefix length (15). The search begins at the top level (i.e., level 4) of the header node 210 (sequence (1) in FIG. 13). The level 4 pointer points to the next node having level 4, that is, node 260 with the range (key) of the length of the prefix 8-1 (sequence (2) in FIG. 13). After that, the route prefix length is compared with the key of the node 200. The key value does not match, and the search returns to the same level (that is, level 4) of the header node 210 (sequence (3) in Fig. 13). The level of the header node 210 decreases by one (sequence (4) in FIG. 13), and the next level pointer (level 3) points to the next node having level 3, that is, node 240 with key 17-12 (sequence (5) on Fig.13). When a matching key value is detected in the node 240 (sequence (6) in FIG. 13), a hash table is searched corresponding to the prefix length of the changed route (sequence (7) in FIG. 13). If a hash table exists, then the next transition is performed (sequence (8) in FIG. 13). If the hash table does not exist, then to add a new route, it must be created.

На фиг.14 показаны несколько последовательностей, где маршрут, имеющий префикс '111010...1' с интерфейсом следующего транзита '10' должен быть удален из хэш-таблицы, либо заменен на '111011...1' со следующим транзитом '1'. Процедура поиска соответствующего префикса (111010...1) выполняется таким же образом, как показано на фиг.13.On Fig shows several sequences where the route with the prefix '111010 ... 1' with the next transit interface '10' should be removed from the hash table, or replaced with '111011 ... 1' with the following transit '1 '. The search procedure for the corresponding prefix (111010 ... 1) is performed in the same manner as shown in Fig. 13.

Со ссылками на фиг.15 и 16 ниже описана процедура поиска маршрута для отыскания маршрута по конкретному IP адресу назначения на основе таблицы маршрутизации.With reference to FIGS. 15 and 16, a route search procedure for finding a route to a specific destination IP address based on a routing table is described below.

На фиг.15 и 16 показана процедура поиска маршрута, определенная как схема совпадения по самому длинному префиксу, согласно варианту осуществления настоящего изобретения. Поиск на основе схемы совпадения по самому длинному префиксу означает, что маршрутная запись должна сравниваться по самому длинному префиксу, например с длиной префикса 32 в версии IPv4. На фиг.16 представлена диаграмма, объясняющая всю схему поиска согласно варианту осуществления настоящего изобретения, где адрес назначения имеет длину префикса 15 '1110101...1'.FIGS. 15 and 16 show a route search procedure defined as a match scheme for the longest prefix according to an embodiment of the present invention. A search based on the matching scheme for the longest prefix means that the route record should be compared by the longest prefix, for example, with the 32 prefix length in IPv4. 16 is a diagram explaining the entire search scheme according to an embodiment of the present invention, where the destination address has a prefix length of 15 '1110101 ... 1'.

На шаге 15а (фиг.15) для данного адреса назначения, заключенного в IP заголовке, просматривают первый узел в списке пропусков, начиная тем самым просмотр маршрута, заданного адресом назначения (последовательность (1) на фиг.16) с уровня 4 узла заголовка 210, а уровень в узле заголовка 210 снижают на единицу до уровня 0 (последовательность (2) на фиг.16), причем уровень 0 имеет указатель, указывающий на первый узел 220 (последовательность (3) на фиг.16).In step 15a (FIG. 15), for a given destination address enclosed in the IP header, the first node in the skip list is scanned, thereby starting to view the route specified by the destination address (sequence (1) in FIG. 16) from level 4 of the header node 210 and the level in the header node 210 is reduced by one to level 0 (sequence (2) in FIG. 16), and level 0 has a pointer pointing to the first node 220 (sequence (3) in FIG. 16).

Затем на шаге 15b выполняют поиск по хэш-таблицам первого узла 220, начиная с верхнего значения ключа диапазона длин префикса, например 32 (текущая длина префикса). Если кэш-таблицы не существует, процедура переходит к шагу 15g. В противном случае, когда хэш-таблица на шаге 15с существует, выполняется переход к шагу 15d. На шаге 15d выполняют поиск среди префиксов в найденной хэш-таблице префикса, соответствующего адресу назначения. Если оказывается, что найденный префикс совпадает с адресом назначения (шаг 15е), то совпавший префикс возвращается как самый длинный префикс на шаге 15f. В то же время, если на шаге 15е префикс не совпал, то процедура продолжается на шаге 15g.Then, in step 15b, a hash search is performed on the first node 220, starting with the top value of the prefix length range key, for example 32 (current prefix length). If the cache table does not exist, the procedure goes to step 15g. Otherwise, when the hash table in step 15c exists, it proceeds to step 15d. In step 15d, a search is performed among the prefixes in the found hash table of the prefix corresponding to the destination address. If it turns out that the found prefix matches the destination address (step 15e), then the matching prefix is returned as the longest prefix in step 15f. At the same time, if the prefix did not match at step 15e, the procedure continues at step 15g.

На шаге 15g обнаруживают следующую хэш-таблицу в том же диапазоне префикса. Если следующая хэш-таблица на шаге 15h существует, то процедура возвращается к шагу 15b для повторения вышеописанного процесса. Если на шаге 15h следующей хэш-таблицы не существует, то выполняется переход к шагу 15i, где осуществляют переход к соседнему узлу в списке пропусков, а затем процедура возвращается к шагу 15b для повторения вышеописанного процесса в соседнем узле. Как было описано выше, в отличие от известной схемы поиска, начинающегося с корневого узла, новая схема основана на поиске, начинающемся от самого длинного диапазона префикса с его хэш-таблицей.In step 15g, the following hash table is detected in the same prefix range. If the next hash table in step 15h exists, then the procedure returns to step 15b to repeat the above process. If the next hash table does not exist in step 15h, then proceed to step 15i, where they go to the neighboring node in the skip list, and then the procedure returns to step 15b to repeat the above process in the neighboring node. As described above, in contrast to the well-known search scheme starting from the root node, the new scheme is based on a search starting from the longest range of prefix with its hash table.

Согласно фиг.16, сначала выполняется поиск в списке пропусков узла, как было описано ранее, причем поиск маршрута, заданного адресом назначения, начинается с узла заголовка (последовательность (1) на фиг.16). Уровень в узле заголовка 210 уменьшается до уровня 0 (последовательность (2) на фиг.16), где указатель указывает на узел, имеющий самый длинный диапазон префикса, а затем переходят к первому узлу 220, указанному указателем узла заголовка 210 (последовательность (3) на фиг.16). Затем выполняют поиск в первом узле 220 для нахождения хэш-таблицы, содержащей префиксы длиной 32. Если соответствующая таблица найдена, то тогда адрес назначения сравнивают с префиксами в хэш-таблице с целью обнаружения совпадения. Если в первом узле 220 хэш-таблица, содержащая префиксы длиной 32, не найдена, то, поскольку каждый узел в списке пропусков поддерживает матрицу указателей, которая указывает на каждую хэш-таблицу в диапазоне префикса узлов, то при отсутствии хэш-таблицы, содержащей префиксы длиной 32, соответствующий указатель окажется нулевым.According to FIG. 16, a search is first performed in the skip list of the node, as described previously, and the search for the route specified by the destination address begins with the header node (sequence (1) in FIG. 16). The level in the header node 210 decreases to level 0 (sequence (2) in FIG. 16), where the pointer points to the node having the longest prefix range, and then proceed to the first node 220 indicated by the pointer of the header node 210 (sequence (3) in Fig.16). A search is then performed in the first node 220 to find a hash table containing 32 prefixes. If a matching table is found, then the destination address is compared with the prefixes in the hash table in order to find a match. If no hash table containing 32 prefixes was found in the first node 220, then, since each node in the skip list supports a pointer matrix that points to each hash table in the range of node prefix, then in the absence of a hash table containing prefixes length 32, the corresponding pointer will be zero.

В примере на фиг.16 первый узел 220 имеет только две хэш-таблицы 222 и 224, соответствующие длине префикса 30 и длине префикса 26 соответственно. Поэтому, когда выполняется поиск в первом узле 220 для нахождения хэш-таблицы, проверяется каждый указатель в диапазоне префикса, причем указатели с нулевым значением пропускаются. Хэш-таблицы, соответствующие указателям с ненулевым значением, сравнивают с исходным адресом назначения для обнаружения совпадения.In the example of FIG. 16, the first node 220 has only two hash tables 222 and 224 corresponding to the length of the prefix 30 and the length of the prefix 26, respectively. Therefore, when a search is performed in the first node 220 to find the hash table, each pointer in the prefix range is checked, and pointers with a zero value are skipped. Hash tables corresponding to pointers with a non-zero value are compared with the source destination address to find a match.

Таким образом, первый указатель с ненулевым значением будет указывать на хэш-таблицу 222, и адрес назначения сравнивают с префиксами в хэш-таблице 222 (последовательность (4) на фиг.16). Если адрес назначения в хэш-таблице 222 не найден, то тогда с адресом назначения сравнивают следующую хэш-таблицу с ненулевым указателем, то есть хэш-таблицу 224 с длиной префикса 26 (последовательность (5) на фиг.16). Если адрес назначения все еще не найден и больше нет хэш-таблиц в первом узле 220, то тогда поиск для узла 220 оказывается безуспешным.Thus, the first pointer with a non-zero value will point to the hash table 222, and the destination address is compared with the prefixes in the hash table 222 (sequence (4) in FIG. 16). If the destination address in the hash table 222 is not found, then the next hash table with a non-zero pointer is compared with the destination address, that is, the hash table 224 with the prefix length 26 (sequence (5) in FIG. 16). If the destination address is still not found and there are no more hash tables in the first node 220, then the search for the node 220 is unsuccessful.

Если поиск для узла 220 безуспешен, то отыскивается указатель, указывающий на следующий узел в списке пропусков, имеющий следующий самый длинный диапазон префикса. В данном примере имеется указатель, показывающий, что следующим узлом в списке пропусков со вторым по длине диапазоном префикса является узел 230 (последовательность (6) на фиг.16). Соответственно, проверяют узел 230, чтобы выяснить, есть ли у него какие-либо хэш-таблицы, а поскольку их нет, выполняется поиск указателя в узле 230, указывающего на следующий узел в списке пропусков.If the search for node 220 is unsuccessful, then a pointer is searched pointing to the next node in the skip list, having the next longest prefix range. In this example, there is a pointer showing that the next node in the skip list with the second longest prefix range is node 230 (sequence (6) in FIG. 16). Accordingly, the node 230 is checked to find out if it has any hash tables, and since they do not exist, a pointer is searched in the node 230 pointing to the next node in the skip list.

В данном случае выполняется переход к соседнему узлу 240 в списке пропусков (последовательность (7) на фиг.16), и обнаруживается указатель, указывающий на хэш-таблицу 242, в соответствии с шагами, показанными на фиг.15. Адрес назначения сравнивают с префиксами в хэш-таблице 242, имеющими длину 15 (последовательность (8) на фиг.16). При совпадении операция поиска маршрута успешно завершается (последовательность (9) на фиг.16). Если адрес назначения не найден даже в последней хэш-таблице последнего узла 260, то поиск заканчивается безуспешно, и пакет с соответствующим адресом отсылается по маршруту вместе с записью маршрута по умолчанию.In this case, a transition is made to the neighboring node 240 in the skip list (sequence (7) in Fig. 16), and a pointer is found pointing to the hash table 242, in accordance with the steps shown in Fig. 15. The destination address is compared with the prefixes in the hash table 242 having a length of 15 (sequence (8) in FIG. 16). If it matches, the route search operation completes successfully (sequence (9) in FIG. 16). If the destination address is not found even in the last hash table of the last node 260, then the search fails, and the packet with the corresponding address is sent along the route along with the default route record.

Структуры списка пропусков представлены в Программах 1, 2 и 3; процедуры отражения изменений в маршрутных записях в списке пропусков показаны в Программах 4, 5, 6 и 7; а основная часть нового алгоритма поиска маршрута показана в Программе 8.Skip list structures are presented in Programs 1, 2, and 3; procedures for reflecting changes in route entries in the pass list are shown in Programs 4, 5, 6 and 7; and the main part of the new route search algorithm is shown in Program 8.

Программа 1: Операция построенияProgram 1: Build Operation

var рх: bitstring init b'0'; (*префикс*)var px: bitstring init b'0 '; (*prefix*)

interface: integer init 0; (*интерфейс следующего транзита *)interface: integer init 0; (* next transit interface *)

W: integer init 32; (* # адресных битов, IPv4 *]W: integer init 32; (* # address bits, IPv4 *]

k: integer init 8; (* фиксированный диапазон префикса, например, 8 или переменный диапазон префикса от 0 до W"*)k: integer init 8; (* fixed prefix range, for example 8 or a variable prefix range from 0 to W "*)

hrange: integer init W; (* верхняя граница диапазона префикса *)hrange: integer init W; (* upper bound of the prefix range *)

Irange: integer-init W-k+1; (* нижняя граница диапазона префикса *)Irange: integer-init W-k + 1; (* lower limit of the prefix range *)

MaxLevel: integer init [lg(W/k)]; (* в предположении, что р=1/2 (где р - вероятность, определяющая возможность создания узла с более высокими уровнями) *)MaxLevel: integer init [lg (W / k)]; (* under the assumption that p = 1/2 (where p is the probability that determines the possibility of creating a node with higher levels) *)

Buildup(list) (* построение списка пропусков *)Buildup (list) (* building a skip list *)

beginbegin

L :=[W/k] (* L - целое число, равное предельному значению W/k и ближайшее к количеству создаваемых узлов *);L: = [W / k] (* L is an integer equal to the limit value of W / k and the closest to the number of nodes created *);

while L≥0 dowhile L≥0 do

Insert_Node [list, hrange, Irange);Insert_Node [list, hrange, Irange);

L :=L-1L: = L-1

hrange :=-Irange-1; - -hrange: = - Irange-1; - -

Irange :==Irange-k+1;Irange: == Irange-k + 1;

end whileend while

endend

Программа 2: Вставка узла в список пропусковProgram 2: Insert a Node into the Skip List

Insert-Node (list, hrange, Irange) (* вставка узла *)Insert-Node (list, hrange, Irange) (* insert node *)

beginbegin

update [0..MaxLevel];update [0..MaxLevel];

x :=list≥→headerx: = list≥ → header

for i :=list→level downto 0 dofor i: = list → level downto 0 do

while [hrange, Irange]∈x→forward [i]→key dowhile [hrange, Irange] ∈x → forward [i] → key do

x :=x→forward [i]x: = x → forward [i]

end•whileend • while

update [i] :=x;update [i]: = x;

end forend for

x :=x→forward [0];x: = x → forward [0];

if[hrange, Irange}ex→key thenif [hrange, Irange} ex → key then

x→value:=[hrange, Irange];x → value: = [hrange, Irange];

elseelse

v :=RandomLevel()v: = RandomLevel ()

if v>list→level thenif v> list → level then

for i :==list→level+1 to v dofor i: == list → level + 1 to v do

update[i] :=list→header;update [i]: = list → header;

end forend for

list→level :=v,list → level: = v,

end ifend if

x:=MakeNode (y, [hrange, Irange});x: = MakeNode (y, [hrange, Irange});

for i :=0 to level dofor i: = 0 to level do

x→forward[i] :=update[i]→forward[i];x → forward [i]: = update [i] → forward [i];

update [i]→forward [i] :=x;update [i] → forward [i]: = x;

end forend for

end ifend if

endend

Программа 3: Уровень рандомизацииProgram 3: Level of Randomization

RandomLevel() (* рандомизация уровня узла *)RandomLevel () (* node level randomization *)

beginbegin

v:=0;v: = 0;

r :=Random (); (* r∈[0, 1) *)r: = Random (); (* r∈ [0, 1) *)

while r<р and v<MaxLevel dowhile r <p and v <MaxLevel do

v.=v+l; - -v. = v + l; - -

end whileend while

return v;return v;

endend

Программа 4: Операция поискаProgram 4: Search Operation

Search (list, px) (* поиск узла с префиксом рх в списке пропусков *)Search (list, px) (* search for a node with the px prefix in the skip list *)

beginbegin

х :=list→header;x: = list → header;

for i :=list→-level downto 0 dofor i: = list → -level downto 0 do

while px∈х→forward[i]→key dowhile px∈x → forward [i] → key do

x : = x→forward[i];x: = x → forward [i];

end whileend while

end forend for

x := x→forward [0];x: = x → forward [0];

if x→key=px thenif x → key = px then

for j: :=hrange downto Irange-1 dofor j:: = hrange downto Irange-1 do

if hash-get (j, px);if hash-get (j, px);

return hash-get (j, px);return hash-get (j, px);

end ifend if

end forend for

return errorreturn error

end ifend if

endend

Программа 5: Операция вставкиProgram 5: Paste Operation

Insert(list, prefix, interface) (* вставка маршрутной записи *)Insert (list, prefix, interface) (* insert route record *)

beginbegin

if hash-insert (list, prefix, interface] thenif hash-insert (list, prefix, interface] then

elseelse

return error;return error;

end ifend if

endend

Программа 6: Операция удаленияProgram 6: Delete Operation

Delete[list, prefix, interface) (* удалениеDelete [list, prefix, interface) (* delete

маршрутной записи *)route recording *)

beginbegin

if search (list, prefix) then - -if search (list, prefix) then - -

hash-delete (prefix, interface);hash-delete (prefix, interface);

elseelse

return error;return error;

end ifend if

endend

Программа 7: Обновление маршрутной записиProgram 7: Update Route Recording

Update(list, prefix, interface) (* обновление маршрутнойUpdate (list, prefix, interface) (* route update

записи *)records *)

beginbegin

if search (list, prefix) thenif search (list, prefix) then

hash-update (prefix, interface);hash-update (prefix, interface);

elseelse

return error;return error;

end ifend if

endend

Программа 8: Операция поискаProgram 8: Search Operation

Lookup(list, destaddr) (* поиск маршрута с помощью самого длинного префикса *)Lookup (list, destaddr) (* search for the route using the longest prefix *)

beginbegin

х :=list→header;x: = list → header;

х: =х→forward[0];x: = x → forward [0];

for i :=[W/k] downto 0 dofor i: = [W / k] downto 0 do

for j :=hrange downto lrange-1 dofor j: = hrange downto lrange-1 do

if compare(destaddr, hash-get (j, destaddr)) thenif compare (destaddr, hash-get (j, destaddr)) then

return hash-get (j, destaddr);return hash-get (j, destaddr);

end ifend if

end forend for

x : = x→forward[i];x: = x → forward [i];

end forend for

return error;return error;

endend

Ниже со ссылками на чертежи оценивается эффективность способа маршрутизации согласно настоящему изобретению. На фиг.7А и 7В изображены графики, представляющие распределение измеренных значений длины префикса в сети Интернет. Данные, представленные графиками на фиг.7А и 7В, собраны в MAE-EAST NAP (точка доступа к сети) в рамках проекта IPMA (Измерения и анализ рабочих характеристик сети Интернет).Below with reference to the drawings, the effectiveness of the routing method according to the present invention is evaluated. On figa and 7B depicts graphs representing the distribution of the measured values of the length of the prefix on the Internet. The data represented by the graphs in FIGS. 7A and 7B are collected in the MAE-EAST NAP (Network Access Point) as part of the IPMA (Measurement and Analysis of Internet Performance) project.

Статистические данные, собранные в проекте IPMA, широко используются как исходные данные для сравнительного анализа результатов поиска, выполняемого разработчиками алгоритмов поиска маршрутов. В настоящее время маршрутизатор в MAE-EAST NAP содержат максимальное количество маршрутных записей и используются главным образом в качестве модели магистрального маршрутизатора. PAIX NAP содержит минимальное количество маршрутных записей, собранных в текущем проекте IPMA, и используется главным образом в качестве модели маршрутизатора предприятия.Statistical data collected in the IPMA project is widely used as input for comparative analysis of search results performed by developers of route search algorithms. Currently, the router in the MAE-EAST NAP contains the maximum number of route entries and is mainly used as a model of a trunk router. PAIX NAP contains the minimum number of routing entries collected in the current IPMA project and is used primarily as an enterprise router model.

На фиг.7А и 7В изображены локальные диаграммы, показывающие, что наиболее часто повторяются значения длины префикса, лежащие в диапазоне 16-28. Таким образом, данные наблюдений показывают, что количество узлов, которые должны находиться в модифицированном списке пропусков, предложенном в изобретении, может быть значительно уменьшено. Другим интересным моментом в IPMA (http://nic.merit.edu/ipma) является то, что количество маршрутных префиксов, добавленных или изъятых в соответствии с протоколом BGP (Пограничный межсетевой протокол) за один день, достигает 1899851 (как для 1 ноября 1997). Это значит, что требуется 25 обновлений префиксов в секунду, и быстрое отражение каждого измененного маршрутного префикса в таблице маршрутизации (или пересылки) становится важным фактором, влияющим на время поиска.On figa and 7B depicts local diagrams showing that the most often repeated values of the length of the prefix, lying in the range 16-28. Thus, the observational data show that the number of nodes that should be in the modified skip list proposed in the invention can be significantly reduced. Another interesting point in IPMA (http://nic.merit.edu/ipma) is that the number of routing prefixes added or removed in accordance with the BGP protocol (Border Gateway Protocol) per day reaches 1899851 (as for November 1 1997). This means that 25 prefix updates per second are required, and the quick reflection of each changed route prefix in the routing table (or forwarding) becomes an important factor affecting the search time.

Со ссылками на таблицу 2 ниже приведено сравнение нового алгоритма с известными алгоритмами. В общем случае при оценке того или иного алгоритма для наихудшего случая сравнивается время, необходимое для обработки соответствующего алгоритма, либо требуемый объем памяти, с использованием записи "большое О" (определяющей время выполнения алгоритма). В таблице 2 дана оценка сложности нового алгоритма согласно настоящему изобретению, где имеется N маршрутных записей, для выражения каждого адреса требуется W адресных бит, a k является константой, зависящей от алгоритма.With reference to table 2 below is a comparison of the new algorithm with known algorithms. In the general case, when evaluating an algorithm for the worst case, the time required to process the corresponding algorithm or the required memory size is compared using the record "large O" (which determines the execution time of the algorithm). Table 2 gives an estimate of the complexity of the new algorithm according to the present invention, where there are N routing entries, W address bits are required to express each address, and k is a constant dependent on the algorithm.

Figure 00000003
Figure 00000003

В таблице 2, чтобы избежать путаницы с другими логарифмами с основанием 10, "lg" обозначает логарифм с основанием 2.In Table 2, to avoid confusion with the other base 10 logarithms, “lg” stands for base 2 logarithm.

В случае версии IPv4 W соответствует 32, а для IPv6 соответствует 128. В MAE-EAST и PAIX NAP количество N маршрутных записей составляет примерно 50000 и 6000 соответственно. В данном случае k в списке пропусков с k-нарными хэшированными узлами составляет 4, если диапазон префикса равен 8. В случае IPv6 он составит 16.In the case of IPv4, W corresponds to 32, and for IPv6 it corresponds to 128. In MAE-EAST and PAIX NAP, the number of N route entries is approximately 50,000 and 6,000, respectively. In this case, k in the skip list with k-hashed nodes is 4 if the prefix range is 8. In the case of IPv6, it will be 16.

Новый алгоритм лучше, чем известный алгоритм, основанный на дереве поиска и trie-структуры (trie-структура Patricia или trie-структура LC) применительно к операциям построения таблицы маршрутизации, вставки и удаления. Кроме того, новый алгоритм согласно настоящему изобретению превосходит алгоритм двоичного поиска на основе хэш-таблиц (Waldvogel, М., Varghese, G., Turner, J. и Planner, В., Scalable High Speed IP Routing Lookups, In Proceedings of ACM SIGCOMM '97, Cannes, France, pages 25-37, 1997) и алгоритм на основе полной префиксной trie-структуры (Tzeng, H. и Pryzygienda, Т., On Fast Address-Lookup Algorithms, IEEE Journal on Selected Areas in Communications, Vol. 17, No. 6, pages 1067-1082, June, 1999) с точки зрения времени построения и операции вставки или удаления. Из таблицы 2 видно, что результаты оценки сложности показывают превосходство нового алгоритма над алгоритмом на основе чистого списка пропусков.The new algorithm is better than the well-known algorithm based on the search tree and trie structures (Patricia trie structure or LC trie structure) as applied to routing table, insert and delete operations. In addition, the new algorithm of the present invention is superior to the hash table based binary search algorithm (Waldvogel, M., Varghese, G., Turner, J. and Planner, B., Scalable High Speed IP Routing Lookups, In Proceedings of ACM SIGCOMM '97, Cannes, France, pages 25-37, 1997) and an algorithm based on the full prefix trie structure (Tzeng, H. and Pryzygienda, T., On Fast Address-Lookup Algorithms, IEEE Journal on Selected Areas in Communications, Vol . 17, No. 6, pages 1067-1082, June, 1999) in terms of construction time and insert or delete operation. Table 2 shows that the results of the complexity assessment show the superiority of the new algorithm over the algorithm based on a clean list of passes.

Как было описано выше, алгоритм согласно настоящему изобретению создает узлы в соответствии с диапазоном префикса IP адреса, используя список пропусков и хеш-таблицу, что составляет рандомизированный алгоритм. Кроме того, настоящее изобретение обеспечивает способ маршрутизации, использующий список пропусков, в котором маршрутные записи запоминаются в виде хэш-таблицы в соответствии с длиной префикса, установленной в каждом узле, в результате чего минимизируется время поиска маршрута и обеспечивается эффективное управление соответствующей таблицей. Таким путем можно выполнять высокоскоростной поиск маршрута. Данный алгоритм также можно применить для версии IPv6, которая будет использоваться в маршрутизаторе следующего поколения.As described above, the algorithm according to the present invention creates nodes in accordance with the IP address prefix range using a skip list and a hash table, which constitutes a randomized algorithm. In addition, the present invention provides a routing method using a skip list in which route entries are stored in a hash table in accordance with the prefix length set at each node, thereby minimizing the route search time and providing efficient management of the corresponding table. In this way, you can perform high-speed route searches. This algorithm can also be applied to the IPv6 version that will be used in the next generation router.

Из результатов оценки сложности следует, что новый алгоритм превосходит другие известные алгоритмы в любом аспекте, особенно с точки зрения операций построения таблицы маршрутизации (или пересылки), а также вставки и удаления. Кроме того, с учетом существующей тенденции развития современных архитектур, таких как распределенная архитектура маршрутизатора или параллельная архитектура маршрутизатора, где таблица пересылки в процессоре пересылки отделена от таблицы маршрутизации в процессоре маршрутизации, путем передачи на маршрутизатор вместе с соответствующими путями только обновленных маршрутов вместо всех маршрутных записей можно разгрузить память или разрешить конфликтные ситуации в системных шинах. Уменьшение времени поиска и поддержание согласованной информации о маршрутах по всем связанным таблицам маршрутизации может способствовать улучшению других показателей, таких как качество обслуживания (QoS), групповое вещание, протокол IPSec и др.From the results of the complexity assessment it follows that the new algorithm is superior to other known algorithms in any aspect, especially in terms of the operations of constructing a routing table (or forwarding), as well as insert and delete. In addition, given the current trend in the development of modern architectures, such as a distributed router architecture or a parallel router architecture, where the forwarding table in the forwarding processor is separated from the routing table in the routing processor, only updated routes, instead of all route entries, are sent to the router along with the corresponding paths You can unload the memory or resolve conflicts in the system buses. Reducing the search time and maintaining consistent routing information across all related routing tables can help improve other metrics, such as Quality of Service (QoS), Multicast, IPsec, and more.

Хотя изобретение было продемонстрировано и описано со ссылками на конкретный предпочтительный вариант его осуществления, специалистам в данной области техники очевидно, что в него могут быть внесены различные изменения по форме и в деталях в рамках сущности и объема изобретения, определенного в прилагаемой формуле изобретения.Although the invention has been demonstrated and described with reference to a particular preferred embodiment, it will be apparent to those skilled in the art that various changes may be made in form and in detail within the spirit and scope of the invention as defined in the appended claims.

Claims (36)

1. Способ формирования таблиц маршрутизации/пересылки для поиска адреса протокола Интернет (IP-адреса) с использованием списка пропусков, включающий этапы разделения диапазона длин префикса IP-адреса заранее установленным способом, создания узла заголовка, имеющего максимальный уровень, на основе ряда кластеров, выделенных в диапазоне длин префикса, причем узел заголовка указывает каждый узел в списке пропусков, и создания подузлов с помощью ряда выделенных кластеров, причем каждый из подузлов имеет в качестве ключа выделенный диапазон длин префикса.1. A method of generating routing / forwarding tables to search for an Internet protocol address (IP address) using a skip list, including the steps of dividing the IP address prefix length range in a predetermined manner, creating a header node having a maximum level based on a number of clusters allocated in the range of prefix lengths, with the header node indicating each node in the skip list, and creating subnodes using a number of selected clusters, each of the subnodes having a selected range of lin prefix. 2. Способ по п.1, отличающийся тем, что дополнительно включает запоминание маршрутных записей, соответствующих соответствующим длинам префикса в соответствующем диапазоне длин префикса в хэш-таблицах, предусмотренных в каждом подузле в соответствии с длинами префикса.2. The method according to claim 1, characterized in that it further includes storing route entries corresponding to the corresponding prefix lengths in the corresponding range of prefix lengths in the hash tables provided in each subnode in accordance with the prefix lengths. 3. Способ по п.2, отличающийся тем, что маршрутные записи содержат 32 бита или 128 битов.3. The method according to claim 2, characterized in that the route entries contain 32 bits or 128 bits. 4. Способ по п.1, отличающийся тем, что уровень узла заголовка подузла устанавливают случайным образом.4. The method according to claim 1, characterized in that the level of the header node of the sub-node is set randomly. 5. Способ по п.1, отличающийся тем, что диапазон длин префикса разделяют фиксированным либо переменным образом.5. The method according to claim 1, characterized in that the range of prefix lengths is divided in a fixed or variable manner. 6. Способ по п.1, отличающийся тем, что диапазон длин префикса разделяют таким образом, что каждый диапазон длин префикса покрывается посредством подузлов.6. The method according to claim 1, characterized in that the range of prefix lengths is divided in such a way that each range of prefix lengths is covered by subnodes. 7. Способ по п.1, отличающийся тем, что таблицы маршрутизации/пересылки содержатся в процессоре маршрутизации и процессоре пересылки соответственно.7. The method according to claim 1, characterized in that the routing / forwarding tables are contained in the routing processor and the forwarding processor, respectively. 8. Способ формирования таблиц IP маршрутизации/пересылки с использованием списка пропусков, включающий этапы создания узла заголовка для указания каждого узла для обработки каждого узла в списке пропусков, создания множества подузлов, имеющих в качестве ключа диапазон префиксов IP-адреса, разделенный заранее установленным способом, и создания хэш-таблиц в соответствии с длинами префикса для запоминания маршрутных записей в соответствии с длинами префикса в соответствующем диапазоне длин префикса в каждом подузле.8. A method of generating IP routing / forwarding tables using the skip list, including the steps of creating a header node for specifying each node to process each node in the skip list, creating a plurality of subnodes having as key a range of IP address prefixes, divided by a predetermined method, and creating hash tables in accordance with the prefix lengths for storing route entries in accordance with the prefix lengths in the corresponding range of prefix lengths in each subnode. 9. Способ по п.8, отличающийся тем, что дополнительно включает запоминание маршрутных записей, совпадающих с соответствующим префиксом в хэш-таблицах.9. The method according to claim 8, characterized in that it further includes storing route entries matching the corresponding prefix in the hash tables. 10. Способ по п.8, отличающийся тем, что уровень узла заголовка подузла устанавливают случайным образом.10. The method according to claim 8, characterized in that the level of the header node of the sub-node is set randomly. 11. Способ по п.8, отличающийся тем, что диапазон длин префикса разделяют фиксированным или переменным образом.11. The method according to claim 8, characterized in that the range of prefix lengths is divided in a fixed or variable manner. 12. Способ по п.8, отличающийся тем, что диапазон длин префикса разделяют таким образом, что каждый диапазон длин префикса должен быть покрыт посредством множества подузлов.12. The method according to claim 8, characterized in that the range of prefix lengths is divided in such a way that each range of prefix lengths must be covered by a plurality of subnodes. 13. Способ по п.8, отличающийся тем, что маршрутные записи содержат 32 или 128 бит.13. The method according to claim 8, characterized in that the route entries contain 32 or 128 bits. 14. Способ по п.8, отличающийся тем, что узел заголовка имеет значение ключа +∞ и прямой указатель (указатели), проиндексированный от 0 до значения максимального уровня минус единица.14. The method of claim 8, wherein the header node has a key value + ∞ and a direct pointer (s) indexed from 0 to the maximum level value minus one. 15. Способ по п.8, отличающийся тем, что таблицы маршрутизации/пересылки находятся в процессоре маршрутизации и процессоре пересылки соответственно.15. The method according to claim 8, characterized in that the routing / forwarding tables are in the routing processor and the forwarding processor, respectively. 16. Способ поиска маршрута в таблицах маршрутизации/пересылки с использованием списка пропусков, в котором маршрутные записи запоминают в виде хэш-таблицы в соответствии с длиной префикса, установленной в каждом узле, созданном в соответствии с распределением диапазона префиксов IP-адреса, причем способ включает этапы нахождения узла, в котором установлен диапазон префикса, соответствующий длине префикса искомого маршрута, нахождения хэш-таблицы с той же длиной префикса, что и у искомого маршрута, в найденном узле и нахождения искомого маршрута из найденной хэш-таблицы.16. A method of finding a route in routing / forwarding tables using a skip list, in which the route entries are stored in a hash table in accordance with the prefix length set in each node created in accordance with the distribution of the IP address prefix range, the method including the steps of finding the node in which the prefix range corresponding to the prefix length of the desired route is set, finding the hash table with the same prefix length as the desired route in the found node, and finding the desired ma routes from the found hash table. 17. Способ по п.16, отличающийся тем, что этап нахождения узла включает нахождение узла для указания от максимального уровня узла заголовка списка пропусков, сравнение диапазона длин префикса найденного узла с длиной префикса искомого маршрута, и нахождение узла, указанного на следующем уровне узла заголовка, когда длина префикса искомого маршрута не соответствует диапазону длин префикса найденного узла.17. The method according to clause 16, wherein the step of finding the node includes finding a node to indicate the skip list header from a maximum node level, comparing the prefix length range of the found node with the prefix length of the desired route, and finding the node indicated at the next level of the header node when the prefix length of the desired route does not match the prefix length range of the found node. 18. Способ по п.16, отличающийся тем, что список пропусков включает узел заголовка и множество узлов, каждый из которых имеет ключ в диапазоне, заранее установленном в убывающем порядке, и сохраняет маршрутные записи, соответствующие соответствующим длинам префикса, в хэш-таблицах, связанных с соответствующими длинами префикса.18. The method according to clause 16, wherein the skip list includes a header node and a plurality of nodes, each of which has a key in a range predefined in descending order, and stores the route entries corresponding to the corresponding prefix lengths in hash tables, associated with the corresponding prefix lengths. 19. Способ по п.16, отличающийся тем, что таблицы маршрутизации/пересылки находятся в процессоре маршрутизации и процессоре пересылки соответственно.19. The method according to clause 16, wherein the routing / forwarding tables are in the routing processor and the forwarding processor, respectively. 20. Способ по п.16, отличающийся тем, что маршрутные записи содержат 32 бита или 128 бит.20. The method according to clause 16, wherein the route entries contain 32 bits or 128 bits. 21. Способ обновления таблиц маршрутизации/пересылки с использованием списка пропусков, в котором маршрутные записи запоминают в виде хэш-таблицы в соответствии с длиной префикса, установленной в каждом узле, созданном в соответствии с диапазоном длин префикса IP-адреса, причем способ включает этапы нахождения узла, в котором установлен диапазон префикса, соответствующий длине префикса обновляемого маршрута, поиска в хэш-таблице, имеющей ту же длину префикса, что и у обновляемого маршрута в найденном узле, и обновления соответствующего маршрута в хэш-таблице, когда хэш-таблица найдена.21. A method for updating routing / forwarding tables using a skip list, in which the route entries are stored as a hash table in accordance with the prefix length set in each node created in accordance with the IP address prefix length range, the method including the steps of finding the node in which the prefix range corresponding to the prefix length of the updated route is set, search in the hash table having the same prefix length as the updated route in the found node, and updates the corresponding ma the route in the hash table when the hash table is found. 22. Способ по п.21, отличающийся тем, что этап нахождения узла включает нахождение узла для указания от максимального уровня узла заголовка списка пропусков, сравнение диапазона длин префикса найденного узла с длиной префикса обновляемого маршрута, и нахождение узла, указанного на следующем уровне узла заголовка, когда длина префикса обновляемого маршрута не соответствует диапазону длин префикса найденного узла.22. The method according to item 21, wherein the step of finding the node includes finding a node to indicate the skip list header from a maximum node level, comparing the prefix length range of the found node with the prefix length of the updated route, and finding the node indicated at the next level of the header node when the prefix length of the updated route does not match the prefix length range of the found node. 23. Способ по п.21, отличающийся тем, что этап обновления маршрута включает добавление, изменение или удаление обновляемого маршрута.23. The method according to item 21, wherein the step of updating the route includes adding, changing or deleting the updated route. 24. Способ по п.21, отличающийся тем, что дополнительно включает этапы создания хэш-таблицы, имеющей тот же префикс, что и обновляемый маршрут, когда хэш-таблица не найдена, и вставки обновляемого маршрута в созданную хэш-таблицу.24. The method according to item 21, characterized in that it further includes the steps of creating a hash table having the same prefix as the updated route when the hash table is not found, and insert the updated route into the created hash table. 25. Способ по п.21, отличающийся тем, что список пропусков включает узел заголовка и множество узлов, каждый из которых имеет ключ в диапазоне, заранее установленном в убывающем порядке, и сохраняет маршрутные записи, соответствующие соответствующим длинам префикса, в хэш-таблицах, связанных с соответствующими длинами префикса.25. The method according to item 21, wherein the skip list includes a header node and a plurality of nodes, each of which has a key in a range predetermined in descending order, and stores the route entries corresponding to the corresponding prefix lengths in hash tables, associated with the corresponding prefix lengths. 26. Способ по п.21, отличающийся тем, что таблицы маршрутизации/пересылки находятся в процессоре маршрутизации и процессоре пересылки соответственно.26. The method according to item 21, wherein the routing / forwarding tables are in the routing processor and the forwarding processor, respectively. 27. Способ по п.21, отличающийся тем, что маршрутные записи содержат 32 бита или 128 бит.27. The method according to item 21, wherein the route entries contain 32 bits or 128 bits. 28. Способ поиска маршрута в таблицах маршрутизации/пересылки с использованием списка пропусков, в котором маршрутные записи запоминают в виде хэш-таблицы в соответствии с заранее установленными длинами префикса в каждом узле, созданном в соответствии с распределением диапазона префикса IP-адреса, причем способ включает этапы нахождения соседнего узла, начиная с первого узла списка пропусков, сравнения адреса назначения с соответствующими хэш-таблицами в соответствующем узле и принятие совпадающего префикса в качестве самого длинного префикса, когда хэш-таблица содержит адрес назначения.28. A method for finding a route in routing / forwarding tables using a skip list in which route entries are stored in a hash table according to predefined prefix lengths at each node created in accordance with the distribution of the IP address prefix range, the method including the steps of finding a neighboring node, starting from the first node of the skip list, comparing the destination address with the corresponding hash tables in the corresponding node, and accepting the matching prefix as the longest The prefix, when the hash table contains the destination address. 29. Способ поиска маршрута по п.28, отличающийся тем, что дополнительно включает нахождение следующего узла в списке пропусков, когда хэш-таблица не содержит IP-адрес назначения.29. The route search method according to claim 28, characterized in that it further includes finding the next node in the skip list when the hash table does not contain the destination IP address. 30. Способ поиска маршрута по п.28, отличающийся тем, что список пропусков включает узел заголовка и множество узлов, каждый из которых имеет ключ в диапазоне, заранее установленном в убывающем порядке, и сохраняет маршрутные записи, соответствующие соответствующим длинам префикса в хэш-таблицах, связанных с соответствующими длинами префикса.30. The route search method according to claim 28, wherein the skip list includes a header node and a plurality of nodes, each of which has a key in a range predetermined in descending order, and stores route entries corresponding to the corresponding prefix lengths in the hash tables associated with the corresponding prefix lengths. 31. Способ поиска маршрута по п.28, отличающийся тем, что этап сравнения включает сравнение адреса назначения с хэш-таблицей, имеющей максимальную длину префикса среди хэш-таблиц соответствующего узла, и сравнение следующей хэш-таблицы, имеющей следующую по величине длину префикса, с адресом назначения, когда адрес назначения не найден в хэш-таблице, имеющей максимальную длину префикса.31. The route search method according to claim 28, wherein the comparison step includes comparing the destination address with a hash table having the maximum prefix length among the hash tables of the corresponding node, and comparing the next hash table having the next largest prefix length, with the destination address when the destination address is not found in the hash table having the maximum prefix length. 32. Способ поиска маршрута по п.28, отличающийся тем, что поисковые таблицы маршрутизации/пересылки находятся в процессоре маршрутизации и процессоре пересылки соответственно.32. The route search method according to claim 28, wherein the routing / forwarding lookup tables are in the routing processor and the forwarding processor, respectively. 33. Способ поиска маршрута по п.28, отличающийся тем, что маршрутные записи содержат 32 бита или 128 бит.33. The route search method according to claim 28, characterized in that the route entries contain 32 bits or 128 bits. 34. Маршрутизатор протокола Интернет (IP), содержащий по меньшей мере один линейный модуль плат, каждый из которых снабжен процессором пересылки, предназначенным для ввода и вывода пакетов, при этом процессор пересылки имеет таблицу пересылки, имеющую архитектуру списка пропусков, которая содержит узел заголовка и множество узлов, каждый из которых создан в соответствии с диапазоном префикса IP-адреса, имеет диапазон длин префикса в качестве ключа и хранит маршрутные записи в виде хэш-таблицы в соответствии с установленной длиной префикса, коммутационную структуру для коммутации пакетов между внутренними портами, и процессор маршрутизации, включающий таблицу маршрутизации, имеющую архитектуру списка пропусков, которая содержит узел заголовка и множество узлов, каждый из которых создан в соответствии с диапазоном префикса IP-адреса, имеет диапазон длин префикса в качестве ключа и хранит маршрутные записи в виде хэш-таблицы в соответствии с установленной длиной префикса, и управляет всей операцией маршрутизации линейных модулей плат и коммутационной структуры.34. An Internet Protocol (IP) router containing at least one linear module of cards, each of which is equipped with a forwarding processor for inputting and outputting packets, the forwarding processor having a forwarding table having a skip list architecture that includes a header node and many nodes, each of which is created in accordance with the IP address prefix range, has a prefix length range as a key and stores route entries in the form of a hash table in accordance with the set prefix length, a switching structure for switching packets between internal ports, and a routing processor that includes a routing table having a skip list architecture that contains a header node and many nodes, each of which is created in accordance with the IP address prefix range, has a prefix length range as a key and stores the route entries in the form of a hash table in accordance with the set prefix length, and controls the entire routing operation of the linear modules of the boards and the switching structure. 35. Маршрутизатор протокола Интернет (IP), содержащий по меньшей мере один линейный модуль плат, снабженный процессором пересылки, имеющим таблицу пересылки с архитектурой списка пропусков, которая содержит узел заголовка и множество узлов, каждый из которых создан в соответствии с диапазоном префикса IP-адреса, имеет диапазон длин префикса в качестве ключа и хранит маршрутные записи в виде хэш-таблицы в соответствии с установленной длиной префикса, коммутационную структуру для коммутации пакетов между внутренними портами, и процессор маршрутизации для управления всей операцией маршрутизации линейных модулей плат и коммутационной структуры.35. An Internet Protocol (IP) router containing at least one linear module of cards, provided with a forwarding processor having a forwarding table with a skip list architecture that contains a header node and a plurality of nodes, each of which is created in accordance with the IP address prefix range , has a range of prefix lengths as a key and stores route entries in a hash table in accordance with the set prefix length, a switching structure for switching packets between internal ports, and a processor mar rutizatsii for controlling the overall operation of line modules routing boards and connection structure. 36. IP маршрутизатор по п.35, отличающийся тем, что процессор маршрутизации содержит таблицу маршрутизации, имеющую архитектуру списка пропусков, которая содержит узел заголовка и множество узлов, каждый из которых создан в соответствии с диапазоном префикса IP-адреса, имеет диапазон длин префикса в качестве ключа и хранит маршрутные записи в виде хэш-таблицы в соответствии с установленной длиной префикса.36. The IP router according to claim 35, wherein the routing processor comprises a routing table having a skip list architecture that contains a header node and a plurality of nodes, each of which is created in accordance with the IP address prefix range, has a prefix length range of as a key and stores route entries in the form of a hash table in accordance with the set prefix length.
RU2002122720/09A 2000-12-22 2001-12-21 Device and method for performing high-speed search for routes of internet protocol and controlling routing/transfer tables RU2233473C2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US25714800P 2000-12-22 2000-12-22
US60/257,148 2000-12-22
KR10-2001-0007568A KR100493099B1 (en) 2000-12-22 2001-02-15 Route lookup and routing/forwarding table management for high-speed internet protocol router
KR2001-0007568 2001-02-15
US10/022,210 2001-12-20

Publications (2)

Publication Number Publication Date
RU2233473C2 true RU2233473C2 (en) 2004-07-27
RU2002122720A RU2002122720A (en) 2004-12-27

Family

ID=33422254

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2002122720/09A RU2233473C2 (en) 2000-12-22 2001-12-21 Device and method for performing high-speed search for routes of internet protocol and controlling routing/transfer tables

Country Status (1)

Country Link
RU (1) RU2233473C2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2454009C2 (en) * 2007-02-05 2012-06-20 Найс Спа System having bus architecture and associated transmission protocol
RU2457627C2 (en) * 2008-04-25 2012-07-27 Фудзицу Лимитед Node device and programme
RU2541113C2 (en) * 2010-10-15 2015-02-10 Нек Корпорейшн Switching system and monitoring centralisation management method
RU2558624C2 (en) * 2010-09-22 2015-08-10 Нек Корпорейшн Control device, communication system, communication method and record medium containing communication programme recorded to it
RU2622629C2 (en) * 2015-03-31 2017-06-16 Закрытое акционерное общество "Лаборатория Касперского" Method of searching for the road by tree
RU2629428C2 (en) * 2012-02-16 2017-08-29 Филипс Лайтинг Холдинг Б.В. Efficient control of intermediary tables in communication networks
RU2717909C2 (en) * 2015-08-12 2020-03-26 Филипс Лайтинг Холдинг Б.В. Environmentally friendly energy source for dense large networks (proxy table scaling)
CN111695150A (en) * 2020-05-15 2020-09-22 浙江信网真科技股份有限公司 Dynamic granularity self-polymerization safe filtering method and device

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2454009C2 (en) * 2007-02-05 2012-06-20 Найс Спа System having bus architecture and associated transmission protocol
RU2457627C2 (en) * 2008-04-25 2012-07-27 Фудзицу Лимитед Node device and programme
RU2558624C2 (en) * 2010-09-22 2015-08-10 Нек Корпорейшн Control device, communication system, communication method and record medium containing communication programme recorded to it
RU2541113C2 (en) * 2010-10-15 2015-02-10 Нек Корпорейшн Switching system and monitoring centralisation management method
RU2629428C2 (en) * 2012-02-16 2017-08-29 Филипс Лайтинг Холдинг Б.В. Efficient control of intermediary tables in communication networks
RU2622629C2 (en) * 2015-03-31 2017-06-16 Закрытое акционерное общество "Лаборатория Касперского" Method of searching for the road by tree
RU2717909C2 (en) * 2015-08-12 2020-03-26 Филипс Лайтинг Холдинг Б.В. Environmentally friendly energy source for dense large networks (proxy table scaling)
CN111695150A (en) * 2020-05-15 2020-09-22 浙江信网真科技股份有限公司 Dynamic granularity self-polymerization safe filtering method and device
CN111695150B (en) * 2020-05-15 2023-07-28 浙江信网真科技股份有限公司 Dynamic granularity self-polymerization safe filtering method and device

Similar Documents

Publication Publication Date Title
CA2400343C (en) Apparatus and method for performing high-speed ip route lookup and managing routing/forwarding tables
US7039018B2 (en) Technique to improve network routing using best-match and exact-match techniques
Gupta et al. Routing lookups in hardware at memory access speeds
US7260096B2 (en) Method and router for forwarding internet data packets
US7315547B2 (en) Packet forwarding device
US7610271B2 (en) Method and apparatus for performing a binary search on an expanded tree
US6449256B1 (en) Fast level four switching using crossproducting
US7327727B2 (en) Atomic lookup rule set transition
WO2002019624A2 (en) Cluster-based aggregated switching technique (cast) for routing data packets and information objects in computer networks
KR100512949B1 (en) Apparatus and method for packet classification using Field Level Trie
US6876655B1 (en) Method for routing with a clue
RU2233473C2 (en) Device and method for performing high-speed search for routes of internet protocol and controlling routing/transfer tables
US20060200581A1 (en) Prefix processing technique for faster IP routing
US7702882B2 (en) Apparatus and method for performing high-speed lookups in a routing table
US6615311B2 (en) Method and system for updating a content addressable memory (CAM) that prioritizes CAM entries according to prefix length
KR100493099B1 (en) Route lookup and routing/forwarding table management for high-speed internet protocol router
EP1158431A2 (en) Method and apparatus for performing a binary search on an expanded tree
JP2005333220A (en) Network node device
Zhen-Xing et al. High-performance IPv4/IPv6 dual-stack routing lookup
Fu et al. Two-stage ip-address lookup in distributed routers
Kijkanjanarat et al. Fast IP routing lookups for high performance routers
KR20040003258A (en) Internet protocol address look-up method
Yang et al. Hardware Based Routing Lookup for IPv4
McLaughlin et al. Implementing high speed IP address lookups in hardware
Zhu et al. An active routing prefix caching algorithm for IP address lookup

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20161222