1/355
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Application layer
The layer responsible for supporting network applications and application-layer protocols such as HTTP, SMTP, IMAP, and DNS.
Main topics of Chapter 2
Principles of network applications; DNS; Web and HTTP; e-mail with SMTP and IMAP; video streaming and CDNs; and socket programming with UDP and TCP.
Network application
A program that runs on an end system and communicates with another program over a network.
Where do network applications run?
On end systems such as computers, phones, and servers rather than inside network-core routers and switches.
Why don't application developers need to write software for network-core devices?
Network-core devices do not run user applications; network applications run at end systems, allowing rapid development and deployment.
Client-server architecture
An application architecture in which an always-on server provides services to clients that contact it.
Server in the client-server model
An always-on host, usually with a permanent IP address, often located in a data center for scalability.
Client in the client-server model
A host or process that contacts and communicates with a server. Clients may connect intermittently and may have dynamic IP addresses.
Do clients communicate directly with each other in the client-server model?
Usually no. They communicate through the server.
Examples of client-server applications
HTTP, IMAP, and FTP.
Peer-to-peer (P2P) architecture
An application architecture with no always-on server in which arbitrary end systems communicate directly.
Peer
A participating end system in a P2P system that can both request service from other peers and provide service to other peers.
Self-scalability in P2P systems
As new peers join, they create additional demand but also contribute additional service capacity.
Major management difficulty of P2P systems
Peers may connect intermittently and change IP addresses, making management more complex.
Example of P2P architecture
P2P file sharing.
Client-server vs. P2P
Client-server relies on an always-on centralized server, while P2P allows end systems to communicate directly without a permanent central server.
Process
A program running within a host.
How do processes on the same host communicate?
Through inter-process communication defined by the operating system.
How do processes on different hosts communicate?
By exchanging messages across the network.
Client process
The process that initiates communication.
Server process
The process that waits to be contacted.
Socket
A software interface or "door" between an application process and the end-to-end transport protocol.
How does a process use a socket?
A process sends and receives network messages through its socket.
How many sockets are involved in communication between two processes?
Two sockets: one associated with each communicating process.
What is controlled by the application developer around a socket?
The application-side behavior of the process.
What is controlled by the operating system around a socket?
The underlying transport and networking infrastructure.
Three basic things needed to create a network application
Process addressing, application-layer message formats/protocol rules, and an appropriate transport-layer service.
Why isn't an IP address alone enough to identify a process?
Multiple processes can run on the same host, so a process is identified using both an IP address and a port number.
Process identifier
A combination of the host's IP address and the port number associated with the process.
Port number
A number used to identify a particular process or network service running on a host.
HTTP server port number shown in the slides
Port 80.
SMTP/mail server port number shown in the slides
Port 25.
Application-layer protocol
A protocol that defines how application processes communicate with each other.
What does an application-layer protocol define?
Message types, message syntax, message semantics, and rules for when and how processes send and respond to messages.
Message type
The kind of application-layer message being exchanged, such as a request or response.
Message syntax
The structure of a message, including what fields it contains and how the fields are separated.
Message semantics
The meaning of the information contained in each message field.
Protocol rules
Rules specifying when and how processes send messages and respond to received messages.
Open protocol
A protocol whose specification is publicly available, usually through an RFC, allowing interoperability.
Examples of open protocols
HTTP and SMTP.
RFC
Request for Comments. Documents that publicly define Internet standards and protocols.
Why do open protocols support interoperability?
Different developers and systems can access the same protocol specification and implement compatible software.
Proprietary protocol
A protocol whose design is controlled by a particular organization rather than being openly standardized.
Examples of proprietary protocols listed in the slides
Skype and Zoom.
Four major transport-service requirements for applications
Data integrity, timing, throughput, and security.
Data integrity requirement
The application's need for reliable delivery of data without loss.
Which applications commonly require fully reliable data transfer?
File transfer and Web transactions are examples.
Which applications may tolerate some data loss?
Audio and other real-time multimedia applications may tolerate some loss.
Timing requirement
The application's need for low delay in order to function effectively.
Which applications are especially delay-sensitive?
Internet telephony and interactive games.
Throughput requirement
The application's need for a certain rate of data delivery.
Which applications may require minimum throughput?
Multimedia applications such as audio and video.
Elastic application
An application that can make use of whatever throughput the network provides rather than requiring a strict minimum.
Examples of elastic applications
File transfer, e-mail, and Web documents.
Security as a transport-service requirement
Applications may need services such as encryption and data integrity protection.
File transfer transport requirements
No data loss, elastic throughput, and generally not time-sensitive.
E-mail transport requirements
No data loss, elastic throughput, and generally not time-sensitive.
Web document transport requirements
No data loss, elastic throughput, and generally not time-sensitive.
Real-time audio/video transport requirements
Loss-tolerant, requires a minimum throughput, and is highly time-sensitive.
Streaming audio/video transport requirements
Loss-tolerant, requires multimedia-level throughput, and is time-sensitive on the order of seconds.
Interactive game transport requirements
Loss-tolerant, requires some throughput, and is highly delay-sensitive.
Text messaging transport requirements
No data loss, elastic throughput, with mixed sensitivity to delay.
TCP service
TCP provides reliable, connection-oriented transport between sending and receiving processes.
TCP reliability
TCP reliably transfers data between sending and receiving processes.
TCP flow control
TCP prevents a sender from overwhelming the receiving process.
TCP congestion control
TCP throttles the sender when the network becomes overloaded.
TCP connection-oriented service
TCP requires a connection setup between client and server processes before normal data transfer.
What does basic TCP not guarantee according to the slides?
Timing, minimum throughput, and security.
UDP service
UDP provides unreliable data transfer between sending and receiving processes.
Does UDP require connection setup?
No. UDP is connectionless.
What does UDP not provide?
Reliability, flow control, congestion control, timing guarantees, throughput guarantees, security, or connection setup.
TCP vs. UDP
TCP provides reliable, connection-oriented byte delivery with flow and congestion control; UDP provides connectionless, unreliable datagram delivery with fewer built-in services.
FTP
An application-layer protocol used for file transfer/download; it uses TCP in the slides.
SMTP
An application-layer protocol used for e-mail transfer; it uses TCP.
HTTP
An application-layer protocol used for Web documents; it uses TCP in the slides.
SIP
Session Initiation Protocol, listed as a protocol used for Internet telephony.
RTP
Real-time Transport Protocol, listed as a protocol used for Internet telephony.
DASH
Dynamic Adaptive Streaming over HTTP, used for adaptive video streaming.
DNS
Domain Name System. A distributed hierarchical database and application-layer protocol used primarily to translate hostnames and IP addresses.
Why is DNS needed?
Humans prefer meaningful hostnames, while Internet devices use IP addresses to address datagrams, so DNS maps between the two.
DNS as a distributed database
DNS information is stored across a hierarchy of many name servers instead of one centralized server.
Why is DNS considered an application-layer protocol?
Hosts and DNS servers exchange application-layer messages to resolve names, even though DNS performs a core Internet function.
Main DNS services
Hostname-to-IP translation, host aliasing, mail server aliasing, and load distribution.
Hostname-to-IP-address translation
DNS maps a human-readable hostname to its corresponding IP address.
Host aliasing
DNS allows an easier alias hostname to map to a canonical hostname.
Canonical hostname
The official or true hostname associated with an alias.
Mail server aliasing
DNS can map mail-related names to the appropriate mail server.
DNS load distribution
Multiple IP addresses can correspond to the same hostname, allowing requests to be distributed among replicated servers.
Why not centralize DNS?
A centralized DNS would create a single point of failure, enormous traffic volume, long distances to the database, and difficult maintenance.
Why doesn't centralized DNS scale?
The global volume and geographic distribution of DNS requests and records are too large for one centralized database.
General DNS hierarchy
Root DNS servers → Top-Level Domain (TLD) DNS servers → authoritative DNS servers.
Root DNS server
A high-level DNS server used as a contact of last resort when a name server cannot resolve a requested name.
What organization manages the root DNS domain?
ICANN, the Internet Corporation for Assigned Names and Numbers.
How many logical root name servers are listed in the slides?
13 logical root name servers, each replicated many times worldwide.
DNSSEC
A DNS security extension providing authentication and message integrity.
TLD server
Top-Level Domain server responsible for domains such as .com, .org, .net, .edu, and country-code domains.
Examples of country-code TLDs
.cn, .uk, .fr, .ca, and .jp.
Authoritative DNS server
A DNS server that provides authoritative hostname-to-IP mappings for hosts belonging to an organization.
Who can maintain an authoritative DNS server?
The organization itself or a service provider.
Local DNS server
The DNS server that a host normally sends its DNS query to first.