Internet Architecture

Slides:



Advertisements
Similar presentations
Cs/ee 143 Communication Networks Chapter 6 Internetworking Text: Walrand & Parekh, 2010 Steven Low CMS, EE, Caltech.
Advertisements

CCNA – Network Fundamentals
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
Network Architectures Week 3 Part 2. Comparing The Internet & OSI.
5-1 Data Link Layer r Today, we will study the data link layer… r This is the last layer in the network protocol stack we will study in this class…
Defining Network Protocols Application Protocols –Application Layer –Presentation Layer –Session Layer Transport Protocols –Transport Layer Network Protocols.
Mike Freedman Fall 2012 (TTh 1:30-2:50 in COS 402) COS 561: Advanced Computer Networks The Host.
Lecture 8 Modeling & Simulation of Communication Networks.
IST 228\Ch3\IP Addressing1 TCP/IP and DoD Model (TCP/IP Model)
Operating Systems Lesson 10. Networking Communications protocol is the set of standard rules for ◦ Data representation ◦ Signaling ◦ Authentication ◦
Introduction to Networks CS587x Lecture 1 Department of Computer Science Iowa State University.
Fundamentals of Computer Networks ECE 478/578 Lecture #19: Transport Layer Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
ECE 526 – Network Processing Systems Design Networking: protocols and packet format Chapter 3: D. E. Comer Fall 2008.
CS1Q Computer Systems Lecture 17 Simon Gay. Lecture 17CS1Q Computer Systems - Simon Gay2 The Layered Model of Networks It is useful to think of networks.
The Inter-network is a big network of networks.. The five-layer networking model for the internet.
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.
Data Link Layer Moving Frames. Link Layer Protocols: ethernet, wireless, Token Ring and PPP Has node-to-node job of moving network layer.
CSE 6590 Department of Computer Science & Engineering York University 111/9/ :26 AM.
Networking Fundamentals. Basics Network – collection of nodes and links that cooperate for communication Nodes – computer systems –Internal (routers,
Networking Basics CCNA 1 Chapter 11.
Lecture 4 Overview. Ethernet Data Link Layer protocol Ethernet (IEEE 802.3) is widely used Supported by a variety of physical layer implementations Multi-access.
Lecture Topics: 11/27 Networks Layered Model Ethernet IP.
1 OSI and TCP/IP Models. 2 TCP/IP Encapsulation (Packet) (Frame)
1 CSE524: Lecture 2 Internet protocols in a nutshell (Protocols in practice)
1 Kyung Hee University Chapter 11 User Datagram Protocol.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
End-host IP: MAC: 11:11:11:11:11 gateway IP: MAC: 22:22:22:22:22 Google server IP: interne t interface DNS server IP:
Roadmap  Introduction to Basics  Computer Network – Components | Classification  Internet  Clients and Servers  Network Models  Protocol Layers.
1 Computer Networks Chapter 5. Network layer The network layer is concerned with getting packets from the source all the way to the destination. Getting.
Computer Communication Networks
Introduction to Networks
Chapter 11 User Datagram Protocol
Virtualization of networks
Chapter 9: Transport Layer
CIS 700-5: The Design and Implementation of Cloud Networks
Instructor Materials Chapter 9: Transport Layer
Link Layer 5.1 Introduction and services
A quick intro to networking
A Typical Connection Scenario
COS 561: Advanced Computer Networks
Course Review 2015 Computer networks 赵振刚
ICMP ICMP – Internet Control Message Protocol
Understand the OSI Model Part 2
Lecture 6: TCP/IP Networking By: Adal Alashban
COS 561: Advanced Computer Networks
Introduction to Networks
Subject Name: Computer Communication Networks Subject Code: 10EC71
CS 457 – Lecture 10 Internetworking and IP
Topic 5: Communication and the Internet
Chapter 14 User Datagram Protocol (UDP)
Chapter 6 The Data Link layer
I. Basic Network Concepts
TCP/IP Networking An Example
Process-to-Process Delivery:
Wide Area Networks and Internet CT1403
TCP/IP Protocol Suite: Review
TCP/IP Protocol Suite: Review
Lecture 2: Overview of TCP/IP protocol
TCP and UDP Layer 3 of the TCP/IP protocol stack. Transport layer
CPEG514 Advanced Computer Networkst
Distributed Systems CS
CS4470 Computer Networking Protocols
Internet Architecture
Synthesis A day in the life of a web request
Process-to-Process Delivery: UDP, TCP
Computer Networks Protocols
Congestion Michael Freedman COS 461: Computer Networks
Lecture 5, Computer Networks (198:552)
Distributed Systems CS
Presentation transcript:

Internet Architecture Lecture 2, Computer Networks (198:552) Fall 2019

What happens when you browse? (1) Request gmail.com for your mail (2) Google churns on your request (3) Receive & display the response! The Internet

But how does your laptop know where the google But how does your laptop know where the google.com server is, and how to reach it?

But how does your laptop know where the google But how does your laptop know where the google.com server is, and how to reach it? Addressing Both your laptop and google.com have many addresses.

But how does your laptop know where the google But how does your laptop know where the google.com server is, and how to reach it? Routing There may be many kinds of networks between you and google, each using its own way to stitch together the path

Addressing

Rutgers campus network The Internet Rutgers campus network Transport address (port) Ex: 64058 With which app is this conversation associated? Network address (IP address) Ex: 192.168.1.4 Whose network am I attached to? Hardware address (MAC address) Ex: 00-15-C5-49-04-A9 How do I identify my network interface (device)?

Google’s network The Internet Application address (URL) Ex: mail.google.com Transport address (port) Ex: 4096 Network address (IP address) Ex: 10.1.1.104 Hardware address (MAC address) Ex: 00-15-C5-49-04-A7

Software and hardware for networking are arranged in layers. Layering provides modularity: Each layer has a distinct function & interacts with other layers through well-defined interfaces.

Modularity through layering Protocols “stacked” in endpoint and router software/hardware Apps: useful user-level functions HTTP FTP TFTP NV TCP UDP IP Ether ATM WiFi … Transport: provide guarantees to apps Network: best-effort global pkt delivery Link: best-effort local pkt delivery IP is the “thin waist” of the Internet, enabling interoperability across apps & network media

Packet takes on info at each layer The Internet Link layer Network Transport Applications Link layer Network Transport Applications Packet starts as an app “payload” Packet takes on info at each layer The Internet

Link layer Network Transport Applications Link layer Network Transport Applications Network Network Link layer Link layer

Routers do not typically have transport or app functionality Link layer Network Transport Applications Link layer Network Transport Applications Routers do not typically have transport or app functionality (more on this later.) Network Network Link layer Link layer

Time for an activity

Where do all the addresses come from? You, as the user, only know the application address of your destination (google.com) Do we need all these addresses, or can we get rid of some? Should addresses correspond to the endpoint, or point of attachment, or to the application? How does your laptop find all the other addresses?

Addresses and what they correspond to Transport address (TCP/UDP port): app-level conversation Network-level address (IP address): point of attachment Link-level address (MAC address): device

Directories Directories map a name to an address Simplistic designs Central directory Ask everyone (e.g., flooding in ARP) Tell everyone (e.g., pushing /etc/hosts) Fix a value a priori (e.g., dst port 80 is typically HTTP) Scalable distributed designs Hierarchical namespace (e.g., Domain Name System) Flat name space (e.g., Distributed Hash Table)

authoritative DNS server Domain Name System root DNS server Host at cis.poly.edu wants IP address for gaia.cs.umass.edu 2 3 TLD DNS server 4 local DNS server dns.poly.edu 5 7 6 1 8 authoritative DNS server dns.cs.umass.edu requesting host cis.poly.edu Recursive query: #1 Iterative queries: #2, 4, 6 gaia.cs.umass.edu

Routing

Path computation: Routing “I know where you are, but how do I get there?” End-to-end paths (e.g., source routing) Each node picks the best end-to-end path 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 More on this in the next lecture…

The Internet’s approach to routing aggregate routers into regions known as “autonomous systems” (AS) (a.k.a. “domains”) intra-AS routing routing among hosts, routers in same AS (“network”) all routers in AS must run same intra-domain protocol routers in different AS can run different intra-domain routing protocol gateway router: at “edge” of its own AS, has link(s) to router(s) in other AS’es inter-AS routing routing among AS’es gateways perform inter-domain routing (as well as intra-domain routing)

Interconnected ASes 3b 1d 3a 1c 2a AS3 AS1 AS2 1a 2c 2b 1b Intra-AS Routing algorithm Inter-AS Forwarding table 3c Paths configured by both intra- and inter-AS routing algorithm intra-AS routing determine entries for destinations within AS inter-AS & intra-AS determine entries for external destinations

What happens when you browse? (1) Request gmail.com for your mail (2) Google churns on your request (3) Receive & display the response! The Internet But how did the Google server and your laptop attach to the network in the first place? How did they get assigned their addresses?

The roles of the endpoint

The roles of endpoint network software Bootstrapping the host into the network How does the endpoint get an address? How does the endpoint make itself known to others? Providing an interface to networked applications How do higher-level applications access the network? What abstractions does the host provide to apps? Distributed resource sharing What roles does the host play in network resource allocation decisions? … apart from other things.

(1) Bootstrapping host into network adapter The lowest level address is hard-wired The network adapter (NIC) comes with MAC address Higher-level addresses can be statically or dynamically configured IP address Statically configured, or dynamically with DHCP TCP port Pick a transient value, ex. HTTP src port … or a value agreed upon a priori, ex. HTTP dst port such as 80 Link layer Network Transport Applications

Dynamic Host Configuration Protocol DHCP discover (broadcast) arriving endpoint DHCP offer Host learns IP address, Subnet mask, Gateway address, DNS server(s), and a lease time. DHCP server DHCP request (broadcast) DHCP ACK

(2) Socket: the interface to applications Best-effort packet delivery is a clumsy abstraction Applications typically want higher-level abstractions Messages, uncorrupted data, reliable in-order delivery Applications communicate using “sockets” Stream socket: reliable stream of bytes (like a file) Message socket: unreliable message delivery User process User process socket socket Operating System Operating System

Two Basic Transport Features Demultiplexing: port numbers Error detection: checksums Server host 128.2.194.242 Service request for 128.2.194.242:80 (i.e., the Web server) Client host Web server (port 80) Client OS Echo server (port 7) IP payload detect corruption

Two Main Transport Layers User Datagram Protocol (UDP) Just provides demultiplexing and error detection Header fields: port numbers, checksum, and length Low overhead, good for query/response and multimedia Transmission Control Protocol (TCP) Adds support for a “stream of bytes” abstraction Retransmitting lost or corrupted data Putting out-of-order data back in order Preventing overflow of the receiver buffer Adapting the sending rate to alleviate congestion Higher overhead, good for most stateful applications

Socket: the interface to applications User process User process A socket is associated with five pieces of information: Source and destination IP address Source and destination port Kind of transport protocol (TCP/UDP) Together referred to as the connection five-tuple socket socket Operating System Operating System

Discussion Is a socket between two IP addresses the right abstraction? Mobile hosts? Replicated services? Is end-to-end error detection and correction the right model? High loss environments? Expense of retransmitting over the entire path?

(3) Distributed sharing of the network Best-effort network easily becomes overloaded No mechanism to “block” excess calls Instead excess packets are simply dropped Examples Shared Ethernet medium: frame collisions Ethernet switches and IP routers: full packet buffers Quickly leads to congestion collapse Increase in load that results in a decrease in useful work done. “congestion collapse” Useful work Load

Endpoints adjust to congestion End hosts adapt their sending rates: congestion control In response to network conditions Learning that the network is congested Shared Ethernet: carrier sense multiple access Seeing your own frame collide with others IP network: observing your end-to-end performance Packet delay or loss over the end-to-end path Adapting to congestion Slowing down the sending rate for the greater good Slow down too little: don’t effectively relieve congestion Slow down too much: lose application performance

Ethernet back-off mechanism Carrier sense: wait for link to be idle If idle, start sending; if not, wait until idle Collision detection: listen while transmitting If collision: abort transmission, and send jam signal Exponential back-off: wait before retransmitting Wait random time, exponentially larger on each retry

TCP congestion control (much more later) Additive increase, multiplicative decrease On packet loss, divide congestion window in half On success for last window, increase window linearly Loss Window halved time Other mechanisms: slow start, fast retransmit vs. timeout loss, etc.

Discussion What role should the network play in resource allocation? Explicit feedback to the endpoints? Enforcing an explicit rate allocation? What is a good definition of fairness? What about hosts who cheat to hog resources? How to detect cheating? How to prevent/punish?