Date: March 4, 2025
Topic: Active Networks
Recall
Routing is done through routers, which do table lookups to decide where to forward a packet.
By making these routers active, it can help the router determine what to do when routing, and can provide customized service for network flows.
Notes
Routing on the Internet

- Routers just look at destination node of the packet and figure out what is the next hop to send that packet to
- This is done through a table lookup, where every router has a routing table
- These nodes are passive and just do lookups to figure out where to forward traffic
- To make them active, the router executes some code instead of doing just a passive lookup
- Packet also carries code which helps the router determine what to do when routing to desired destination
- Can have customized service for network flows going through network (can have different routes)
We want to be able to customize the payload through QoS APIs, which allows for intelligent routing decisions.
However it is hard to change all OS on all nodes everywhere, and not every router can process the code in payload.
Active Network Vision
Have every router as an intelligent one

Implementation
- OS needs to provide Quality-of-Service APIs to the application
- E.g., Real time constraints due to video data, etc
- Hints to network that OS uses for synthesizing code that corresponds to the API that the OS is providing
- Code that OS is synthesizing is taking Quality-of-Service constraints and puts them as executable code that is passed on as part of the packet
- Protocol Stack of OS has to be enhanced to service the QoS requirements to synthesize code that is part of payload
- Packet is passed to internet, and if routers are capable of executing the specialized code we can have customized services (demultiplex, etc)
- Intelligent routing decisions can be taken in the network
Challenges
- Changing OS is non-trivial (especially for protocol stack of TCP/IP) of every single node in the universe to handle active networks
- Network routers in the internet are also closed, cannot expect every router on internet capable of processing code in payload
The ANTS toolkit takes the payload and QoS constraints to produce a capsule, which when in the network, if a router is not intelligent the packet is just sent to the next hop. If it is intelligent, it can do intelligent routing decision.
ANTS (Active Node Transfer System) Toolkit

- As modifying the protocol stack is non-trivial, the toolkit is an application-level package
- Available for application programmer to pass it the payload and QoS constraints
- Toolkit then creates an ANTS header to the payload, forming a capsule
- This capsule is then given to the protocol stack to stick on the IP-header
- Final packet has IP-header, ANTS header and the actual payload
Intelligent Routing
- If the network node is normal (not smart node), router just uses IP-header to send packet to next hop
- If network is smart, it can see the ANTS header and do intelligent routing decisions (e.g., know to de-multiplex and send to different routes)
- As routers may not be open, we keep active nodes at edge of network. The core IP network is unchanged
Type and Prev are important fields that help identify and execute the code for processing the capsule
ANTS API is a minimal set of functions that helps forward the network packets intelligently. The routers have a soft-store that the API can interact with, and the API can also query the state of the network or node details.
<aside>
📌 SUMMARY: Active Networks enable routers to process embedded executable code within packets with toolkits like the ANTS toolkit to make dynamic, QoS-aware routing decisions without modifying the core IP routing process. The headers from ANTS allow code to be downloaded into the router for intelligent routing decisions (such as de-multiplexing). However to achieve this, significant changes are needed to the networks and they are slow compared to hardware routing.
</aside>