Fast-forwarding and filtering of network packets in a computer system
First Claim
1. A method in a computer system for forwarding packets of data from a source network to a destination network, each packet being part of a message, the computer system having a main central processing unit connected via a bus to a network card, the network card being connected to the source and destination networks, the network card having a cache memory, the computer system having an operating system with instructions that are executed by main central processing unit, the method comprising:
- under control of the network card,receiving a packet from the source network;
determining whether the cache memory contains routing information for the packet;
when the cache memory contains such routing information, transmitting the received packet on the destination network in accordance with the routing information; and
when the cache memory does not contain such routing information, sending the received packet to the operating system;
under control of the operating system,receiving the sent packet;
determining whether the received packet should be dropped based on filtering information; and
when the received packet should not be dropped,retrieving routing information that indicates that the receive packet should be transmitted on the destination network; and
sending the routing information to the network card; and
under control of the network card,receiving the sent routing information;
storing the received routing information in the memory cache so that subsequent packets can be transmitted onto the destination network without sending the subsequent packets to the operating system; and
transmitting the received packet on the destination network in accordance with the routing information wherein packets with the same packet identifiers can be forwarded on the destination network without processing by the operating system, while packets with other packet identifiers can be dropped based on the filtering criteria processing of the operating system.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer system facilitates concurrent filtering and fast-forwarding of network packets. The computer system includes a network card for interfacing with multiple computer networks, and the network adapter is able to fast-forward network packets that it receives to other network destinations without assistance from the main central processing in the computer system. A fast-forwarding cache is stored on the network card to facilitate such fast-forwarding. Network packets that are not fast-forwarded are processed by the main central processing of the computer system that may apply filtering to the network packets and route network packets accordingly. The main central processing unit provides routing information to the network card so that subsequently received network packets can be transmitted to the network destinations without intervention by the main central processing unit.
313 Citations
26 Claims
-
1. A method in a computer system for forwarding packets of data from a source network to a destination network, each packet being part of a message, the computer system having a main central processing unit connected via a bus to a network card, the network card being connected to the source and destination networks, the network card having a cache memory, the computer system having an operating system with instructions that are executed by main central processing unit, the method comprising:
-
under control of the network card, receiving a packet from the source network; determining whether the cache memory contains routing information for the packet; when the cache memory contains such routing information, transmitting the received packet on the destination network in accordance with the routing information; and when the cache memory does not contain such routing information, sending the received packet to the operating system; under control of the operating system, receiving the sent packet; determining whether the received packet should be dropped based on filtering information; and when the received packet should not be dropped, retrieving routing information that indicates that the receive packet should be transmitted on the destination network; and sending the routing information to the network card; and under control of the network card, receiving the sent routing information; storing the received routing information in the memory cache so that subsequent packets can be transmitted onto the destination network without sending the subsequent packets to the operating system; and transmitting the received packet on the destination network in accordance with the routing information wherein packets with the same packet identifiers can be forwarded on the destination network without processing by the operating system, while packets with other packet identifiers can be dropped based on the filtering criteria processing of the operating system. - View Dependent Claims (2, 3)
-
-
4. A method in a general-purpose computer system of forwarding a network packet from a source network to destination network, the computer system having a main central processing unit and a network card, the network card being connected to the source and destination networks, the method comprising:
-
receiving the network packet at the network card, the network packet having a destination address; analyzing the received network packet to determine whether the network packet should be forwarded to its destination by the network card or forwarded to the main central processing unit; when it is determined that the network packet should be forwarded to its destination by the network card, transmitting the network packet to the destination network by the network card without intervention by the main central processing unit; and when it is determined that the network packet should be forwarded to the main central processing unit, providing the received network packet to the main central processing unit for further processing. - View Dependent Claims (5, 6, 7, 8)
-
-
9. In a computer system having a main central processing unit and a network card for interfacing the computer system with multiple networks, a method of processing network packets that are received at the network card, comprising:
-
having fast-forwarding active so that selected network packets that are received at the network card are fast-forwarded to at least one destination network by the network card without main central processing intervention; and concurrently having filtering active so that the main central processing unit applies filtering to at least some of the network packets received at the network card to determine whether to accept or drop the network packets. - View Dependent Claims (10, 11, 12)
-
-
13. A computer-readable medium containing instructions for causing a general-purpose computer system to forward a network packet from a source network to destination network, the computer system having a main central processing unit and a network card, the network card being connected to the source and destination networks by:
-
receiving the network packet at the network card, the network packet having a destination address; analyzing the received network packet to determine whether the network packet should be forwarded to its destination by the network card or forwarded to the main central processing unit; when it is determined that the network packet should be forwarded to its destination by the network card, transmitting the network packet to the destination network by the network card without intervention by the main central processing unit; and when it is determined that the network packet should be forwarded to the main central processing unit, providing the received network packet to the main central processing unit to determine whether the network packet should be dropped or forwarded to the destination. - View Dependent Claims (14, 15, 16, 17)
-
- 18. A computer system having a main central processing unit and a network card for interfacing the computer system with multiple networks, the computer system for processing network packets that are received at the network card in which fast-forwarding is active so that selected network packets that are received at the network card are fast-forwarded to at least one destination network by the network card without main central processing intervention and in which filtering is concurrently active so that the main central processing unit applies filtering to at least some of the network packets received at the network card to determine whether to accept or drop the network packets.
-
22. A method in a general-purpose computer system of forwarding a network packet from a source network to destination network, the computer system having an operating system, a network driver, and a network card, the network card being connected to the source and destination networks, the method comprising:
-
under control of the network card, receiving the network packet having a destination address from the source network; and forwarding the received network packet to the network driver; under control of the network driver, analyzing the received network packet to determine whether the network packet should be forwarded to its destination by the network card or provided to the operating system; when it is determined that the network packet should be forwarded to its destination by the network card, instructing the network card to transmit the network packet to the destination network; and when it is determined that the network packet should be provided to the operating system, providing the received network packet to the operating system for further processing; and under control of the network card, when instructed to transmit the received packet, transmitting the network packet to the destination network so that a decision to forward a network packet is made by the network driver. - View Dependent Claims (23, 24, 25, 26)
-
Specification