Date post: | 28-Mar-2015 |
Category: |
Documents |
Upload: | rene-howman |
View: | 216 times |
Download: | 0 times |
InternetworkingInternetworking
TopicsTopics Client-server programming model Networks Internetworks Global IP Internet
IP addressesDomain namesConnections
CS 105“Tour of the Black Holes of Computing”
– 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)
– 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
– 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
– 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
– 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...
– 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)
– 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
– 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
– 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
– 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
– 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
– 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
– 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
– 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
– 16 –CS 105
NSFNET Internet Backbone NSFNET Internet Backbone
source: www.eef.org
– 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.”
– 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
– 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
– 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
– 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
– 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
– 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
– 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 */
};
– 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
– 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);}
– 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.
– 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)
– 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
– 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