Topics related to Application Protocols
The scope of this topic includes applications and application
protocols from TCP/IP (ch 2 of Kurose) along with our continued
study of simple sockets network programs
- datacom 102 - concepts:
- communication and network errors--- what can prevent a
frame that is transmitted to appear to the sender to be
'sent ok' but either arrive at the receiver damaged or not
arrive at all?
- First concept: detection and recovery :
- Error Detection:
- Within a frame (bit errors) using some sort of
check sum or CRC
- Link level - if a frame never even arrives at
a receiver, a sliding window protocol is
typically used.
- At the socket endpoint (the transport protocol
OR the application)- might observe a gap in
sequence numbers, OR, a sender's transmission
timer might pop
- Error Recovery -
- Over wireless where bit errors are common,
redundant data is added within frames so that
the frame data can be received in spite of some
number of bit errors
- Reliable data transfer (RDT) protocols are
used to allow a receiver to coordinate with a
sender regarding what might need to be
retransmit.
- Second concept: cause of error
- channel errors that lead to bit errors at a
receiving physical layer
- network congestion that lead to routers dropping
arriving packets due to a 'buildup' or a queue as
packets wait their turn for transmission
- Common network measures to help monitor a network
- packet delay - one way delay components: transmission
time, propagation time, for each router in the path
between the two hosts that form the socket. forwarded by
routers over the path
- Measureing one-way delay : if the endpoints are in
perfect time sync, this is easy.... the packet can
include the senders time of transmission and the
receiver observes an end-to-end one-way latency of
the current time minus the senders Tx time
- (not easy to keep computers in accurate time
sync)
- Round trip time (RTT): Many applications or
network protocols require a sending side to wait for
an acknowledgement back from the receiving side that
it received the data (we'll call this an ACK
message!!).
- A performance tool like ping is designed to
help us estimate the aggregate delay of the
system by sampling with periodic ping
(send/receive) iterations. Each line of ping
shows an RTT sample. After running for a number
of iterations, and assuming the network system
is in some form of 'steady state' , we should
see a mean RTT and the standard deviation gets
lower and lower as we include in the computation
more and more samples. The average RTT is a
measure of interest!!
- loss rate - probability that a sent from one Host is
correctly received by the destination host.
- Typically modeled as a simple uncorrelated loss
model- any given packet is not received correctly
with a probability p.
- performance tools such as ping can be used to
sample the loss process and give us an estimate (the
sample mean) of the average loss rate
- Protocols and Layering
- Review intro material on sockets - and in particular on the
type of socket : streaming, datagram, raw.
- Each maps to something different from a socket perspective
and from a protocol perspective: TCP, UDP, ICMP.
- TCP: provides error detection and recovery, handles
all possible cases of errors, including the case when a
'fast sender ' potentially overruns a 'slow receiver'
- The congestion point is the socket receive queue
at the destination.... TCP has flow control that
prevents a fast sender from overflowing the slow
receiver's Rx socket buffer
- UDP: bit error detection optional, some UDP
applications as error detection by using sequence
numbers, most UDP applications do not care if sometimes
messages do not arrive (i.e., UDP does not provide
recovery, and applications are ok with occasional packet
loss)
- ICMP is a strange thing....it's somewhere in between
an application, transport, and network layer function.
For now, just know that ping uses ICMP messages. It is a
transport layer function but it does not do protocol
level error detection or recovery.
- DNS overview
- NFS- The Network File System
Tutorial
last updated: 3/25/2019