Top Banner
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”
11

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

Dec 26, 2015

Download

Documents

Cori Carr
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 “Tour of.

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.

– 2 –CS 105

Computer NetworksComputer Networks

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

Ethernet802.11 (wireless)

WAN (wide-area network) spans country or worldDifferent, usually faster technology

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”)

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

– 9 –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 4: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 “Tour of.

– 11 –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

…and several more

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 5: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 “Tour of.

– 13 –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 is Knuth 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 6: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 “Tour of.

– 14 –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 7: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 “Tour of.

– 15 –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 8: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 “Tour of.

– 16 –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

Top-level domain names

Second-level domain names

Third-level domain names

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

– 17 –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 worldwide many-to-many distributed domain names in worldwide many-to-many distributed database called database 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 10: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 “Tour of.

– 18 –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 11: Internetworking Topics Client-server programming model Networks Internetworks Global IP Internet IP addresses Domain names Connections CS 105 “Tour of.

– 19 –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);}