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 PDFInfo
- 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
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
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.
Маршрутная запись или маршрут представляется 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
Процессор маршрутизации 120 содержит таблицу маршрутизации RT, обновляемую путем отражения в ней последних измененных маршрутов. Таблица маршрутизации RT формируется на основе таких протоколов маршрутизации, как RIP (протокол маршрутной информации), OSPF (первоочередное открытие кратчайших маршрутов) или BGP-4 (пограничный межсетевой протокол 4), но список протоколов не ограничивается здесь указанными. Из таблицы маршрутизации в процессоре маршрутизации 120 копируется компактная таблица, называемая таблицей пересылки FT, которая предназначена для эффективного поиска. Таблица пересылки FT предназначается для эффективного поиска, что достигается за счет снижения эффективности добавлений и удалений маршрутов.
Если пакет, поступающий из линейного модуля платы 110, не может найти путь к месту своего назначения из таблицы пересылки FT, то соответствующий пакет должен пройти через коммутационную структуру 130 в процессор маршрутизации 120 для решения проблемы несогласованного маршрута. После нахождения места назначения пакет снова должен быть направлен в коммутационную структуру 130 для пересылки в выходной линейный модуль платы 110. В противном случае, если процессор маршрутизации 120 не может найти путь к месту назначения даже с помощью таблицы маршрутизации RT, то тогда такой пакет в процессоре маршрутизации 120 отбрасывается.If a packet arriving from the line module of the
В работе 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
Таблица маршрутизации в процессоре маршрутизации 120 должна быть разработана таким образом, чтобы она была способна оперативно отражать изменения в маршрутах и легко их поддерживать. Кроме того, добавляемый или удаляемый маршрут должен отражаться в таблице пересылки FT в процессор пересылки 112 настолько быстро, насколько это возможно, и при минимальных затратах. Когда маршрут не отражен, входящий пакет пересылается в процессор маршрутизации 120 через коммутационную структуру 130, что приводит к увеличению задержки передачи из-за прохождения по дополнительному маршруту, необходимому при обработке соответствующего пакета.The routing table in
Хотя изобретение описано со ссылками на распределенный маршрутизатор и параллельный маршрутизатор, специалистам в данной области техники очевидно, что изобретение можно использовать в маршрутизаторе, имеющем архитектуру других типов.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
Согласно фиг.3 процессор пересылки 112 включает n входных интерфейсов, m выходных интерфейсов, n буферов для буферизации пакетов, вводимых через входные интерфейсы, классификатор пакетов для классификации пакетов, запоминаемых в буфере в соответствии с классами или типами, и контроллер поиска маршрутов для передачи пакетов, классифицированных с помощью таблицы пересылки и классификатора пакетов, на соответствующие выходные интерфейсы путем обращения к таблице пересылки.3, the forwarding
Согласно фиг.4, процессор маршрутизации 120 включает в себя n входных/выходных интерфейсов для приема и выдачи пакетов от/на коммутационную структуру 130, показанную на фиг. 1 и 2, коммутационный интерфейс для буферизации пакетов, вводимых и выводимых через входные/выходные интерфейсы, и обеспечения взаимодействия между коммутационной структурой 130 и контроллером для поиска маршрутов и обслуживания на следующей ступени, причем контроллер для поиска маршрутов и обслуживания обеспечивает пересылку пакетов, подаваемых из таблицы маршрутизации и коммутационного интерфейса, на соответствующий входной/выходной интерфейс через коммутационный интерфейс путем обращения к таблице маршрутизации.According to FIG. 4,
Согласно стандарту 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
Узел заголовка 210 в качестве значения ключа содержит +∞ и указатель (указатели) для указания на следующий узел (узлы). Ключи в узлах 220, 230, 240, 250 и 260 отсортированы в убывающем порядке. Ключ в каждом узле означает "диапазон длины префикса" или "кластеризацию значения длины префикса", причем этот ключ вносится в убывающем порядке. В данном варианте изобретения поиск начинается от "листьев" к "корню" (или "родителю"), то есть в обратной последовательности значений ключа, что в корне отличается от способа на основе известных trie-структур или структур типа дерева.The
Ключ второго узла 220 имеет диапазон длин префикса 32-24, и любой маршрут, имеющий длину префикса, принадлежащую этому диапазону длин префикса, запоминается в хэш-таблице, соответствующей его длине префикса. На фиг.6 показана хэш-таблица 222 с длиной префикса 30 бит и хэш-таблица 224 с длиной префикса 26 бит как пример хэш-таблиц маршрута, принадлежащего диапазону второго узла 220. Кроме того, на фиг.6 показана хэш-таблица 242 с длиной префикса 15 бит в качестве примера хэш-таблицы маршрута, принадлежащего диапазону четвертого узла 240 с диапазоном длин префикса 17-12.The key of the
Хотя на фиг.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
Каждый ключ в узле, кроме узла заголовка 210, имеет диапазон или набор длин префикса. На фиг.6 узел 220 имеет маршрутные записи, лежащие в диапазоне от 32 до 24, причем каждое значение длины префикса имеет свою собственную хэш-таблицу для запоминания маршрутных записей, совпадающих с соответствующей длиной префикса. Если имеются маршрутные записи, соответствующие каждому значению длины префикса в диапазоне от 32 до 24 включительно, то тогда соответствующий узел будет иметь девять (9) указателей, указывающих на девять (9) разных хэш-таблиц. В каждой хэш-таблице хранятся только те маршрутные записи, которые точно соответствуют длине префикса. По этой причине этот вариант списка пропусков называют списком пропусков с k-нарным хэшированным узлом (узлами).Each key in the node, except the
Алгоритм на основе списка пропусков согласно настоящему изобретению поясняется в последующем описании способа создания узла заголовка и построения вариантного списка пропусков.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
Уровень каждого созданного узла устанавливается случайным образом с использованием рандомизированного алгоритма, показанного ниже в Программе 3 согласно настоящему изобретению. Сначала формируется значение случайного действительного числа в интервале (0,1). Если сформированное значение действительного случайного числа меньше заранее установленного эталонного значения вероятности (здесь эталонное значение вероятности устанавливается равным р=1/2 для создания идеального списка пропусков), и уровень соответствующего создаваемого узла также меньше, чем MaxLevel, то тогда уровень соответствующего узла увеличивают. В противном случае создается узел, имеющий значение уровня 0.The level of each created node is set randomly using the randomized algorithm shown below in
После построения узлов с диапазонами префикса в списке пропусков необходимо построить таблицу маршрутизации, содержащую маршрутные записи. Далее со ссылками на фиг.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
Последовательность выполнения процедур создания таблицы маршрутизации согласно варианту осуществления настоящего изобретения представлена на фиг.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
Маршрутизатор часто получает изменения маршрутов от подсоединенного к нему маршрутизатора (маршрутизаторов). Эти изменения должны найти свое отражение в текущей таблице маршрутизации (или пересылки). Последовательность шагов обновления по новой схеме представлена на фиг.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
На фиг.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
На фиг.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
Затем на шаге 15b выполняют поиск по хэш-таблицам первого узла 220, начиная с верхнего значения ключа диапазона длин префикса, например 32 (текущая длина префикса). Если кэш-таблицы не существует, процедура переходит к шагу 15g. В противном случае, когда хэш-таблица на шаге 15с существует, выполняется переход к шагу 15d. На шаге 15d выполняют поиск среди префиксов в найденной хэш-таблице префикса, соответствующего адресу назначения. Если оказывается, что найденный префикс совпадает с адресом назначения (шаг 15е), то совпавший префикс возвращается как самый длинный префикс на шаге 15f. В то же время, если на шаге 15е префикс не совпал, то процедура продолжается на шаге 15g.Then, in
На шаге 15g обнаруживают следующую хэш-таблицу в том же диапазоне префикса. Если следующая хэш-таблица на шаге 15h существует, то процедура возвращается к шагу 15b для повторения вышеописанного процесса. Если на шаге 15h следующей хэш-таблицы не существует, то выполняется переход к шагу 15i, где осуществляют переход к соседнему узлу в списке пропусков, а затем процедура возвращается к шагу 15b для повторения вышеописанного процесса в соседнем узле. Как было описано выше, в отличие от известной схемы поиска, начинающегося с корневого узла, новая схема основана на поиске, начинающемся от самого длинного диапазона префикса с его хэш-таблицей.In
Согласно фиг.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
В примере на фиг.16 первый узел 220 имеет только две хэш-таблицы 222 и 224, соответствующие длине префикса 30 и длине префикса 26 соответственно. Поэтому, когда выполняется поиск в первом узле 220 для нахождения хэш-таблицы, проверяется каждый указатель в диапазоне префикса, причем указатели с нулевым значением пропускаются. Хэш-таблицы, соответствующие указателям с ненулевым значением, сравнивают с исходным адресом назначения для обнаружения совпадения.In the example of FIG. 16, the
Таким образом, первый указатель с ненулевым значением будет указывать на хэш-таблицу 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
Если поиск для узла 220 безуспешен, то отыскивается указатель, указывающий на следующий узел в списке пропусков, имеющий следующий самый длинный диапазон префикса. В данном примере имеется указатель, показывающий, что следующим узлом в списке пропусков со вторым по длине диапазоном префикса является узел 230 (последовательность (6) на фиг.16). Соответственно, проверяют узел 230, чтобы выяснить, есть ли у него какие-либо хэш-таблицы, а поскольку их нет, выполняется поиск указателя в узле 230, указывающего на следующий узел в списке пропусков.If the search for
В данном случае выполняется переход к соседнему узлу 240 в списке пропусков (последовательность (7) на фиг.16), и обнаруживается указатель, указывающий на хэш-таблицу 242, в соответствии с шагами, показанными на фиг.15. Адрес назначения сравнивают с префиксами в хэш-таблице 242, имеющими длину 15 (последовательность (8) на фиг.16). При совпадении операция поиска маршрута успешно завершается (последовательность (9) на фиг.16). Если адрес назначения не найден даже в последней хэш-таблице последнего узла 260, то поиск заканчивается безуспешно, и пакет с соответствующим адресом отсылается по маршруту вместе с записью маршрута по умолчанию.In this case, a transition is made to the neighboring
Структуры списка пропусков представлены в Программах 1, 2 и 3; процедуры отражения изменений в маршрутных записях в списке пропусков показаны в Программах 4, 5, 6 и 7; а основная часть нового алгоритма поиска маршрута показана в Программе 8.Skip list structures are presented in
Программа 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 → -
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]
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.
В таблице 2, чтобы избежать путаницы с другими логарифмами с основанием 10, "lg" обозначает логарифм с основанием 2.In Table 2, to avoid confusion with the
В случае версии 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)
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)
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 |
-
2001
- 2001-12-21 RU RU2002122720/09A patent/RU2233473C2/en not_active IP Right Cessation
Cited By (9)
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 |