Title: Fundamentals of Networking
1Fundamentals of Networking Telecommunications
- Class 11
- TCP/IP Transport Application Layers
2Introduction to the Transport Layer
- What does the transport layer do?
- Provides a general service for end-to-end
transport of data in a way that shields the users
from the details of the underlying network(s) - Two basic Transport Layer varieties
- Connection-oriented (underneath web email)
- Connectionless (underneath network management and
streaming voice/video)
3Connection-Oriented Transport Services
- With connection-oriented transport services you
want to provide a reliable sequencing network
service - Four basic requirements need to be addressed with
a connection-oriented transport service - Addressing
- Multiplexing
- Flow Control
- Connection Establishment Termination
4Addressing
- Target user specified by
- User identification
- Transport entity identification
- Host address
- Network number
- How to get addressing information?
- Know address ahead of time (static configuration)
- Well known addresses
- Name server
- Sending process request to well known address
5Multiplexing
- Multiple users employ same transport protocol
- User identified by port number or service access
point (SAP) - May also multiplex with respect to network
services used - Example multiplexing a single virtual X.25
circuit to a number of transport service users - X.25 charges per virtual circuit connection time
(sharing to reduce cost)
6Flow Control
- Flow control in an internet can be difficult for
two reasons - Long transmission delay between transport
entities - Variable transmission delay and paths
- Why is flow control important?
- Systems in packet networks need to buffer data
- Buffers at all system layers can get filled up
- Receiver flow control techniques
- Do nothing
- Refuse to accept more segments
- Fixed sliding-window protocol
- Credit scheme
7Connection Establishment and Termination
- Fundamental requirement for connection-oriented
protocols - Connection establishment has three purposes
- Allow each end to know the other exists
- Negotiation of optional parameters
- Triggers allocation of transport entity resources
- All connections set up by mutual agreement
(handshake) - Need to deal with several scenarios
- Failed connection establishment
- Graceful disconnect
- Not-so-graceful disconnect (usually a reset or
abort)
8Transport Layer Implementations TCP UDP
- The Transmission Control Protocol (TCP)
- Connection oriented transport provides reliable,
sequenced streaming delivery with two
enhancements - Data Push
- Urgent Data signal
- Specified in RFC-793 with a number of later RFCs
outlining improvements - Besides the transfer protocol, defines
implementation-dependent service request/response
primitives - User Datagram Protocol (UDP)
- Connectionless transport service
- Specified in RFC-768
- Both transfer protocol service primitives
9TCP Header
10TCP Header Fields
- Source Destination Ports (transport-layer
addresses) - Flow Error Control Fields
- Sequence Number
- Acknowledgement Number
- Window Size
- Prioritization Fields
- Urgent Pointer
- Offset
- URG PSH bits
- Control Bits SYN, FIN, ACK, RST
- Checksum checks header data
- Options (e.g. Window Scale, Selective Reject,
MSS)
11TCP Mechanisms (1)
- Connection establishment
- Usually a three way handshake
- Between pairs of ports (must be a one-to-one
relationship!) - One port can connect to multiple destinations
- Allows the synchronization (hence the SYN bit) of
sequence numbers
12TCP Mechanisms (2)
- Data transfer
- Logical stream of octets
- Bytes numbered modulo 223
- Flow control by credit allocation of number of
octets - Data buffered at transmitter and receiver
13TCP Mechanisms (3)
- Connection termination
- Graceful close
- TCP users issues CLOSE primitive
- Transport entity sets FIN flag on last segment
sent - Abrupt termination by ABORT primitive
- Entity abandons all attempts to send or receive
data - RST segment transmitted
14TCP Unreliable Network Service
- The challenge in internetworking as currently
implemented is providing reliable transport
service over an unreliable network service - Seven issues to deal with
- Ordered Delivery
- Retransmission Strategy
- Duplicate data detection
- Flow control
- Connection Establishment
- Connection Termination
- Crash Recovery
15TCP Ordered Delivery
- Segments can arrive out of order -- how to deal
with this? - Number segments sequentially
- TCP numbers each octet sequentially
- Segments are numbered by the first octet number
in the segment
16TCP Retransmission Strategy
- Two events dictate the retransmission of a
segment - Segment damaged in transit
- Segment fails to arrive
- Transmitter does not know of failed delivery
- Receiver must acknowledge successful receipt
- Use cumulative acknowledgement
- Time out waiting for ACK triggers
re-transmission - Can use either a fixed timer or an adaptive
timing mechanism
17TCP Duplication Detection
- If ACK lost, segment is re-transmitted
- Receiver must recognize duplicates if the lost
segment was actually delayed - Duplicate received prior to closing connection
- Receiver assumes ACK lost and ACKs duplicate
- Sender must not get confused with multiple ACKs
- Sequence number space large enough to not cycle
within maximum life of segment - Duplicate received after closing connection
18TCP Flow Control
- A credit allocation scheme is used in TCP
- If ACK/credit segment lost the protocol usually
resynchronizes, but there can be deadlock
conditions - Problem if ANi, W0 closing window
- Send ANi, Wj to reopen, but this is lost
- Receiver think windows open, but sender does not
- Solution use window timer
- If timer expires, send something (window probe)
- Could be re-transmission of previous segment
19TCP Connection Establishment
- Two way handshake
- A send SYN, B replies with SYN
- Lost SYN handled by re-transmission
- Can lead to duplicate SYNs
- Ignore duplicate SYNs once connected
- Delayed data segments can cause connection
problems - Segment from old connections
- Start segment numbers far removed from previous
connection
20TCP Connection Establishment
21TCP Connection Termination
- Entity in CLOSE WAIT state sends last data
segment, followed by FIN - Problem FIN arrives before last data segment
- Receiver accepts FIN
- Closes connection
- Loses last data segment
- Solution associate sequence number with FIN
- Receiver waits for all segments before FIN
sequence number - Loss of segments and obsolete segments
- Must explicitly ACK FIN
22TCP Connection State Diagram
23TCP Crash Recovery
- After restart all state info is lost
- Connection is half open
- Side that did not crash still thinks it is
connected - Close connection using persistence timer
- Wait for ACK for (time out) (number of retries)
- When expired, close connection and inform user
- Send RST i in response to any i segment arriving
- User must decide whether to reconnect
- Problems with lost or duplicate data
24TCP Implementation Notes
- While TCP is a standard there are a number of
important implementation issues that arent
specifically mandated - Sending
- When to send buffered data
- Delivery
- When to deliver buffered data to destination
process - Accept
- In order or in windows?
- Retransmission
- First-only, batch, or individual?
- Acknowledgements
- Immediate or cumulative?
25The User Datagram Protcol
- Commonly known as UDP
- Specified in RFC-768
- Connectionless service for use by application
level procedures - Provides unreliable delivery service
- Delivery and duplication control not guaranteed
- Reduced overhead
- Used for many important applications including
network management (SNMP) and streaming
applications (RTP)
26Uses for UDP
- Inward data collection
- Outward data dissemination (particularly
multi-point) - Request-Response
- Real time applications (very important)
- For applications that are designed with
reliability mechanisms built-in
27UDP Services
- Addressing
- Uses ports similar to TCP
- Multiplexing
- Error checking
- Uses simple checksum scheme like TCP
- Error checking by UDP is optional in practice it
is rarely used
28UDP Header
29TCP/IP Application Layer
- The Hypertext Transfer Protocol (HTTP)
30TCP/IP Application Layer
- HTTP and the World Wide Web
- One of the fundamental protocols for the Web
- Provides application-layer transport of WWW
sessions presentation/markup provided by
HTML/XML - Why called Hypertext?
- Thats the terminology for linked text on the
Internet - HTTP can transport anything not just hypertext!
- Current standard is HTTP Version 1.1 (RFC 2616)
- The World Wide Web consortium (W3C) takes the
lead on WWW-related standards
31TCP/IP Application Layer HTTP
- HTTP Operation
- A client/server transaction-oriented protocol
- Is stateless each transaction is treated
independently - Uses TCP for reliable transport
- Very flexible transports audio, video, text,
applications, etc. - Operational Modes
- Direct Client/Server
- Proxy
- Gateway
- Tunnel
- Caching
32HTTP Operational Modes
33TCP/IP Application Layer HTTP
- Caching
- Very important to efficient operation of the WWW
- Stores past response information can serve new
requests that match without transferring
information from the original source - Found in clients too not just in servers and
dedicated network appliances - Directives in content can be used to prohibit
caching as well as limit the time a cached copy
is valid
34TCP/IP Application Layer HTTP
- HTTP Messages
- Structure of requests responses exchanged
- Earlier HTTP versions used simple
request/response types - Full versions provide a complete set of headers
for content negotiation media identification - Headers follow this format ltNamegtltValuegt
- Basic Message Structure
35TCP/IP Application Layer HTTP
- A Typical HTTP Transaction Request
- Must have Request-Line but can also include
general, response, entity headers as well as an
entity body - Request-Line follows the following structure
- ltMethodgtltspgtltURLgtltspgtltHTTP-versiongtltCRLFgt
- Example GET http//www.jhu.edu HTTP-1.1
- Other Common Request Methods
- OPTIONS
- HEAD
- POST
- Request Header Fields
- Accept-Charset/Accept-Encoding
- From
36TCP/IP Application Layer HTTP
- A Typical HTTP Transaction Response (1)
- Must have Status Line but can also include
general, response, entity headers as well as an
entity body - Response Status Line Structure
- ltHTTP-VergtltspgtltStatus CodegtltspgtltReasongtltCRLFgt
- Status Codes
- Three-digit numeric code specifying command
response - Comes in five general categories
- Informational (1xx Example is Continue)
- Successful (2xx Example is 200 OK)
- Redirection (3xx Example is 305 Use Proxy)
- Client Error (4xx Example is 404 Not Found)
- Server Error (5xx Example is 500 Internal
Server Error)
37TCP/IP Application Layer HTTP
- A Typical HTTP Transaction Response (2)
- Response Header Fields
- Additional information beyond the Status Line (if
needed) - Examples Location and Retry-After
- Entity Header Fields
- Provides info about the Body or if no Body
present, about the request (fields and format
based on MIME) - Examples
- Content-Type
- Content-Encoding
- Expired
- Entity Body
- An arbitrary string of bytes- can be audio, text,
binary data, etc.
38TCP/IP Application Layer HTTP
- Example
- Telnet to www.casl.umd.edu at Port 80
- Issue the following command method
- HEAD http//www.casl.umd.edu HTTP-1.1
- The server returns the following response
- HTTP/1.1 200 OK
- Date Sun, 26 Nov 2006 180550 GMT
- Server Apache
- X-Powered-By PHP/4.3.10
- Connection close
- Content-Type text/html charsetISO-8859-1
- Connection to host lost.
39TCP/IP Application LayerVoice Over IP (VoIP)
40What does VoIP mean Really?
Dedicated Transport Network. Very few decisions
made during transit. Strict schedule with
Guaranteed arrival times. DESIGNED
SPECIFICALLY FOR VOICE
Mixed Use Network. Many decisions along the way.
Best effort. Good Luck! DESIGNED SPECIFICALLY
FOR DATA
41Over the Internet / WAN
42Over the LAN
43Over Wireless
- Lately referred to as VoWiFi (Voice over WiFi)
- Also known as -- VoWIP or VoWLAN
- VoIP on an 802.11 wireless network.
44 45The signal is first encoded
- Standard Digital Voice Encoding Methods
- G.711 - Pulse code modulation (PCM) of voice
frequencies on an 64-kbps channel - G.721 32-kbit/s adaptive differential pulse
code modulation (ADPCM) - G.722 - 7 kHz audio-coding within 64-kbit/s
- G.722.1 - Coding at 24 and 32-kbit/s for
hands-free operation in systems with low frame
loss - G.722.2 - Wideband coding of speech at around
16-kbit/s using adaptive multi-rate wideband
(AMR-WB) - G.726 - 40, 32, 24, 16-kbit/s -- ADPCM
- G.727 - 5-, 4-, 3- and 2-bit/sample embedded
ADPCM - G.728 - Coding of speech at 16-kbit/s using
low-delay code excited linear prediction - G.729 - Coding of speech at 8-kbit/s using
conjugate-structure algebraic-code-excited
linear-prediction (CS-ACELP) - Compare to CD is sampled 44,100/sec at 16 bits
per sample in Stereo (176.4 Kbytes/sec data
stream)
46Packetize and Send Across the Network!
47VoIP Protocols H.323
- An umbrella suite of protocols defined by ITU for
real-time audio, video, and data communications
over packet networks. - Cumbersome but the first widely used standard for
VoIP. - Components Terminals, Gateways, Gatekeepers,
Multipoint Control Units. - H.245 exchanging terminal capabilities. H.225
call control. RTP sending payload. G.711 audio
encoding, T.120 data sharing, etc.
48VoIP Protocols SKINNY
- SKINNY Ciscos version of H.323
- SCCP Skinny Client Control Protocol. For
control between endpoints and the Cisco Call
Manager - Proprietary, though Asterisk open source VoIP
call management software supports the protocol - Cisco Phones use CDP (Cisco Discovery Protocol)
to establish VLAN connections - Uses RTP (Real-time Transport Protocol) for
transport of voice payload
49VoIP Protocols SIP
Session Initiation Protocol (RFC-3261)
- Used to create, modify, and terminate real-time
media sessions supports a number of different
session types - Telephone, Video, IM capable
- Main protocol includes call routing, setup,
teardown, and redirection - Textual encoding, E-mail style headers, HTTP
style error codes. URL addressing (sipuser_at_host) - Widely adopted open standard
50VoIP Protocols - Summary
- H.323 A suite of ITU standard protocols
- First used for Videoconferencing but adapted for
VoIP - Way too complicated
- SKINNY and SCCP (Skinny Cisco Control Protocol)
- Mostly proprietary extending functionality is
difficult - SIP Session Initiation Protocol
- The clear winner -- Simple, Open, Flexible
- sipuser_at_host addressing
- Starting to really proliferate (especially with
the development of an open source SIP-based VoIP
system)
51VoIP in a Mixed Environment
- Remember this diagram?
- An IP enabled PBX allows VoIP endpoints to
connect to it. It also adds a new function - Gateway Connects an IP endpoint to a PSTN
endpoint if needed. - IP to IP bearer traffic doesnt go through the
switch.
IP Network
Gateway
Controller
52IP Enabled PBX with VoIP Stations
53With Remote Modules
54VoIP Challenges
- QOS Quality of service is suddenly important
- Power Local Utility vs. Centralized Carrier
- Security Just another app on the network ready
to be attacked. - Reliability Five 9s reliability 5.2 minutes
per year. - Location Tracking E911
- Overall Complexity.
55Quality of Service (QoS)
- Packet switched world has dangers for voice!
- Voice traffic doesnt require much bandwidth, but
can be easily overrun by other data traffic
email, web, other. - Paradox We want to put voice and data together,
yet separate them as much as possible!
56QoS (Contd)
- How Much Bandwidth?
- G.711 Uncompressed (excellent / toll quality)
64K overhead about 80K - G.729 Compressed (wireless quality) 8K
overhead about 30K - G.723 Compressed more (cell phone quality) 6K
overhead 20K - How to Prioritize Voice Packets?
- 802.1p/Q
- DSCP / DiffServ
- RSVP
- MPLS
57Power
- Traditional phones are powered from the phone
company or corporate PBX usually immune from AC
power outages. - IP phones power options
- Old Days Local power supply
- Current Power over Ethernet (PoE) IEEE
standard 802.3-af - IEEE 802.3-af allows for mid-span implementation
(spare wires 4,5,7 8) or end-span (in-band
power over signal wires 1,2,5 6). - PoE means data switches need more power!
- UPSs may need to be upgraded to provide more
hold-over time. - PoE now allows for all type of network devices
- Clocks, Cameras, Security access
- Even some thin clients! Maybe PCs in the near
future
58Security
- Voice is now just another app on the network /
WLAN that can be sniffed! - susceptible to attacks just like the rest of
the data network (DOS, Man in the middle, etc.)
59Emergencies, Reliability Complexity
- When someone dials 911, how do you know where
they are? - Reliability of servers, phones, and network
components - Complexity
60Summary of Internetworking Protocols
61Covered Material References
- Sections covered
- Chapter 20 except Section 20.3 details (TCP
Congestion Control) - Chapter 23 Section 23.2 (HTTP) only
- Assignment 6 due by Noon Saturday 12/6
- Chapters 13 and 14 13.1, 14.2, and 14.4
- Short answer problem networking protocols
evolve even as we study them. From the list
below, choose one write a brief one page
synopsis of the standard covering why its
important, what it does, what the obstacles are
(if any) to its implementation - MPLS (multi-protocol label switching)
- IEEE 802.1p/q
- RPR (resilient packet ring)
- IEEE 802.11e
- IEEE 802.1X