WO2024171404A1 - Dynamic entry management system, dynamic entry management method, and dynamic entry management program - Google Patents
Dynamic entry management system, dynamic entry management method, and dynamic entry management program Download PDFInfo
- Publication number
- WO2024171404A1 WO2024171404A1 PCT/JP2023/005583 JP2023005583W WO2024171404A1 WO 2024171404 A1 WO2024171404 A1 WO 2024171404A1 JP 2023005583 W JP2023005583 W JP 2023005583W WO 2024171404 A1 WO2024171404 A1 WO 2024171404A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- unit
- packet
- port number
- dynamic entry
- management table
- Prior art date
Links
- 238000007726 management method Methods 0.000 title description 153
- 238000000034 method Methods 0.000 claims description 58
- 230000004044 response Effects 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 239000003999 initiator Substances 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 59
- 230000006855 networking Effects 0.000 abstract description 44
- 230000008569 process Effects 0.000 description 33
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 7
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005401 electroluminescence Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100412093 Schizosaccharomyces pombe (strain 972 / ATCC 24843) rec16 gene Proteins 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2517—Translation of Internet protocol [IP] addresses using port numbers
Definitions
- the present disclosure relates to a dynamic entry management system, a dynamic entry management method, and a dynamic entry management program.
- NFV Network Functions Virtualization
- the NFV method makes it possible to consolidate physical devices. Therefore, NFV can reduce capital expenses.
- NFV is already being used in a variety of services.
- NFV Network packets are processed by the CPU (Central Processing Unit).
- CPU Central Processing Unit
- the present disclosure provides a dynamic entry management system, a dynamic entry management method, and a dynamic entry management program that can reduce the amount of hardware accelerator resources used for dynamic entry management.
- the dynamic entry management system includes a receiving unit that receives a packet, a first determination unit that determines whether the packet received by the receiving unit corresponds to an existing flow, an initiation unit that starts a new flow corresponding to the received packet in response to determining that the received packet does not correspond to an existing flow, a first acquisition unit that acquires a first port number that is not used by an existing session from a small table that includes multiple entries corresponding to some of a plurality of available port numbers, the small table being located on a hardware accelerator, and an allocation unit that assigns the first port number to the new flow.
- the dynamic entry management system can reduce the amount of hardware accelerator resources used for dynamic entry management.
- FIG. 1 shows a table summarizing the characteristics of the NAPT methodology implemented in a hardware manner.
- FIG. 2A shows one approach to NAPT implemented in a hardware manner.
- FIG. 2B illustrates one approach to NAPT implemented in a hardware manner.
- FIG. 3A shows another approach to NAPT implemented in a hardware manner.
- FIG. 3B shows another approach to NAPT implemented in a hardware manner.
- FIG. 4 is a block diagram of an example environment for session management.
- FIG. 5A illustrates an overview of one dynamic entry management process according to the present disclosure.
- FIG. 5B illustrates an overview of one dynamic entry management process according to the present disclosure.
- FIG. 6 is a block diagram of an example configuration of a networking system according to the present disclosure.
- FIG. 7A is a sequence diagram showing an example of a process for transferring packets while suppressing consumption of hardware resources.
- FIG. 7B is a sequence diagram showing an example of a process for transferring packets while suppressing consumption of hardware resources.
- FIG. 8 is a sequence diagram showing an example of a process for updating free ports by polling hardware.
- FIG. 9 is a sequence diagram showing an example of a process for updating free ports by pushing to software.
- FIG. 10 shows an example of the hardware configuration of a computer.
- NAPT Network Address and Port Translation
- Figure 1 shows Table 10, which summarizes the characteristics of the NAPT methodology implemented in a hardware manner.
- the free port management table manages free ports.
- the port numbers used for NAPT include port numbers that are not used in other sessions.
- a port identified by an unused port number is called a free port.
- a session refers to a logical communication path between communication devices.
- the session management table manages port-based sessions using NAPT.
- the session management table manages the relationship between the 5-tuple of an established session and the translated port number.
- table 10 shows where each table is located when NAPT processing is implemented in hardware.
- the free port management table is managed in hardware. In other cases, the free port management table is managed in software. The two cases have different issues.
- the session management table is managed in hardware.
- NAPT method 20 is an example of one NAPT method implemented in a hardware manner.
- NAPT method 20 corresponds to the case where the free port management table is maintained in hardware.
- NAPT method 20 all tables required to realize NAPT are placed in hardware.
- the networking system must manage two tables in hardware. However, the size of these tables is equal to the number of flows that are expected to be accommodated in the networking system. Therefore, the size of these tables is large. Note that a flow is a series of packets with the same attributes.
- NAPT method 20 consumes a lot of hardware resources.
- the advantage of NAPT method 20 is that all packets are folded back by hardware. NAPT method 20 has good performance. Packet order reversal does not occur.
- FIGS. 3A and 3B show NAPT method 30, which is an example of another NAPT method implemented in a hardware manner.
- NAPT method 30 corresponds to the case where the free port management table is maintained in software.
- NAPT method 30 the free port management table is managed by the software. New flows are sent to the software, which performs operations such as port allocation and packet rewriting.
- NAPT method 30 manages one of the tables by software. Therefore, NAPT method 30 can save hardware resources. This is an advantage of NAPT method 30.
- NAPT method 30 One issue with NAPT method 30 is that the software must process all packets in the same flow that arrive before the new session information registration is complete. If many packets arrive rapidly, the software performance cannot keep up with the packet processing. For example, CPU performance becomes a bottleneck. Another issue with NAPT method 30 is that the packets start to be folded back by the hardware the moment the new session information registration is completed. This can cause the order of packets forwarded to the software just before the new session information registration is completed to be reversed.
- the networking system performs one or more dynamic entry management processes described below.
- FIG. 4 is a block diagram of environment 1, which is an example of an environment for session management. As shown in FIG. 4, environment 1 includes networking system 100 and network 200. Networking system 100 is an example of a dynamic entry management system.
- the networking system 100 is a system that provides network functions.
- the networking system 100 has a function for managing dynamic sessions such as NAPT.
- the networking system 100 offloads functions related to NAPT to a hardware accelerator.
- the networking system 100 performs processing for managing dynamic entries on the hardware accelerator.
- processing is referred to as a dynamic entry management processing.
- An overview of one dynamic entry management processing is provided in Section 3.
- Various dynamic entry management processing is then described in detail in Section 5.
- Networking system 100 includes one or more computers, such as one or more servers.
- Networking system 100 includes a hardware accelerator.
- An example configuration of networking system 100 is described in Section 4.
- Network 200 is a network such as a LAN (Local Area Network), a WAN (Wide Area Network), or the Internet.
- LAN Local Area Network
- WAN Wide Area Network
- FIG. 5A and 5B collectively show overview 40, which is an overview of one dynamic entry management process according to the present disclosure.
- the networking system 100 is implemented by a general-purpose server.
- the general-purpose server has software 41 (NFV) and a hardware accelerator 42.
- Software 41 processes the packets in a software manner.
- the term "software manner” refers to processing performed by a general purpose processor (e.g., a CPU), whereas the term “hardware manner” refers to processing performed by a custom integrated circuit, such as a Field Programmable Gate Array (FPGA).
- FPGA Field Programmable Gate Array
- the networking system 100 offloads NAPT processing to the hardware accelerator 42.
- the networking system 100 has two types of free port management tables. One is free port management table 43. The other is free port management table 44.
- the free port management table 43 manages the usage and availability of the entire port space.
- the free port management table 43 is located in the software 41.
- the table management unit 46 of the networking system 100 manages the free port management table 43.
- the free port management table 43 has entries for the entire allocatable port space. Note that while a row indicates the location where data is stored, an entry (a data column in the table) indicates the data itself.
- the free port management table 44 holds and manages a small number of free port numbers. For example, the number of free port numbers held is 10 percent of the expected number of flows to be accommodated.
- the free port management table 44 is placed in the hardware accelerator 42.
- the packet processing unit 47 of the networking system 100 manages the free port management table 44.
- the table size of the free port management table 44 can be adjusted according to the amount of hardware resources.
- the session management table 45 is located in the hardware accelerator 42.
- the session management table 45 has the same number of entries as there are active sessions.
- the packet processing unit 47 When a new flow arrives at the networking system 100, the packet processing unit 47 refers to the free port management table 44. The packet processing unit 47 determines the port number to be used.
- the table management unit 46 keeps the free port management table 44 up to date. Initially, the packet processing unit 47 registers some port numbers listed in the free port management table 43 in the free port management table 44.
- the networking system 100 can arrange tables with the minimum number of entries required according to the amount of hardware resources. This allows the networking system 100 to reduce the amount of hardware resources consumed.
- FIG. 6 is a block diagram of an example of the configuration of a networking system 100 according to the present disclosure.
- the networking system 100 includes a communication unit 110, a control unit 120, and a storage unit 130.
- the networking system 100 may include an input unit (e.g., a keyboard, a mouse) that accepts input from an administrator of the networking system 100.
- the networking system 100 may also include an output unit (e.g., a liquid crystal display, an organic EL (Electro Luminescence) display) that displays information to the administrator.
- an input unit e.g., a keyboard, a mouse
- an output unit e.g., a liquid crystal display, an organic EL (Electro Luminescence) display
- the communication unit 110 is implemented by a network device such as a network interface card (NIC).
- NIC network interface card
- the communication unit 110 is connected to the network 200 by wire or wirelessly.
- the communication unit 110 can transmit and receive data to and from the communication device via the network 200.
- the control unit 120 is implemented by a data processing device and various programs stored in a storage device.
- the data processing device is, for example, a processor such as a CPU, a micro processing unit (MPU), or a general purpose graphic processing unit (GPGPU).
- the control unit 120 can be implemented as a controller for controlling multiple operations of the networking system 100. For example, when one or more processors execute a program (multiple instructions) by using a random access memory (RAM) as a working area, the one or more processors perform multiple operations.
- RAM random access memory
- the control unit 120 can receive input data for the dynamic entry management process from an external device.
- the control unit 120 can store data such as the input data, data used in the dynamic entry management process, and output data of the dynamic entry management process in the memory unit 130.
- the control unit 120 can obtain such data from the memory unit 130 as necessary.
- the storage unit 130 is implemented by a RAM, a semiconductor memory such as a flash memory, a magnetic disk such as a hard disk, or an optical disk.
- the storage unit 130 can store various programs and various data.
- the control unit 120 includes a table management unit 121 and a packet processing unit 122.
- the table management unit 121 is an example of a second determination unit, a second acquisition unit, and a registration unit.
- the table management unit 121 corresponds to the table management unit 46 described above with reference to FIG. 5B.
- the packet processing unit 122 is an example of a receiving unit, a first determination unit, a starting unit, a first acquisition unit, and an allocation unit.
- the packet processing unit 122 corresponds to the packet processing unit 47 described above with reference to FIG. 5B.
- the memory unit 130 includes a large free port management table 131, a small free port management table 132, and a session management table 133.
- the large free port management table 131 is an example of a large table.
- the small free port management table 132 is an example of a small table and a deletion unit.
- the large free port management table 131, the small free port management table 132, and the session management table 133 correspond to the free port management table 43, the free port management table 44, and the session management table 45, respectively, described above with reference to FIG. 5B.
- Examples of dynamic entry management processes include the following three processes: (1) a process for forwarding packets while minimizing hardware resource consumption; (2) a process for updating free ports by polling the hardware; and (3) a process for updating free ports by pushing to the software.
- FIGS. 7A and 7B are sequence diagrams showing process P100, which is an example of a process for transferring packets while minimizing hardware resource consumption.
- Communication device A transfers the packet to the packet processing unit 122 (step S101).
- the packet processing unit 122 extracts the header information from the packet (step S102).
- the packet processing unit 122 refers to the session management table 133 (step S103).
- the packet processing unit 122 obtains the session information from the session management table 133 (step S104).
- the packet processing unit 122 refers to the smallest available port management table 132 (step S105).
- the packet processing unit 122 obtains the free port number from the small free port management table 132 (step S106).
- the small free port management table 132 deletes the entry for the port that is in use (step S107).
- the packet processing unit 122 registers the new session information in the session management table 133 (step S108).
- the packet processing unit 122 rewrites the packet (step S109).
- the packet processing unit 122 forwards the packet to communication device B (step S110).
- the packet processing unit 122 refers to the small free port management table 132, determines the port number, and then forwards the packet.
- the small free port management table 132 deletes the entry from its own table.
- FIG. 8 is a sequence diagram showing process P200, which is an example of a process for updating available ports by polling the hardware.
- the table management unit 121 obtains information from the small free port management table 132 (step S201).
- the table management unit 121 determines whether the small free port management table 132 is free (step S202).
- step S202 If the small free port management table 132 is free (step S202: Yes), the table management unit 121 obtains a free port from the large free port management table 131 (step S203).
- the table management unit 121 registers the entry in the small free port management table 132 (step S204).
- step S202 If the small free port management table 132 is not free (step S202: No), the table management unit 121 performs step S201 again.
- the table management unit 121 running on software periodically polls the table information in the small free port management table 132.
- the table management unit 121 assigns a port to the new flow (a vacancy occurs when an entry is deleted).
- the table management unit 121 obtains an unused port number from the large free port management table 131, and then writes the obtained port number to the small free port management table 132.
- the port numbers written to the small free port management table 132 are managed by checking the "Use" box in the large free port management table 131.
- FIG. 9 is a sequence diagram showing process P300, which is an example of a process for updating free ports by pushing to software.
- the table management unit 121 receives a request for a new entry (step S301).
- the table management unit 121 obtains the free ports from the large free port management table 131 (step S302).
- the table management unit 121 registers the entry in the small free port management table 132 (step S303).
- the small free port management table 132 sends a request for a new entry to the table management unit 121.
- the table management unit 121 obtains an unused port number from the large free port management table 131, and then writes the obtained port number into the small free port management table 132.
- the port number written into the small free port management table 132 is managed by checking the "Use" box in the large free port management table 131.
- a session in which no communication has occurred for a certain period of time is deleted from the session management table 133.
- the table management unit 121 removes the check from the "Use" box for the corresponding port number in the large free port management table 131.
- the table management unit 121 manages the corresponding port number as an unused port.
- Hardware Configuration 10 is a diagram showing an example of a hardware configuration of a computer 1000. The systems and methods described in this specification are implemented by the computer 1000, for example.
- Computer 1000 is an example of a computer that implements networking system 100 by executing a program.
- Computer 1000 has memory 1010 and CPU 1020.
- Computer 1000 also has hard disk drive interface 1030, disk drive interface 1040, serial port interface 1050, video adapter 1060, and network interface 1070. These components are connected by bus 1080.
- the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012.
- the ROM 1011 stores a boot program such as a BIOS (Basic Input Output System).
- BIOS Basic Input Output System
- the hard disk drive interface 1030 is connected to a hard disk drive 1090.
- the disk drive interface 1040 is connected to a disk drive 1100.
- a removable storage medium e.g., a magnetic disk or an optical disk
- the serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120.
- the video adapter 1060 is connected to, for example, a display 1130.
- the hard disk drive 1090 stores an OS 1091, an application program 1092, a program module 1093, and program data 1094.
- the program executed by the computer 1000 defines multiple operations of the networking system 100.
- This program may be implemented as a program module 1093 written in code executable by the computer 1000.
- the program module 1093 is stored, for example, in the hard disk drive 1090.
- the hard disk drive 1090 stores a program module 1093 for executing processing similar to the functions of the components of the networking system 100.
- the hard disk drive 1090 may be replaced with an SSD (Solid State Drive).
- the hard disk drive 1090 can store a dynamic entry management program for dynamic entry management processing.
- the hard disk drive 1090 may store a computer program product including a dynamic entry management program (a plurality of instructions). When executed, the dynamic entry management program performs one or more methods, such as those described above.
- the setting data used in the various processes described above can be implemented as program data 1094.
- the setting data is stored, for example, in the memory 1010 or the hard disk drive 1090.
- the CPU 1020 loads the program module 1093 or the program data 1094 stored in the memory 1010 or the hard disk drive 1090 into the RAM 1012 as necessary.
- the CPU 1020 then performs the various processes described above.
- the program module 1093 and program data 1094 may be stored in a removable storage medium instead of the hard disk drive 1090.
- the CPU 1020 may load the program module 1093 and program data 1094 via the disk drive 1100 or the like.
- the program module 1093 and program data 1094 may be stored in another computer connected to the computer 1000 via a network (LAN, WAN, etc.). In this case, the CPU 1020 may load the program module 1093 and program data 1094 via the network interface 1070.
- the networking system 100 includes a packet processor 122 and a small free port management table 132.
- the packet processor 122 receives a packet.
- the packet processor 122 determines whether the received packet corresponds to an existing flow.
- the packet processor 122 starts a new flow corresponding to the received packet.
- the packet processor 122 obtains a first port number that is not used by an existing session from the small free port management table 132, which includes a plurality of entries corresponding to a portion of a plurality of available port numbers.
- the small free port management table 132 is disposed on a hardware accelerator.
- the packet processor 122 assigns the first port number to the new flow.
- the small free port management table 132 in response to assigning the first port number to a new flow, deletes the entry corresponding to the first port number from the small free port management table 132.
- the first port number is used for NAPT.
- the networking system 100 includes a table management unit 121 and a large free port management table 131.
- the table management unit 121 determines whether the small free port management table 132 is free. In response to determining that the small free port management table 132 is free, a second port number that is not being used by an existing session is obtained from the large free port management table 131, which includes multiple entries corresponding to all available multiple port numbers. The table management unit 121 registers the entry corresponding to the second port number in the small free port management table 132.
- the table management unit 121 obtains the second port number from the large free port management table 131 in response to deleting the entry corresponding to the obtained first port number from the small free port management table 132.
- the large free port management table 131 is implemented as software running on a general-purpose processor.
- networking system 100 Various implementations of the networking system 100 are described herein or shown in the drawings. Some implementations relate to information that includes various data, data processing procedures, specific names, or parameters. Such implementations may be modified in any way unless otherwise specified. For example, the various data are not limited to the data shown in the drawings.
- the components of the systems and devices are shown in the drawings.
- the illustrated components conceptually represent the functions of the systems and devices.
- the components are not necessarily physically configured as shown in the drawings.
- the components may be integrated or distributed, and the specific forms of the systems and devices are not limited to those shown in the drawings. All or part of the systems and devices may be functionally or physically integrated or distributed depending on various loads and usage conditions.
- module, section, -er suffix or -or suffix may be read as unit, means, circuit, etc.
- a communication module, a control module, and a storage module may be read as a communication unit, a control unit, and a storage unit, respectively.
- the configuration of the control unit 120 shown in Fig. 6 is illustrative, and the data processing described with respect to a particular unit does not necessarily have to be performed by that particular unit.
- the table management unit 121 may perform the data processing described with respect to the packet processing unit 122.
- the control unit 120 may also include other units not shown in Fig. 6. The other units may perform the data processing described with respect to the control unit 120.
- the data processing device described with respect to the control unit 120 is not limited to the specific hardware described above.
- the data processing device may be, for example, various computers or integrated circuits such as an ASIC (Application Specific Integrated Circuit), an FPGA, or a GPGPU (General Purpose Graphic Processing Unit).
- ASIC Application Specific Integrated Circuit
- FPGA Field-programmable gate array
- GPGPU General Purpose Graphic Processing Unit
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
In the present invention, a networking system includes a packet processing unit and a small free port management table. The packet processing unit receives a packet. The packet processing unit determines whether the received packet corresponds to an existing flow. Upon determining that the received packet does not correspond to an existing flow, the packet processing unit starts a new flow corresponding to the received packet. The packet processing unit acquires a first port number not being used by an existing session from the small free port management table, which includes a plurality of entries corresponding to some of a plurality of available port numbers. The small free port management table is arranged on a hardware accelerator. The packet processing unit allocates the first port number to the new flow.
Description
本開示は、動的エントリ管理システム、動的エントリ管理方法及び動的エントリ管理プログラムに関する。
The present disclosure relates to a dynamic entry management system, a dynamic entry management method, and a dynamic entry management program.
NFV(Network Functions Virtualization)は、ネットワーク機器の機能を、ソフトウェアとして、汎用サーバで構成される仮想化基盤(virtualization foundation)上で実装するための1つの手法である。NFVの手法は、物理的な機器を集約することができる。したがって、NFVは、設備コスト(capital expenditure)を減らすことができる。NFVは、既に、様々なサービスで、利用されている。
NFV (Network Functions Virtualization) is a method for implementing the functions of network devices as software on a virtualization foundation that consists of general-purpose servers. The NFV method makes it possible to consolidate physical devices. Therefore, NFV can reduce capital expenses. NFV is already being used in a variety of services.
NFVでは、ネットワークのパケットは、CPU(Central Processing Unit)によって、処理される。
In NFV, network packets are processed by the CPU (Central Processing Unit).
トラヒック増加を背景に、事業者(例えば、インターネットサービスプロバイダ)は、汎用サーバの性能を向上させることを検討している。検討されている1つのソリューションは、NFVにおける転送の処理をハードウェアアクセラレータにオフロードすること、である。
Against the backdrop of increasing traffic, operators (e.g., Internet service providers) are considering ways to improve the performance of general-purpose servers. One solution being considered is to offload the transfer processing in the NFV to a hardware accelerator.
しかしながら、上記の先行技術は、動的エントリ管理に使用されるハードウェアアクセラレータのリソースの量を減らすことが難しい場合がある。
However, the above prior art may make it difficult to reduce the amount of hardware accelerator resources used for dynamic entry management.
そこで、本開示は、動的エントリ管理に使用されるハードウェアアクセラレータのリソースの量を減らすことができる動的エントリ管理システム、動的エントリ管理方法及び動的エントリ管理プログラムを提供する。
The present disclosure provides a dynamic entry management system, a dynamic entry management method, and a dynamic entry management program that can reduce the amount of hardware accelerator resources used for dynamic entry management.
本開示の一態様では、動的エントリ管理システムは、パケットを受信する受信部と、前記受信部によって受信されたパケットが既存フローに対応するか、を判定する第1判定部と、前記受信されたパケットが既存フローに対応しない、と判定することに応じて、前記受信されたパケットに対応する新規フローを開始する開始部と、既存セッションによって利用されていない第1のポート番号を、利用可能な複数のポート番号の一部に対応する複数のエントリーを含む小テーブルから取得する第1取得部であって、前記小テーブルは、ハードウェアアクセラレータ上に配置されている、第1取得部と、前記第1のポート番号を、前記新規フローに割り当てる割当部とを備える。
In one aspect of the present disclosure, the dynamic entry management system includes a receiving unit that receives a packet, a first determination unit that determines whether the packet received by the receiving unit corresponds to an existing flow, an initiation unit that starts a new flow corresponding to the received packet in response to determining that the received packet does not correspond to an existing flow, a first acquisition unit that acquires a first port number that is not used by an existing session from a small table that includes multiple entries corresponding to some of a plurality of available port numbers, the small table being located on a hardware accelerator, and an allocation unit that assigns the first port number to the new flow.
動的エントリ管理システムは、動的エントリ管理に使用されるハードウェアアクセラレータのリソースの量を減らすることができる。
The dynamic entry management system can reduce the amount of hardware accelerator resources used for dynamic entry management.
本開示の複数の実施形態が、添付の図面と、以下の説明に記載されている。なお、本発明は、これらの実施形態に限定されるものではない。これらの実施形態の様々な特徴は、これらの特徴が互いに矛盾しないという条件で、様々なやり方で組み合わされ得る。同種の符号は、同種の要素を示す。
Several embodiments of the present disclosure are described in the accompanying drawings and in the following description. However, the present invention is not limited to these embodiments. The various features of these embodiments may be combined in various ways, provided that the features are not mutually inconsistent. Like reference numerals refer to like elements.
〔目次〕
以下の説明は、9個の節で構成されている:
1.はじめに
2.セッション管理のための環境
3.動的エントリ管理処理の概要
4.ネットワーキングシステムの構成
5.動的エントリ管理処理の詳細
6.効果
7.ハードウェア構成
8.実施形態のまとめ
9.補遺 〔table of contents〕
The following explanation is divided into nine sections:
1. Introduction 2. Environment for Session Management 3. Overview of Dynamic Entry Management Processing 4. Configuration ofNetworking System 5. Details of Dynamic Entry Management Processing 6. Effects 7. Hardware Configuration 8. Summary of the Embodiment 9. Addendum
以下の説明は、9個の節で構成されている:
1.はじめに
2.セッション管理のための環境
3.動的エントリ管理処理の概要
4.ネットワーキングシステムの構成
5.動的エントリ管理処理の詳細
6.効果
7.ハードウェア構成
8.実施形態のまとめ
9.補遺 〔table of contents〕
The following explanation is divided into nine sections:
1. Introduction 2. Environment for Session Management 3. Overview of Dynamic Entry Management Processing 4. Configuration of
〔1.はじめに〕
ネットワーキングシステムは、NAPT(Network Address and Port Translation)等の、動的なセッションを管理する。NAPTの実現は、次の2つのテーブルを必要とする:(1)空きポート管理テーブルおよび(2)セッション管理テーブル。 1. Introduction
A networking system manages dynamic sessions, such as Network Address and Port Translation (NAPT). The implementation of NAPT requires two tables: (1) a free port management table and (2) a session management table.
ネットワーキングシステムは、NAPT(Network Address and Port Translation)等の、動的なセッションを管理する。NAPTの実現は、次の2つのテーブルを必要とする:(1)空きポート管理テーブルおよび(2)セッション管理テーブル。 1. Introduction
A networking system manages dynamic sessions, such as Network Address and Port Translation (NAPT). The implementation of NAPT requires two tables: (1) a free port management table and (2) a session management table.
図1は、ハードウェア的なやり方で行われるNAPTの手法の特徴をまとめたテーブル10を示す。
Figure 1 shows Table 10, which summarizes the characteristics of the NAPT methodology implemented in a hardware manner.
空きポート管理テーブルは、空きポートを管理する。NAPTに使用されるポート番号は、他のセッションで利用されていないポート番号を含む。未利用のポート番号によって特定されるポートは、空きポートと呼ばれる。なお、セッションとは、通信機器間の論理的な通信経路を指す。
The free port management table manages free ports. The port numbers used for NAPT include port numbers that are not used in other sessions. A port identified by an unused port number is called a free port. A session refers to a logical communication path between communication devices.
セッション管理テーブルは、ポートベースのセッションを、NAPTを使用して、管理する。特に、セッション管理テーブルは、確立済みのセッションの5-tupleと変換されたポート番号の間の関係を、管理する。
The session management table manages port-based sessions using NAPT. In particular, the session management table manages the relationship between the 5-tuple of an established session and the translated port number.
テーブル10の概略図は、NAPT処理がハードウェアにおいて実現される際にそれぞれのテーブルが配置される場所を示す。
The schematic diagram of table 10 shows where each table is located when NAPT processing is implemented in hardware.
空きポート管理テーブルがハードウェアにおいて管理されるケースがある。また、空きポート管理テーブルがソフトウェアにおいて管理されるケースもある。2つのケースには、異なる課題がある。セッション管理テーブルは、ハードウェアにおいて管理される。
In some cases, the free port management table is managed in hardware. In other cases, the free port management table is managed in software. The two cases have different issues. The session management table is managed in hardware.
図2Aおよび図2Bは、ハードウェア的なやり方で行われる1つのNAPTの手法の例であるNAPTの手法20を示す。NAPTの手法20は、空きポート管理テーブルがハードウェアにおいて保持されるケースに対応する。
2A and 2B show NAPT method 20, which is an example of one NAPT method implemented in a hardware manner. NAPT method 20 corresponds to the case where the free port management table is maintained in hardware.
NAPTの手法20では、NAPTを実現するために必要とされる全てのテーブルが、ハードウェアに配置される。ネットワーキングシステムは、2つのテーブルを、ハードウェアで管理しなければならない。しかし、これらのテーブルのサイズは、ネットワーキングシステムに収容される予定のフローの数に等しい。したがって、これらのテーブルのサイズは、大きい。なお、フローとは、同じ属性を持つ一連のパケットである。
In NAPT method 20, all tables required to realize NAPT are placed in hardware. The networking system must manage two tables in hardware. However, the size of these tables is equal to the number of flows that are expected to be accommodated in the networking system. Therefore, the size of these tables is large. Note that a flow is a series of packets with the same attributes.
NAPTの手法20の課題は、ハードウェアリソースの消費が高いこと、である。NAPTの手法20の利点は、全てのパケットがハードウェアで折り返すこと、である。NAPTの手法20は、性能が良い。パケットの順序逆転も、発生しない。
The challenge with NAPT method 20 is that it consumes a lot of hardware resources. The advantage of NAPT method 20 is that all packets are folded back by hardware. NAPT method 20 has good performance. Packet order reversal does not occur.
図3Aおよび図3Bは、ハードウェア的なやり方で行われる他のNAPTの手法の例であるNAPTの手法30を示す。NAPTの手法30は、空きポート管理テーブルがソフトウェアにおいて保持されるケースに対応する。
FIGS. 3A and 3B show NAPT method 30, which is an example of another NAPT method implemented in a hardware manner. NAPT method 30 corresponds to the case where the free port management table is maintained in software.
NAPTの手法30では、空きポート管理テーブルが、ソフトウェア側で管理される。新規フローは、ソフトウェアに送られる。ソフトウェアは、ポートの割り当ておよびパケットの書き換え、といった動作を行う。
In NAPT method 30, the free port management table is managed by the software. New flows are sent to the software, which performs operations such as port allocation and packet rewriting.
NAPTの手法30は、テーブルのうちの1つを、ソフトウェアで管理する。したがって、NAPTの手法30は、ハードウェアリソースを節約することができる。これが、NAPTの手法30の利点である。
NAPT method 30 manages one of the tables by software. Therefore, NAPT method 30 can save hardware resources. This is an advantage of NAPT method 30.
NAPTの手法30の1つの課題は、ソフトウェアが、新規セッション情報登録の完了の前に到着した同一フロー内の全てのパケットを、処理しなければならないこと、である。もし、多くのパケットが急激に到着すると、ソフトウェアの性能が、パケット処理に追いつかない。例えば、CPU性能が、ボトルネックになる。NAPTの手法30のもう1つの課題は、パケットが、新規セッション情報登録が完了した瞬間に、ハードウェアで折り返し始めること、である。このことは、新規セッション情報登録の直前にソフトウェアに転送されたパケットの順序逆転を発生させる場合がある。
One issue with NAPT method 30 is that the software must process all packets in the same flow that arrive before the new session information registration is complete. If many packets arrive rapidly, the software performance cannot keep up with the packet processing. For example, CPU performance becomes a bottleneck. Another issue with NAPT method 30 is that the packets start to be folded back by the hardware the moment the new session information registration is completed. This can cause the order of packets forwarded to the software just before the new session information registration is completed to be reversed.
上記の課題を解決するために、本開示に係るネットワーキングシステムは、以下で説明する1つまたは複数の動的エントリ管理処理を行う。
To solve the above problems, the networking system according to the present disclosure performs one or more dynamic entry management processes described below.
〔2.セッション管理のための環境〕
まず、セッション管理のための環境を、図4を参照して説明する。 2. Environment for session management
First, the environment for session management will be described with reference to FIG.
まず、セッション管理のための環境を、図4を参照して説明する。 2. Environment for session management
First, the environment for session management will be described with reference to FIG.
図4は、セッション管理のための環境の例である環境1のブロック図である。図4に示されるように、環境1は、ネットワーキングシステム100およびネットワーク200を含む。ネットワーキングシステム100は、動的エントリ管理システムの一例である。
FIG. 4 is a block diagram of environment 1, which is an example of an environment for session management. As shown in FIG. 4, environment 1 includes networking system 100 and network 200. Networking system 100 is an example of a dynamic entry management system.
ネットワーキングシステム100は、ネットワーク機能を提供するシステムである。ネットワーキングシステム100は、NAPT等の動的セッションを管理する機能を有する。特に、ネットワーキングシステム100は、NAPTに関する機能を、ハードウェアアクセラレータにオフロードする。以下で説明するように、ネットワーキングシステム100は、動的エントリをハードウェアアクセラレータ上で管理するための処理を行う。この明細書では、このような処理は、動的エントリ管理処理と呼ばれる。1つの動的エントリ管理処理の概要を、3節で説明する。そして、様々な動的エントリ管理処理を、5節で詳細に説明する。
The networking system 100 is a system that provides network functions. The networking system 100 has a function for managing dynamic sessions such as NAPT. In particular, the networking system 100 offloads functions related to NAPT to a hardware accelerator. As described below, the networking system 100 performs processing for managing dynamic entries on the hardware accelerator. In this specification, such processing is referred to as a dynamic entry management processing. An overview of one dynamic entry management processing is provided in Section 3. Various dynamic entry management processing is then described in detail in Section 5.
ネットワーキングシステム100は、1つまたは複数のサーバ等の、1つまたは複数のコンピュータを含む。ネットワーキングシステム100は、ハードウェアアクセラレータを備えている。ネットワーキングシステム100の構成の例を、4節で説明する。
Networking system 100 includes one or more computers, such as one or more servers. Networking system 100 includes a hardware accelerator. An example configuration of networking system 100 is described in Section 4.
ネットワーク200は、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット等のネットワークである。
Network 200 is a network such as a LAN (Local Area Network), a WAN (Wide Area Network), or the Internet.
〔3.動的エントリ管理処理の概要〕
次に、1つの動的エントリ管理処理の概要(overview)を、図5Aおよび図5Bを参照して説明する。なお、この概要は、本発明や、以下の節で説明する複数の実施形態を限定することを意図するものではない。 3. Overview of Dynamic Entry Management Processing
An overview of one dynamic entry management process will now be described with reference to Figures 5A and 5B. Note that this overview is not intended to limit the invention or the embodiments described in the following sections.
次に、1つの動的エントリ管理処理の概要(overview)を、図5Aおよび図5Bを参照して説明する。なお、この概要は、本発明や、以下の節で説明する複数の実施形態を限定することを意図するものではない。 3. Overview of Dynamic Entry Management Processing
An overview of one dynamic entry management process will now be described with reference to Figures 5A and 5B. Note that this overview is not intended to limit the invention or the embodiments described in the following sections.
図5Aおよび図5Bは、本開示に係る1つの動的エントリ管理処理の概要である概要40を、ひとまとめにして示す。
5A and 5B collectively show overview 40, which is an overview of one dynamic entry management process according to the present disclosure.
図5Aに示されるように、ネットワーキングシステム100は、汎用サーバによって実装される。汎用サーバは、ソフトウェア41(NFV)と、ハードウェアアクセラレータ42を有する。
As shown in FIG. 5A, the networking system 100 is implemented by a general-purpose server. The general-purpose server has software 41 (NFV) and a hardware accelerator 42.
ソフトウェア41は、パケットを、ソフトウェア的なやり方で、処理する。「ソフトウェア的なやり方」という用語は、汎用プロセッサ(例えば、CPU)によって行われる処理を指す。それに対して、「ハードウェア的なやり方」という用語は、FPGA(Field Programmable Gate Array)といった、カスタムの集積回路によって行われる処理を指す。
Software 41 processes the packets in a software manner. The term "software manner" refers to processing performed by a general purpose processor (e.g., a CPU), whereas the term "hardware manner" refers to processing performed by a custom integrated circuit, such as a Field Programmable Gate Array (FPGA).
ネットワーキングシステム100は、NAPT処理を、ハードウェアアクセラレータ42にオフロードする。
The networking system 100 offloads NAPT processing to the hardware accelerator 42.
図5Bを参照すると、ネットワーキングシステム100は、2種類の空きポート管理テーブルを有する。1つは、空きポート管理テーブル43である。もう1つは、空きポート管理テーブル44である。
Referring to FIG. 5B, the networking system 100 has two types of free port management tables. One is free port management table 43. The other is free port management table 44.
空きポート管理テーブル43は、ポート空間全体の利用および空きを管理する。空きポート管理テーブル43は、ソフトウェア41に配置される。ネットワーキングシステム100のテーブル管理部46が、空きポート管理テーブル43を管理する。空きポート管理テーブル43は、割り当て可能なポート空間全体を、エントリーとして有する。なお、行が、データの保存場所を指すのに対して、エントリ(テーブル中のデータ列)は、データそのものを指す。
The free port management table 43 manages the usage and availability of the entire port space. The free port management table 43 is located in the software 41. The table management unit 46 of the networking system 100 manages the free port management table 43. The free port management table 43 has entries for the entire allocatable port space. Note that while a row indicates the location where data is stored, an entry (a data column in the table) indicates the data itself.
空きポート管理テーブル44は、少量の空きポート番号を保持し管理する。例えば、保持される空きポート番号は、収容される予定のフローの想定数の10パーセントである。空きポート管理テーブル44は、ハードウェアアクセラレータ42に配置される。ネットワーキングシステム100のパケット処理部47が、空きポート管理テーブル44を管理する。空きポート管理テーブル44のテーブルサイズは、ハードウェアリソース量に応じて、調整され得る。
The free port management table 44 holds and manages a small number of free port numbers. For example, the number of free port numbers held is 10 percent of the expected number of flows to be accommodated. The free port management table 44 is placed in the hardware accelerator 42. The packet processing unit 47 of the networking system 100 manages the free port management table 44. The table size of the free port management table 44 can be adjusted according to the amount of hardware resources.
セッション管理テーブル45は、ハードウェアアクセラレータ42に配置される。セッション管理テーブル45は、有効なセッションと同数のエントリーを有する。
The session management table 45 is located in the hardware accelerator 42. The session management table 45 has the same number of entries as there are active sessions.
新規フローがネットワーキングシステム100に到着した場合に、パケット処理部47は、空きポート管理テーブル44を参照する。パケット処理部47は、利用されるポート番号を決定する。
When a new flow arrives at the networking system 100, the packet processing unit 47 refers to the free port management table 44. The packet processing unit 47 determines the port number to be used.
テーブル管理部46は、空きポート管理テーブル44を、最新の状態に保つ。初期には、パケット処理部47は、空きポート管理テーブル43にリストされたいくつかのポート番号を、空きポート管理テーブル44に登録する。
The table management unit 46 keeps the free port management table 44 up to date. Initially, the packet processing unit 47 registers some port numbers listed in the free port management table 43 in the free port management table 44.
ネットワーキングシステム100は、必要最低限の数のエントリーを有するテーブルを、ハードウェアリソース量に応じて、配置することができる。このため、ネットワーキングシステム100は、ハードウェアリソース消費量を削減することができる。
The networking system 100 can arrange tables with the minimum number of entries required according to the amount of hardware resources. This allows the networking system 100 to reduce the amount of hardware resources consumed.
さらに、全てのパケットが、ハードウェアで折り返す。したがって、パケットの順序逆転は、ネットワーキングシステム100では、発生しない。
Furthermore, all packets are folded back by hardware. Therefore, packet reordering does not occur in networking system 100.
〔4.ネットワーキングシステムの構成〕
次に、ネットワーキングシステム100の構成の例を、図6を参照して説明する。 4. Networking System Configuration
Next, an example of the configuration of thenetworking system 100 will be described with reference to FIG.
次に、ネットワーキングシステム100の構成の例を、図6を参照して説明する。 4. Networking System Configuration
Next, an example of the configuration of the
図6は、本開示に係るネットワーキングシステム100の構成の例のブロック図である。図6に示されるように、ネットワーキングシステム100は、通信部110、制御部120および記憶部130を含む。ネットワーキングシステム100は、ネットワーキングシステム100の管理者から入力を受け付ける入力部(例えば、キーボード、マウス)を含んでもよい。また、ネットワーキングシステム100は、管理者に情報を表示する出力部(例えば、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ)を含んでもよい。
FIG. 6 is a block diagram of an example of the configuration of a networking system 100 according to the present disclosure. As shown in FIG. 6, the networking system 100 includes a communication unit 110, a control unit 120, and a storage unit 130. The networking system 100 may include an input unit (e.g., a keyboard, a mouse) that accepts input from an administrator of the networking system 100. The networking system 100 may also include an output unit (e.g., a liquid crystal display, an organic EL (Electro Luminescence) display) that displays information to the administrator.
(通信部110)
通信部110は、NIC(Network Interface Card)等のネットワーク機器によって実装される。通信部110は、有線または無線によりネットワーク200と接続される。通信部110は、ネットワーク200を介して、通信機器との間で、データの送受信を行うことができる。 (Communication unit 110)
The communication unit 110 is implemented by a network device such as a network interface card (NIC). The communication unit 110 is connected to the network 200 by wire or wirelessly. The communication unit 110 can transmit and receive data to and from the communication device via the network 200.
通信部110は、NIC(Network Interface Card)等のネットワーク機器によって実装される。通信部110は、有線または無線によりネットワーク200と接続される。通信部110は、ネットワーク200を介して、通信機器との間で、データの送受信を行うことができる。 (Communication unit 110)
The communication unit 110 is implemented by a network device such as a network interface card (NIC). The communication unit 110 is connected to the network 200 by wire or wirelessly. The communication unit 110 can transmit and receive data to and from the communication device via the network 200.
(制御部120)
制御部120は、データ処理装置と、記憶装置に記憶された各種プログラムによって実装される。データ処理装置は、例えば、CPU、MPU(Micro Processing Unit)、GPGPU(General Purpose Graphic Processing Unit)等のプロセッサである。制御部120は、ネットワーキングシステム100の複数の動作を制御するためのコントローラ(controller)として実装され得る。例えば、1つまたは複数のプロセッサが、RAM(Random Access Memory)を作業領域として使用することで、プログラム(複数の命令)を実行した場合に、この1つまたは複数のプロセッサは、複数の動作を行う。 (Control unit 120)
The control unit 120 is implemented by a data processing device and various programs stored in a storage device. The data processing device is, for example, a processor such as a CPU, a micro processing unit (MPU), or a general purpose graphic processing unit (GPGPU). The control unit 120 can be implemented as a controller for controlling multiple operations of thenetworking system 100. For example, when one or more processors execute a program (multiple instructions) by using a random access memory (RAM) as a working area, the one or more processors perform multiple operations.
制御部120は、データ処理装置と、記憶装置に記憶された各種プログラムによって実装される。データ処理装置は、例えば、CPU、MPU(Micro Processing Unit)、GPGPU(General Purpose Graphic Processing Unit)等のプロセッサである。制御部120は、ネットワーキングシステム100の複数の動作を制御するためのコントローラ(controller)として実装され得る。例えば、1つまたは複数のプロセッサが、RAM(Random Access Memory)を作業領域として使用することで、プログラム(複数の命令)を実行した場合に、この1つまたは複数のプロセッサは、複数の動作を行う。 (Control unit 120)
The control unit 120 is implemented by a data processing device and various programs stored in a storage device. The data processing device is, for example, a processor such as a CPU, a micro processing unit (MPU), or a general purpose graphic processing unit (GPGPU). The control unit 120 can be implemented as a controller for controlling multiple operations of the
制御部120は、動的エントリ管理処理のための入力データを、外部装置から受信することができる。制御部120は、入力データ、動的エントリ管理処理において使用されるデータ、動的エントリ管理処理の出力データ等のデータを、記憶部130に格納することができる。制御部120は、このようなデータを、記憶部130から、必要に応じて取得することができる。
The control unit 120 can receive input data for the dynamic entry management process from an external device. The control unit 120 can store data such as the input data, data used in the dynamic entry management process, and output data of the dynamic entry management process in the memory unit 130. The control unit 120 can obtain such data from the memory unit 130 as necessary.
(記憶部130)
記憶部130は、RAM、フラッシュメモリ(Flash Memory)等の半導体メモリ、ハードディスク等の磁気ディスク、または光ディスクによって実装される。記憶部130は、各種プログラムおよび各種データを記憶することができる。 (Memory unit 130)
The storage unit 130 is implemented by a RAM, a semiconductor memory such as a flash memory, a magnetic disk such as a hard disk, or an optical disk. The storage unit 130 can store various programs and various data.
記憶部130は、RAM、フラッシュメモリ(Flash Memory)等の半導体メモリ、ハードディスク等の磁気ディスク、または光ディスクによって実装される。記憶部130は、各種プログラムおよび各種データを記憶することができる。 (Memory unit 130)
The storage unit 130 is implemented by a RAM, a semiconductor memory such as a flash memory, a magnetic disk such as a hard disk, or an optical disk. The storage unit 130 can store various programs and various data.
図6に示されるように、制御部120は、テーブル管理部121およびパケット処理部122を含む。テーブル管理部121は、第2判定部、第2取得部および登録部の一例である。テーブル管理部121は、図5Bを参照して上で説明したテーブル管理部46に対応する。パケット処理部122は、受信部、第1判定部、開始部、第1取得部および割当部の一例である。パケット処理部122は、図5Bを参照して上で説明したパケット処理部47に対応する。
As shown in FIG. 6, the control unit 120 includes a table management unit 121 and a packet processing unit 122. The table management unit 121 is an example of a second determination unit, a second acquisition unit, and a registration unit. The table management unit 121 corresponds to the table management unit 46 described above with reference to FIG. 5B. The packet processing unit 122 is an example of a receiving unit, a first determination unit, a starting unit, a first acquisition unit, and an allocation unit. The packet processing unit 122 corresponds to the packet processing unit 47 described above with reference to FIG. 5B.
図6に示されるように、記憶部130は、大きい空きポート管理テーブル131、小さい空きポート管理テーブル132およびセッション管理テーブル133を含む。大きい空きポート管理テーブル131は、大テーブルの一例である。小さい空きポート管理テーブル132は、小テーブルおよび削除部の一例である。大きい空きポート管理テーブル131、小さい空きポート管理テーブル132およびセッション管理テーブル133は、図5Bを参照して上で説明した空きポート管理テーブル43、空きポート管理テーブル44およびセッション管理テーブル45に、それぞれ対応する。
As shown in FIG. 6, the memory unit 130 includes a large free port management table 131, a small free port management table 132, and a session management table 133. The large free port management table 131 is an example of a large table. The small free port management table 132 is an example of a small table and a deletion unit. The large free port management table 131, the small free port management table 132, and the session management table 133 correspond to the free port management table 43, the free port management table 44, and the session management table 45, respectively, described above with reference to FIG. 5B.
〔5.動的エントリ管理処理の詳細〕
1つの動的エントリ管理処理の概要を、図5Aおよび図5Bを参照して上で説明した。様々な動的エントリ管理処理を、シーケンス図とフローチャートを使って、この節で詳細に説明する。 5. Details of Dynamic Entry Management Processing
One dynamic entry management process is outlined above with reference to Figures 5A and 5B. Various dynamic entry management processes are described in detail in this section using sequence diagrams and flow charts.
1つの動的エントリ管理処理の概要を、図5Aおよび図5Bを参照して上で説明した。様々な動的エントリ管理処理を、シーケンス図とフローチャートを使って、この節で詳細に説明する。 5. Details of Dynamic Entry Management Processing
One dynamic entry management process is outlined above with reference to Figures 5A and 5B. Various dynamic entry management processes are described in detail in this section using sequence diagrams and flow charts.
動的エントリ管理処理の例は、次の3つの処理を含む:(1)パケットを、ハードウェアリソース消費を抑えながら、転送するための処理(2)空きポートを、ハードウェアへのポーリングで更新するための処理および(3)空きポートを、ソフトウェアへのプッシュで更新するための処理。
Examples of dynamic entry management processes include the following three processes: (1) a process for forwarding packets while minimizing hardware resource consumption; (2) a process for updating free ports by polling the hardware; and (3) a process for updating free ports by pushing to the software.
図7Aおよび図7Bは、パケットを、ハードウェアリソース消費を抑えながら、転送するための処理の例である処理P100を示すシーケンス図である。
FIGS. 7A and 7B are sequence diagrams showing process P100, which is an example of a process for transferring packets while minimizing hardware resource consumption.
通信装置Aは、パケットを、パケット処理部122に転送する(ステップS101)。
Communication device A transfers the packet to the packet processing unit 122 (step S101).
パケット処理部122は、ヘッダ情報を、パケットから抽出する(ステップS102)。
The packet processing unit 122 extracts the header information from the packet (step S102).
パケット処理部122は、セッション管理テーブル133を参照する(ステップS103)。
The packet processing unit 122 refers to the session management table 133 (step S103).
フロー情報がセッション管理テーブル133に登録されている場合に、パケット処理部122は、セッション情報を、セッション管理テーブル133から取得する(ステップS104)。
If the flow information is registered in the session management table 133, the packet processing unit 122 obtains the session information from the session management table 133 (step S104).
フロー情報がセッション管理テーブル133に登録されていない場合に、パケット処理部122は、小さい空きポート管理テーブル132を参照する(ステップS105)。
If the flow information is not registered in the session management table 133, the packet processing unit 122 refers to the smallest available port management table 132 (step S105).
パケット処理部122は、空きポート番号を、小さい空きポート管理テーブル132から取得する(ステップS106)。
The packet processing unit 122 obtains the free port number from the small free port management table 132 (step S106).
小さい空きポート管理テーブル132は、利用中のポートのエントリーを削除する(ステップS107)。
The small free port management table 132 deletes the entry for the port that is in use (step S107).
パケット処理部122は、新規セッション情報を、セッション管理テーブル133に登録する(ステップS108)。
The packet processing unit 122 registers the new session information in the session management table 133 (step S108).
パケット処理部122は、パケットを書き換える(ステップS109)。
The packet processing unit 122 rewrites the packet (step S109).
パケット処理部122は、パケットを、通信装置Bに転送する(ステップS110)。
The packet processing unit 122 forwards the packet to communication device B (step S110).
図7Aおよび図7Bを参照して上述したように、パケット処理部122は、新規フローに関しては、小さい空きポート管理テーブル132を参照し、ポート番号を決定し、それから、パケットを転送する。パケット処理部122が新規フローに割り当てられるポート番号を決定した場合に、小さい空きポート管理テーブル132は、自身のテーブルから、そのエントリーを削除する。
As described above with reference to Figures 7A and 7B, for a new flow, the packet processing unit 122 refers to the small free port management table 132, determines the port number, and then forwards the packet. When the packet processing unit 122 determines the port number to be assigned to the new flow, the small free port management table 132 deletes the entry from its own table.
図8は、空きポートを、ハードウェアへのポーリングで更新するための処理の例である処理P200を示すシーケンス図である。
FIG. 8 is a sequence diagram showing process P200, which is an example of a process for updating available ports by polling the hardware.
テーブル管理部121は、小さい空きポート管理テーブル132の情報を取得する(ステップS201)。
The table management unit 121 obtains information from the small free port management table 132 (step S201).
テーブル管理部121は、小さい空きポート管理テーブル132が空いているか、を判定する(ステップS202)。
The table management unit 121 determines whether the small free port management table 132 is free (step S202).
小さい空きポート管理テーブル132が空いている場合に(ステップS202:Yes)、テーブル管理部121は、空きポートを、大きい空きポート管理テーブル131から取得する(ステップS203)。
If the small free port management table 132 is free (step S202: Yes), the table management unit 121 obtains a free port from the large free port management table 131 (step S203).
テーブル管理部121は、エントリーを、小さい空きポート管理テーブル132に登録する(ステップS204)。
The table management unit 121 registers the entry in the small free port management table 132 (step S204).
小さい空きポート管理テーブル132が空いていない場合に(ステップS202:No)、テーブル管理部121は、再度、ステップS201を行う。
If the small free port management table 132 is not free (step S202: No), the table management unit 121 performs step S201 again.
図8を参照して上述したように、ソフトウェア上で動作するテーブル管理部121が、小さい空きポート管理テーブル132のテーブル情報を、定期的にポーリングする。小さい空きポート管理テーブル132のエントリーに空席ができたら、テーブル管理部121は、新規フローにポートを割り当てる(空席は、そのエントリーが削除された際に発生する。)。テーブル管理部121は、大きい空きポート管理テーブル131から、未使用のポート番号を取得し、それから、取得されたポート番号を、小さい空きポート管理テーブル132に書き込む。小さい空きポート管理テーブル132に書き込まれたポート番号は、大きい空きポート管理テーブル131の「利用」枠にチェックをいれることで管理される。
As described above with reference to FIG. 8, the table management unit 121 running on software periodically polls the table information in the small free port management table 132. When an entry in the small free port management table 132 becomes vacant, the table management unit 121 assigns a port to the new flow (a vacancy occurs when an entry is deleted). The table management unit 121 obtains an unused port number from the large free port management table 131, and then writes the obtained port number to the small free port management table 132. The port numbers written to the small free port management table 132 are managed by checking the "Use" box in the large free port management table 131.
図9は、空きポートを、ソフトウェアへのプッシュで更新するための処理の例である処理P300を示すシーケンス図である。
FIG. 9 is a sequence diagram showing process P300, which is an example of a process for updating free ports by pushing to software.
テーブル管理部121は、新規エントリーの要求を受信する(ステップS301)。
The table management unit 121 receives a request for a new entry (step S301).
テーブル管理部121は、空きポートを、大きい空きポート管理テーブル131から取得する(ステップS302)。
The table management unit 121 obtains the free ports from the large free port management table 131 (step S302).
テーブル管理部121は、エントリーを、小さい空きポート管理テーブル132に登録する(ステップS303)。
The table management unit 121 registers the entry in the small free port management table 132 (step S303).
図9を参照して上述したように、小さい空きポート管理テーブル132は、自身のエントリーに空席ができたら、テーブル管理部121に、新規エントリーの要求を送る。テーブル管理部121は、大きい空きポート管理テーブル131から、未使用のポート番号を取得し、それから、取得されたポート番号を、小さい空きポート管理テーブル132に書き込む。小さい空きポート管理テーブル132に書き込まれたポート番号は、大きい空きポート管理テーブル131の「利用」枠にチェックをいれることで管理される。
As described above with reference to FIG. 9, when a vacancy occurs in one of its entries, the small free port management table 132 sends a request for a new entry to the table management unit 121. The table management unit 121 obtains an unused port number from the large free port management table 131, and then writes the obtained port number into the small free port management table 132. The port number written into the small free port management table 132 is managed by checking the "Use" box in the large free port management table 131.
なお、大きい空きポート管理テーブル131上で空きポートがなくなったら、小さい空きポート管理テーブル132には、ポート番号が補充されなくなる。小さい空きポート管理テーブル132に利用可能なポート番号がない状態で、ネットワーキングシステム100が新規セッションを受信した場合、そのパケットは、ドロップされる。
Note that if there are no more free ports in the large free port management table 131, port numbers will no longer be replenished in the small free port management table 132. If the networking system 100 receives a new session when there are no available port numbers in the small free port management table 132, the packet will be dropped.
一定期間通信が発生していないセッションは、セッション管理テーブル133から削除される。その際、テーブル管理部121は、大きい空きポート管理テーブル131の該当ポート番号の「利用」枠から、チェックを外す。テーブル管理部121は、該当ポート番号を、未利用のポートとして管理する。
A session in which no communication has occurred for a certain period of time is deleted from the session management table 133. At that time, the table management unit 121 removes the check from the "Use" box for the corresponding port number in the large free port management table 131. The table management unit 121 manages the corresponding port number as an unused port.
〔6.効果〕
ネットワーキングシステム100では、ハードウェア側には、小さい空きポート管理テーブルしか配備されない。このため、ネットワーキングシステム100は、ハードウェアリソースの消費量を低減させる。さらに、全てのトラヒックは、ハードウェアで折り返されるため、ネットワーキングシステム100は、処理性能の低減およびパケット順序逆転の発生の防止も可能とする。 6. Effects
In thenetworking system 100, only a small free port management table is provided on the hardware side. Therefore, the networking system 100 reduces the consumption of hardware resources. Furthermore, since all traffic is turned back by the hardware, the networking system 100 can prevent the reduction of processing performance and the occurrence of packet order reversal.
ネットワーキングシステム100では、ハードウェア側には、小さい空きポート管理テーブルしか配備されない。このため、ネットワーキングシステム100は、ハードウェアリソースの消費量を低減させる。さらに、全てのトラヒックは、ハードウェアで折り返されるため、ネットワーキングシステム100は、処理性能の低減およびパケット順序逆転の発生の防止も可能とする。 6. Effects
In the
〔7.ハードウェア構成〕
図10は、コンピュータのハードウェア構成の例であるコンピュータ1000を示す図である。この明細書で説明されたシステムや方法は、例えば、コンピュータ1000によって実装される。 7. Hardware Configuration
10 is a diagram showing an example of a hardware configuration of acomputer 1000. The systems and methods described in this specification are implemented by the computer 1000, for example.
図10は、コンピュータのハードウェア構成の例であるコンピュータ1000を示す図である。この明細書で説明されたシステムや方法は、例えば、コンピュータ1000によって実装される。 7. Hardware Configuration
10 is a diagram showing an example of a hardware configuration of a
コンピュータ1000は、プログラムを実行することでネットワーキングシステム100を実装するコンピュータの一例を示している。コンピュータ1000は、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060およびネットワークインタフェース1070を有する。これらの構成要素は、バス1080によって接続される。
Computer 1000 is an example of a computer that implements networking system 100 by executing a program. Computer 1000 has memory 1010 and CPU 1020. Computer 1000 also has hard disk drive interface 1030, disk drive interface 1040, serial port interface 1050, video adapter 1060, and network interface 1070. These components are connected by bus 1080.
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。着脱可能な記憶媒体(例えば、磁気ディスクや光ディスク)が、ディスクドライブ1100に挿入され得る。シリアルポートインタフェース1050は、例えば、マウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えば、ディスプレイ1130に接続される。
The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012. The ROM 1011 stores a boot program such as a BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to a hard disk drive 1090. The disk drive interface 1040 is connected to a disk drive 1100. A removable storage medium (e.g., a magnetic disk or an optical disk) can be inserted into the disk drive 1100. The serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120. The video adapter 1060 is connected to, for example, a display 1130.
ハードディスクドライブ1090は、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。コンピュータ1000によって実行されるプログラムは、ネットワーキングシステム100の複数の動作を規定する。このプログラムは、コンピュータ1000により実行可能なコードで記述されたプログラムモジュール1093として実装され得る。プログラムモジュール1093は、例えば、ハードディスクドライブ1090に記憶される。例えば、ハードディスクドライブ1090は、ネットワーキングシステム100の構成要素の機能と同様の処理を実行するためのプログラムモジュール1093を記憶する。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)に置き換えられてもよい。
The hard disk drive 1090 stores an OS 1091, an application program 1092, a program module 1093, and program data 1094. The program executed by the computer 1000 defines multiple operations of the networking system 100. This program may be implemented as a program module 1093 written in code executable by the computer 1000. The program module 1093 is stored, for example, in the hard disk drive 1090. For example, the hard disk drive 1090 stores a program module 1093 for executing processing similar to the functions of the components of the networking system 100. The hard disk drive 1090 may be replaced with an SSD (Solid State Drive).
ハードディスクドライブ1090は、動的エントリ管理処理のための動的エントリ管理プログラムを記憶することができる。ハードディスクドライブ1090は、動的エントリ管理プログラム(複数の命令)を含むコンピュータプログラムプロダクトを記憶してもよい。動的エントリ管理プログラムは、実行された場合に、上で説明したような、1つまたは複数の方法を行う。
The hard disk drive 1090 can store a dynamic entry management program for dynamic entry management processing. The hard disk drive 1090 may store a computer program product including a dynamic entry management program (a plurality of instructions). When executed, the dynamic entry management program performs one or more methods, such as those described above.
上で説明した様々な処理に用いられる設定データは、プログラムデータ1094として実装され得る。設定データは、例えば、メモリ1010やハードディスクドライブ1090に記憶される。CPU1020は、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を、必要に応じて、RAM1012にロードする。そして、CPU1020は、上で説明した様々な処理を行う。
The setting data used in the various processes described above can be implemented as program data 1094. The setting data is stored, for example, in the memory 1010 or the hard disk drive 1090. The CPU 1020 loads the program module 1093 or the program data 1094 stored in the memory 1010 or the hard disk drive 1090 into the RAM 1012 as necessary. The CPU 1020 then performs the various processes described above.
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090ではなく、着脱可能な記憶媒体に記憶されてもよい。CPU1020は、プログラムモジュール1093やプログラムデータ1094を、ディスクドライブ1100等を介してロードしてもよい。あるいは、プログラムモジュール1093やプログラムデータ1094は、ネットワーク(LAN、WAN等)を介してコンピュータ1000に接続された他のコンピュータに記憶されてもよい。この場合、CPU1020は、プログラムモジュール1093やプログラムデータ1094を、ネットワークインタフェース1070を介してロードしてもよい。
The program module 1093 and program data 1094 may be stored in a removable storage medium instead of the hard disk drive 1090. The CPU 1020 may load the program module 1093 and program data 1094 via the disk drive 1100 or the like. Alternatively, the program module 1093 and program data 1094 may be stored in another computer connected to the computer 1000 via a network (LAN, WAN, etc.). In this case, the CPU 1020 may load the program module 1093 and program data 1094 via the network interface 1070.
〔8.実施形態のまとめ〕
上で説明したように、ネットワーキングシステム100は、パケット処理部122および小さい空きポート管理テーブル132を含む。少なくとも1つの実施形態では、パケット処理部122は、パケットを受信する。パケット処理部122は、受信されたパケットが既存フローに対応するか、を判定する。受信されたパケットが既存フローに対応しない、と判定することに応じて、パケット処理部122は、受信されたパケットに対応する新規フローを開始する。パケット処理部122は、既存セッションによって利用されていない第1のポート番号を、利用可能な複数のポート番号の一部に対応する複数のエントリーを含む小さい空きポート管理テーブル132から取得する。小さい空きポート管理テーブル132は、ハードウェアアクセラレータ上に配置されている。パケット処理部122は、第1のポート番号を、新規フローに割り当てる。 8. Summary of the embodiment
As described above, thenetworking system 100 includes a packet processor 122 and a small free port management table 132. In at least one embodiment, the packet processor 122 receives a packet. The packet processor 122 determines whether the received packet corresponds to an existing flow. In response to determining that the received packet does not correspond to an existing flow, the packet processor 122 starts a new flow corresponding to the received packet. The packet processor 122 obtains a first port number that is not used by an existing session from the small free port management table 132, which includes a plurality of entries corresponding to a portion of a plurality of available port numbers. The small free port management table 132 is disposed on a hardware accelerator. The packet processor 122 assigns the first port number to the new flow.
上で説明したように、ネットワーキングシステム100は、パケット処理部122および小さい空きポート管理テーブル132を含む。少なくとも1つの実施形態では、パケット処理部122は、パケットを受信する。パケット処理部122は、受信されたパケットが既存フローに対応するか、を判定する。受信されたパケットが既存フローに対応しない、と判定することに応じて、パケット処理部122は、受信されたパケットに対応する新規フローを開始する。パケット処理部122は、既存セッションによって利用されていない第1のポート番号を、利用可能な複数のポート番号の一部に対応する複数のエントリーを含む小さい空きポート管理テーブル132から取得する。小さい空きポート管理テーブル132は、ハードウェアアクセラレータ上に配置されている。パケット処理部122は、第1のポート番号を、新規フローに割り当てる。 8. Summary of the embodiment
As described above, the
いくつかの実施形態では、小さい空きポート管理テーブル132は、第1のポート番号を新規フローに割り当てることに応じて、第1のポート番号に対応するエントリーを、小さい空きポート管理テーブル132から削除する。
In some embodiments, in response to assigning the first port number to a new flow, the small free port management table 132 deletes the entry corresponding to the first port number from the small free port management table 132.
いくつかの実施形態では、第1のポート番号は、NAPTに利用される。
In some embodiments, the first port number is used for NAPT.
上で説明したように、ネットワーキングシステム100は、テーブル管理部121および大きい空きポート管理テーブル131を含む。少なくとも1つの実施形態では、テーブル管理部121は、小さい空きポート管理テーブル132が空いているか、を判定する。小さい空きポート管理テーブル132が空いている、と判定することに応じて、既存セッションによって利用されていない第2のポート番号を、全ての利用可能な複数のポート番号に対応する複数のエントリーを含む大きい空きポート管理テーブル131から取得する。テーブル管理部121は、第2のポート番号に対応するエントリーを、小さい空きポート管理テーブル132に登録する。
As described above, the networking system 100 includes a table management unit 121 and a large free port management table 131. In at least one embodiment, the table management unit 121 determines whether the small free port management table 132 is free. In response to determining that the small free port management table 132 is free, a second port number that is not being used by an existing session is obtained from the large free port management table 131, which includes multiple entries corresponding to all available multiple port numbers. The table management unit 121 registers the entry corresponding to the second port number in the small free port management table 132.
いくつかの実施形態では、テーブル管理部121は、取得された第1のポート番号に対応するエントリーを小さい空きポート管理テーブル132から削除することに応じて、第2のポート番号を大きい空きポート管理テーブル131から取得する。
In some embodiments, the table management unit 121 obtains the second port number from the large free port management table 131 in response to deleting the entry corresponding to the obtained first port number from the small free port management table 132.
いくつかの実施形態では、大きい空きポート管理テーブル131は、汎用プロセッサ上で動作するソフトウェアとして実装される。
In some embodiments, the large free port management table 131 is implemented as software running on a general-purpose processor.
〔9.補遺〕
最後に、上記の説明を、その他の実施形態で補う。様々な実施形態を、図面を参照して上で説明してきた。これらの実施形態は、例示的であり、上記の説明は、本開示を、これらの実施形態に限定することを意図するものではない。この明細書で説明された特徴は、当業者の知識に基づく変形や改良を含む、様々な方法(ways)で実現され得る。 9. Addendum
Finally, the above description is supplemented with other embodiments. Various embodiments have been described above with reference to the drawings. These embodiments are exemplary, and the above description is not intended to limit the present disclosure to these embodiments. The features described in this specification can be realized in various ways, including modifications and improvements based on the knowledge of those skilled in the art.
最後に、上記の説明を、その他の実施形態で補う。様々な実施形態を、図面を参照して上で説明してきた。これらの実施形態は、例示的であり、上記の説明は、本開示を、これらの実施形態に限定することを意図するものではない。この明細書で説明された特徴は、当業者の知識に基づく変形や改良を含む、様々な方法(ways)で実現され得る。 9. Addendum
Finally, the above description is supplemented with other embodiments. Various embodiments have been described above with reference to the drawings. These embodiments are exemplary, and the above description is not intended to limit the present disclosure to these embodiments. The features described in this specification can be realized in various ways, including modifications and improvements based on the knowledge of those skilled in the art.
(各種変形)
この明細書では、いくつかの処理は、自動的に行われる処理として説明された。これらの処理の一部は、手動的に行われ得る。また、いくつかの他の処理は、手動的に行われる処理として説明された。これらの他の処理の全部または一部は、公知の方法を使って、自動的に行われ得る。 (Various variations)
In this specification, some processes have been described as being performed automatically. Some of these processes may be performed manually. Some other processes have been described as being performed manually. All or part of these other processes may be performed automatically using known methods.
この明細書では、いくつかの処理は、自動的に行われる処理として説明された。これらの処理の一部は、手動的に行われ得る。また、いくつかの他の処理は、手動的に行われる処理として説明された。これらの他の処理の全部または一部は、公知の方法を使って、自動的に行われ得る。 (Various variations)
In this specification, some processes have been described as being performed automatically. Some of these processes may be performed manually. Some other processes have been described as being performed manually. All or part of these other processes may be performed automatically using known methods.
ネットワーキングシステム100の様々な実装が、本明細書で説明されるか、または図面に示されている。いくつかの実装は、各種のデータ、データ処理手順、具体的名称、またはパラメータを含む情報に関する。このような実装は、特に明記しない限り、任意に変更され得る。例えば、各種のデータは、図面に示されたデータに限られない。
Various implementations of the networking system 100 are described herein or shown in the drawings. Some implementations relate to information that includes various data, data processing procedures, specific names, or parameters. Such implementations may be modified in any way unless otherwise specified. For example, the various data are not limited to the data shown in the drawings.
システムおよび装置の構成要素が、図面に示されている。図示された構成要素は、システムおよび装置の機能を、概念的に示すものである。構成要素は、必ずしも、図面に示されたように物理的に構成されているとは限らない。構成要素は、統合または分散されてもよく、システムおよび装置の具体的形態は、図示された形態に限られない。システムおよび装置の全部または一部は、各種の負荷や使用状況に応じて、機能的または物理的に統合または分散され得る。
The components of the systems and devices are shown in the drawings. The illustrated components conceptually represent the functions of the systems and devices. The components are not necessarily physically configured as shown in the drawings. The components may be integrated or distributed, and the specific forms of the systems and devices are not limited to those shown in the drawings. All or part of the systems and devices may be functionally or physically integrated or distributed depending on various loads and usage conditions.
(構成要素を表す用語)
部(module、section、-er接尾辞または-or接尾辞)という用語は、ユニット、手段、回路などに読み替えることができる。例えば、通信部(communication module)、制御部(control module)および記憶部(storage module)は、それぞれ、通信ユニット、制御ユニットおよび記憶ユニットに読み替えることができる。 (Terms expressing components)
The terms module, section, -er suffix or -or suffix may be read as unit, means, circuit, etc. For example, a communication module, a control module, and a storage module may be read as a communication unit, a control unit, and a storage unit, respectively.
部(module、section、-er接尾辞または-or接尾辞)という用語は、ユニット、手段、回路などに読み替えることができる。例えば、通信部(communication module)、制御部(control module)および記憶部(storage module)は、それぞれ、通信ユニット、制御ユニットおよび記憶ユニットに読み替えることができる。 (Terms expressing components)
The terms module, section, -er suffix or -or suffix may be read as unit, means, circuit, etc. For example, a communication module, a control module, and a storage module may be read as a communication unit, a control unit, and a storage unit, respectively.
(制御部の構成)
図6に示された制御部120の構成は、例示的であり、特定の部に関して説明されたデータ処理は、必ずしも、その特定の部によって行われなくてもよい。例えば、テーブル管理部121は、パケット処理部122に関して説明されたデータ処理を行ってもよい。また、制御部120は、図6に示されていないその他の部を含んでもよい。その他の部は、制御部120に関して説明されたデータ処理を行ってもよい。 (Configuration of the control unit)
The configuration of the control unit 120 shown in Fig. 6 is illustrative, and the data processing described with respect to a particular unit does not necessarily have to be performed by that particular unit. For example, thetable management unit 121 may perform the data processing described with respect to the packet processing unit 122. The control unit 120 may also include other units not shown in Fig. 6. The other units may perform the data processing described with respect to the control unit 120.
図6に示された制御部120の構成は、例示的であり、特定の部に関して説明されたデータ処理は、必ずしも、その特定の部によって行われなくてもよい。例えば、テーブル管理部121は、パケット処理部122に関して説明されたデータ処理を行ってもよい。また、制御部120は、図6に示されていないその他の部を含んでもよい。その他の部は、制御部120に関して説明されたデータ処理を行ってもよい。 (Configuration of the control unit)
The configuration of the control unit 120 shown in Fig. 6 is illustrative, and the data processing described with respect to a particular unit does not necessarily have to be performed by that particular unit. For example, the
(データ処理装置)
制御部120に関して説明されたデータ処理装置は、上で説明した特定のハードウェアに限定されるものはない。データ処理装置は、例えば、各種のコンピュータ、またはASIC(Application Specific Integrated Circuit)、FPGA、GPGPU(General Purpose Graphic Processing Unit)等の集積回路であってもよい。 (Data Processing Device)
The data processing device described with respect to the control unit 120 is not limited to the specific hardware described above. The data processing device may be, for example, various computers or integrated circuits such as an ASIC (Application Specific Integrated Circuit), an FPGA, or a GPGPU (General Purpose Graphic Processing Unit).
制御部120に関して説明されたデータ処理装置は、上で説明した特定のハードウェアに限定されるものはない。データ処理装置は、例えば、各種のコンピュータ、またはASIC(Application Specific Integrated Circuit)、FPGA、GPGPU(General Purpose Graphic Processing Unit)等の集積回路であってもよい。 (Data Processing Device)
The data processing device described with respect to the control unit 120 is not limited to the specific hardware described above. The data processing device may be, for example, various computers or integrated circuits such as an ASIC (Application Specific Integrated Circuit), an FPGA, or a GPGPU (General Purpose Graphic Processing Unit).
1 環境
100 ネットワーキングシステム
110 通信部
120 制御部
121 テーブル管理部
122 パケット処理部
130 記憶部
131 大きい空きポート管理テーブル
132 小さい空きポート管理テーブル
133 セッション管理テーブル
200 ネットワーク REFERENCE SIGNSLIST 1 Environment 100 Networking system 110 Communication unit 120 Control unit 121 Table management unit 122 Packet processing unit 130 Storage unit 131 Large free port management table 132 Small free port management table 133 Session management table 200 Network
100 ネットワーキングシステム
110 通信部
120 制御部
121 テーブル管理部
122 パケット処理部
130 記憶部
131 大きい空きポート管理テーブル
132 小さい空きポート管理テーブル
133 セッション管理テーブル
200 ネットワーク REFERENCE SIGNS
Claims (8)
- パケットを受信する受信部と、
前記受信部によって受信されたパケットが既存フローに対応するか、を判定する第1判定部と、
前記受信されたパケットが既存フローに対応しない、と判定することに応じて、前記受信されたパケットに対応する新規フローを開始する開始部と、
既存セッションによって利用されていない第1のポート番号を、利用可能な複数のポート番号の一部に対応する複数のエントリーを含む小テーブルから取得する第1取得部であって、前記小テーブルは、ハードウェアアクセラレータ上に配置されている、第1取得部と、
前記第1のポート番号を、前記新規フローに割り当てる割当部と
を備える動的エントリ管理システム。 A receiving unit for receiving a packet;
a first determination unit that determines whether a packet received by the receiving unit corresponds to an existing flow;
an initiator for initiating a new flow corresponding to the received packet in response to determining that the received packet does not correspond to an existing flow;
a first acquisition unit that acquires a first port number that is not being used by an existing session from a small table that includes a plurality of entries corresponding to a portion of a plurality of available port numbers, the small table being located on a hardware accelerator;
an allocation unit that allocates the first port number to the new flow. - 前記第1のポート番号を前記新規フローに割り当てることに応じて、前記第1のポート番号に対応するエントリーを、前記小テーブルから削除する削除部をさらに備える
請求項1に記載の動的エントリ管理システム。 The dynamic entry management system according to claim 1 , further comprising a deletion unit configured to delete an entry corresponding to the first port number from the small table in response to the allocation of the first port number to the new flow. - 前記第1のポート番号は、NAPT(Network Address and Port Translation)に利用される
請求項1に記載の動的エントリ管理システム。 The dynamic entry management system according to claim 1 , wherein the first port number is used for NAPT (Network Address and Port Translation). - 前記小テーブルが空いているか、を判定する第2判定部と、
前記小テーブルが空いている、と判定することに応じて、既存セッションによって利用されていない第2のポート番号を、全ての前記利用可能な複数のポート番号に対応する複数のエントリーを含む大テーブルから取得する第2取得部と、
前記第2のポート番号に対応するエントリーを、前記小テーブルに登録する登録部と
をさらに備える請求項1に記載の動的エントリ管理システム。 a second determination unit that determines whether the small table is vacant;
a second acquisition unit that acquires a second port number that is not being used by an existing session from a large table that includes a plurality of entries corresponding to all of the available port numbers in response to determining that the small table is available;
The dynamic entry management system according to claim 1 , further comprising: a registration unit that registers an entry corresponding to the second port number in the small table. - 前記第2取得部は、前記取得された第1のポート番号に対応するエントリーを前記小テーブルから削除することに応じて、前記第2のポート番号を前記大テーブルから取得する
請求項4に記載の動的エントリ管理システム。 The dynamic entry management system according to claim 4 , wherein the second acquisition unit acquires the second port number from the large table in response to deleting an entry corresponding to the acquired first port number from the small table. - 前記大テーブルは、汎用プロセッサ上で動作するソフトウェアとして実装される
請求項4に記載の動的エントリ管理システム。 The dynamic entry management system of claim 4, wherein the large table is implemented as software running on a general purpose processor. - コンピュータが実行する動的エントリ管理方法であって、
パケットを受信する受信工程と、
前記受信工程によって受信されたパケットが既存フローに対応するか、を判定する第1判定工程と、
前記受信されたパケットが既存フローに対応しない、と判定することに応じて、前記受信されたパケットに対応する新規フローを開始する開始工程と、
既存セッションによって利用されていない第1のポート番号を、利用可能な可能な複数のポート番号の一部に対応する複数のエントリーを含む小テーブルから取得する第1取得工程であって、前記小テーブルは、ハードウェアアクセラレータ上に配置されている、第1取得工程と、
前記第1のポート番号を、前記新規フローに割り当てる割当工程と
を含む動的エントリ管理方法。 1. A computer implemented method for dynamic entry management, comprising:
a receiving step of receiving a packet;
a first determination step of determining whether the packet received by the receiving step corresponds to an existing flow;
in response to determining that the received packet does not correspond to an existing flow, initiating a new flow corresponding to the received packet;
a first obtaining step of obtaining a first port number not used by an existing session from a sub-table including a plurality of entries corresponding to a portion of a plurality of possible available port numbers, the sub-table being located on a hardware accelerator;
an allocating step of allocating the first port number to the new flow. - コンピュータを、請求項1~6のうちいずれか1つに記載の動的エントリ管理システムとして機能させるための動的エントリ管理プログラム。 A dynamic entry management program for causing a computer to function as a dynamic entry management system according to any one of claims 1 to 6.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2023/005583 WO2024171404A1 (en) | 2023-02-16 | 2023-02-16 | Dynamic entry management system, dynamic entry management method, and dynamic entry management program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2023/005583 WO2024171404A1 (en) | 2023-02-16 | 2023-02-16 | Dynamic entry management system, dynamic entry management method, and dynamic entry management program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024171404A1 true WO2024171404A1 (en) | 2024-08-22 |
Family
ID=92421034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2023/005583 WO2024171404A1 (en) | 2023-02-16 | 2023-02-16 | Dynamic entry management system, dynamic entry management method, and dynamic entry management program |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024171404A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006180295A (en) * | 2004-12-22 | 2006-07-06 | Matsushita Electric Ind Co Ltd | Address conversion apparatus and address conversion method |
WO2013063791A1 (en) * | 2011-11-04 | 2013-05-10 | Qualcomm Atheros, Inc. | Nat/firewall accelerator |
US20150163197A1 (en) * | 2013-12-06 | 2015-06-11 | Qualcomm Innovation Center, Inc. | Systems, methods, and apparatus for full-cone and address restricted cone network address translation using hardware acceleration |
-
2023
- 2023-02-16 WO PCT/JP2023/005583 patent/WO2024171404A1/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006180295A (en) * | 2004-12-22 | 2006-07-06 | Matsushita Electric Ind Co Ltd | Address conversion apparatus and address conversion method |
WO2013063791A1 (en) * | 2011-11-04 | 2013-05-10 | Qualcomm Atheros, Inc. | Nat/firewall accelerator |
US20150163197A1 (en) * | 2013-12-06 | 2015-06-11 | Qualcomm Innovation Center, Inc. | Systems, methods, and apparatus for full-cone and address restricted cone network address translation using hardware acceleration |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10171567B2 (en) | Load balancing computer device, system, and method | |
US10382362B2 (en) | Network server having hardware-based virtual router integrated circuit for virtual networking | |
EP3405878B1 (en) | Virtual network, hot swapping, hot scaling, and disaster recovery for containers | |
US10467151B2 (en) | Using shared memory to transport data between server processes | |
US9934057B2 (en) | Shadow VNICs for the control and observability of IO virtual functions | |
AU2015252673B2 (en) | Computer, control device and data processing method | |
CN108984266B (en) | Virtual machine management method, device and system | |
JP2002169694A (en) | Method and system for automatic allocation of boot server to pxe client on network via dhcp server | |
US8955099B1 (en) | Distributing and sharing licenses across network devices in a virtual private network (VPN) | |
US11201836B2 (en) | Method and device for managing stateful application on server | |
WO2024171404A1 (en) | Dynamic entry management system, dynamic entry management method, and dynamic entry management program | |
CN113301144B (en) | Concurrent access processing method and device for Nginx server, server and storage medium | |
JP2016092530A (en) | Administrative server route control method, and administrative server | |
US10176144B2 (en) | Piggybacking target buffer address for next RDMA operation in current acknowledgement message | |
US20130013755A1 (en) | Diskless pc network communication agent system | |
CN110636149B (en) | Remote access method, device, router and storage medium | |
US20050188070A1 (en) | Vertical perimeter framework for providing application services | |
CN116436968A (en) | Service grid communication method, system, device and storage medium | |
CN114253733B (en) | Memory management method, device, computer equipment and storage medium | |
US11533372B2 (en) | Proxyless protocol | |
JP6677052B2 (en) | Communication management device, communication management method and program | |
CN111669310B (en) | Batch processing method for network isolation space in pptp vpn and pptp vpn server | |
CN114448932A (en) | Address allocation method and device and electronic equipment | |
WO2020181598A1 (en) | Method for processing nginx network isolation spaces in batches and nginx server | |
US20200174856A1 (en) | Scalable event delivery system and method supporting flexibility |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23922740 Country of ref document: EP Kind code of ref document: A1 |