* EECS 582 Advanced Operating Systems James Priestley University of Michigan Day 4: Internetworking January 12, 2012 Credit for the majority of these slides.

Slides:



Advertisements
Similar presentations
Layering and the network layer CS168, Fall 2014 Sylvia Ratnasamy
Advertisements

20.1 Chapter 20 Network Layer: Internet Protocol Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
IPv4 - The Internet Protocol Version 4
IS333, Ch. 26: TCP Victor Norman Calvin College 1.
1 CS 640: Introduction to Computer Networks Aditya Akella Lecture 2 Layering, Protocol Stacks, and Standards.
Intro (continued) and Design Principles Nick Feamster CS 3251: Computer Networking I Spring 2013.
CS 268: Computer Networking L-1 Intro to Computer Networks.
Internet -- network of networks –network delivers packets (& locates nodes) –router (gateway) moves packets between networks –IP interoperability on top.
Shivkumar Kalyanaraman Rensselaer Polytechnic Institute 1 ECSE-6961:Internet Protocols Quiz 1: Solutions Time: 60 min (strictly enforced) Points: 50 YOUR.
CS 268: Lecture 2 (Layering & End-to-End Arguments)
EE 122: Layering and the Internet Architecture Kevin Lai September 4, 2002.
EE 4272Spring, 2003 Protocols & Architecture A Protocol Architecture is the layered structure of hardware & software that supports the exchange of data.
Gursharan Singh Tatla Transport Layer 16-May
15-744: Computer Networking L-1 Intro to Computer Networks.
Process-to-Process Delivery:
1 CS 640: Introduction to Computer Networks Aditya Akella Lecture 1 Introduction
Communications Recap Duncan Smeed. Introduction 1-2 Chapter 1: Introduction Our goal: get “feel” and terminology more depth, detail later in course.
EPL606 Topic 1 Introduction Part B - Design Considerations 1 The majority of the slides in this course are adapted from the accompanying slides to the.
CS 268: Lecture 3 (Layering & End-to-End Arguments)
Chapter 1 Overview Review Overview of demonstration network
OSI Reference Model & Layered Communication Sritrusta Sukaridhoto.
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Protocol Layering Chapter 10. Looked at: Architectural foundations of internetworking Architectural foundations of internetworking Forwarding of datagrams.
Section 4 : The OSI Network Layer CSIS 479R Fall 1999 “Network +” George D. Hickman, CNI, CNE.
CSx760 Computer Networks1 Introduction to Network Protocols Kang Li.
Internet Addresses. Universal Identifiers Universal Communication Service - Communication system which allows any host to communicate with any other host.
TCP/IP Essentials A Lab-Based Approach Shivendra Panwar, Shiwen Mao Jeong-dong Ryoo, and Yihan Li Chapter 5 UDP and Its Applications.
Mukesh N. Tekwani Elphinstone College Mumbai
COP 5611 Operating Systems Spring 2010 Dan C. Marinescu Office: HEC 439 B Office hours: M-Wd 2:00-3:00 PM.
Introduction to Networks CS587x Lecture 1 Department of Computer Science Iowa State University.
Advance Computer Networking L-2 Design Considerations Acknowledgments: Lecture slides are from the graduate level Computer Networks course thought by Srinivasan.
Fundamentals of Computer Networks ECE 478/578 Lecture #19: Transport Layer Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
Computer Networking. 2 Outline 3 Objectives Understand the state-of-the-art in network protocols, architectures and applications Understand how networking.
1 Goals and Objectives Understand state-of-the-art in network protocols, architectures, and applications Process of networking research Constraints and.
1 The Internet and Networked Multimedia. 2 Layering  Internet protocols are designed to work in layers, with each layer building on the facilities provided.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 03_b Protocol Layering Instructor: Dr. Li-Chuan Chen Date: 09/15/2003 Based in part upon slides of Prof.
Internet Protocol ECS 152B Ref: slides by J. Kurose and K. Ross.
Univ. of TehranComputer Network1 Computer Networks Computer Networks (Graduate level) University of Tehran Dept. of EE and Computer Engineering By: Dr.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
Internetworking Internet: A network among networks, or a network of networks Allows accommodation of multiple network technologies Universal Service Routers.
Computer Security Workshops Networking 101. Reasons To Know Networking In Regard to Computer Security To understand the flow of information on the Internet.
15-744: Computer Networking L-1 Intro to Computer Networks.
CS 268: Computer Networking L-1 Intro to Computer Networks.
S305 – Network Infrastructure Chapter 5 Network and Transport Layers.
Protocol Layering Chapter 11.
1 CSE524: Lecture 2 Internet protocols in a nutshell (Protocols in practice)
1 Transport Layer: Basics Outline Intro to transport UDP Congestion control basics.
IP1 The Underlying Technologies. What is inside the Internet? Or What are the key underlying technologies that make it work so successfully? –Packet Switching.
McGraw-Hill Chapter 23 Process-to-Process Delivery: UDP, TCP Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
What is a Protocol A set of definitions and rules defining the method by which data is transferred between two or more entities or systems. The key elements.
Introduction to TCP/IP networking
Slides taken from: Computer Networking by Kurose and Ross
Scaling the Network: The Internet Protocol
CS4470 Computer Networking Protocols
15-744: Computer Networking
CS 268: Computer Networking
IP - The Internet Protocol
Advance Computer Networking
Process-to-Process Delivery:
15-744: Computer Networking
1 TRANSMISSION CONTROL PROTOCOL / INTERNET PROTOCOL (TCP/IP) K. PALANIVEL Systems Analyst, Computer Centre Pondicherry University, Puducherry –
IP - The Internet Protocol
Scaling the Network: The Internet Protocol
15-744: Computer Networking
Process-to-Process Delivery: UDP, TCP
IP - The Internet Protocol
Intro to Computer Networks
Network Basics and Architectures Neil Tang 09/05/2008
Presentation transcript:

* EECS 582 Advanced Operating Systems James Priestley University of Michigan Day 4: Internetworking January 12, 2012 Credit for the majority of these slides goes to Professor Dutta

* What is the Objective of Networking? Communication between applications on different computers “To facilitate the sharing of computer resources"

* Networking Constraints Must understand application needs/demands Traffic data rate Traffic pattern (bursty or constant bit rate) Traffic target (multipoint or single destination, mobile or fixed) Delay sensitivity Loss sensitivity

* Back in the Old Days…

* Circuit Switching R R R R R H H H H R R H R H: Hosts R: Routers

* Circuit Switching R R R R R H H H H R R H R H: Hosts R: Routers

* Packet Switching (Internet) Packets

* Packet Switching Interleave packets from different sources Efficient: resources used on demand Statistical multiplexing General Multiple types of applications Accommodates bursty traffic Addition of queues

* Characteristics of Packet Switching Store and forward Packets are self contained units Can use alternate paths – reordering Contention Congestion Delay

* Internet[work] A collection of interconnected networks Host: network endpoints (computer, PDA, light switch, …) Router: node that connects networks Internet vs. internet

* Networking Networks A B D C ? How can different networks communicate?

* Networking Networks A B D C GATEWAY

* Challenge Many differences between networks Address formats Performance – bandwidth/latency Packet size Loss rate/pattern/handling Routing How to translate between various network technologies?

* How To Find Nodes? Internet Computer 1 Computer 2 Need naming and routing

* Naming What’s the IP address for It is Translates human readable names to logical endpoints Local DNS Server Computer 1

* Routing R R R R R H H H H R R H R Routers send packet towards destination H: Hosts R: Routers

* Meeting Application Demands Reliability Corruption Lost packets Flow and congestion control Fragmentation In-order delivery Etc…

* What if the Data gets Corrupted? Internet GET windex.htmlGET index.html Solution: Add a checksum Problem: Data Corruption 0,99 6,7, ,57 1,2, 3 6 X

* What if Network is Overloaded? Problem: Network Overload Short bursts: buffer What if buffer overflows? Packets dropped Sender adjusts rate until load = resources → “congestion control” Solution: Buffering and Congestion Control

* What if the Data gets Lost? Internet GET index.html Problem: Lost Data Internet GET index.html Solution: Timeout and Retransmit GET index.html Acknowledgement

* Problem: Packet size Solution: Fragment data across packets What if the Data Doesn’t Fit? On Ethernet, max IP packet is 1.5kbytes Typical web page is 10kbytes GETindex.html GET index.html

* Solution: Add Sequence Numbers Problem: Out of Order What if the Data is Out of Order? GETx.htindeml GET x.htindeml GET index.html ml4 ind e 2x.ht3 GE T 1

* Lots of Functions Needed Link Multiplexing Routing Addressing/naming (locating peers) Reliability Flow control Fragmentation Etc….

* What is Layering? Modular approach to network functionality Example: Link hardware Host-to-host connectivity Application-to-application channels Application

* Protocols Module in layered structure Set of rules governing communication between network elements (applications, hosts, routers) Protocols define: Interface to higher layers (API) Interface to peer Format and order of messages Actions taken on receipt of a message

* Layering Characteristics Each layer relies on services from layer below and exports services to layer above Interface defines interaction Hides implementation - layers can change without disturbing other layers (black box)

* Layering Host Application Transport Network Link User AUser B Layering: technique to simplify complex systems

* E.g.: OSI Model: 7 Protocol Layers Physical: how to transmit bits Data link: how to transmit frames Network: how to route packets Transport: how to send packets end2end Session: how to tie flows together Presentation: byte ordering, security Application: everything else

* OSI Layers and Locations Switch Router Host Application Transport Network Data Link Presentation Session Physical

* Layer Encapsulation Get index.html Connection ID Source/Destination Link Address User AUser B

* Protocol Demultiplexing Multiple choices at each layer FTP HTTPTFTPNV TCP UDP IP NET 1 NET 2 NET n … TCP/UDPIP IPX Port Number Network Protocol Field Type Field

* Is Layering Harmful? Sometimes … Layer N may duplicate lower level functionality (e.g., error recovery) Layers may need same info (timestamp, MTU) Strict adherence to layering may hurt performance

* The need for an internet Why did we need an internet?

* Connecting Networks How to internetwork various network technologies ARPANET, X.25 networks, LANs, satellite networks, packet networks, serial links… Many differences between networks Address formats Performance – bandwidth/latency Packet size Loss rate/pattern/handling Routing

* Challenge 1: Address Formats Map one address format to another? Bad idea → many translations needed Provide one common format Map lower level addresses to common format

* Challenge 2: Different Packet Sizes Define a maximum packet size over all networks? Either inefficient or high threshold to support Implement fragmentation/re-assembly Who is doing fragmentation? Who is doing re-assembly?

* Gateway Alternatives Translation Difficulty in dealing with different features supported by networks Scales poorly with number of network types (N^2 conversions) Standardization “IP over everything” (Design Principle 1) Minimal assumptions about network Hourglass design

Standardization Minimum set of assumptions for underlying net Minimum packet size Reasonable delivery odds, but not 100% Some form of addressing unless point to point Important non-assumptions: Perfect reliability Broadcast, multicast Priority handling of traffic Internal knowledge of delays, speeds, failures, etc. Much engineering then only has to be done once

IP Hourglass Need to interconnect many existing networks Hide underlying technology from applications Decisions: Network provides minimal functionality “Narrow waist” Tradeoff: No assumptions, no guarantees. Technology Applications WWW phone... SMTP HTTP RTP... TCP UDP… IP ethernet PPP… CSMA async sonet... copper fiber radio...

* End-to-End Argument [Clark88] Deals with where to place functionality Inside the network (in switching elements) At the edges Argument There are functions that can only be correctly implemented by the endpoints – do not try to completely implement these elsewhere Guideline not a law

* Example: Reliable File Transfer Solution 1: make each step reliable, and then concatenate them Solution 2: end-to-end check and retry OS Appl. OS Appl. Host AHost B OK

E2E Example: File Transfer Even if network guaranteed reliable delivery Need to provide end-to-end checks E.g., network card may malfunction The receiver has to do the check anyway! Full functionality can only be entirely implemented at application layer; no need for reliability from lower layers Does FTP look like E2E file transfer? TCP provides reliability between kernels not disks Is there any need to implement reliability at lower layers? *

* Discussion Yes, but only to improve performance If network is highly unreliable Adding some level of reliability helps performance, not correctness Don’t try to achieve perfect reliability! Implementing a functionality at a lower level should have minimum performance impact on the applications that do not use the functionality

* Examples What should be done at the end points, and what by the network? Reliable/sequenced delivery? Addressing/routing? Security? What about Ethernet collision detection? Multicast? Real-time guarantees?

* Fragmentation IP packets can be 64KB Different link-layers have different MTUs Split IP packet into multiple fragments IP header on each fragment Various fields in header to help process Intermediate router may fragment as needed Where to do reassembly? End nodes – avoids unnecessary work Dangerous to do at intermediate nodes Buffer space Multiple paths through network

* Fragmentation is Harmful Uses resources poorly Forwarding costs per packet Best if we can send large chunks of data Worst case: packet just bigger than MTU Poor end-to-end performance Loss of a fragment Reassembly is hard Buffering constraints

* Path MTU Discovery Hosts dynamically discover minimum MTU of path Algorithm: Initialize MTU to MTU for first hop Send datagrams with Don’t Fragment bit set If ICMP “pkt too big” msg, decrease MTU What happens if path changes? Periodically (>5mins, or >1min after previous increase), increase MTU Some routers will return proper MTU MTU values cached in routing table

* IP Address Problem (1991) Address space depletion In danger of running out of classes A and B Why? Class C too small for most domains Very few class A – IANA (Internet Assigned Numbers Authority) very careful about giving Class B – greatest problem Sparsely populated – but people refuse to give it back

* IPv4 Routing Problems Core router forwarding tables were growing large Class A: 128 networks, 16M hosts Class B: 16K networks, 64K hosts Class C: 2M networks, 256 hosts 32 bits does not give enough space encode network location information inside address – i.e., create a structured hierarchy

* Questions? Comments? Discussion?