Podcast
Questions and Answers
In the context of network applications, which task is considered a core element of development?
In the context of network applications, which task is considered a core element of development?
- Designing network topologies for optimal data flow.
- Managing network security to prevent unauthorized access.
- Configuring network hardware to support various protocols.
- Writing programs that run on end systems and communicate over the network. (correct)
In a client-server architecture, what is a key characteristic of the server?
In a client-server architecture, what is a key characteristic of the server?
- It initiates communication with clients.
- It is an 'always-on' host with a permanent IP address. (correct)
- It has a dynamic IP address that changes frequently.
- It communicates directly with other servers to balance the network load.
What is a defining feature of the peer-to-peer (P2P) architecture?
What is a defining feature of the peer-to-peer (P2P) architecture?
- Exclusive use of permanent IP addresses for all participating nodes.
- Direct communication and resource sharing between end systems. (correct)
- Guaranteed high availability of services due to dedicated server infrastructure.
- Reliance on a central server for coordination and resource sharing.
What role does the 'socket' play in network communication?
What role does the 'socket' play in network communication?
Why is it insufficient to only have the IP address of a host to identify a process for receiving messages?
Why is it insufficient to only have the IP address of a host to identify a process for receiving messages?
Which of the following is included in the identifier for a process to receive messages over a network?
Which of the following is included in the identifier for a process to receive messages over a network?
An application requires 100% reliable data transfer. Which transport service characteristic is most important for this application?
An application requires 100% reliable data transfer. Which transport service characteristic is most important for this application?
Which of the following applications would most benefit from a transport protocol that minimizes delay?
Which of the following applications would most benefit from a transport protocol that minimizes delay?
Which Internet transport protocol provides reliable, connection-oriented service?
Which Internet transport protocol provides reliable, connection-oriented service?
What is a key reason for using UDP over TCP in certain applications?
What is a key reason for using UDP over TCP in certain applications?
Which of the following is an example of an application-layer protocol used for file transfer?
Which of the following is an example of an application-layer protocol used for file transfer?
Which protocol is commonly used by web browsers to access web pages?
Which protocol is commonly used by web browsers to access web pages?
In the context of HTTP, what constitutes an 'object'?
In the context of HTTP, what constitutes an 'object'?
What does it mean for HTTP to be a 'stateless' protocol?
What does it mean for HTTP to be a 'stateless' protocol?
What happens after a TCP connection closes in non-persistent HTTP?
What happens after a TCP connection closes in non-persistent HTTP?
How does persistent HTTP improve efficiency compared to non-persistent HTTP?
How does persistent HTTP improve efficiency compared to non-persistent HTTP?
What is the primary goal of web caches (proxy servers)?
What is the primary goal of web caches (proxy servers)?
What is a key characteristic of the Simple Mail Transfer Protocol (SMTP)?
What is a key characteristic of the Simple Mail Transfer Protocol (SMTP)?
Which protocol is used for retrieving email from a mail server?
Which protocol is used for retrieving email from a mail server?
What is the purpose of the Domain Name System (DNS)?
What is the purpose of the Domain Name System (DNS)?
Which of the following is a function of DNS?
Which of the following is a function of DNS?
Why is the DNS database designed as a distributed, hierarchical system?
Why is the DNS database designed as a distributed, hierarchical system?
What is the role of a recursive query in DNS resolution?
What is the role of a recursive query in DNS resolution?
What is 'DNS poisoning'?
What is 'DNS poisoning'?
What is the purpose of a 'tracker' in BitTorrent?
What is the purpose of a 'tracker' in BitTorrent?
What is 'churn' in the context of BitTorrent?
What is 'churn' in the context of BitTorrent?
How does the 'tit-for-tat' strategy function in BitTorrent?
How does the 'tit-for-tat' strategy function in BitTorrent?
In video streaming, what is the role of the 'manifest file' in DASH?
In video streaming, what is the role of the 'manifest file' in DASH?
What is the primary advantage of using a Content Distribution Network (CDN) for video streaming?
What is the primary advantage of using a Content Distribution Network (CDN) for video streaming?
What is the purpose of using sockets?
What is the purpose of using sockets?
What does UDP provide?
What does UDP provide?
When does a transport layer create a new socket?
When does a transport layer create a new socket?
In the client server model, serveral functions must occur. Put the following functions in the correct order: 1. Server must have created socket, 2. Client contacts server, 3. Server process must first be running
In the client server model, serveral functions must occur. Put the following functions in the correct order: 1. Server must have created socket, 2. Client contacts server, 3. Server process must first be running
What is the purpose of identifying the proper socket when sending to a specific process?
What is the purpose of identifying the proper socket when sending to a specific process?
How can new peers enter a peer-to-peer system?
How can new peers enter a peer-to-peer system?
What best describes DNS?
What best describes DNS?
What are two reasons to not centralize DNS?
What are two reasons to not centralize DNS?
Is TCP a reliable transport service?
Is TCP a reliable transport service?
Which of the following is NOT a phase of transfer?
Which of the following is NOT a phase of transfer?
What are name servers officially?
What are name servers officially?
What is important for the server-to-client bandwidth?
What is important for the server-to-client bandwidth?
What is a commonality between TCP and UDP sockets?
What is a commonality between TCP and UDP sockets?
How does multi-media affect video?
How does multi-media affect video?
Are applications automatically given specific network requirements?
Are applications automatically given specific network requirements?
In terms of requesting chunks, where does Alice request them from in a peer-to-peer system?
In terms of requesting chunks, where does Alice request them from in a peer-to-peer system?
Flashcards
Network application development
Network application development
Writing programs that run on different end systems and communicate with each other over the network.
Application Architecture
Application Architecture
The way network applications are structured, either client-server or peer-to-peer.
Client-server
Client-server
Architecture where clients contact and communicate with an always-on server
Peer-to-peer (P2P)
Peer-to-peer (P2P)
Signup and view all the flashcards
Process in Networking
Process in Networking
Signup and view all the flashcards
Client Process
Client Process
Signup and view all the flashcards
Server Process
Server Process
Signup and view all the flashcards
Socket
Socket
Signup and view all the flashcards
Process Identifier
Process Identifier
Signup and view all the flashcards
Identifier (Addressing Processes)
Identifier (Addressing Processes)
Signup and view all the flashcards
Data Integrity
Data Integrity
Signup and view all the flashcards
Timing (Transport Service)
Timing (Transport Service)
Signup and view all the flashcards
Throughput
Throughput
Signup and view all the flashcards
Security (Transport)
Security (Transport)
Signup and view all the flashcards
TCP Service
TCP Service
Signup and view all the flashcards
UDP Service
UDP Service
Signup and view all the flashcards
HTTP
HTTP
Signup and view all the flashcards
Web Page
Web Page
Signup and view all the flashcards
Object on the Web
Object on the Web
Signup and view all the flashcards
Each Object
Each Object
Signup and view all the flashcards
HTTP and TCP
HTTP and TCP
Signup and view all the flashcards
HTTP: Stateless
HTTP: Stateless
Signup and view all the flashcards
Persistent HTTP
Persistent HTTP
Signup and view all the flashcards
Persistent HTTP Behavior
Persistent HTTP Behavior
Signup and view all the flashcards
browser requests
browser requests
Signup and view all the flashcards
Web cache
Web cache
Signup and view all the flashcards
Email SMTP
Email SMTP
Signup and view all the flashcards
mail access
mail access
Signup and view all the flashcards
DNS
DNS
Signup and view all the flashcards
Main DNS Service
Main DNS Service
Signup and view all the flashcards
Host aliasing
Host aliasing
Signup and view all the flashcards
Load Distribution on DNS
Load Distribution on DNS
Signup and view all the flashcards
Root name server
Root name server
Signup and view all the flashcards
DNS
DNS
Signup and view all the flashcards
DDoS attacks
DDoS attacks
Signup and view all the flashcards
P2P architecture
P2P architecture
Signup and view all the flashcards
P2P file sharing
P2P file sharing
Signup and view all the flashcards
tracker
tracker
Signup and view all the flashcards
peer joining
peer joining
Signup and view all the flashcards
Study Notes
- Chapter 2 is about the Application Layer
- The goal includes conceptual and implementational aspects of the application layer, transport-layer service models, and client/server/peer-to-peer paradigms.
Core of Network Application Development
- It involves writing programs on different end systems to communicate with each other over networks
Example in Web Applications
- Web apps use 2 distinct programs that communicate, browser programs on user hosts, and web server programs on web server hosts.
NW Application Examples
- Examples include e-mail, the web, instant messaging, remote login, P2P file sharing, and multi-user network games.
Application Programs
- These run-in end systems (hosts), communicate over a network, and exchange messages to implement applications like e-mail, the web, P2P file sharing and instant messaging.
- No software is required for network-core devices
Network-Core devices
- These don't run user applications
Application-Layer Protocols
- These protocols define messages exchanged by apps and actions that are taken
- Communication services are provided by lower-layer protocols like TCP and UDP
Network Applications
- Network applications follow the client-server or peer-to-peer (P2P) architecture
Server
- An always-on host, has a permanent IP address and is often in data centers for scaling.
Clients
- Clients contact and communicate with the server intermittently, and may have dynamic IP addresses
- Clients do not communicate directly with each other
- Examples include HTTP, IMAP, and FTP
Peer-to-peer architecture
- This architecture has no always-on server
- Arbitrary end systems communicate directly
- Peers can request a service from other peers and provide the service in return
- New peers offer service and scalability
- Peers are intermittently connected and change IP addresses
- Management is complex
- P2p filesharing is an example
Server Architecture
- Servers are always-on hosts with permanent IP addresses
- Provides requested services to clients, such as web pages or email
Client Architecture
- Clients initiate contact with the server
- Clients may have dynamic IP Addresses
- Clients don't communicate directly with each other
Client/Server Processes
- Client processes initiate the communication
- Server processes wait to be contacted
- Browser processes initialize contact with a Web server process on the Web
Processes
- This is a program that is running within a host
- Communicate by exchanging messages
Socket
- Serves as the interface between the process and the computer network
- Sockets are also known as Service Access Points (SAP)
- Messaging process and the transport are key
API
- Sockets can also be referred to as Application Programming Interfaces through port-based transport protocols
Process Receiving Messages
- Needs an identifier
- Every host has an unique 32-bit IP address
- Multiple processes can run on the same host
- Identifier includes both IP addresses and host associated port numbers
Example Port Numbers
- Web-HTTP protocol uses an identifier port number of 80
- Mail-SMTP protocol uses an identifier port number of 25
- HTTP messages to google.com connects to IP address (216.58.216.164) on port number 80
Application Transport Needs
Data Integrity
- Some applications (file transfer, web transactions) require 100% reliability
- Some applications (audio) tolerate loss
Timing
- Some applications (Internet telephony, interactive games) require low delay to be "effective"
Throughput
- Some apps (multimedia) require minimum bandwidth to be "effective"
- Other apps ("elastic apps") make use of whatever throughput they get
Security
- Requires security encryption, data integrity, etc
Transport Services of Common Apps
File transfer
- File transfer requires no loss and elastic throughputs and timing isn't an issue
- Email also requires no loss and elastic throughput and timing isn't an issue
Web documents
- Timing isn't an issue, but there's no loss, and it uses elastic throughput
Real time audio video
- Is loss-tolerant, the audio uses 5Kbps-1Mbps, video uses 10kbps-5Mbps, and the timing is 10's of msec
Stored audio video
- Uses the same configurations but the timing is in few secs
Interactive Games
- Needs very lossless tolerant conditions and timing is 10's of msec
TCP Service
- Functions with reliable transport between sending and receiving processes
- Has flow control such that the sender won't overwhelm the receiver
- Throttles sender when overloaded
- TCP is reliable, no timing, and is connection-oriented
UDP Service
- Works with unreliable transfer between sending and receiving
- Provides no reliability or security
- There's no flow or congestion control, no guaranteed timing throughput and no set up connections.
Application Layer Protocols
- FTP [RFC 959] uses TCP
- SMTP [RFC 5321] uses TCP
- HTTP 1.1 [RFC 7320] uses TCP
- SIP [RFC 3261] uses TCP or UDP
- Proprietary HTTP [RFC 7320], DASH uses TCP
- WOW,FPS (proprietary) uses either UDP or TCP
Web/HTTP Terminology
- Web pages consist of objects, such as HTML, JPEG and audio files
- Most web pages consist of a base HTML-file and includes several referenced objects
- Web objects are addressable by URLs
HTTP Protocol Overview
- HTTP stands for Hypertext Transfer Protocol
- Functions on The Web's application layer
- This protocol uses the client/server model
- Clients request, receive and display (using HTTP protocol) Web objects
- The server sends (using HTTP protocol) objects in response to requests
HTTP/TCP Use
- This protocol uses a TCP port to initiate and create connections
- In this case, HTTP has a server that approves TCP connections
- HTTP translates exchanged application-layer protocols
HTTP
- Is stateless
- The server maintains no information on the client
HTTP Connections
- Non Persistent: using TCP connections, at most one object sent over TCP connection and the connection closes Downloading multiple objects requires multiple connections
- Persistent: Use ongoing TCP connections, multiple objects can be sent over a single TCP connection between a client/server, and closes with the connection
Non-Persistent HTTP
- The client initiates a TCP connection and the server accepts
- Next, the client sends a request to retrieve the object
- Then the server sends the object, and closes the connection
- The server receives and displays the object
Response time, rtt
- RTT (definition): Time for a small packet to travel from client to server and back
- Formula: 2RTT + file transmission time
HTTP and RTT
- Persistent protocol is the preferred and faster
- HTTP persistent connection: allows to send multiple objects reducing the RTT to more than half
Web Cache
- The goal is to satisfy client requests without involving an origin server
- The user can configure the browser to point to a web cache
- The HTTP requests the cache
- The cache returns to the client and caches a copy from the server
- Caches act as both sides of client server relationship
Web Caching
- Can lead to the reduction of response time and overall access time
- It helps reduce traffic across institutions using the same connections
- It enables content for slow networks
- Involves user agents, mail servers, and SMTP protocol
- User agents = mail readers
- Includes composing and editing features
Mail Servers
- These contain incoming messages for users
- Also contains a "message queue" of outgoing messages
- Uses SMTP to send emails
SMTP functions
- This uses TCP to reliably transfer messages from client's to the server's port 25.
- This transfers directly, which means SMTP protocol interacts directly from the sending server to the receiving.
- This contains 3 steps: Handshaking, Transferring, and Closing.
- All messages are in ASCII
Alice Sends an Email
- Alice uses a user agent to create the email message
- The user agent relays the message toward the mailbox
- The SMTP opens a TCP connection and sends the email
- Lastly, Bob the receiver uses a user agent to see the email
Protocols
- SMTP delivers messages to a designated Mailbox
- Other applications can provide access to that location depending on the type, (HTTP, IMAP)
DNS: Domain Name System
- This maps a hostname to it's IP
- Every device on every network has one Internet Hosts, Routers:
- IP addresses use 32 bits for addressing
- The "name" of each device uses a alphanumeric naming convention
- The DNS maps between these address types
DNS: Functions
- Manages names and addresses
- is a database implemented as a hierarchy containing info regarding name servers.
- Its a set of app layers for the distributed databases allowing names and addresses to be resolved by it
Centralized DNS
- Is non scalable
- Can be a single failure point
- Traffic volume could overwhelm single server
- Can't be "close" to every client (causing significant delays)
- Maintenance: DNS would need to keep a record of every Internet host
DNS and Hierarchy
- When looking for a name and IP address, first query the root, then queries for the domain, then queries for the name
Root DNS Servers
- "Official", contact of last resort to find resource records from the names that can resolve
- There are 13 logical root name "servers"
- ICANN manages all Root domains
TLD: Top-Level Domain
- Responsible for .com, .org, .net, .edu, .aero, .jobs, .museums, and all top-level country domains, e.g.: .cn, .uk, .fr, .ca, .jp etc
- Networking solutions include networking TLD etc
Local DNS Names
- These are set by the ISP
- Also called a default name server
- It will remember names for future queries as a result.
- It can act as a form of proxy server, forwarding queries
Iterated Queries
- Contacted servers reply with the name of a server to contract
- The phrase " I don't know this name, but ask this server" is generally used
- These tend to query recursively
Reclusive Queries
- These add the burden of name resolution of the contacted name server heavy query load on higher levels of hierarchy
DNS Records
- Learns mappings
- Can be not up to date (Outdated Best Efforts)
- Update/Notify: Internet Engineering Task Force proposed a system to notify a server to update it's records
DNS message header includes
- Indentification for the query
- Flags: whether it's a query or reply
- Sections for questions, answers, authority, and information for a DNS server to use.
DNS Security
- Concerns include the security, integrity, and availability of the service as a whole.
- DDoS attacks bombard the DNS servers in an attempt to negatively impact the reliability of the service.
- Redirect attacks occur from intercepted queries and DNS poisoning.
P2P Architecture
- Arbitrary system with one server acting as the main transfer point
- Peers request services and give in return
- Peers may be intermittent and dynamic addresses
- Sharing over Bittorrent and Kankan
Bittorrent
- The protocol used to fileshare
- Distributes files in a torrent with the help of peers
Bittorrent and Torrenting
- Peers are uploading and downloading to each other, sending parts of a singular file
- A program will seek out other peers and transfer file chunks to reassemble
- These are transferred while others are transferred to a given system
- Churn causes a peer to find another resource stream
Constant Bit Rate
- CBR is a video encoding rate that is fixed
Variable Bit Rate
- VBR is an encoding rate that changes depending on spacial conditions
Video Example Qualities and Speeds
- Qualities such as DVD versus Streaming VOD determines speed and bitrate
Streaming Stored Video
- Server to Client bandwidth will vary over time on bandwidth, and video qualities.
- Network conditions can ruin a video stream experience.
Dynamic Adaptive Streaming over HTTP
- Dynamic transfers stream data along with HTTP
- Files are encoded, encoded at different bit rates.
- Then clients consult these manifests which give bandwidth and sustained rates. Clients have encoding rate points through points.
Content distribution networks
- Netflix uses CDN to stream multiple copies of a video at multiple geographical sites (stores/serves)
- These are deployed to servers that are "deep" within access networks.
- Servers are deployed to countries across the planet.
- Examples include Akamai and Limelight
CDN
- Stores copies of content at CDN nodes
- Subscribers request content and can directed to it
- Can change copy it its congested
Netflix
- Relies on Amazon cloud and its own CDN to deliver content
Socket Programming
- This builds client and server applications to communicate through sockets
- Sockets acts as doors between applications
UDP Socket Programming
- Has no defined handshakes
UDP Server
- The application viewpoint is that the transfer will be delivered by UDP
- Is not reliable
Client/Server Socket Interaction: UDP transfer
- Requires a socket connection
- Must send a destination IP to send its information
TCP
- Creates a new socket for each user/ client upon contacting it and sets up a pipe to talk on
- Sets up a viewpoint for application
Client/Server Socket Interaction: TCP transfer
- TCP connections require host ID
- Connections use code commands like: connect, send, read and close
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
This chapter explores the conceptual and implementational aspects of the application layer. Topics covered include transport-layer service models and client/server/peer-to-peer paradigms. It also covers application programs that run in end systems.