The Application Layer HTTP and FTP

Similar documents
CSMC 412. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala Set 2. September 15 CMSC417 Set 2 1

Computer Networks Prof. Ashok K. Agrawala

Allows a user to copy files to/from remote hosts Usage:

CMSC 332 Computer Networking Web and FTP

Lecture 2: Applications and Application Programming

Computer Networks. Wenzhong Li. Nanjing University

Web, HTTP and Web Caching

The Application Layer: SMTP, FTP

Internet Protocol Stack! Principles of Network Applications! Some Network Apps" (and Their Protocols)! Application-Layer Protocols! Our goals:!

TFTP and FTP Basics BUPT/QMUL

Application Layer Introduction; HTTP; FTP

WWW: the http protocol

Outline of Lecture 3 Protocols

Layered Model. DoD Model. ISO/OSI Model

Review of Previous Lecture

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

CSCE 463/612 Networks and Distributed Processing Spring 2018

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

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

Announcements. The World Wide Web. Retrieving From the Server. Goals of Today s Lecture. The World Wide Web. POP3 Protocol

The World Wide Web. EE 122: Intro to Communication Networks. Fall 2006 (MW 4-5:30 in Donner 155) Vern Paxson TAs: Dilip Antony Joseph and Sukun Kim

Foundations of Telematics

21.1 FTP. Connections

CMPE 151: Network Administration. Servers

Applications & Application-Layer Protocols: FTP and (SMTP & POP)

CSC 4900 Computer Networks:

CSE/EE 461 HTTP and the Web

Application-layer Protocols and Internet Services

SOFTWARE ARCHITECTURE 11. DISTRIBUTED FILE SYSTEM.

Homework Number 2 Solutions

CS348: Computer Networks (SMTP, POP3, IMAP4); FTP

CS 356 Lab #1: Basic LAN Setup & Packet capture/analysis using Ethereal

Chapter 2 Application Layer

COMS3200/7201 Computer Networks 1 (Version 1.0)

Electronic Mail. Three Components: SMTP SMTP. SMTP mail server. 1. User Agents. 2. Mail Servers. 3. SMTP protocol

I apologize for being away last week...

HTTP 1.1 Web Server and Client

Chapter 2 Application Layer

Administrivia. Important correction about 3 vs. 4 units:

CN Assignment I. 1. With an example explain how cookies are used in e-commerce application to improve the performance.

Review for Internet Introduction

Internet applications

SCS3004 Networking Technologies Application Layer Protocols

GridFTP: FTP Extensions for the Grid

Request for Comments: 913 September 1984

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

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

Flash: an efficient and portable web server

Application Protocols and HTTP

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

Part 5: FTP More about this course about Internet

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

Networked Applications: Sockets. End System: Computer on the Net

Analyzing FTP Communications

Squirrel case-study. Decentralized peer-to-peer web cache. Traditional centralized web cache. Based on the Pastry peer-to-peer middleware system

Web Mechanisms. Draft: 2/23/13 6:54 PM 2013 Christopher Vickery

Improving HTTP Latency

Computer Networks - A Simple HTTP proxy -

Announcements. The World Wide Web. Goals of Today s Lecture. The World Wide Web HTML. Web Components

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

Named Data Networking (NDN) CLASS WEB SITE: NDN. Introduction to NDN. Updated with Lecture Notes. Data-centric addressing

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

Chapter 2 Application Layer

Assignment #2. Csci4211 Spring Due on March 6th, Notes: There are five questions in this assignment. Each question has 10 points.

Chapter 2 Application Layer

Features of a proxy server: - Nowadays, by using TCP/IP within local area networks, the relaying role that the proxy

Load Balancing Overview

Overview Content Delivery Computer Networking Lecture 15: The Web Peter Steenkiste. Fall 2016

Protocols. Networking CS 3470, Section 1 Sarah Diesburg

Additional laboratory

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

EECS 3214: Computer Network Protocols and Applications

Networked Applications: Sockets. Goals of Todayʼs Lecture. End System: Computer on the ʻNet. Client-server paradigm End systems Clients and servers

HTTP 1.1 Web Server and Client

Ethernet / TCP-IP - Training Suite Application level protocols

EEC-682/782 Computer Networks I

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

CS408: Black-box Testing

Project 1: Web Client and Server

HTTP/2: Ease the Transition, Remove Implementation Barriers. Robert Haynes Ronnie Dockery

Outlook 2010 Anywhere Setup

$ftp = Net::FTP->new("some.host.name", Debug => 0) or die "Cannot connect to some.host.name:

Application Layer: HTTP

Web Client And Server

Contents. TFTP configuration commands 28 display tftp client configuration 28 tftp-server acl 28 tftp 29 tftp client source 30 tftp ipv6 31

World-Wide Web Protocols CS 571 Fall Kenneth L. Calvert All rights reserved

FTP,HTTP. By Nidhi Jindal

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

Computer Networking. Chapter #1. Dr. Abdulrhaman Alameer

Contents. TFTP configuration commands 29 display tftp client configuration 29 tftp-server acl 29 tftp 30 tftp client source 32 tftp ipv6 33

HTTP Reading: Section and COS 461: Computer Networks Spring 2013

SC/CSE 3213 Winter Sebastian Magierowski York University CSE 3213, W13 L8: TCP/IP. Outline. Forwarding over network and data link layers

Internet Content Distribution

CC451 Computer Networks

Introduc)on to Computer Networks

DATA COMMUNICATOIN NETWORKING

CSCI-1680 WWW Rodrigo Fonseca

Lecture 25. Tuesday, November 21 CS 475 Networks - Lecture 25 1

CSCI-1680 WWW Rodrigo Fonseca

HTTP 1.1 Web Server and Client

Transcription:

The Application Layer HTTP and FTP

File Transfer Protocol (FTP) Allows a user to copy files to/from remote hosts Client program connects to FTP server provides a login id and password allows the user to explore the directories and download and upload files with the server A predecessor of the Web (RFC 959 in 1985) Requires user to know the name of the server machine and have an account on the machine and find the directory where the files are stored and know whether the file is text or binary and know what tool to run to render and edit the file That is, no URL, hypertext, and helper applications

Why Study FTP? Helps cement familiarity with text/status-code based protocols Illustrates use of multiple concurrent connections One for control (commands & replies) Depending on command, can be additional one for data Illustrates reversal of roles For data connection, FTP user s process can play the server role, FTP server can play the client role

Example commands Authentication USER: specify the user name to log in as PASS: specify the user s password Exploring the files LIST: list the files for the given file specification CWD: change to the given directory Downloading and uploading files TYPE: set type to ASCII (A) or binary image (I) RETR: retrieve the given file STOR: upload the given file Closing the connection QUIT: close the FTP connection

FTP Data Transfer Separate data connection To send lists of files (LIST) To retrieve a file (RETR) To upload a file (STOR) control data

Creating the Data Connection Client acts like a server Creates a socket Assigned an ephemeral port number by the kernel Listens on socket Waits to hear from FTP server socket

Creating Data Connection (cont.) But, the server doesn t know the port number So after starting to listen, client tells it to the server Using the PORT command on the control connection Server can tell the client a port to connect to using PASV or EPSV PORT <IP address, port #>

Why Out-of-Band Control? Avoids need to mark the end of the data transfer Data transfer ends by closing of data connection Yet, the control connection stays up Aborting a data transfer Can abort a transfer without killing the control connection which avoids requiring the user to log in again Done with an ABOR on the control connection Third-party file transfer between two hosts Data connection could go to a different host by sending a different client IP address to the server e.g., a user can coordinate a transfer between two servers But: this is rarely needed, and presents security issues

HTTP Server listens on a port (by default, 80) On connection, waits for a request Protocol (but not data) is in ASCII Sends response, maybe closes connection (client can ask it to stay open)

Parsing a URL http://www.niit.edu.pk/~tahir/tcpip/index.html Protocol Host File path on host

HTTP Request Format Request types: GET, PUT, POST, HEAD, DELETE A trivial browser request: http://localhost:8000

Other useful header fields Range: Request a partial range of data Authorization: Present authorization credentials to a server (not HTTPS) Proxy-Authorization: Present proxy credentials to a proxy server Referer: URL of the web page the user was on, when the HTTP request was made

HTTP Performance What matters most? Different kinds of requests Lots of small requests (loading a web page) Big request (fetching a download) Require different solutions

Small requests Latency matters Governed by RTT between hosts Two major causes of delay: Opening a TCP connection Data response-request Solutions: Persistent connections Pre-fetching Others??

Big requests Problem is throughput on bottleneck links (usually edge links) Use an HTTP proxy cache or mirror Can also improve latency!

Client-server vs Peer-to-peer Server can be a bottleneck Download time can scale down O(n) with n clients Scaling up server bandwidth can be expensive (CDNs) Slashdotting/flash crowds Peer-to-peer: get a bunch of end-hosts to collaboratively distribute content A common peer-to-peer challenge is finding whom to collaborate with