Outline
- network performance
- layered design
network performance
- many independent measures of network performance
- fundamental measures: delay (RTT), throughput, packet loss
- for example, a satellite link may have very high
throughput (good) but also very high delay (not good) and loss
(not good)
- a 56KB modem may provide guaranteed minimum throughput (good)
but low average throughput (not good) and high delay and packet
loss
- a fiber provides low delay, low packet loss, and high throughput
(all good) but is expensive
Delay
- many sources of delay
- transmission delay: the time to write a packet to the network
(packet size / link capacity)
- propagation delay: the time for a bit to go from one system
to the next (some fraction of the speed of light)
- processing delay: the time for a system to process a packet
(looking up in the routing/forwarding table, error checking, etc)
- queueing delay: the time a packet must wait before prior
traffic is deleted (varies over time)
Transmission Delay
- if a link can carry B bits per second (the capacity or bandwidth
of the link)
- and a packet is made of of P bits (not bytes)
- it takes P/B seconds to write the packet to the network
- in a store-and-forward network, each packet must be
received completely before it is processed
- so transmission delay is experienced every time the
packet is retransmitted
- the transmission delay is less on faster (high bandwidth) links
- the transmission delay is maximum on the link with lowest capacity
- for example, 8/56th of a second (14ms) for a 1-KB packet on
a 56K modem
- for example, 10,000/100,000,000 of a second (100us) for a 1250-byte
packet on a 100Mb/s ethernet
Processing Delay
- when a system (host or router) receives a packet, it must do
something with it:
- error checking: verify that the packet has no bit errors, no
truncation, etc
- forwarding: look up the destination in the routing or forwarding
table, assigning it to the proper queue
- other bookkeeping and overhead: incrementing internal counters, managing
memory, running routing protocols, etc
- the processing delay is the time from receiving the last bit of
the packet, to the first of:
- delivering a packet to the application
- beginning to send the packet on the outgoing link
- putting the packet in a queue
- typically on the order of microseconds
Propagation Delay
- this is the time between when a bit is placed on a medium,
and when that bit is received
- the time is equal to the physical length of the medium
divided by the speed of light on the medium
- the physical length may be more than the shortest distance,
but never less
- the speed of light on the medium may be less than
the speed of light in vacuum, but never more
- for example, Hawaii to California, 3800km, takes 12.7ms at
the speed of light in vacuum (radio waves)
- the same distance takes 19ms at a speed of 2/3c (e.g. on an
optic fiber)
Queueing Delay
- queueing delays depend entirely on the traffic being carried
- at each node, the queueing delay is the the time that a packet
waits to be sent
- queueing delays can vary a lot, but are rarely more than a
hundred ms or so per node.
- queueing vary over time, reflecting the amount of traffic
encountered by a packet
- the lowest delay measured between two endpoints gives an
estimate for the total delay minus the queueing delay
- as traffic intensity (percentage of traffic
carried over a given link bandwidth) increases, queueing delay
tends to increase more than linearly
Total Delay
- the total delay is the sum of the delays at each node
- in the case of a homogeneous network with no queueing delay,
it is simply N times the delay at each node
- sometimes, one link will have sufficiently low bandwidth that
- it often ends up having substantial queueing delays
- in any case, its transmission delay dominates the uncongested
end-to-end delay
- such a link is known as a bottleneck link
- other delays can be identified, for example, the medium
access delay on an Ethernet or WiFi network
Packet Loss
- as the queueing delay increases, eventually
- the system has no more physical memory to store incoming packets, or
- the system designer or administrator has made a decision about
maximum queue length
- once the queue is filled, newly received packets are discarded
Throughput
- a network has a well-defined capacity, which is the maximum
possible number of bits it can carry in a second
- the number of bits per second actually transmitted through
a network is the network througput
- the number seconds used for the measurement is significant:
- if the measurement is taken over a very short time interval,
we are measuring the instantaneous throughput
- if the measurement is taken over a long time interval,
for example, the transfer of a whole group of files,
we are measuring the average throughput
- average throughput is usually more consistent than instantaneous
throughput
- some applications, for example VoIP, require a minimum throughput
to work well
- many applications benefit from high throughput, but work even
with low throughput. For example, the web.
- the bottleneck link puts an upper limit on the througput of a
connection
Protocol Layers
- in a layered design, the protocol at each layer
- logically communicates with the protocol implementation at the
same layer in a different node
- actually provides a service to the protocol in the layer
above it (on the same node)
- and uses the service provided by the protocol in the layer
in the layer below it (on the same node)
- the top layer is the application protocol: HTTP, email (SMTP, IMAP),
ssh, DNS
- the lowest layer is the physical layer protocol, which define
ways of encoding the bits using electromagnetic signals, and the actual
physical medium used
Internet layers
- much of the functionality is in the application layer
- the application layer uses a transport protocol:
- TCP provides reliable transmission
- UDP provides timely transmission
- the protocol at the transport layer uses the functions of
IP, the Internet Protocol, which is at the networking layer
- IP provides best-effort end-to-end packet delivery
- the networking layer uses one of many possible link-layer protocols to
deliver data across a single network
- the link-layer protocol usually provides Medium Access Control,
and so is also known as MAC layer
- the link-layer protocol is layered above the physical layer protocol,
which knows how to send and receive bits
OSI layers
- the OSI standard has two additional layers between the application
and the transport layer:
- the presentation layer provides functions to represent the data
in different ways, e.g. compression or image encodings
- the session layer provides functions such as login
and checkpointing
- in the internet, the application is responsible for these
functions,
- except TCP connections can be seen as being in the session layer
layers and packets
- the structure of the data that is sent reflects the layering
of the protocols
- when sending a packet, each layer adds a header (some layers
also add a trailer)
- an application-level message is joined with a
transport-level header to become a segment
(one message may be sent as many segments)
- a transport-level segment is joined with a
network-level header to become a datagram
(one segment could result in many datagrams)
- a network-level datagram is joined with a
link-level header (and, usually, trailer) to become a frame
- when a packet is received, the headers (and trailers) are
stripped one at a time as the packet moves up the stack
Layers in nodes
- generally, a packet being processed by a node only
traverses the layers needed for processing
- in an end-system, a packet would traverse all layers
- in a router, a packet would only traverse the physical,
link, and network layers:
- at the network layer, the network
header (IP header) is examined to find the destination address
- the destination address is used to index the routing table
- the packet then traverses the outgoing network, link, and
physical layers to be sent from the router
- in a switch, a packet would only traverse the
physical and link layers, and the link-layer address is
used for forwarding