Session 3 INST 346 Technologies, Infrastructure and Architecture

Slides:



Advertisements
Similar presentations
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Application Layer – Lecture.
Advertisements

Application Layer-11 CSE401N: Computer Networks Lecture-4 Application Layer Overview HTTP.
Application Layer  We will learn about protocols by examining popular application-level protocols  HTTP  FTP  SMTP / POP3 / IMAP  Focus on client-server.
2: Application Layer1 Chapter 2: Application Layer Our goals: r conceptual, implementation aspects of network application protocols m transport-layer service.
Chapter 2: Application Layer
1 Application Layer. 2 Writing Networked Applications TCP UDP IP LL PL TCP UDP IP LL PL TCP UDP IP LL PL Web Browser Web Server Ftp Server Ftp Client.
2: Application Layer1 Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross.
Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross Addison-Wesley, July.
Introduction to the Application Layer Computer Networks Computer Networks Spring 2012 Spring 2012.
2: Application Layer1 Chapter 2: Application Layer Our goals: r conceptual, implementation aspects of network application protocols m transport-layer service.
1 Computer Networks Transport Layer Protocols. 2 Application-layer Protocols Application-layer protocols –one “piece” of an app –define messages exchanged.
Application Layer  We will learn about protocols by examining popular application-level protocols  HTTP  FTP  SMTP / POP3 / IMAP  Focus on client-server.
EEC-484/584 Computer Networks Lecture 4 Wenbing Zhao (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer.
Dr. Philip Cannata 1 Principles of Network Applications.
Introduction 1 Lecture 5 Application Layer slides are modified from J. Kurose & K. Ross University of Nevada – Reno Computer Science & Engineering Department.
Chapter 2 Application Layer Computer Networking: A Top Down Approach, 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April A note on the use.
Chapter 2, slide: 1 CS 372 – introduction to computer networks* Monday June 28 Announcements: r Lab 1 is due today r Lab 2 is posted today and is due next.
2: Application Layer1 Chapter 2 Application Layer These slides derived from Computer Networking: A Top Down Approach, 6 th edition. Jim Kurose, Keith Ross.
Throughput: Internet scenario
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
19-1 Last time □ TCP ♦ Throughput ♦ Fairness ♦ Delay modeling □ TCP socket programming.
CHAPTER 2. Creating a network app write programs that – run on (different) end systems – communicate over network – e.g., web server software communicates.
1 Application Layer Lecture 4 Imran Ahmed University of Management & Technology.
Chapter Two Application Layer Prepared by: Dr. Bahjat Qazzaz CS Dept. Sept
CS 3830 Day 7 Introduction : Application Layer 2 Processes communicating Process: program running within a host. r within same host, two processes.
Introduction Protocol “layers” Networks are complex, with many “pieces”:  hosts  routers  links of various media  applications  protocols  hardware,
1 Computer Communication & Networks Lecture 28 Application Layer: HTTP & WWW p Waleed Ejaz
© Janice Regan, CMPT 128, Jan 2007 CMPT 371 Data Communications and Networking Introducing the Application Layer 0.
What makes a network good? Ch 2.1: Principles of Network Apps 2: Application Layer1.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications r 2.2 Web and HTTP r 2.3 FTP r 2.4 Electronic Mail  SMTP,
Sockets process sends/receives messages to/from its socket
Lecture 4 Computer Networking: A Top Down Approach 6th edition Jim Kurose, Keith Ross Addison-Wesley March 2012 CS3516: These slides are generated from.
1 End-user Protocols, Services and QoS. 2 Layering: logical communication application transport network link physical application transport network link.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
2: Application Layer1 Chapter 2 Application Layer Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition. Jim Kurose, Keith Ross.
Lecture 23 Application Layer ELEN E6761: Communication Networks Instructor: Javad Ghaderi Slides adapted from “Computer Networking: A Top Down Approach”
2: Application Layer 1 Chapter 2 Application Layer Computer Networking: A Top Down Approach, 5 th edition. Jim Kurose, Keith Ross Addison-Wesley, April.
Important r There will be NO CLASS on Friday 1/30/2015! r Please mark you calendars 1.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications  app architectures  app requirements r 2.2 Web and HTTP.
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 7 Omar Meqdadi Department of Computer Science and Software Engineering University of.
“Real” Internet delays and routes  What do “real” Internet delay & loss look like?  Traceroute program: provides delay measurement from source to router.
Week 11: Application Layer 1 Web and HTTP r Web page consists of objects r Object can be HTML file, JPEG image, Java applet, audio file,… r Web page consists.
@Yuan Xue CS 283Computer Networks Spring 2011 Instructor: Yuan Xue.
Chapter 7 Application Layer 1 Some of the slides in this chapter are courtesy of Profs. Kurose/Ross and others.
A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their original slides that accompany the.
A special acknowledge goes to J.F Kurose and K.W. Ross Some of the slides used in this lecture are adapted from their original slides that accompany the.
Introduction to Networks
Chapter 2 Application Layer
Introduction to Networks
Application Layer Dr. Adil Yousif Lecture 2 CS.
Chapter 2: Application Layer
Application layer 1 Principles of network applications 2 Web and HTTP
CS 1652 Jack Lange University of Pittsburgh
Principles of Network Applications
Internet transport protocols services
Chapter 2: Application layer
OSI Protocol Stack Given the post man exemple.
Chapter 2 Application Layer
Introduction to Networks
Introduction to Networks
Chapter 2 Introduction Application Requirements VS. Transport Services
Chapter 2: Application layer
Computer Communication & Networks
Chapter 1: roadmap 1.1 What is the Internet? 1.2 Network edge
Process-to-Process Delivery:
لایه ی کاربرد مظفر بگ محمدی 2: Application Layer.
CSE 4213: Computer Networks II
Lecture 2 Application Layer
CS1652 September 4th, 2012 Jack Lange University of Pittsburgh
Presentation transcript:

Session 3 INST 346 Technologies, Infrastructure and Architecture Service Model Session 3 INST 346 Technologies, Infrastructure and Architecture

Goals for Today Postgame the homework Application-layer Internet API Getahead: Hypertext Transfer Protocol What to expect on Thursday’s quiz

Muddiest Points Queueing delay formulas (La/R, …) Circuit switching Frequency Division Multiplexing Transmission delay vs. propagation delay ISP vs. IXP vs. Content Provider Network

Internet protocol stack application: supporting network applications FTP, SMTP, HTTP transport: process-process data transfer TCP, UDP network: routing of datagrams from source to destination IP, routing protocols link: data transfer between neighboring network elements Ethernet, 802.111 (WiFi), PPP physical: bits “on the wire” application transport network link physical

ISO/OSI reference model presentation: allow applications to interpret meaning of data, e.g., encryption, compression, machine-specific conventions session: synchronization, checkpointing, recovery of data exchange Internet stack “missing” these layers! these services, if needed, must be implemented in application application presentation session transport network link physical

Why layering? dealing with complex systems: explicit structure allows identification of, and describing relationship between complex system’s pieces modularization eases maintenance, updating of system change of implementation of layer’s service transparent to rest of system some efficiency penalty Worth it for general applications Not practical in some specialized cases (e.g., planetary missions)

Chapter 2: application layer our goals: conceptual, aspects of network application protocols transport-layer service models client-server paradigm (peer-to-peer paradigm) learn to create network applications socket API learn about protocols by examining popular application-level protocols Web: HTTP Email: SMTP / POP3 / IMAP Domain Name Service

Some network apps email Web streaming video (YouTube, Hulu, Netflix, …) remote login FTP P2P file sharing voice over IP (e.g., Skype) multi-user network games real-time conferencing social networking search …

Creating a network app write programs that: application transport network data link physical write programs that: run on (different) end systems communicate over network e.g., web server software communicates with browser software no need to write software for network-core devices network-core devices do not run user applications applications on end systems allows for rapid app development, propagation application transport network data link physical application transport network data link physical

Client-server architecture (e.g., Web) always-on host permanent IP address data centers for scaling clients: communicate with server may be intermittently connected may have dynamic IP addresses do not communicate directly with each other client/server

P2P architecture (e.g., Skype) no central server arbitrary end systems directly communicate peers request service from other peers, provide service in return to other peers self scalability – new peers bring new service capacity, as well as new service demands peers are intermittently connected and change IP addresses complex management peer-peer

Processes communicating clients, servers process: program running within a host within a host, 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: P2P applications have both client & server processes

Sockets sockets are identified by numbers process sends/receives messages to/from its socket socket is analogous to an outbox or inbox sending process places a message in an “outbox” (socket) sending process relies on transport infrastructure to deliver message to “inbox” (socket) at receiving process sockets are identified by numbers some sockets are defined by convention (e.g., 80=Web server) application application socket controlled by app developer process process transport transport network network controlled by OS link Internet link physical physical

The address of a socket to send or receive messages, a process must have a socket to identify that socket, the socket must have a unique identifier Each host has a unique 32-bit IP address but many processes can be running on same host the unique identifier for a socket includes both the IP address of the host and the port number(s) associated with that process examples of “well known” port numbers: Web server: 80 mail server: 25 to identify the gaia.cs.umass.edu web server: IP address: 128.119.245.12 port number: 80 processes can spawn new processes (and thus new port numbers) So (if desired) each process can communicate with just one other process at a time

App-layer protocol must define: types of messages 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 “open” protocols: e.g., HTTP, SMTP defined in “Requests for Comment” (RFC’s) designed for interoperability proprietary protocols: e.g., Skype

What transport service does an app need? data integrity some apps require 100% reliable data transfer other apps (e.g., audio) can tolerate some loss throughput some apps (e.g., video) need some minimum throughput other apps (“elastic apps”) make use of whatever throughput they get timing some apps (e.g., Internet telephony, interactive games) require low delay security encryption, data integrity, …

Transport service requirements: common apps application file transfer e-mail Web documents audio/video video interactive games text messaging data loss no loss loss-tolerant throughput elastic 5 kbps-1 Mbps 10 kbps-5 Mbps few kbps up timing no limits 100’s msec few secs yes and no

Internet transport protocols UDP service (raw Internet): packet delivery service: no connection setup effort unreliable data transfer between sending and receiving process does not provide: reliability, flow control, congestion control, timing, throughput guarantee, security TCP service (pseudo-circuit): connection-oriented: simulates a circuit between client and server processes (takes time to set up) 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 throughput guarantee, security

Internet apps: application, transport protocols layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP, RTP [RFC 1889] SIP, RTP, proprietary underlying transport protocol TCP UDP or TCP UDP (TCP fallback) application e-mail remote terminal access Web file transfer streaming media Internet telephony

Securing TCP (Preview of Session 22) TCP (and UDP) no encryption passwds sent into socket traverse Internet in cleartext SSL provides encrypted TCP connection data integrity end-point authentication SSL is at app layer apps use SSL libraries, that “talk” to TCP

Getahead

The (World-Wide) Web a web page consists of base HTML-file which includes several referenced objects an object can be HTML file, JPEG image, Java applet, audio file,… each object is addressable by a URL, e.g., http://www.someschool.edu/someDept/pic.gif path name protocol host name

HTTP overview HTTP: hypertext transfer protocol Web’s application layer protocol client/server model client: “browser” requests (using HTTP), receives (using HTTP), and displays Web objects server: “Web server” sends (using HTTP) objects in response to requests HTTP request HTTP response PC running Firefox browser HTTP request HTTP response server running Apache Web iPhone running Safari browser

HTTP uses TCP HTTP is “stateless” client creates a socket and initiates a TCP connection to port 80 on server server creates a new socket for this connection, forwards the TCP to that socket, and accepts the connection there. HTTP messages (application-layer protocol messages) are exchanged between browser (HTTP client) and Web server (HTTP server) Eventually, the TCP connection is closed HTTP is “stateless” server maintains no information about past client requests aside 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

HTTP (1.0) suppose user enters URL: www.someSchool.edu/someDepartment/home.index 1. HTTP client initiates TCP connection to HTTP server (process) at www.someSchool.edu on port 80 2. HTTP server at host www.someSchool.edu waiting for TCP connection at port 80. “accepts” connection, notifying client of new port number 3. HTTP client sends HTTP request message (containing URL) into TCP connection socket. Message indicates that client wants object someDepartment/home.index 4. HTTP server receives request message, forms response message containing requested object, and sends message into its socket time 5. HTTP client receives response message containing html file, displays html. 7. Parsing html file, the browser finds 10 referenced jpeg objects and starts again at 1. (10 times!) 6. HTTP server closes TCP connection.

HTTP (1.0) response time Define Round Trip Time (RTT) as time for a small packet to travel from client to server and back HTTP response time: one RTT to initiate TCP connection one RTT for HTTP request and first few bytes of HTTP response to return file transmission time non-persistent HTTP response time = 2*RTT+ file transmission time initiate TCP connection RTT request file time to transmit file RTT file received time time

HTTP evolution original HTTP (1.0) Set up TCP connection Send one object Close TCP connection Can require many TCP connection setups for one Web page (slow!) persistent HTTP (1.1 & later) Set up the TCP connection once Send all the objects on one Web page Don’t close the connection after each request Avoids repeated connection setups Timeout: Close the TCP connection after some period with no activity

Better network utilization original HTTP (1.0): requires 2 RTTs per object plus Operating System (OS) overhead for each TCP connection workaround: browsers can open parallel TCP connections to fetch referenced objects persistent HTTP: server leaves connection open after sending response client sends requests as soon as it encounters a referenced object as little as one RTT for all the referenced objects

Quizzes Goals Format Begin to prep for Exam 1 Incentive to keep up with the readings Format Every Thursday (except exam weeks); see schedule 5 minutes at start of class, sharply timed On paper (write directly on the quiz) Open book, open notes, open Web No communication with anyone until quiz ends!

Before You Go On a sheet of paper, answer the following (ungraded) question (no names, please): What was the muddiest point in today’s class?