Chapter 2 - Application Layer
What does status code 404 mean?
"404 Not Found: The requested document doesn't exist on the server"
What is a stateless protocol?
"A protocol that doesn't store any state information about the client"
DNS doesn't add any additional delay. (True/False)
False.
True or False: Cookies are controversial because they can be used to track a user's activity and sell their information to third parties.
True.
What is a video?
A video is a sequence of images displayed at a constant rate, such as 24 or 30 images per second. It is digitally encoded using an array of pixels, with each pixel representing luminance and color using a certain number of bits.
What happens to a message after it arrives at the recipient's mail server?
After a message arrives at the recipient's mail server, it is deposited in the recipient's mailbox.
What is POST used for?
When POST is used, the entity body contains what the user entered into the form fields. Requests can also be made with GET including the inputted data in the requested URL.
What are the properties of the network architecture?
It is fixed and provides a specific set of services to applications
Who does communication in the operating system?
Processes not programs.
How are IP addresses used by routers?
Routers use IP addresses to identify and communicate with hosts on a network.
"What is the Application-Layer Protocol for Internet telephony and it's underlying transport Protocol?"
SIP (RFC 3261), RTP (RFC 3550), proprietary (e.g. Skype), UDP or TCP
What is a Web cache?
A Web cache, also called a proxy server, is a network entity that satisfies HTTP requests on behalf of an origin Web server. It has its own disk storage and keeps copies of recently requested objects in this storage.
What are processes?
A process can be thought of as a program that is running within an end system.
What is purpose of a socket?
The process sends messages into it and recieves messages from it.
True or False: An HTTP server is stateless in order to simplify server design and improve performance.
True.
What does an Application layer protocol define?
"An application-layer protocol defines how an application's processes, running on different end systems, pass messages to each other. It defines: The type of the messages exchanged (request/response) The syntax of the various message types The semantics of the fields (meaning of the information in fields) The rules for determining when and how a process sends messages and responds to messages"
What are the components of a URL?
"Each URL has two components: the hostname of the server that houses the object and the object's path name."
What do web pages consist of?
"Most Web pages consist of a base HTML file and several referenced objects. The HTML file references the other objects in the page with the objects' URLs."
What is HTTP?
"The HyperText Transfer Protocol (HTTP), the Web's application-layer protocol is at the heart of the Web."
Describe how HTTP works with presistent connections?
"The server leaves the TCP connection open after sending a response, subsequent requests and responses between the same client and server will be sent over the same connection. In particular an entire web page (text + objects) can be sent over a single persistent TCP connection, multiple web pages residing on the same server can be sent from the server to the same client over a single persistent TCP connection. These requests can be make back-to-back without waiting for replies to pending requests (pipelining). When the server receives back-to-back requests, it sends the objects back- to-back. If connection isn't used for a pre-decided amount of time, it will be closed."
What do we need applications-layer protocols?
"These two protocols (TCP & UDP) do not provide timing or throughput guarantees, services not provided by today's Internet transport protocols. We therefore design applications to cope, to the greatest extent possible, with this lack of guarantees."
Describe UDP.
"UDP is a no-frills, lightweight transport protocol, providing minimal services. It is connectionless, there's no handshaking. The data transfer is unreliable: there are no guarantees that the message sent will ever reach the receiving process. Furthermore messages may arrive out of order. UDP does not provide a congestion-control mechanism neither."
Contrast P2P architecture to client server architecture in terms of model, scalability and cost
"there is minimal or no reliance on dedicated servers in data centers, the application exploits direct communication between pairs of intermittently connected bots, called peers. They are end systems owned and controlled by users. [Bittorrent, Skype]. P2P applications provide self-scalability (the network load is distributed) They are also cost-effective since they don't require significant infrastructure and server bandwidth."
What are the two predominant architectural paradigms in modern network applications?
- Client Server Architecture - Peer to Peer Architecture of P2P
What does a transport-layer protocol offer to applications invoking it?
- Reliable Data Transfer - Throughput - Timing - Security
What are the two transport protocols available on the internet?
- TCP - UDP
What are the different types of resource records in the DNS and what information do they contain?
- type=CNAME: the name field is an alias name for some "canonical" (real) name, and the value field is the canonical name. - type=MX: the value field is the name of the mail server associated with the name. - type=NS: the name field is the domain (e.g., foo.com), and the value field is the hostname of the authoritative name server for that domain. - type=A: the name field is the hostname, and the value field is the IP address.
What is the challenges of the P2P architecture?
1 - Not ISP friendly (due to the asymmetric nature of residential ISPs) 2 - Security 3 - Incentives for users to participate
What other services does DNS provide in addition to translating hostnames to IP addresses?
1- Host aliasing: a host with a complicated hostname can have additional alias names, with the original one being called a canonical hostname. 2- Mail server aliasing: to make email servers' hostnames more mnemonic and allow for an email server and a web server to have the same hostname. 3- Load distribution: replicated servers can have the same hostname, with a set of IP addresses being associated with the canonical hostname. When a client makes a DNS query for a name mapped to a set of addresses, the server responds with the entire set, rotating the ordering within each reply.
What are the three classes of DNS servers and how are they organized?
1- Root DNS servers: There are 13 root DNS servers, most hosted in North America, each of which is actually a network of replicated servers for security and reliability purposes (total: 247). 2- Top-level domain (TLD) servers: responsible for top-level domains such as .com, .org, .net, .edu, and .gov, as well as all country top-level domains (e.g., .uk, .fr, .jp). 3- Authoritative DNS servers: every organization with publicly accessible hosts must provide publicly accessible DNS records that map the names of those hosts to IP addresses. An organization can choose to implement its own authoritative DNS server or pay to have the records stored in an authoritative DNS of some service provider. There are also local DNS servers hosted by ISPs, which provide local hosts with the IP addresses of one or more local DNS servers. Requests can be sent up to the root DNS servers and back down.
How does the DNS work?
1- The user machine runs the client side of the DNS application. 2- The browser extracts the hostname from the URL and passes it to the DNS client. 3- The DNS client sends a query containing the hostname to a DNS server. 4- The DNS server responds with the IP address for the hostname. 5- The browser can initiate a TCP connection using the IP address.
What control does the developer have over the transport layer?
1. The choice of the transport protocol 2. THe ability to modify a few transport-layer parameters such as maximum buffer and maximum segment sizes.
How do cookies work?
1. The server sends a cookie to the user's browser in the HTTP response message. 2. The browser stores the cookie in a file on the user's computer. 3. The next time the user visits the website, the browser sends the cookie back to the server in the HTTP request message. 4. The server can use the information in the cookie to personalize the user's experience and track their activity on the website.
What does status code 200 mean?
200 OK: request succeeded, information returned
What does status code 301 mean?
301 Moved Permanently: the object has moved, the new location is specified in the header of the response
What does status code 400 mean?
400 Bad Request: generic error code, request not understood
What does Status Code 505 mean?
505 HTTP Version Not Supported: The requested HTTP protocol version is not supported by the server
How can a Web cache reduce the response time for a client request and reduce traffic on an institution's access link to the Internet?
A Web cache can reduce the response time for a client request and reduce traffic on an institution's access link to the Internet by storing copies of recently requested objects and returning them to the client quickly instead of fetching them from the origin server each time they are requested. Through the use of Content Distribution Networks (CDNs), which are networks of geographically distributed caches installed throughout the Internet, much of the traffic can be localized.
How can a cache verify that an object is up to date?
A cache can use a conditional GET to verify that an object is up to date
What is a conditional GET? How does it work?
A conditional GET is an HTTP request message that uses the GET method and includes an If-modified-since: header line. The cache sends the conditional GET message to the server, which responds only if the object has been modified.
What does TCP offer?
A connection-oriented service Reliable data transfer
What is a cookie?
A cookie is a small file that is stored on a user's computer by a web server and contains information that the web server can later retrieve.
What is a distributed hash table (DHT) and how is it implemented?
A distributed hash table (DHT) is a simple database implemented in a peer-to-peer (P2P) network. Each peer holds a small subset of the (key, value) pairs in the database. Any peer can query the database with a particular key and the database will locate the peers that have the corresponding pair and return it to the querying peer. Any peer can also insert a new pair in the database. In a P2P file sharing application, a DHT can be used to store the chunks associated with the IP of the peer in possession of them.
What is a manifest file, and what is its role in DASH streaming?
A manifest file is a file that provides the URL for the various chunks of video that are available for streaming
What is a resource record in the DNS and what information does it contain?
A resource record (RR) in the DNS is a four-tuple that stores information in the DNS distributed database, including hostname-to-IP address mappings. The fields of a resource record are: (Name, Value, Type, TTL). The Time to Live (TTL) field specifies how long the resource record should be kept in cache before being removed. The meanings of the Name and Value fields depend on the Type field.
What are the security services provided by a transport protocol?
A transport protocol can provide an application with one or more security services. For example, in the sending host, a transport protocol can encrypt all data transmitted by the sending process, and in the receiving host, the transport-layer protocol can decrypt the data before delivering the data to the receiving process. Such a service would provide confidentiality between the two processes, even if the data is somehow observed between sending and receiving processes. A transport protocol can also provide other security services in addition to confidentiality, including data integrity and end-point authentication.
What are the throughput guarrantees that a transport-layer protocol offers?
A transport-layer protocol could provide guaranteed available throughput at some specific rate. Applications that have throughput requirements are said to be bandwidth-sensitive applications. While bandwidth-sensitive applications have specific throughput requirements, elastic applications can make use of as much, or as little, throughput as happens to be available. Electronic mail, file transfer, and Web transfers are all elastic applications.
How can a user retrieve their e-mail from a mail server using Web-based e-mail or a smartphone app?
A user can use HTTP to retrieve their e-mail from a mail server using Web-based e-mail or a smartphone app. This requires the mail server to have an HTTP interface as well as an SMTP interface.
How can a user retrieve their e-mail from a mail server using a mail client such as Microsoft Outlook?
A user can use the Internet Mail Access Protocol (IMAP) defined in RFC 3501 to retrieve their e-mail from a mail server using a mail client such as Microsoft Outlook.
What does the user agent do with the message after the user composes it?
After the user composes the message, the user agent sends it to the user's mail server, where the message is placed in the mail server's outgoing message queue.
What measures can be taken to protect against vulnerabilities in the DNS?
Although the DNS service has demonstrated itself to be surprisingly robust against attacks, there have been successful reflector attacks that can be addressed by appropriate configuration of DNS servers. To date, there has not been an attack that has successfully impeded the DNS service.
What can a user do with messages using both the HTTP and IMAP approaches?
Both the HTTP and IMAP approaches allow a user to manage folders, maintained in their mail server. They can move messages into the folders they create, delete messages, mark messages as important, and so on.
What is a connection-oriented service?
Client and server exchange transport-layer control information before the application-level messages begin to flow. This so-called handshaking procedure alerts the client and server, allowing them to prepare for an onslaught of packets. Then a TCP connection is said to exist between the sockets of the two processes. When the application finishes sending messages, it must tear down the connection.
How do clients communicate with each in a client server architecture?
Clients do not communicate directly with each other. The server has a fixed, well-known address, called an IP address that clients use to connect to him.
What is DASH?
DASH (Dynamic Adaptive Streaming over HTTP) is a streaming multimedia protocol.
What is DELETE used for?
DELETE allows a user or application to delete an object on a web server.
What is DNS caching and how does it improve performance?
DNS caching is a technique used in DNS to improve delay performance and reduce the number of DNS messages being sent around the Internet. When a DNS receives a DNS reply in a query chain, it can cache the mapping in its local memory. This allows the DNS to quickly provide the mapping to future requests without having to send additional queries.
What type of machines are DNS servers and what software do they run?
DNS servers are often UNIX machines running the Berkeley Internet Name Domain (BIND) software.
"What is the Application-Layer Protocol for File transfer and it's underlying transport Protocol?"
FTP (RFC 959) TCP
A DNS can only be iterative or recursive. (True/False)
False. Any DNS can be iterative or recursive, or both.
How does the server divide and encode video for DASH streaming?
For DASH streaming, the server divides the video into multiple chunks, and each chunk is encoded at multiple different rates. These different rate encodings are stored in different files, and the files are replicated in various CDN nodes.
Describe how HTTP operates in non-presistent connections?
For the page and each object it contains, a TCP connection must be opened (handshake request, handshake answer), we therefore observe an addition RTT, and for each object we will have a request followed by the reply This model can be expensive on the server side: a new connection needs to be established for each requested object, for each connection a TCP buffer must be allocated along some memory to store TCP variables.
What is the most salient characteristic of video from a networking perspective?
From a networking perspective, the most salient characteristic of video is its high bit rate.
"What is the Application-Layer Protocol for the Web and it's underlying transport Protocol?"
HTTP (RFC 2616), TCP
"What is the Application-Layer Protocol for streaming media and it's underlying transport Protocol?"
HTTP (e.g. Youtube), TCP
What is the HTTP message format?
HTTP messages consist of ordinary ASCII text with a request or status line, followed by header lines, and possibly a message body. The request line includes a method field (e.g. GET, POST, HEAD, PUT, DELETE), a URL field, and an HTTP version field. The majority of HTTP requests use the GET method to request an object.
Why is it not realistic to have one single global DNS server?
Having one single global DNS server would be a single point of failure, have an impossible traffic volume, be geographically too distant from some querying clients, and have impossible maintenance.
How are hosts identified on the internet? Why?
Hosts are identified by their hostname (e.g., cnn.com, www.yahoo.com) and their IP address. Hostnames are mnemonic and therefore used by humans for easier memorization and identification.
Who usually purchases and installs Web caches?
ISPs usually purchase and install Web caches.
What does Reliable data transfer entail?
If a protocol provides guarantees that the data sent is delivered completely and correctly, it is said to provide reliable data transfer. The sending process can just pass its data into the socket and know with complete confidence that the data will arrive without errors at the receiving process.
What happens if the sender's mail server cannot deliver the message to the recipient's mail server?
If the sender's mail server cannot deliver the message to the recipient's mail server, it holds the message in a message queue and attempts to transfer the message later. If there is no success after several days, the server removes the message and notifies the sender with an e-mail message.
How does BitTorrent work?
In BitTorrent, a collection of all the peers participating in the distribution of a particular file is called a torrent. Peers in a torrent download equal-size chunks of the file from one another, with a typical chunk size of 256 KBytes. At the beginning, a peer has no chunks but accumulates more and more chunks over time. While a peer downloads chunks, it also uploads chunks to other peers. Once a peer has acquired the entire file, it may leave the torrent or remain in it and continue to upload chunks to other peers (becoming a seeder). Any peer can leave the torrent at any time and later rejoin it at anytime as well.
How does P2P file distribution work and what is the most popular P2P file distribution protocol?
In P2P file distribution, each peer can redistribute any portion of the file it has received to any other peers, thereby assisting the server in the distribution process. As of 2012, the most popular P2P file distribution protocol is BitTorrent, developed by Bram Cohen.
What is a recursive query in the DNS?
In a recursive query, the user sends a request to its nearest DNS, which will ask a higher-tier server, which will ask a lower-order server, and so on until it reaches a DNS that can reply. The reply will follow the inverse path that the request had.
What is an iterative query in the DNS?
In an iterative query, the same machine sends requests and receives replies.
How is HTTP implemented?
It is implemented in two programs: a client program and a server program. The two programs talk to each other by exchanging HTTP messages. A Web page (or document) consists of objects. An object is simply a file (HTML file, jpeg image...) that is addressable by a single URL.
What is a socket?
It is the software interface between the application layer and the trasnport layer within a host. It is also known as the Application Programming Interface (API)
What are local DNS servers and how do they work?
Local DNS servers, which are hosted by ISPs, are central to the DNS architecture. When a host connects to one of these servers, the local DNS server provides the host with the IP addresses of one or more of its local DNS servers. Requests can be sent up to the root DNS servers and back down the hierarchy.
How can we secure TCP?
Neither TCP nor UDP provide encryption. Therefore the Internet community has developed an enhancement for TCP called Secure Sockets Layer (SSL).
How can the challenge of streaming content to hundreds of thousands of simultaneous users be addressed (Bad option)?
One option to address this challenge is to use a single, large "mega-server" to store and serve the content, but this solution has several drawbacks, including being a single point of failure, causing network congestion, having a long path to distant clients, and requiring multiple copies of the video to be sent over the outgoing link. This solution does not scale well.
What is PUT used for?
PUT is often used in conjunction with web publishing tools, to allow users to upload an object to a specific path on the web servers.
What is peer churn in a P2P system?
Peer churn refers to the fact that peers can come and go from a P2P system without warning.
How do processes communicate?
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 is the Application-Layer Protocol for E-mail and it's underlying transport Protocol?"
SMTP (RFC-5321), Underlying is TCP
What is SMTP and what is its function?
SMTP (Simple Mail Transfer Protocol) is the principal application-layer protocol for Internet electronic mail. It uses the reliable data transfer service of TCP to transfer mail from the sender's mail server to the recipient's mail server. As with most application-layer protocols, SMTP has two sides. A client side and a server side.
How does a mail server use SMTP?
SMTP runs on every mail server. When a mail server sends mail to other mail servers, it acts as an SMTP client. When a mail server receives mail from other mail servers, it acts as an SMTP server.
Describe Hybrid architectures
Some applications have hybrid architectures, such as for many instant messaging applications: a server keeps track of the IP addresses of users, but user-to-user messages are sent directly between users.
What is a non-presistant connection?
Sometimes servers communicate for an extended amount of time, the app developer must decide how the connections will be handled. If each request/response pair is sent over a seperate TCP connection then it is non-presistent. It is the default for HTTP.
What is a presistent connection?
Sometimes servers communicate for an extended amount of time, the app developer must decide how the connections will be handled. If there is a single TCP connection that all objects are sent over then it is presistent.
What does an HTTP response message look like?
Status line: protocol version, status code, corresponding status message Six header lines: - The connection will be closed after sending the message - date and time when the response was created (when the server retrieves the object from the file system, insert object in the message, sends the response message) - Type of the server / software - Last modified: useful for object caching - Content-Length: number of bytes in the object - Content-Type
What are the 3 elements of streaming videos?
Streaming video = Encoding + DASH + playout buffering
What is congestion control mechanism in TCP?
TCP also includes a congestion-control mechanism, a service for the general welfare of the Internet rather than for the direct benefit of the communicating processes. It throttles a sending process when the network is congested between sender and receiver.
"What is the Application-Layer Protocol for a Remote Access terminal and it's underlying transport Protocol?"
Telnet (RFC 854), TCP
What is the "intelligence" at the client responsible for in DASH streaming?
The "intelligence" at the client is responsible for determining when to request a chunk so that buffer starvation or overflow does not occur, what encoding rate to request (choosing higher quality when more bandwidth is available), and where to request the chunk (choosing a URL server that is "close" to the client or has high available bandwidth).
What is the Internet's domain name system (DNS)?
The DNS is a system that translates hostnames to IP addresses, allowing humans to use easily memorable hostnames instead of hard-to-remember IP addresses.
What is DNS, what does it do and how is it implemented?
The DNS is an application-layer protocol that allows hosts to query a distributed database of hostnames and IP addresses. The DNS is implemented as a distributed database in a hierarchy of DNS servers.
What is the DNS and how is it used?
The DNS is an application-layer protocol that runs over UDP and uses port 53. DNS is often employed by other application-layer protocols, such as HTTP and FTP, to translate user-supplied hostnames to IP addresses.
What does the Web cache do if it does not have a copy of the requested object stored locally?
The Web cache opens a TCP connection to the origin server and requests the object. The origin server responds with the requested object.
What does the Web cache do after it receives the requested object from the origin server?
The Web cache stores a copy of the object in its storage and sends a copy to the browser within an HTTP response message over the existing TCP connection.
What does the Web cache do if it has a copy of the requested object stored locally?
The Web cache will return the object to the browser within an HTTP response message.
What information is contained in the answer section of a DNS message?
The answer section of a DNS message contains resource records for the originally queried name, including the type, value, and TTL (Time to Live).
Describe the control the application developer has over the application and transport layers
The application developer has control of everything on the application-layer of the socket, but he has little control of the transport layer of the socket.
What information is contained in the authority and additional sections of a DNS message?
The authority section of a DNS message contains records for other authoritative servers. The additional section includes other helpful records such as canonical hostnames.
What does the browser do when it wants to request an object from a Web cache?
The browser establishes a TCP connection to the Web cache and sends an HTTP request for the object.
How does the client request and choose video chunks for DASH streaming?
The client periodically estimates the server-to-client bandwidth, and then consults the manifest file to request one chunk at a time. It chooses the maximum coding rate that is sustainable given the current bandwidth, and can choose different coding rates at different points in time (depending on the available bandwidth at that time) and from different servers.
What is the purpose of the client and server sides of SMTP?
The client side of SMTP is responsible for executing on the sender's mail server and transferring mail to the recipient's mail server. The server side of SMTP is responsible for executing on the recipient's mail server and receiving mail from the sender's mail server. Both the client and server sides of SMTP operate using an outgoing message queue.
What is GET used for?
The entity body (empty with GET) is used by the POST method, for example for filling out forms. The user is still requesting a Web page but the specific contents of the page depend on what the user entered into the form fields.
How can the challenge of streaming content to hundreds of thousands of simultaneous users be addressed (Good option)?
The good option is to store and serve multiple copies of the videos at multiple geographically distributed sites, also known as a Content Delivery Network (CDN). This allows the content to be served from locations that are close to the users, reducing the network distance and improving performance. There are two main approaches to deploying CDN servers: "enter deep," in which the servers are pushed deep into many access networks, and "bring home," in which a smaller number of larger clusters are located in Points of Presence (POPs) near (but not within) access networks. Both of these approaches have been used by different CDN providers, such as Akamai and Limelight.
What information is contained in the header section of a DNS message?
The header section of a DNS message includes a 16-bit number identifying the query, which is copied into the reply so that the client can match received replies with sent queries. It also includes flags for query/reply, authoritative, recursion, and recursion-available.
What are the pairs of processes in a network application?
The process that initiates the communication as the client [web browser] The process that waits to be contacted to begin the session as the server [web server] This labels stand even for P2P applications in the context of a communication session.
What is the purpose of video compression?
The purpose of video compression is to trade off image quality for a lower bit rate, allowing for the efficient storage and transmission of video. Today's compression algorithms can compress video to a wide range of bit rates, with higher bit rates resulting in better image quality and a better overall viewing experience.
What information is contained in the question section of a DNS message?
The question section of a DNS message contains information about the query, including the name field with the name being queried and the type field.
Addressing Processes: What does the processes need to communicate with each other?
The recieving process needs to have an address. 1. The address of the host. In the Internet, the host is identified by its IP Address, a 32- bit (or 64) quantity that identifies the host uniquely. 2. An identifier that specifies the receiving process in the destination host: the destination port number. Popular applications have been assigned specific port numbers (web server -> 80)
What are the three major components of email?
The three major components of email are user agents, mail servers, and the Simple Mail Transfer Protocol (SMTP).
How is the time to distribute a file in a P2P system calculated?
The time to distribute a file in a P2P system is calculated as follows: at the beginning of the distribution, only the server has the file and it must send all the bits at least once, requiring a time of F/u_s. The peer with the lowest download rate will take at least F/d_min seconds to obtain all F bits of the file. The total upload capacity of the system is equal to the summation of the upload rates of the server and all the peers, and the system must upload F bits to N peers, requiring the delivery of a total of NF bits. Therefore, the time to distribute the file in a P2P system is given by D_P2P >= max(F/u_s, F/d_min, NF/(u_s+sum{u_i})).
How is the time to distribute a file in a client-server system calculated?
The time to distribute a file in a client-server system is calculated as follows: the server must transmit one copy of the file to N peers, requiring the transmission of NF bits. The minimum time to distribute the file is at least NF/u_s, where u_s is the rate at which the server can transmit data. The link with the slowest download rate (d_min) will take at least F/d_min seconds to obtain all F bits of the file. Therefore, the time to distribute the file in a client-server system is given by D_c.s > max(NF/u_s, F/d_min).
What is the typical range for the bit rate of compressed Internet video?
The typical range for the bit rate of compressed Internet video is 100 kbps for low-quality video to over 4 Mbps for streaming high-definition movies. The typical bit rate for 4K streaming is more than 10 Mbps.
What are some vulnerabilities in the DNS and how can they be addressed?
There are several vulnerabilities in the DNS that can be exploited, including DDoS bandwidth-flooding attacks, man-in-the-middle (MITM) attacks, and attacks that use the DNS infrastructure to launch a DDoS attack against a targeted host.
What are the different types of DNS messages and what information do they contain?
There are two types of DNS messages: queries and replies. Both have the same format, consisting of: - a header section - a question section - an answer section - an authority section - an additional section.
How do we estimate the amount of time it takes for a client to recieve the base HTML file?
To estimate the amount of time that elapses when a client requests the base HTML file until the entire file is received by the client we define the round-trip time (RTT) which is the time it takes for a small packet to travel from client to server and then back to the client.
How to maintain the DHT overlay in the presence of peer churn?
To maintain the DHT overlay in the presence of peer churn, each peer must keep track of its predecessor and successor and periodically verify that its two successors are alive. If a peer abruptly leaves, its successor and predecessor must update their information. When a new peer joins, it will ask one of the existing peers for the identifier and IP address of its predecessor and successor, and then join the DHT by making its predecessor's successor its own successor and by updating its predecessor's successor information.
Can a Web cache act as both a server and a client at the same time? (True/False)
True. A Web cache establishes a TCP connection with a browser, sends an HTTP request for an object to the Web cache, receives the object, stores a copy in its storage, and sends a copy to the browser over the existing TCP connection.
What do user agents allow users to do?
User agents allow users to read, reply to, forward, save, and compose messages. Examples of user agents for e-mail include Microsoft Outlook, Apple Mail, Web- based Gmail, the Gmail App running in a smartphone, and so on.
What does HTTP use as an underlying transport protocol?
Web Browsers implement the client side of HTTP. HTTP uses TCP as its underlying transport protocol. The server sends requested files to clients without storing any state information about the client: it is a stateless protocol.
How are records inserted into the DNS database when a new domain name is registered?
When a new domain name is registered at a registrar, the registrar verifies the uniqueness of the domain name and enters it into the DNS database in exchange for a small fee. The registrar also requires the IP addresses of the primary and secondary authoritative DNS servers to be provided. This ensures that a Type NS and a Type A record are entered into the TLD com servers for the two DNS servers.
How does a user join a torrent and download chunks in BitTorrent?
When a user joins a torrent, it registers itself with the tracker and periodically informs it that it is still in the torrent. The tracker randomly selects a subset of peers from the set of participating peers and the user establishes concurrent TCP connections with these neighboring peers. The user starts downloading the chunks that have the fewest repeated copies among the neighbors using the "rare first" technique. Every 10 seconds, the user measures the rate at which it receives bits and determines the four peers that are sending to it at the highest rate. It then reciprocates by sending chunks to these same four peers, which are called unchocked. Every 30 seconds, the user also chooses one additional neighbor and sends it chunks, which are called optimistically unchoked.
What happens when the recipient wants to access the messages in their mailbox?
When the recipient wants to access the messages in their mailbox, the mail server containing their mailbox authenticates them (with their username and password).
What are the advantages of SSL?
does everything that traditional TCP does but also provides critical process-to-process security services including encryption, data integrity and end-point authentication. It is not a third protocol, but an enhancement of TCP, the enhancement being implemented in the application layer in both the client and the server side of the application (highly optimized libraries exist). SSL has its own socket API, similar to the traditional one. Sending processes passes clear text data to the SSL socket which encrypts it.
Which of the following are components of cookie technology? a) Cookie header in HTTP response message b) Cookie header in HTTP request message c) Cookie file on the user's end-system managed by the browser d) Back-end database at the website e) All of the above
e) All of the above
What is HEAD used for?
he HEAD method is similar to GET, when a server receives it, it responds with an HTTP message but it leaves out the requested object. It is often used for debugging.
Is a single server host always capable of keeping up with requests? If not what can we do? (Client-Server)
no, often a single server host is incapable of keeping up with all the requests from clients, for this reason, a data center, housing a large number of hosts, is often used to create a powerful virtual server (via proxyin).
Describe client-server architectures?
there is an always-on host, called the server which serves requests from many other hosts, called clients: [Web Browser and Web Server]. Clients do not communicate directly with each other.
Can the communicating process rely on TCP to transfer reliably?
yes, the communicating processes can rely on TCP to deliver all data sent without error and in the proper order.
What are the timing guarantees that transport-layer protocols could offer?
"A transport-layer protocol can also provide timing guarantees. Example: guarantees that every bit the sender pumps into the socket arrives at the receiver's socket no more than 100 msec later, interesting for real-time applications such as telephony, virtual environments..."