Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Understanding Network Applications: Web, FTP, Email, DNS, and P2P Sharing, Essays (university) of Performing Arts

An overview of the application layer in computer networking, covering principles of network applications, web and http, ftp, electronic mail, dns, and p2p file sharing. Topics include client-server, peer-to-peer, socket programming, and building a web server.

Typology: Essays (university)

2018/2019

Uploaded on 09/22/2019

vartika-katara
vartika-katara ๐Ÿ‡ฎ๐Ÿ‡ณ

5 documents

1 / 74

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
2: Application Layer
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a

Partial preview of the text

Download Understanding Network Applications: Web, FTP, Email, DNS, and P2P Sharing and more Essays (university) Performing Arts in PDF only on Docsity!

๏ƒ’ 2.1 Principles of network applications ๏ƒ’ (^) 2.2 Web and HTTP ๏ƒ’ 2.3 FTP ๏ƒ’ 2.4 Electronic Mail ๏ƒ’ (^) SMTP, POP3, IMAP ๏ƒ’ 2.5 DNS ๏ƒ’ 2.6 P2P file sharing ๏ƒ’ (^) 2.7 Socket programming with TCP ๏ƒ’ 2.8 Socket programming with UDP ๏ƒ’ (^) 2.9 Building a Web server

server: ๏ƒ’ (^) always-on host ๏ƒ’ (^) permanent IP address ๏ƒ’ (^) server farms for scaling clients: ๏ƒ’ (^) communicate with server ๏ƒ’ (^) may be intermittently connected ๏ƒ’ (^) may have dynamic IP addresses ๏ƒ’ (^) do not communicate directly with each other

๏ƒ’ no always-on server ๏ƒ’ (^) arbitrary end systems directly communicate ๏ƒ’ peers are intermittently connected and change IP addresses ๏ƒ’ (^) example: Gnutella Highly scalable but difficult to manage

Process: program running within a host. ๏ƒ’ within same host, two processes communicate using inter-process communication (defined by OS). ๏ƒ’ processes in different hosts communicate by exchanging messages Client process: process that initiates communication Server process: process that waits to be contacted ๏ฒ (^) Note: applications with P2P architectures have client processes & server processes

๏ƒ’ (^) process sends/receives messages to/from its socket ๏ƒ’ (^) socket analogous to door ๏ƒ’ (^) sending process shoves(push) message out door ๏ƒ’ (^) sending process relies on transport infrastructure on other side of door which brings message to socket at receiving process process TCP with buffers, variables socket host or server process TCP with buffers, variables socket host or server Internet controlled by OS controlled by app developer ๏ฒ (^) API: (1) choice of transport protocol; (2) ability to fix a few parameters (lots more on this later)

๏ƒ’ identifier includes both IP address and port numbers associated with process on host. ๏ƒ’ (^) Example port numbers: ๏ƒ’ (^) HTTP server: 80 ๏ƒ’ (^) Mail server: 25 ๏ƒ’ (^) to send HTTP message to gaia.cs.umass.edu web server: ๏ƒ’ (^) IP address: 128.119.245. ๏ƒ’ (^) Port number: 80 ๏ƒ’ (^) more shortlyโ€ฆ ๏ƒ’ (^) to receive messages, process must have identifier ๏ƒ’ (^) host device has unique32-bit IP address ๏ƒ’ (^) Q: does IP address of host on which process runs suffice for identifying the process? ๏ƒ’ (^) Answer: NO, many processes can be running on same host

๏ƒ’ (^) Types of messages exchanged, ๏ƒ’ (^) e.g., request, response ๏ƒ’ (^) Message syntax: ๏ƒ’ (^) what fields in messages & how fields are delineated ๏ƒ’ (^) Message semantics ๏ƒ’ (^) meaning of information in fields ๏ƒ’ Rules for when and how processes send & respond to messages Public-domain protocols: ๏ƒ’ (^) defined in RFCs ๏ƒ’ (^) allows for interoperability ๏ƒ’ e.g., HTTP, SMTP Proprietary protocols: ๏ƒ’ (^) e.g., KaZaA

Application file transfer e-mail Web documents real-time audio/video stored audio/video interactive games instant messaging Data loss no loss no loss no loss loss-tolerant loss-tolerant loss-tolerant no loss Bandwidth elastic elastic elastic audio: 5kbps-1Mbps video:10kbps-5Mbps same as above few kbps up elastic Time Sensitive no no no yes, 100โ€™s msec yes, few secs yes, 100โ€™s msec yes and no

TCP service: ๏ƒ’ (^) connection-oriented: setup required between client and server processes ๏ƒ’ (^) reliable transport between sending and receiving process ๏ƒ’ (^) flow control: sender wonโ€™t overwhelm receiver ๏ƒ’ (^) congestion control: throttle sender when network overloaded ๏ƒ’ (^) does not provide: timing, minimum bandwidth guarantees UDP service: ๏ƒ’ (^) unreliable data transfer between sending and receiving process ๏ƒ’ (^) does not provide: connection setup, reliability, flow control, congestion control, timing, or bandwidth guarantee Q: why bother? Why is there a UDP?

๏ƒ’ 2.1 Principles of network applications ๏ƒ’ (^) app architectures ๏ƒ’ (^) app requirements ๏ƒ’ (^) 2.2 Web and HTTP ๏ƒ’ 2.4 Electronic Mail ๏ƒ’ (^) SMTP, POP3, IMAP ๏ƒ’ 2.5 DNS ๏ƒ’ 2.6 P2P file sharing ๏ƒ’ (^) 2.7 Socket programming with TCP ๏ƒ’ 2.8 Socket programming with UDP ๏ƒ’ (^) 2.9 Building a Web server

First some jargon ๏ƒ’ Web page consists of objects ๏ƒ’ Object can be HTML file, JPEG image, Java applet, audio file,โ€ฆ ๏ƒ’ (^) Web page consists of base HTML-file which includes several referenced objects ๏ƒ’ Each object is addressable by a URL ๏ƒ’ Example URL: www.someschool.edu/someDept/pic.gif host name path name

Uses TCP: ๏ƒ’ (^) client initiates TCP connection (creates socket) to server, port 80 ๏ƒ’ (^) server accepts TCP connection from client ๏ƒ’ (^) HTTP messages (application-layer protocol messages) exchanged between browser (HTTP client) and Web server (HTTP server) ๏ƒ’ (^) TCP connection closed HTTP is โ€œstatelessโ€ ๏ƒ’ (^) server maintains no information about past client requests Protocols that maintain โ€œstateโ€ are complex! ๏ฒ (^) past history (state) must be maintained ๏ฒ (^) if server/client crashes, their views of โ€œstateโ€ may be inconsistent, must be reconciled aside

Nonpersistent HTTP ๏ƒ’ (^) At most one object is sent over a TCP connection. ๏ƒ’ HTTP/1.0 uses nonpersistent HTTP Persistent HTTP ๏ƒ’ (^) Multiple objects can be sent over single TCP connection between client and server. ๏ƒ’ HTTP/1.1 uses persistent connections in default mode