Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP...

30
Internetworking Topics Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 “Tour of the Black Holes of Computing”

Transcript of Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP...

Page 1: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

InternetworkingInternetworking

TopicsTopics Client-server programming model Networks Internetworks Global IP Internet

IP addressesDomain namesConnections

CS 105“Tour of the Black Holes of Computing”

Page 2: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 2 –CS 105

A Client-Server TransactionA Client-Server Transaction

Clientprocess

Serverprocess

1. Client sends request

2. Server handlesrequest

3. Server sends response4. Client handles

response

Resource

(Almost) every network application is based on client-(Almost) every network application is based on client-server model:server model: A server process and one or more client processes Server manages some resource Server provides service by manipulating resource for clients

Note: clients and servers are processes running on hosts (can be same or different hosts)

Page 3: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 3 –CS 105

Computer NetworksComputer Networks

A network is a hierarchical system of boxes and wires A network is a hierarchical system of boxes and wires organized by geographical proximityorganized by geographical proximity LAN (local area network) spans building or campus

Ethernet is most prominent example802.11 (wireless) becoming more important

WAN (wide-area network) spans country or worldTypically high-speed point-to-point copper or fiber linesAlso microwave and satellite links in some situations

An An internetworkinternetwork ( (internetinternet) ) is an interconnected set of is an interconnected set of networksnetworks Global IP Internet (uppercase “I”) is most famous example of

an internet (lowercase “i”)

Let’s look at how to build an internet from ground upLet’s look at how to build an internet from ground up

Page 4: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 4 –CS 105

Lowest Level: Ethernet SegmentLowest Level: Ethernet SegmentEthernet segment consists of collection of Ethernet segment consists of collection of hostshosts connected by wires (twisted pairs) to a connected by wires (twisted pairs) to a hubhub - replaces common ‘wire’, ‘bus’ - replaces common ‘wire’, ‘bus’

Spans room or floor in a buildingSpans room or floor in a building

OperationOperation Each Ethernet adapter has unique 48-bit address Hosts send bits to any other host in chunks called frames Hub slavishly copies each bit from each port to every other port

Every adapter sees every bit; chooses which frames to hand to system Alternative: switch copies bits only to proper destination port

host host host

hub100 Mb/s100 Mb/s

ports

Page 5: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 5 –CS 105

Next Level: Bridged Ethernet SegNext Level: Bridged Ethernet SegSpans building or campusSpans building or campus

Bridges cleverly learn which hosts are reachable from which ports and then selectively Bridges cleverly learn which hosts are reachable from which ports and then selectively copy frames from port to port. How? Frames have source and destination addresses….copy frames from port to port. How? Frames have source and destination addresses….

host host host host host

hub hubbridge100 Mb/s 100 Mb/s

host host

hub 100 Mb/s 100 Mb/s

1 Gb/s

host host host

bridge

hosthost

hub

A B

C

X

Y

Page 6: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 6 –CS 105

Conceptual View of LANsConceptual View of LANsFor simplicity, hubs, bridges, and wires are often shown as collection of hosts attached to a single wire:For simplicity, hubs, bridges, and wires are often shown as collection of hosts attached to a single wire:

host host host...

Page 7: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 7 –CS 105

Next Level: internetsNext Level: internetsMultiple incompatible LANs can be physically connected by specialized Multiple incompatible LANs can be physically connected by specialized

computers called computers called routersrouters

The connected networks are called an The connected networks are called an internetinternet

host host host

LAN 1

... host host host

LAN 2

...

router router routerWAN WAN

LAN 1 and LAN 2 might be completely different, totally incompatible LANs (e.g., Ethernet and ATM)

Page 8: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 8 –CS 105

Notion of an internet Protocol Notion of an internet Protocol

How is it possible to send bits across incompatible How is it possible to send bits across incompatible LANs and WANs?LANs and WANs?

Solution: Solution: protocol softwareprotocol software running on each host and running on each host and router smooths out differences between different router smooths out differences between different networksnetworks

Implements an Implements an internet protocolinternet protocol (i.e., set of rules) that (i.e., set of rules) that governs how hosts and routers should cooperate governs how hosts and routers should cooperate when they transfer data from network to networkwhen they transfer data from network to network• TCP/IP is protocol (family) for global IP Internet

Page 9: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 9 –CS 105

What Does an internet Protocol Do?What Does an internet Protocol Do?1. Provides naming scheme1. Provides naming scheme

Defines uniform format for host addresses Each host (and router) is assigned at least one internet

address that uniquely identifies it

2. Provides delivery mechanism2. Provides delivery mechanism An internet protocol defines a standard transfer unit (packet) Packet consists of header and payload

Header: contains info such as packet size, source and destination addresses

Payload: contains data bits sent from source host Encapsulation - key to network messages

Page 10: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 10 –CS 105

Transferring Data via an internetTransferring Data via an internet

protocolsoftware

client

LAN1adapter

Host A

data

data PH FH1

data PH

data PH FH2

LAN1 LAN2

data

data PH data PH FH2

(1)

(2)

(3)

(4) (5)

(6)

(7)

(8)

internet packet

LAN2 frame

protocolsoftware

LAN1adapter

LAN2adapter

Router

FH1

data PH

protocolsoftware

server

LAN2adapter

Host B

Frame

Page 11: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 11 –CS 105

Other IssuesOther Issues

We are glossing over several important questions:We are glossing over several important questions: What if different networks have different maximum frame

sizes? (segmentation) How do routers know where to forward frames? How do routers learn when the network topology changes? What if packets get lost?

These (and other) questions are addressed by the area These (and other) questions are addressed by the area of systems known as of systems known as computer networking: CS 125computer networking: CS 125

Page 12: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 12 –CS 105

Global IP InternetGlobal IP Internet

Most famous example of an internetMost famous example of an internet

Based on TCP/IP protocol familyBased on TCP/IP protocol family IP (Internet protocol) :

Provides basic naming scheme and unreliable delivery capability of packets (datagrams) from host to host

UDP (Unreliable Datagram Protocol)Uses IP to provide unreliable datagram delivery from process to

process TCP (Transmission Control Protocol)

Uses IP to provide reliable byte streams from process to process over connections

Accessed via mix of Unix file I/O and functions from the Accessed via mix of Unix file I/O and functions from the sockets interfacesockets interface

Page 13: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 13 –CS 105

Hardware and Software Org of an Internet ApplicationHardware and Software Org of an Internet Application

TCP/IP

Client

Networkadapter

Global IP Internet

TCP/IP

Server

Networkadapter

Internet client host Internet server host

Sockets interface(system calls)

Hardware interface(interrupts)

User code

Kernel code

Hardwareand firmware

Page 14: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 14 –CS 105

Basic Internet ComponentsBasic Internet Components

An An Internet backboneInternet backbone is a collection of routers is a collection of routers (nationwide or worldwide) connected by (nationwide or worldwide) connected by high-speed point-to-point networkshigh-speed point-to-point networks

A A Network Access Point Network Access Point (NAP)(NAP) is a router that is a router that connects multiple backbones (sometimes connects multiple backbones (sometimes referred to as referred to as peerspeers))

Regional networksRegional networks are smaller backbones that are smaller backbones that cover smaller geographical areas (e.g., cities cover smaller geographical areas (e.g., cities or states)or states)

A A point of presence point of presence (POP)(POP) is a machine that is is a machine that is connected to the Internetconnected to the Internet

Internet Service ProvidersInternet Service Providers (ISPs) provide dial-up (ISPs) provide dial-up or direct access to POPsor direct access to POPs

Page 15: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 15 –CS 105

The Internet Circa 1993The Internet Circa 1993

In 1993, the Internet consisted of one backbone In 1993, the Internet consisted of one backbone (NSFNET) that connected 13 sites via 45 Mbs (NSFNET) that connected 13 sites via 45 Mbs T3 links.T3 links. Merit (Univ of Mich), NCSA (Illinois), Cornell Theory

Center, Pittsburgh Supercomputing Center, San Diego Supercomputing Center, John von Neumann Center (Princeton), BARRNet (Palo Alto), MidNet (Lincoln, NE), WestNet (Salt Lake City), NorthwestNet (Seattle), SESQUINET (Rice), SURANET (Georgia Tech)

Connecting to the Internet involved connecting Connecting to the Internet involved connecting one of your routers to a router at a backbone one of your routers to a router at a backbone site, or to a regional network that was already site, or to a regional network that was already connected to the backboneconnected to the backbone

Page 16: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 16 –CS 105

NSFNET Internet Backbone NSFNET Internet Backbone

source: www.eef.org

Page 17: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 17 –CS 105

Enter Al GoreEnter Al Gore

Myth: Al Gore claimed to have invented the InternetMyth: Al Gore claimed to have invented the Internet

Fact: In a 1999 interview, Al Gore said, “During my Fact: In a 1999 interview, Al Gore said, “During my service in the United States Congress, I took the service in the United States Congress, I took the initiative in creating the Internet”initiative in creating the Internet”

Fact: Dave Farber, Vint Cerf, and Bob Metcalfe have all Fact: Dave Farber, Vint Cerf, and Bob Metcalfe have all supported the statementsupported the statement

Fact: Al Gore introduced and supported many bills Fact: Al Gore introduced and supported many bills funding the shift from a primarily US research funding the shift from a primarily US research network to a worldwide commercial onenetwork to a worldwide commercial one

Farber: “The guy used an inappropriate word. If he had Farber: “The guy used an inappropriate word. If he had said he was instrumental in the development of what said he was instrumental in the development of what it is now, he'd be accurate.”it is now, he'd be accurate.”

Page 18: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 18 –CS 105

Current NAP-Based Internet ArchitectureCurrent NAP-Based Internet ArchitectureIn the early 90’s commercial outfits were building their In the early 90’s commercial outfits were building their

own high-speed backbones, connecting to NSFNET, own high-speed backbones, connecting to NSFNET, and selling access to their POPs to companies, and selling access to their POPs to companies, ISPs, and individualsISPs, and individuals

In 1995, NSF decommissioned NSFNET, and fostered In 1995, NSF decommissioned NSFNET, and fostered creation of a collection of NAPs to connect the creation of a collection of NAPs to connect the commercial backbonescommercial backbones

Currently in the US there are about 50 commercial Currently in the US there are about 50 commercial backbones connected by ~12 NAPs (peering points)backbones connected by ~12 NAPs (peering points)

Similar architecture worldwide connects national Similar architecture worldwide connects national networks to the Internetnetworks to the Internet

Page 19: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 19 –CS 105

Abstracted Internet HiearchyAbstracted Internet Hiearchy

NAP NAP

Backbone BackboneBackboneBackbone

NAP

POP POP POP

Regional net

POPPOP POP

POPPOP

Small Business

Big BusinessISP

POP POP POP POP

LA employee

dialup

DC employee

POP

T3

T1

ISP (for individuals)

POP

dialupT1

Collocationsites

Private“peering”

agreementsbetween

two backbonecompanies

often bypassNAP

Page 20: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 21 –CS 105

Programmer’s View of InternetProgrammer’s View of Internet

1. Hosts are mapped to a set of 32-bit 1. Hosts are mapped to a set of 32-bit IP(v4) addressesIP(v4) addresses 134.173.42.100 Class structure: A, B, C, now CIDR

2. IP addresses are mapped to set of identifiers called 2. IP addresses are mapped to set of identifiers called Internet Internet domain namesdomain names 134.173.42.2 is mapped to www.cs.hmc.edu 128.2.203.164 is mapped to www.cs.cmu.edu Mapping is many-to-many

3. Process on one Internet host can communicate with 3. Process on one Internet host can communicate with process on another via a process on another via a connectionconnection—IP Address, —IP Address, Port NumberPort Number

Page 21: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 22 –CS 105

1. IP (v4) Addresses1. IP (v4) Addresses

32-bit IP addresses are stored in 32-bit IP addresses are stored in IP address structIP address struct Always stored in memory in network byte order (big-endian) True in general for any integer transferred in packet header

from one machine to another.E.g., port number used to identify Internet connection

/* Internet address structure */struct in_addr { unsigned int s_addr; /* network byte order (big-endian) */};

Handy network byte-order conversion functions (no-ops on some machines):

htonl: convert long int from host to network byte orderhtons: convert short int from host to network byte orderntohl: convert long int from network to host byte orderntohs: convert short int from network to host byte order

Page 22: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 23 –CS 105

Dotted-Decimal NotationDotted-Decimal Notation

By convention, each byte in 32-bit IP address is By convention, each byte in 32-bit IP address is represented by its decimal value and separated by represented by its decimal value and separated by periodperiod

IP address 0x8002C2F2 = 128.2.194.242 IPv6 addresses uglier: 2001:1878:301:902:218:8bff:fef9:a407

Functions for converting between binary IP addresses Functions for converting between binary IP addresses and dotted decimal strings:and dotted decimal strings: inet_pton: converts dotted-decimal string to IP address in

network byte order inet_ntop: converts IP address in network byte order to its

corresponding dotted-decimal string “n” denotes network representation; “p” denotes printable

representation

Page 23: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 24 –CS 105

2. Internet Domain Names2. Internet Domain Names

mil edu gov com

hmc berkeleymit

cs math

mike1134.173.41.151

unnamed root

Knuth134.173.42.100

amazon

www208.216.181.15

First-level domain names

Second-level domain names

Third-level domain names

Page 24: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 25 –CS 105

Domain Naming System (DNS)Domain Naming System (DNS)Internet tracks mapping between IP addresses and Internet tracks mapping between IP addresses and

domain names in huge worldwide distributed database domain names in huge worldwide distributed database called called DNSDNS.. Conceptually, programmers can view DNS database as collection

of millions of address information structures:

Functions for retrieving host entries from DNS:Functions for retrieving host entries from DNS: getaddrinfo: query key is DNS domain name getnameinfo: query key is IP address (V4 or V6)

/* Address information structure (DNS only has + entries) */ struct addrinfo {

int ai_flags; /* Various options */int ai_family; /* + AF_INET or AF_INET6 */int ai_socktype; /* Preferred socket type */int ai_protocol; /* Preferred protocol */size_t ai_addrlen; /* Length of address */struct sockaddr *ai_addr; /* + Encoded IP address */char *ai_canonname; /* + Canonical host name */struct addrinfo *ai_next; /* Link to next answer */

};

Page 25: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 26 –CS 105

Properties of DNS Host EntriesProperties of DNS Host Entries

Each host entry is equivalence class of domain names Each host entry is equivalence class of domain names and IP addressesand IP addresses

Each host has a locally defined domain name Each host has a locally defined domain name localhostlocalhost, , which always maps to which always maps to loopback addressloopback address 127.0.0.1127.0.0.1

Different kinds of mappings are possible:Different kinds of mappings are possible: Simple case: 1-1 mapping between domain name and IP addr:

www.cs.hmc.edu maps to 134.173.42.2

Multiple domain names mapped to the same IP address:cs.hmc.edu and knuth.cs.hmc.edu both map to 134.173.42.100

Multiple domain names mapped to multiple IP addresses:aol.com and www.aol.com map to multiple IP addresses

Some valid domain names don’t map to any IP address:For example: research.cs.hmc.edu

Page 26: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 27 –CS 105

A Program That Queries DNSA Program That Queries DNS

int main(int argc, char **argv) { /* argv[1] is a domain name */ struct addrinfo hints, *host, *firsthost = NULL; struct sockaddr_in *addr; char buf[80];

memset(&hints, 0, sizeof hints); hints.ai_flags = AI_CANONNAME; hints.ai_family = AF_UNSPEC; /* Or AF_INET or AF_INET6 */ if (getaddrinfo(argv[1], NULL, &hints, &firsthost) != 0)

exit(1);

printf("official hostname: %s\n", firsthost->ai_canonname); for (host = firsthost; host != NULL; host = host->ai_next) {

addr = (struct sockaddr_in *)host->ai_addr;printf("address: %s\n", inet_ntop(addr->sin_family, &addr->sin_addr, buf, sizeof buf));

} exit(0);}

Page 27: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 28 –CS 105

Querying DNS from the Command LineQuerying DNS from the Command Line

Domain Information Groper (Domain Information Groper (digdig) provides scriptable ) provides scriptable command line interface to DNS.command line interface to DNS.

linux> dig +short kittyhawk.cmcl.cs.cmu.edu 128.2.194.242 linux> dig +short -x 128.2.194.242 KITTYHAWK.CMCL.CS.CMU.EDU. linux> dig +short aol.com 205.188.145.215 205.188.160.121 64.12.149.24 64.12.187.25 linux> dig +short -x 64.12.187.25 aol-v5.websys.aol.com.

Page 28: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 29 –CS 105

3. Internet Connections3. Internet ConnectionsClients and servers communicate by sending streams Clients and servers communicate by sending streams

of bytes over of bytes over connectionsconnections:: Point-to-point, full-duplex (2-way communication), and

reliable

SocketSocket is endpoint of connection is endpoint of connection Socket address is IPaddress:port pair

PortPort is 16-bit integer that identifies a process: is 16-bit integer that identifies a process: Ephemeral port: Assigned automatically on client when

client makes connection request Well-known port: Associated with some service provided by

a server (e.g., port 80 is associated with Web servers)

Connection is uniquely identified by socket addresses Connection is uniquely identified by socket addresses of its endpoints (of its endpoints (socket pairsocket pair)) (clientaddr:clientport, serveraddr:serverport)

Page 29: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 30 –CS 105

Putting it all Together: Anatomy of an Internet Connection

Putting it all Together: Anatomy of an Internet Connection

Connection socket pair(128.2.194.242:51213, 208.216.181.15:80)

Server(port 80)

Client

Client socket address128.2.194.242:51213

Server socket address208.216.181.15:80

Client host address128.2.194.242

Server host address208.216.181.15

Page 30: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 Tour of the.

– 31 –CS 105

Next TimeNext Time

How to use sockets interface to establish Internet How to use sockets interface to establish Internet connections between clients and servers connections between clients and servers

How to use Unix I/O to copy data from one host to How to use Unix I/O to copy data from one host to another over an Internet connectionanother over an Internet connection