CMPT 771/471: Internet Architecture & Protocols

Slides:



Advertisements
Similar presentations
Protocol layers and Wireshark Rahul Hiran TDTS11:Computer Networks and Internet Protocols 1 Note: T he slides are adapted and modified based on slides.
Advertisements

Dr. Philip Cannata 1 Computer Networking. Dr. Philip Cannata 2.
Summer Workshop on Cyber Security Computer Networks Security (Part 1) Dr. Hamed Mohsenian-Rad University of California at Riverside and Texas Tech University.
James 1:5 If any of you lacks wisdom, he should ask God, who gives generously to all without finding fault, and it will be given to him.
Network Architecture and the OSI Reference Model Computer Networks Computer Networks Spring 2012 Spring 2012.
Kemal AkkayaWireless & Network Security 1 Department of Computer Science Southern Illinois University Carbondale CS591 – Wireless & Network Security Lecture.
Introduction1-1 Introduction to Computer Networks Our goal:  get “feel” and terminology  more depth, detail later in course  approach:  use Internet.
Networking Based on the powerpoint presentation of Computer Networking: A Top Down Approach Featuring the Internet, Third Edition, J.F. Kurose and K.W.
1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture & Protocols Introduction Instructor: Dr. Mohamed Hefeeda.
Lecture 3 Introduction 1-1 Chapter 1: roadmap 1.1 What is the Internet? 1.2 Network edge  end systems, access networks, links 1.3 Network core  circuit.
Networking Overview February 2, /2/2004 Assignments Due – Homework 0 Due – Reading and Warmup questions Work on Homework 1.
1-1 Foundation Objectives: 1.1 What’s the Internet? 1.2 Network edge 1.3 Network core 1.4 Network access and physical media 1.5 Internet structure and.
Network Architecture and the OSI Reference Model Computer Networks Computer Networks Term B10.
1 School of Computing Science Simon Fraser University CMPT 771/471: Internet Architecture and Protocols Socket Programming Instructor: Dr. Mohamed Hefeeda.
1-1 Internet Overview: roadmap 1.1 What is the Internet? 1.2 Network edge  end systems, access networks, links 1.3 Network core  circuit switching, packet.
Introduction© Dr. Ayman Abdel-Hamid, CS4254 Spring CS4254 Computer Network Architecture and Programming Dr. Ayman A. Abdel-Hamid Computer Science.
What’s the Internet: “nuts and bolts” view
Network Architecture and the OSI Reference Model Advanced Computer Networks Advanced Computer Networks D12 D12.
1: Introduction1 Part I: Introduction Goal: r get context, overview, “feel” of networking r more depth, detail later in course r approach: m descriptive.
Lecture 1 Internet Overview: roadmap 1.1 What is the Internet? 1.2 Network edge  end systems, access networks, links 1.3 Protocol layers, service models.
Throughput: Internet scenario
Introduction Protocol “layers” Networks are complex, with many “pieces”:  hosts  routers  links of various media  applications  protocols  hardware,
1 Week 2 Lecture 1 Layers (basics) Dr. Fei Hu. Review last lecture 2.
RSC Part I: Introduction Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are, mainly, part of the companion slides to.
Introduction1-1 COSC6377: Computer Networks Rong Zheng Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition.
CS 381 Introduction to computer networks Chapter 1 - Lecture 4 2/10/2015.
Instructor: Christopher Cole Some slides taken from Kurose & Ross book IT 347: Chapter 1.
Introduction1-1 Course Code:EE/TE533 Instructor: Muddathir Qamar.
CS 3214 Computer Systems Godmar Back Lecture 23. Announcements Project 5 due Dec 8 Exercise 10 handed out Exercise 11 coming before Thanksgiving CS 3214.
ECE 4400:427/527 - Computer Networks Spring 2015 Dr. Nghi Tran Department of Electrical & Computer Engineering Lecture 3: Network Architectures Dr. Nghi.
Introduction1-1 COSC6377: Computer Networks Rong Zheng Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition.
Introduction 1-1 “Real” Internet delays and routes  What do “real” Internet delay & loss look like?  Traceroute program: provides delay measurement from.
RSC Part I: Introduction Redes y Servicios de Comunicaciones Universidad Carlos III de Madrid These slides are, mainly, part of the companion slides to.
2: Application Layer1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012.
Introduction to Computer Networks
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.
TCP/IP Network.
Network Architecture and the OSI Reference Model Computer Networks Computer Networks Spring 2013 Spring 2013.
1 Computer Networks & The Internet Lecture 4 Imran Ahmed University of Management & Technology.
2: Application Layer1 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,
Network Architecture and the OSI Reference Model Advanced Computer Networks Advanced Computer Networks C13 C13.
1 ECE453 - Introduction to Computer Networks Lecture 1: Introduction.
Reference model. Goal: 2 message exchange between application processes.
CS 3830 Day 4 Introduction 1-1. Announcements  No office hour 12pm-1pm today only  Quiz on Friday  Program 1 due on Friday (put in DropBox on S drive)
1: Introduction1 Protocol “Layers” Networks are complex! r many “pieces”: m hosts m routers m links of various media m applications m protocols m hardware,
Marina Papatriantafilou – Introduction to computer communication Based on the book Computer Networking: A Top Down Approach, Jim Kurose, Keith Ross, Addison-Wesley.
Socket programming in C. Socket programming Socket API introduced in BSD4.1 UNIX, 1981 explicitly created, used, released by apps client/server paradigm.
Introduction 1-1 1DT057 Distributed Information Systems Chapter 1 Introduction.
Introduction and Overview of Network and Telecommunications.
CSEN 404 Introduction to Networks Amr El Mougy Lamia AlBadrawy.
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.
1 School of Computing Science Simon Fraser University CMPT 471: Computer Networking II Introduction Instructor: Dr. Mohamed Hefeeda.
NWEN 243 Networked Applications Lecture 12: Layer 4 – Transport NWEN 243 © , Kris Bubendorfer.
Computer Networks Dr. Adil Yousif CS Lecture 1.
Introduction and Overview of Network and Telecommunications
CS 3214 Computer Systems Networking.
Introduction to Networks
Part 0: Networking Review
Administrative Things
Slides taken from: Computer Networking by Kurose and Ross
CS 3214 Computer Systems Lecture 21 Godmar Back.
OSI Protocol Stack Given the post man exemple.
CS 3214 Computer Systems Networking.
Introduction and Overview of Network and Telecommunications (contd.)
ECE 4400:427/527 - Computer Networks Spring 2017
רשתות תקשורת מחשבים עמית דביר A note on the use of these ppt slides:
Chapter 1: roadmap 1.1 What is the Internet? 1.2 Network edge
Protocol “Layers” Question: Networks are complex! many “pieces”: hosts
Department of Computer Science Southern Illinois University Carbondale CS441 – Mobile & Wireless Computing Overview of Computer Networking Protocols.
Presentation transcript:

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

Course Objectives Understand Know how to And, more importantly, … 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!

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

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

Course Info: Grading Homework and presentations: 20% Projects: 40% 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)

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

Basic Networking Concepts

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

The Internet Millions of hosts (end systems) router workstation 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 company network regional ISP router workstation server mobile

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 NAP Tier-1 providers also interconnect at public network access points (NAPs) Tier 1 ISP Tier-1 providers interconnect (peer) privately Tier 1 ISP Tier 1 ISP

Tier-1 ISP: e.g., Sprint Sprint US backbone network … …. DS3 (45 Mbps) OC3 (155 Mbps) OC12 (622 Mbps) OC48 (2.4 Gbps) Seattle Atlanta Chicago Roachdale Stockton San Jose Anaheim Fort Worth Orlando Kansas City Cheyenne New York Pennsauken Relay Wash. DC Tacoma … to/from customers peering to/from backbone …. POP: point-of-presence

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-2 ISPs also peer privately with each other, interconnect at NAP Tier-2 ISP Tier-2 ISP pays tier-1 ISP for connectivity to rest of Internet Tier-2 ISP is customer of tier-1 provider Tier 1 ISP NAP Tier 1 ISP Tier 1 ISP

Internet structure: Tier-3 ISPs “Tier-3” ISPs and local ISPs last hop (“access”) network (closest to end systems) local ISP Tier 3 Local and tier- 3 ISPs are customers of higher tier ISPs connecting them to rest of Internet Tier-2 ISP Tier 1 ISP NAP Tier 1 ISP Tier 1 ISP

Internet structure: packet journey a packet passes through many networks! local ISP Tier 3 ISP local ISP local ISP local ISP Tier-2 ISP Tier 1 ISP NAP Tier 1 ISP Tier 1 ISP local ISP local ISP local ISP local ISP

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

Protocol Layers Question: 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?

Layering of Airline Functionality ticket (purchase) baggage (check) gates (load) runway (takeoff) airplane routing departure airport arrival intermediate air-traffic control centers ticket (complain) baggage (claim gates (unload) runway (land) ticket baggage gate takeoff/landing Layers: each layer implements a service via its own internal-layer actions relying on services provided by layer below

Why layering? Dealing with complex systems: explicit structure allows identifying complex relationships among system’s pieces modularization eases maintenance, updating of system change of implementation of layer’s service transparent to rest of system e.g., change in gate procedure doesn’t affect rest of system What is the downside of layering?

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

Encapsulation source destination application transport network link router switch message M application transport network link physical segment Ht M datagram Ht Hn M frame Ht Hn Hl M Ht Hn Hl M Ht Hn Hl M Ht Hn M Ht Hn M Ht Hn Hl M M Ht Hn Hl M Ht M Ht Hn M Ht Hn Hl M

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

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

How can we access these services? 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?

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 with buffers, variables socket host or server process TCP with buffers, variables socket host or server controlled by app developer Internet controlled by OS Socket is the interface (API) between application and transport layer

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)

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

Socket Programming using TCP TCP service: reliable transfer of bytes from one process to another virtual pipe between sender and receiver controlled by application developer controlled by application developer process TCP with buffers, variables socket process TCP with buffers, variables socket controlled by operating system controlled by operating system internet host or server host or server

Socket Programming using TCP Server (running on hostid) Client create socket, port=x, for incoming request: welcomeSocket = ServerSocket() TCP connection setup create socket, connect to hostid, port=x clientSocket = Socket() wait for incoming connection request connectionSocket = welcomeSocket.accept() send request using clientSocket read request from connectionSocket write reply to read reply from clientSocket close connectionSocket close clientSocket

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 A stream is a sequence of characters that flow into or out of a process.

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

Socket Programming using UDP Server (running on hostid) Client create socket, port=x, for incoming request: serverSocket = DatagramSocket() read request from serverSocket create socket, clientSocket = DatagramSocket() read reply from clientSocket Create datagram (hostid,port=x,data) send datagram request using clientSocket write reply to serverSocket specifying client host address, port number close clientSocket