Top Banner
1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & CMPT 771/471: Internet Architecture & Protocols Protocols Introduction Introduction Instructor: Dr. Mohamed Hefeeda Instructor: Dr. Mohamed Hefeeda
31

1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

Dec 19, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

1

School of Computing Science

Simon Fraser University

CMPT 771/471: Internet Architecture & CMPT 771/471: Internet Architecture & Protocols Protocols

IntroductionIntroduction

Instructor: Dr. Mohamed HefeedaInstructor: Dr. Mohamed Hefeeda

Page 2: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

2

Course Objectives

Understand principles of designing and operating computer

networks structure and protocols of the Internet services that can/cannot be offered by the Internet

Know how to analytically analyze performance of a

system/protocol implement network protocols and applications

And, more importantly, … Have fun!

Page 3: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

3

Course Info

Most of the course will be lectures given by the instructor

Last 2 weeks, each graduate student gives a presentation on one of a preselected networking topics

Course web page

http://nsl.cs.sfu.ca/teaching/09/771/

Or access it from my web page:

http://www.cs.sfu.ca/~mhefeeda

Page 4: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

4

Course Info: Textbooks and References

Kurose and Rose, Computer Networking:  A top-down Approach Featuring the Internet, lastest ed.

Required Background materials Chapters 6 and 7: Wireless and Multimedia Networking

Hassan and Jain, High Performance TCP/IP Networking, 2004 

Several chapters on analyzing TCP/IP in different environments

Stallings, High-speed Networks and Internets: Performance and Quality of Service, 2002

Three chapters on (basics of) probability and queuing

Papers: will be posted on the course web page

Page 5: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

5

Course Info: Grading

Homework and presentations: 20% 3 – 4 problem sets

Projects: 40% Several projects; some in group of two students All in C Must read Assignment Policy

Exam: 40% Comprehensive In the last week of classes (during class time)

Page 6: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

6

Course Info: Topics

Internet Architecture and Services

TCP/IP Protocol Suit

Inter- and Intra-domain Routing Protocols

Introduction to Performance Modeling and Evaluation

TCP/IP Performance Modeling in Different Environments

Quality of Service Support in the Internet

Wireless Networks

Multimedia Networking

Overlays and Peer-to-Peer Computing

Page 7: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

7

Basic Networking Concepts

Page 8: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

8

Review of Basic Networking Concepts

Internet structure Protocol layering and encapsulation Internet services and socket programming Network Layer

Network types: Circuit switching, Packet switching Addressing, Forwarding, Routing

Transport layer Reliability and congestion control TCP, UDP

Link Layer Multiple Access Protocols Ethernet

Page 9: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

9

The Internet

Millions of hosts (end systems) Inter-connected, running

network apps

Diverse communication links fiber, copper, radio, satellite

Routers forward packets

Internet: “network of networks”

loosely hierarchical Public, versus private intranet

local ISP

companynetwork

regional ISP

router workstation

servermobile

Page 10: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

10

Internet structure: network of networks

roughly hierarchical at center: “tier-1” ISPs (e.g., MCI, Sprint, AT&T, Cable and

Wireless), national/international coverage treat each other as equals

Tier 1 ISP

Tier 1 ISP

Tier 1 ISP

Tier-1 providers interconnect (peer) privately

NAP

Tier-1 providers also interconnect at public network access points (NAPs)

Page 11: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

11

Tier-1 ISP: e.g., Sprint

Sprint US backbone network

Seattle

Atlanta

Chicago

Roachdale

Stockton

San Jose

Anaheim

Fort Worth

Orlando

Kansas City

CheyenneNew York

PennsaukenRelay

Wash. DC

Tacoma

DS3 (45 Mbps)OC3 (155 Mbps)OC12 (622 Mbps)OC48 (2.4 Gbps)

to/from customers

peering

to/from backbone

….

………POP: point-of-presence

Page 12: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

12

Internet structure: Tier-2 ISPs

“Tier-2” ISPs: smaller (often regional) ISPs Connect to one or more tier-1 ISPs, possibly other tier-2 ISPs

Tier 1 ISP

Tier 1 ISP

Tier 1 ISP

NAP

Tier-2 ISPTier-2 ISP

Tier-2 ISP Tier-2 ISP

Tier-2 ISP

Tier-2 ISP pays tier-1 ISP for connectivity to rest of Internet

Tier-2 ISP is customer oftier-1 provider

Tier-2 ISPs also peer privately with each other, interconnect at NAP

Page 13: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

13

Internet structure: Tier-3 ISPs

“Tier-3” ISPs and local ISPs last hop (“access”) network (closest to end systems)

Tier 1 ISP

Tier 1 ISP

Tier 1 ISP

NAP

Tier-2 ISPTier-2 ISP

Tier-2 ISP Tier-2 ISP

Tier-2 ISP

localISPlocal

ISPlocalISP

localISP

localISP Tier 3

ISP

localISP

localISP

localISP

Local and tier- 3 ISPs are customers ofhigher tier ISPsconnecting them to rest of Internet

Page 14: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

14

Internet structure: packet journey

a packet passes through many networks!

Tier 1 ISP

Tier 1 ISP

Tier 1 ISP

NAP

Tier-2 ISPTier-2 ISP

Tier-2 ISP Tier-2 ISP

Tier-2 ISP

localISPlocal

ISPlocalISP

localISP

localISP Tier 3

ISP

localISP

localISP

localISP

Page 15: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

15

Review of Basic Networking Concepts

Internet structure Protocol layering and encapsulation Internet services and socket programming Network Layer

Network types: Circuit switching, Packet switching Addressing, Forwarding, Routing

Transport layer Reliability and congestion control TCP, UDP

Link Layer Multiple Access Protocols Ethernet

Page 16: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

16

Protocol Layers

Networks are complex! many “pieces”:

hosts routers links of various

media applications protocols hardware, software

Question: Is there any hope of organizing structure of

network?

Or at least our discussion of networks?

Page 17: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

17

ticket (purchase)

baggage (check)

gates (load)

runway (takeoff)

airplane routing

departureairport

arrivalairport

intermediate air-trafficcontrol centers

airplane routing airplane routing

ticket (complain)

baggage (claim

gates (unload)

runway (land)

airplane routing

ticket

baggage

gate

takeoff/landing

airplane routing

Layering of Airline Functionality

Layers: each layer implements a service via its own internal-layer actions relying on services provided by layer below

Page 18: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

18

Why layering?

Dealing with complex systems: explicit structure allows identifying complex

relationships among system’s pieces modularization eases maintenance, updating of

systemchange of implementation of layer’s service

transparent to rest of systeme.g., change in gate procedure doesn’t affect

rest of system What is the downside of layering?

Page 19: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

19

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

PPP, Ethernet

physical: bits “on the wire”

application

transport

network

link

physical

Page 20: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

20

datagram

frame HtHnHl M

HtHn M

segment Ht M

message M

HtHnHl M

HtHn M

Ht M

M

application

transportnetwork

linkphysical

application

transportnetwork

linkphysical

linkphysical

networklink

physical

HtHnHl M

HtHn M

HtHnHl M

HtHn M

HtHnHl M HtHnHl M

source

destination

router

switch

Encapsulation

Page 21: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

21

Review of Basic Networking Concepts

Internet structure Protocol layering and encapsulation Internet services and socket programming Network Layer

Network types: Circuit switching, Packet switching Addressing, Forwarding, Routing

Transport layer Reliability and congestion control TCP, UDP

Link Layer Multiple Access Protocols Ethernet

Page 22: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

22

Internet Services

View the Internet as a communication infrastructure that provides services to apps

Web, email, games, e-commerce, file sharing, …

Two communication services Connectionless unreliable Connection-oriented reliable

Page 23: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

23

Internet Services

Connection-oriented Prepare for data

transfer ahead of time

establish connection set up state in the two communicating hosts

Usually comes with reliability, flow and congestion control

TCP: Transmission Control Protocol

Connectionless No connection set up,

simply send

Faster, less overhead

No reliability, flow control, or congestion control

UDP: User Datagram Protocol

How can we access these services?

Page 24: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

24

Network (Socket) Programming

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

process

TCP withbuffers,variables

socket

host orserver

process

TCP withbuffers,variables

socket

host orserver

Internet

controlledby OS

controlled byapp developer

Socket is the interface (API) between application and transport layer

Page 25: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

25

Addressing Processes

For a process to receive messages, it must have an identifier

A host has a unique32-bit IP address

Q: does the IP address of the host on which the process runs suffice for identifying the process?

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

We use ports Process is identified by:

IP address, Transport protocol, and Port number

Example port numbers: HTTP server: 80 (TCP) Mail server: 25 (TCP)

Page 26: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

26

Socket Programming

Socket API introduced in BSD 4.1 UNIX, 1981 explicitly created, used, released by apps client/server paradigm provides two services

• reliable, byte stream-oriented • unreliable datagram

Page 27: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

27

Socket Programming using TCP

TCP service: reliable transfer of bytes from one process to another

virtual pipe between sender and receiver

process

TCP withbuffers,

variables

socket

controlled byapplicationdeveloper

controlled byoperating

system

host orserver

process

TCP withbuffers,

variables

socket

controlled byapplicationdeveloper

controlled byoperatingsystem

host orserver

internet

Page 28: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

28

Socket Programming using TCP

wait for incomingconnection requestconnectionSocket =welcomeSocket.accept()

create socket,port=x, forincoming request:welcomeSocket =

ServerSocket()

create socket,connect to hostid, port=xclientSocket =

Socket()

closeconnectionSocket

read reply fromclientSocket

closeclientSocket

Server (running on hostid) Client

send request usingclientSocketread request from

connectionSocket

write reply toconnectionSocket

TCP connection setup

Page 29: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

29

Socket Programming using TCP

Server process must first be running, and creates a socket (door) that welcomes client’s contact,

then wait Client contacts server by creating local TCP socket using IP

address, port number of server process When client creates socket

client TCP establishes connection to server TCP

When contacted by client server TCP creates new socket for server process to

communicate with client• allows server to talk with multiple clients• source port numbers and IPs used to distinguish clients

Page 30: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

30

Socket programming using UDP

UDP Service: unreliable transfer of groups of bytes (datagrams) between client and server

no connection between client and server no handshaking sender explicitly attaches IP address and port of

destination to each packet server must extract IP address, port of sender from

received packet

transmitted data may be received out of order, or lost

Page 31: 1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.

31

Socket Programming using UDP

closeclientSocket

Server (running on hostid)

create socket,clientSocket = DatagramSocket()

Client

read reply fromclientSocket

Create datagram (hostid,port=x,data)send datagram request using clientSocket

create socket,port=x, forincoming request:serverSocket = DatagramSocket()

read request fromserverSocket

write reply toserverSocketspecifying clienthost address,port number