Introduction
Download
Report
Transcript Introduction
Chapter 1
Foundation
1
Problems
How to build a scalable network that will
support different applications?
What is a computer network?
How is a computer network different from
other types of networks?
What is a computer network architecture?
Chapter Outline
1.1 Applications
1.2 Requirements
1.3 Network Architecture
1.4 Implementing Network Software
1.5 Performance
3
Chapter Goal
Exploring the requirements that different
applications and different communities place on
the computer network
Introducing the idea of network architecture
Introducing some key elements in
implementing network software
Define key metrics that will be used to evaluate
the performance of computer network
4
1.1 Applications
Most people know about the Internet (a
computer network) through applications
World Wide Web
Email
Online social network
Streaming audio video
File sharing
Instant messaging
5
Example of an Application
A multimedia application including video-conferencing
Application Protocols
URL
Uniform Resource Locater
http://www.cs.princeton.edu/~llp/index.html
HTTP
Hyper Text Transfer Protocol
TCP
Transmission Control Protocol
17 messages for one URL request
6 to find the IP (Internet Protocol) address
3 for connection establishment of TCP
4 for HTTP request and acknowledgement
Request: I got your request and I will send the data
Reply: Here is the data you requested; I got the data
4 messages for tearing down TCP connection
1.2 Requirements
Application programmer
list the services that his application needs: delay
bounded delivery of data
Network designer
design a cost-effective network with sharable
resources
Network provider
list the characteristics of a system that is easy to
manage
8
Requirements
Building blocks
Switched networks
Addressing and routing
Multiplexing
Inter-process communication
9
Building Blocks
Nodes: PC, special-purpose hardware…
hosts
switches
Links: coax cable, optical fiber…
point-to-point
(a)
multiple access
(b)
10
Terms
node
a computer or a more specialized piece of hardware
network switch
a small hardware device that joins multiple
computers together within one local area network
(LAN)
technically, network switches operate at layer two
(data link layer) of the OSI model
11
link
physical medium
point-to-point
two nodes share a single physical link
multiple-access
more than two nodes share a single physical link
12
Connectivity
Need to understand the following terminologies
scale
link
nodes
point-to-point
multiple access
switched network
circuit switched
packet switched
packet, message
store-and-forward
Switched Networks
A network can be defined recursively as...
two or more nodes
connected by a link, or
Switched network
two or more networks
connected by two or
more nodes
Interconnection of networks
14
Strategies
Circuit switching
original telephone network
carry bit streams
15
Packet switching
store-and-forward messages
each node first receives a complete packet over some
link
stores the packet in its internal memory
forwards the complete packet to the next node
multiplex multiple flows of data over a single
physical link
example: Internet
16
Addressing and Routing
Address
byte-string that identifies a node
usually unique (IP address, MAC address)
Routing
process of how to forward messages to the
destination node based on its address
17
Types of address
unicast: node-specific
broadcast: all nodes on the network
multicast: some subset of nodes on the network
18
IP address (Internet Protocol address)
a unique address that certain electronic devices use in
order to identify and communicate with each other on a
computer network utilizing the Internet Protocol
standard (IP)—in simpler terms, a computer address
any participating network device—including routers,
computers, servers, printers, Internet fax machines, and
some telephones—can have their own unique address
example: 140.119.164.54
19
MAC address (Media Access Control address)
a MAC address or EHA (Ethernet Hardware Address)
or hardware address or adapter address is a quasi-unique
identifier attached to most network adapters (NICs)
a number that acts like a name for a particular network
adapter, so, e.g., the network cards (or built-in network
adapters) in two different computers will have different
names, or MAC addresses
20
Multiplexing
Synchronous Time-Division Multiplexing
(STDM)
divide time into equal-sized quanta, and in a roundrobin fashion, give each flow a chance to send its
data over the physical link
21
Frequency-Division Multiplexing (FDM)
Multiplexing multiple logical flows over a single physical link
22
three flows of data (L1 to R1 and so on)
multiplexed onto a single physical link by switch 1
demultiplexed back into separate flows by switch 2
transmit each flow over the physical link at a
different frequency
e.g. signals for different TV stations are transmitted
at a different frequency on a physical cable TV link
23
Statistical Multiplexing
Time-division & interleaved
the physical link is shared over time (time-division) first data from one flow is transmitted over the physical
link, then data from another flow is transmitted, and so
on (interleaved)
24
On-demand
data is transmitted from each flow on demand rather
than during a predetermined time slot
if only one flow has data to send, it gets to transmit that
data without waiting for its quantum to come around
and thus without having to watch the quanta assigned to
the other flows go by unused
this avoidance of idle time gives packet switching its
efficiency
25
Schedule link on a per-packet basis
once a flow begins sending data, we need some way to
limit the transmission, so that the other flows can have a
turn
an upper bound on the size of the block of data (packet)
is defined that each flow is permitted to transmit at a
given time
the source may need to fragment the message into
several packets, with the receiver reassembling the
packets back into the original message
26
each flow sends a sequence of packets over the
physical link, with a decision made on a packet-bypacket basis as to which flow’s packet to send next
if only one flow has data to send, then it can send a
sequence of packets back-to-back
should more than one of the flows have data to
send, then their packets are interleaved on the link
27
Scheduling methods
FIFO (First-In-First-Out)
a fair scheduling method
RR (Round-Robin)
transmit the packets from each of the different
flows that are currently sending data
ensure that certain flows receive a particular
share of the link bandwidth or that they never
have their packets delayed in the switch for more
than a certain length of time
28
QoS (Quality of Service)
a network that attempts to allocate bandwidth to
particular flows according service priorities
29
■■■
Congested
in the following figure, the switch has to multiplex three
incoming packet streams onto one outgoing link
it is possible that the switch will receive packets faster
than the shared link can accommodate
in this case, the switch is forced to buffer these packets
in its memory
should a switch receive packets faster than it can send
them for an extended period of time, then the switch
will eventually run out of buffer space, and some
packets will have to be dropped
30
when a switch is operating in this state, it is said to be
congested
■■■
A switch multiplexing packets from multiple sources onto one shared link
31
Inter-Process Communication
Turn host-to-host connectivity into process-toprocess communication
Fill gap between what applications expect and what
the underlying technology provides
Processes communicating over an abstract channel
32
Figure
cloud: abstractly represent connectivity among a set of
computers
channel: connect one process to another
view the network as providing logical channels over
which application-level processes can communicate
with each other, each channel provides the set of
services required by that application
33
Types of Communication Channels
Request/reply channel
applications
file transfer
digital library
delivery
guarantee every message sent by one side is received
by the other side and that only one copy of each
message is delivered
34
privacy and integrity
might protect the privacy and integrity of the data
that flows over it
unauthorized parties cannot read or modify the data
being exchanged between the client and server
processes
35
Message stream channel
applications
video-on-demand
videoconferencing
delivery
might not need to guarantee that all messages are
delivered, since a video application can operate
adequately even if some video frames are not
received
36
sequence
need to ensure the messages are delivered arrive in
the same order in which they were sent, to avoid
displaying frames out of sequence
privacy and integrity
might want to ensure the privacy and integrity of the
video data
might need to support multicast, so that multiple
parties can participate in the teleconference or view
the video
37
What Goes Wrong in the Network?
(Reliability)
Bit-level errors
a “1” is turned into a “0” or vice versa
bit errors
single bit is corrupted
burst errors
consecutive bits are corrupted
causes (outside forces of electrical interference)
lightning strikes, power surges, and microwave
ovens, etc. interfere with the transmission of data
38
bit error rate
one out of every 106 to 107 bits on a typical copperbased cable
one out of every 1012 to 1014 bits on a typical optical
fiber
Packet-level errors (congestion)
a complete packet is lost by the network
the packet contains an uncorrectable bit error and
therefore has to be discarded
39
causes
one of the nodes that has to handle the packet, e.g., a
switch that is forwarding it from one link to another,
is so overloaded that it has no place to store the
packet, and therefore is forced to drop it
Node and link level failures
a physical link is cut or the computer it is connected to
crashes
40
causes
software crashes, power failure, misconfiguration of a
network device
Others
messages are delayed
messages are deliver out-of-order
third parties eavesdrop
41
1.3 Network Architecture
Layering and protocols
OSI architecture
Internet architecture
42
Layering
The services provided at the high layers
implemented in terms of the services provided by
the lower layers
Abstraction defines a unifying model that can
capture some important aspect of the system
encapsulate this model in an object that provides an
interface that can be manipulated by other
components of the system
hide the details of how the object is implemented
from the users of the object
43
Use abstractions to hide complexity of the network
from application writers
Abstractions naturally lead to layering
start with the services offered by the underlying
hardware
add a sequence of layers, each providing a higher
(more abstract) level of service
the services provided at the high layers are
implemented in terms of the services provided by
the low layers
44
Host-to-host connectivity
attracts away the fact that there may be an
arbitrarily complex network topology between any
two hosts
Example of a layer network system
45
Process-to-process channels
builds on the available host-to-host communication
service
attracts away the fact that the network occasionally
loses messages
46
One provides a request/reply service and one supports
a message stream service at the same process-toprocess channel
Layered system with alternative abstractions
available at a given layer
47
Layering provides two nice features
decomposes the problem of building a network into
more manageable components
may implement several layers, each of which
solves one part of the problem
provides a more modular design
to add some new service, may only need to
modify the functionality at one layer, reusing the
functions provided at all the other layers
48
Protocols
Protocol
used to provide a communication service that
higher-level objects (e.g. application processes,
higher-level protocols) use to exchange messages
e.g. request/reply protocol, message stream
protocol
building blocks of a network architecture
49
Each protocol object defines two different
interfaces
service interface
defines a service interface to the other objects on
the same computer that want to use its
communication services
defines the operations that local objects can
perform on this protocol
50
examples
a request/reply protocol would support
operations by which an application can send
and receive messages
an implementation of the HTTP protocol
could support an operation to fetch a page of
hypertext from a remote server
an application such as a web browser would
invoke such an operation whenever the
browser needs to obtain a new page
51
peer-to-peer interface
defines a peer interface to its counterpart (peer)
on another machine
defines the form and meaning of messages
exchanged between protocol peers
52
examples, in the case of HTTP, the protocol
specification defines in detail
how a "GET" command is formatted
what arguments can be used with the
command
how a web server should respond when it
receives such a command
53
summary: a protocol defines
a communication service that it exports locally
(the service interface)
a set of rules governing the messages that the
protocol exchanges with its peer(s) to implement
this service (the peer interface)
54
Service and peer interfaces
55
Protocol Machinery
Peer-to-peer is direct only at hardware level
Most peer-to-peer communication is indirect
each protocol communicates with its peer by
passing messages to some lower-level protocol,
which in turn delivers the message to its peer
Protocol graph
there are potentially multiple protocols at any given
level, each providing a different communication
service
protocol graph represents the suite of protocols that
make up a network system
56
Example of a protocol graph (nodes are the protocols,
edges are “depends on” relations)
Host 1
File
application
Digital
library
application
Video
application
Host 2
File
application
Digital
library
application
Video
application
57
process-to-process channels
RRP: Request Reply Protocol
MSP: Message Stream Protocol
host-to-host protocol (provides a host to host
connectivity service)
HHP: Host-to-Host Protocol
58
hardware level
peers directly communicate with each other over
a link
the applications are said to employ the services of
the protocol stack RRP/HHP or MSP/HHP
59
Encapsulation (header/body)
Host
Host
Application
Application
program
program
Application
Application
program
program
Data
Data
RRP
RRP
RRP
Data
RRP
HHP
Data
HHP
HHP
RRP
Data
High-level messages are encapsulated inside of low-level messages
60
Operation flow
host1
application sends a message to its peer by passing
the message to protocol RRP (uninterpreted)
RRP
communicates control info to its peer, instructing it
how to handle the message when it is received
attaches a “header” to the message
61
header
a small data structure - from a few bytes to a few
dozen bytes
usually attached to the front of a message
body (or payload)
the rest of the message
data
application data is “encapsulated” in the new
message created by protocol RRP
62
encapsulation
high-level messages are encapsulated inside of lowlevel messages
the process of encapsulation is repeated at each level
of the protocol graph
inspection & process
nodes in the network (e.g., switches and routers) may
inspect the HHP header at the front of the message
63
Multiplexing and Demultiplexing
A fundamental idea of packet switching is to multiplex
multiple flows of data over a single physical link
The same idea applies up and down the protocol graph
The header that RRP attaches to its messages contains
an identifier that records the application to which the
message belongs
We call this identifier RRP’s demultiplexing key, or
demux key
64
Source host
at the source host, RRP includes the appropriate demux key
in its header
Destination host
when the message is delivered to RRP on the destination
host, it
strips its header
examines the demux key
demultiplexes the message to the correct application
65
ISO Architecture
ISO / OSI (International Standard Organization /
Open Systems Interconnection)
ISO
the ISO, usually in conjunction with ITU
(International Telecommunications Union),
publishes a series of protocol specifications (X dot)
based on the OSI architecture
X dot series: X.25, X.400, X.500
66
OSI
defines a partitioning of network functionality into
seven layers
not a protocol graph, but rather a reference model
for a protocol graph
67
Description of OSI Layers
68
Layer 7: Application layer
interfaces directly to and performs common
application services for application processes
issues requests to presentation layer
69
Layer 6: Presentation layer
transforms data to provide a standard interface for the
Application layer
MIME encoding, data encryption and similar manipulation of
the presentation are done at this layer to present data as a
service or protocol that the developer sees fit
MIME (Multipurpose Internet Mail Extensions,多用
途互聯網郵件擴展)
一個互聯網標準,它擴展了電子郵件標準,使其能支
源非ASCII字符、二進制格式附件等多種格式的郵件
消息
70
examples
converts an EBCDIC-coded text file to an ASCII-coded
file
EBCDIC (Extended Binary Coded Decimal
Interchange Code)
a character encoding used to represent
Unicode characters
為IBM於1963-1964年間推出的字元編碼表,根據早
期打孔機式的二進化十進數(BCD, Bindary Coded
Decimal)排列而成
為IBM迷你級以上電腦的標準
71
serialize objects and other data structures into
and out of XML
serialization
the process of saving an object onto a
storage medium (such as a file, or a
memory buffer) or to transmit it across a
network connection link in binary form
XML (eXtensible Markup Language)
an extensible language that allows users to
define their own tags
72
Layer 5: Session layer
controls the dialogues / connections (sessions)
between computers
establishes, manages and terminates the
connections between the local and remote
application
provides for either full-duplex or half-duplex
operation
establishes checkpoint, adjournment, termination,
and restart procedures
73
Layer 4: Transport layer
provides reliable data transfer services to the upper
layers
controls the reliability of a given link through flow
control, segmentation/ desegmentation, and error
control
some protocols are state and connection oriented
i.e. the transport layer can keep track of the
segments and retransmit those that fail
74
the best known example: Transmission Control
Protocol (TCP)
the transport layer is the layer that converts
messages into TCP segments or User Datagram
Protocol (UDP), Stream Control Transmission
Protocol (SCTP), etc.
75
Layer 3: Network layer
provides the functional and procedural means of
transferring variable length data sequences from a
source to a destination via one or more networks
while maintaining the quality of service requested
by the Transport layer
performs network routing functions, and might also
perform fragmentation and reassembly, and report
delivery errors
76
“routers” operate at this layer
send data throughout the extended network and
make the Internet possible
there is a logical hierarchical addressing scheme
the best known example: Internet Protocol (IP)
77
Layer 2: Data Link layer
provides the functional and procedural means to
transfer data between network entities and to detect
and possibly correct errors that may occur in the
Physical layer
the best known example: Ethernet
this layer manages the interaction of devices with a
shared medium
78
other examples
HDLC and ADCCP for point-to-point or packetswitched networks
HDLC (High-Level Data Link Control)
a bit-oriented synchronous data link layer
protocol developed by ISO
HDLC can be used for point to multipoint
connections, but is now used almost
exclusively to connect one device to
another
79
ADCCP (Advanced Data Communication
Control Procedures (or Protocol))
a bit-oriented data link layer protocol used
to provide point-to-point and point-tomultipoint transmission of data frames that
contain error control information
80
Aloha for local area networks
Aloha
a pioneering computer networking system
developed at the University of Hawaii
first deployed in 1970
one of the core concepts in the network is the
basis for the widely used Ethernet
the first version of the protocol was basic
if you have data to send, send the data
if the message collides with another
transmission, try resending "later”
81
Slotted Aloha
an improvement to the original Aloha
protocol
introduces discrete timeslots and increased
the maximum throughput
a station can send only at the beginning of
a timeslot, and thus collisions are reduced
82
83
on IEEE 802 local area networks (LANs), and some
non-IEEE 802 networks such as FDDI, this layer
may be split into Media Access Control (MAC)
layer and Logical Link Control (LLC) layer
FDDI (Fiber Distributed Data Interface)
provides a standard for data transmission in a
LAN that can extend in range up to 200
kilometers (124 miles)
84
MAC
a layer 2 sub-layer that provides addressing and
channel access control mechanisms that makes it
possible for several terminals or network nodes to
communicate within a multipoint network,
typically a LAN or MAN
acts as an interface between the Logical Link
Control (LLC) sub-layer and the network's
physical layer
85
LLC
a sub-layer primarily concerned with
multiplexing protocols transmitted over the MAC
layer (when transmitting) and demultiplexing them
(when receiving)
providing flow control and detection and
retransmission of dropped packets, if requested
the protocol used for LLC in IEEE 802 networks
and in some non-IEEE 802 networks such as
FDDI is specified by the IEEE 802.2 standard
86
arranges bits from the physical layer into logical
chunks of data, known as frames
“bridges” and “switches” operate at this layer
connectivity is provided only among locally
attached network nodes forming layer 2 domains
for unicast or broadcast forwarding
other protocols may be imposed on the data frames
to create tunnels and logically separated layer 2
forwarding domain
87
Layer 1: Physical layer
defines all the electrical and physical specifications
for devices
includes the layout of pins, voltages, and cable
specifications
88
hubs, repeaters, network adapters and Host Bus
Adapters (HBAs used in Storage Area Networks
(SAN)) are physical-layer devices
HBA
connects a host system (the computer) to other
network and storage devices
SAN
an architecture to attach remote computer storage
devices (such as disk arrays, tape libraries and optical
jukeboxes) to servers in such a way that, to the
operating system, the devices appear as locally
attached
89
major functions and services performed by the
physical layer
establishment and termination of a connection to a
communications medium
90
switch
hub, repeater,
network adapter,
HBA
OSI Network Architecture
92
Operations
physical layer
handles the transmission of raw bits over a
communications link
data link layer
collects a stream of bits into a larger aggregate called a
frame
network adaptors, along with device drivers running
in the node’s OS, typically implement the data link
level
this means that, frames, not raw bits, are actually
delivered to hosts
93
network layer
handles routing among nodes within a packet-switched
network
at this layer, the unit of data exchanged among nodes is
typically called a packet rather than a frame
[note]
the lower three layers are implemented on all network
nodes, including switches within the network and hosts
connected along the exterior of the network
94
transport layer
implements a process-to-process channel
the unit of data exchanged is commonly called a
message rather than a packet or a frame
the transport layer and higher layers typically run only
on the end hosts and not on the intermediate switches
or routers
95
session layer
provides a name space that is used to tie together the
potentially different transport streams that are part of
a single application
example
it might manage an audio stream and a video
stream that are being combined in a
teleconferencing application
96
presentation layer
concerned with the format of data exchanged between
peers, for example,
whether an integer is 16, 32, or 64 bits long
whether the most significant byte is transmitted first
or last
how a video stream is formatted
application layer
protocols include things like the File Transfer Protocol
(FTP), which defines a protocol by which file transfer
applications can interoperate
97
Internet Architecture (TCP/IP Architecture)
The Internet architecture evolved out of experiences
with an earlier packet-switched network called the
ARPANET
Both Internet and ARPANET were funded by the
Advanced Research Projects Agency (ARPA), one of
the R&D funding agencies of the U.S. Department of
Defense (DoD)
Internet and ARPANET were around before the OSI
architecture, and the experience gained from building
them was a major influence on the OSI reference model
98
FTP
HTTP
NV
TFTP
UDP
TCP
IP
Internet
a four-layer model
the lowest level
NET1
NET2
■■■
NETn
a wide variety of network protocols: denoted NET1,
NET2, and so on
these protocols are implemented by a combination of
hardware (e.g., a network adaptor) and software (e.g.,
network device driver)
examples
Ethernet or FDDI protocols
99
FTP
HTTP
NV
TFTP
UDP
TCP
IP
the second layer
NET
1
NET
2
■■■
consists of a single protocol: Internet Protocol (IP)
the protocol that supports the interconnection of
multiple networking technologies into a single, logical
internetwork
the third layer
contains two main protocols
Transmission Control Protocol (TCP) and User
Datagram Protocol (UDP)
TCP and UDP provide alternative logical channels
to application programs
100
NET
n
TCP provides a reliable byte-stream channel
UDP provides an unreliable datagram delivery
channel (datagram may be thought of as a
synonym for message)
in the language of the Internet, TCP and UDP are
sometimes called end-to-end protocols, although it
is equally correct to refer to them as transport
protocols
FTP
HTTP
NV
TFTP
UDP
TCP
IP
101
NET1
NET
2
■■■
NETn
the top layer
application protocols, such as FTP, TFTP (Trivial File
Transport Protocol), Telnet (remote login), and SMTP
(Simple Mail Transfer Protocol, or electronic mail),
that enable the interoperation of popular applications
FTP
HTTP
NV
TFTP
UDP
TCP
IP
NET1
NET2
■■■
NETn
102
the difference between an application layer protocol
and an application
all the available different World Wide Web browsers
(Firefox, Safari, Internet Explorer, Lynx, etc) – application
a similarly large number of different implementations of
web servers – application
we can use any one of these application programs to access
a particular site on the Web is because they all conform to
the same application layer protocol: HTTP (HyperText
Transport Protocol) – application protocol
confusingly, the same word sometimes applies to both an
application and the application layer protocol that it uses (e
g., FTP)
103
FTP
HTTP
NV
TFTP
UDP
TCP
IP
NET 1
NET 2
■■■
Internet protocol graph
NET n
Alternative view of Internet architecture
104
1.4 Implementing Network Software
Application Programming Interface (Sockets)
Protocol Implementation Issues
105
Application Programming Interface
(Sockets)
The place to start when implementing a network
application is the interface exported by the network
network Application Programming Interface (API)
when we refer to the interface “exported by the
network,” we are generally referring to the interface
that the OS provides to its networking subsystem
Socket interface
originally provided by the Berkeley distribution of Unix
now supported in virtually all popular operating systems
106
Protocol, API and implementation
protocol
provides a certain set of services
API
provides a syntax by which those services can be
invoked in this particular OS
implementation
responsible for mapping the tangible set of
operations and objects defined by the API onto the
abstract set of services defined by the protocol
107
Socket
the main abstraction of the socket interface
the point where a local application process attaches
to the network
an interface between an application and the network
an application creates the socket
108
Socket interface defines operations of
creating a socket
attaching a socket to the network
sending/receiving messages through the socket
closing the socket
109
Socket API (TCP)
Create a socket
int socket(int domain, int type, int protocol)
domain
specify the socket family that is going to be used
examples
PF_INET = Internet family
PF_UNIX = UNIX pipe facility
PF_PACKET = direct access to the network interface (i.e.
bypass TCP/IP protocol stack)
110
type
indicate the semantics of the communication
examples
SOCK_STREAM = a byte stream
SOCK_DGRAM =a message-oriented service, e.g.
UDP
protocol
identify the specific protocol that is going to be used
example
UNSPEC (Unspecified)
111
handle
the return value from newly created socket
an identifier by which we can refer to the socket in the
future
it is given as an argument to subsequent operations on this
socket
112
Creating a Socket
int sockfd = socket(address_family, type, protocol);
The socket number returned is the socket descriptor for the
newly created socket
int sockfd = socket (PF_INET, SOCK_STREAM, 0);
int sockfd = socket (PF_INET, SOCK_DGRAM, 0);
The combination of PF_INET and SOCK_STREAM implies
TCP
Client-Serve Model with TCP
Server
passive open
prepares to accept connection, does not actually
establish a connection
Server invokes
int bind(int socket, struct sockaddr *addr, int addr_len)
int listen(int socket, int backlog)
int accept(int socket, struct sockaddr *addr, int addr_len)
bind operation
binds the newly created “socket” to the specified
“address” (the server address)
when used with Internet Protocols, “address” is a data
structure that includes
the IP address of the server
a TCP port number
used to indirectly identify a process
usually some well-known number specific to the service
being offered; e.g., web servers commonly accept
connections on port 80
115
listen operation
defines how many connections can be pending on the
specified “socket”
accept operation
carries out the passive open
it is a blocking operation that does not return until a
remote participant has established a connection,
when it does complete, it returns a new socket that
corresponds to this new established connection
116
the “address” argument contains the remote
participant’s address
when accept returns, the original socket that was given
as an argument still exists and still corresponds to the
passive open; it is used in future invocations of accept
117
Client-Serve Model with TCP
Client
application performs active open
it says who it wants to communicate with by invoking
“connect”
Client invokes
int connect(int socket, struct sockaddr *addr, int addr_len)
connect operation
it does not return until TCP has successfully
established a connection, at which time the
application is free to begin sending data
“address” contains the remote participant’s address
119
Client-Serve Model with TCP
In practice
the client usually specifies only remote
participant’s address and let the system fill in the
local information
whereas a server usually listens for messages on a
well-known port
a client does not care which port it uses for itself,
the OS simply selects an unused one
Client-Serve Model with TCP
Once a connection is established, the application
process invokes the following two operations to send
and receive data
int send(int socket, char *msg, int mlen, int flags)
int recv(int socket, char *buf, int blen, int flags)
send operation
it sends the given message over the specified socket
receive operation
it receives a message from the specified “socket” into
the given “buffer”
both “send” and “receive” take a set of “flags” that
control certain details of the operation
122
Example Application: Client
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define SERVER_PORT 5432
#define MAX_LINE 256
int main(int argc, char * argv[])
{
FILE *fp;
struct hostent *hp;
struct sockaddr_in sin;
char *host;
char buf[MAX_LINE];
int s;
int len;
if (argc==2) {
host = argv[1];
}
else {
fprintf(stderr, "usage: simplex-talk host\n");
exit(1);
}
Example Application: Client
/* translate host name into peer’s IP address */
hp = gethostbyname(host);
if (!hp) {
fprintf(stderr, "simplex-talk: unknown host: %s\n", host);
exit(1);
}
/* build address data structure */
bzero((char *)&sin, sizeof(sin));
sin.sin_family = AF_INET;
bcopy(hp->h_addr, (char *)&sin.sin_addr, hp->h_length);
sin.sin_port = htons(SERVER_PORT);
/* active open */
if ((s = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
perror("simplex-talk: socket");
exit(1);
}
if (connect(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
perror("simplex-talk: connect");
close(s);
exit(1);
}
/* main loop: get and send lines of text */
while (fgets(buf, sizeof(buf), stdin)) {
buf[MAX_LINE-1] = ’\0’;
len = strlen(buf) + 1;
send(s, buf, len, 0);
}
}
Example Application: Server
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define SERVER_PORT 5432
#define MAX_PENDING 5
#define MAX_LINE 256
int main()
{
struct sockaddr_in sin;
char buf[MAX_LINE];
int len;
int s, new_s;
/* build address data structure */
bzero((char *)&sin, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_port = htons(SERVER_PORT);
/* setup passive open */
if ((s = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
perror("simplex-talk: socket");
exit(1);
}
Example Application: Server
if ((bind(s, (struct sockaddr *)&sin, sizeof(sin))) < 0) {
perror("simplex-talk: bind");
exit(1);
}
listen(s, MAX_PENDING);
/* wait for connection, then receive and print text */
while(1) {
if ((new_s = accept(s, (struct sockaddr *)&sin, &len)) < 0) {
perror("simplex-talk: accept");
exit(1);
}
while (len = recv(new_s, buf, sizeof(buf), 0))
fputs(buf, stdout);
close(new_s);
}
}
1.5 Performance
Performance metrics
Bandwidth versus latency
Delay ╳ bandwidth product
High-speed networks
Application performance needs
127
Performance Metrics
Network performance is measured in
bandwidth (also called throughput)
latency (also called delay)
Bandwidth
literally a measure of the width of a frequency band
example
a voice-grade telephone line supports a frequency band
ranging from 300 to 3,300 Hz
(Hz = the number of complete cycles per second)
it is said to have a bandwidth of 3,300Hz - 300Hz =
3,000Hz
128
bandwidth
the range of signals that can be accommodated
measured in hertz
bandwidth of a communication link
the number of bits per second that can be
transmitted over a link
example
the bandwidth of an Ethernet is 10 Mbps (10
million bits/second)
129
bandwidth is sometimes thought in terms of how
long it takes to transmit each bit of data
example
on a 10-Mbps network, it takes 0.1
microsecond (μs) to transmit each bit
130
we can think of
a second of time:a distance that we could measure
bandwidth:how many bits fit in that distance
each bit:a pulse of some width
example
each bit on a 1-Mbps link is 1 μs wide
each bit on a 2-Mbps link is 0.5 μs wide
131
Bits transmitted at a particular bandwidth can be regarded as having some width:
(a)bits transmitted at 1 Mbps (each bit 1 μs wide);
(b)bits transmitted at 2 Mbps (each bit 0.5 μs wide)
132
Bandwidth requirements of an application
the number of bits per second that it needs to
transmit over the network to perform acceptably
Throughput
the measured performance of a system
because of various inefficiencies of implementation,
a pair of nodes connected by a link with a
bandwidth of 10 Mbps might achieve a throughput
of only 2Mbps
133
Latency (delay)
corresponds to how long it takes a message to
travel from one end of a network to the other
(one-way)
measured strictly in terms of time
example
a transcontinental network might have a
latency of 24 milliseconds (ms)
i.e., it takes a message 24 ms to travel from
one end of North America to the other
134
Latency = Propagation delay + Transmit delay +
Queuing delay
Propagation delay = Distance / SpeedOfLight
light travels across different mediums at different
speeds, examples
3.0 × 108 m/s in a vacuum
2.3 × 108 m/s in a cable
2.0 × 108 m/s in a fiber
Transmit delay = Packet size / Bandwidth
Queuing delay = the time the packet switches
takes to store packets for some time before
forwarding them on an outbound link
135
Round-trip time (RTT)
how long it takes to send a message from one end
of a network to the other and back
136
Bandwidth versus Latency
Relative importance (depends on applications)
latency dominates bandwidth (latency bound)
example: a client sends a 1-byte message to a server and
receives a 1-byte message in return (latency bound)
the application will perform much differently on a
transcontinental channel with a 100-ms RTT than it will
on an across-the-room channel with a 1-ms RTT
whether the channel is 1 Mbps or 100 Mbps is relatively
insignificant, however, since the former implies that the
time to transmit a byte (Transmit) is 8 μs and the latter
implies Transmit = 0.08 μs
137
bandwidth dominates latency (bandwidth bound)
example: a digital library program that is being asked
to fetch a 25MB image
suppose that the channel has a bandwidth of 10 Mbps
it will take 20 seconds to transmit the image,
making it relatively unimportant if the image is on
the other side of a 1-ms channel or a 100-ms
channel
the difference between a 20.001-second response
time and a 20.1-second response time is negligible
138
Summary
for large file transfer, bandwidth is critical
for small messages (HTTP, NFS, etc.), latency is
critical
139
The following graph shows how long it takes to move
objects of various sizes (1 byte, 2KB, 1MB) across
networks with
RTTs ranging from 1 to 100 ms
link speeds of either 1.5 or 10 Mbps
140
p. 48 of 5th ed.
pp. 43-44 of 4th ed.
141
142
Delay ╳ Bandwidth Product
Channel
between a pair of processes as a hollow pipe
Latency (delay)
the length of the pipe
Bandwidth
the diameter of the pipe
Delay × bandwidth
the volume of the pipe
i.e. the maximum number of bits that could be in transit
through the pipe at any given instant
143
Example
a transcontinental channel with a one-way latency
of 50ms and a bandwidth of 45Mbps can hold
280KB (= 2.25 × 106 bits) of data
144
Sample Delay ╳ Bandwidth Products
Link type
Bandwidth
(Typical)
(Distance
(Typical)
Round-trip
Delay
Delay x BW
Dial-up
56Kbps
10km
87μs
5bits
Wireless
LAN
54Mbps
50m
0.33μs
18bits
Satellite
45Mbps
35,000 km
230ms
10MB
Crosscountry fiber
10Gbps
4,000km
40ms
400MB
145
High-Speed Networks
Example
transmit a 1-MB file over a 1-Mbps network vs. over a 1-Gbps
network, both of which have an RTT of 100 ms (“high speed”
does not mean that latency improves at the same time as
bandwidth)
1-Mbps network
delay × bandwidth = 0.1Mb
it takes 80 [= (1/0.1)*8] RTTs to transmit the file
during each RTT, 1.25% of the file is sent
1-Gbps network
delay × bandwidth = 12.5 [= 0.1 * (1000/8)] MB
it takes < 1 [= (1/12.5)*8] RTT to transmit the file
146
Relationship between bandwidth and latency.
A 1-MB file would fill the 1-Mbps link 80 times,
but only fill the 1-Gbps link 1/12 of one time.
*More data can be transmitted during each RTT on a high-speed network
147
Effective End-to-End Throughput
Throughput = TransferSize / TransferTime
TransferTime = RTT + (1/Bandwidth) x TransferSize
TransferTime = one-way latency plus any
additional time spent requesting or setting up the
transfer
RTT = a request message being sent across the
network and the data being sent back
in a high-speed network (infinite bandwidth), RTT
dominates TransferTime
148
Example
a user wants to fetch a 1-MB file across a 1-Gbps
with a round-trip time of 100ms
TransferTime = 100-ms (RTT) + transmit time for
1MB (1/1Gbps × 1MB = 8ms) = 108ms
effective throughput = 1MB/108ms = 74.1Mbps
(not 1Gbps)
149
Discussions
transferring a larger amount of data will help
improve the effective throughput
where in the limit, an infinitely large transfer size
will cause the effective throughput to approach the
network bandwidth
150
Application Performance Needs
Some applications are able to state an upper limit on how
much bandwidth they need
example
suppose one wants to stream a video image; that is
one-quarter the size of a standard TV image; i.e., it
has a resolution of 352 by 240 pixels
if each pixel is represented by 24 bits of information
(24-bit color), then the size of each frame would be
(352 × 240 × 24)/8 = 247.5 KB
151
if the application needs to support a frame rate of 30
frames per second, then it might request a throughput
rate of 75 Mbps
because the difference between any two adjacent
frames in a video stream is often small, it is possible
to compress the video by transmitting only the
differences between adjacent frames
152
this compressed video does not flow at a constant
rate, but varies with time according to factors such as
the amount of action
detail in the picture
the compression algorithm
it is possible to say what the average bandwidth
requirement will be, but the instantaneous rate may
be more or less
153
Jitter
the variation in latency
example
the source sends a packet once every 33 ms, as
would be the case for a video application
transmitting frames 30 times a second
if the packets arrive at the destination spaced out
exactly 33 ms apart, then the delay experienced by
each packet in the network was exactly the same
154
if the spacing between when packets arrive at the
destination (interpacket gap) is variable, however,
then the delay experienced by the sequence of
packets must have also been variable, and the
network is said to have introduced jitter into the
packet stream
such variation is generally not introduced in a single
physical link, but it can happen when packets
experience different queuing delays in a multihop
packet-switched network
155
this queuing delay corresponds to the Queue component of
latency, which varies with time
Network-induced jitter
156
Relevance of jitter
suppose that the packets being transmitted over the
network contain video frames, and in order to display
these frames on the screen the receiver needs to receive
a new one every 33 ms
if a frame arrives early, then it can simply be saved by
the receiver until it is time to display it
if a frame arrives late, then the receiver will not have the
frame it needs in time to update the screen, and the
video quality will suffer; it will not be smooth
157
if the receiver knows the upper and lower bounds on the
latency that a packet can experience, it can delay the
time at which it starts playing back the video (i.e.,
displays the first frame) long enough to ensure that in
the future it will always have a frame to display when it
needs it
the receiver delays the frame, effectively smoothing out
the jitter, by storing it in a buffer
158