Vtunotesbysri: Module 1: Application Layer
Vtunotesbysri: Module 1: Application Layer
Vtunotesbysri: Module 1: Application Layer
I
3) E-mail 7) Real-time video conferencing (Skype)
4) P2P file sharing 8) On-line games (World of Warcraft)
R
• In network-applications, program usually needs to
→ run on the different end-systems and
→ communicate with one another over the network.
YS
• For ex: In the Web application, there are 2 different programs:
1) The browser program running in the user's host (Laptop or Smartphone).
2) The Web-server program running in the Web-server host.
"Design is not just what it looks like and feels like. Design is how it works." —Steve Jobs
1-3
COMPUTER NETWORKS
1.1.1.2 P2P Architecture
• There is no dedicated server (Figure 1.1b).
• Pairs of hosts are called peers.
• The peers communicate directly with each other.
• The peers are not owned by the service-provider. Rather, the peers are laptops controlled by users.
• Many of today's most popular and traffic-intensive applications are based on P2P architecture.
• Examples include file sharing (BitTorrent), Internet telephone (Skype) etc.
• Main feature of P2P architectures: self-scalability.
• For ex: In a P2P file-sharing system,
Each peer generates workload by requesting files.
Each peer also adds service-capacity to the system by distributing files to other peers.
I
• Advantage: Cost effective ‘.’ Normally, server-infrastructure & server bandwidth are not required.
R
• Three challenges of the P2P applications:
1) ISP Friendly
Most residential ISPs have been designed for asymmetrical bandwidth usage.
Asymmetrical bandwidth means there is more downstream-traffic than upstream-traffic.
YS
But P2P applications shift upstream-traffic from servers to residential ISPs, which stress on
the ISPs.
2) Security
Since the highly distribution and openness, P2P applications can be a challenge to security.
3) Incentive
Success of P2P depends on convincing users to volunteer bandwidth & resources to the
applications. SB
TE
O
N
U
VT
"If I take care of my character, my reputation will take care of me". —Dwight L. Moody
1-4
COMPUTER NETWORKS
1.1.2 Processes Communicating
1.1.2.1 Process
• A process is an instance of a program running in a computer.(IPC inter-process communication).
• The processes may run on the 1) same system or 2) different systems.
1) The processes running on the same end-system can communicate with each other using IPC.
2) The processes running on the different end-systems can communicate by exchanging messages.
i) A sending-process creates and sends messages into the network.
ii) A receiving-process receives the messages and responds by sending messages back.
I
1) The process that initiates the communication is labeled as the client.
R
2) The process that waits to be contacted to begin the session is labeled as the server.
• For example:
1) In Web application, a client-browser process communicates with a Web-server-process.
2) In P2P file system, a file is transferred from a process in one peer to a process in another peer.
YS
1.1.2.1.2 Interface between the Process and the Computer Network Socket
• Any message sent from one process to another must go through the underlying-network.
• A process sends/receives message through a software-interface of underlying-network called socket.
• Socket is an API between the application-layer and the transport layer within a host (Figure 1.2).
• The application-developer has complete control at the application-layer side of the socket.
SB
• But, the application-developer has little control of the transport-layer side of the socket.
For ex: The application-developer can control:
1) The choice of transport-protocol: TCP or UDP. (API Application Programming Interface)
2) The ability to fix parameters such as maximum-buffer & maximum-segment-sizes.
TE
O
N
1-5
COMPUTER NETWORKS
1.1.3 Transport Services Available to Applications
• Networks usually provide more than one transport-layer protocols for different applications.
• An application-developer should choose certain protocol according to the type of applications.
• Different protocols may provide different services.
I
• In multimedia applications, the lost data might result in a small glitch in the audio/video.
R
1.1.3.2 Throughput
• Throughput is the rate at which the sending-process can deliver bits to the receiving-process.
• Since other hosts are using the network, the throughput can fluctuate with time.
YS
• Two types of applications:
1) Bandwidth Sensitive Applications
These applications need a guaranteed throughput.
For ex: Multimedia applications
Some transport-protocol provides guaranteed throughput at some specified rate (r bits/sec).
2) Elastic Applications
1.1.3.3 Timing
SB
These applications may not need a guaranteed throughput.
For ex: Electronic mail, File transfer & Web transfers.
1.1.3.4 Security
O
"Your time is limited, so don't waste it living someone else's life." —Steve Jobs
1-6
COMPUTER NETWORKS
1.1.4 Transport Services Provided by the Internet
• The Internet makes two transport-protocols available to applications, UDP and TCP.
• An application-developer who creates a new network-application must use either: UDP or TCP.
• Both UDP & TCP offers a different set of services to the invoking applications.
• Table 1.1 shows the service requirements for some selected applications.
I
Internet-telephony/ Loss-tolerant Audio: few kbps–1 Mbps Yes: 100s of ms
R
Video-conferencing Video: 10 kbps–5 Mbps
Streaming stored audio/video Loss-tolerant Same as above Yes: few seconds
Interactive games Loss-tolerant Few kbps–10 kbps Yes: 100s of ms
YS
Instant messaging No loss Elastic Yes and no
1-7
COMPUTER NETWORKS
1.2 The Web & HTTP
• The appearance of Web dramatically changed the Internet.
• Web has many advantages for a lot of applications.
• It operates on demand so that the users receive what they want when they want it.
• It provides an easy way for everyone make information available over the world.
• Hyperlinks and search engines help us navigate through an ocean of Web-sites.
• Forms, JavaScript, Java applets, and many other devices enable us to interact with pages and sites.
• The Web serves as a platform for many killer applications including YouTube, Gmail, and Facebook.
I
• A web-page consists of objects (HTML Hyper Text Markup Language).
R
• An object is a file such as an HTML file, a JPEG image, a Java applet, a video chip.
• The object is addressable by a single URL (URL Uniform Resource Locator).
• Most Web-pages consist of a base HTML file & several referenced objects.
• For example:
YS
If a Web-page contains HTML text and five JPEG images; then the Web-page has six objects:
1) Base HTML file and
2) Five images.
• The base HTML file references the other objects in the page with the object's URLs.
• URL has 2 components:
1) The hostname of the server that houses the object and
2) The object’s path name.
• For example:
SB
“http://www.someSchool.edu/someDepartment/picture.gif”
In above URL,
1) Hostname = “www.someSchool.edu ”
2) Path name = “/someDepartment/picture.gif”.
• The web browsers implement the client-side of HTTP. For ex: Google Chrome, Internet Explorer
TE
• The web-servers implement the server-side of HTTP. For ex: Apache
1.2.1.2 HTTP
• HTTP is Web’s application-layer protocol (Figure 1.3) (HTTP HyperText Transfer Protocol).
• HTTP defines
→ how clients request Web-pages from servers and
O
• When a user requests a Web-page, the browser sends HTTP request to the server.
• Then, the server responds with HTTP response that contains the requested-objects.
• HTTP uses TCP as its underlying transport-protocol.
• The HTTP client first initiates a TCP connection with the server.
• After connection setup, the browser and the server-processes access TCP through their sockets.
"Start where you are, use what you have." -Arthur Ashe
1-8
COMPUTER NETWORKS
• HTTP is a stateless protocol.
• Stateless means the server sends requested-object to client w/o storing state-info about the client.
• HTTP uses the client-server architecture:
1) Client
Browser that requests receive and displays Web objects.
2) Server
Web-server sends objects in response to requests.
I
1) Should each request/response pair be sent over a separate TCP connection or
R
2) Should all requests and their corresponding responses be sent over same TCP connection?
• These different connections are called non-persistent connections (1) or persistent connections (2).
• Default mode: HTTP uses persistent connections.
YS
SB
TE
O
N
U
VT
"You must either modify your dreams or magnify your skills." -Jim Rohn
1-9
COMPUTER NETWORKS
1.2.2.1 HTTP with Non-Persistent Connections
• A non-persistent connection is closed after the server sends the requested-object to the client.
• In other words, the connection is used exactly for one request and one response.
• For downloading multiple objects, multiple connections must be used.
• Suppose user enters URL:
"http://www.someSchool.edu/someDepartment/home.index"
• Assume above link contains text and references to 10 jpeg images.
I
R
YS
SB
Figure 1.4: Back-of-the-envelope calculation for the time needed to request and receive an HTML file
TE
• RTT is the time taken for a packet to travel from client to server and then back to the client.
• The total response time is sum of following (Figure 1.4):
i) One RTT to initiate TCP connection (RTT Round Trip Time).
ii) One RTT for HTTP request and first few bytes of HTTP response to return.
iii) File transmission time.
i.e. Total response time = (i) + (ii) + (iii) = 1 RTT+ 1 RTT+ File transmission time
= 2(RTT) + File transmission time
1-10
COMPUTER NETWORKS
1.2.2.2 HTTP with Persistent Connections
• Problem with Non-Persistent Connections:
1) A new connection must be established and maintained for each requested-object.
Hence, buffers must be allocated and state info must be kept in both the client and server.
This results in a significant burden on the server.
2) Each object suffers a delivery delay of two RTTs:
i) One RTT to establish the TCP connection and
ii) One RTT to request and receive an object.
• Solution: Use persistent connections.
• With persistent connections, the server leaves the TCP connection open after sending responses.
• Hence, subsequent requests & responses b/w same client & server can be sent over same connection
I
• The server closes the connection only when the connection is not used for a certain amount of time.
R
• Default mode of HTTP: Persistent connections with pipelining.
• Advantages:
1) This method requires only one RTT for all the referenced-objects.
2) The performance is improved by 20%.
YS
SB
TE
O
N
U
VT
"Success is nothing more than a few simple disciplines, practiced every day." -Jim Rohn
1-11
COMPUTER NETWORKS
1.2.3 HTTP Message Format
• Two types of HTTP messages: 1) Request-message and 2) Response-message.
I
R
YS
Figure 1.5: General format of an HTTP request-message
Host: www.someschool.edu
Connection: close
User-agent: Mozilla/5.0
SB
GET /somedir/page.html HTTP/1.1
Accept-language: eng
“GET”: This method is used when the browser requests an object from the server.
2) URL
“/somedir/page.html”: This is the object requested by the browser.
3) Version
N
1) GET is used when the browser requests an object from the server.
2) POST is used when the user fills out a form & sends to the server.
3) HEAD is identical to GET except the server must not return a message-body in the response.
4) PUT is used to upload objects to servers.
5) DELETE allows an application to delete an object on a server.
"You cannot escape the responsibility of tomorrow by evading it today." -Abraham Lincoln
1-12
COMPUTER NETWORKS
1.2.3.2 HTTP Response Message
I
R
YS
Figure 1.6: General format of an HTTP response-message
3) Status message.
• Some common status-codes and associated messages include:
1) 200 OK: Standard response for successful HTTP requests.
2) 400 Bad Request: The server cannot process the request due to a client error.
N
4) Last-Modified: This line indicates the time & date when the object was last modified.
5) Content-Length: This line indicates the number of bytes in the sent-object.
6) Content-Type: This line indicates that the object in the entity body is HTML text.
"Life is 10 percent what you make it, and 90 percent how you take it." -Irving Berlin
1-13
COMPUTER NETWORKS
1.2.4 User-Server Interaction: Cookies
• Cookies refer to a small text file created by a Web-site that is stored in the user's computer.
• Cookies are stored either temporarily for that session only or permanently on the hard disk.
• Cookies allow Web-sites to keep track of users.
• Cookie technology has four components:
1) A cookie header-line in the HTTP response-message.
2) A cookie header-line in the HTTP request-message.
3) A cookie file kept on the user’s end-system and managed by the user’s browser.
4) A back-end database at the Web-site.
I
R
YS
SB
TE
O
N
HTTP response includes Set-cookie: header which contains the identification number (1678)
3) The browser then stores the identification number into the cookie-file.
4) Each time the user requests a Web-page, the browser
→ extracts the identification number from the cookie file, and
→ puts the identification number in the HTTP request.
5) In this manner, the server is able to track user’s activity at the web-site.
"The best way to make your dreams come true is to wake up." -Paul Valery
1-14
COMPUTER NETWORKS
1.2.5 Web Caching
• A Web-cache is a network entity that satisfies HTTP requests on the behalf of an original Web-server.
• The Web-cache has disk-storage.
• The disk-storage contains copies of recently requested-objects.
I
R
YS
Figure 1.8: Clients requesting objects through a Web-cache (or Proxy Server)
"The beautiful thing about learning is nobody can take it away from you." -B. B. King
1-15
COMPUTER NETWORKS
1.3 File Transfer: FTP
• FTP is used by the local host to transfer files to or from a remote-host over the network.
• FTP uses client-server architecture (Figure 1.9).
• FTP uses 2 parallel TCP connections (Figure 1.10):
1) Control Connection
The control-connection is used for sending control-information b/w local and remote-hosts.
The control-information includes:
→ user identification
→ password
→ commands to change directory and
→ commands to put & get files.
I
2) Data Connection
R
The data-connection is used to transfer files.
YS
SB
Figure 1.9: FTP moves files between local and remote file systems
TE
4) FTP sends exactly one file over the data-connection and then closes the data-connection.
5) Usually, the control-connection remains open throughout the duration of the user-session.
6) But, a new data-connection is created for each file transferred within a session.
U
• During a session, the server must maintain the state-information about the user.
• For example:
The server must keep track of the user's current directory.
• Disadvantage:
VT
Keeping track of state-info limits the no. of sessions maintained simultaneously by a server.
"Small deeds done are better than great deeds planned." -Peter Marshall
1-16
COMPUTER NETWORKS
1.3.1 FTP Commands & Replies
• The commands are sent from client to server.
• The replies are sent from server to client.
• The commands and replies are sent across the control-connection in 7-bit ASCII format.
• Each command consists of 4-uppercase ASCII characters followed by optional arguments.
• For example:
1) USER username
Used to send the user identification to the server.
2) PASS password
Used to send the user password to the server.
3) LIST
I
Used to ask the server to send back a list of all the files in the current remote directory.
R
4) RETR filename
Used to retrieve a file from the current directory of the remote-host.
5) STOR filename
Used to store a file into the current directory of the remote-host.
YS
• Each reply consists of 3-digit numbers followed by optional message.
• For example:
1) 331 Username OK, password required
2) 125 Data-connection already open; transfer starting
3) 425 Can’t open data-connection
4) 452 Error writing file
SB
TE
O
N
U
VT
"A great pleasure in life is doing what people say you cannot do". —Walter Bagehot
1-17
COMPUTER NETWORKS
1.4 Electronic Mail in the Internet
• e-mail is an asynchronous communication medium in which people send and read messages.
• e-mail is fast, easy to distribute, and inexpensive.
• e-mail has features such as
→ messages with attachments
→ hyperlinks
→ HTML-formatted text and
→ embedded photos.
• Three major components of an e-mail system (Figure 1.11):
1) User Agents
User-agents allow users to read, reply to, forward, save and compose messages.
I
For example: Microsoft Outlook and Apple Mail
R
2) Mail Servers
Mail-servers contain mailboxes for users.
A message is first sent to the sender's mail-server.
Then, the sender’s mail-server sends the message to the receiver's mail-server.
YS
If the sender’s server cannot deliver mail to receiver’s server, the sender’s server
→ holds the message in a message queue and
→ attempts to transfer the message later.
3) SMTP (Simple Mail Transfer Protocol)
SMTP is an application-layer protocol used for email.
SMTP uses TCP to transfer mail from the sender’s mail-server to the recipient’s mail-server.
SMTP has two sides: SB
1) A client-side, which executes on the sender’s mail-server.
2) A server-side, which executes on the recipient’s mail-server.
Both the client and server-sides of SMTP run on every mail-server.
When a mail-server receives mail from other mail-servers, the mail-server acts as a server.
When a mail-server sends mail to other mail-servers, the mail-server acts as a client.
TE
O
N
U
VT
"The great use of life is to spend it for something that will outlast it." -William James
1-18
COMPUTER NETWORKS
1.4.1 SMTP
• SMTP is the most important protocol of the email system.
• Three characteristics of SMTP (that differs from other applications):
1) Message body uses 7-bit ASCII code only.
2) Normally, no intermediate mail-servers used for sending mail.
3) Mail transmissions across multiple networks through mail relaying.
• Here is how it works:
1) Usually, mail-servers are listening at port 25.
2) The sending server initiates a TCP connection to the receiving mail-server.
3) If the receiver's server is down, the sending server will try later.
4) If connection is established, the client & the server perform application-layer handshaking.
I
5) Then, the client indicates the e-mail address of the sender and the recipient.
R
6) Finally, the client sends the message to the server over the same TCP connection.
YS
→ someone loads information on a web-server and
→ users use HTTP to pull the information from the server.
On the other hand, SMTP is primarily a push protocol. This is because
→ the sending mail-server pushes the file to receiving mail-server.
2) SMTP requires each message to be in seven-bit ASCII format.
If message contains binary-data, the message has to be encoded into 7-bit ASCII format.
SB
HTTP does not have this restriction.
3) HTTP encapsulates each object of message in its own response-message.
SMTP places all of the message's objects into one message.
3) HTTP.
N
U
VT
"We make a living by what we get, but we make a life by what we give." -Winston Churchill
1-19
COMPUTER NETWORKS
1.4.3.1 POP
• POP is an extremely simple mail access protocol.
• POP server will listen at port 110.
• Here is how it works:
The user-agent at client's computer opens a TCP connection to the main server.
POP then progresses through three phases:
1) Authentication
The user-agent sends a user name and password to authenticate the user.
2) Transaction
The user-agent retrieves messages.
Also, the user-agent can
I
→ mark messages for deletion
R
→ remove deletion marks &
→ obtain mail statistics.
The user-agent issues commands, and the server responds to each command with a reply.
There are two responses:
YS
i) +OK: used by the server to indicate that the previous command was fine.
ii) –ERR: used by the server to indicate that something is wrong.
3) Update
After user issues a quit command, the mail-server removes all messages marked for deletion.
• Disadvantage:
The user cannot manage the mails at remote mail-server. For ex: user cannot delete messages.
1.4.3.2 IMAP
SB
• IMAP is another mail access protocol, which has more features than POP.
• An IMAP server will associate each message with a folder.
• When a message first arrives at server, the message is associated with recipient's INBOX folder
• Then, the recipient can
→ move the message into a new, user-created folder
TE
→ read the message
→ delete the message and
→ search remote folders for messages matching specific criteria.
• An IMAP server maintains user state-information across IMAP sessions.
• IMAP permits a user-agent to obtain components of messages.
For example, a user-agent can obtain just the message header of a message.
O
"A part of kindness consists in loving people more than they deserve." -Joseph Joubert
1-20
COMPUTER NETWORKS
1.5 DNS — The Internet’s Directory Service
• DNS is an internet service that translates domain-names into IP addresses.
For ex: the domain-name “www.google.com” might translate to IP address “198.105.232.4”.
• Because domain-names are alphabetic, they are easier to remember for human being.
• But, the Internet is really based on IP addresses (DNS Domain Name System).
I
• The DNS protocol runs over UDP and uses port 53. (BIND Berkeley Internet Name Domain)
R
• DNS is used by application-layer protocols such as HTTP, SMTP, and FTP.
• Assume a browser requests the URL www.someschool.edu/index.html.
• Next, the user’s host must first obtain the IP address of www.someschool.edu
• This is done as follows:
YS
1) The same user machine runs the client-side of the DNS application.
2) The browser
→ extracts the hostname “www.someschool.edu” from the URL and
→ passes the hostname to the client-side of the DNS application.
3) The client sends a query containing the hostname to a DNS server.
4) The client eventually receives a reply, which includes the IP address for the hostname.
A host with a complicated hostname can have one or more alias names.
2) Mail Server Aliasing
For obvious reasons, it is highly desirable that e-mail addresses be mnemonic.
3) Load Distribution
TE
DNS is also used to perform load distribution among replicated servers.
Busy sites are replicated over multiple servers & each server runs on a different system.
If the DNS server crashes then the entire Internet will not stop.
2) Traffic Volume
A Single DNS Server cannot handle the huge global DNS traffic.
But with distributed system, the traffic is distributed and reduces overload on server.
N
This centralized database has to be updated frequently to account for every new host.
1-21
COMPUTER NETWORKS
1.5.2.1 A Distributed, Hierarchical Database
I
R
Figure 1.12: Portion of the hierarchy of DNS servers
• Suppose a client wants to determine IP address for hostname “www.amazon.com” (Figure 1.12):
YS
1) The client first contacts one of the root servers, which returns IP addresses for TLD servers
2) Then, the client contacts one of these TLD servers.
The TLD server returns the IP address of an authoritative-server for “amazon.com”.
3) Finally, the client contacts one of the authoritative-servers for amazon.com.
The authoritative-server returns the IP address for the hostname “www.amazon.com”.
• The example shown in Figure 1.13 makes use of both recursive queries and iterative queries.
• The query 1 sent from cis.poly.edu to dns.poly.edu is a recursive query. This is because
→ the query asks dns.poly.edu to obtain the mapping on its behalf.
• But the subsequent three queries 2, 4 and 6 are iterative. This is because
→ all replies are directly returned to dns.poly.edu.
1-22
COMPUTER NETWORKS
1.5.3 DNS Records & Messages
• The DNS server stores resource-records (RRs).
• RRs provide hostname-to-IP address mappings.
• Each DNS reply message carries one or more resource-records.
• A resource-record is a 4-tuple that contains the following fields: (Name, Value, Type, TTL)
• TTL (time to live) determines when a resource should be removed from a cache.
• The meaning of Name and Value depend on Type:
1) If Type=A, then Name is a hostname and Value is the IP address for the hostname.
Thus, a Type A record provides the standard hostname-to-IP address mapping.
For ex: (relay1.bar.foo.com, 145.37.93.126, A)
2) If Type=NS, then
I
i) Name is a domain (such as foo.com) and
R
ii) Value is the hostname of an authoritative DNS server.
This record is used to route DNS queries further along in the query chain.
For ex: (foo.com, dns.foo.com, NS) is a Type NS record.
3) If Type=CNAME, then Value is a canonical hostname for the alias hostname Name.
YS
This record can provide querying hosts the canonical name for a hostname.
For ex: (foo.com, relay1.bar.foo.com, CNAME) is a CNAME record.
4) If Type=MX, Value is the canonical name of a mail-server that has an alias hostname Name.
MX records allow the hostnames of mail-servers to have simple aliases.
For ex: (foo.com, mail.bar.foo.com, MX) is an MX record.
SB
TE
O
N
U
VT
"What we fear doing most is usually what we most need to do." -Tim Ferriss
1-23
COMPUTER NETWORKS
1.5.3.1 DNS Messages
• Two types of DNS messages: 1) query and 2) reply.
• Both query and reply messages have the same format.
I
R
YS
Figure 1.14: DNS message format
1) Header Section
• The first 12 bytes is the header-section.
• This section has following fields:
SB
• The various fields in a DNS message are as follows (Figure 1.14):
i) Identification
This field identifies the query.
TE
This identifier is copied into the reply message to a query.
This identifier allows the client to match received replies with sent queries.
ii) Flag
This field has following 3 flag-bits:
a) Query/Reply
¤ This flag-bit indicates whether the message is a query (0) or a reply (1).
b) Authoritative
O
These fields indicate the no. of occurrences of 4 types of data sections that follow the header.
2) Question Section
• This section contains information about the query that is being made.
U
This field indicates the type of question being asked about the domain-name.
3) Answer Section
• This section contains a reply from a DNS server.
• This section contains the resource-records for the name that was originally queried.
• A reply can return multiple RRs in the answer, since a hostname can have multiple IP addresses.
4) Authority Section
• This section contains records of other authoritative-servers.
5) Additional Section
• This section contains other helpful records.
"You will never 'find' time for anything. If you want time, you must make it." -Charles Buxton
1-24
COMPUTER NETWORKS
1.6 Peer-to-Peer Applications
• Peer-to-peer architecture is different from client-server architecture.
• In P2P, each node (called peers) acts as a client and server at the same time.
• The peers are not owned by a service-provider.
• The peers not supposed to be always listening on the Internet.
• The peers are dynamic, i.e., some peers will join some peers will leave from time to time.
I
1) In client-server architecture, each of the N computers will
R
→ connect to the server &
→ download a copy of the file to local-host.
2) In P2P architecture, a peer need not necessarily download a copy from the server.
Rather, the peer may download from other peers.
YS
SB
TE
O
"Efforts and courage are not enough without purpose and direction." -John F. Kennedy
1-25
COMPUTER NETWORKS
Case 2: P2P Architecture
• We have 2 observations:
1) At the beginning of the distribution, only the server has the file.
So, the minimum distribution-time is at least F/us.
2) The peer with the lowest download-rate cannot obtain all F bits of the file in less than F/dmin.
Thus, the minimum distribution-time is at least F/ dmin.
3) The total upload capacity of the system as a whole is utotal = us + u1 + u2 . . . + uN.
The system must deliver F bits to each of the N peers.
Thus, the minimum distribution-time is at least NF/( us + u1 + u2 . . . + uN).
• Putting above 3 observations together, we have
I
R
• Figure 1.16 compares the minimum distribution-time for the client-server and P2P architectures.
YS
SB
TE
"Help others achieve their dreams and you will achieve yours." -Les Brown
1-26
COMPUTER NETWORKS
1.6.1.1 BitRorrent
• The collection of all peers participating in the distribution of a particular file is called a torrent.
• Peers download equal-size chunks of the file from one another. Chunk size = 256 KBytes.
• The peer also uploads chunks to other peers.
• Once a peer has acquired the entire file, the peer may leave the torrent or remain in the torrent.
• Each torrent has an infrastructure node called tracker.
• Here is how it works (Figure 1.17):
1) When a peer joins a torrent, the peer
→ registers itself with the tracker and
→ periodically informs the tracker that it is in the torrent.
2) When a new peer joins the torrent, the tracker
I
→ randomly selects a subset of peers from the set of participating peers and
R
→ sends the IP addresses of these peers to the new peer.
3) Then, the new peer tries to establish concurrent TCP connections with all peers on this list.
All peers on the list are called neighboring-peers.
4) Periodically, the new peer will ask each of the neighboring-peers for the set of chunks.
YS
• To choose the chunks to download, the peer uses a technique called rarest-first.
• Main idea of rarest-first:
→ Determine the chunks that are the rarest among the neighbors and
→ Request then those rarest chunks first.
SB
TE
O
N
"The more one judges, the less one loves." -Honore de Balzac
1-27
COMPUTER NETWORKS
1.6.2 Distributed Hash Table
• We can use P2P architecture to form a distributed database.
• We consider a simple database, which contains (key, value) pairs.
• Each peer will only hold a small subset of the data.
• Any peer can query the distributed database with a particular key.
• Then, the database will
→ locate the peers that have the corresponding (key, value) pairs and
→ return the key-value to the querying peer.
• Any peer will also be allowed to insert new key-value pairs into the database.
• Such a distributed database is referred to as a distributed hash table (DHT).
• To construct the database, we need to use some hash-functions.
I
• The input of a hash-function can be a large number.
R
But the output of the hash-function is of fixed-size bit-string.
• The outline of building a DHT is as follows:
1) Assign an identifier to each peer, where the identifier is an n-bit string.
So, we can view the identifier as an integer at the range from 0 to 2 n-1.
YS
2) For a data pair (key, value), the hash value of the key is computed.
Then the data is stored in the peer whose identifier is closest to the key.
3) To insert or retrieve data, first we need to find the appropriate peer.
Problem: It is not realistic to let the peer to store all of the other peer's identifiers.
Solution: Use a circular arrangement.
SB
TE
O
Figure 1.18: (a) A circular DHT. Peer 3 wants to determine who is responsible for key 11. (b) A circular
DHT with shortcuts
N
• When a peer asks for a key, the peer sends the message clockwise around the circle.
• For example:
The peer 4 sends a message saying “Who is responsible for key 11?"
The message will forward through peers 5, 8, 10 and reach peer 12.
VT
"I don't know what the future may hold, but I know who holds the future." -Ralph Abernathy
1-28
COMPUTER NETWORKS
1.7 Socket Programming: Creating Network Applications
• Two types of network-applications:
1) First type is an implementation whose operation is specified in a protocol standard (RFC)
Such an application is referred to as “open”.
The client & server programs must conform to the rules dictated by the RFC.
2) Second type is a proprietary network-application.
The client & server programs use an application-layer protocol not openly published in a RFC.
A single developer creates both the client and server programs.
The developer has complete control over the code.
• During development phase, the developer must decide whether the application uses TCP or UDP.
I
R
YS
SB
TE
O
N
U
VT
"The elevator to success is out of order. You'll have to use the stairs... one step at a time." -Joe Girard
1-29
COMPUTER NETWORKS
1.7.1 Socket Programming with UDP
• Consider client-server application in which following events occurs:
1) The client
→ reads a line of characters (data) from the keyboard and
→ sends the data to the server.
2) The server receives the data and converts the characters to uppercase.
3) The server sends the modified data to the client.
4) The client receives the modified data and displays the line on its screen.
I
R
YS
SB
TE
"When you judge another, you do not define them, you define yourself." -Wayne Dyer
1-30
COMPUTER NETWORKS
1.7.2 Socket Programming with TCP
I
R
YS
SB
Figure 1.20: The client-server application using TCP
TE
• The client-side of the application is as follows (Figure 1.20):
from socket import *
serverName = ’servername’
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName,serverPort)) // This line initiates TCP connection b/w client & server
O
clientSocket.close()
serverSocket.listen(1) // This line specifies no. of connection-requests from the client to server
print ‘The server is ready to receive’
while 1:
connectionSocket, addr=serverSocket.accept() //allows server to accept connection request from client
sentence = connectionSocket.recv(1024)
capitalizedSentence = sentence.upper()
connectionSocket.send(capitalizedSentence)
connectionSocket.close()
"Stay committed to your decisions, but stay flexible in your approach." -Tony Robbins
1-31
COMPUTER NETWORKS
MODULE-WISE QUESTIONS
PART 1
1) Explain client-server & P2P architecture. (8*)
2) With block diagram, explain how application processes communicate through a socket. (8*)
3) Explain 4 transport services available to applications. (4)
4) Briefly explain 2 transport layer protocols. (4)
5) With block diagram, explain the working of Web & HTTP. (8*)
6) Explain HTTP non-persistent & persistent connections. (8*)
I
7) With general format, explain HTTP request- & response-messages. (8*)
8) With a diagram, explain how cookies are used in user-server interaction. (6*)
R
9) With a diagram, explain the working of web caching. (6*)
10) With a diagram, explain the working of FTP. (6*)
YS
PART 2
11) With a diagram, explain the working of e-mail system. (6*)
12) Briefly explain 3 mail access protocols. (6*)
13) Briefly explain the working of DNS. (8*)
14) With general format, explain DNS messages. (6*)
15) Explain P2P File Distribution. (6)
16) With a diagram, explain the working of BitRorrent. (6*)
SB
17) With a diagram, explain the working of Distributed Hash Table. (6)
18) Draw flow diagram for the client-server application using TCP. Also, write code for the client- &
server-sides of the application. (8*)
19) Draw flow diagram for the client-server application using UDP. Also, write code for the client- &
server-sides of the application. (8)
TE
O
N
U
VT
“Life isn't about finding yourself. Life is about creating yourself.” ― George Bernard Shaw
1-32