Transcript Networks

Networks
Computer-Computer Comm
CPU
Memory
CPU
Comm
Device
Comm
Device
Modem
Modem
Phone
Phone
Switched Telephone Network
Memory
Data Networks
CPU
Memory
CPU
Network
Device
Network
Device
Memory
Specialized Data Network
•WANs, MANs, and LANs
•Specialized communication protocols
•Multidrop
•Packet oriented
•Looks like other devices… make it look like a file ...
Multidrop Network
S
S
Network
R
• Multiple senders
• Can address multiple receivers
R
Packet Network
S
S
Telephone
Circuit Based
S
R
R
R
R
S
Data
Packet Based
Multidrop Packet Network
• To transmit/receive:
– Sender marshals data into a packet
– Network interface hardware transforms data for
physical transmission
– Network deliver packets to variable destination
– Receiver converts physical signal back into a
data packet
– Receiver unmarshals packet into data
• Need a widely-agreed upon set of protocols
Protocol Tasks
•
•
•
•
•
Control information delivery rates
Pass data across networks
Provide fast/reliable IPC-like communication
Support logical byte streams
Create other models for communication
– File transfer
– Procedure call paradigm
– Shared memory paradigm
• Translate machine-dependent data representations
• … and more …
Standardizing Protocols
• ANSI X.25
• ARPAnet
• ISO Open Systems Interconnect (OSI)
model
– Now widely used as a reference architecture
– 7-layer model
– Provides framework for specific protocols (such
as IP, TCP, FTP, RPC, RSVP, …)
ISO OSI Model
Application
Presentation
Session
Transport
Network
Data Link
Physical
Application
Presentation
Session
Transport
Network
Data Link
Physical
ISO OSI Model
Data Link
Physical
Data Link
Physical
Examples
•Physical/Data Link layer networks: Ethernet, Wireless, ATM
Low Level Protocols
•
•
•
•
Physical layer: Signaling technology
Data link layer: Frame management
All done in hardware
Examples
–
–
–
–
Ethernet
Token ring
X.25
ATM
• Read pages 490-496
Ethernet (CSMA/CD)
• Asynchronous
• Carrier Sense
• Multiple Access
• Collision Detection
• Backoff
Wireless
Backbone
ISO OSI Model
Network
Data Link
Physical
Network
Data Link
Physical
Examples
•Physical/Data Link layer networks: Ethernet, Token Ring, ATM
•Network layer net: The Internet
Network Layer
•
•
•
•
Primary purpose is to combine networks
Internet protocol (IP) is dominant protocol
Creates an internet address space
Implements packet routing across networks
Host X
Network A
Host R
Network B
Network C
Host S
Host Y
Addressing & Routing
Host X
3b4e87
3b6209
Network A
3b4e62
Network C
3b4e55
Host R
3b621a
Host Y
•Host X does not know how to send to Host Y
•Can send a frame to Host R for forwarding
•What should it tell Host R?
Addressing & Routing
128.123.234.033
Host X
3b4e87
128.229.244.109
To: 128.229.244.006
From: 128.123.234.033
Network Layer data
Network A
3b4e62
Network C
3b4e55
Host R
128.123.234.063
3b6209
128.123.234.188
3b621a
Host Y
128.229.244.006
•Host X does not know how to send to Host Y
•Can send a frame to Host R for forwarding
•What should it tell Host R?
•Internet address spans all machines
Addressing & Routing
128.123.234.033
Host X
3b4e87
To: 3b4e55
From: 3b4e87
To: 128.229.244.006
From: 128.123.234.033
Network Layer data
Network A
3b4e62
3b6209
Network C
3b4e55
Host R
128.123.234.063
128.229.244.109
128.123.234.188
3b621a
Host Y
128.229.244.006
•Host X does not know how to send to Host Y
•Can send a frame to Host R for forwarding
•What should it tell Host R?
•Internet address spans all machines
•Send encapsulated packet to Host R with Host Y
Addressing & Routing
128.123.234.033
128.229.244.109
Host X
3b4e87
3b6209
Network A
3b4e62
Network B
Network C
3b4e55
Host R
128.123.234.063
128.123.234.188
3b621a
Host S
Host Y
128.229.244.006
•Host X does not know how to send to Host Y
•Can send a frame to Host R for forwarding
•What should it tell Host R?
•Internet address spans all machines
•Send encapsulated packet to Host R with Host Y
Addressing & Routing
128.123.234.033
128.229.244.109
Host X
3b4e87
3b6209
Network A
3b4e62
Network B
3b4e55
Host R
128.123.234.063
Network C
To: 3b621a
From: ...
To: 128.229.244.006
From: 128.123.234.033
128.123.234.188
Network Layer data
3b621a
Host Y
128.229.244.006
•Host X does not know how to send to Host Y
•Can send a frame to Host R for forwarding
•What should it tell Host R?
•Internet address spans all machines
•Send encapsulated packet to Host R with Host Y
•Data Link frame is received by Host Y
More on the Network Layer
• Implements internet addressing & routing
• ARPAnet IP protocol is dominant -underlies the Internet
• Intermediate hosts are called gateways
– Connected to two or more networks
– Runs IP routing software
– nag is a gateway for the teaching lab
– Read pages 471-477
ISO OSI Model
Transport
Network
Data Link
Physical
Transport
Network
Data Link
Physical
Examples
•Physical/Data Link layer networks: Ethernet, Token Ring, ATM
•Network layer net: The Internet
•Transport layer net: TCP-based network
Transport Layer
• Provides yet another address extension
– IP references only networks and hosts
– Transport layer adds ports -- logical endpoints
– Address form is <net, host, port>
• Two primary protocols (both from ARPAnet)
– User Datagram Protocol (UDP)
• User-space interface to IP packets
• No guarantee that packet will be delivered
– Transmission Control Protocol (TCP)
• Provides a stream-oriented interface to the network
• Reliable delivery
ISO OSI & TCP/IP
ISO OSI Session
ISO OSI packet
ISO OSI TLI
ISO OSI frame
ISO OSI Network
X.25 packet
X.25
ISO OSI & TCP/IP
ISO OSI Session
ISO OSI Session
ISO OSI packet
ISO OSI packet
ISO OSI TLI
ARPAnet TCP
ISO OSI frame
IP frame
ISO OSI Network
ARPAnet IP
X.25 packet
X.25
Ethernet packet
Ethernet
Domain Name Server (DNS)
• IP uses 32-bit addresses
– 128.138.241.1
– “anchor.cs.colorado.edu”
• DNS: anchor.cs.colorado.edu128.138.241.1
• Huge table
– Distributed/managed according to domain
– .edu, .com, .net, .gov, … .us, .ca, are domains
– .colorado is a sub domain managed by CU
– .cs is a sub domain managed by Computer Sci
– anchor is a computer in .cs (in .colorado, in .edu)
– anchor is on net 128.138.241, and is host number 1
DNS
.edu
First-Level Domain
• Supports TCP
• Uses UDP
.colorado
.edu Domain
.cs
.colorado Domain
anchor
pawnee
neon
.cs Domain
The DNS Protocol Stack
UDP packet
ISO OSI Session
DNS Resolver
ISO OSI packet
UDP packet
ISO OSI TLI
ARPAnet UDP
ISO OSI frame
IP frame
ISO OSI Network
ARPAnet IP
X.25 packet
X.25
Ethernet packet
Ethernet
Communication Ports
• Global name for a “mailbox”
• Will be many ports at one <net, host>
P
P
P
P
Transport Layer
Network Layer
Low Layers
Machine X
<net, host>
Communication Ports
• Global name for a “mailbox”
• Will be many ports at one <net, host>
• Each port can be bound to an address
P
P
P
P
Transport Layer
Network Layer
Low Layers
Machine X
<net, host>
BSD Sockets
• Sockets are comm ports in BSD UNIX
• Semantics resemble pipes (files)
• Bidirectional
BSD Sockets
• Sockets are comm ports in BSD UNIX
• Semantics resemble pipes (files)
• Bidirectional
int socket(int addressFamily, int socketType, int protocolNo)
s = socket(…)
s
BSD Sockets (cont)
• Once a socket has been created, it can be
bound to an internet port
s
P
BSD Sockets (cont)
• Once a socket has been created, it can be
bound to an internet port
int bind(int skt, struct sockadrr *addr, int addrLength)
s
P
• Example code available on the web page
UDP
• Datagram (“connectionless”) service
– Similar to disk I/O level of service
• Logically associated with an IP packet &
Data Link frame (but not physically)
• Best-effort delivery of datagrams, but:
– Datagram may be dropped (lost)
– Datagrams may be delivered out of order
• Efficient, relative to TCP
Using UDP
/* Set up a socket to talk to the server */
skt = socket(AF_INET, SOCK_DGRAM, 0);
host = gethostbyname(remoteHostName);
bzero(&remote, sizeof(remote));
remote.sin_family = host->h_addrtype;
remote.sin_port = htons(remotePort);
bcopy(host->h_addr, &remote.sin_addr, host->h_length);
/* Export the socket to a port (and IP address) */
host = gethostbyname(localHostName);
bzero(&local, sizeof(local));
local.sin_family = host->h_addrtype;
local.sin_port = htons(localPort);
bcopy(host->h_addr, &local.sin_addr, host->h_length);
if(bind(skt, &local, sizeof(local))) {
printf("Bind error ... restart\n");
exit(1);
}
. . .
sendto(s, outBuf, strlen(outBuf), 0, remote, sizeof(remote));
if((len = recv(s, inBuf, BUFLEN, 0)) > 0) {. . .}
TCP
• Connected (or virtual circuit) protocol
• Interface allows programmer to read/write a
byte stream over the network
• Byte stream is mapped into a series of
packets
– Reliable delivery
– Each packet must be acknowledged
– Effectively 2 packets per transmission
• Must open/close a connection before use
Using TCP -- Client
skt = socket(AF_INET, SOCK_STREAM, 0);
host = gethostbyname(serverHostName);
bzero(&listener, sizeof(listener));
listener.sin_family = host->h_addrtype;
listener.sin_port = htons(port);
bcopy(host->h_addr, &listener.sin_addr, host->h_length);
if(connect(skt, &listener, sizeof(listener))) {
printf("Connect error ... restart\n");
printf("(Must start Server end first)\n");
exit(1);
};
. . .
write(s, outBuf, BUFLEN);
if((len = read(s, inBuf, BUFLEN)) > 0) {. . .}
Using TCP -- Server
skt = socket(AF_INET, SOCK_STREAM, 0); /* Produce an inet address */
host = gethostbyname(serverHostName);
bzero(&listener, sizeof(listener));
listener.sin_family = host->h_addrtype;
listener.sin_port = htons(port);
bcopy(host->h_addr, &listener.sin_addr, host->h_length);
if(bind(skt, &listener, sizeof(listener))) {
printf("Bind error ... restart\n");
exit(1);
}
listen(skt, BACKLOG);
/* Listen for a request */
newSkt = accept(skt, &client, &clientLen);
if (fork() == 0) {
close(skt);
/* Child doesn't need listener socket */
. . .
}
close(newSkt);
/* Parent doesn't need the new socket */
if((len = read(s, inBuf, BUFLEN)) > 0) { . . .}
write(s, outBuf, BUFLEN);
ISO OSI Model
Presentation
Session
Transport
Network
Data Link
Physical
Presentation
Session
Transport
Network
Data Link
Physical
Examples
•Physical/Data Link layer networks: Ethernet, Token Ring, ATM
•Network layer net: The Internet
•Transport layer net: TCP-based network
•Presentation/Session layer net: http/html, RPC, PVM, MPI
ISO OSI Model
Application
Presentation
Session
Transport
Network
Data Link
Physical
Application
Presentation
Session
Transport
Network
Data Link
Physical
Examples
•Physical/Data Link layer networks: Ethernet, Token Ring, ATM
•Network layer net: The Internet
•Transport layer net: TCP-based network
•Presentation/Session layer net: http/html, RPC, PVM, MPI
•Applications, e.g., WWW, window system, numerical algorithm
Client-Server Paradigm
• Making a connection in TCP is an example
of the client-server paradigm for distributed
computing
– Active component is the client
• Runs autonomously
• Decides when it wants to use server
– Passive component is the server
• Persistent
• Always waiting for a client to request service
• Not a machine -- just software