slides - My FIT (my.fit.edu)

Download Report

Transcript slides - My FIT (my.fit.edu)

ECE 5595 Week 1
Outline
•
•
•
•
•
•
•
•
Vocabulary
Protocols
Reference Models
Types of service
The client-server model
Sockets
Delay
Delay-bandwidth product
2
Vocabulary (1)
• Network, Internetwork, WAN, MAN, CAN,
LAN, PAN
• Stations, hosts, systems
• Subnet, Segment, Link
• Router, bridge, switch, hub, repeater
• Switching
• Point-to-Point (P2P) segment, Shared
segment
• Contention, Collisions
3
Vocabulary (2)
4
Vocabulary (3)
• Simplex, Half-duplex, Full-duplex
• Unicast, Broadcast, Multicast
• Topology: the “shape” or pattern
– Physical and logical topology may be different
• Mesh: P2P links between pairs of hosts
– A fully connected mesh of N devices requires N*(N-1)/2
separate P2P links, i.e., its “Big O” is N squared.
Fully connected
Partially connected
5
Vocabulary (4)
• Bus or backbone: Big O is N
• Ring: Big O is N
• Star (or hub and spoke): Big O is N
– Physically the result of collapsing the backbone or ring
into a “hub” in a communications closet
– Each host is a “home run” to the closet
– The result is called “structured wiring”
– Often used with bus (Ethernet) or ring (FDDI) logical
topologies
6
Vocabulary (5)
hub
Bus or backbone
Collapsed backbone
hub
Ring
Collapsed ring
7
Vocabulary (6)
• Multiplexing, De-multiplexing:
• Statistical multiplexing: relying on the networkusage statistics to allow oversubscription of a
network resource
8
Outline
•
•
•
•
•
•
•
•
Vocabulary
Protocols
Reference Models
Types of service
The client-server model
Sockets
Delay
Delay-bandwidth product
9
Protocols (1)
• The network provides communication services
• Software objects called protocols implement
these services
– The networking problem is complex
– The protocol objects are layered to split up the problem
– “Protocol” also describes the operation and messages
exchanged by one protocol object and its peer object in
another device
• Networking creates patterns of interactions
between protocol objects
10
Protocols (2)
• Each protocol object has two different interfaces
– Service interface: The interface to a higher-layer
protocol object on the same system
• It defines the operations that the higher-layer protocol object
can perform on this protocol object
• A protocol accepts its Service Data Unit (SDU) or payload at
the service interface
– Peer-to-peer interface: the message interaction
between this protocol object and its peer on another
system
• Peer-to-peer communication is indirect (or virtual) except at the
hardware layer
• A protocol sends Protocol Data Units (PDUs) on this
interface
11
Protocols (3)
12
Protocols (4)
• A protocol object may provide service to multiple,
higher-layer, protocol objects (via multiplexing)
– As the PDU is created from the SDU a tag (or address) is
added to the PDU to distinguish between the various
higher-layer customers
• This allows the SDU to be extracted at this layer’s peer and
handed back to the peer of the higher-layer customer
• The PDU may also include information to support
fragmentation and re-assembly, error detection or
correction, flow control, or any other service
characteristics that the protocol object provides to
its customers
13
Protocols (5)
• The PDU for a protocol object is created from the
SDU by encapsulating the SDU (= the payload)
between a header and a (optional) trailer
– The header and optional trailer provide the additional
information needed to support the service provided by
the protocol object to its customers
– The SDU contents and structure are opaque to the
protocol object and the encapsulation process – the
payload is just a bunch of bytes
14
Protocols (6)
15
Protocols (7)
16
Outline
•
•
•
•
•
•
•
•
Vocabulary
Protocols
Reference Models
Types of service
The client-server model
Sockets
Delay
Delay-bandwidth product
17
Reference Models (1)
• A reference model is the formal name for a
protocol suite – a collection of protocols and layer
definitions that provide network service
• We discuss 2 models
– The 7-layer, Open Systems Interconnection (OSI) model
created primarily by the phone companies
– The hybrid model derived from the 5-layer Transmission
Control Protocol (TCP) / Internet Protocol (IP) model
created by the Internet Engineering Task Force (IETF)
18
Reference Models (2): OSI
“endian” issues
synchronization
end-to-end
boundary
routing
framing
voltages, cabling
19
Reference Models (3): TCP/IP
Layer 3 is often called the network layer and Layer 2 the data-link layer –
borrowing from the OSI model
20
Reference Models (4)
• Layer 1 = Physical Layer
– Actually moves bits to its peer
• Layer 2 = Network Interface (aka Data Link) Layer
– Creates frames from the Internet layer payload
• Having a unit of bytes called a frame permits checksums, for
example, allows a header to be applied, etc.
– Sends frames to the physical layer for transmission
– Standards often describe a combination of layer 2 on a
specific layer 1 medium
21
Reference Models (5)
• Layer 3 = Internet (aka Network) layer
– Performs internetworking role
• Forwards packets between layer 2 networks
• This layer is end-to-end but multiple peer-to-peer hops may be
needed to reach the destination
• Creates a virtual, uniform network on top of heterogeneous
layer-2 network technologies
– Creates packets from data sent by transport layer
• May perform fragmentation in the TCP/IP protocol suite
– Sends packets to layer 2 to be sent through the data link
layer
22
Reference Models (6)
• Layer 4 = Transport layer
– Lowest layer that is completely end-to-end
• The peers are the endpoints rather than the intermediate hops
– Provides service characteristics required by the
application layer
• Reliable stream service: Transmission Control Protocol (TCP)
• Best-effort message service: User Datagram Protocol (UDP)
• Layer 5 = Application layer
• Other layers are added as necessary
• Not every object has protocol objects at every layer
– The protocols, the flows between the protocol objects
and the patterns that they form are what we study
23
Reference Models (7)
24
Reference Models (8)
25
Outline
•
•
•
•
•
•
•
•
Vocabulary
Protocols
Reference Models
Types of service
The client-server model
Sockets
Delay
Delay-bandwidth product
26
Types of service (1)
• Connection-oriented vs. Connectionless
– Connection-oriented requires setup prior to use but has
more predictable characteristics
• Reliable vs. Unreliable
– Reliable service uses Acknowledgments and Timeouts as
its fundamental mechanisms
• Datagram or message versus Stream
– Datagram: connectionless, unreliable, many-to-many,
sequence of discrete messages of finite length (UDP)
– Stream: connection-oriented, reliable, one-to-one,
sequence of individual bytes, arbitrary length (TCP)
27
Outline
•
•
•
•
•
•
•
•
Vocabulary
Protocols
Reference Models
Types of service
The client-server model
Sockets
Delay
Delay-bandwidth product
28
Client-Server (1)
• A server starts first and waits to be contacted
– It does not know which clients will contact it
– It continues to run after servicing one client
• A client starts second and initiates the connection
– It must know what server to contact
– It initiates contact only when necessary
• A computer can run
– One or more clients of the same type, or multiple clients
of different types, etc.
– One or more servers for providing one or more services
– A combination
29
Client-Server (2)
• An iterative server handles one request at a time
• A concurrent server handles multiple requests at a
time with N+1 threads used for N requests
– A main process handles receiving the requests and
handing them off to child processes
• An application may have both server and client
relationships to other applications
– Circular relationships can lead to a deadlock 
– This is an example of a loop – and loops are a pattern
that we must avoid at every layer
30
Client-Server (3)
• How does a client identify a server?
– In TCP/IP an application service is identified in two
steps:
• Identify the hardware interface where the service can be
reached: an IP address
• Identify which service at that interface: a TCP, or UDP port
number
– The IP address is also used to locate the interface on
the network at layer 3
– Typically a Domain Name Service (DNS) name is
specified and that is translated by DNS into an IP
address
31
Outline
•
•
•
•
•
•
•
•
Vocabulary
Protocols
Reference Models
Types of service
The client-server model
Sockets
Delay
Delay-bandwidth product
32
Sockets (1)
• A networking API called Sockets was distributed
as part of the original UNIX
• An application creates a socket, and then invokes
functions to adjust the socket details and to pass
data through the socket
– The socket descriptor returned by the socket call is an
argument to those other functions
– The result it that each function call is relatively simple,
but it takes a sequence of function calls to actually pass
data
– Address to name, and byte reordering routines are also
provided
33
Sockets (2)
Name
Used By
Description
accept
server
Accept an incoming connection
bind
server
Specify IP address and protocol port
close
either
Terminate communication
connect
client
Connect to a remote application (active open)
getpeername
server
Obtain client’s IP address
getsocketopt
server
Obtain current options for a socket
listen
server
Prepare socket for use by a server (passive open)
recv
either
Receive incoming data or message
recvmsg
either
Receive data (message transport)
recvfrom
either
Receive a message and sender’s address
send (write)
either
Send outgoing data or message
sendmsg
either
Send outgoing data (message transport)
sendto
either
Send outgoing message (variant of sendmsg)
setsocketopt
either
Change socket options
shutdown
either
Terminate a connection (in one direction, i.e., half-close)
socket
either
Create a socket for use by the other functions
34
Sockets (3)
Illustration of stream
socket function calls
35
Outline
•
•
•
•
•
•
•
•
Vocabulary
Protocols
Reference Models
Types of service
The client-server model
Sockets
Delay
Delay-bandwidth product
36
Performance (1)
• There are several important measures of network
performance
– Throughput or capacity: data transferred per unit time
• Throughput is limited by the slowest link traversed
– Delay or Latency: time required to complete some step
of network activity; there are several different
components of delay that are of interest
– Jitter or variability: the statistical description of how the
delay changes
• A user computes throughput as follows
– Throughput = amount of data transferred / time it took
37
Performance (2)
• We are surprised when the throughput doesn’t
match the data rate of the network, but data rate is
an ideal number
–
–
–
–
Protocols have overhead such as headers
Helper protocols such as DNS consume time
Call setup for a connection consumes time
In general, the other desirable characteristics of a data
communication come at the expense of throughput
• Congestion avoidance, reliability, etc.
– Finally, the nominal data rate assumes the network is full
of data all of the time
• This may not be true due to protocol limitations or configuration
38
Performance (3)
• Latency (delay)
– Specifically the time between when the first bit is placed
on the wire and when the last bit leaves the wire at the
other end
• We discuss three elements of delay
– Transmit time or delay (not considered in the textbook)
– Propagation delay
– Queuing delay (we include the textbook’s switching delay
and access delay in this category)
– We ignore the text’s server delay as a non-network delay
39
Performance (4)
• Transmit time for a message is the time needed to
put that message into the network
– It is also the time for the message to transit past a single
point
• Transmit time = message size / data rate
– For a typical file on a LAN this is the predominant delay
component so we mistakenly believe this is the only
component under all circumstances
• Transmit delay is based on data rate – so we can
throw money at it
– i.e., buy a higher data-rate network
40
Performance (5)
• Propagation delay is the time for an event to travel
from point A to point B
– Event: start of a bit, end of a bit, etc.
• Propagation delay =
distance / propagation_velocity
– For most network media the propagation velocity is a
fraction of the speed of light
• In general – one cannot buy lower propagation
delay
– May be able to switch from a geo-synch satellite to a
land-line in some circumstances
– Protocol design must work around expected delay
41
Performance (6)
• Queuing delay is time spent in network equipment
– In store and forward switching you store the entire
inbound frame before forwarding on the output port
• As a minimum this adds another transmit time for the frame
– A newly arrived frame once it is switched into an output
queue must wait for all previous frames to be
transmitted, i.e., the transmit time for all of those frames
– Variation in overall delay is called jitter and that is often
the result of variations in queuing delay
• To minimize jitter we want smaller atomic units of data, (often
called frames or packets) but that compromises efficiency with a
poor ratio of header to payload
– Increases in data rate also reduce queuing delay
42
Performance (7)
43
Outline
•
•
•
•
•
•
•
•
Vocabulary
Protocols
Reference Models
Types of service
The client-server model
Sockets
Delay
Delay-bandwidth product
44
Delay-bandwidth (1)
• A school (file) full of people (bits) must be moved
to a new school
• A fleet of taxicabs carries people 4 at a time (a
frame) to the new school
• The cabs enter the highway at a fixed rate (the
data rate = frame rate x bits per frame)
– Controlled by a policeman at the intersection, for
example
45
Delay-bandwidth (2)
• All cabs travel the same route at the speed limit
(the propagation velocity) and experience the
same delays at intersections (queuing delays)
• Time to transfer the whole school will be the time
between when the first and the last cab leave the
parking lot (transmit time), plus the time it takes
for the last cab (= time for any cab) to make the
trip (propagation delay and queuing delay)
• Does the rate at which cabs enter the highway
have any bearing on how far a cab travels? No!
– The data rate does not affect the propagation delay
46
Delay-bandwidth (3)
• Assume we could send 20-person buses at the
same interval – but otherwise follow the same
rules - we have 5 times higher data rate. Does the
bus get there any faster than a cab? No
– The data rate does not affect the propagation delay
• Will the transfer be completed faster with the
buses? Yes, but it won’t be 5 times faster
– It will be close to 5 if the new school is just down the
street (minimum propagation delay so the reduction in
transmit time is the predominant effect)
– It will be much less significant a savings if the new
school is across the country
47
Delay-bandwidth (4)
• What if we only had one taxi and we had to wait
for it to get back before we could send it again?
• To achieve the fastest transfer we must have
enough taxis so we can keep sending them at the
data rate until the first one gets back and can be
sent again
• Assume we send a cab every 2 minutes (data rate)
and they take 120 minutes (round-trip delay) to
get back
1 cab
x 120 minutes  60 cabs
2 minutes
48
Delay-bandwidth (5)
• Amount of data “in the pipe” or “in flight” is
determined by the delay-bandwidth product
– It is really the delay-”data rate” product
• Round-Trip Time (RTT) is used because
acknowledgement is involved
– One-way-delay * data rate will have been received and
one-way-delay * data rate will still be in the pipe before
the acknowledgement gets back to the sender that the
first data has arrived
• For the school analogy – 30 cabs on the way out,
30 cabs on the way back at any time
49
Delay-bandwidth (6)
Assume sender can use the
full bandwidth and has 200
* data_rate of data
One-way Delay = 100
t=0
t=50
first unit of data
arrives; first
acknowledgement
starts back
t=100
50th time unit of data
arrives; 50 acks on the
way back
100th time unit of data
arrives; 100 acks on the
way back; sender sees
ack for first unit of data
t=150
t=200
Sender
Receiver
50
Delay-bandwidth (7)
• Delay used in computation is often just the round
trip propagation delay
– Usually computed in a WAN setting where the
propagation delay dominates
– Queuing delay is often estimated or ignored
– Transmit delay component would be for a single frame,
and a single ACK in the other direction: usually too small
to matter in a WAN
• A sender must buffer the RTT delay-data_rate
product amount of data to keep the pipe full if
there is any requirement to resend lost data
51
Delay-bandwidth (8)
One-way Delay = 100
t=0
t=50
Assume sender can use the full
data_rate and is only allowed
50 * data_rate
unacknowledged due to buffer
limitations
t=100
t=150
t=200
t=225
t=250
Sender
Receiver
52