1/336
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
What is Virtualisation?
gives each process the illusion of exclusive resource access (time + space sharing)
What is CPU Virtualisation?
OS runs multiple processes by time-sharing the CPU via a scheduler
What are the Components of the Cloud?
Virtual Machines, containers ans server clusters
What is the Goal of the Cloud?
on-demand, scalable resources with hidden complexity and isolation
What is UDP?
fast, connectionless, low-overhead transport protocol
How is UDP Connectionless?
no handshaking between UDP sender, receiver
each UDP segment handled independently of others
Why use UDP?
no setup
low delay
small headers
What are the Sender Actions?
is passed an application-layer message
determines UDP segment header fields values
creates UDP segment
passes segment to IP
What are the Receiver Actions?
receives segment from IP
checks UDP checksum header value
extracts application-layer message
demultiplexes message up to application via socket
What does the Sender do at the Transport Layer?
is passed an application-layer message
determines segment header fields values
creates segment
passes segment to IP
What does the Receiver do at the Transport Layer?
receives segment from IP
checks header values
extracts application-layer message
demultiplexes message up to application via socket
What are the 2 Transport Protocols?
TCP and UDP
What are the Differences between the Transport and Network Layers?
transport layer:
communication between processes
relies on, enhances, network layer services
network layer:
communication between hosts
What is TCP - Transmission Control Protocol?
reliable
ordered
connection oriented transport protocol
What is Throughput?
the rate (bits/second) at which bits are transferred from a sender to a receiver
What is Instantaneous Throughput?
rate at given point in time
What is Average Throughput?
rate over a period of time
What is Peak Throughput?
highest instantaneous throughput rate seen so far
How do we Measure Throughput?
using iperf - send known data between client and server and calculate rate
How do we Calculate Rate in Iperf?
data / time
What are Threads?
lightweight process sharing memory with others
What does each Thread have?
own PC, registers, stack
What is a Process?
program in execution with its own memory and state
What does a Process include?
memory, registers, PCB, threads
What do Condition Variables do?
coordinate thread execution
What does the Condition Variable cond.wait() do?
release the lock and suspends
What does the Condition Variable cond.notify() do?
wakes one waiting thread
What is a Sentinel Value?
a special marker placed in the shared queue to signal consumers to stop when production is finished
What is Congestion?
too much data for network capacity
What does Congestion lead to?
delay or loss
What are the goals of TCP Congestion Control?
efficiency
distributedness
fairness
What are the different Approaches to Congestion Control?
end-end congestion control
network-assisted congestion control
What is End-End Congestion Control?
no explicit feedback from network
congestion inferred from observed loss, delay
Which Congestion Control Approach does TCP take?
end-end
What is Network-Assisted Congestion Control?
routers provide direct feedback to sending/receiving hosts with flows passing through congested router
may indicate congestion level or explicitly set sending rate
What is AIMD?
senders can increase sending rate until packet loss (congestion) occurs, then decrease sending rate on loss event

What is Additive Increase in AIMD?
increase sending rate by 1 maximum segment size every RTT until loss detected
What is Multiplicative Decrease in AIMD?
cut sending rate in half at each loss event
What does it mean when we say AIMD has Sawtooth Behaviour?
probing for bandwidth
Why AIMD?
has been shown to
optimise congested flow rates network wide
have desirable stability properties
What is System Design?
combining resources into an efficient system
What is System Optimisation?
maximise performance metrics under resource constraints
What are Common Optimisation Resources?
time
space
computation
cost
labour
What are the Constraints to System Optimisation?
performance
scalability
resilience
cost
maintainability
sustainability
What is a System Bottleneck?
most constrained element in a system
What Improves when you Remove a Bottleneck?
performance metrics
What is Multiplexing?
use the same resource to service multiple requests without interference
What are the Types of Multiplexing?
time - CPU, I/O
space - memory
frequency - radio comms
What is Pipelining?
overlapping sequential tasks
What is Batching?
processing tasks together to reduce overhead
When does Batching work?
when 'overhead for N tasks' < 'N time overhead for one task'
What is Binding?
translate an abstraction into an instance
What is Indirection?
use a reference to access something, instead of directly
What does Indirection provide and why?
flexibility because the reference can change without affecting the higher-level system
What is Packet Switching?
data split into packets and forwarded independently
What are the Key Characteristics of Packet Switching?
store and forward, delays and possible loss
What is Store and Forward?
entire packet must arrive at router before it cam be transmitted on next link
What is Packet Processing Delay?
time a network takes to examine, process and transmit a packets header
What is Packet Transmission Delay?
takes L/R seconds to transmit L-bit packet into link at R bps
What is Packet Queuing and Loss?
if arrival rate to link exceeds transmission rate of link for some period of time
packets will queue, waiting to be transmitted on output link
packets can be dropped (lost) if memory (buffer) in router fills up
What does a Router do?
forwards packets between networks
What is Forwarding?
move packet locally
What is Routing?
determine path globally
What is Circuit Switching?
dedicated resources reserved for communication
What is Frequency Division Multiplexing (FDM)?
optical electromagnetic frequencies divided into narrow frequency bands
each call allocated its own band, can transmit at max rate of that narrow band

What is Time Division Multiplexing (TDM)?
time divided into slots
each call allocated periodic slot, can transmit at max rate of wider frequency band only during its time slot

What is Packet Switching at Risk of?
excessive congestion
What is Packet Switching good for?
‘bursty’ data - sometimes has data to send, but at other times not
What is a Socket?
interface between application and transport layer
How do we Identify a Connection?
5 tuple
What is a 5 tuple?
2 IP addresses, 2 port numbers, and the underlying transport protocol being used
What is the Difference between Well-Known and Ephemeral Ports?
typically servers have a well-known
client picks an unused ephemeral port
How is Process-to-Process Communication Enabled?
through socket-to-socket communication
What Calls can be used on a Socket?
standard API calls (system calls) are used - link open(), read(), write(), close()
plus some other socket-specific calls - send(), recv(), bind(), etc
What does the Router look like?
routing, management control plane (software) operates in millisecond time frame
forwarding data plane (hardware) operates in nanosecond timeframe

What are the Input Port functions?
decentralised switching
longest prefix matching

What is Decentralised Switching?
using header field values, lookup output port using forwarding table in input port memory (“match plus action”)
input port queuing
destination-based forwarding
What is the Goal of Decentralised Switching?
complete input port processing at ‘line speed’
What is Input Port Queuing?
if datagrams arrive faster than forwarding rate into switch fabric
What is Destination-Based Forwarding?
forward based only on destination IP addresses
What is Longest Prefix Matching?
choose routing entry with most specific match
What is Switching Fabrics?
transfer packet from input link to appropriate output link
What is Switching Rate?
rate at which packets can be transfer from inputs to outputs
What are the 3 types of Switching Fabrics?
memory
bus
interconnection network
What is Head-of-the-Line (HOL) Blocking?
queued datagram at front of queue prevents others in queue from moving forward

What is Output Port Queuing?
buffering required when datagrams arrive from fabric faster than link transmission rate
What are the Principles of RDT?
sender, receiver do not know the “state” of each other, e.g., was a message received?
unless communicated via a message

What are Interfaces?

What are the Functions for Interfaces?
rdt_send()
udt_send()
rdt_rev()
deliver_data()
How do we get started with RDT?
incrementally develop sender, receiver sides of RDT protocol
consider only unidirectional data transfer
but control info will flow in both directions
use finite state machines (FSM) to specify sender, receiver
What is rdt1.0?
reliable transfer over a reliable channel
How do we Detect Errors?
checksum
What happens in a Channel with Bit Errors?
underlying channel may flip bits in packet
checksum to detect bit errors (i.e., corrupt packets)
stop and wait - sender sends one packet, then waits for receiver response
How do we Recover from Bit Errors?
sender re-transmits the packet on receipt of NAK
What is a Negative Acknowledgement (NAK)?
receiver explicitly tells sender that the packet had bit errors (errors detected based on the checksum)
What is an Acknowledgement (ACK)?
receiver explicitly tells sender that the packet was received OK (no bit errors)
What happens if ACK/NAK corrupted?
sender doesn’t know what happened at receiver
can’t just re-transmit - possible duplicate
How do we Handle Duplicates?
sender retransmits current packet if ACK/NAK corrupted
sender adds sequence number to each packet
receiver discards (doesn’t deliver up) duplicate packet
How does the Sender Handle Corrupted ACK/NAKs?

How does the Receiver Handle Corrupted ACK/NAKs?
