1. A method comprising: operating a software router in application memory space of a general purpose computer, the software router being configured to route data between (1) multiple Internet communication-enabled devices that are in communication with the general purpose computer and (2) a broadband interface of the general purpose computer, wherein the general purpose computer receives a packet via the broadband interface and transmits the packet to one of the multiple Internet communication-enabled devices; operating a plurality of instances of an interface application in the application memory space of the general purpose computer; receiving the packet by an operating system running on the general purpose computer; monitoring a state of each of the instances of the interface application and communicating a detected state change to the software router; and responsive to the detected state change, obtaining the packet using one of the instances of the interface application for forwarding by the software router; wherein receiving comprises emulating a hardware interface associated with the router application for transferring packets to and from the router application, wherein receiving further comprises performing a packet capture routine on the packet from a kernel of the operating system, and wherein the packet capture routine places the packet in a receive ring buffer from which the packet is removed and thereafter replaced with a free buffer when the packet is processed for routing.