← Back to RC/4.2 What's Inside a Router
  • Once the computation is done in the control plane, the forwarding table installed back into the memory of the input link

2025-03-25_20:57:18.png

  • Input ports: -> performs the physical layer function of terminating an incoming physical link at a router -> performs link-layer functions needed to interoperate with the link layer at the other side of the incoming link -> consultes the forwarding table to determine the router output port to which an arriving packet will be forwarded

  • Switching fabric -> connects the router’s input ports to its output ports.

  • Output ports -> stores packets received from the switching fabric and transmits these on the outgoing link by performing the necessary link-layer and physical-layer functions.

  • Routing processor -> the routing processor performs control-plane functions. In SDN routers is responsible for communicating with the remote controller.

4.2.1 Input Port Processing and Destination-Based Forwarding

2025-03-25_21:12:39.png

-> destination-based forwarding (tradicional control plane router): forward based only on destination IP address (a bit faster, cheaper) -> generalized forwarding (SDN routers): forward based on any set of header field values (a bit slower, more expensive)

Longest Prefix Match -> when looking for forwarding table entry for given destination address, use longest address prefix that matches destination address. 2025-03-26_01:16:33.png

fst = 0 snd = 1

4.2.2 Switching

  • Transfer packets from input buffer to appropriate output buffer
  • Switching Rate: rate at which packets can be transfer from input to output

4.2.3 Buffering Management

Input Port Weeing

  • If switch fabric slower than input line-> queuing, delay and loss
  • Head-of-the-Line (HOL) blocking: queued datagram at front of queue prevents others in queue from moving forward

2025-03-26_01:49:45.png

Output Port Queing

  • If switch fabric faster than output line -> queuing,delay and loss

2025-03-26_01:51:21.png

  • Buffering required when datagrams arrive from fabric faster than link transmission rate.
  • Drop policy: which datagrams to drop if no free buffers?
  • Scheduling discipline chooses among queued datagrams for transmission 2025-03-26_01:56:50.png

How much buffering?

  • RFC 3439 rule of thumb: average buffering equal to “typical” RTT (say 250 msec) times link capacity C
  • more recent recommendation: with N TCP flows, buffering equal to

$$ RTT * C/ sqrt(N) $$

  • Dropping Policies: -> tail drop: drop arriving packet -> priority: drop on priority basis -> random: drop randomly

  • Scheduling (next packet to send on a link)Policies: -> FIFO : first in first out -> Class Based Scheduling (diving packets into classes that may depend on headers): - Priority : certain class get first out - Round Robin (RR) : routing turns (one class at a time) - WFQ: weighted rotation turns (combination of the above two)