How is the early development of programmable networks?

Last Update Time: 2023-06-09 11:15:53

Routers based on small computers (1969 to mid-1990s)

The first router on the packet-switched network was probably the interface message processor (IMP) on ARPANET in 1969. The IMP described in the IMP paper is implemented on the Honeywell DDP-516 microcomputer. In today's terminology, this router is called a software router because it is implemented as software on top of a general-purpose computer.

This method of implementing a router on a small computer was sufficient to meet the moderate forwarding rate required at the time. For example, the IMP paper reports that the maximum throughput of IMP is about 700 kbit/s, enough to serve multiple 50 kbit/s lines in both directions. This type of microcomputer-based router is also excellent: the function of the programmable router only needs to upgrade the forwarding software on the microcomputer.

This method of using small computers to build production routers continued until the mid-1990s. An example of a famous software router in the 1970s was David Mills' Fuzzball router. The most famous examples of the 1980s were NoelChiappa's C gateway, which was the foundation of MIT startup Proteon, and William Yeager's "night shipping" multi-protocol router, which was the foundation of Stanford startup Cisco Systems.

By the mid-1990s, due to the rapid adoption of the Internet and the World Wide Web, the software could no longer meet the demand for higher link speeds. Juniper's M40 router was an early example of a hardware router in 1998. M40 contains a dedicated chip for implementing the data plane of the router and a control processor for implementing the control plane of the router. As we have described in the previous section, since the mid-1990s, the fastest routers have mainly consisted of dedicated hardware, because hardware specialization is the only way to maintain link speeds increasing year by year.


image.png

Figure 1: The total capacity of software routers since the first router on ARPANET in 1969. Until the mid-1990s, software routers were not enough. However, from then on, the fastest routers were mainly fixed-function devices, which were built from dedicated non-programmable hardware, and compared to the best software routers, the performance of these routers increased by 10- 100 times.

Active Network (mid-1990s)

In the mid-1990s, active networks were developed. This approach advocates that the network is programmable or "active" to allow new services to be deployed in the network infrastructure. There are at least two methods for active networks. First, the programmable router method, which allows network operators to program routers in a restricted manner. Second, the encapsulation method, in which the final host embeds the program as a encapsulation into the data packet and then the router executes it.

The active network is mainly related to the capsule method. However, the capsule method caused some safety hazards. Because the program is embedded in the data packet by the end user, a malicious or erroneous end user program may destroy the entire router. One way to solve the security problem is to execute the capsule program in an isolated application-level virtual machine (such as a Java virtual machine). However, the use of virtual machines for isolation comes at the cost of reduced forwarding performance.

Even using technologies that provide effective isolation (such as SNAP), when packet forwarding is performed on a general-purpose processor, it can have a significant impact on performance. For example, SNAP reported a forwarding rate of 100 Mbit/s in 2001, which is two orders of magnitude slower than the Juniper M4040 Gbit/s hardware router developed in 1998.

The capsule method is probably the most ambitious method of all active network visions. Due to security considerations, it does not appear in the most general form. However, recent systems have exposed a more restricted subset of router functionality to end hosts (for example, the ability of end hosts to read router status but not router status), which reminds people of the encapsulation method. On the other hand, the programmable router approach has been adopted in various forms: both software-defined networks and programmable router chips provide network operators with different kinds of restricted router programmability.

Software router (1999-present)

Since the late 1990s, one method of programmability has been to use general-purpose substrates to write packet processing programs, while fixed-function router hardware cannot be programmed. Over the years, general-purpose substrates have changed. For example, Click used a single-core CPU in 2000. In the early 2000s, Intel introduced a series of processors specifically for networking, called network processors, such as the IXP1200 in 2000 and the IXP2800 in 2000. The RouteBricks project used multi-core processors in 2009, the PacketShader project used GPUs in 2010, and the NetFPGA-SUME project used FPGAs in 2014.

It has been found that software routers are used as a means of programming routers, but at the expense of performance. They are particularly useful when the link speed is low but the calculation requirements are high. For example, this method has been used to implement the MAC layer algorithm in WiFi and the signal processing algorithm in the wireless physical layer.

Along with the development of software routers, many domain-specific languages (DSL) for packet processing have also been developed. For example, click Use C++ for packet processing on a software router. packetC and MicroengineC target network processors.

 

If you want to know more, our website has product specifications for programmable networks, you can go to ALLICDATA ELECTRONICS LIMITED to get more information