DATA COMMUNICATOIN NETWORKING

Similar documents
Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

EECS 3214: Computer Network Protocols and Applications

Chapter 2 Application Layer

CSC358 Week 2. Adapted from slides by J.F. Kurose and K. W. Ross. All material copyright J.F Kurose and K.W. Ross, All Rights Reserved

Chapter 2: Application layer

Lecture 04: Application Layer (Part 01) Principles and the World Wide Web (HTTP) Dr. Anis Koubaa

Application Layer: HTTP

Application Layer: The Web and HTTP Sec 2.2 Prof Lina Battestilli Fall 2017

Chapter 2 Application Layer. Lecture 4: principles of network applications. Computer Networking: A Top Down Approach

Chapter 2 Application Layer

Chapter 2. Application Layer. Chapter 2: Application Layer. Application layer - Overview. Some network apps. Creating a network appication

Chapter 2: Application Layer. Chapter 2 Application Layer. Some network apps. Application architectures. Chapter 2: Application layer

CS 43: Computer Networks. HTTP September 10, 2018

Chapter 2: outline. 2.6 P2P applications 2.7 socket programming with UDP and TCP

Review of Previous Lecture

Chapter 2 Application Layer

Chapter 1 Introduction

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 4

COSC4377. Chapter 2: Outline

Application Layer. Pure P2P architecture. Client-server architecture. Processes communicating. Hybrid of client-server and P2P. Creating a network app

ELEC / COMP 177 Fall Some slides from Kurose and Ross, Computer Networking, 5 th Edition

CS 43: Computer Networks. Layering & HTTP September 7, 2018

Application Layer. Pure P2P architecture. Client-server architecture. Processes communicating. Hybrid of client-server and P2P. Creating a network app

Introduction to the Application Layer. Computer Networks Term B14

Protocol Layers, Security Sec: Application Layer: Sec 2.1 Prof Lina Battestilli Fall 2017

Chapter 2: Application Layer. Chapter 2: application layer. outline. Some network apps. Client-server architecture. Application architectures

CS 3516: Advanced Computer Networks

CMSC 332 Computer Networking Web and FTP

Web, HTTP and Web Caching

Chapter II: Application Layer

Foundations of Telematics

Goal and A sample Network App

Computer Networks. Wenzhong Li. Nanjing University

Application layer. Some network apps. Client-server architecture. Hybrid of client-server and P2P. Pure P2P architecture. Creating a network app

Introduction to Computer Networking. Guy Leduc. Chapter 2 Application Layer. Chapter 2: outline

Chapter 2 Application Layer

HyperText Transfer Protocol

Chapter 2 Application Layer

EECS 3214: Computer Network Protocols and Applications

Introduction to Computer Networking. Guy Leduc. Chapter 2 Application Layer. Chapter 2: outline

Lecture 6 Application Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

CS 3516: Advanced Computer Networks

CSC 4900 Computer Networks: End-to-End Design

Applications & Application-Layer Protocols: The Web & HTTP

CMSC 322 Computer Networks Applications and End-To- End

CMPE 150/L : Introduction to Computer Networks. Chen Qian Computer Engineering UCSC Baskin Engineering Lecture 5

Networking. Layered Model. DoD Model. Application Layer. ISO/OSI Model

Layered Model. DoD Model. ISO/OSI Model

1-1. Switching Networks (Fall 2010) EE 586 Communication and. September Lecture 10

Computer Networks and Applications

Chapter 2 Application Layer

Application Protocols and HTTP

Chapter II: Application Layer

Client/Server Computing

Chapter 2. Computer Networking: A Top. 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012

SCS3004 Networking Technologies Application Layer Protocols

Applications & Application-Layer Protocols: The Web & HTTP

CSC 4900 Computer Networks:

Lecture 7b: HTTP. Feb. 24, Internet and Intranet Protocols and Applications

internet technologies and standards

Lecture 11. Transport Layer (cont d) Transport Layer 1

WWW: the http protocol

Chapter 2: application layer

Chapter 8 Security. Computer Networking: A Top Down Approach

Chapter 2 Application Layer

Computer Networks and Applications. Introduction(Protocol Layering, Security) & Application Layer (Principles, Web, FTP)

Lecture 7 Application Layer. Antonio Cianfrani DIET Department Networking Group netlab.uniroma1.it

CS4/MSc Computer Networking. Lecture 3: The Application Layer

ECE697AA Lecture 2. Today s lecture

Chapter 1 Introduction

CSCD 330 Network Programming Spring 2018

Chapter 2 Application Layer

1. What is a Computer Network? interconnected collection of autonomous computers connected by a communication technology

Network Applications Principles of Network Applications

Application Layer. CMPS 4750/6750: Computer Networks

Client/Server Computing & Socket Programming

Application Layer. Applications and application-layer protocols. Goals:

NWEN 243. Networked Applications. Transport layer and application layer

Application Layer Protocols

Computer Systems and Networks

Transport layer Internet layer

CS 3640: Introduction to Networks and Their Applications

Computer Networks and Applications. Introduction(Protocol Layering, Security) & Application Layer (Principles, Web, FTP)

Lecture Overview : Computer Networking. Applications and Application-Layer Protocols. Client-Server Paradigm

Chapter II: Application Layer

Application Layer Introduction; HTTP; FTP

Data Communication EDA344, DIT420 Description of Lab 1 and Optional Programming HTTP Assignment

Chapter 1: roadmap. 1.1 what is the Internet? 1.2 network edge. 1.3 network core

PLEASE READ CAREFULLY BEFORE YOU START

PLEASE READ CAREFULLY BEFORE YOU START

Review for Internet Introduction

Different Layers Lecture 21

Application Layer Protocols

Information Network Systems The application layer. Stephan Sigg

Wire Shark Lab1. Intro

CSEN 404 Introduction to Networks. Mervat AbuElkheir Mohamed Abdelrazik. ** Slides are attributed to J. F. Kurose

PLEASE READ CAREFULLY BEFORE YOU START

CS 455/555 Spring 2011 Weigle

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng.

PLEASE READ CAREFULLY BEFORE YOU START

Transcription:

DATA COMMUNICATOIN NETWORKING Instructor: Ouldooz Baghban Karimi Course Book: Computer Networking, A Top-Down Approach By: Kurose, Ross Introduction

Course Overview Basics of Computer Networks Internet & Protocol Stack Application Layer Transport Layer Network Layer Data Link Layer Advanced Topics Case Studies of Computer Networks Internet Applications Network Management Network Security Introduction 2

Application Layer Conceptual & implementation aspects of network application protocols Client-Server Peer to Peer Applications & application level protocols HTTP FTP SMTP/POP3/IMAP DNS Create Network Applications Socket API Introduction 3

Creating a Network Application application transport network data link physical Programs run on end systems Network core devices do not run user applications Communication over network Application Architectures Peer to peer Client-Server application transport network data link physical application transport network data link physical Introduction 4

Client-Server Structure Server Permanent IP address Always on host Data centers for scaling Client Communicate with server May be intermittently connected May have dynamic IP addresses Do not communicate directly with each other client/server Introduction 5

Peer to Peer Architecture Arbitrary end systems Direct communication peer-peer Peers request service from each other and provide service to each other in return Self scalability Every new peer, a new service capacity New service New demand Intermitted connection of peers Changed IP addresses Complex management Introduction 6

Process Communication Process Program running within an end host Process Communication Within the same host Inter-process communication Defined by OS Unication Defined by OS client process: process that initiates communication server process: process that waits to be contacted In different hosts Exchanging messages P2P applications have client and server processes as well Introduction 7

Sockets Process send/receive messages to/from their sockets Sending process relies on transport infrastructure on other side of door to deliver message to socket at receiving process application process socket application process controlled by app developer transport transport network link Internet network link controlled by OS physical physical Introduction 8

Addressing Processes IP Address of the host Enough? IP address Port numbers associated with the process Example HTTP: 80 Mail Server: 25 Example: HTTP message to gaia.cs.umass.edu IP address: 128.119.245.12 Port number: 80 Introduction 9

Application Layer Protocol Defines Types of messages exchanged e.g. request, response Message Syntax Fields in the message and their values Message Semantics Meaning of the information in the fields Open protocols: defined in RFCs allows for interoperability e.g., HTTP, SMTP Proprietary protocols: e.g., Skype Rules for when and how to send and receive messages Introduction 10

Transport Service Requirements Data Integrity Reliable transfer (FTP) Loss tolerant applications (Multimedia) Timing Low delay Online gaming VoIP Throughput Elastic Inelastic: Multimedia Security Introduction 11

Transport Service Requirements application data loss throughput time sensitive file transfer e-mail Web documents real-time audio/video stored audio/video interactive games text messaging no loss no loss no loss loss-tolerant loss-tolerant loss-tolerant no loss elastic no elastic no elastic no audio: 5kbps-1Mbps yes, 100 s video:10kbps-5mbps msec same as above few kbps up elastic yes, few secs yes, 100 s msec yes and no Introduction 12

Internet Transport Protocol Services TCP Reliable transport Flow control Congestion Control Connection Oriented Does not Provide Timing Minimum throughput Guarantees for security UDP Unreliable data transfer Does not provide Timing Minimum throughput Security Congestion Control Flow Control Why do we need UDP? Introduction 13

Internet Transport Protocol Services application application layer protocol underlying transport protocol e-mail remote terminal access Web file transfer streaming multimedia Internet telephony SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (e.g., YouTube), RTP [RFC 1889] SIP, RTP, proprietary (e.g., Skype) TCP TCP TCP TCP TCP or UDP TCP or UDP Introduction 14

Securing TCP TCP & UDP No encryption Cleartext passwords sent into socket traverse internet in cleartext Guarantees for security SSL Provides encrypted TCP connection Data integrity End-point authentication SSL Socket API Apps use SSL libraries which talk to TCP Cleartext passwords sent into socket traverse Internet encrypted Introduction 15

Web & HTTP Web Page Consists of objects HTML file JPEG image Audio file Base HTML file which includes several referenced objects Each object is addressable by a URL www.someschool.edu/somedept/pic.gif host name path name Introduction 16

HTTP: HyperText Transfer Protocol Application layer protocol Client-server model Client: browser that requests, receives and displays the Web objects Server: Web server sends objects in response to requests PC running Firefox browser iphone running Safari browser server running Apache Web server Introduction 17

HTTP Connections Uses TCP Client initiates TCP connection (creates socket) to server, port 80 Server accepts TCP connection from client HTTP messages (application layer messages) exchanged between browser (HTTP Client) & web serer 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 Introduction 18

HTTP Connections Non persistent HTTP At most one object sent over TCP connection After than connection is closed Downloading multiple objects requires multiple connections Persistent HTTP Multiple objects can be sent over single TCP connection between client and server Introduction 19

Non-persistent HTTP suppose user enters URL: (contains text, references to 10 jpeg images) www.someschool.edu/somedepartment/home.index 1a. HTTP client initiates TCP connection to HTTP server (process) at www.someschool.edu on port 80 2. HTTP client sends HTTP request message (containing URL) into TCP connection socket. Message indicates that client wants object somedepartment/home.index 1b. HTTP server at host www.someschool.edu waiting for TCP connection at port 80. accepts connection, notifying client 3. HTTP server receives request message, forms response message containing requested object, and sends message into its socket Introduction 20

Non-persistent HTTP 4. HTTP server closes TCP connection. 5. HTTP client receives response message containing html file, displays html. Parsing html file, finds 10 referenced jpeg objects 6. Steps 1-5 repeated for each of 10 jpeg objects Introduction 21

Non Persistent HTTP: Response Time RTT Round Trip Time Time for a packet to travel from client to server and back initiate TCP connection HTTP Response Time: 1RTT: initiate TCP connection 1 RTT: GTTP request & first few bytes of HTTP response to return file transmission time Non persistent HTTP response time = 2RTT+file transmission time RTT request file RTT file received time time time to transmit file Introduction 22

Persistent HTTP Non persistent HTTP problems Requires 2 RTT per object OS overhead for each TCP connection Browsers often open parallel TCP connections to fetch referenced objects Persistent HTTP Server leaves connection open after sending response Subsequent HTTP messages between same client-server sent over open connections Client sends requests as soon as it encounters a referenced object As little as one RTT for all the referenced objects Introduction 23

HTTP Request Message request line (GET, POST, HEAD commands) header lines carriage return, line feed at start of line indicates end of header lines carriage return character line-feed character GET /index.html HTTP/1.1\r\n Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n Accept-Language: en-us,en;q=0.5\r\n Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO-8859-1,utf-8;q=0.7\r\n Keep-Alive: 115\r\n Connection: keep-alive\r\n \r\n Introduction 24

HTTP Request Message: General Format method sp URL sp version cr lf header field name value cr lf ~ ~ request line header lines header field name cr lf value cr lf ~ entity body ~ body Introduction 25

Uploading From Input POST method Web page often includes form input Input is uploaded to server in entity body URL Method Uses GET method Input is uploaded in URL field of request line www.somesite.com/animalsearch?monkeys&banana Introduction 26

Method Types HTTP 1.0 GET POST HEAD asks server to leave requested object out of response HTTP 1.1 GET, POST, HEAD PUT Uploads file in entity body to path specified in URL field DELETE Deletes file specified in the URL field Introduction 27

Method Types status line (protocol status code status phrase) header lines data, e.g., requested HTML file HTTP/1.1 200 OK\r\n Date: Sun, 26 Sep 2010 20:09:20 GMT\r\n Server: Apache/2.0.52 (CentOS)\r\n Last-Modified: Tue, 30 Oct 2007 17:00:02 GMT\r\n ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n Content-Length: 2652\r\n Keep-Alive: timeout=10, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html; charset=iso-8859-1\r\n \r\n data data data data data... Introduction 28

HTTP Response Status Codes Status Code appears in the first line in the server to client response 200 OK request succeeded, requested object later in this msg 301 Moved Permanently requested object moved, new location specified later in this msg (Location:) 400 Bad Request request msg not understood by server 404 Not Found requested document not found on this server 505 HTTP Version Not Supported Introduction 29