Router

JP2025085712A5Pending Publication Date: 2025-09-08CFPH LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025039924
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2013-03-15
Filing Date
2025-03-13
Publication Date
2025-09-08

AI Technical Summary

Technical Problem

Existing communications networks experience significant delays when data is communicated between servers, particularly due to network/port translation functions performed by routers.

Method used

The implementation of a network element with multiple processors and interfaces that perform network address translation (NAT) and port address translation (PAT) functions, allowing for efficient data communication between servers by translating addresses and ports in real-time.

Benefits of technology

This solution significantly reduces data transmission delays by optimizing network operations and improving the speed and efficiency of data communication between servers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide an apparatus and storage medium for communication.SOLUTION: An apparatus comprises: a plurality of network interfaces including at least a first network interface configured for each first network and a second network interface configured for each second network; and a plurality of processors including a network processor for at least converting data and a scheduling processor for at least communicating the data converted by the network processor.SELECTED DRAWING: Figure 1A
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Provisional Patent Application No. 61 / 753,250, filed Jan. 16, 2013, which is incorporated herein by reference in its entirety.

[0002] Some embodiments relate to a communications network element. [Background technology]

[0003] A communications network may include one or more network elements, for example, to facilitate communication of data between computing devices. [Brief description of the drawings]

[0004] [Figure 1A] FIG. 1A is a diagram of an example system according to some embodiments. [Figure 1B] FIG. 1B is a diagram of an example of the configuration of the system of FIG. 1A. [Diagram 2] FIG. 2 illustrates another example system according to some embodiments. [Diagram 3] FIG. 3 is a diagram illustrating an example network element according to some embodiments. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0005] Referring to FIG. 1A, an example of a system 100 is shown. The system 100 may include multiple entities, such as an entity 110 and multiple entities 130a-n (one of which is shown in detail in FIG. 1A), one or more of which may be interconnected via a network 103. The entity 110 may be, for example, a service provider providing a service, and each of the entities 130 may be, for example, a customer / user of the service provided by the service provider 110 (e.g., a company such as a bank, an investment fund, a trading company, etc.). For convenience of description only, the entity 110 will be referred to hereinafter as a service provider, and the entity 130 will be referred to hereinafter as a user / customer. However, these terms are intended to be non-limiting, and there may be other exemplary entities. Also, the entity 110 being a service provider providing a service to the entity 130 is also an example, and there may be other relationships between the entities 110 and 130.

[0006] As an example, the service provider 110 may provide one or more electronic marketplaces for trading / buying / matching items (e.g., financial instruments, real estate, bets / stakes, tangible goods, services, etc.), and thus may provide one or more electronic matching / trading engines. Similarly, the customers 130 may seek to trade one or more items on the electronic marketplaces provided by the service provider 130. According to this example, the one or more customers 130 may electronically communicate data / messages with, for example, the service provider 110, including, for example, orders to buy / sell (e.g., bids, offers, hits, take) at particular prices and / or amounts. Similarly, the service provider 110 may electronically receive and execute such orders, and electronically communicate data / messages with, for example, the customers 130, including, for example, prices and amounts of pending and executed orders. Those skilled in the art will appreciate that this is merely an example and that other and / or additional services may be provided by the service provider 110 and that additional and / or other messages / data may be communicated between the service provider 110 and the customers 130. For example, one or more customers 130 may, for example, electronically communicate data / messages with the service provider 110, including, for example, orders to back or lay on teams, events, etc., at particular odds and / or stakes. Similarly, the service provider 110 may electronically receive and execute / match such orders and electronically communicate data / messages with the customers 130, including, for example, particular odds and / or stakes for pending and executed orders.

[0007] The service provider 110 may include one or more network elements 112, one or more computing systems 114 (which may include or be connected to one or more database systems), which provide services to the customers 130, for example. Those skilled in the art will appreciate that the service provider 110 may include additional and / or different computing systems and / or network elements. The computing systems 114 may be referred to herein as servers for purposes of description. However, it should be understood that the use of the term server is non-limiting and that other types of computing systems may be used. The one or more servers 114 may include one or more processors and one or more memories. The one or more servers 114 may include one or more network hardware / software / firmware-based interfaces / ports that allow the servers to be connected to the network elements 112 and thereby to the network 103. Such interfaces may be configured to support one or more different types of physical network connections, such as copper, fiber optic, and / or wireless, may be configured to support one or more different types of protocols, such as Ethernet, and may be configured to operate at several speeds, such as gigabit rates. One skilled in the art will appreciate that the server 114 may have additional and / or other components. The service provider 110 may include one or more software and / or firmware and / or hardware-based applications, which may be stored on one or more database systems and / or servers 114 and may be configured to execute on one or more servers 114. Each server may execute the same or different applications. As an example, the application may be configured to provide one or more electronic matching / trading engines for trading / matching one or more items, as described herein.

[0008] The network elements 112 may include, for example, one or more routers and / or switches, including, for example, core and / or edge routers and / or switches. Each network element 112 may include one or more network hardware / software / firmware-based interfaces / ports that allow the network elements to be connected to each other, to one or more servers 114, and / or to the network 103. Such interfaces may be configured to support one or more different types of physical network connections, such as copper, fiber optic, and / or wireless, to support one or more different types of protocols, such as Ethernet, and to operate at several speeds, such as gigabit rates. Those skilled in the art will appreciate that the network elements 112 may include additional and / or other components. One or more network elements 112 may include one or more physical connections (wired / wireless) to each other, to the servers 114, and / or to the network 103. Network element 112 and one or more servers 114 may be further configured such that one or more of servers 114 have private network addresses, thereby belonging to the private network of service provider 110, and / or have public addresses, thereby belonging to the public network. In this manner, network element 112 may be configured such that servers 114 can communicate with each other and / or with network 103, thereby communicating with one or more other computing systems connected to network 103, such as computing system 138 of customer 130. Those skilled in the art will appreciate that network element 112 may include additional and / or different elements as described herein and may provide additional and / or different types of functionality than described herein.

[0009] An example customer 130 (shown as customer 130a) may include one or more network elements 132, 134, and 136, and one or more computing systems 138 (which may include and / or be connected to one or more database systems). Those skilled in the art will appreciate that customer 130 may include additional and / or different computing systems and / or network elements. Those skilled in the art will appreciate that other customers 130 may include similar and / or different components than those of customer 130a shown in FIG. 1A. Computing systems 138 may be referred to herein as servers for ease of description. However, it should be understood that use of the term server is non-limiting and that other types of computing systems may be used. One or more servers 138 may include one or more processors and one or more memories. One or more of the servers 138 may include one or more network hardware / software / firmware-based interfaces / ports that allow the server to connect to one or more of the network elements 132-136 and thereby to the network 103. Such interfaces may be configured to support one or more different types of physical network connections, such as copper, fiber optic, and / or wireless, may be configured to support one or more different types of protocols, such as Ethernet, and may be configured to operate at several speeds, such as gigabit rates. Those skilled in the art will appreciate that the servers 138 may include additional and / or other components. The customers 130 may include one or more software and / or firmware and / or hardware-based applications that may be stored in one or more database systems and / or servers 138 and configured to execute on one or more of the servers 138. Each server may execute the same or different applications.As one example, an application may be configured to use services provided by the server 114 of the service provider 110, and in particular, to trade one or more items with one or more other clients 130, e.g., through use of an electronic matching / trading engine provided by the server 114 of the service provider 110. According to this example, one or more servers 138 of clients 130, for example, electronically communicate data / messages with the server 114 of the service provider 110 over the network 103, including, for example, orders to buy and / or sell at particular prices and / or amounts (e.g., bids, offers, hits, take). Similarly, the server 114 of the service provider 110 electronically receives and executes such orders, and electronically communicates data / messages with the server 138 of clients 130, including, for example, prices and amounts of pending and executed orders. Those skilled in the art will appreciate that this is merely an example and that other and / or additional services may be provided by the service provider 110 and that additional and / or other messages / data may be communicated between the service provider 110 and the customer 130 as described herein.

[0010] The network elements 132-136 of the customer 130 may include, for example, one or more routers and / or switches, including, for example, core and / or edge routers and / or switches. Each network element may include one or more network hardware / software / firmware-based interfaces / ports that allow the network elements to be connected to each other, to one or more servers 138, and / or to the network 103. Such interfaces may be configured to support one or more different types of physical network connections, such as copper, fiber optic, and / or wireless, to support one or more different types of protocols, such as Ethernet, and to operate at several speeds, such as gigabit rates. Those skilled in the art will appreciate that the network elements 132-136 may include additional and / or other components. One or more of the network elements 132-136 may include one or more physical connections (wired / wireless) to each other, to one or more servers 138, and / or to the network 103. Network elements 132-136 may be further configured such that one or more servers 138 have private network addresses, and thereby reside in the private network of each customer 130, and / or have public addresses, and thereby reside in the public network. In this manner, network elements 132-136 may be configured such that server 114 can communicate with each other and / or with network 103, and thereby with one or more other computing systems, such as server 114, connected to network 103. Those skilled in the art will appreciate that network elements 132-136 may include additional and / or different elements as described herein and may provide additional and / or different types of functionality than described herein.

[0011] Network 103 may include one or more network elements, including, for example, one or more routers and / or switches. Such network elements may include network hardware / software / firmware-based interfaces / ports that may be configured to support one or more different types of physical network connections, such as copper, fiber optic, and / or wireless, may be configured to support one or more different types of protocols, such as Ethernet, and may be configured to operate at several speeds, such as gigabit rates. One or more elements of network 103 may include one or more physical connections (wired / wireless) to each other and to entity 110 and to each of entity 130. Network 103 may be configured as a public and / or private network. Those skilled in the art will appreciate that network 103 may include additional and / or different network elements as described herein and may be configured in additional and / or different ways than described herein.

[0012] 1B, where like reference numbers refer to like components described herein, a system 200 is shown that may be an example of a configuration of the system 100 of FIG. 1A. According to this example, the network element 112 of the service provider 110 may include a switch, such as a core switch, that includes one or more connections to each server 114. As an example, the network element 112 may be an Arista 7124 application switch, although other and / or additional network elements may be used. The network element 112 and one or more servers 114 may be configured as one or more servers 114 having a network address of the network 103, which may be referred to as a "public" address (even though the address is not actually public). According to an example embodiment of the example system 200, the network 103 may be a private network (possibly owned or leased) of the service provider 110. According to this example, the network element 112 and one or more servers 114 may be part of the network 103. That is, each network interface of network element 112 that interfaces with server 114 and with customer 130 may be on the same address realm.

[0013] 1B , network elements 136 of example customer 130 (represented by customer 130a) may include a switch, such as a core switch, network element 134 may be a switch, such as an edge switch, and network element 132 may be a router. Switch 136 may include one or more connections to each server 138 and one or more connections to switch 134. Switch 134 may in turn include one or more connections to router 136. Network elements 132-136 and one or more servers 136 may be further configured such that one or more servers 138 have a private network address (e.g., an address not on network 103) and thereby belong to a private network separate from network 103. Another customer 130n may have a similar configuration.

[0014] 1B, each customer 130 may have one (possibly more) address on network 103, which may preferably be referred to as a "public" address (even though the address is not actually public). Thus, each router 132 may be configured as a network address translator and port address translator (NAT / PAT), which, for example, maps between one or more private addresses of servers 138 of the customer 130's network and a public address assigned to each customer 130 on network 103. Thus, when server 138 is communicating a message / data (which may be embedded in a packet that includes, for example, an address and / or a port) to server 114, router 136 may translate the private address of server 138 in the packet to the public address assigned to customer 130 on network 103. Such translation may also include translating a port number used by an application of server 138 to another port number. Similarly, when server 110 is communicating messages / data (which may be embedded in packets containing addresses and / or ports, for example) to server 138, router 136 may translate the public address assigned to customer 130 in the packet to the private address of server 138. Router 136 may also perform port translation as part of the address translation.

[0015] According to further aspects of this example configuration of FIG. 1B, the network 103 may include point to point connections 113a-n between the switch 112 of the service provider 110 and each of the routers 132 of, for example, the customers 130 (although non-point to point connections are also possible). For example, each of the connections between the switch 112 of the service provider 110 and each of the routers 132 of, for example, the customers 130 may be fiber connections, such as single mode fiber connections operating at 1 Gb (other types of connections and rates may also be used). According to further aspects of this example configuration, one or more of the servers 114 and network elements 112 of the service provider 110 and one or more of the network elements 132-136 and server 138 of each of the customers 130 may be co-located, such as in the same room. For example, one or more of the servers 114 and network elements 112 may be in a rack. Similarly, one or more of the network elements 132-136 and server 138 of each first customer 130 may be in separate racks, etc. One of ordinary skill in the art will appreciate that system 200 may include additional and / or different elements than those described herein and may include additional and / or different configurations than those described herein.

[0016] 1A and 1B is that significant delays can be introduced when data is communicated between server 114 and server 138. As a specific example, router 132 can introduce delays (e.g., greater than 100 us) as a result of, for example, network / port translation functions. Similarly, different routers 132 at different customers 130 can experience other delays.

[0017] An example system 300 similar to the example system 200 of FIG. 1B is shown in FIG. 2, where like reference numbers refer to like components described herein. According to this example, the system 200 includes a network element 202. The network element 202 may be part of the service provider 110 and may be owned and / or operated by the service provider, for example. The network element may be co-located with one or more network elements, including a server 114 of the service provider 110 and / or a network element 112 of the service provider 110, and may be in the same rack as the element. One skilled in the art will appreciate that the network element 202 need not be owned and / or operated by the service provider 110, and need not be co-located with the network element and / or the server of the service provider 110.

[0018] The network element 202 may include one or more network hardware / software / firmware-based interfaces / ports 204a...204n, which may enable the network element to connect, for example, to the server 114, possibly via the network element 112. The network element 202 may include one or more network hardware / software / firmware-based interfaces / ports 206a...206n, which may enable the network element to connect, for example, to the server 138 of each customer 130a-n. The network interfaces 204a-n and 206a-n of the network element 202 may be configured to support one or more different types of physical network connections, such as copper, fiber optic, and / or wireless, may be configured to support one or more different types of protocols, such as Ethernet, and may be configured to operate at several speeds, such as gigabit rates. Also, different network interfaces 204a-n and 206a-n may have different configurations. Those skilled in the art will appreciate that network element 202 may include additional and / or other components.

[0019] 2, one or more network interfaces 204a-n of the network element 202 may be physically connected (wired / wirelessly) to the network element 112, which may be a switch, by, for example, connections 210a-n. According to another and / or additional example, one or more network interfaces 204a-n of the network element 202 may each be physically connected directly to a respective server 114 of the service provider 110 by one or more connections 210a-n. According to a further aspect of the example system 300, each customer 130a-n may be assigned to one or more respective network interfaces 206a-n of the network element 202. Thus, each network interface 206a-n of network element 202 may be physically (wired / wirelessly) connected, for example, by connection 212a-n, to each server 138 of each customer 130a-n, either directly and / or through one or more network elements (e.g., network element 136, which may be, for example, a switch) of each customer. For example, each connection 212a-n may be a fiber connection, such as, for example, a single-mode fiber connection operating at 1 Gb (although other types of connections and rates may be used). Those skilled in the art will readily appreciate that additional and / or alternative configurations of network element 202 and system 300 are possible.

[0020] According to further aspects of the example system 300, the network interfaces 204a-n, connections 210a-n, network element 112, and one or more servers 114 of network element 202 may reside on network 214, which may be a private network of service provider 110 and may have a network address range. Thus, network element 112 and one or more servers 114 may be configured such that one or more servers 114 have a network address on network 214 within a network address range. According to further aspects of this example configuration, network interface 206a, connections 212a, network element 136 of each customer 130a, and, for example, one or more servers 138 of each customer 130a may reside on customer's 130a's network 216a, which may be a private network of customer 130a and may have a network address range. Accordingly, the network elements 136 and one or more servers 138 of the customer 130a may be configured such that the one or more servers 138 have a network address on the network 216a in each network address range. Similarly, the network interface 206n, the connection 212n, the network elements 136 of the customer 130n, and, for example, the one or more servers 138 of the customer 130n may reside on the network 216n of the customer 130n, which may be a private network of the customer 130n and may have a respective network address range. Accordingly, the network elements 136 and one or more servers 138 of the customer 130n may be configured such that the one or more servers 138 of the customer 130n have a network address on the network 216n in each network address range. Another customer 130 shown in FIG. 2 may have a similar configuration.

[0021] According to further aspects of this example system, network element 202 may be, for example, a bidirectional network address translator and possibly a port address translator (NAT / PAT). More specifically, according to this example, each customer 130a-n may have one (possibly more) address on network 214 within the network address range of network 214. Thus, for each customer 130a-n, network element 202 may be configured as a NAT / PAT, which, for example, provides a mapping, within the network address range of network 214, between one or more addresses of servers 138 of each customer's network 216a-n and addresses assigned to each customer 130a-n of network 214 (e.g., within the network address range of each network). Thus, when server 138 is communicating messages / data (which may be embedded in packets containing addresses and / or ports, for example) to server 114, network element 202 may translate the addresses of network 216a-n of server 138 in the packets to addresses assigned to customers 130a-n on network 214. Such translation may also include translating a port number in the packet used by an application of server 138 to a different port number. Similarly, when server 110 is communicating messages / data (which may be embedded in packets containing addresses and / or ports, for example) to server 138, network element 202 may translate the addresses assigned to customers 130a-n on network 214 in the packets to addresses of server 138 on network 216a-n. Network element 202 may also perform port translation as part of the address translation.

[0022] Turning now to FIG. 3, where like reference numbers refer to like components described herein, there is shown an example architecture of a network element 202. The network element 202 may include multiple computing processors, including one or more processors 301a...301n, and one or more processors 302a, 302b....302n. The processors 301a-n may be referred to herein as scheduling processors, and the processors 302a-n may be referred to herein as network processors. The terms "scheduling" and "network" are intended to be non-limiting and are used herein for convenience of explanation only. Each processor 301a-n and 302a-n may or may not be similar, for example, with respect to memory, processing speed, etc. One skilled in the art will appreciate that the network element 202 may include additional and / or fewer processors. According to further aspects of the example network element 202, one or more of the scheduling processors 301 a-n and some of the network processors 302 a-n may be interconnected with one another via a communications architecture, such as, for example, a bus architecture, which may include a shared memory architecture. Those skilled in the art will appreciate that alternative and / or additional communications architectures are possible. The communications architecture may be configured such that some of the scheduling processors 301 a-n are configured to be able to communicate with some of the one or more network processors 302 a-n. Those skilled in the art will readily appreciate that alternative configurations are possible.

[0023] The network element 202 may include one or more network interfaces 214a-n, which may be configured to interface, for example, directly or indirectly with the server 114, and one or more network interfaces 206a-n, which may be configured to interface, for example, with each of the customers 130a-n, as described herein. The network interfaces 204a-n and 206a-n may have similar configurations and / or one or more different configurations. For example, the interfaces 204a-n and 206a-n may be any combination of long-range or short-range, single-mode or multimode fiber interfaces operating at 1 Gb or 10 Gb rates. One or more of the network interfaces 204a-n and 206a-n may be physically located on their own network interface card, and / or some of the network interfaces 204a-n and 206a-n may be physically located on a common network interface card or cards. Those skilled in the art will readily appreciate that other configurations are possible.

[0024] As described herein, each network interface 206a-n may be distributed and interfaced to each customer 130a-n. Those skilled in the art will readily appreciate that the customer may be distributed with multiple network interfaces (e.g., for load balancing purposes, backups, etc.). In accordance with a further aspect of the example network element 202, each network interface 206a-n may be assigned / distributed to one or more respective network processors 302a-n such that all data communicated through each network interface is handled solely by the respective network processor. However, those skilled in the art will readily appreciate that additional and / or alternative configurations are possible, including assigning more than one network interface 206a-n to the respective network processor 302a-n and / or assigning more than one network processor 302a-n to the respective network interface 206a-n. According to further aspects of the example network element 202, the network interfaces 206a-n may be interconnected to their respective network processors 302a-n via a communications architecture, such as a bus architecture, such as a PCI Express (PCIe) bus architecture. Those skilled in the art will readily appreciate that alternative and / or additional communications architectures are possible. The communications architecture may be such that some of the network interfaces 206a-n may be configured to communicate with one or more of the network processors 302a-n (and vice versa). According to further aspects of the network element 202, each network processor 302a-n may be shielded from all interrupts, for example, except for the interrupt from the associated network interface 206a-n. Those skilled in the art will readily appreciate that alternative configurations are possible.

[0025] As further illustrated in FIG. 3, the example network element 202 may include one or more network applications 303a-n. The applications 303a-n may be software-based applications, although other and / or additional configurations are possible, including firmware and / or hardware-based applications. The network element 202 may include one or more memory devices in which the applications 303a-n may be stored and / or executed from. Such memory devices may be electrically coupled to one or more processors 301a-n and 302a-n. According to aspects of the network element 202, each network processor may execute the applications 303a-n. According to further aspects of the network element 202, each application 303a-n may execute solely on each processor. Thus, application 303a may execute solely on processor 302a, application 303b may execute solely on processor 302b, etc. This may be referred to as processor affinity. However, those skilled in the art will readily appreciate additional and / or other configurations, including having multiple applications 303a-n executing on a single processor 302a-n and / or having one or more applications 303a-n executing on multiple processors.

[0026] Thus, according to the exemplary network element 202 configuration, the network applications 303a-n may be assigned / distributed to and executed on each network processor 302a-n, which may be assigned / distributed to each network interface 206a-n, which may be assigned / distributed to each customer 130a-n. According to a further aspect of this exemplary configuration, each network application 302a-n may be configured as NAT and possibly PAT to perform network / port translation for messages / data passing between the network 214 and each network 216a-n of each customer 130a-n. Thus, the network element 202 may be configured (by a network administrator) to assign / distribute the network interfaces 206a-n to the network applications 302a-n, and the network applications 303a-n on each network processor may be further configured to perform NAT / PAT functions based on the customer 130a-n to which the assigned interface is connected. Depending on the physical hardware configuration / layout of the network processors 302a-n and the network interfaces 206a-n, and / or the amount of data generated by and / or sent to each customer 130a-n, a particular assignment / distribution of the network interfaces 206a-n to the network processors 302a-n may be more advantageous than others in terms of total data throughput of the network element 202, and may be assigned accordingly, for example, by an administrator. For example, it may be advantageous to distribute the network interfaces 206a-n closer to the network processors 302a-n. One skilled in the art will readily appreciate that the network applications 302a-n need not be configured as NAT / PAT, and that one network application may be configured to perform different functions than another network application, etc.

[0027] According to further aspects of the exemplary network element 202, each network interface 204a-n may be assigned / distributed to a respective one of the scheduling processors 301a-n such that all data communicated through each network interface is handled solely by the respective scheduling processor. However, one of ordinary skill in the art will readily appreciate that additional and / or alternative configurations are possible. For example, all network interfaces 204a-n may be assigned / distributed to one of the scheduling processors 301a-n and / or each scheduling processor may be configured to communicate with some of the one or more network interfaces 204a-n. According to further aspects of the exemplary network element 202, the network interfaces 204a-n may be interconnected to each scheduling processor 301a-n via a communications architecture, such as a bus architecture, such as a PCI Express (PCIe) bus architecture. One of ordinary skill in the art will readily appreciate that alternative and / or additional communications architectures are possible. The communications architecture may be configured such that some of the network interfaces 204a-n are configured to be able to communicate with some of the one or more scheduling processors 301a-n (or vice versa). According to further aspects of the network element 202, one or more of the scheduling processors 301a-n may be shielded from all interrupts except for those from the network interfaces 204a-n, for example. Those skilled in the art will readily appreciate that other configurations are possible.

[0028] As further shown in FIG. 3, the network element 202 may include one or more scheduling applications and / or one or more management applications, which are collectively shown in FIG. 3 as applications 304a-n. The applications 304a-n may be software-based applications, although other configurations are possible, including firmware and / or hardware-based applications. As described, the network element 202 may include one or more memory devices on which the applications 304a-n may be stored and / or executed from. According to one example of the network element 202, each scheduling processor 301a-n may execute one or more scheduling applications, one or more management applications, or a combination of both. As another example, the scheduling applications and / or management applications may execute on multiple processors. As another example, a scheduling application may run on one scheduling processor 301 a-n and be responsible for a subset of the network processors 302 a-n (as described further herein), while another scheduling application may run on another scheduling processor 301 a-n and be responsible for a different subset of the network processors 302 a-n. As another example, a scheduling application may run on one scheduling processor 301 a-n and be responsible for all the network processors 302 a-n. As a further example, a scheduling application may run on multiple scheduling processors 301 a-n and be responsible for all the network processors 302 a-n. Those skilled in the art will readily appreciate that other variations are possible. For ease of explanation, the network element 202 will be described herein as having one scheduling application and one management application.Those skilled in the art will readily appreciate that the network element 202 may include other types of applications than those described herein.

[0029] According to further aspects of the example network element 202, the scheduling application 304 may be configured to exchange messages / data between the network interfaces 206a-n and the network interfaces 204a-n as follows: a. for messages / data received on network interfaces 206a-n, as soon as each network application 303a-n performs NAT / PAT translation on each packet, for example, the scheduling application 304 may retrieve / obtain the translated packets and forward / communicate the translated packets over / to one of the network interfaces 204a-n; b. For messages / data received on network interfaces 204a-n, the scheduling application 304 may obtain the message / data, identify which of each network application 303a-n is performing the NAT / PAT translation for each packet, and may forward / communicate the packet to that network application, which may be translated (NAT / PAT) and then forwarded / communicated on / to each network interface 206a-n.

[0030] Thus, according to an example operation of a network element 202, the server 138 of the customer 130a-n may send a message / data (which may be embedded in a packet including, for example, an address and / or port) to the server 114 of the service provider 110. The message / data / packet may be received at the network interface 206a-n of the network element 202. The network application 303a-n of the network processor 302a-n assigned to that network interface 206a-n may then obtain / receive and / or forward the message / data / packet (or a portion thereof) from the network interface 206a-n and may perform NAT / PAT translations on each packet. The network application 303a-n may then forward and / or validate the converted message / data / packet to the scheduling application 304, which may then obtain and / or receive the converted message / data / packet and then forward and / or validate the converted message / data / packet to each network interface 204a-n, which may then be communicated to the server 114. Similarly, the server 114 of the service provider 110 may send a message / data (which may be embedded in a packet, for example) to the server 138 of the customer 130a-n. The message / data / packet may be received at the network interface 204a-n of the network element 202.The scheduling application 304 may then get / receive and / or forward the message / data / packet (or a portion thereof) from the network interfaces 204a-n, identify which of the network applications 303a-n / network processors 302a-n is performing the NAT / PAT translation for the message / data / packet, and forward and / or validate the message / data / packet to that network application 303a-n. (As an example, and other implementations are possible, in order for the scheduling application to forward the message / data to the correct network processor 302a-n, the scheduling application may maintain a table, which may be configured by an administrator, that maps network addresses associated with the customers 130 to each network processor 302a-n.) Additionally, the network applications 303a-n may obtain and / or receive messages / data / packets, perform NAT / PAT translations on each packet, and forward and / or make available the translated messages / data / packets to the respective network interfaces 206a-n assigned to the network processors 302a-n on which the network applications 303a-n are executing. The network interfaces 206 may then communicate the messages / data / packets to the servers 138 of the customers 130a-n. Those skilled in the art will readily appreciate that this is only one example and that other and / or additional examples of operations of the network elements 202 are possible. Those skilled in the art will also readily appreciate that the operations performed by the scheduling application 304 as described herein and the operations performed by the network applications 303a-n as described herein may be performed in whole or in part by others.

[0031] With respect to communication between the scheduling application 304 and some of the network applications 303a-n, as an example, the two applications may communicate via one or more (e.g., two) shared memory circular queues. For example, the network application 303 may place a converted message from the network interface 206 in a first memory queue and may update an index / pointer to that queue, e.g., to reflect that other messages are in the queue. Similarly, the scheduling application 304 may monitor an index / pointer to the queue, recognize that there is a new message in the queue, read the message, and may update the index / pointer, e.g., to reflect that the message has been read. Similarly, the scheduling application 304 may place a message from the network interface 204 in a second memory queue and may update an index / pointer to that queue, e.g., to reflect that other messages are in the second queue. Similarly, network application 303 may monitor an index / pointer to the second queue, recognize that there is a new message in the queue, read the message, and may, for example, update the index / pointer to reflect that the message has been read. A similar process may be used for another network application 303 (which may have its own set of queues) to communicate with scheduling application 304. Those skilled in the art will readily appreciate that this is just one example and that other communication techniques / processes may be used.

[0032] As described, for example, the network element 202 may include a management application 304, which may execute on the scheduling processors 301a-n. Such applications may be used by an administrator to monitor the status of the network element 202 and configure the network element. For example, the network element 202 may include one or more input / output devices, such as, for example, a display interface, a mouse, a keyboard, a touch screen, a network interface (for remote access), etc. Through the use of such interfaces and the management application 304, for example, an administrator may monitor the status of the network element 202 and configure the network element. For example, an administrator may allocate / distribute and / or reallocate / reassign the network interfaces 206a-n to the network processors 302a-n. An administrator may further configure the network applications 303a-n of the network processor 302 according to the customers 130a-n (e.g., the network applications are translating between them with respect to addresses and / or ports), and the network applications 303 are performing NAT / PAT translations for said customers 130a-n. One skilled in the art will readily appreciate that the network applications may be configured in other manners. One advantage of the hardware / software configuration of the network element 202 is, for example, that an administrator may reconfigure the customers 130a-n (e.g., with respect to NAT / PAT configuration, which network processors 302a-n are assigned to a customer, and / or which network interfaces 206a-n are assigned to the network processors 302a-n and / or customers) without disrupting other customers. The management application 304 may include, for example, an IPMI subsystem to allow the administrator to monitor the status of the network element 202. Such a subsystem may be separate from the management application 304.Those skilled in the art will readily appreciate that these are only example management functions and that other / additional functions are possible.

[0033] According to further aspects of the network element 202, the network element may include one or more memory devices, such as solid state drives, and one or more logging applications that capture all (or a portion) of the data traveling through the network element and issue a record of the data to the drive. According to further aspects, the logging applications may filter the data and store only a portion of the data, and / or analyze the data (e.g., latency calculations) and store the results of such analysis. According to still further aspects, the logging applications may filter the data (e.g., looking for market data prices, completed trades, etc.) and / or perform analysis on the data, and may forward the filtered data and / or analysis results on another network interface (e.g., different from the network interfaces 204a-n and 206a-n). Other systems and users (such as customers 130) may receive such data and / or analysis results outside of the network element 202, including receiving the data and / or analysis results for pricing. Those skilled in the art will readily appreciate that these are only example logging functions and that different / additional functions are possible.

[0034] According to an example implementation of network element 202, an Intel Sandy Bridge processor including multiple (e.g., eight) cores may be used to provide one or more processors 301a-n and 302a-n. For example, for the Sandy Bridge processor, one or more cores may be distributed as scheduling processors 302a-n and one or more cores may be distributed as network processors 303a-n. Such cores may be configured and operated as described herein for processors 301a-n and 302a-n. Network element 202 may include multiple Sandy Bridge processors. Here, for each Sandy Bridge processor, one or more cores may be arranged as network processors 302a-n and one or more cores may be arranged as scheduling processors 301a-n (which may only operate together with the chip's network processor for purposes of messages moving between network interfaces 204a-n and 206a-n, for example). In such a configuration, some network interfaces 206a-n may be located on some network processors (cores) of the Sandy Bridge. Alternatively, only certain network interfaces 206a-n may be located on one Sandy Bridge processor while another set of network interfaces 206a-n may be located on other Sandy Bridge processors, etc. Similarly, some network interfaces 204a-n may be located on scheduling processors (cores) of some Sandy Bridge processors. Alternatively, only certain network interfaces 204a-n may be located on one Sandy Bridge processor while another set of network interfaces 206a-n may be located on other Sandy Bridge processors, etc. Those skilled in the art will readily appreciate that these are merely examples and that other configurations and other chipsets may be used.

[0035] According to further example implementations of network element 202, network interfaces 204a-n and / or 206a-n may be provided via one or more network interface cards from Hotlava, including, for example, one or more of the Tambola 120G6, Tombora 64G6, Tombora 80G4, Tombora 64G4, and Bosavi 12G6. Those skilled in the art will readily appreciate that these are merely examples and that other network interface cards, including those from other suppliers, may be used.

[0036] According to a further example implementation of network element 202, for example, a Sandy Bridge processor and a network interface from a hot-lubber may be plugged into a single motherboard, for example, and such a system may run a Linux operating system. Again, one of ordinary skill in the art will readily appreciate that these are merely examples and that other configurations are possible.

[0037] Those skilled in the art will readily appreciate that network element 202 may also be configured in the reverse direction (e.g., as described herein in FIG. 2 and FIG. 3). For example, a given server 114 of network 214 may have one (or possibly more) addresses on another network, such as network 216a, although there may be several other networks interfaced to network interface 206. Thus, for that server 114, for example, network element 202 may be configured as a NAT / PAT (as described herein) that maps one or more addresses of server 114 on customer network 214 to an address assigned to the server on network 216a.

[0038] Although this disclosure has been described with respect to specific embodiments and generally related methods, modifications and permutations of the embodiments and methods will be apparent to those skilled in the art. Thus, the exemplary embodiments described above are not bound by this disclosure. Other modifications, substitutions, and replacements are possible without departing from the spirit and scope of this specification.

[0039] The following sections provide a guide to interpreting this application.

[0040] I. Terminology The term "product" means any machine, manufacture and / or composition of matter, unless expressly specified otherwise.

[0041] The term "process", unless expressly specified otherwise, means any process, algorithm, methodology, or the like.

[0042] Each process (whether referred to as a method, algorithm, or otherwise) inherently includes one or more steps, and thus all references to a "step" or "steps" of a process have inherent antecedent in the mere description of the process or in the mere recitation of the term "process" or similar term. Thus, any reference in a claim to a "step" or "steps" of a process has sufficient antecedent.

[0043] The term "invention" and similar terms mean "the invention or inventions disclosed in this application," unless expressly specified otherwise.

[0044] The terms "an embodiment," "embodiment," "embodiments," "the embodiment," "the embodiment," "one or more embodiments," "some embodiments," "certain embodiments," "one embodiment," "another embodiment," and similar terms mean "one or more (but not all) embodiments of the invention," unless expressly specified otherwise.

[0045] The term "variant" of the invention means an embodiment of the invention, unless expressly specified otherwise.

[0046] The term "representation" is used in a very broad sense: it should be understood that a "representation" of an object includes anything that can be used to determine the object.

[0047] A representation of an object may include an electronic message identifying the object (e.g., identifying the widget by a serial number affixed to the widget, identifying the widget by one or more characteristics of the widget). A representation of an object may include information that may be used in computation and / or retrieval of the object (e.g., information identifying the machine of which the widget is a part that may be used to determine the widget). A representation of an object may be capable of specifying an object associated with the object (e.g., characteristics of the object, the name of the object, names of objects associated with the object). A representation of an object may not be capable of specifying an object associated with the object (e.g., the letter "a" may be a representation of a widget for a computer system configured to interpret the letter "a" to identify a widget). A representation of an object may include signs, indications, and / or tokens of the object. A representation may include, for example, codes, references, examples, links, signals, and / or identifiers. A representation of an object may include information that represents, describes, and / or otherwise relates to the object.

[0048] A transformed form of a representation of an object may be a representation of the object (e.g., an encoded representation of an object may be a representation of the object). A representation of an object may include the object itself, a copy of the object, and / or a portion of the object. A representation of an object may be meaningless to an object that is not configured to understand the representation (e.g., a representation of a widget, since a computer system may be able to determine a widget from the letter "a" even if a person does not understand that the letter "a" indicates a widget). It should be understood that even if a representation of an object can be used to determine the object, it does not mean that the object or other objects are determined. A representation of an object may include representations of any number of objects, unless otherwise specified. A representation of an object may include representations of other objects (e.g., an electronic message that indicates many objects). (Representation may be used as a very broad term in the claim language, e.g., receiving a representation of a financial instrument.)

[0049] The term "represent" means (1) to represent, designate, stand for, or serve as indicated by a word, symbol, or the like; (2) to represent or designate by some term, letter, symbol, or the like; (3) to depict or depict or present as shown by a picture; or (4) to function as a sign or symbol.

[0050] A reference to "another embodiment" in a description of an embodiment does not imply that the embodiment being referenced is mutually exclusive with another embodiment (e.g., an embodiment described before the embodiment being referenced), unless expressly specified otherwise. Similarly, the mere fact that two (or more) embodiments are referenced does not imply that those embodiments are mutually exclusive.

[0051] An embodiment of the present invention may include, encompass, or adopt two or more other embodiments of the present invention. For example, a first embodiment comprising elements a, b, and c may encompass a second embodiment comprising elements a, b, c, and d, and a third embodiment comprising elements a, b, c, and e. Similarly, each of the first, second, and third embodiments may encompass a fourth embodiment comprising elements a, b, c, d, and e.

[0052] The terms "including," "comprising," and variations thereof, unless expressly specified otherwise, mean "including, but not necessarily limited to." Thus, for example, the sentence "The machine includes a red widget and a blue widget" may mean that the machine includes a red widget and a blue widget, but may also include one or more other items.

[0053] The term "consisting of" and variations thereof mean "including, and limited to," unless expressly specified otherwise. Thus, for example, the sentence "A machine consists of a red widget and a blue widget" means that the machine includes a red widget and a blue widget, but does not include other things.

[0054] The term "compose" and variations thereof, unless expressly specified otherwise, means "to constitute a component of, to constitute a component of, or to constitute a member of." Thus, for example, the sentence "The red widget and the blue widget constitute a machine" means that the machine includes the red widget and the blue widget.

[0055] The term "exclusively comprise" and variations thereof, unless expressly specified otherwise, means "exclusively comprise a component of, being the only component of, or being the only member of." Thus, for example, the sentence "The red widget and the blue widget exclusively comprise the machine" means that the machine consists of the red widget and the blue widget (i.e., no other things).

[0056] The singular terms "a," "an," and "the" refer to "one or more," unless expressly specified otherwise. Thus, for example, the phrase "widget" means one or more widgets, unless expressly specified otherwise. Similarly, after describing the phrase "widget," the subsequent phrase "the widget" means "one or more widgets." Thus, it should also be understood that the definite article "the" may refer to a particular term that has an antecedent. For example, if a paragraph describes "a particular single feature" and then refers to "feature," it should be understood that the phrase "feature" is referring to the previously described "particular single feature." (It should be understood that the term "a" in "particular single feature" refers to "one" particular single feature, and not to "one or more" particular single features.)

[0057] The term "plurality" means "two or more" unless expressly specified otherwise.

[0058] The term "herein" means "in this application, including anything that may be incorporated by reference," unless expressly specified otherwise.

[0059] The phrase "at least one of," when such phrase modifies a plurality of items (such as an enumerated list of items), means any combination of one or more of those items, unless expressly specified otherwise. For example, the phrase "at least one of a widget, a car, and a wheel" means any of (i) a widget, (ii) a car, (iii) a wheel, (iv) a widget and a car, (v) a widget and a wheel, (vi) a car and a wheel, or (vii) a widget, a car, and a wheel. The phrase "at least one of," when such phrase modifies a plurality of items, does not mean "each one of" the plurality of items. For example, the phrase "at least one of a widget, a car, and a wheel" does not mean "one widget, one car, and one wheel."

[0060] Numeric terms such as "one," "two," and the like, when used as a cardinality to indicate a quantity of something (e.g., one widget, two widgets), refer to the quantity denoted by the numerical term, but not to at least the quantity denoted by the numerical term. For example, the phrase "one widget" does not mean "at least one widget," and thus the phrase "one widget" does not encompass, for example, two widgets.

[0061] The phrase "based on" does not mean "based only on," unless expressly specified otherwise. In other words, the phrase "based on" encompasses both "based only on" and "based at least on." The phrase "based at least on" is equivalent to the phrase "based at least in part on." For example, the phrase "element A is calculated based on element B and element C" encompasses embodiments in which element A is calculated as the product of B and C (in other words, A=B×C), embodiments in which element A is calculated as the sum of B and C (in other words, A=B+C), embodiments in which element A is calculated as the product of B, C, and D, embodiments in which element A is calculated as the square root of B and the sum of C and D×E, and the like.

[0062] The term "represents" and similar terms are not exclusive unless expressly specified otherwise. For example, the term "represents" does not mean "represents only" unless expressly specified otherwise. For example, the phrase "data represents a credit card number" encompasses both "data represents only a credit card number" and "data represents a credit card number and data represents other things as well."

[0063] The term "whereby" is used herein only to precede a clause or other set of words that express only the intended result, purpose, or consequence of what is expressly described preceding the term "whereby." Thus, when the term "whereby" is used in a claim, the clause or other word that it modifies will not place any further specific limitations on the claim or otherwise limit the meaning or scope of the claim.

[0064] The terms "eg," "such as," and similar terms mean "for example," and thus do not limit the term or phrase that it describes. For example, in the sentence "A computer transmits data (e.g., instructions, data structures) over the Internet," the term "for example" explains that "instructions" are an example of "data" that a computer can transmit over the Internet, and further explains that "data structures" are an example of "data" that a computer can transmit over the Internet. However, both "instructions" and "data structures" are merely examples of "data," and other things can be "data" in addition to "instructions" and "data structures."

[0065] The term "respective" and similar terms mean "taken individually." Thus, if two or more things have "respective" properties, then each such thing has its own property, and these properties can, but need not, differ from one another. For example, the phrase "each of two machines has a respective function" means that a first of the two machines has a function and a second of the two machines also has a function. The function of the first machine may or may not be the same as the function of the second machine.

[0066] The term "ie" and similar terms mean "i.e.," and thus limit the term or phrase it describes. For example, in the sentence "A computer sends data (i.e., instructions) over the Internet," the term "ie" describes that the "instructions" are the "data" that a computer sends over the Internet.

[0067] Numeric ranges include integers and non-integer numbers within the range unless expressly stated otherwise. For example, the range "1 to 10" includes integers from 1 to 10 (e.g., 1, 2, 3, 4, ... 9, 10) and non-integer numbers (e.g., 1.0031415926, 1.1, 1.2, ... 1.9).

[0068] If two or more terms or phrases are synonymous (e.g., because of an express statement that the terms or phrases are synonymous), the instance of one such term or phrase does not mean that another instance of such term or phrase must have a different meaning. For example, if a statement expresses that the meaning of "including" is the same as "including, but not limited to," the mere use of the phrase "including, but not limited to" does not imply that the term "including" means anything other than "including, but not limited to."

[0069] II. Making decisions (judging, identifying) The term "determining" and its grammatical variants (e.g., determining a price, judging a value, identifying an object that meets certain criteria) are used in a very broad sense. The term "determining" encompasses a wide variety of actions, and thus "determining" can include calculating, calculating, processing, deriving, investigating, examining (e.g., examining a table, database or other data structure), rendering into an electronic or digital representation, locating, and the like. Additionally, "determining" can include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory), and the like. Additionally, "determining" can include resolving, selecting, choosing, establishing, and the like.

[0070] The term "determining" does not imply certainty or absolute precision, and thus "determining" can include approximating, estimating, predicting, inferring, averaging, and the like.

[0071] The term "determining" does not imply that mathematical operations must be performed, nor does it imply that a numerical method must be used, nor does it imply that an algorithm is used.

[0072] The term "determining" does not imply that any particular device must be used, e.g., determining does not necessarily have to be performed by a computer.

[0073] The term "determining" may include "calculating." It should be understood that the term "calculating" includes performing one or more calculations. Calculating may include calculating, processing, and / or deriving. Calculating may be performed by a computing device. For example, calculating an entity may include applying an algorithm to data by a computer processor to generate an entity as an output of the processor.

[0074] The term "determining" may include "referencing." The term "referencing" should be understood to include, for example, one or more references to an object. Referencing may include querying, accessing, selecting, choosing, reading, and / or examining. The act of referencing may be performed by a computing device. For example, referencing an object may include reading, by a processor, a memory location where the object is stored.

[0075] The term "determining" may include "receiving." For example, receiving an object may include taking in the object. In some embodiments, receiving may include an act of performing an act of taking in the object, such as, for example, operating a network interface through which to take in the object. In some embodiments, receiving may be performed without an act of performing an act of taking in the object, such as, for example, in a direct memory write or hardwired circuit. Receiving an object may include receiving the object from a remote source from which the object could be computed.

[0076] III. Sentence Form Where a limitation of a first claim encompasses both one of the features and a plurality of the features (e.g., a limitation such as "at least one widget" encompasses both one widget and a plurality of widgets), and where a second claim that depends from a first claim uses the definite article "the" to refer to that limitation (e.g., "the widget"), this mere use does not imply that the first claim encompasses only one of the features, nor does it imply that the second claim encompasses only one of the features (e.g., "the widget" may encompass both one widget and a plurality of widgets).

[0077] When an ordinal number (such as "first," "second," "third," etc.) is used as an adjective before a term, the ordinal number is used (unless expressly specified otherwise) merely to indicate a particular feature, e.g., to distinguish that particular feature from another feature described by the same or a similar term, but the ordinal number does not have any other meaning or limiting effect and is merely a name of convenience. For example, a "first widget" may be so called, e.g., merely to distinguish it from a "second widget." Thus, the mere use of the ordinal numbers "first" and "second" before the term "widget" does not indicate any other relationship between the two widgets, nor does it indicate any other characteristics of either or both widgets. For example, the mere use of the ordinal numbers "first" and "second" before the term "widget" does not (1) indicate that either widget comes before or after the other in order or position, (2) indicate that either widget occurs or operates before or after the other in time, or (3) indicate that either widget is ranked higher or lower than the other in importance, quality, or the like. The mere use of the ordinal numbers does not specify a numerical limitation to the feature identified with the ordinal number. For example, the mere use of the ordinal numbers "first" and "second" before the term "widget" does not indicate that there are exactly two widgets.

[0078] In another embodiment, where a single device, article or other product is described herein, multiple devices or articles (whether or not working together) may alternatively be used in place of the single device or article described. Thus, in another embodiment, functionality described as being possessed by a device may alternatively be possessed by multiple devices or articles (whether or not working together).

[0079] Similarly, in another embodiment, where multiple devices, articles or other products are described herein (whether they work together or not), a single device or article may alternatively be used in place of the multiple devices or articles described. For example, multiple computer-based devices may be replaced with a single computer-based device. In some embodiments, such multiple computer-based devices may operate together to perform a step of a process as is common in grid computing systems. In some embodiments, such multiple computer-based devices may operate to provide additional functionality to each other, such that the multiple computer-based devices may operate to perform a step of a process as is common in cloud computing systems. (Conversely, a single computer-based device may be replaced with multiple computer-based devices operating in cooperation with each other. For example, a single computing device may be replaced with a server and a workstation in communication with each other over the Internet.) Thus, various functions described as being possessed by multiple devices or articles may alternatively be possessed by a single device or article.

[0080] The functionality and / or features of a single device described may alternatively be embodied in other embodiments by one or more other devices that are described but not explicitly described as having such functionality or features. Thus, other embodiments need not include the described device itself, but rather may include one or more other devices that would have such functionality or features in those other embodiments.

[0081] IV. Disclosed Examples and Terminology Are Not Limiting Neither the Title (which appears at the beginning of the first page of this application) nor the Abstract (which appears at the end of this application) should be construed in any way as limiting the scope of the disclosed invention, nor should they be used in interpreting the meaning of any claim, nor should they be used in limiting the scope of any claim. An Abstract has been included in this application solely because an Abstract is required under 37 CFR §1.72(b).

[0082] The section headings provided in this application are for convenience only and are not to be construed as limiting the disclosure in any way.

[0083] Many embodiments have been described in this application and are presented for illustrative purposes only. The described embodiments are not and are not intended to be limiting in any way. The disclosed invention is broadly applicable to many embodiments, as is readily apparent from this disclosure. Those skilled in the art will recognize that the disclosed invention can be practiced with a variety of modifications and alterations, such as structural, logical, software, and electrical modifications. Although certain features of the disclosed invention may be described in relation to one or more specific embodiments and / or drawings, it should be understood that such features are not limited to use in the one or more specific embodiments or drawings in relation to which they are described, unless expressly specified otherwise.

[0084] Although an embodiment may be disclosed as including some features, other embodiments of the invention may include less than all such features. Thus, for example, claims may be recited to less than the entire set of features in a disclosed embodiment, and such claims shall not be construed as requiring more features than those features expressly recited in the claim.

[0085] No embodiment of a method step or product element described in this application constitutes, is essential to, or coexists with the invention claimed in this application, unless expressly stated as such herein or (with respect to the invention as defined by the claims and claims) expressly recited in the claims.

[0086] Any claim preamble that recites anything other than a statutory classification shall be construed to recite only the purposes, benefits and potential uses of the claimed invention, and such preamble shall not limit the claimed invention.

[0087] This disclosure is not a word-by-word description of all embodiments of the invention, nor is this disclosure a listing of features of the invention which must be present in all embodiments.

[0088] Not all disclosed embodiments are necessarily covered by the claims (including even all pending, amended, patented and cancelled claims). Moreover, a disclosed embodiment may (but need not) be covered by any number of claims. Thus, if a claim (whether pending, amended, patented and cancelled) is recited for a particular embodiment, it is not evidence that the scope of the other claims does not cover that embodiment.

[0089] Devices described as being in communication with one another need not be in communication with one another continuously, unless expressly specified otherwise. Instead, such devices need only transmit to one another when necessary or desirable, and may in fact refrain from exchanging data most of the time. For example, a machine in communication with another machine over the Internet may not transmit data to the other machine for extended periods of time (e.g., weeks at a time). Furthermore, devices in communication with one another may communicate directly or indirectly via one or more intermediaries. Devices are in communication with one another if they are capable of at least one-way communication with one another. For example, a first device is in communication with a second device if it is capable of transmitting information to the second device. Similarly, a second device is in communication with a first device if it is capable of receiving information from the first device.

[0090] A description of an embodiment with several components or features does not imply that all of such components or features are required, or even that any of such components or features are required. On the contrary, a variety of optional components are described to illustrate the wide variety of possible embodiments of the invention. Unless expressly specified otherwise, no component or feature is essential or required.

[0091] Although steps of a process, algorithm, or the like may be described or claimed in a particular order, such processes may be configured to operate in different orders. In other words, any order or sequence of steps that may be explicitly described or claimed does not necessarily indicate a requirement that the steps must be performed in that order. Steps of processes described herein may be performed in any order possible. Furthermore, some steps may be performed simultaneously even though they are described or implied as non-concurrent (e.g., because one step is described after another step). Furthermore, the description of a process by depiction in a drawing does not imply that the described process excludes other variations and modifications of the process, does not imply that the described process or any of its steps are required for the invention, and does not imply that the described process is preferred.

[0092] Although a process may be described as including multiple steps, that does not imply that all or any of the steps are preferred, essential or required. Various other embodiments within the scope of the described invention(s) include other processes that omit some or all of the described steps. No step is essential or required unless expressly specified otherwise.

[0093] Although a process may be described in isolation or without reference to other products or methods, in embodiments the process may interact with other products or methods. For example, such interactions may include linking one business model to another. Such interactions may be provided to increase the flexibility or desirability of the process.

[0094] Although a product may be described as including a number of components, aspects, qualities, properties and / or characteristics, no indication is made that any or all of those plurality are preferred, essential or required. Various other embodiments within the scope of the described invention(s) include other products that omit some or all of the described plurality.

[0095] An enumerated list of items (whether numbered or unnumbered) does not imply that any or all of the items are mutually exclusive, unless expressly specified otherwise. Similarly, an enumerated list of items (whether numbered or unnumbered) does not imply that any or all of the items are exhaustive of any category, unless expressly specified otherwise. For example, the enumerated list "computer, laptop, PDA" does not imply that any or all of the three items in the list are mutually exclusive, nor does it imply that any or all of the three items in the list are exhaustive of any category.

[0096] An enumerated list of items (which may be numbered or unnumbered) does not imply that any or all of the items are equivalent to each other or readily substituted for each other.

[0097] All embodiments are illustrative and do not imply that the invention or any embodiment has been made or performed, as the case may be.

[0098] V. Computing Those skilled in the art will appreciate that the various processes described herein can be implemented, for example, by appropriately programmed general-purpose computers, special-purpose computers, and computing devices. Typically, a processor (e.g., one or more microprocessors, one or more microcontrollers, one or more digital signal processors) receives instructions (e.g., from a memory or similar device) and executes those instructions, thereby performing one or more processes defined by those instructions. The instructions can be embodied, for example, in one or more computer programs, i.e., one or more scripts.

[0099] The term "compute" is intended to mean to determine using a processor according to a software algorithm.

[0100] "Processor" means one or more microprocessors, central processing units (CPUs), computing devices, microcontrollers, digital signal processors, graphic processing units (GPUs) or similar devices, or any combination thereof, regardless of architecture (e.g., chip-level multiprocessing or multicore, RISC, CISC, microprocessors with non-interlocked pipeline stages, pipeline processing configurations, simultaneous multithreading, microprocessors with integrated graphic processing units, GPGPUs).

[0101] "Computing device" means one or more microprocessors, central processing units (CPUs), computing devices, microcontrollers, digital signal processors, graphics cards, handheld games consoles or similar devices, or any combination thereof, regardless of architecture (e.g., chip-level multiprocessing or multicore, RISC, CISC, microprocessors with non-interlocked pipeline stages, pipeline processing configurations, simultaneous multithreading).

[0102] Thus, a description of a process is also a description of an apparatus for performing the process. An apparatus for performing a process may include, for example, a processor and input and output devices suitable for performing the process. For example, a description of a process is a description of an apparatus that includes a processor and a memory that stores a program including instructions that, when executed by the processor, direct the processor to perform the method.

[0103] An apparatus that executes a process may include multiple computing devices that cooperate to execute the process. Some computing devices may cooperate to execute each step of the process, or may work on separate steps of the process, or may provide basic services that facilitate execution of the process by other computing devices. Such computing devices may operate under centralized command. In another embodiment, such computing devices may operate without centralized command. Some examples of apparatuses that can operate in some or all of these ways may include grid computing systems, cloud computing systems, peer-to-peer computing systems, computing systems configured to provide software as a service, and the like. For example, an apparatus may include a computing system that executes most of its processing load on a remote server, but outputs display information to and receives user input information from a local user computer, e.g., a computing system running VMware software.

[0104] Additionally, programs implementing such methods (and other types of data) may be stored and transmitted in a variety of ways, using a variety of media (e.g., computer-readable media). In some embodiments, hardwired circuitry or custom hardware may be used in place of, or in combination with, some or all of the software instructions that can implement the processes of the various embodiments. Thus, various combinations of hardware and software may be used in place of software alone.

[0105] The term "computer-readable medium" refers to any medium, any combination of media, or various media that participate in providing data (e.g., instructions, data structures) that can be read by a computer, a processor, or a similar device. Such media can take many forms, including, but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media include, for example, optical or magnetic disks and other persistent memory. Volatile media include dynamic random access memory (DRAM), which typically constitutes the main memory. Transmission media include coaxial cables, conductors, and optical fibers, including the wires that comprise a system bus coupled to the processor. Transmission media can include or convey acoustic waves, light waves, and electromagnetic radiation, such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer readable media include, for example, a floppy disk, a flexible disk, a hard disk, a magnetic tape, any other magnetic medium, a CD-ROM, a DVD, any other optical medium, punch cards, paper tape, any other physical medium with a pattern of holes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip or cartridge, a carrier wave as described below, or any other medium from which a computer can read.

[0106] The term "tangible computer readable medium" refers to a "computer readable medium" that includes hardware components such as optical or magnetic disks.

[0107] Various forms of computer-readable media may be involved in transmitting data (e.g., sequences of instructions) to a processor. For example, the data may (i) be communicated from a RAM to the processor, (ii) be transmitted over a wireless transmission medium, (iii) be formatted and / or transmitted in accordance with a number of formats, standards, or protocols, such as Ethernet (or IEEE 802.3), wireless local area network communications defined by the IEEE 802.11 standard with or without WiFi Alliance approval, SAP, ATP, Bluetooth, and TCP / IP, TDMA, CDMA, and 3G, and / or (iv) be encrypted to ensure privacy or prevent fraud by any of a variety of methods known in the art.

[0108] The term "database" refers to any electronically stored collection of data stored in a retrievable form.

[0109] The term "data structure" refers to a database of a hardware machine such as a computer.

[0110] The term "network" means a set of points or nodes interconnected by communication paths. For example, a network may include multiple computers or communication devices interconnected by one or more wired and / or wireless communication paths. A network may be interconnected with other networks and may include sub-networks.

[0111] The term "predefined" means determined in advance, e.g., prior to the present time or action. For example, the phrase "displaying a predefined value" means displaying a value that was determined prior to the act of displaying.

[0112] The term "condition" means (1) a premise on which the performance of an agreement depends, or (2) something essential to the existence or occurrence of something else.

[0113] The term "transaction" means (1) the exchange or receipt of goods, services, or funds; or (2) any communication or activity involving two or both things interacting or affecting each other.

[0114] Thus, a description of a process is also a description of a computer-readable medium that stores a program for performing the process. The computer-readable medium can store (in any suitable format) suitable program elements for performing the method. For example, a description of a process is a description of a computer-readable storage medium that stores a program including instructions that, when executed by a processor, direct the processor to perform the method.

[0115] Just as the description of various steps in a process does not indicate that all described steps are required, apparatus embodiments include computers or computing devices operable to perform some, but not necessarily all, of the described processes.

[0116] Similarly, just as the description of various steps in a process does not indicate that all described steps are required, embodiments of a computer-readable medium storing a program or data structures include computer-readable media storing a program that, when executed, can cause a processor to perform some, but not necessarily all, of the described processes.

[0117] Where a database is described, those skilled in the art will understand that (i) database structures alternative to those described can be readily used, and (ii) other memory structures other than a database can be readily used. Any illustration or description of any sample database presented herein is an example configuration for stored information representation. Any number of other configurations other than those suggested by, for example, tables, illustrated in the drawings or otherwise, can be used. Similarly, any illustrated entries of a database represent example information only. Those skilled in the art will understand that the number and content of entries can differ from those described herein. Furthermore, regardless of the depiction of a database as a table, other formats (including relational databases, object-based models, and / or distributed databases) can be used to store and manipulate the data types described herein. Similarly, object methods or behaviors of a database can be used to implement various processes as described herein. Furthermore, databases can be stored in a known manner, locally or remotely from devices that access data in such databases.

[0118] Various embodiments may be configured to operate in a network environment including a computer in communication (e.g., via a communications network) with one or more devices. The computer may communicate with the devices directly or indirectly via any wired or wireless medium (e.g., the Internet, a LAN, a WAN, or Ethernet, token ring, telephone lines, cable lines, radio channels, optical lines, commercial online service providers, bulletin board systems, satellite communications links, any combination of the above). Each of the devices may itself comprise a computer or other computing device, such as one based on an Intel®, Pentium®, or Centrino™, Atom™, or Core™ processor, adapted to communicate with the computer. Any number and type of devices may be in communication with the computer.

[0119] In one embodiment, a server computer or centralization may not be required or desirable. For example, the present invention may, in one embodiment, be practiced on one or more devices without centralization. In such an embodiment, any function described herein as being performed by a server computer, or data described as being stored on a server computer, may instead be performed by or stored on one or more such devices.

[0120] Where a process is described, in one embodiment the process may operate without any user intervention, while in another embodiment the process includes some human intervention (e.g., steps are performed by or with the assistance of a human).

[0121] The term "encryption," as used herein, refers to a process for obscuring or concealing information so that it cannot be easily understood without special knowledge. The encryption process may convert raw information, called plaintext, into encrypted information. The encrypted information may be called ciphertext, and the algorithm for converting plaintext to ciphertext may be called a cipher. Ciphers may also be used to perform the inverse operation of converting ciphertext back to plaintext. Examples of ciphers include substitution ciphers, transposition ciphers, and ciphers implemented using rotor machines.

[0122] In various encryption methods, the cipher may require additional information called a key. The key may consist of, for example, a string of bits. The key may be used in conjunction with the cipher to encrypt plaintext. The key may also be used in conjunction with the cipher to decrypt ciphertext. In a category of ciphers called symmetric key algorithms (e.g., secret key cryptography), the same key is used for both encryption and decryption. Thus, the sanctity of the encrypted information may depend on the key being kept secret. Examples of symmetric key algorithms are DES and AES. In a category of ciphers called asymmetric key algorithms (e.g., public key cryptography), different keys are used for encryption and decryption. With an asymmetric key algorithm, any public citizen can encrypt plaintext into ciphertext using a first key (e.g., a public key). However, only the owner of the second key (e.g., a private key) can decrypt the ciphertext into plaintext. An example of an asymmetric key algorithm is the RSA algorithm.

[0123] VI. Continuing Applications This disclosure provides one of ordinary skill in the art with an enabling description of several embodiments and / or inventions, some of which may not be claimed in this application, but may nevertheless be claimed in one or more continuing applications claiming benefit of priority to this application.

[0124] Applicant intends to file additional applications to pursue patents on subject matter disclosed and enabled, but not claimed, in this application.

[0125] VII. 35 U.S.C. § 112, paragraph 6 In a claim, any claim limitation containing the phrase "means for" or the phrase "step for" means that the sixth paragraph of 35 U.S.C. 112 applies to that limitation.

[0126] In a claim, a claim limitation that does not contain the phrase "means for" or the phrase "step for" means that the sixth paragraph of 35 U.S.C. 112 does not apply to that limitation, regardless of whether the limitation recites a function without a recitation of structure, materials, or acts for performing that function. For example, the mere use in a claim of the phrase "step of" or the phrase "steps of" to refer to one or more steps of that claim or of another claim does not mean that the sixth paragraph of 35 U.S.C. 112 applies to those steps.

[0127] Pursuant to the sixth paragraph of 35 U.S.C. 112, corresponding structure, material, or acts described in the specification with respect to means or steps for performing a specified function, and equivalents thereof, may perform additional functions in addition to the specified functions.

[0128] Computers, processors, computing devices, and similar products are structures capable of performing a wide variety of functions. Such products may be operable to perform a specified function by executing one or more programs, such as programs stored in a memory device of the product or in a memory device accessed by the product. Unless expressly specified otherwise, such programs need not be based on any particular algorithm, such as any particular algorithm that may be disclosed in this application. It is well known to those skilled in the art that a specified function may be implemented by a variety of algorithms, and any of a number of different algorithms is merely a design choice for performing a specified function.

[0129] Thus, pursuant to the sixth paragraph of 35 U.S.C. 112, with respect to means or steps for performing a specified function, structure corresponding to a specified function includes any product programmed to perform the specified function. Such structure includes any product programmed to perform that function, regardless of whether such product is programmed with (i) the disclosed algorithm for performing that function, (ii) an algorithm similar to the disclosed algorithm, or (iii) a different algorithm for performing that function.

[0130] Where a method describes a means for performing a function, one structure for performing the method includes a computing device (e.g., a general-purpose computer) programmed to perform the function and / or configured with appropriate hardware to perform the function.

[0131] It also includes computing devices (e.g., general purpose computers) programmed to perform functions via other algorithms and / or configured with appropriate hardware to perform functions via other algorithms, as would be understood by one of ordinary skill in the art.

[0132] VIII. Waiver Multiple references to a particular embodiment do not indicate a disclaimer or repudiation of additional different embodiments, and similarly, references to descriptions of multiple embodiments all including a particular feature do not indicate a disclaimer or repudiation of embodiments that do not include that particular feature. Any explicit disclaimer or repudiation in this application shall be preceded by the phrase "does not include" or the phrase "cannot perform."

[0133] IX. INCORPORATION BY REFERENCE Any patents, patent applications or other documents referred to herein are incorporated by reference into this patent application as part of this disclosure, but only for the purpose of description and enablement in accordance with the first paragraph of 35 U.S.C. 112, and should in no way be used to limit, define or otherwise interpret any term in this application, except to the extent that the ordinary skilled artisan would not be able to elucidate the meaning normally used without such incorporation by reference. Thus, such skilled artisan need not be limited in any way by any embodiment provided in the reference. Conversely, the definitions provided in this application should not be used to limit, define or otherwise interpret any term in any document incorporated by reference herein. The definitions expressly set forth in this application nevertheless control over the description of a particular embodiment that may be inconsistent with the definition.

[0134] Unless expressly stated otherwise in this patent application, incorporation by reference does not, by itself, imply any endorsement, approval or acquiescence of any statements, opinions, arguments or characterizations contained in any incorporated patent, patent application or other document.

[0135] X. Application Process In interpreting this application (including the claims), a person of ordinary skill in the art will refer to the prosecution history of this application, but not to the prosecution history of any other patents or patent applications, regardless of whether those other patent applications are considered related to this application and whether or not there are other patent applications that share a common priority claim with this application.

[0136] (Additional Note) The apparatus of claim 1 includes a plurality of network interfaces including at least a first network interface and a second network interface, the first network interface being connected to a first network and the second network interface being connected to a second network, the plurality of network interfaces including at least a first processor and a second processor, the first processor obtaining data received from the first network via the first network interface, performing network address translation on the data such that the data has an address on the second network, obtaining data received from the second network via the second network interface, and processing the data. and the second processor is configurable to: obtain from the first processor the data that the first processor converted from the first network to the second network, communicate the data to the second network via the second network interface, obtain data received from the second network via the second network interface, and communicate the data to the first processor for the first processor to perform network address translation so that the data has an address on the first network. The apparatus of Supplementary Note 2 may be the apparatus of Supplementary Note 1, further comprising at least a third network interface connected to the third network, and at least a third processor, wherein the third processor may be configured to: obtain data received from the third network via the third network interface, perform network address translation on the data so that the data has an address on the second network, obtain data received from the second network via the second network interface, perform network address translation on the data so that the data has an address on the third network, and communicate the data to the third network via the third network interface, and the second processor may be further configured to: obtain from the third processor the data that the third processor converted from the third network to the second network, communicate the data to the second network via the second network interface, obtain data received from the second network via the second network interface, and communicate the data to the third processor for the third processor to perform network address translation so that the data has an address on the third network. The apparatus of Addendum 3 may be configured as in Addendum 2, such that all data received by the first network interface from the first network is communicated from the first network interface to only the first processor, and all data received by the third network interface from the third network is communicated from the third network interface to only the third processor. The apparatus of Addendum 4 may be configured as in Addendum 3, such that all data received by the first network interface from the first network is communicated from the first network interface to only the third processor, and all data received by the third network interface from the third network is communicated from the third network interface to only the first processor. The apparatus of claim 5 is the apparatus of claim 1, wherein the first processor is further configured to perform port conversion on the data.

[0137] (Second Note) [Second Note 1] A plurality of network interfaces including at least a first network interface and a second network interface, The first network interface is configured for each first network; The second network interface is configured for each second network. the plurality of network interfaces; a plurality of processors including a network processor for at least transforming data; and a scheduling processor for at least communicating the data transformed by the network processor; The network processor includes: obtaining data received from the first network via the first network interface, performing network address translation on the data such that the data has an address on the second network, and communicating the data translated by the network processor from the first network to the second network to the scheduling processor; and the scheduling processor is configured to obtain from the scheduling processor data received from the second network via the second network interface, perform network address translation on the data such that the data has an address on the first network, and communicate the data to the first network via the first network interface; the network processor obtains data received from the first network via a first network interface without using the scheduling processor, and communicates data to the first network via the first network interface without using the scheduling processor; The scheduling processor includes: obtaining from the network processor the data that the network processor converted from the first network to the second network and communicating the data to the second network via the second network interface; obtaining data received from the second network via the second network interface and communicating the data to the network processor for the network processor to perform network address translation such that the data has an address on the first network; obtaining data received from the second network via the second network interface without using the network processor; and communicating data to the second network via the second network interface without using the network processor; and configured to enable the scheduling processor to process interrupts from a network interface configured to communicate with the scheduling processor, but to disable the scheduling processor from processing interrupts from a network interface configured to communicate with the scheduling processor; the plurality of processors; An apparatus comprising: [Second Note 2] further comprising at least a third network interface configured in a third network and at least a third processor; The third processor, obtaining data received from the third network via the third network interface, performing network address translation on the data such that the data has an address on the second network, and communicating the data translated by the third processor from the third network to the second network to the scheduling processor; and the scheduling processor is configured to obtain from the scheduling processor data received from the second network via the second network interface, perform network address translation on the data such that the data has an address on the third network, and communicate the data to the third network via the third network interface; the third processor obtains data received from the third network via the third network interface without using the scheduling processor, and communicates data to the third network via the third network interface without using the scheduling processor; The scheduling processor includes: obtaining from the third processor the data that the third processor converted from the third network to the second network and communicating the data to the second network via the second network interface; and further configured to obtain data received from the second network via the second network interface and communicate the data to the third processor for the third processor to perform network address translation such that the data has an address on the third network; the scheduling processor obtains data received from the second network via the second network interface without using the third processor, and communicates data to the second network via the second network interface without using the third processor. 2. The apparatus according to claim 1. [Second Note 3] The device comprises: all data received by the first network interface from the first network is communicated only from the first network interface to the network processor; and configured such that all data received by the third network interface from the third network is communicated only from the third network interface to the third processor. 2. The apparatus according to claim 1, [Second Note 4] The device comprises: all data received by the first network interface from the first network is communicated only from the first network interface to the third processor; and reconfiguring all data received by the third network interface from the third network to be communicated only from the third network interface to the network processor; 2. The apparatus according to claim 3. [Second Note 5] the network processor is further configured to perform port translation on the data. 2. The apparatus according to claim 1. [Second Note 6] a shared memory circular queue associated with said network processor and said scheduling processor, said shared memory circular queue having an index associated therewith; communicating to the scheduling processor data converted by the network processor from the first network to the second network includes placing, by the network processor, the data in a circular queue in the shared memory; obtaining, by the scheduling processor, data that the network processor has translated from the first network to the second network, includes reading, by the scheduling processor, the data from a circular queue of the shared memory; the network and the scheduling processor updates the index associated with the shared memory circular queue to reflect data placed in and read from the shared memory circular queue. 2. The apparatus according to claim 1. [Second Note 7] a separate shared memory circular queue associated with said network processor and said scheduling processor, said separate shared memory circular queue having an index associated therewith; communicating to the network processor the data received by the scheduling processor from the second network via the second network interface includes placing the data by the scheduling processor in a circular queue of the other shared memory; obtaining, by the network processor, the data received by the scheduling processor from the second network via the second network interface includes reading, by the network processor, the data from a circular queue of the other shared memory; the network and the scheduling processor updates the index associated with the circular queue of the other shared memory to reflect data placed in and read from the circular queue of the other shared memory. 13. The apparatus according to claim 6. [Second Note 8] In order for all data received by the first network interface from the first network to be communicated only from the first network interface to the network processor, and for all data received by the third network interface from the third network to be communicated only from the third network interface to the third processor, configuring interrupts such that the network processor receives interrupts from the first network interface but not from the third network interface; and configuring the third processor to receive interrupts from the third network interface but not from the first network interface; 2. The apparatus according to claim 3. [Second Note 9] a semiconductor chip having a plurality of cores, a first one of the cores comprising the network processor and a second different one of the cores comprising the scheduling processor; 2. The apparatus according to claim 1. [Second Note 10] a third first network interface configured to connect to a third network; a fourth network interface configured on a fourth network; Third processor and a fourth processor, The third processor, obtaining data received from the third network via the third network interface, performing network address translation on the data such that the data has an address on the fourth network, and communicating the data translated by the third processor from the third network to the fourth network to the fourth processor; and the fourth processor is configured to obtain from the fourth processor data received from the fourth network via the fourth network interface, perform network address translation on the data such that the data has an address on the third network, and communicate the data to the third network via the third network interface; the third processor obtains data received from the third network via the third network interface without using the fourth processor, and communicates data to the third network via the third network interface without using the fourth processor; The fourth processor, Obtaining data from the third processor that the third processor has converted from the third network to the fourth network and communicating the data to the fourth network via the fourth network interface; and configured to obtain data received from the fourth network via the fourth network interface and communicate the data to the third processor for the third processor to perform network address translation such that the data has an address on the third network; the fourth processor obtains data received from the fourth network via the fourth network interface without using the third processor, and communicates data to the fourth network via the fourth network interface without using the third processor; 2. The apparatus according to claim 1. [Second Appendix 11] The system further comprises a first semiconductor chip and a second semiconductor chip having a plurality of cores, a first core of the first chip comprising the network processor, a second core of the first chip comprising the scheduling processor, a first core of the second chip comprising the third processor, and a second core of the second chip comprising the fourth processor. 11. The apparatus of claim 10. [Second Appendix 12] A non-transitory computer-readable recording medium having instructions recorded thereon, comprising: The instructions are executed directly by at least one processor, including a scheduling processor and a network processor, causing a network processor to at least convert the data and causing a scheduling processor to transmit the data converted by at least the network processor; The network processor includes: obtaining data received from a first network via a first network interface of a plurality of network interfaces, performing network address translation on the data such that the data has an address on a second network, and communicating the data translated by the network processor from the first network to the second network to the scheduling processor; and the scheduling processor is configured to obtain from the scheduling processor data received from the second network via a second network interface of the plurality of network interfaces, perform network address translation on the data such that the data has an address on the first network, and communicate the data to the first network via the first network interface; the network processor obtains data received from the first network via the first network interface without using the scheduling processor, and communicates data to the first network via the first network interface without using the scheduling processor; The scheduling processor includes: obtaining from the network processor the data that the network processor converted from the first network to the second network and communicating the data to the second network via the second network interface; obtaining data received from the second network via the second network interface and communicating the data to the network processor for the network processor to perform network address translation such that the data has an address on the first network; and configured to obtain data received from the second network via the second network interface without using the network processor, and to communicate data to the second network via the second network interface without using the network processor; enabling the scheduling processor to process interrupts from a network interface configured to communicate with the scheduling processor, but disabling the scheduling processor from processing interrupts from a network interface configured to communicate with the scheduling processor; The first network interface is configured to be connected to a respective first network, and the second network interface is configured to be connected to a respective second network. A non-transitory computer-readable recording medium. [Second Appendix 13] recording instructions to be executed by at least one processor comprising a scheduling processor and a network processor; further comprising at least a third network connected to the third network and at least a third processor; The third processor, obtaining data received from the third network via the third network interface, performing network address translation on the data such that the data has an address on the second network, and communicating the data translated by the third processor from the third network to the second network to the scheduling processor; and the scheduling processor is configured to obtain from the scheduling processor data received from the second network via the second network interface, perform network address translation on the data such that the data has an address on the third network, and communicate the data to the third network via the third network interface; the third processor obtains data received from the third network via the third network interface without using the scheduling processor, and communicates the data to the third network via the third network interface without using the scheduling processor; The scheduling processor includes: obtaining from the third processor the data that the third processor converted from the third network to the second network and communicating the data to the second network via the second network interface; and further configured to obtain data received from the second network via the second network interface and communicate the data to the third processor for the third processor to perform network address translation such that the data has an address on the third network; the scheduling processor obtains data received from the second network via the second network interface without using the third processor, and communicates data to the second network via the second network interface without using the third processor. 13. The non-transitory computer-readable storage medium of claim 12. [Second Appendix 14] recording instructions to be executed by at least one processor, including a scheduling processor and a network processor; all data received by the first network interface from the first network is communicated only from the first network interface to the network processor; all data received by the third network interface from the third network is communicated only from the third network interface to the third processor. 14. A non-transitory computer-readable storage medium according to claim 13. [Second Note 15] recording instructions to be executed by at least one processor, including a scheduling processor and a network processor; all data received by the first network interface from the first network is communicated only from the first network interface to the third processor; all data received by the third network interface from the third network is communicated only from the third network interface to the network processor; 15. The non-transitory computer-readable storage medium of claim 14. [Second Appendix 16] recording instructions to be executed by at least one processor, including a scheduling processor and a network processor; The network processor is further configured to perform port conversion on the data. 13. The non-transitory computer-readable storage medium of claim 12. [Second Appendix 17] recording instructions to be executed by at least one processor, including a scheduling processor and a network processor; a shared memory circular queue associated with the network processor and the scheduling processor, the shared memory circular queue having an index associated therewith, and communicating the data converted by the network processor from the first network to the second network to the scheduling processor includes placing the data by the network processor on the shared memory circular queue; communicating the data converted by the network processor from the first network to the second network to the scheduling processor includes placing the data by the network processor in a circular queue in the shared memory; obtaining the data that the network processor converted from the first network to the second network by the scheduling processor includes reading the data from a circular queue of the shared memory by the scheduling processor; the network and the scheduling processor update the index associated with the shared memory circular queue to reflect data placed in and read from the shared memory circular queue. 13. The non-transitory computer-readable storage medium of claim 12. [Second Note 18] recording instructions to be executed by at least one processor, including a scheduling processor and a network processor; a separate shared memory circular queue associated with said network processor and said scheduling processor, said separate shared memory circular queue having an index associated therewith; communicating to the network processor the data received by the scheduling processor from the second network via the second network interface includes placing the data by the scheduling processor in a circular queue of the other shared memory; obtaining, by the network processor, the data received by the scheduling processor from the second network via the second network interface includes reading, by the network processor, the data from a circular queue of the other shared memory; the network and scheduling processor updates the index associated with the circular queue of the other shared memory to reflect data placed in and read from the circular queue of the other shared memory. 18. The non-transitory computer-readable storage medium of claim 17. [Second Note 19] recording instructions to be executed by at least one processor, including a scheduling processor and a network processor; In order for all data received by the first network interface from the first network to be communicated only from the first network interface to the network processor, and for all data received by the third network interface from the third network to be communicated only from the third network interface to the third processor, configuring interrupts such that the network processor receives interrupts from the first network interface but not from the third network interface; and configuring the third processor to receive interrupts from the third network interface but not from the first network interface; 15. The non-transitory computer-readable storage medium of claim 14. [Second Note 20] recording instructions to be executed by at least one processor, including a scheduling processor and a network processor; a third first network interface configured in the third network; a fourth network interface configured on a fourth network; Third processor and a fourth processor, The third processor, obtaining data received from the third network via the third network interface, performing network address translation on the data such that the data has an address on the fourth network, and communicating the data translated by the third processor from the third network to the fourth network to the fourth processor; and the fourth processor is configured to obtain from the fourth processor data received from the fourth network via the fourth network interface, perform network address translation on the data such that the data has an address on the third network, and communicate the data to the third network via the third network interface; the third processor obtains data received from the third network via the third network interface without using the fourth processor, and communicates data to the third network via the third network interface without using the fourth processor; The fourth processor, Obtaining from the third processor the data that the third processor converted from the third network to the fourth network and communicating the data to the fourth network via the fourth network interface; and obtaining data received from the fourth network via the fourth network interface, and communicating the data to the third processor for the third processor to perform network address translation such that the data has an address on the third network; the fourth processor obtains data received from the fourth network via the fourth network interface without using the third processor, and communicates data to the fourth network via the fourth network interface without using the third processor; 13. The non-transitory computer-readable storage medium of claim 12.

Claims

1. a plurality of network interfaces including at least a first network interface and a second network interface; The first network interface is configured for each first network; the second network interface is configured for each second network; the plurality of network interfaces; a plurality of processors including a network processor for at least transforming data; and a scheduling processor for at least communicating the data transformed by the network processor; The network processor obtaining data received from the first network via the first network interface, performing network address translation on the data so that the data has an address on the second network, and communicating the data translated by the network processor from the first network to the second network to the scheduling processor; and the scheduling processor is configured to retrieve from the scheduling processor data received from the second network via the second network interface, perform network address translation on the data so that the data has an address on the first network, and communicate the data to the first network via the first network interface; the network processor obtains data received from the first network via a first network interface without using the scheduling processor, and communicates data to the first network via the first network interface without using the scheduling processor; The scheduling processor obtaining from the network processor the data that the network processor converted from the first network to the second network, and communicating the data to the second network via the second network interface; configured to obtain data received from the second network via the second network interface and communicate the data to the network processor for network address translation such that the data has an address on the first network; the scheduling processor obtains data received from the second network via the second network interface without using the network processor, and communicates data to the second network via the second network interface without using the network processor. the plurality of processors; An apparatus comprising:

2. further comprising at least a third network interface configured in a third network and at least a third processor; The third processor obtaining data received from the third network via the third network interface, performing network address translation on the data so that the data has an address on the second network, and communicating the data translated by the third processor from the third network to the second network to the scheduling processor; and the scheduling processor is configured to obtain from the scheduling processor data received from the second network via the second network interface, perform network address translation on the data so that the data has an address on the third network, and communicate the data to the third network via the third network interface; the third processor obtains data received from the third network via the third network interface without using the scheduling processor, and communicates data to the third network via the third network interface without using the scheduling processor; The scheduling processor obtaining from the third processor the data that the third processor converted from the third network to the second network, and communicating the data to the second network via the second network interface; and further configured to obtain data received from the second network via the second network interface and communicate the data to the third processor for the third processor to perform network address translation so that the data has an address on the third network; the scheduling processor obtains data received from the second network via the second network interface without using the third processor, and communicates data to the second network via the second network interface without using the third processor.

10. The apparatus of claim 1.

3. The device comprises: all data received by the first network interface from the first network is communicated only from the first network interface to the network processor; and configured such that all data received by the third network interface from the third network is communicated only from the third network interface to the third processor.

3. The apparatus of claim 2.

4. The device comprises: all data received by the first network interface from the first network is communicated only from the first network interface to the third processor; and and reconfiguring all data received by the third network interface from the third network to be communicated only from the third network interface to the network processor.

4. The apparatus of claim 3.

5. the network processor is further configured to perform port translation on the data.

10. The apparatus of claim 1.

6. a shared memory circular queue associated with said network processor and said scheduling processor, said shared memory circular queue having an index associated therewith; communicating by the network processor to the scheduling processor the data converted by the network processor from the first network to the second network includes placing the data by the network processor in a circular queue in the shared memory; obtaining, from the network processor, the data that the network processor converted from the first network to the second network by the scheduling processor includes reading, by the scheduling processor, the data from a circular queue of the shared memory; the network and the scheduling processor updating the index associated with the shared memory circular queue to reflect data placed on and read from the shared memory circular queue.

10. The apparatus of claim 1.

7. a separate shared memory circular queue associated with the network processor and the scheduling processor, the separate shared memory circular queue having an index associated therewith; communicating by the scheduling processor to the network processor the data received by the scheduling processor from the second network via the second network interface includes placing the data by the scheduling processor in a circular queue of the other shared memory; obtaining, by the network processor, from the scheduling processor, the data received by the scheduling processor from the second network via the second network interface includes reading, by the network processor, the data from a circular queue of the other shared memory; the network and the scheduling processor updating the index associated with the circular queue of the other shared memory to reflect data placed in and read from the circular queue of the other shared memory.

7. The apparatus of claim 6.

8. In order for all data received by the first network interface from the first network to be communicated only from the first network interface to the network processor, and for all data received by the third network interface from the third network to be communicated only from the third network interface to the third processor, configuring the network processor to receive interrupts from the first network interface but not from the third network interface; and configuring the third processor to receive interrupts from the third network interface but not from the first network interface; 4. The apparatus of claim 3.

9. a semiconductor chip having a plurality of cores, a first core of the cores comprising the network processor and a second, different core of the cores comprising the scheduling processor; 10. The apparatus of claim 1.

10. a third first network interface configured in a third network; a fourth network interface configured on a fourth network; a third processor; a fourth processor; The third processor obtaining data received from the third network via the third network interface, performing network address translation on the data so that the data has an address on the fourth network, and communicating the data translated by the third processor from the third network to the fourth network to the fourth processor; and the fourth processor is configured to obtain from the fourth processor data received from the fourth network via the fourth network interface, perform network address translation on the data so that the data has an address on the third network, and communicate the data to the third network via the third network interface; the third processor obtains data received from the third network via the third network interface without using the fourth processor, and communicates data to the third network via the third network interface without using the fourth processor; The fourth processor Obtaining from the third processor the data that the third processor converted from the third network to the fourth network, and communicating the data to the fourth network via the fourth network interface; and configured to obtain data received from the fourth network via the fourth network interface and communicate the data to the third processor for the third processor to perform network address translation so that the data has an address on the third network; the fourth processor obtains data received from the fourth network via the fourth network interface without using the third processor, and communicates data to the fourth network via the fourth network interface without using the third processor; 10. The apparatus of claim 1.

11. The semiconductor device further comprises a first semiconductor chip and a second semiconductor chip each having a plurality of cores, wherein a first core of the cores of the first chip comprises the network processor, a second different core of the cores of the first chip comprises the scheduling processor, a first core of the cores of the second chip comprises the third processor, and a second different core of the cores of the second chip comprises the fourth processor.

11. The apparatus of claim 10.

12. A non-transitory computer-readable recording medium having instructions recorded thereon, The instructions are executed directly by at least one processor, the at least one processor comprising a scheduling processor and a network processor, causing a network processor to at least convert data and a scheduling processor to transmit the data converted by at least said network processor; The network processor obtaining data received from a first network via a first network interface of a plurality of network interfaces, performing network address translation on the data such that the data has an address on a second network, and communicating the data translated by the network processor from the first network to the second network to the scheduling processor; and the scheduling processor is configured to obtain from the scheduling processor data received from the second network via a second network interface of the plurality of network interfaces, perform network address translation on the data so that the data has an address on the first network, and communicate the data to the first network via the first network interface; the network processor obtains data received from the first network via the first network interface without using the scheduling processor, and communicates data to the first network via the first network interface without using the scheduling processor; The scheduling processor obtaining from the network processor the data that the network processor converted from the first network to the second network, and communicating the data to the second network via the second network interface; configured to obtain data received from the second network via the second network interface and communicate the data to the network processor for network address translation such that the data has an address on the first network; the scheduling processor obtains data received from the second network via the second network interface without using the network processor, and communicates data to the second network via the second network interface without using the network processor; The first network interface is configured to be connected to a respective first network, and the second network interface is configured to be connected to a respective second network. A non-transitory computer-readable recording medium.

13. recording instructions executed directly by at least one processor, the at least one processor comprising a scheduling processor and a network processor; further comprising at least a third network interface connected to a third network and at least a third processor; The third processor obtaining data received from the third network via the third network interface, performing network address translation on the data so that the data has an address on the second network, and communicating the data translated by the third processor from the third network to the second network to the scheduling processor; and the scheduling processor is configured to obtain from the scheduling processor data received from the second network via the second network interface, perform network address translation on the data so that the data has an address on the third network, and communicate the data to the third network via the third network interface; the third processor obtains data received from the third network via the third network interface without using the scheduling processor, and communicates the data to the third network via the third network interface without using the scheduling processor; The scheduling processor Obtaining from the third processor the data that the third processor converted from the third network to the second network, and communicating the data to the second network via the second network interface; and further configured to obtain data received from the second network via the second network interface and communicate the data to the third processor for the third processor to perform network address translation so that the data has an address on the third network; the scheduling processor obtains data received from the second network via the second network interface without using the third processor, and communicates data to the second network via the second network interface without using the third processor.

13. The non-transitory computer-readable storage medium of claim 12.

14. recording instructions executed directly by at least one processor, the at least one processor comprising a scheduling processor and a network processor; all data received by the first network interface from the first network is communicated only from the first network interface to the network processor; all data received by the third network interface from the third network is communicated only from the third network interface to the third processor; 14. The non-transitory computer-readable storage medium of claim 13.

15. recording instructions executed directly by at least one processor, the at least one processor comprising a scheduling processor and a network processor; all data received by the first network interface from the first network is communicated only from the first network interface to the third processor; all data received by the third network interface from the third network is communicated only from the third network interface to the network processor; 15. The non-transitory computer-readable storage medium of claim 14.

16. recording instructions executed directly by at least one processor, the at least one processor comprising a scheduling processor and a network processor; the network processor is further configured to perform port translation on the data.

13. The non-transitory computer-readable storage medium of claim 12.

17. recording instructions executed directly by at least one processor, the at least one processor comprising a scheduling processor and a network processor; a shared memory circular queue associated with said network processor and said scheduling processor, said shared memory circular queue having an index associated therewith; communicating by the network processor to the scheduling processor the data converted by the network processor from the first network to the second network includes placing the data by the network processor in a circular queue in the shared memory; obtaining, from the network processor, the data that the network processor converted from the first network to the second network by the scheduling processor includes reading, by the scheduling processor, the data from a circular queue of the shared memory; the network and the scheduling processor updating the index associated with the shared memory circular queue to reflect data placed on and read from the shared memory circular queue.

13. The non-transitory computer-readable storage medium of claim 12.

18. recording instructions executed directly by at least one processor, the at least one processor comprising a scheduling processor and a network processor; a separate shared memory circular queue associated with the network processor and the scheduling processor, the separate shared memory circular queue having an index associated therewith; communicating by the scheduling processor to the network processor the data received by the scheduling processor from the second network via the second network interface includes placing the data by the scheduling processor in a circular queue of the other shared memory; obtaining, by the network processor, from the scheduling processor, the data received by the scheduling processor from the second network via the second network interface includes reading, by the network processor, the data from a circular queue of the other shared memory; the network and the scheduling processor updating the index associated with the circular queue of the other shared memory to reflect data placed in and read from the circular queue of the other shared memory.

20. The non-transitory computer-readable storage medium of claim 17.

19. recording instructions executed directly by at least one processor, the at least one processor comprising a scheduling processor and a network processor; In order for all data received by the first network interface from the first network to be communicated only from the first network interface to the network processor, and for all data received by the third network interface from the third network to be communicated only from the third network interface to the third processor, configuring the network processor to receive interrupts from the first network interface but not from the third network interface; and configuring the third processor to receive interrupts from the third network interface but not from the first network interface; 15. The non-transitory computer-readable storage medium of claim 14.

20. recording instructions executed directly by at least one processor, the at least one processor comprising a scheduling processor and a network processor; a third first network interface configured in a third network; a fourth network interface configured on a fourth network; a third processor; and a fourth processor; The third processor obtaining data received from the third network via the third network interface, performing network address translation on the data so that the data has an address on the fourth network, and communicating the data translated by the third processor from the third network to the fourth network to the fourth processor; and the fourth processor is configured to obtain from the fourth processor data received from the fourth network via the fourth network interface, perform network address translation on the data so that the data has an address on the third network, and communicate the data to the third network via the third network interface; the third processor obtains data received from the third network via the third network interface without using the fourth processor, and communicates data to the third network via the third network interface without using the fourth processor; The fourth processor Obtaining from the third processor the data that the third processor converted from the third network to the fourth network, and communicating the data to the fourth network via the fourth network interface; and configured to obtain data received from the fourth network via the fourth network interface and communicate the data to the third processor for the third processor to perform network address translation so that the data has an address on the third network; the fourth processor obtains data received from the fourth network via the fourth network interface without using the third processor, and communicates data to the fourth network via the fourth network interface without using the third processor; 13. The non-transitory computer-readable storage medium of claim 12.