1
|
- Vincenzo Liberatore
- Case Western Reserve University
|
2
|
|
3
|
- Quality-of-Service (QoS)
- Ensure low delay, jitter, loss rates, and high bandwidth
- Implement below, at, or above IP
- Real-Time Protocol (RTP)
- Transport protocol
- Support real-time communication
|
4
|
- Problem
- Best-effort networks
- Congestion
- Metrics
- Implementation
- Application-middleware
- IP
- Data link
|
5
|
- Best-effort model
- Prevalent in the Internet
- No end-to-end circuit
- Packets can be delayed
- Delay is often unpredictable
- No bandwidth reservation
- QoS
- Ameliorate best-effort model
- E.g., packet priorities
- Impact on control
- Delays
- E.g., forces small feedback gains
- Packet drop-outs
- Jitter
- Delay variability
- Often more troublesome than average delays
- Bandwidth
|
6
|
- Objectives
- QoS protects from cross-traffic
- QoS does not protect from failures, interferences
- But in some cases, it does
- Possible strategies
- Priorities
- Reservation
- Weighted Fair Queuing
|
7
|
- Scenario
- One controller
- Discrete LQR
- Assumes 50ms sampling rate
- Assumes no delays
- n inverted pendulum
- Bottleneck: T1 line
- RTT: 3ms
- Plot response over time
- Congestion
- When more plants are added
- Scalability
|
8
|
|
9
|
- Over-provisioning
- Large bandwidth implies short queues
- 1Gbps Ethernet vs. 1Mbps CAN
- Useful for probabilistic QoS
- Risk
- Congestion caused by even one cross-traffic flow
- TCP tends to take over
- Example: ping a machine in same building with and without one FTP flow
as cross-traffic
- Explains poor plant performance with one flow
|
10
|
- One TCP flow can congest a link
- 1 plant, 1 TCP flow
- Scalar linear plant
- Sporadic TCP [R03]
- Congest link sporadically
- Average utilization rate low
- Difficult convergence
|
11
|
- Access networks
- Any flow can saturate the network
- Exacerbated by TCP
- Attempt to use all the bandwidth
- Core network
- Good news
- Statistical multiplexing
- Relatively low rate flows
- Bad news
- Not ready yet for VoIP [MTK02]
- Only 50Mbps over-provisioning on half of the paths [ASS03]
|
12
|
- Scalability
- Multiple plants eventually congest bandwidth
- Aggressive behaviors
- TCP expands to fill available bandwidth
- Aggressive flows
- Over-provisioning
|
13
|
- Problem
- Best-effort networks
- Congestion
- Metrics
- Implementation
- Application-middleware
- IP
- Data link
|
14
|
- So, what do we want from QoS?
- Worst-case
- Reasoning
- Reason about system timing
- Priorities make it easy
- Is it cross-traffic?
- Is it failures (e.g., network partition)?
- Failures as first class citizens
- Average-case
- Non-sense
- Exacerbated by TCP
- Tail
- E.g., 99-percentile
- Must be paired with middleware, fault-tolerance
|
15
|
- Problem
- Best-effort networks
- Congestion
- Metrics
- Implementation
- Application-middleware
- IP
- Data link
|
16
|
- Dealing with complex systems
- Explicit structure allows identification, relationship of complex
system’s pieces
- Layered reference model for discussion
- Modularization eases maintenance, updating of system
- Change of implementation of layer’s service transparent to rest of
system
- E.g., change in gate procedure doesn’t affect rest of system
|
17
|
|
18
|
- Between application and transport
- Libraries to provide advanced functionality
- Hide communication
- Applications
- Resource Discovery
- Remote Procedure Calls
- Security
- Interoperability (e.g., since Real-Time Corba)
- Scheduling, resource management, performance analysis
- Multicast
- Software development
- Simpler, faster
- State-of-the-art functionality
- Middleware over IP
- Wealth of libraries for IP
- Critical advantage of the Internet Protocol
|
19
|
- End-point middleware
- Assume best-effort, unreliable network with no explicit QoS provision
- End-points compensate for vagaries
- Previous work (example)
- Voice-over-IP
- Replay buffer
- Address both congestion and transient failures
|
20
|
- Metrics
- Delay characterization
- Heavy tail: Pr[delay>x]~x-a
- View delay spikes as transient failures
- Contingency control
- Used if no regular control received
- Recover from delay spikes
|
21
|
- Methodology
- Collect Round-Trip Times Case ↔ NASA (and other locations)
- Note: NASA is far from Case (in Internet distance)
- Simulate scalar plant with fast dynamics
- Use deadbeat control but
compensate for nominal RTT
- Observations
- Base case diverges
- Contingency converges
|
22
|
|
23
|
- QoS at data link
- E.g., priorities, token passing, VPN
- E.g., Ethernet
- QoS at IP
- Protocol
- IPv4: 4 basic Types-of-Service (ToS)
- IPv6: many flow ids, Classes-of-Service (CoS)
- QoS: from data link to IP
- Code-point mapping
- IP addresses
|
24
|
- Queuing
- Packets are forwarded from one network to another
- Packets are queued at routers (store-and-forward)
- Protect from cross-traffic cause congestion
- Per-Hop Behaviors (PHB)
- Behavior of individual router
- E.g., Forward before all other queued packets
- Maps into data link QoS
- Depends on Class-of-Service
- Class of service
- Assigned by source or shapers
- Imply PHB
|
25
|
- Best effort IP
- IP is de facto a convergence layer
- Must deal with heterogeneous networks
- Architectural principle
- Difficult to deploy QoS at IP
- Hard to provide end-to-end QoS
|
26
|
|
27
|
- Data link
- Network layers
- Data link QoS independent of IP, transport, middleware
- Middleware and transport motivate IP
- Multiple possible solutions
- E.g., Ethernet switches with 802.1p, 802.1q
- Administrative
- Can do anything (e.g., RVSP) within any single administrative domain
- Need much cooperation with multiple administrative domains
|
28
|
- IEEE 802.1p
- Priority
- Three bits, recommended values
- Multicast control
- Multicast packets forwarded after unicast packets with same priority
- IEEE 802.1q
- Objective: create Virtual LANs (VLAN)
- Cross-traffic, multicast control
- Locally administered
|
29
|
- Traffic isolation
- Cross-traffic can degrade performance
- Worst-case and probabilistic assurance
- Application and Middleware
- Network
- Queueing, scheduling, forwarding
- Data link
|
30
|
|
31
|
- Convergence layer (IP)
- IP (Internet Protocol)
- IP supports multiple data links
- Multiple transports support IP
- Transport independent of data link
- Mix and match
- E.g., RTP/UDP over 802.11, Ethernet
- E.g., TCP over Infinet
|
32
|
- Design choice
- Three rules:
- Real-time data: RTP/UDP
- Sensor data
- Video, sound, I/O
- Control
- Bulk data: TCP
- Log download
- Software upgrades
- Coarse supervision
- Middleware rules
- E.g., RealAudio over UDP
- E.g., HTTP over TCP
- Usually, right choice made by middleware designer
- However, bad choices can propagate
|
33
|
- RTP-RTCP
- RTP is a data transfer protocol
- RTCP is a companion control protocol
- Problems above solved
- Support for
- Feedback on connection quality
- Timing, synchronization
- End-point description, aggregation
- Frame boundaries
- Flexibility
- Application-level framing
- Custom-tailored reaction to congestion, packet losses, but
- No error detection, recovery
- Independent of underlying transport
- Small header
- Multicast support
|
34
|
- Session identified by
- IP addresses
- Port numbers
- IP addresses
- RTP port number
- RTCP port number
|
35
|
- Header
- Version (2 bits)
- Padding (1 bit)
- Extension (1 bit)
- CSRC count (4 bits)
- Marker (1 bit)
- Payload type (7 bits)
- Seqno (16 bits)
- Timestamp (32 bits)
- SSRC id (32 bits)
- CSRC ids (32 bits each)
- Payload
- Padding
- Padding
- Pad count (8 bits)
|
36
|
- Control protocol
- Works in conjunction with RTP
- Functions
- QoS monitoring and congestion control
- Convey feedback on quality of data delivery and information of
membership
- Modify transmission rates
- Diagnostic
- Source identification
- Session size estimation and scaling
- Session control
- E.g., user names to be
displayed
- Reports
- Participants periodically send RTCP report packets
- Statistics, e.g.,
- Number of packets sent
- Number of packets lost
- Inter-arrival jitter
|
37
|
- Merge several media streams of the same types into one new stream
- Can reduce bandwidth consumption
- Mixer appears as new source
- Use new SSRC
- Put original SSRCs in CSRC list.
|
38
|
- Single media stream
- May convert encoding
- Protocol translation
- E.g., ATM↔IP
- Keep original SSRCs
|
39
|
|
40
|
- RTP Libraries
- Bell Laboratories (in C)
- http://www.bell-labs.com/topic/swdist/
- JRTPLIB (in C++)
- http://lumumba.luc.ac.be/jori/jrtplib/jrtplib.html
- liveCaster and other tools
- http://live.sourceforge.net/
- RTP Tools (rtpdump, rtpmon, rtpsend,…)
- http://www.cs.columbia.edu/IRT/software/rtptools/
|
41
|
|
42
|
- Get session information
- RTPMemberInfoGetStatus();
- RTPMemberInfoGetRTPAddr();
- RTPMemeberInfoGetPktCnt();
- RTPMemberInfoGetUserInfo();
- RTPSessionGetBandwidth();
- RTPFindMember();
- Advanced functions
|
43
|
- Quality-of-Service
- Real-Time Protocols
- Web resources (next)
|
44
|
- Network Control Systems
- At Case
- http://vincenzo.liberatore.org/NetBots/
- Community-wide repository
- Network Research Lab
- http://vincenzo.liberatore.org/netlab/
|
45
|
|