1/84
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
---|
No study sessions yet.
Application Layer
The layer in the network stack where network applications and their protocols operate, enabling communication between end systems.
Client-Server Architecture
A network architecture where a centralized server (always-on host) provides services to clients (intermittently connected hosts), which do not communicate directly with each other.
P2P (Peer-to-Peer) Architecture
A decentralized network architecture where peers (end systems) directly communicate and share resources without a central server, offering self-scalability.
Socket
A software interface through which processes send and receive messages over the network, analogous to a 'door' for communication.
Port Number
A numerical identifier used alongside an IP address to specify a particular process on a host (e.g., HTTP uses port 80).
App-Layer Protocol
Defines the rules for communication between applications, including message types, syntax, semantics, and timing (e.g., HTTP, SMTP).
TCP Service
Provides connection-oriented, reliable, and ordered data transfer with flow and congestion control, but no timing or throughput guarantees.
UDP Service
Provides connectionless, unreliable data transfer with no guarantees for reliability, flow control, or congestion control.
SSL (Secure Socket Layer)
A security protocol that provides encrypted TCP connections, data integrity, and authentication for secure communication.
HTTP (Hypertext Transfer Protocol)
The application-layer protocol used for web communication, following a client-server model and operating over TCP (default port 80).
Stateless (HTTP)
A property of HTTP where the server does not retain information about past client requests.
Non-Persistent HTTP
An HTTP connection where only one object is transferred per TCP connection, requiring multiple connections for multiple objects (response time: 2 RTTs + transmission time).
Persistent HTTP
An HTTP connection where multiple objects can be transferred over a single TCP connection, reducing overhead and improving efficiency (as little as 1 RTT for referenced objects).
HTTP GET
Requests data from a server.
HTTP POST
Submits data to a server (e.g., form input).
HTTP HEAD
Requests metadata about an object (debugging).
HTTP PUT
Uploads an object to a server.
HTTP DELETE
Removes an object from a server.
URL Method (GET with Input)
A way to upload user input by including it in the URL field of the request line (e.g., www.example.com/search?query=term).
HTTP Response Message
Contains a status line (e.g., HTTP/1.1 200 OK), header lines, and the requested data (e.g., HTML file).
HTTP status code 200
Request succeeded.
HTTP status code 301
Object relocated (new URL in Location: header).
HTTP status code 400
Server couldn't understand the request.
HTTP status code 404
Requested object not found.
HTTP status code 505
Unsupported protocol version.
Web Cache (Proxy Server)
Acts as both client (to origin server) and server (to requesting client). Stores copies of objects to reduce response time and traffic.
Conditional GET
HTTP mechanism to check if a cached object is up-to-date. Uses If-Modified-Since header; server replies 304 Not Modified if unchanged.
Electronic Mail Components
User Agents (e.g., Outlook): Compose/edit emails.
Mail Servers: Store incoming (mailbox) and outgoing (queue) messages.
SMTP: Protocol for transferring emails between servers.
Mail Servers
Store incoming (mailbox) and outgoing (queue) messages.
SMTP
Protocol for transferring emails between servers.
SMTP (Simple Mail Transfer Protocol)
Uses TCP (port 25) for reliable transfer.
Three phases of SMTP
Handshaking, message transfer, closure.
Commands/responses are ASCII-text (e.g., HELO, MAIL FROM).
SMTP vs. HTTP
SMTP: Push protocol (server sends emails), uses persistent connections, requires 7-bit ASCII.
HTTP: Pull protocol (client requests objects), encapsulates each object separately.
Mail Message Format (RFC 5322)
Headers (e.g., To:, From:, Subject:)
Blank line
Body (ASCII only).
Differs from SMTP commands (MAIL FROM, RCPT TO).
POP3
Downloads/deletes messages from server (stateless).
IMAP
Keeps messages on server, supports folders, and maintains state.
What protocol is used by webmail services like Gmail?
HTTP
DNS (Domain Name System)
Distributed database translating hostnames (e.g., www.example.com) to IP addresses. Avoids centralization for scalability.
DNS Services
Hostname-to-IP translation
Aliasing (e.g., enterprise.com → relay1.enterprise.com)
Load distribution (multiple IPs per name).
What is the function of Root Servers in the DNS hierarchy?
Direct queries to TLD servers.
What do TLD Servers manage?
Domains (e.g., .com, .edu).
What do Authoritative Servers provide?
Final IP mappings.
Local DNS Server
ISP-provided; caches recent translations and forwards queries into the DNS hierarchy.
Iterated Query in DNS
A server replies with the next server to ask (e.g., 'Ask .com server').
Recursive Query in DNS
A server resolves the query itself, placing the burden on higher-level servers.
DNS Caching
Stores recently resolved mappings to reduce query load. Entries expire after TTL (Time to Live). Cached data may become outdated if the host's IP changes before TTL expires.
DNS Resource Records (RR)
Format: (name, value, type, ttl).
Type A
Maps hostname to IP (e.g., (relay1.foo.com, 145.37.93.126, A)).
Type NS
Authoritative server for a domain (e.g., (foo.com, dns.foo.com, NS)).
Type CNAME
Alias to canonical name (e.g., (www.ibm.com, servereast.ibm.com, CNAME)).
Type MX
Mail server for a domain (e.g., (foo.com, mail.foo.com, MX)).
DNS Protocol Messages
Query/Reply Format: Header (ID, flags), question (name, type), answer (RRs), authority/additional records.
Flags
Indicate recursion desired, authoritative reply, etc.
Video Streaming Challenges
Scalability: Single server can't handle ~1B users.
Heterogeneity: Users vary in bandwidth/device capabilities.
Video Encoding
CBR (Constant Bit Rate): Fixed encoding rate.
VBR (Variable Bit Rate): Adjusts encoding based on content complexity (e.g., MPEG4: <1 Mbps).
DASH (Dynamic Adaptive Streaming over HTTP)
Splits video into chunks encoded at different rates.
Manifest File
Lists URLs for chunks. Client adapts requests based on real-time bandwidth.
Content Distribution Networks (CDNs)
Goal: Distribute video copies globally to reduce latency/congestion.
Placement Strategies
Enter Deep: Servers in many access networks (e.g., Akamai).
Bring Home: Fewer, larger clusters at IXPs (e.g., Limelight).
CDN Workflow Example
Client requests video URL (e.g., netcinema.com/6Y7B23V).
DNS redirects to nearby CDN server (e.g., KingCDN.com/NetC6y&B23V).
Client retrieves video from CDN via HTTP.
Netflix Case Study
Uses DASH: Clients fetch chunks from CDN based on bandwidth.
Steps: Account management → Browsing → Manifest file → Adaptive streaming.
UDP (User Datagram Protocol)
Connectionless, unreliable datagrams (no handshaking).
TCP (Transmission Control Protocol)
Connection-oriented, reliable byte stream (uses welcoming/connection sockets).
Control vs. Data
In-band/out-of-band communication.
Centralized vs. Decentralized
DNS (distributed) vs. SMTP (centralized servers).
Stateless vs. Stateful
HTTP (stateless) vs. IMAP (stateful).
KPIs
Bandwidth, latency, loss.
Delays
Transmission delay (L (bits) / R (bps))
Propagation delay (d (link length) / s (propagation speed))
Nodal processing (error checking, routing).
Queueing delay (depends on congestion).
TDM vs. FDM
Time-division vs. frequency-division multiplexing.
POP3 vs. IMAP
POP3 downloads/deletes (stateless)
IMAP manages folders on server (stateful).
Transport Layer Services
Provides logical communication between application processes on different hosts.
Network Layer
Host-to-host communication (uses IP addresses).
Transport Layer
Process-to-process communication (uses port numbers).
Multiplexing
Combines multiple signals into one (many-to-one).
Demultiplexing
Splits one signal into multiple original streams (one-to-many).
Internet Transport Protocols
TCP: Reliable, ordered, flow/congestion control, connection-oriented.
UDP: Unreliable, no frills (no guarantees), connectionless.
Port Numbers
16-bit identifiers (0-65535).
Connectionless Demultiplexing (UDP)
Uses destination port number to direct segments to sockets.
Connection-Oriented Demultiplexing (TCP)
Identified by 4-tuple: (source IP, source port, dest IP, dest port).
UDP Segment Header
Fields: Source/dest port, length, checksum, payload.
Internet Checksum Example
Sender: Computes checksum (sum of 16-bit integers + wraparound carry).
Receiver: Verifies checksum (sum should be all 1s). No error correction.
Principles of Reliable Data Transfer (RDT)
Key for app/transport/link layers.
An unreliable channel determines protocol complexity (e.g., bit errors, packet loss).
RDT1.0
Assumes perfect channel (no errors/loss).
FSM: Sender sends data; receiver delivers it.
RDT2.0
Channel with Bit Errors: New Mechanisms include error detection (checksums), feedback (ACK/NAK), and retransmission on NAK.
Flaw: Corrupted ACK/NAK causes ambiguity (fixed in RDT2.1 with sequence numbers).
RDT2.1
Adds sequence numbers (0/1) to detect retransmissions.
Receiver: Discards duplicates; sends ACK for correct packets.