Router SoC Functional Components
In a router SoC, packetized data arrives through input ports, is directed using a network of connections called the Switching Fabric (which can be thought of as wires connecting each component to every other), and leaves through output ports.
The router SoC keeps, in memory, a look-up table of addresses associated with each packet, and the processor uses various rule sets to determine the best path for sending data. It also listens in to keep tabs on network traffic, updating its "available" and/or "best" path for packets based on load levels.
The SoC's on-board memory maintains routing tables, consisting of network and host addresses. To determine the best path for delivering a packet to its destination, the routing table includes all known network addresses, instructions for connecting to other networks, possible paths between routers and a measure of distance between nodes or network addresses known in the form of cost functions. This on-board memory usually takes the form of flash or EEPROM. The size of the memory chip is less important than its speed.
By their nature, routers do not communicate directly with end devices like laptop or desktop computers, but with their network adapters. Each NIC has a network address—Ethernet switches, adapters, Wi-Fi transceivers and radios are all NICs.
Additional hardware can provide dedicated support to the main CPU. A cryptographic chip can offload encryption and hashing functions from the main processor. A dedicated load balancer can jump in to optimize different types of data streams—streaming video versus regular Web page browsing, for example. USB, SATA and other types of capabilities on routers are also added in the form of interface cards, often integrated right into the main processor board.
The architecture gets more complex when you consider that many routers also provide an xDSL, cable or cellular data modem. In this case, the router's interface card is the component that mediates data between the modem and switching fabric.
A modem modulates and demodulates digital signals into analog and vice versa, to be sent out over the "line"—cable or xDSL. However, we will not cover cellular modems in this article; those require architecture and protocol different from xDSL or cable modems.