• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/98

Click to flip

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)