Chapter 2: Application layer Flashcards

1
Q

How do you create a network application?

A

Write programs/software that will run on different/multiple end systems and communicate over networks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Describe the server side in a client-server architecture

A

Always-on host. Permanent and fixed IP address

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Describe the client side in a client-server architecture

A

Contact & communicate with servers. May be intermittently connected. May have dynamic IP addresses.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Do clients communicate directly with each other?

A

No!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Describe the Peer-to-Peer (P2P) architecture

A

No always-on server. End systems communicate directly. Peers are intermittently connected and change IP addresses. Have self-scalability.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Self-scalability

A

New peers bring new service capacity, as well as new service demands

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Process

A

Program running within a host / end system

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How do processes in different hosts communicate?

A

By exchanging messages

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Describe client and server processes

A

Client processes initiate communication. Server processes wait to be contacted.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is unique about the processes in P2P architectures?

A

They can be both client and server processes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What do we call the interface between the process and the computer network?

A

The socket / Application programming interface (API)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

How does a socket work (use the door analogy)?

A

The sending process (NOT the socket) pushes the message out the door.

It relies on the transport infrastructure (like TCP/IP) on the other side of the door to deliver the message to the receiving process’s socket.

Two sockets are involved in the communication: one on the sending side and one on the receiving side. Both acting as endpoints.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Why do we need sockets?

A

They provide a standardized way for processes to send and receive data over a network.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

How do we adress processes?

A

By using an identifier including both IP address and port numbers associated with the process on the host

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What transport services are available to applications?

A

Reliable data transfer, timing, throughput and security

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Transmission Control Protocol (TCP) service

A

Reliable data transfer service that is connection-oriented; has the client and server exchange transport-layer control information with each other before the application-level messages begin to flow. Provides flow and congestion control

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Flow control

A

Sender won’t overwhelm receiver

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Congestion control

A

Throttle sending process when network overloaded between sender and receiver

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

User Datagram Protocol service (UDP)

A

Unreliable data transfer service that circumvent’s TCP’s congestion control mechanisms and packet overheads

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

What does an application layer protocol define?

A

How an application’s processes, running on different end systems, communicate with each other

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

What are the 4 things that the application-layer protocol defines?

A
  1. Types of messages exchanged
  2. Message syntax
  3. Message semantics
  4. Rules for when and how processes send & respond to messages
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Message syntax

A

What fields in messages and how fields are delineated

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Message semantics

A

Meaning of information in fields

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

How do we secure TCP?

A

By implementing a Transport Layer Security (TLS) socket / API in the application layer that provides encrypted TCP connections

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

What do Web pages consist of?

A

Objects and a base HTML-file including several referenced objects, each addressable by a URL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

What is the HyperText Transfer Protocol (HTTP)?

A

The Web’s application layer protocol. Uses a client-server architecture.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

What transport protocol does HTTP use?

A

TCP (Tranmission Control Protocol)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

What does it mean that HTTP is a stateless protocol?

A

That the server maintains no information about past client requests

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Describe a non-persistent HTTP connection

A

TCP connection is opened, then closed when the TCP is certain that the client has received the response message intact. At most one object can be sent over TCP connection.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Describe a persistent HTTP connection

A

TCP connection is opened, then closed. Multiple objects can be sendt over a single TCP connection (pipelining)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

What is the response time for a non-persistent HTTP connection?

A

2RTT + file transmission time

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Round-Trip Time (RTT)

A

Time for a small packet to travel from client to server and back to the client.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Describe HTTP1.1

A

Persistent HTTP where:
Server leaves connection open after sending response
Subsequent HTTP messages sent over open connection
Client sends requests as soon as it encounters a referenced object

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

What are the two types of HTTP messages?

A

Request and response.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

What are the types of HTTP request messages:

A

POST, GET, HEAD, PUT and DELETE

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

POST method

A

Sends user input from client to server in entity body of the request message

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

GET method

A

Sends user input in URL field of request message

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

HEAD method

A

Requests headers that would be returned if specified URL is requested with a HTTP GET method

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

PUT method

A

Completely replaces file that exists at a specified URL with content in entity body of POST HTTP request message

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

DELETE method

A

Allows a user / application to delete an object on a web server

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

How do we maintain user/server state?

A

Web sites and client browsers use cookies to maintain state between transactions

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

A stateful protocol

A

Client makes two changes to X, or none at all. If the network connection / client crashes in the middle of the changes the state oriented object is locked, unless handled by protocol.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Are HTTP requests dependent or independent of each other?

A

Independent

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

What are the four components of cookie techology?

A
  1. Cookie header line in the HTTP response message
  2. Cookie header line in the next HTTP request message
  3. Cookie file kept on users host / end system, managed by user’s browser
  4. Back end database at Web site
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

How is state kept by using cookies?

A

With protocol endpoints and with cookies; HTTP messages carry state

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Web cache

A

A network entity that satisfies HTTP requests on the behalf of an origin Web server. The Web cache has its own disk storage and keeps copies of recently requested objects in this storage

47
Q

Why do we use web caching / proxy servers?

A

To satisfy client requests without involving the origin server
Reduce response time for client request and traffic on an institution’s access link to the internet

48
Q

How does a user use a Web cache?

A

By configuring their browser to point to a Web cache

49
Q

Why do we use a conditional GET?

A

To avoid sending objects if the Web cache has an up-to-date cached version

50
Q

What is the structure of the conditional GET message?

A

A request message that uses the GET method, includes an If-modified-since header line containing the date of the cached copy

51
Q

What is the goal of HTTP/2?

A

To decrease delay in multi-object HTTP requests

52
Q

What are the cons of HTTP1.1?

A

The server has FCFS scheduling to GET requests and HOL blocking may occur
Loss recovery can also stall object transmission

53
Q

What are the differences between HTTP/2 and HTTP1.1?

A

Transmission order of requested objects based on client-specified object priority
A server can push / send multiple responses for a single client request
Divides objects into frames, and schedules frames to avoid HOL blocking

54
Q

What is the goal of HTTP/3?

A

To decrease delay in multi-object HTTP requests

55
Q

What is the difference between HTTP/2 and HTTP/3?

A

Adds security: Encrypted TCP connection
Per object error- and congestion- control over UDP - avoids stalling at object transmissions due to recovery from packet loss

56
Q

What are the three major components of e-mail?

A

User agents
Mail servers
Simple Mail Transfer Protocol (SMTP)

57
Q

What is a user agent?

A

The e-mail user

58
Q

What do mail servers contain?

A

Mailbox
Message queue
SMTP protocol

59
Q

Mailbox

A

Contains, manages and maintains incoming messages for user

60
Q

Message queue

A

Outgoing mail messages

61
Q

SMTP protocol

A

Application-layer protocol for Internet electronic mail

62
Q

Describe SMTP

A

Uses persistent connections, requires message to be in 7-bit ASCII, uses CRLF to determine end of message

63
Q

Describe the RFC for e-mail

A

Uses TCP for direct email message transfer
Command/response interaction
Messages must be in 7-bit ASCII

64
Q

What are the three phases of transfer described by the RFC of E-mail?

A

Handshaking
Transfer of messages
Closure

65
Q

RFC 822

A

Defines syntax for e-mail message itself

66
Q

What are the mail access protocols?

A

SMTP, IMAP, HTTP

67
Q

Describe the Simple Mail Transfer Protocol (SMTP)

A

Delivery/storage of e-mail messages to receiver’s server

68
Q

Describe the Internet Mail Access Protocol (IMAP)

A

Provides retrieval and deletion of messages stored on server, and folders of stored messages on server

69
Q

Describe how HTTP is used as a mail access protocol

A

Provides web-based interface on top of SMTP (to send), IMAP to retrieve e-mail messages

70
Q

Whta is the Domain Name System (DNS)?

A

A distributed database implemented in hierarchy of many name / DNS servers
Application-layer protocol that allows hosts & name servers to communicate by resolving / translating addresses/names

71
Q

What services does the DNS provide?

A

Hostname to IP address translation
Host aliasing
Mail server aliasing
Load distribution among replicated Web servers

72
Q

Replicated Web servers

A

Several IP addresses correspond to one name

73
Q

Describe how DNS works

A

When you enter a domain name in your browser, a DNS query is initiated.
The query is sent to a DNS resolver
The resolver first contacts a root DNS server, which directs it to the appropriate top-level domain (TLD) server
The TLD server then directs the resolver to the authoritative DNS server for the specific domain.
The authoritative DNS server provides the IP address associated with the domain name.
The resolver returns the IP address to your browser, which can then connect to the web server hosting the website.

74
Q

Why does the DNS use a large numbers of servers?

A

It doesn’t scale

75
Q

What are the three classes of DNS servers?

A

Root DNS servers
Top-Level Domain (TLD) DNS servers
Authoritative DNS servers

76
Q

What is the role of the root DNS servers?

A

Contact-of-last resort for name servers that cannot resolve names; provide the IP addresses of the TLD servers.

77
Q

What does the Inter Corporaton for Assigned Names and Numbers (ICANN)?

A

Manages the root DNS domain

78
Q

What is the role of Top-Level Domain DNS servers?

A

Provide the IP addresses for authoritative DNS servers

79
Q

What is the role of Authoritative DNS servers?

A

Organization’s own DNS server(s) that provide authoritative hostname to IP mappings for the organization’s named hosts

80
Q

What is the role of a local DNS server?

A

Has a local cache of recent name-to-address translations paris; acts as a proxy server that forwards query into hierarchy.

81
Q

Iterated query in DNS name resolution

A

Contacted server replies with name of server to contact.

82
Q

Recursive query in DNS name resolution

A

Puts burden of name resolution of contacted name server.

83
Q

How does DNS caching / updating of DNS records work?

A

Once a name server learns a mapping, it caches it. This entry will timeout after some time.
Cached entries may be out-of-date, therefore there are update notification mechanisms

84
Q

What are resource records (RR)?

A

Distributed database storing resource records are entries in the DNS database that contain information about domain names

85
Q

What’s the format of an RR?

A

(name, value, type, TTL)

86
Q

TTL (Time To Live)

A

Time to live of the resource record; determines when a resource should be removed from a cache

87
Q

Type=A

A

When the DNS server is authoritative for the particular hostname

88
Q

Type=NS

A

When the DNS server isn’t authoritative for the hostname

89
Q

Type=CNAME

A

When creating an alias for another domain name

90
Q

Type=MX

A

When creating an alias for a mail server name

91
Q

What are the two types of DNS protocol messages?

A

DNS query and reply messages

92
Q

What are the vulnerabilites of the DNS?

A

DDoS attacks that either bombard root servers or TLD servers with traffic, redirecting attacks

93
Q

How are DNS’s protected?

A

By using DNSSEC

94
Q

Describe the peer-to-peer architecture

A

No always-on server
End systems that directly communicate
Self scalability
Peers are intermittently connected and change IP addresses

95
Q

Self scalability

A

New peers bring new service capacity, and new service demands

96
Q

Why do we use a distributed, application-level infrastructure for video streaming and CDNs?

A

For scalability and heterogeneity

97
Q

Video

A

Sequence of images displayed at a constant rate

98
Q

Digital image

A

Array of pixels. Each pixel represented by bits.

99
Q

Spatial coding

A

Coding within an image to decrease the # of bits used to encode an image

100
Q

Temporal coding

A

Coding between images to decrease the # bits used to encode an image

101
Q

Constant Bit Rate (CBR)

A

Video encoding rate fixed

102
Q

Variable Bit Rate (VBR)

A

Video encoding rate changes as amount of spatial, temporal coding changes

103
Q

How does HTTP streaming of stored video work?

A

A video is stored on an HTTP server with a specific URL.
When a user requests the video, the client establishes a TCP connection and sends an HTTP GET request.
The server responds by sending the video file as quickly as possible.
The client collects the data in a buffer, and once enough data is buffered, playback begins.
The streaming application continuously grabs, decompresses, and displays video frames from the buffer, allowing the video to play while still receiving data.

104
Q

What are the main challenges with HTTP streaming?

A

Server-to-client bandwidth varies over time
Packet loss and delay due to congestion delays playout / decreases video quality
Continuous playout constraint
Low client interactivity
Video packets may be lost

105
Q

How does Dynamic, Adaptive Streaming over HTTP (DASH) work?

A

A video is encoded into multiple versions with different bit rates and quality levels. The client dynamically requests short video segments based on available bandwidth. The client requests these segments one at a time using HTTP GET messages.

106
Q

Manifest file

A

Provides URLs for different chunks of a video file

107
Q

What are Content Distribution Networks (CDNs)?

A

Geographically distributed sites for storing / serving multiple copies of videos

108
Q

What is the enter deep strategy with CDN servers?

A

Pushing CDNs deep into many access networks

109
Q

What is the bring home strategy with CDNs?

A

Smaller numbers of larger clusters in PoPs near access networks (ISPs)

110
Q

What does a CDN do?

A

Manages servers in multiple geographically distributed locations, stores copies of the videos (and other types of Web content, including documents, images, and audio) in its servers, and attempts to direct each user request to a CDN location that will provide the best user experience

111
Q

How does a CDN work?

A

When a browser in a user’s host is instructed to retrieve a specific video (identified by a URL), the CDN must intercept the request so that it can (1) determine a suitable CDN server cluster for that client at that time, and (2) redirect the client’s request to a server in that cluster.

112
Q

What is Over The Top (OTT)?

A

Internet host-host communication as a service

113
Q

What is a cluster selection strategy?

A

A mechanism for dynamically directing clients to a server cluster or a data center within the CDN

114
Q

What are the two cluster selection strategies for CDNs?’

A

Assigning the client to the cluster that is geographically closest
Assigning the client to a cluster based on periodic real-time measurements of delay and loss performance between clusters and clients