• 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/102

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;

102 Cards in this Set

  • Front
  • Back
What is networking


Enable communications between applications on different computers


-web


-peer to peer


-audio/video conferencing

Statistical Multiplexing


Sharing of network bandwith between users according to the statistics of their demand


-Multiplexing just means sharing


-useful bc users are mostly idle and their traffic is bursty




can use binomial probabilities to determine how much bandwith each user needs

Metcalfe's Law


The value of a network of N nodes is proportional to N^2




Large networks are relatively more valuable than small ones



Application, app, or user

Uses the network
Host, node, source


supports apps (laptop, mobile, desktop)




Router, switch, node

Relays messages between links (access point, cable/dsl modem)

Link, channel

Connects nodes (wires, wireless)
Full-duplex link

<---> or -----


bidirectional link



Half-duplex link


---> or <---


bidirectional


Simplex link


--->


unidirectional

PAN's scale and example


Personal Area Network (ex: Bluetooth)


Scale: Vicinity

LAN scale, example


Scale: Building


ex: wifi, ethernet


MAN scale, example


Metropolitan Area Network


Scale: City


Ex: Cable, DSL



WAN

Wide Area Network


Scale: Country


Ex: Large ISP

Network-Application Interfaces`


Define how apps use the network


Sockets are widely used in practice

Network-Network interfaces


Define nodes work together


Traceroute can peek in the network

What is Layering?
A modular approach to network functionality
ex:


A modular approach to network functionality


ex:

Each Instance of a protocol uses only the services of a lower layer. T or F

True, also each instance of a protocol talks virtually to its peer using the protocol
Examples of protocols

TCP, IP, 802.11, Ethernet, http, SSL, DNS, etc
Encapsulation
The mechanism used to effect protocol layering
  -Lower layer wraps higher layer content, adding its own information to make a new message for delivery
  -like sending a letter in an envelope, postal service doesn't look inside


The mechanism used to effect protocol layering


-Lower layer wraps higher layer content, adding its own information to make a new message for delivery


-like sending a letter in an envelope, postal service doesn't look inside

Disadvantages of Layering


Adds overheard


-minor for long messages




Hides information


-sometimes app might care if its running over wired or wireless

Protocols (definition)

An agreement between parties on how communications should take place
OSI 7 Layer Model
OSI - open system interconnection


1.Physical: how to transmit bits


2. Data link: how to transmit frames


3. Network: how to route packets


4. Transport: how to send packets end2end


5. Session: how to tie flows together


6. Presentation: b...

OSI - open system interconnection



1.Physical: how to transmit bits



2. Data link: how to transmit frames




3. Network: how to route packets




4. Transport: how to send packets end2end




5. Session: how to tie flows together




6. Presentation: byte ordering, security




7. Application: everything else

Physical Layer (OSI)

How to transmit bits
Data Link (OSI)

How to transmit Frames

Network (OSI)


How to route packets


Transport (OSI)

How to send packets end2end

Session (OSI)


How to tie flows together




Presentation (OSI)


Byte ordering, security




Application level(OSI)

everything not covered by the first 6 layers
How many layers of the OSI model does a bridge/switch utilize?

2: Physical and Data link
How many layers of the OSI model does a router/gateway utilize?
3: Physical, data link, network
Internet Reference Model
A four layer model based on experience; omits some OSI layers and uses IP as the network layer

A four layer model based on experience; omits some OSI layers and uses IP as the network layer

Link Layer in Internet Reference Model and corresponding OSI layers

OSI IRM


1,2 Physical & Link Link - send frames




3 Network Internet - send packets over multiple networks




4 Transport Transport end2end data delivery




7 Application Application - programs that use network service

Application Layer (IRM)

Programs that use network service
FTP/HTTP/SMTP/DNS
Transport Layer (IRM)


Provides end2end data delivery


UDP/TCP


Internet Layer (IRM)


Send packets over multiple networks


IP


Link Layer (IRM)


Send frames over a link


Ethernet/3G/802.11/etc

What units of data does the Application Layer use

Message

What units of data does the Transport Layer use

Segment

What units of data does the Network Layer use

Packets

What units of data does the Link layer use

Frame

What units of data does the Physical Layer use

Bit
ARQ

Automatic Repeat request used for reliability; server is stateless for dns protocol
HTTP


HyperText Transfer Protocol


basis for fetching web pages

Steps for fetching a web page with HTTP

What is the difference between a static and dynamic web page


Static - web page is just a file's contents: ex: image




Dynamic- the result of a program execution


ex: javascript on client, php on server, or both



(HTTP commands) GET

Read a Web Page

(HTTP commands)
HEAD

Read a web page's header


(HTTP commands)


POST


Append to a web page


(HTTP commands)


PUT


Store a web page


(HTTP commands)


DELETE


Remove the Web PAge


(HTTP commands)


TRACE


Echo the incoming request


(HTTP commands)


CONNECT


connect through a proxy


(HTTP commands)


OPTIONS


Query options for a page

(HTTP Codes)


1xx


Information
EX: 100 = server agrees to handle client's request

(HTTP Codes)


2xx


Success


200 = request succeeded; 204 = no content present


(HTTP Codes)


3xx


Redirection


301 = page moved; 304 = cached page still valid


(HTTP Codes)


4xx

Client Error


403 = forbidden page; 404 = page not found


(HTTP Codes)


5xx


Server Error


500 = internal server error


503 = try again later

PLT


Page Load Time
-key measure of web performance


-Depends on many factors


-Structure of page/content


-HTTP (and TCP) protocol


-Network RTT and bandwith



how many TCP connections did HTTP/1.0 use to fetch one web resource
1 each, it made HTTP very easy to build but gave poor PLT

1 each, it made HTTP very easy to build but gave poor PLT
What are some ways to reduce PLT


Reduce content size for transfer (smaller images, gzip)




Change HTTP to make better use of available bandwith




Change HTTP to avoid repeated transfers of the same content (caching, proxies)




Move content closer to client (CDNs)

What is a parallel connection


A browser runs multiple HTTP instances in parallel.




Server is unchanged bc it already handles concurrent requests for many clients




This helps because http wasn't using networking much so parallel connections aren't slowed much. pulls in completion time of last fetch

What is a persistent connection
Make 1 TCP connection to 1 server and use it for multiple HTTP requests

Compare and Contrast Persistent and Parallel connections
1 is http 1.0
2 is parallel
3 is persistent


parallel has multiple TCP connections to a server


persistent pipelines multiple requests through 1 TCP connection

1 is http 1.0
2 is parallel


3 is persistent




parallel has multiple TCP connections to a server




persistent pipelines multiple requests through 1 TCP connection

What are CDNs


Content Delivery Networks


Efficiently distributes popular content; creates a replica closer to consumers to deliver faster

Zipf's Law

Few popular items, many unpopular; both matter.
How to place content near clients?


User browser/proxy caches




place replicas across internet for use by all nearby clients


-done by clever use of DNS

What is a waterfall diagram?

Shows progression of the page load
What is SPDY?

"speedy"


A set of http improvements


-multiplexed (parallel) HTTP requests on one TCP connection


-Client priorities for parallel requests


-Compressed HTTP headers


-Server push of resources




Basis for an HTTP/2 effort

mod_pagespeed

an apache server extension that allows the server to "rewrite" (compile) pages to help them load faster.

Rewrites pages 'on the fly' with rules based on best practices
TCP/IP Layer Model

# Name Encapsulation Units
1. Network Access bits/frames


2. Internet packets


3. Transport segments


4. Application data



OSI Layer Model


# Name Encapsulation Units


1 Physical bits


2 Data Link frames


3 Network packets


4 Transport Segments


5 Session data


6 Presentation data


7 Application data

Socket API


simple abstraction to use the network


the network service API used to write all internet applications


part of all major OSes and languages; initially Berkley (unix) ~1983





Streams:


reliably send a stream of bytes




supported by socket API


Datagrams


unreliably send separate messages




supported by socket api

Sockets (data structure)

let apps attach to the local network at different ports
Socket API primitives

SOCKET, BIND, LISTEN, ACCEPT, CONNECT, SEND, RECEIVE, CLOSE


(Sockets)


SOCKET


Create a new communication endpoint



(Sockets)


BIND


associate a local address with a socket



(Sockets)


LISTEN


announce willingness to accept connctions; give queue size


(Sockets)


ACCEPT


passively establish an incoming connection



(Sockets)


CONNECT


actively attempt to establish a connection



(Sockets)


SEND


send some data over the connection


(Sockets)


RECEIVE


receive some data from the connection


(Sockets)


CLOSE


release the connection

What is the order for connecting with a socket

Traceroute

Widely used command-line tool that lets hosts peek inside the network

What is the purpose of the transport layer?

Transport layer provides end-to-end connectivity across the network
Transport layer provides end-to-end connectivity across the network
What are segments?
Segements carry application data across the network
Carried within packets within frames


Segements carry application data across the network


Carried within packets within frames



What are the differences between TCP and UDP?
TCP is full features, UDP is a glorified packet

TCP is full features, UDP is a glorified packet



Ports


Application process is identified by the tuple:


Ports are 16-bit integers representing local "mailboxes" that a process leases




Servers often bind to "well known ports"


ports higher than 1024 require admin privs




clients often assigned "ephemeral" ports


chosen by OS and used temporarily

What kind of apps use UDP


Apps that don't want reliability or byte-streams




VoIP (unreliable)


DNS, RPC (message oriented)


DHCP (bootstrapping)

is UDP connectionless?


Yes,
No handshaking between UDP sender and receiver, each UDP segment handled independently of others



Three Way Handshake
Used in TCP; opens connection for data in both direction



Each side probes the other with a fresh Initial Sequence Number (ISN)


-sends on a SYNchronize segment


-echo on an ACKnowledgement segment




chosen to be robust even against delayed duplicates

Steps of a three way handshake

Three steps:Client sends SYN(x)
Server replies with SYN(y)ACK(x+1)
Client replies with ACK(y+1)
SYN is retransmitted if lost

Three steps:
Client sends SYN(x)


Server replies with SYN(y)ACK(x+1)


Client replies with ACK(y+1)


SYN is retransmitted if lost

What are the steps of a TCP connection release?

Two Steps:Active sends FIN(x), passive ACKs
Passive sends FIN(y), active ACKs
FINs are retransmitted if lost

Each FIN/ACK closes one direction of data transfer

Two Steps:
Active sends FIN(x), passive ACKs


Passive sends FIN(y), active ACKs


FINs are retransmitted if lost




Each FIN/ACK closes one direction of data transfer

Where should reliability functions be placed on the layer model?

Everywhere because it's a key issue, different layers contribute differently.

Strategies to handle errors in higher levels of the stack?

Detect errors and retrans frames (ARQ automatic repeat request)

What's tricky about ARQ?

Performance in common case
correctness always

w

w