Arvind Krishnamurthy

Similar documents
Computer Networks COSC 6377 Lecture 1

Advanced Computer Networks

??? Traceroute. app. app. host. host. Apps talk to other apps with no real idea of what is inside the network

Component Function Example

Parts of a Network. app. router. link. host. Computer Networks 2

Review of Important Networking Concepts TCP/IP

TDTS21 Advanced Networking

Computer Networks COSC 6377 Lecture 1

Computer Networks. The Socket API (Project 1) & Traceroute (HW 1) ( 1.3.4, )

Network Virtualization and Data Center Networks Introduction

Nate Foster Cornell University Spring 2013

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin,

TCP/IP Networking. Training Details. About Training. About Training. What You'll Learn. Training Time : 9 Hours. Capacity : 12

Inter-networking. Problem. 3&4-Internetworking.key - September 20, LAN s are great but. We want to connect them together. ...

CS 457 Lecture 11 More IP Networking. Fall 2011

Networking and Internetworking 1

Introduction to Networking

The Data Link Layer. 32 PART I Networking Basics

Networking and Internetworking 1

Computer Networking Introduction

Network Model. Why a Layered Model? All People Seem To Need Data Processing

Computer Networks. More on Standards & Protocols Quality of Service. Week 10. College of Information Science and Engineering Ritsumeikan University

( A ) 1. WAP is a (A) protocol (B) hardware (C) software (D) network architecture

Hands-On TCP/IP Networking

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

On Distributed Communications, Rand Report RM-3420-PR, Paul Baran, August 1964

Lecture 3: Packet Forwarding

CS4700/CS5700 Fundaments of Computer Networks

Where we are in the Course

Transport Layer (TCP/UDP)

Networks Fall This exam consists of 10 problems on the following 13 pages.

Lecture 2: Internet Architecture

Fundamentals of Computer Networking AE6382

Fundamentals of IP Networking 2017 Webinar Series Part 4 Building a Segmented IP Network Focused On Performance & Security

ICS 351: Networking Protocols

Defining Networks with the OSI Model. Module 2

Announcements. IP Forwarding & Transport Protocols. Goals of Today s Lecture. Are 32-bit Addresses Enough? Summary of IP Addressing.

internet technologies and standards

IP Packet Switching. Goals of Todayʼs Lecture. Simple Network: Nodes and a Link. Connectivity Links and nodes Circuit switching Packet switching

Reti di Calcolatori I

Networking By: Vince

exam. Number: Passing Score: 800 Time Limit: 120 min CISCO Interconnecting Cisco Networking Devices Part 1 (ICND)

Chapter 2 - Part 1. The TCP/IP Protocol: The Language of the Internet

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

IP - The Internet Protocol. Based on the slides of Dr. Jorg Liebeherr, University of Virginia

Network Protocols - Revision

Introduction to the Internet

Copyleft 2005, Binnur Kurt. Objectives

19: Networking. Networking Hardware. Mark Handley

TCP/IP Fundamentals. Introduction. Practice Practice : Name. Date Period

416 Distributed Systems. Networks review; Day 1 of 2 Jan 5 + 8, 2018

6.829 Computer Networks

THE OSI MODEL. Application Presentation Session Transport Network Data-Link Physical. OSI Model. Chapter 1 Review.

CS4700/5700: Network fundamentals

Internet. Organization Addresses TCP/IP Protocol stack Forwarding. 1. Use of a globally unique address space based on Internet Addresses

Business Data Communications and Networking

0 TCP/IP overview. 0.1 The Internet

Chapter 7. Local Area Network Communications Protocols

Network layer: Overview. Network layer functions IP Routing and forwarding NAT ARP IPv6 Routing

Introduction to Internetworking

E&CE 358: Tutorial 1. Instructor: Sherman (Xuemin) Shen TA: Miao Wang

Computer Forensics: Investigating Network Intrusions and Cybercrime, 2nd Edition. Chapter 2 Investigating Network Traffic

IP Protocols. ALTTC/Oct

Network layer: Overview. Network Layer Functions

Networking Basics. EC512 Spring /15/2015 EC512 - Prof. Thomas Skinner 1

Network Access Layer Internet Layer Transport Layer Application Layer. Presentation. Transport. Physical

RMIT University. Data Communication and Net-Centric Computing COSC 1111/2061. Lecture 2. Internetworking IPv4, IPv6

Actual4Test. Actual4test - actual test exam dumps-pass for IT exams

Guide to Networking Essentials, 6 th Edition. Chapter 5: Network Protocols

Introduction to Networks

OSI Model with Protocols. Layer Name PDU Address Protocols Device

Introduction to Computer Networks

SYSTEMS ADMINISTRATION USING CISCO (315)

CompTIA Exam JK0-023 CompTIA Network+ certification Version: 5.0 [ Total Questions: 1112 ]

TCP/IP Protocol Suite and IP Addressing

EXAM - HP0-Y52. Applying HP FlexNetwork Fundamentals. Buy Full Product.

5105: BHARATHIDASAN ENGINEERING COLLEGE NATTARMPALLI UNIT I FUNDAMENTALS AND LINK LAYER PART A

Concept Questions Demonstrate your knowledge of these concepts by answering the following questions in the space that is provided.

IT220 Network Standards & Protocols. Unit 8: Chapter 8 The Internet Protocol (IP)

Last time. Network layer. Introduction. Virtual circuit vs. datagram details. IP: the Internet Protocol. forwarding vs. routing

Introduction to Computer Networks. CS 166: Introduction to Computer Systems Security

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

Novell TCP IP for Networking Professionals.

01/17/08 TDC /17/08 TDC363-03

EEC-684/584 Computer Networks

Introduction to Internetworking

EC441 Fall 2018 Introduction to Computer Networking Chapter4: Network Layer Data Plane

CSE 461 Midterm Winter 2018

ECE 650 Systems Programming & Engineering. Spring 2018

CCNA. Course Catalog

CSE/EE 461 Introduction to Computer Communication Networks. Why Study Networks?

How the Internet Works

Assignment - 1 Chap. 1 Wired LAN s

Internet Architecture and Experimentation

Data Communication Prof. A. Pal Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture 34 TCP/ IP I

ETSF05/ETSF10 Internet Protocols Network Layer Protocols

Networking Fundamentals

CSE/EE 461 The Network Layer. Application Presentation Session Transport Network Data Link Physical

Computer Networks and Mobile Systems. Shyam Gollakota

Date: June 4 th a t 1 4:00 1 7:00

Transcription:

Computer Networks Arvind Krishnamurthy Material based on courses at Stanford, Princeton, and MIT 1 Focus of the course??? 2 1

Focus of the course (2) Three networking topics: Communications Networking Distributed systems Our focus is on the middle layer 3 But, What is Networking? 4 2

A Plethora of Protocol Acronyms? SNMP WAP SIP IPX PPP MAC LLDP FTP UDP OSPF RTP ICMP HIP IMAP IGMP BGP PIM HTTP ECN RED ARP IP RIP TCP MPLS RTCP SMTP RTSP BFD CIDR NNTP TLS SACK NAT STUN DNS SSH DHCP VLAN VTP POP LISP TFTP LDP 5 A Heap of Header Formats? 6 3

TCP/IP Header Formats in Lego 7 A Big Bunch of Boxes? Router Deep Packet Inspection NAT Gateway WAN accelerator Label Switched Router Firewall Intrusion Detection System DNS server Hub Load balancer Base station Bridge DHCP server Scrubber Packet sniffer Route Reflector Switch Packet shaper Proxy Repeater 8 4

A Ton of Tools? arpwatch syslog traceroute snort nmap whois rancid dig net-snmp ping nslookup ntop tcpdump ipconfig iperf wget trat bro NDT dummynet wireshark mrtg 9 A Ton of Tools? arpwatch syslog traceroute nmap rancid whois net-snmp dig ping snort nslookup ntop tcpdump ipconfig iperf wget trat bro NDT dummynet wireshark mrtg 10 5

The Main Point 1. To learn how the Internet works» What really happens when you browse the web? What are TCP/IP, DNS, HTTP, NAT, VPNs, 802.11 etc. anyway? 2. To learn the fundamentals of computer networks 11 Why learn about the Internet? 1. Curiosity» 2. Impact on our world» 12 6

From this experimental network ARPANET ~1970 (a) Dec. 1969. (b) July 1970. (c) March 1971. 13 To this! Internet ~2005 An everyday institution used at work, home, and on-the-go Visualization contains millions of links Attribution: By The Opte Project [CC-BY-2.5], via Wikimedia Commons 14 7

Question What do you think are the issues that one has to tackle to grow from a small network to an extremely large network? 15 Internet Societal Impact An enabler of societal change Easy access to knowledge Electronic commerce Personal relationships Discussion without censorship 16 8

Internet Economic impact An engine of economic growth Advertising-sponsored search Long tail online stores Online marketplaces Crowdsourcing 17 The Main Point (2) 1. To learn how the Internet works 2. To learn the fundamentals of computer networks What hard problems must they solve? What design strategies have proven valuable? 18 9

Not a Course Goal To learn IT job skills How to configure equipment e.g., Cisco certifications But course material is relevant, and we use hands-on tools 19 Course Mechanics Course Administration Everything you need to know will be on the course web page: http://www.cs.washington.edu/csep561/ Teaching Assistants: Yuchen & Ming 10

Course Logistics 1. Readings 2. Weekly reports: 25% 3. Projects/Homeworks: 75% In groups of two If you want to work individually, then you can just do assignments 1 and 2 (with different deadlines) Details on website 21 Assignment Framework Mininet emulation system from Stanford Allows you to create nodes, switches, links all on a single machine Assignment 1: TCP dynamics Assignment 2: Build a simple router Assignment 3: Build a NAT 22 11

Topics 23 Topics 24 12

Topics 25 Exercise Consider a web object fetch index.html from nytimes.com What are all the steps involved in performing the fetch? 26 13

Key Interfaces Between (1) apps and network, and (2) network components More formal treatment later on app host 27 Key Interfaces (2) 1. Network-application interfaces define how apps use the network Sockets are widely used in practice app host 28 14

Key Interfaces (3) 2. Network-network interfaces define how nodes work together Traceroute can peek in the network app host 29 Peeking inside the Network with Traceroute 15

Network Service API Hides Details Apps talk to other apps with no real idea of what is inside the network This is good! But you may be curious app app??? host host 31 Traceroute Widely used command-line tool to let hosts peek inside the network On all OSes (tracert on Windows) Developed by Van Jacobson ~1987 Uses a network-network interface (IP) in ways we will explain later 32 16

Traceroute (2) Probes successive hops to find network path... Local Host Remote Host 33 Traceroute (3) Local Host 1 hop 2 hops... 3 hops N-1 hops N hops Remote Host 34 17

Using Traceroute 35 Using Traceroute (2) ISP names and places are educated guesses Home 1 hop tde 3 hops Telefonica 4 hops Level3 6 hops pnw-gigapop 1 hop UW 3 hops My computer... 100 ms 180 ms UW >200 ms NYC San Jose Seattle www.uw.edu (www1.cac.washington.edu) 36 18

Traceroute to another commercial webserver -bash-3.1$ traceroute www.nyse.com traceroute to www.nyse.com (209.124.184.150), 30 hops max, 40 byte packets 1 acar-hsh-01-vlan75.cac.washington.edu (128.208.2.100) 0.327 ms 0.353 ms 0.392 ms 2 uwcr-hsh-01-vlan3904.cac.washington.edu (205.175.110.17) 0.374 ms 0.412 ms 0.443 ms 3 uwcr-hsh-01-vlan1901.cac.washington.edu (205.175.103.5) 0.595 ms 0.628 ms 0.659 ms 4 uwbr-ads-01-vlan1902.cac.washington.edu (205.175.103.10) 0.445 ms 0.472 ms 0.501 ms 5 ccar1-ads-ge-0-0-0-0.pnw-gigapop.net (209.124.176.32) 0.679 ms 0.747 ms 0.775 ms 6 a209.124.184.150.deploy.akamaitechnologies.com.184.124.209.in-addr.arpa (209.124.184.150) 0.621 ms 0.456 ms 0.419 ms What is going on? -bash-3.1$ nslookup www.nyse.com Name: a789.g.akamai.net Address: 209.124.184.137 The Socket API ( 1.3.4, 6.1.2-6.1.4) 19

Network-Application Interface Defines how apps use the network Lets apps talk to each other via hosts; hides the details of the network app app host host 39 Motivating Application Simple client-server setup reply request 40 20

Motivating Application (2) Simple client-server setup Client app sends a request to server app Server app returns a (longer) reply This is the basis for many apps! File transfer: send name, get file ( 6.1.4) Web browsing: send URL, get page Echo: send message, get it back Let s see how to write this app 41 Socket API Simple abstraction to use the network The network service API used to write all Internet applications Part of all major OSes and languages; originally Berkeley (Unix) ~1983 Supports two kinds of network services Streams: reliably send a stream of bytes» Datagrams: unreliably send separate messages. (Ignore for now.) Question: when would you use streams vs. datagrams? 42 21

Socket API (2) Sockets let apps attach to the local network at different ports Socket, Port #1 Socket, Port #2 43 Socket API (3) Primitive SOCKET BIND LISTEN ACCEPT CONNECT SEND RECEIVE CLOSE Meaning Create a new communication endpoint Associate a local address with a socket Announce willingness to accept connections; give queue size Passively establish an incoming connection Actively attempt to establish a connection Send some data over the connection Receive some data from the connection Release the connection 44 22

Using Sockets Client (host 1) Time Server (host 2) 45 Using Sockets (2) Client (host 1) Time Server (host 2) 1: socket 1: socket 2: bind connect 3: listen 4: accept* 5: connect* request 6: recv* 7: send 8: recv* reply 9: send disconnect 10: close 10: close *= call blocks 46 23

Client Program (outline) socket() getaddrinfo() connect() send() recv() close() // make socket // server and port name // www.example.com:80 // connect to server [block] // send request // await reply [block] // do something with data! // done, disconnect 47 socket() getaddrinfo() bind() listen() accept() recv() send() close() Server Program (outline) // make socket // for port on this host // associate port with socket // prepare to accept connections // wait for a connection [block] // wait for request // send the reply // eventually disconnect 48 24

Protocols and Layering ( 1.3) Networks Need Modularity The network does much for apps: Make and break connections Find a path through the network Transfers information reliably Transfers arbitrary length information Send as fast as the network allows Shares bandwidth among users Secures information in transit Lets many new hosts be added 50 25

Networks Need Modularity The network does much for apps: Make and break connections Find We a need path through a form the of network Transfers information reliably modularity, to help Transfers arbitrary length information Send manage as fast as complexity the network allows Shares and support bandwidth among reuseusers Secures information in transit Lets many new hosts be added 51 Protocols and Layers Protocols and layering is the main structuring method used to divide up network functionality Each instance of a protocol talks virtually to its peer using the protocol Each instance of a protocol uses only the services of the lower layer 52 26

Protocols and Layers (2) Protocols are horizontal, layers are vertical Instance of protocol X X Protocol X X Peer instance Lower layer instance (of protocol Y) Y Service provided by Protocol Y Y Node 1 Node 2 Question: what is an example of a protocol and what abstraction does it provide/rely on? 53 Protocols and Layers (3) Set of protocols in use is called a protocol stack 54 27

Protocols and Layers (4) Protocols you ve probably heard of: TCP, IP, 802.11, Ethernet, HTTP, SSL, DNS, and many more An example protocol stack Used by a web browser on a host that is wirelessly connected to the Internet 55 Encapsulation Encapsulation is the mechanism used to effect protocol layering Lower layer wraps higher layer content, adding its own information to make a new message for delivery Like sending a letter in an envelope; postal service doesn t look inside 56 28

Encapsulation (2) HTTP TCP IP 802.11 57 Encapsulation (3) HTTP HTTP HTTP HTTP TCP HTTP TCP TCP TCP HTTP IP TCP HTTP IP IP IP TCP HTTP 802.11 IP TCP HTTP 802.11 (wire) 802.11 802.11 IP TCP HTTP 802.11 IP TCP HTTP 58 29

Encapsulation (4) Normally draw message like this: Each layer adds its own header 802.11 IP TCP HTTP First bits on the wire Last bits More involved in practice Trailers as well as headers, encrypt/compress contents Segmentation (divide long message) and reassembly 59 Demultiplexing Incoming message must be passed to the protocols that it uses SMTP HTTP DNS TCP UDP IP ARP Ethernet?? 60 30

Demultiplexing (2) Done with demultiplexing keys in the headers SMTP HTTP DNS TCP port number TCP UDP IP protocol field IP ARP Ethertype value Host Ethernet Ethernet IP TCP HTTP Incoming message 61 Protocols What are the implications of protocols and layering? Are there any downsides to protocols/layering? Are there any performance costs? 62 31

Advantage of Layering Using information hiding to connect different systems Browser HTTP TCP IP 802.11 Server HTTP TCP IP Ethernet 63 Guidance What functionality should we implement at which layer? This is a key design question Reference models provide frameworks that guide us» 64 32

OSI 7 layer Reference Model A principled, international standard, to connect systems Influential, but not used in practice. (Woops) Provides functions needed by users Converts different representations Manages task dialogs Provides end-to-end delivery Sends packets over multiple links Sends frames of information Sends bits as signals 65 Internet Reference Model A four layer model based on experience; omits some OSI layers and uses the IP as the network layer. 4. Application Programs that use network service 3. Transport Provides end-to-end data delivery 2. Internet Send packets over multiple networks 1. Link Send frames over a link 66 33

Internet Reference Model (2) What are examples of common protocols in each layer? 4. Application 3. Transport 2. Internet 1. Link 67 Internet Reference Model (3) IP is the narrow waist of the Internet Supports many different links below and apps above 4. Application 3. Transport 2. Internet SMTP HTTP RTP DNS TCP IP UDP 1. Link Ethernet Cable DSL 3G 802.11 68 34

IP Suite: End Hosts vs. Routers host host HTTP HTTP message HTTP TCP TCP segment TCP router router IP IP packet IP IP packet IP IP packet IP Ethernet interface Ethernet interface SONET interface SONET interface Ethernet interface Ethernet interface 69 Layer-based Names (2) For devices in the network: Repeater Physical Physical Switch (or bridge) Router Link Network Link Link Network Link 70 35

Layer-based Names (3) For devices in the network: Proxy or middlebox or gateway App App Transport Transport Network Network Link Link But they all look like this! 71 A Note About Layers They are guidelines, not strict May have multiple protocols working together in one layer May be difficult to assign a specific protocol to a layer 72 36

Best-Effort Packet-Delivery Service Host-Network Division of Labor Packet switching Divide messages into a sequence of packets Headers with source and destination address Best-effort delivery Packets may be lost Packets may be corrupted Packets may be delivered out of order host host network 37

Host-Network Interface: Why Packets? Data traffic is bursty Logging in to remote machines Exchanging e-mail messages Don t want to waste bandwidth No traffic exchanged during idle periods Better to allow multiplexing Different transfers share access to same links Packets can be delivered by most anything RFC 1149: IP Datagrams over Avian Carriers Host-Network Interface: Why Best-Effort? Never having to say you re sorry Don t reserve bandwidth and memory Don t do error detection & correction Don t remember from one packet to next Easier to survive failures Transient disruptions are okay during failover Can run on nearly any link technology Greater interoperability and evolution 38

Intermediate Transport Layer But, applications want efficient, accurate transfer of data in order, in a timely fashion Let the end hosts handle all of that (An example of the end-to-end argument ) Transport layer can optionally Detect and retransmit lost packets Put out-of-order packets back in order Detect and handle corrupted packets Avoid overloading the receiver <insert your requirement here> Directories and Routing 78 39

Relationship Between Layers link session name path address 79 Directories: Mapping Name to Address link session name path address 80 40

Types of Directories Simplistic designs Ask everyone (e.g., flooding in ARP) Tell everyone (e.g., pushing /etc/hosts) Central directory Scalable distributed designs Hierarchical namespace (e.g., DNS) Flat name space (e.g., Distributed Hash Table) 81 Routing: Mapping Link to Path link session name path address 82 41

Path Computation Spanning tree (e.g., Ethernet) One tree that connects every pair of nodes Shortest paths (e.g., OSPF, IS-IS, RIP) Shortest-path tree rooted at each node Locally optimal paths (e.g., BGP) Each node selects the best among its neighbors End-to-end paths (e.g., source routing) Each node picks the best end-to-end path 83 Network Discovery and Bootstrapping 84 42

Relationship Between Layers link session name path address 85 Three Kinds of Identifiers Host Name IP Address MAC Address Example www.cs.princeton.edu 128.112.7.156 00-15-C5-49-04-A9 Size Hierarchical, human readable, variable length Hierarchical, machine readable, 32 bits (in IPv4) Flat, machine readable, 48 bits Read by Humans, hosts IP routers Switches in LAN Allocation, top-level Domain, assigned by registrar (e.g., for.edu) Variable-length prefixes, assigned by ICANN, RIR, or ISP Fixed-sized blocks, assigned by IEEE to vendors (e.g., Dell) Allocation, low-level Host name, local administrator Interface, by DHCP or an administrator Interface, by vendor 86 43

Learning a Host s Address me adapter adapter you Who am I? Hard-wired: MAC address Static configuration: IP interface configuration Dynamically learned: IP address configured by DHCP Who are you? Hard-wired: IP address in a URL, or in the code Dynamically looked up: ARP or DNS 87 Mapping Between Identifiers Dynamic Host Configuration Protocol (DHCP) Given a MAC address, assign a unique IP address and tell host other stuff about the Local Area Network To automate the boot-strapping process Address Resolution Protocol (ARP) Given an IP address, provide the MAC address To enable communication within the Local Area Network Domain Name System (DNS) Given a host name, provide the IP address Given an IP address, provide the host name 88 44

Dynamic Host Configuration Protocol arriving client DHCP server Host learns IP address, Subnet mask, Gateway address, DNS server(s), and a lease time. 89 Address Resolution Protocol (ARP) Every host maintains an ARP table (IP address, MAC address) pair Consult the table when sending a packet Map destination IP address to destination MAC address Encapsulate and transmit the data packet But, what if the IP address is not in the table? Sender broadcasts: Who has IP address 1.2.3.156? Receiver responds: MAC address 58-23-D7-FA-20-B0 Sender caches the result in its ARP table 90 45

Domain Name System Host at cis.poly.edu wants IP address for gaia.cs.umass.edu local DNS server dns.poly.edu 2 3 4 5 root DNS server TLD DNS server 1 8 7 6 Recursive query: #1 Iterative queries: #2, 4, 6 requesting host cis.poly.edu authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu91 Questions Should addresses correspond to the interface (point of attachment) or to the host? Why do we have all three identifiers? Do we need all three? What should be done to prevent spoofing of addresses? 46