Chapter 2: Application Layer
What are three major challenges faced by P2P apps?
1. ISP Friendly: Significant stress is put on residential ISP's which have been built for higher downstream traffic and NOT upstream traffic. Future apps need to be designed so that they are friendly to ISP's. 2. Security: challenging to secure these apps because of their highly distributed and open nature. 3. Incentives: for a successful p2p app, users need to volunteer bandwidth, storage and computation resources to the application.
What two pieces of information are needed in order to identify the receiving process?
1. address of the host and 2. an identifier that specifies the receiving process in the destination host
What are the two major paradigms used in network application architecture?
1. client-server architecture and 2. peer-to-peer architecture
What are the four different types of services that a transport-layer protocol can offer to applications invoking it?
1. reliable data transfer; 2. throughput; 3. timing; 4. security
What types of control does an application developer have on the transport-layer side?
1. the choice of transport protocol and 2. perhaps the ability to fix a few transport-layer parameters such as maximum buffer and maximum segment sizes
After the handshaking, or connecting phase, what is said to excist between the sockets of the two processes?
A TCP connection
What is a TCP connection?
A full-duplex connection, or the two processes can send messages to each other over the connection at the same time
How do the network applications, running in multiple end systems, communicate with each other?
A process is a program that is running on an end system. Processes on two different end systems communicate with each other by exchanging messages across the computer network. A sending process creates and sends messages into the network; a receiving process receives these messages and possibly responds by sending messages back.
What does a server always have in the client-server architecture?
A server always has a fixed, well-known address known as an IP address
What is an application layer protocol?
An application-layer protocol defines how an application's processes, running on different end systems, pass messages to each other
What are some applications based on P2P architectures?
BitTorrent, Skype,
How can a host keep up with a large number of client requests?
By utilizing a data center which houses a large number of hosts to create a virtual server
What is an example of a transport-layer protocol that provides an application with one or more security services?
For example, in the sending host, a transport protocol could encrypt all data transmitted by the sending process, and in the receiving host, the transport-layer protocol could decrypt the data before delivering the data to the receiving process
How is HTTP implemented?
HTTP is implemented in two programs: a client program and a server program
What is the Web's application-layer protocol?
HTTP, or HyperText Transfer Protocol
Give an example of a hybrid architecture which utilizes both P2P and client-server.
In many instant messaging apps, servers are used to track IP addresses of users, but user-to-user messages are sent directly between user hosts (without passing through intermediate servers)
In the context of HTTP, does the server (which sends requested file to clients) store any state information about the client?
No, the HTTP server maintains no information about the clients, so HTTP is a stateless protocol
How does P2P architecture function?
P2P applications exploit direct communication between pairs of sporadically connected hosts, called peers
Which network application architecture has minimal or no reliance on dedicated servers in data centers?
P2P architectures
What transport-layer protocol does HTTP use?
TCP
What is meant by TCP's "connection-oriented service?"
TCP has the client and server "connect" with one another by exchanging transport-layer control information with one another before exchanging application-level messages.
Sum up the TCP service model.
The TCP service model includes a connection-oriented services and a reliable data transfer service
What happens when a user clicks on a hyperlink in a web browser?
The browser sends HTTP request messages for the objects in the page to the web server. The Web server receives the requests and responds with HTTP response messages that contain the objects
What does it mean to offer reliable data transfer service?
The protocol guarantees that it will deliver all data sent without order and in the proper order
What services are not guaranteed by Internet Transport protocols ?
Today's Internet can often provide satisfactory service to time-sensitive app's, but it CANNOT provide any timing or throughput guarantees
What are the two transport protocols that the Internet makes available to applications?
UDP and TCP
Sum up the UDP service model.
UDP is connectionless, provides unreliable data transfer service (so data may not arrive or, if it does arrive, may be out of order)
What implements the client side and server sideof HTTP?
Web browsers implement the client side of HTTP and web servers implement the server side of HTT
Does TCP offer reliable data transfer service?
Yes
What does the receiving process need to have in order for a process running on one host to send a message to a process running on another host?
an IP address
What are application that have throughput requirements known as?
bandwidth-sensitive applications
Why is the architecture known as peer to peer?
because the peers communicate without passing through a dedicated server
in the context of a communication sessions between a pair of processes, what is the process that initiates the communication?
client
What architecture has an "always-on" host, known as the server, which services requests from many other hosts, known as clients?
client-server architecture
What type of applications, in opposition to bandwidth-sensitive applications, can make use of as much, or as little, throughput as happens to be available?
elastic applications (electronic mail, file transfer, and Web transfers)
What is an example of a transport-layer protocol which provides timing guarantees?
every bit that the sender pumps into the socket arrives at the receiver's socket no more than 100 msec later
What does a Web page consist of?
files known as objects - such as an HTML file, a JPEG image, a Java applet, or a video clip - that are addressable by a single URL
What does it mean when a transport-layer protocol can guarantee a certain amount of transmission rate?
guaranteed available throughput
What does TCP's congestion-control mechanism provide?
it will throttle a sending process (from client or server) when network is congested between sender and receiver
Do end clients directly communicate with each other in a client-server architecture?
no
Does an application developer need to write software to run on routers or link-layer switches in the network core?
no
When HTTP delivers requests/ responses over the same TCP connection it is using ______________ connection?
persistent
What is the identifier that specifies the receiving process in the destination host?
port number
If a transport-layer protocol can guarantee that the data sent by one end of the application will be delivered correctly and completely to the other application, it is said to provide_____________?
reliable data transfer
What is the most intriguing feature of P2P architecture?
self-scalability - each peer adds service capacity to the system by distributing files t other peers; cost-effectiveness
in the context of a communication sessions between a pair of processes, what is the process that waits to be contacted?
server
What is the interface between the application layer and the transport layer within an end system?
socket
What is the software interface that processes sends messages into and receives messages from?
socket
What are some examples of network applications?
text-based applications: text email, remote access to computers, file transfers, and newsgroups; the World Wide Web: web surfing, search, electronic commerce, instant messaging, P2P file sharing; voice and video applications: VoIP, video conferencing over IP, YouTube, netflix; social networking apps
What are the two components of URL's?
the hostname of the server that houses the object and the object's path name
Specifically, what do application-layer protocols define:
type of messages exchanged; syntax of the various message types (fields in the message and how they are delineated); semantics of the fields (meaning of info in the fields); and rules for determining when and how a process sends messages and responds to messages