---
# System prepended metadata

title: <center><i class="fa fa-edit"></i> QoS Fundamentals Cont.</center>
tags: [Internship]

---

# <center><i class="fa fa-edit"></i> QoS Fundamentals Cont.</center>
###### tags: `Internship`
:::info
**Goal:**
- [x] Understand fundamentals of QoS applications

**Resources:**
[Notes Page](https://hackmd.io/@j-chen/rkUz8DeUw)
:::


## QoS Fundamentals

- 2 QoS perspectives: from the network or the user
- Elements of QoS:
    - Throughput/bandwidth
    - Fairness
    - Latency
    - Delay variation
    - Loss/error rate
- Throughput: bit/second
    - USER: adjust video quality (via frame size, rate, etc.)
    - NETWORK: constant bit rate (CBR) or variable bit rate (VBR)

![](https://i.imgur.com/ctLRWkg.png)

- Burstiness: measures bit rate variability of BR
    - Burstiness = Mean Bit Rate (MBR) / Peak Bit Rate (PBR)
- Delay from
    - Transmission
    - Processing
    - Transit
        - Greatest source of delay variation
        - Propagation: depends on distance, as packets may go on different paths every time
        - Protocol processing: depends on hardware, protocols, network load
            - Different paths = different intermediate nodes
            - Even if the same nodes, they may have different traffic loads at different times
        - Output queueing: depends on network congestion
- Delay variation
    - Delay-jittered traffic: packets arrive early/late relative to time reference
    - Receiver solutions:
        - Adjust playback point
            - Price: video may lag --> distortion
        - Missing packet
            - Price: fuzzy video --> distortion
        - De-jitter buffer
            - Most common method (largely no distortion)
            - The reason why YouTube videos must first load
            - Price: may take up a lot of memory
- Loss/error rate: 
    - Packet loss
    - Network level loss caused by congestion, noisy channel
    - Recovery methods:
        - Error correction at physical layer
            - Add extra protection bits
            - Price: overhead
        - Packet retransmission
            - If error, request for retransmisison
            - Price: delay
        - Codec at app. layer
            - Patch using surrounding bits
- Factors of application requirement
    - Interactivity level: interactive or non-interactive
    - User/App. characteristics (delay tolerance/intolerance, adaptive/nonadaptive)
    - Application criticality (mission critical or not)
- Main QoS factors:
    - Delay 
    - Delay jitter
- Degree of interactivity determines stringency of delay requirement
- Tolerance: 
    - Latency (delay)
    - Distortion (error)
- Adaptive: adapt to QoS degradation
    - Triggered by implicit/explicit feedback from network/end user
    - Techniques:
        - Rate adaptation
            - Drop packets
            - increase codec compression
            - change media quality
        - Delay adaptation
            - De-jitter buffer
            - Adaptive playback
- Criticality: 
    - Examples: remote surgery, telemedicine are very critical
- Representation of application requirement
    - Quantitative: specific values, so harder to achieve
        - Application technical spec (video codec)
    - Qualitative: easier to meet
        - "As much as possible" "lower in a certain application"
- QoS service categories
    - Type of service:
        - Quantitative
        - Qualitative
        - Best effort
    - To which entity:
        - Per-flow
        - Per-class
    - May use in different combinations (per-flow and quant., per-class and quant)
    - 5 possible combinations
        - Best effort does not care per-flow or per-class
    - Examples:
        - IntServ: per-flow and quant.
        - Controlled Load IntServL per-flow and qual.
        - DiffServ: per-class and qual.
            - Most common
            - Per-flow and qualitative are both easier to achieve
