1/77
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Persistent Connection
A network communication channel that remains open for further HTTP requests and responses rather than closing after a single exchange (more common and can save overhead)
Nonpersistent Connection
A network communication channel that is broken after each request, must be rebuilt whenever more is requested
HTTP Message Formats
(figures 2.8 and 2.9)
Ordinary Text, Request, or Response
HTTP Message Format: Request
- this line is followed by header lines, then message body
- this line is Method URL version
- URI, GET, HEAD, POST, PUT, DELETE, etc.
HTTP Message Format: Response
status line, followed by header lines, then message body
How is HTTP allowed a sense of state if it's a stateless protocol?
cookies!
URI
Uniform Resource Identifier
URL
Uniform Resource Locator (subset of URI)
GET
request to http to get resources
- needs URL/path, version of protocol, connection type
HEAD
retrieves just the header
POST
add information to a database
PUT
used to update/create data at a location
DELETE
server will try to delete, but could be stopped
- server will "try" but could never actually delete it
Web Cache
Stores the recently accessed web pages on a server in a network
- results it less requests and delay over a network
Proxy Server
A server that acts as an intermediary between a user and the Internet that can be closer to the client
- checks if its cached whenever requested; if not cached it will request from origin server and store local copy
Conditional GET
conditionally receive something that meets some requirements (send me x if it's been modified since y)
HTTP2
- standardized in 2015
- provides priority of requests
- improve header fields to preserve bandwidth
- changes formatting of data
- multiplexing of requests allows multiple connections for multiple requests
HOL Delay
head of line delay - requests in front of you may be large and can slow everyone down
HTTP3
attempting to use UDP instead of TCP, and is trying to add flow/congestion control that isn't connection-oriented
- 2022 introduced as RFC
Email User Agent
program used to send an email and will contact email server
- uses SMTP or HTTP to send email to server
IMAP
Internet Message Access Protocol
- organize emails by folders on server
- does not automatically delete emails that are downloaded
- can download just pieces of an email
- keeps state across sessions
Why do many email web-clients use HTTP for emails (what is SMTP's weakness)?
SMTP restricts body and headers of an email to 7-but ASCII
POP3
Post Office Protocol version 3
- download messages and deletes from server
- downloads entire email
- cannot organize emails into folders on server side, only client side
Email Server
Sends email to another email server
- almost all still email servers still use a form of SMTP to send from email server to email server
SMTP protocol commands
HELO, EHLO, ECPT, SEND, DATA, QUIT
HELO
Hello; identify the SMTP sender to the SMTP receiver
EHLO
Extended Hello; enables SMTP extensions
RCPT
Recipient; identidty an individual recipient of email
SEND
deliver email to one or more workstations
DATA
consider the lines following the command to be email from the sender
QUIT
ask receiver to send a valid reply, and then close transmission channel
DNS
Domain Name System
- distributed database and a protocol
- runs over port 53
What are the services provided by DNS?
1) Hostnames translated to IP addresses (***)
2) Hostname aliasing: different titles that map to same place
3) Email server aliasing
4) Load Balancing: distributes everyone among servers evenly
Why is DNS a distributed database?
- prevents a single point of failure
- avoids high traffic volume for the server/area
- duplicate servers can be closer to users
- maintenance (don't want entire internet down to perform maintenance)
What's the hierarchy for DNS?
Root Servers > Top Level Domain Server (TLD) > Authoritative Servers > (local servers, aren't really apart of formal layout)
Root Servers
Top level of DNS servers
- 13 of them
- named A,B,C,....
- copied/duplicated all over the world
Top-Level Domain Servers (TLD)
Just below DNS root
- Handles TLD names (.com, .org, .net, .edu)
Authoritative DNS Servers
lowest level DNS server
- used for specific websites such as amazon.com
How does the DNS hierarchy work?
ask root to get domain, top-level then finds domain and sends to authoritative, which then gets specific website
Recursive Queries
DNS servers take responsibility for resolution and will make requests to other DNS servers to solve request (requests done for you)
Iterative Queries
Client is responsible for speaking with each DNS server directly in order to solve request (you do requests)
DNS Caching
whenever a reply is received, it can cache it in memory to provide an answer quicker
- reduces delay for searching and can make process quicker
DNS Resource Records
4-tuple of {name, value, type, time-to-live}
Common DNS Resource Records typings
A, NS (name server), CNAME, MX, and SOA (start of authority)
A
name = hostname
value = IP address of hostname
ex: (foo.bar.com, 145.123.92.135, ___)
NS
name = domain
value = authoritative DNS server that knows how to obtain IP address for hosts in the domain
ex: (foo.com, dns.foo.com, ___)
CNAME
name = alias hostname
value = canonical host name
ex: (foo.com, dns.foo.com, ____)
MX
name = alias hostname for a mail server
value = canonical name for mail server in name
ex: (foo.com, mail.bar.foo.com, MX)
SOA
(name ttl address/zone mname rname serial_# refresh_values retry_value expire minimum)
ex: (wgb1.b.yahoo.com 300 IN SOA yf1.a1.b.yahoo.net hostmaster.yahoo-inc.com 1697153751 30 30 86400 300)
What's true for authoritative servers?
If a DNS server is ________ for a particular hostname it will contain a Type A record in its database for the hostname (non-_______ servers may contain these type A records in their caches)
What's true for non-authoritative servers?
If it is _________ for a hostname, then it will contain a Type NS for the domain that includes the hostname in its database. It will also contain a Type A record that provides the IP address of the DNS servers in the Value field of the NS record.
Client-Server file distribution time
D_cs >= max{(F / U_s) * N, (F / d_min)}
Peer-to-Peer file distribution time
D_p2p = {(F / U_s), (F / d_min), (NF / U_s + sum(u_i from 1 to n)}
What does a higher bitrate mean when streaming videos?
Better quality
How does video streaming work?
1) Videos are stored on computers, when videos is request it's sent to client which buffers it
2) Whenever the buffer hits some preset fill capacity, the video is played
3) More of the video is downloaded and placed in buffer as video is playing
DASH
Dynamic Adaptive Streaming over HTTP
- encodes all bitrates and stores them on server
- network is queried and data sent at different bitrates dependent on network congestion (or )
What are the types of content distribution networks?
ENTER DEEP or BRING HOME
ENTER DEEP
servers at ISPs all over the world (can get closer to users)
BRING HOME
servers at IXPs all over the world (less of these)
Can CDNs use both ENTER DEEP and BRING HOME?
yes they do it cause of $$$
Transport Layer Services
provides logical rather than physical communication between application processes
Sending side transport layer services
application layer messages are encapsulated in Transport layer segements (messages may be broken into multiple pieces and sent in multiple segments)
Receiving side transport layer services
get segment and make the data inside it available to application
Client side transport layer services
Transport layer passes its data to the network layer for delivery to the server host
Server side transport layer services
transport layer gets segments from the network layer and passes data to application
IP
network layer protocol is a best effort protocol, is not a reliable data service
Multiplexing
gathers data chunks at the source host from different sockets, encapsulating each data chunk to create segments, and passing the segments to the network layer(gather all info from app., package, send out to network)
Demultiplexing
job of delivering the data in a transport-layer segment to the correct socket (open and deliver to app.)
UDP socket in transport layer
uniquely identified by just a source port number and destination port number (connectionless)
- multiple clients can send segments to the same UDP socket on a single server machine
TCP socket in transport layer
uniquely identified by source and destination port along with source and destination IP addresses (connection oriented)
- each process sent must have a unique socket on the server side
KNOW THE SEGMENT GRAPHS
KNOW THE SEGMENT GRAPHS
What does an ACK mean/do?
"acknowledge", means a TCP packet was successfully received by receiver
What does an NAK mean/do?
"negative acknowledge", means a TCP packet was not received
What is IP?
internet protocol for the network layer, known as "best-effort" protocol
how is a UDP socket identified?
source and destination port #
how is a TCP socket identified?
source and destination port # along with source and destination IP addresses
how many sockets are needed for a TCP server?
1 welcome socket, plus the # of clients (since it's connection based)
How many sockets are needed for a UDP server?
1 :)
(since it's connectionless)