A router is a computer and networking device that forwards data packets between computer networks, including internetworks such as the global Internet. Routers perform the traffic directing functions on the Internet. A router is connected to two or more data lines from different IP networks. When a data packet arrives on a line, the router reads the network address in the packet header to determine the ultimate destination. Then, using information in its routing table or routing policy, it directs the packet to the next network on its journey. A data packet is forwarded from one router to another through an internetwork until it reaches its destination node. The most familiar type of IP routers are home and small office routers that forward IP packets between the home computers and the Internet. More sophisticated routers, such as enterprise routers, connect large business or ISP networks to powerful core routers that forward data at high speed along the optical fiber lines of the Internet backbone. Routers can be built from standard computer parts but are mostly specialized purpose-built computers (embedded systems). Early routers used software-based forwarding, running on a CPU. More sophisticated devices use application-specific integrated circuits (ASICs) to increase performance or add advanced filtering and firewall functionality.
History
The concepts of a switching node using software and an interface computer were first proposed by Donald Davies in 1966 for the NPL network. The same idea was conceived by Wesley Clark the following year for use in the ARPANET, which were named Interface Message Processors (IMPs). The first interface computer was implemented at the National Physical Laboratory in the United Kingdom in early 1969, followed later that year by the IMPs at the University of California, Los Angeles, the Stanford Research Institute, the University of California, Santa Barbara, and the University of Utah School of Computing in the United States. All were built with the Honeywell 516. These computers had fundamentally the same functionality as a router does today. The idea for a router (called a gateway at the time) initially came about through an international group of computer networking researchers called the International Network Working Group (INWG). These gateway devices were different from most previous packet switching schemes in two ways. First, they connected dissimilar kinds of networks, such as serial lines and local area networks. Second, they were connectionless devices, which had no role in assuring that traffic was delivered reliably, leaving that function entirely to the hosts. This particular idea, the end-to-end principle, was contained in the work of Donald Davies. The concept was explored in practice by various groups, with the intention to produce a working system for internetworking. There were three notable contemporaneous programs. The first was an implementation directed by Louis Pouzin of the CYCLADES network, which was designed and developed during 1972-3. The second was a program at Xerox PARC to explore new networking technologies, which produced the PARC Universal Packet system. Some time after early 1974, the first Xerox routers became operational. Due to corporate intellectual property concerns, it received little attention outside Xerox for years. The third was a DARPA-initiated program, which began during 1973-4. This drew on the work of the other two programs, expanded significantly, and went on to create the TCP/IP architecture in use today. University College London (UCL) provided a gateway between British research groups and the ARPANET from 1973 until the late 1980s, latterly using SATNET. The first true IP router was developed by Ginny Travers at BBN, as part of that DARPA-initiated effort, during 1975–1976. By the end of 1976, three PDP-11-based routers were in service in the experimental prototype Internet. Mike Brecia, Ginny Travers, and Bob Hinden received the IEEE Internet Award for early IP routers in 2008. The first multiprotocol routers were independently created by staff researchers at MIT and Stanford in 1981 and both were also based on PDP-11s. Stanford's router program was led by William Yeager and MIT's by Noel Chiappa. Virtually all networking now uses TCP/IP, but multiprotocol routers are still manufactured. They were important in the early stages of the growth of computer networking when protocols other than TCP/IP were in use. Modern routers that handle both IPv4 and IPv6 are multiprotocol but are simpler devices than those that process AppleTalk, DECnet, IPX, and Xerox protocols. From the mid-1970s and in the 1980s, general-purpose minicomputers served as routers. Modern high-speed routers are network processors or highly specialized computers with extra hardware acceleration added to speed both common routing functions, such as packet forwarding, and specialized functions such as IPsec encryption. There is substantial use of Linux and Unix software-based machines, running open source routing code, for research and other applications. The Cisco IOS operating system was independently designed. Major router operating systems, such as Junos and NX-OS, are extensively modified versions of Unix software.
Operation When multiple routers are used in interconnected networks, the routers can exchange information about destination addresses using a routing protocol. Each router builds up a routing table, a list of routes, between two computer systems on the interconnected networks. The software that runs the router is composed of two functional processing units that operate simultaneously, called planes:
Control plane: A router maintains a routing table that lists which route should be used to forward a data packet, and through which physical interface connection. It does this using internal pre-configured directives, called static routes, or by learning routes dynamically using a routing protocol. Static and dynamic routes are stored in the routing table. The control-plane logic then strips non-essential directives from the table and builds a forwarding information base (FIB) to be used by the forwarding plane. Forwarding plane: This unit forwards the data packets between incoming and outgoing interface connections. It reads the header of each packet as it comes in, matches the destination to entries in the FIB supplied by the control plane, and directs the packet to the outgoing network specified in the FIB.
… excerpt ends here. Continue reading the full article.





