COMP201 Java Programming Part III: Advanced Features Topic 14: Networking Volume II,Chapter 3.
Networking Programming
description
Transcript of Networking Programming
1
Networking Programming
2
Outline
• Client-Server Programming Model
• Networks
• Global IP Internet
• Suggested Reading:
– 11.1~11.3
3
A client-server transaction
• Most network applications are based on the
client-server model
– A server process and one or more client
processes
– Server manages some resource
– Server provides service by manipulating
resource for clients
– Server activated by request from client
4
A client-server transaction
clientprocess
serverprocess
1. client sends request
2. server handlesrequest
3. server sends response4. client handles
response
resource
Note: clients and servers are processes running on hosts (can be the same or different hosts).
5
CPU chip
mainmemory
I/O bridge
MI
ALU
register file
system bus memory bus
disk controller
graphicsadapter
USBcontroller
mouse keyboard monitor
disk
I/O bus
Expansion slots
networkadapter
network
Hardware organization of a network host
6
Computer networks
• A network is a hierarchical system of boxes and
wires organized by geographical proximity– SANSAN (System Area Network) spans cluster or machine room
• Switched Ethernet, Quadric QSW
– LANLAN (Local Area Network) spans a building or campus
• Ethernet is most prominent example
– WANWAN (Wide-Area Network) spans country or world
• typically high-speed point-to-point phone lines
7
Computer networks
• An internetwork (internet) is an
interconnected set of networks
– The Global IP Internet is the most famous
example of an internetwork
• Let’s see how we would build an
internetwork from the ground up
8
Lowest level: Ethernet segment
• Ethernet segment consists of a collection
of hosts connected by wires (twisted
pairs) to a hub
• Spans room or floor in a building.
host host host
hub100 Mb/s100 Mb/s
ports
9
Lowest level: Ethernet segment
• Operation
– Each Ethernet adapter has a unique 48-bit address
• E.g. 00:16:ea:e3:54:e600:16:ea:e3:54:e6
– Hosts send bits to any other host in chunks called
frames.
– Hub slavishly copies each bit from each port to every
other port
• Every host sees every bit
• NOTE: Hubs are on their way out
10
Next level: Bridged Ethernet segment
• Spans building or campus
• Bridges cleverly learn which hosts are
reachable from which ports and then
selectively copy frames from port to port
11
Next level: Bridged Ethernet segment
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
12
Conceptual view of LANs
• For simplicity, hubs, bridges, and wires are often shown as a collection of hosts attached to a single wire:
host host host...
13
Next level: internets
• Multiple incompatible LANs can be physically connected by specialized computers called routers
• The connected networks are called an internet
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, Wifi, DSL)
Logical Structure of an internet
• Ad hoc interconnection of networks– No particular topology– Vastly different router & link capacities
• Send packets from source to destination by hopping through networks– Router forms bridge from one network to another
router
router
routerrouter
router
router
hosthost
14
15
The notion of an internet protocol
• How is it possible to send bits across
incompatible LANs and WANs?
• Solution:
– protocol software running on each host and
router smoothens out the differences between
the different networks
16
The notion of an internet protocol
• Implements an internet protocol (i.e., set of
rules)
– governs how hosts and routers should cooperate
when they transfer data from network to network
– TCP/IP is the protocol for the global IP Internet.
17
What does an internet protocol do?
• Provides a naming scheme
– The internet protocol defines a uniform format
for host addresses
– Each host (and router) is assigned at least one
of these internet addresses that uniquely
identifies it.
18
What does an internet protocol do?
• Provide a delivery mechanism
– The 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.
19
protocolsoftware
client
LAN1adapter
Host A
data
data PH FH1
data PH
data PH FH2
LAN1 LAN2
data
data PH
FH1
data PH FH2
(1)
(2)
(3)
(4) (5)
(6)
(7)
(8)
internet packet
LAN2 frame
protocolsoftware
LAN1adapter
LAN2adapter
Router
FH1
LAN1 frame
data PH FH2
protocolsoftware
server
LAN2adapter
Host B
Transferring data over an internet
PH: Internet packet headerFH: LAN frame header
20
Other issues
• We are glossing over a number of
important questions:
– What if different networks have different
maximum frame sizes? (segmentation)
– How do routers know where to forward frames?
– How are routers informed when the network
topology changes?
– What if packets get lost?
21
Other issues
• These questions form the heart of the
area of computer systems known as
computer networking
22
Global IP Internet
• Most famous example of an internet.
• Based on the TCP/IP protocol family.
– IP (Internet protocol) :
• provides basic naming scheme and unreliable delivery
capability of packets (datagrams) from host-to-host.
23
Global IP Internet
• Based on the TCP/IP protocol family.– 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 (like files) from
process-to-process.
• Accessed via a mix of Unix file I/O and functions from the Berkeley sockets interface
24
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
Hardware and firmware
Hardware and software organization of an Internet application
25
Programmer’s view of the Internet
• Hosts are mapped to a set of 32-bit IP addresses– 202.120.40.188 (ICS server)
• The set of IP addresses is mapped to a set of identifiers called Internet domain names– 202.120.40.188 is mapped to
ipads.se.sjtu.edu.cn
• A process on one host communicates with a process on another host over a connection
26
Dotted decimal notation
• By convention, each by in a 32-bit IP
address is represented by its decimal value
and separated by a period
• IP address 0xca7828bc = 202.120.40.188
27
Dotted decimal notation
• Functions for converting between binary IP addresses and dotted decimal strings:– inet_atoninet_aton: converts a dotted decimal string to
an IP address in network byte order.
– inet_ntoainet_ntoa: converts an IP address in network by order to its corresponding dotted decimal string.
– “nn” denotes network representation. “aa” denotes application representation.
28
IP Addresses
• 32-bit IP addresses are stored in an IP address struct– IP addresses are always stored in memory in
network byte order (big-endian byte order)
/* Internet address structure */struct in_addrin_addr { unsigned int s_addr; /* network byte order (big-endian) */};
Useful network byte-order conversion functionshtonlhtonl: convert uint32_t from host to network byte orderhtonshtons: convert uint16_t from host to network byte orderntohlntohl: convert uint32_t from network to host byte orderntohsntohs: convert uint16_t from network to host byte order
29
mil edu gov com
cmu berkeleymit
cs ece
kittyhawk128.2.194.242
cmcl
unnamed root
pdl
imperial128.2.189.40
amazon
www208.216.181.15
first-level domain names
second-level domain names
third-level domain names
Internet Domain Names
30
Domain Naming System (DNS)
• The Internet maintains a mapping
between IP addressesIP addresses and domain namesdomain names
in a huge distributed database called DNS
• Conceptually, we can think of the DNS
database as being millions of host entry
structures
31
Domain Naming System (DNS)
/* DNS host entry structure */struct hostent {
/* official domain name of host */char *h_name;/* null-terminated array of domain names */char **h_aliases;/* host address type (AF_INET) */int h_addrtype;/* length of an address, in bytes */int h_length;/* null-terminated array of in_addr structs*/char **h_addr_list;
};
32
Properties of DNS host entries
• Each host entry is an equivalence class of
domain names and IP addresses
• Each host has a locally defined domain
name localhost which always maps to the
loopback address 127.0.0.1
33
Properties of DNS host entries
• Different kinds of mappings are possible:– 1-1: mapping between domain name and IP
address:• ipads.se.sjtu.edu.cn maps to 202.120.40.188
– M-1: Multiple domain names mapped to the same IP address• google.com.cn and google.cn both map to
74.125.128.160
34
Properties of DNS host entries
• Different kinds of mappings are possible:
– M-N: Multiple domain names mapped to
multiple IP addresses:
• baidu.com and baidu.com.cn map to three different
IP addresses
– 1-?: Some valid domain name don’t map to
any IP address:
• ics.se.sjtu.edu.cn
35
Domain Naming System (DNS)
• Functions for retrieving host entries from DNS:– gethostbyname: query key is a DNS domain
name
– gethostbyaddr: query key is a an IP address
36
A program that queries DNS
int main(int argc, char **argv) { /* argv[1] is a domain name */ char **pp; /* or dotted decimal IP addr */ struct in_addr addr; struct hostent *hostp;
if (inet_aton(argv[1], &addr) != 0) hostp = gethostbyaddr((const char *)&addr, sizeof(addr), AF_INET); else hostp = gethostbyname(argv[1]); printf("official hostname: %s\n", hostp->h_name); for (pp = hostp->h_aliases; *pp != NULL; pp++) printf("alias: %s\n", *pp);
for (pp = hostp->h_addr_list; *pp != NULL; pp++) { addr.s_addr = *((unsigned int *)*pp); printf("address: %s\n", inet_ntoa(addr)); }}
Using DNS program
$./dns ipads.se.sjtu.edu.cn
official hostname: ipads.se.sjtu.edu.cn
address: 202.120.40.188
$ ./dns baidu.com
official hostname: baidu.com
address: 123.125.114.144
address: 220.181.111.85
address: 220.181.111.86
37
38
Internet connections
• Clients and servers communicate by
sending streams of bytes of connections
– point-to-point, full-duplex, and reliable
• A socket is an endpoint of a connection
– Socket address is an IPaddress:port pair
39
Internet connections
• A port is a 16-bit integer that identifies a
process:
– ephemeral port: assigned automatically on
client when client makes a connection request
– well-known port: associated with some service
provided by a server (e.g., port 80 is associated
with Web servers)
40
Internet connections
• A connection is uniquely identified by the
socket addresses of its endpoints (socket
pair)
– (cliaddr:cliport, servaddr:servport)
41
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
Putting it all together: Anatomy of an Internet connection