CS 6250 Quiz 6 Exam Prep (All Quizzes) Latest 2026/2027
Update | 100% Verified Questions & Answers | Georgia
Institute of Technology
2026/2027 | GRAD
... Show More
ED A+ | 100 out of 100
Question:
What are the basic components of a router?
Answer
Main job of a router is to implement the "forwarding plane" and "control plane" functions.
Forwarding plane + control pane
Input/Output ports
Switching fabric moves packets from input to output ports. 3 types of fabric: memory, bus, and crossbar.
Question:
Explain the forwarding (or switching) function of a router.
Answer
Forwarding (or switching) function: Transfer a packet from input link to appropriate output link. Very short
timescales (nanoseconds),
Question:
The switching fabric moves the packets from input to output ports. What are the functionalities performed by the
input and output ports?
Answer
Input ports: Physically terminates incoming links, decapsulates packets (data processing unit) and performs lookup
function.
Output ports receive and queue the packets to send to outgoing link.
Question:
What is the purpose of the router's control plane?
Answer
Implements routing protocols, maintains routing tables, computes forwarding table. Implemented by software in the
routing processor (or SDN), but could also be done by remote controller.
Question:
What tasks occur in a router?
Answer
Lookup: Router looks up destination IP and determines output link using forwarding table. Forwarding Information
Base (FIB) provides mapping between destination prefixes and output links
Switching: Transfer from input to output link.
Queueing: queues packets if link is congested
Header validation + checksum: Checks packet version number, decrements TTL, recalculates header checksum
Route processing: Builds forwarding table using protocol like RIP, OSPF, and BGP.
Protocol processing: Routers need to implement the following protocol to implement their functions: SNMP (simple
network management protocol) for counters for remote inspection, TCP and UDP for remote comms, and ICMP
(internet control message protocol) for sending messages when TTL is exceeded
Question:
List and briefly describe each type of switching. Which, if any, can send multiple packets across the fabric in parallel?
Answer
Switching via memory: Input/Output ports operate as I/O devices in an OS, controlled by the router. Input port sends
an interrupt to routing processor, and packet is copied into memory. Processor uses forwarding table and copies into
output port.
Switching via bus:Routing processor does NOT intervene like with memory.Input port puts an internal header onto
the packet that designates output port, and sends to shared bus. All output ports receive it, but only the designated one
keeps it and removes the header. Only one packet can cross the bus at a time, so the speed of the bus is the bottleneck.
Switching via interconnected network (crossbar). Basically 2d bus?
Question:
What are two fundamental problems involving routers, and what causes these problems?
Answer
Bandwidth and Internet population scaling: These scaling issues are caused by:
An increasing number of devices that connect to the Internet,
Increasing volumes of network traffic due to new applications, and
New technologies such as optical links that can accommodate higher volumes of traffic.
Services at high speeds: New applications require services such as protection against delays in the presence of
congestion and protection during attacks or failures. But offering these services at very high speeds is a challenge for
routers.
Question:
What are the bottlenecks that routers face, and why do they occur?
Answer
Longest prefix matching: Routers need to look up a packet's destination address to forward it. Increasing number of
Internet hosts and networks has made it impossible for routers to have explicit entries for all possible destinations. So
instead, routers group destinations into prefixes. But then, routers run into the problem of more complex algorithms
for efficient longest prefix matching.
Service differentiation: Routers can also offer service differentiation which means different quality-of-service (or
security guarantees) to different packets. In turn, this requires the routers to classify packets based on more complex
criteria beyond destination. For example, they can include source or applications/services associated with the packet.
Switching limitations: As we have seen, a fundamental operation of routers is to switch packets from input ports to
output ports. A way to deal with high-speed traffic is to use parallelism by crossbar switching. But at high speeds, this
comes with its problems and limitations (e.g., head of line blocking).
Bottlenecks about services: Providing performance guarantees (quality of service) at high speeds is nontrivial, as is
providing support for new services such as measurements or security guarantees.
Question:
What is CIDR, and why was it introduced?
Answer
Classless internet Domain Routing. It assigns IP addresses with arbitrary length prefixes. It helped decrease router
table size as Ip addresses were being exhausted, but it also introduced the "longest matching prefix lookup" problem.
Question:
Name 4 takeaway observations around network traffic characteristics. Explain their consequences.
Answer
Measurement studies on network traffic had shown a large number (in the order of hundreds of thousands - 250,000
according to a measurement study in the earlier days of the Internet) of concurrent flows of short duration. This
already large number has only been increasing, and as a consequence, caching solutions will not work efficiently.
The important element of any lookup operation is how fast it is done (lookup speed). A large part of the cost of
computation for lookup is accessing memory.
An unstable routing protocol may adversely impact the update time in the table: add, delete or replace a prefix.
Inefficient routing protocols increase this value up to additional milliseconds.
A vital trade-off is memory usage. We can use expensive fast memory (cache in software, SRAM in hardware) or
cheaper but slower memory (e.g., DRAM, SDRAM).
Question:
Why do we need multibit tries?
Answer
Unibit tries most significant problem is the number of memory accesses required to perform a lookup. For 32 bit
addresses, we can see that looking up the address in a unibit trie might require 32 memory accesses, in the worst case.
Assuming a 60 nsec latency, the worst-case search time is 1.92 microseconds. This could be very inefficient in high
speed links.
Instead, we can implement lookups using a stride. The stride is the number of bits that we check at each step.
So an alternative to unibit tries are the multibit tries. A multibit trie is a trie where each node has 2k children, where k
is the stride. Next, we will see that we can have two flavors of multibit tries: fixed-length stride tries and variable
length stride tries.
Question:
What is prefix expansion, and why is it needed?
Answer
If we have a prefix of length 3 (101) and stride in 2 bits at a time, we'll miss prefixes like 101. So we do prefix expansion
(ensure the expanded prefix is a multiple of the stride length), and remove all that are not multiples of stride length.
Question:
How would you perform a prefix lookup given a list of pointers for unibit tries, fixed-length multibit ties, and variable
length multibit tries.
Answer
Just keep traversing the tree with the bits until you either hit the end, have no where to go, or hit an empty (if you hit
an empty, go back until the last non-empty you found)
Question:
How woudl you perform a prefix expansion? How many prefix lengths do old prefixes have? What about new prefixes?
Answer
Just create all possibilities of the existing prefix that is a multiple of the stride length. I.e if stride is 3 and you have 01*,
you'd do 010 011, and then throw out any collisions.
Question:
What are the benefits of variable-stride versus fixed-stride multibit tries?
Answer
Variable length can make our prefix database smaller and optimize for memory
Question:
Why is packet classification needed?
Answer
Networks need quality of service + security as the internet gets bigger. Packet forwarding based on longest prefix
match is insufficient, so we need to handle packets based on other things like TCP flags, source addresses, etc.
Question:
What are three established variants of packet classification?
Answer
Firewalls: routers have entry/exit points that filter out unwanted traffic and enforce some custom policies
Resource Reservation Protocols: Things like DiffServ are used to reserve bandwidth between source and destination
Routing based on traffic type: Routing based on the traffic type helps avoid delays for time-sensitive applications
Question:
What are the simple solutions to the packet classification problem?
Answer
Linear Search: Things like firewalls just do a linear search through all the rules to see which rule matches best, but this
can be slow.
Caching: Cache results from a search so it's faster in the future. Even with a 90% hit rate in the cache, it's still too slow
to search the rule space linearly from there.
Passing Labels: MPLS (Multiprotocol Label Switching) and Diffserv use label passing. When leaving the source, a
traffic label goes into a special MPLS header. Then intermediate routers just re-use this label without needing to redo
classification.
Question:
How does fast searching using set-pruning tries work?
Answer
Create a tree (or trie) using destination prefixes. At the leaves of the tree, put the source tries.
Problems: Big memory, as some leaves can have multiple source tries (some source prefixes can appear in multiple
destination tries).
Question:
What is the difference between the pruning approach and the backtracking approach for packet classification with a
trie?
Answer
Pruning approach uses lots of memory and hangs the source tries at destination leaves. Backtracking approach goes
through the destination trie to find the longest destination prefix match. Then it goes back up the destination trie and
searches each source trie (associated with each destination) until it finds the longest source match. Backtracking pays
more time in exchange for saving on memory.
Question:
What's the benefit of a grid of tries approach?
Answer
Avoids backtracking using a 'switch pointer' precomputed. When you finish traversing the destination trie and it fails,
you follow switch pointers until you reach a match for the source trie.
Question:
Describe the "Take the Ticket" algorithm.
Answer
In an NxN grid, each input line requests a ticket from an output line. Then the tickets are just served in order.
Question:
What is the head-of-line problem?
Answer
When the first input line in "take a ticket" is waiting, all other lines are also waiting because the head of the line has yet
to be served, even though there are empty output lines.
Question:
How is the head-of-line problem avoided using the knockout scheme?
Answer
(avoid queueing) Break up packets into fixed sizes (called cells). Assume the switching fabric is running N times faster
than the input links. Also assume that the same output rarely gets N cells at once, and it's usually k < N. If this is the
case, then we can run the fabric at k times faster instead of N.
If this is violated i.e k = 1 and N = 2, randomly pick the output (in this case, the switching element is called the
'concentrator').
Drawback is that it's hard to implement.
Question:
How is the head-of-line problem avoided using parallel iterative matching?
Answer
Still allows queueing. Assume N inputs. In round 1, each input sends a request to N outputs. If an output gets more
than 1 request, it chooses someone at random. If an input gets multiple acceptances, it chooses an output at random.
In round 2, they send N-1 requests and so on until only 1 request is sent.
Question:
Describe FIFO with tail drop.
Answer
The switching system places packets at appropriate output ports. The ports have a FIFO queue. Once the buffer is full,
all other incoming packets up to the tail of the queue are dropped.
Fast but potential packet loss.
Question:
What are the reasons for making scheduling decisions more complex than FIFO?
Answer
Router support for congestion: congestion is pretty common, routers need to be able to handle it.
Fair sharing of links among competing flows: If packets flood the buffers at an output link, then with FIFO + tail drop,
tons of packets are dropped and other flows get blocked. This is bad.
Providing QoS guarantees to flow: Need to give guarantees on the flow rate of packets. Otherwise things like video
streaming would be awful.
Question:
Describe Bit-by-bit Round Robin scheduling.
Answer
Send a bit from each active flow one at a time in a round-robin manner (very fair). The bit-by-bit part is just a
conceptual idea, since you can't actually break up a packet into bits, so you use bit-by-bit to instead compute the
"finish time" of a packet and send it all at once when the 'finish time' of a packet == the current time of the scheduler.
Basically the "most-starved stream" each round goes next.
Question:
Bit-by-bit Round Robin provides fairness; what's the problem with this method?
Answer
Requires a priority queue to keep track of finish time at which the head of the packet of each queue would have
departed. Priority queues have logarithmic time complexity.
If a new queue becomes active, then all other timestamps need to change, which has linear complexity.
Question:
Describe Deficit Round Robin (DRR).
Answer
Each queue has packets with sizes. Each queue also has its own "Deficit counter', initialized to 0. We also have a
quantum size Q. Each round, we add Q in a round robin fashion to each queue's deficit counter. If the deficit counter of
a queue Di is >= the size of the next packet in that queue, send the packet and decrease Di by the size sent.
Question:
What is a token bucket shaping?
Answer
You might want to limit a type of traffic without putting it into a separate queue. Token bucket shaping can limit the
burstiness of a flow by limiting the average rate or the max burst size. Bucket fills up with tokens at a rate of R. If
bucket overflows, excess tokens are discarded.
When a packet arrives, if num tokens B > size of packet, send the packet and consume tokens from the bucket.
Problem is: one queue per flow, and one flow may have a full bucket while others may be empty and waiting
unnecessarily.
In traffic scheduling, what is the difference between policing and shaping?
Answer
Token bucket policing says that if a packet arrives and there are no tokens in the bucket, it gets dropped. Shaping
means just wait for the bucket to be full enough to send.
Policing = when traffic reaches the max rate, excess traffic is dropped. Graph looks like a sawtooth with flattened
peaks (cut off)
Shaping = Retains excess packets in a queue/buffer, waits till bucket is full enough to send. Graph looks smooth.
Can use shaping and policing together.
How is a leaky bucket used for traffic policing and shaping?
Answer
Hole in the bucket makes it so that traffic enters the network at a constant rate regardless of how fast the bucket is
filled up. If the bucket is not full and a packet arrives, the packet is 'conforming' and added to the bucket.
If a packet arrives and the bucket is full, it's 'nonconforming' and dropped (policing).
Constant output rate (shaping).
T/F: Using packet classification techniques, we can perform packet forwarding based on multiple criteria and not just
based on destination IP address.
Answer
True
T/F: The backtracking approach has a higher cost in terms of time, whereas the set pruning technique approach has
higher cost in terms of memory?
Answer
True
T/F: The grid of tries offers a "middle ground" approach, merging the backtracking and the set pruning techniques.
Answer
True
T/F: The head of line blocking refers to the problem where an entire queue remains blocked because the head of the
queue is blocked.
True
T/F: One technique to avoid head of line blocking is with parallel iterative matching.
True
T/F · With parallel iterative matching the input links are "matched" with output links in a fixed manner that stays the
same as the rounds are progressing.
False
T/F · With the token bucket traffic approach, we can still have bursts of traffic entering the network, but these bursts
are capped.
True
T/F · With the leaky bucket approach, we only allow the traffic to enter the network in a configured rate.
True
T/F · Traffic policers target to limit traffic bursts to a configured max, whereas traffic shapers target to smooth out the
overall rate.
True
T/F · With the leaky bucket we can still have discarded packets.
True
Show Less