Broadband connectivity has revolutionized how individuals and small businesses (collectively referred to as subscribers) connect to the Internet, providing high bandwidth connections with relatively low costs. Broadband connectivity is provided to subscribers in many different forms, including but not limited to: coaxial cable (cable), digital subscriber line (DSL), geosynchronous satellite, wireless, and direct point-to-point optical and wireless. Of course, each method of broadband delivery is usually different and normally is not compatible. Regardless of how the connectivity between the subscriber and the Internet is achieved, there is an underlying commonality that exists in all types of broadband. It is the processing that occurs with data/information packets coming into and out of the subscriber's computer(s).
The packets can be divided into one of two groups based on their position in relation to the interface between the subscriber's equipment and the service provider's equipment. Packets can either be local or external. Local packets are packets on the subscriber's side of the interface while external packets are packets on the service provider's side of the interface. Local packets may be packets sent from one computer in the subscriber's network to another in the same subscriber's network (should the subscriber have a computer network) or packets from the subscriber's single computer to itself. When packets are transmitted, processing must be performed on the packets to determine if they are to remain in their respective domains or they are to cross the interface.
A common solution for processing the local and external packets is via the use of a single processing module that performs needed processing for both local and external packets. The single processing module typically resides at the interface itself. The use of a single processing module permits the sharing of resources and eases design by reducing the overall number of interacting modules. However, the sharing of the single processing module places a large burden on processing resources to perform tasks such as address filtering and translation for local addresses. The address filtering and translation processing may interfere with and affect the performance of the processing of external packets, therefore reducing the overall performance.
A fairly common solution to the processing of external and local packets is to create two separate modules that are separately responsible for processing external packets and local packets. By separating the processing, it is much less likely that there would be interference since there is no interaction unless a packet crosses the interface. However, the separation of the processes can result in unnecessary duplication of modules, such as the communications protocol modules.
A need has arisen for method and apparatus that reduces interaction and interference between local and external packet processing and at the same time minimizes the unnecessary duplication of modules.