Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
98 Cards in this Set
- Front
- Back
Forwarding |
Move incoming packets into the appropriate outgoing link |
|
Routing |
Determines how and where to forward packets |
|
Network Service Model |
Unreliable - no guarantees in place, at least with IP Connectionless - no connection establishment, just drops packets onto the network |
|
Is UDP more reliable? |
No, both are unreliable protocols with no guaranteed delivery |
|
Do TCP packets receive special treatment? |
No, TCP and UDP are treated the same, just as packets; dropped on the network and forgotten about. |
|
What is the major difference from TCP/transport layer in terms of endpoints? |
IP is host to host while TCP is process to process |
|
Why don't routers implement transport layer? |
Don't need to, don't need ports, just need to worry about hosts |
|
Virtual Circuits |
Establish a phone-esque connection allows for QoS or guarantees for those expected packets |
|
Virtual Circuit signalling protocols |
set up, tear down, monitor |
|
Forwarding Table |
IP address destination to link interface table |
|
longest prefix match |
algorithm used by routers in IP networking to select an entry from a forwarding table |
|
Routers: Input Ports |
Receive electrical bits Interpret, protocol de-capsulation Queue if router is busy (i.e. arrival rate > forwarding rate into switch fabric) |
|
Routers: Switch Fabric |
Decides where to send packets |
|
Switch Fabric: Memory |
Cheap, basically a computer Slow, based on RAM bus speed Consumer routers |
|
Switch Fabric: Bus |
Dedicated bus = faster Leads to bus contention: one on bus at a time |
|
Switch Fabric: Interconnection network |
Avoid bus competition: every input directly connected to every output Banyan network is an example May fragment datagram and switch cells through fabric if you want Fastest, most expensive |
|
Router: Output |
Queuing and buffer management needed when packets arrive from fabric faster than max transmission rate head of line blocking queueing delay and packet loss due to buffer overflow Usually buffer typical RTT time * link capacity, sometimes divide by root N flows |
|
Head-of-line blocking: |
queued datagram at front of input queue blocks the ones behind it from proceeding |
|
Queuing policies: |
Scheduling or Drop Policy |
|
Queuing Policy: Scheduling |
First come first serve, weighted fair |
|
Queuing Policy: Drop Policy |
Drop tail: if at tail, probably going to timeout anyway active queue management |
|
Fragmentation |
breaking datagrams into smaller pieces so that packets may be formed that can pass through a link with a smaller MTU than the original datagram size |
|
Fragmentation Fields |
Length field in bytes ID = some unique ID among the packet fragFlag set to 1 in all but the last packet Offset to 1 in all but the last packet Offset to the data offset divided by 8 |
|
IP Address |
32 bits every interface has one dotted quad format subnet part and host part subnet |
|
Subnet |
can physically reach each other without intervening router (just switch or hub; MAC address broadcasted in same range) Note: A single link between two routers is technically a subnet of its own |
|
Classful subnets |
Class A, B, C for one, two or three full quads specified (/8, /16, /24) Either lots of wasted addresses (too many), or wasted space in routing table cause a bunch of smaller class C subnets |
|
CIDR |
classless interdomain routing syntax for specifying IP addresses and their associated routing prefix. It appends a slash character to the address and the decimal number of leading bits of the routing prefix eg. 192.168.2.0/24 for IPv4 |
|
Dynamic Host Configuration Protocol (DHCP) |
Used to dynamically assign IP addresses, easier than static assignment Notes: Everything back/forth is a single transaction ID Everything past the discover includes a lifetime field, specifying how long the dynamic assignment is valid |
|
DHCP 4 step handshake |
1. Host looking for address broadcasts (from 0.0.0.0 to 255.255.255.255) a DHCP discover message
2. Server responds with DHCP offer message, identifying IP that is available 3. Host requests the IP address with a DHCP request message 4. DHCP server responds with an ACK |
|
Network Address Translation (NAT) |
Allows for multiple machines behind a single actual IP address Translates outgoing private IP/port pairings to an actual public facing IP/random port pair |
|
Internet Control Message Protocol (ICMP) |
Used by hosts and routers to communicate network level informational stuff pings, unreachability information |
|
ICMP message format: |
Type (a number) Code (associated with particular type, usually except for errors) First eight bytes of IP datagram causing error |
|
ICMP traceroute |
Sends a series of UDP packets to dest with increasing TTLs (# hops = 1, 2, 3, ...) When last router receives packet, responds back with ICMP message saying packet died Traceroute uses result to identify this router, calculate RTT to/from it (average of 3) STops when we get to end host, ICMP host unreachable returned |
|
In routing all routers know... |
cost to neighbors |
|
In routing all routers don't know... |
costs of anything other than neighbors |
|
In routing we must decide: |
who to send to next |
|
In routing we repeatedly... |
calculate cost to each possible neighbor + cost from that neighbor to the final destination, choose the lowest |
|
Types of routing? |
Global and decentralized |
|
Link-state is global or decentralized? |
global |
|
Link-State details |
All nodes know the full topology of the network Any changes to a local connection gets flooded to all other connections Basically, when we are notified of a change, we use Dijkstra's to calculate a routing table |
|
Link State Algorithm |
Initialize Graph for all neighbors with a total cost to neighbor, mark start as visited while we haven't visited all nodes: 1. Of all nodes that we know of a route to but haven't visited pick the one with smallest cost; that's its final cost/route 2. Add all neighbors/routes attached to the new node, recalculate any new minimum routes if needed |
|
Poisoned Reverse |
If we route around a node to get to a new one, we tell the node we're routing through that our cost to the destination is infinity, so they will never route back through us. |
|
Local: distance vector |
Only knows neighbors Maintains a distance vector of minimum cost to all known nodes, as well as known node's distance vectors periodically, nodes send out their distance vector to neighbors, as well as on any changes to DV more efficient than Dijkstra's: avoids complex algorithm, and fewer messages sent overall see notes for more detail |
|
Distance vector count to infinity problem |
Avoided with Poisoned reverse results in a routing loop counts up to the new cost until it routes correctly |
|
Border Gateway Protocol (BGP) |
Routers with semi permanent connections via TCP We've been assuming flat routing structures; we have hierarchies, and different subnets managed for different purposes. May want different routing strategies and algorithms depending on the particular subnet. |
|
Autonomous Systems (AS's) |
Collection of connected IP routing prefixes under the control of one or more network operators on behalf of a single administrative entity |
|
How does Border Gateway Protocol (BGP) work? |
We'll aggregate clusters of routers into Autonomous Systems Routers in the same AS run the same routing protocol (distance vector vs linkstate) this is intra-AS routing protocol Routers in different AS's can have different protocols Single protocol, BGP, to communicate general route info between AS's A router in one AS with a direct link to another is called a gateway router to that AS each gets an AS ID, unique 16 bit number |
|
A router in one AS with a direct link to another is called a |
gateway router basically the gateway router will learn that a particular subnet/prefix is reachable via AS3 through a given gateway. This propagates globally in the AS, so any given machine knows that to get to a prefix in another AS we just forward it to the right router |
|
BGP route prefix: |
the aggregate set of addresses that we can route to |
|
BGP message types |
OPEN - start connection + auth UPDATE - new route, updated route KEEPALIVE - no new updates + ACK for open NOTIFICATION - error + closing |
|
Link Layer Services |
Framing/encapsulation reliable delivery for some channels flow control error detection error correction half/full duplex |
|
Framing/Encapsulation |
Frame Channels if shared MAC addressing |
|
Why is reliable delivery for some channels in link layer services? |
TCP is general reliability, end to end. Works well for relatively low errors Things like WiFi: much higher errors or dropped packets, so don't just transmit junk data the whole way if its bad initially |
|
Error detection: single bit parity |
sum of 1's odd or even. include sum bit at the end |
|
Two-dim parity: |
row and column. correctable, isolate incorrect bit |
|
Internet checksum: |
1's complement sum, sum with overflow carry, invert |
|
Cyclic Redundancy Check |
D input bits, r+1 bit pattern, G, a generator R bit CRC R is chosen such that D followed by R is exactly divisible by G |
|
Why is error detection provided at the link layer and at TCP? |
TCP can run on any lower protocol; error correction cannot be assumed |
|
Multiple Access |
dealing with shared channels ideal: perfect sharing with multiple nodes, but full bandwidth with few |
|
Time division multiple access (TDMA) |
Divides up time slots, assign Fair efficient when saturated wasted time when few connections no collisions |
|
Frequency division multiple access |
Divide up frequencies, assign Fair, efficient when saturated, wasted bandwidth when connected, no collisions |
|
Random access |
Transmit full channel data rate two or more at the same time = collision, must deal with them |
|
Slotted ALOHA |
Timed frames, start transmitting at beginning if two transmit at the same time, then collision Retransmit with probability p full transmission rate when needed, decentralized wasted slots, idle slots, collisions, synchronization 37% efficient = 1/e |
|
ALOHA |
like slotted ALOHA, but transmit any time half as efficient, 1/2e |
|
Carrier Sense Multiple Access (CSMA) |
Don't transmit if someone else is transmitting |
|
CSMA/CD |
if collision detected, stop and jam signal exponential backoff hard to detect in wireless networks due to attenuation/hidden terminal problem |
|
CSMA/CA |
Collision avoidance - used in WiFi Get permission to send first Small message to request transmission permission, broadcast all-clear from router, full transmission, broadcast ack from router |
|
multiple access: Taking turns |
partitioning good at high loads random access good with low loads we want compromise polling: master invites slaves (single POF, polling overhead) Token ring: token POF |
|
Ethernet |
uses MAC address, as does wifi: 48 bits, six bytes written as hex quads separated by colons, permanent and burned in |
|
Why do we use both IP and MAC? |
Can't use MAC to entire internet we have aggregate prefixes and stuff with IP. That's cause IP is dynamic and changes; it's geographical, and MAC is permanent burned in |
|
Why don't we only use IP for routing? |
Most IP addresses are assigned via DHCP - need to communicate at lower level without an IP address Could statically assign all, but thats a ridiculous level of configuration MAC address gives deterministic way to communicate without having to be configured for the device you're connecting to |
|
Address Resolution Protocol (ARP) |
Determine MAC address from IP address
ARP table at each IP node: mapping of IP address to MAC address with TTL Broadcast an ARP query packet with a particular IP address The right one responds directly with it's MAC address |
|
Hub: |
Dumb repeater. collisions |
|
Switch |
smarter. minimized collision domains by learning routes over time |
|
Multimedia? |
Different challenges Likely use UDP to avoid TCP delays overhead |
|
Quality of Service (QoS) |
Provide level of performance necessary for a particular application |
|
General Characteristics of QoS |
Delay sensitive ( don't want lag or too much buffer time) Loss tolerant ( a few dropped frames not a big deal) Opposite of normal data transmission |
|
Jitter |
variability of packet delays within the stream |
|
Stored Stream |
Just need to stream it playout begins before all data arrives timing constraint: can't have too many pauses for buffering Buffer to handle jitter |
|
Live Stream |
Streaming as in Stored stream, but can't have as much of a delay Limits interactivity, like fast forwarding |
|
Real-time Streaming |
Much harder, because we interact and expect reasonable response (like skype) audio: <150 msec good, <400 msec ok |
|
delay loss |
packet arrived, but too late, so we discard it anyway wasted work fixed playout delay/buffering time for interactive stuff high buffer = less loss low buffer = more interactive |
|
Content distribution networks (CDNs) |
Helps with multimedia a bit by bringing static resources like videos geographically closer origin server replaces image references or other stuff dynamically with cdn.com/original url DNS server will dynamically send you to the machine closest to you |
|
Zero Conf |
Fully PnP no centralized servers for configuration getting address -pick random one in ZeroConf range -Probe to see if taken via ARP -Assign or regenerate |
|
Multicast |
Send packet to a prefix or multicast address/ group, people who want it can selectively listen to it |
|
Multicast DNS |
specific dns for whoever wants it dedicated TLD and multicast address (.local) Machine may drop a multicast dns packet on network looking for a particular name with ".local", you'd respond if on that multicast group |
|
Service Discovery: DNS-SD |
Special domain name hierarchy instance.type*.domain can multicast dns query for a whole group of services, if they're configured and properly listening on the multicast group they'll jump in and work |
|
Access point/base station |
connected directly to a wired network different data rates and rages usually infrastructure mode: APS bridge gap between wireless devices and wireless networks ad-hoc mode: wireless devices communicate directly, like mesh net |
|
Wireless characteristics |
Decreased signal propagation Interference Reflection/multipath propagation Much harder to deal with |
|
Signal to noise ratio |
how much data we can extract from random noise larger is better |
|
Bit error rate (BER) |
how much of a signal is error. Smaller is better |
|
Given a particular SNR we need, choose |
physical layer medium that meets BER requirements |
|
Common problems with Wireless networks |
Hidden terminal: don't know about terminals due to obstruction (mountain in the way example) Signal attenuation: Dont know about terminals due to fading signal strength |
|
Code division multiple access (CDMA) |
Lets some interference be fine Multiplies signal by chipping pattern Reconstructed with dot product divided by parts Signal, chip is 1's and -1s allows signals to interfere and still be extracted |
|
WiFi Characteristics |
All use CSMA/CA (permission) All use same chipping code All have both infrastructure and ad-hoc mode |
|
Basic service station (BSS) |
radius covered by a particular AP Channels - 11 spectrum channels Host must associate with an AP (connect) Two types: passive scanning -aps send beacon frames advertising their SSID and MAC -Association request frame sent to selected AP -Association response frame send back active scanning -probe request sent, probe response sent back -otherwise same |
|
WiFi CSMA/CA |
hard to detect collisions due to attenuation/hidden terminal |
|
Why 3 MAC addresses in WiFi packet? |
Need a source. If only had AP MAC, then we'd need next hop; if we must determine next hop, we're just a router. Can't do that. If only had next hop, AP doesn't know to pick up packet because multiple wireless networks or AP's in one range (BSS) |