chapter 2, slide: 1 cs 372 – introduction to computer networks* monday june 28 announcements: r...

19
Chapter 2, slide: 1 CS 372 – introduction to computer networks* Monday June 28 Announcements: Lab 1 is due today Lab 2 is posted today and is due next Tuesday Assignment 1 is due tomorrow Quiz 1 is tomorrow and it covers chapter 1 wledgement: slides drawn heavily from Kurose & Ross d in part on slides by Bechir Hamdaoui and Paul D. Paulson.

Upload: julian-morton

Post on 11-Jan-2016

230 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Chapter 2, slide: 1

CS 372 – introduction to computer networks*Monday June 28

Announcements: Lab 1 is due today

Lab 2 is posted today and is due next Tuesday

Assignment 1 is due tomorrow Quiz 1 is tomorrow and it covers chapter 1

Acknowledgement: slides drawn heavily from Kurose & Ross

* Based in part on slides by Bechir Hamdaoui and Paul D. Paulson.

Page 2: 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

Chapter 2, slide: 2

Chapter 1: recapBy now, you should know:

the Internet and its components

circuit-switching networks vs. packet-switching networks

different network access technologies

the three Tiers 1, 2, and 3

layered architecture of networks

types of delays

Page 3: 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

Chapter 2, slide: 3

Chapter 2: Application LayerOur goals: conceptual and

implementation aspects of network application protocols transport-layer

service models client-server

paradigm peer-to-peer

paradigm

learn about protocols by examining popular application-level protocols HTTP, FTP, P2P

programming network applications socket API

Page 4: 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

Chapter 2, slide: 4

Some network apps

e-mail web instant messaging remote login P2P file sharing multi-user network

games streaming stored

video clips

voice over IP real-time video

conferencing grid computing

Page 5: 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

Chapter 2, slide: 5

Creating a network app

write programs that run on (different) end

systems communicate over

network e.g., web server software

communicates with browser software

little software written for devices in network core network core devices do

not run user applications

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

Page 6: 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

Chapter 2, slide: 6

Chapter 2: Application layer

Principles of network applications

Web and HTTP File transfer: FTP

P2P file sharing Socket programming

with TCP

Page 7: 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

Chapter 2, slide: 7

Application architectures

There are 3 types of architectures:

Client-server Peer-to-peer (P2P) Hybrid of client-server and P2P

Page 8: 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

Chapter 2, slide: 8

Client-server architectureserver:

always-on fixed/known IP address serves many clients at same time

clients: communicate with server only may be intermittently connected may have dynamic IP addresses do not communicate directly with

each other

E.g., of client-server archit.: Google, Amazon, MySpace,

YouTube,

client/server

Page 9: 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

Chapter 2, slide: 9

Pure P2P architecture no always-on server arbitrary end systems

directly communicate peers are intermittently

connected and change IP addresses

example: BitTorrent

Pros and cons: scalable and distributive difficult to manage not secure

peer-peer

Page 10: 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

Chapter 2, slide: 10

Hybrid of client-server and P2PSkype

voice-over-IP P2P application centralized server: finding address of remote party client-client connection: direct (not through server)

Instant messaging chatting between two users is P2P centralized service: client presence location

• user registers its IP address with central server when it comes online

• user contacts central server to find IP addresses of buddies

Page 11: 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

Chapter 2, slide: 11

Processes communicating

Process: is program running within a host.

processes in same host communicate using inter-process communication (managed 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

Page 12: 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

Chapter 2, slide: 12

Sockets

process sends/receives messages to/from its socket

socket analogous to door sending process shoves

message out door sending process relies on

transport infrastructure on other side of door which brings message to socket at receiving process

controlledby OS

process

TCP withbuffers,variables

socket

host orserver

process

TCP withbuffers,variables

socket

host orserver

Internet

controlled byapp developer

App.Prog.Interf (API): (1) choice of transport protocol; (2) ability to fix a few parameters

Page 13: 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

Chapter 2, slide: 13

Addressing processes to receive messages,

process must have identifier

host device has unique 32-bit IP address

Q: does IP address of host on which process runs suffice to identify the process?

identifier consists of: IP address (host) port numbers (process)

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.12 Port number: 80

more shortly…

A: No, many processes can be running on same host

Page 14: 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

Chapter 2, slide: 14

App-layer protocol defines

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, SMTPProprietary protocols: e.g., Skype

Question: why do we need an “App-layer protocol” ?

Page 15: 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

Chapter 2, slide: 15

What transport service does an app need?Data loss/reliability some apps (e.g., audio)

can tolerate some loss other apps (e.g., file

transfer, telnet) require 100% reliable data transfer

Timing some apps (e.g.,

Internet telephony, interactive games) require low delay to be “effective”

Bandwidth Bandwidth sensitive apps:

some apps (e.g., multimedia) require minimum amount of bandwidth to be “effective”

other apps (“elastic apps”) make use of whatever bandwidth they get

Security Data encryption/

Decryption Data Integrity End-point

authentication

Page 16: 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

Chapter 2, slide: 16

Transport service requirements of common apps

Application

file transfere-mail

Web documentsreal-time audio/video

stored audio/videointeractive gamesinstant messaging

Data loss

no lossno lossno lossloss-tolerant

loss-tolerantloss-tolerantno loss

Bandwidth

elasticelasticelasticaudio: 5kbps-1Mbpsvideo:10kbps-5Mbpssame as above few kbps upelastic

Time Sensitive

nononoyes, 100’s msec

yes, few secsyes, 100’s msecyes and no

Page 17: 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

Chapter 2, slide: 17

What services do Internet transport protocols provide?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?

Page 18: 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

Chapter 2, slide: 18

Internet apps: application, transport protocols

Application

e-mailremote terminal access

Web file transfer

streaming multimedia

Internet telephony

Applicationlayer protocol

SMTP [RFC 2821]Telnet [RFC 854]HTTP [RFC 2616]FTP [RFC 959]proprietary(e.g. Youtube)proprietary(e.g., Skype)

Underlyingtransport protocol

TCPTCPTCPTCPTCP or UDP

typically UDP

Page 19: 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

Chapter 2, slide: 19

Principles of network applications: Review Questions

Question 1:In P2P architecture, which process is the client and which one is the server?

Question 2: What information is used by a process to identify another process to communicate with?

Question 3: List 2 types of services an application may need from a transport protocol. Indicate whether TCP, UDP, neither, or both provide such a service

Answer 1:Client: who requestsServer: who responds

Answer 2: IP address of host Port number of

process

Answer 3: Reliability: TCP Timing: none Bandwidth: none