# TACK: Improving Wireless Transport Performance by Taming Acknowledgements

* Wireless local area network (WLAN) demands high throughput&#x20;
  * Far from satisfactory&#x20;
* TCP ACKs cause internal interference&#x20;
  * External interference: between wireless devices on the same channel
  * **Internal interference**: between data packets and ACKs in the same connection&#x20;
  * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FgZLWqFHPKSkH5HxOh45x%2Fimage.png?alt=media\&token=9e07cd7c-3f1a-482c-b3b7-3d09ee098c06)
* ACKs cause similar medium access overhead&#x20;
  * Extra overhead for sending each packet independent with packet size&#x20;
* Reducing ACK frequency improves throughput&#x20;
  * Emulations over wireless links
* &#x20;But, simply reducing ACK frequency hurts TCP performance&#x20;
  * Negative impact: TCP's transport control depends on frequency ACKs&#x20;
* Goal: seek the optimal ACK frequency with corresponding improvements in transport mechanism to avoid the "negative effect" &#x20;
* Takeaways
  * **TCP's delayed ACK is far from optimal**&#x20;
    * Because: TCP adopts a max function other than a min function&#x20;
      * "MIN" is also able to achieve good transport performance
      * Key: avoid TACK's negative effect&#x20;
      * TACK adopts a "min" instead of a "mx" to assure the minimized ACK frequency in the context of network dynamics&#x20;
    * data throughput high / low&#x20;
    * The frequency of TCP's delayed ACK is not bounded&#x20;
    * Tame ACK (TACK)
      * A new ack whose frequency is decided by the bandwidth and the delayed product (bdp)&#x20;
      * TACK applies periodic ACK when bdp is large, and falls back to byte-counting ACK is small&#x20;
        * Throughput is high --> ACK frequency is bounded
        * Low --> ACK frequency reduced proportionally&#x20;
  * **Our way of avoiding "negative effective" is a TACK-based acknowledgement mechanism**
    * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2F5zMLWN2yBvw5fvNQEPDy%2Fimage.png?alt=media\&token=05d121e4-8c84-4c6e-bf17-0e3afbc25c46)
    * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FquGfJzdWqzxtDuXAW3mK%2Fimage.png?alt=media\&token=07bebf58-8e23-4351-aef6-170a4e88193c)
    * ![](https://2097630930-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MVORxAomcgtzVVUqmws%2Fuploads%2FyN6dxN004MVpMDgEAWGZ%2Fimage.png?alt=media\&token=8c628f7d-d63c-4806-92fa-a760538416c4)
      * Advancements in loss recovery&#x20;
      * Advancements in round-trip timing&#x20;
      * Advancements in send rate control&#x20;
    * With more types of ACKs and more necessary information carried in ACKs, less number of ACKs are required&#x20;
  * **An approximately minimized ACK frequency works better than expected** &#x20;
    * Wired / wireless links&#x20;
    * TACK-based protocol provides a good replacement of legacy TCP in WLAN, and also works well in WAN scenarios&#x20;
    * TACK and its corresponding improvements in transport mechanism can also be adopted into other stacks (e.g., QUIC) to compensate for scenarios where the ack overhead is non-negligible&#x20;
* Evaluation
  * TCP-TACK implementation&#x20;
  * Experimental setup&#x20;
* Questions&#x20;
  * WiFi (cellular) networks: scheduling to enter WiFi, more stable, TACK is needed?&#x20;
    * Contention is less than WLAN&#x20;
    * Cellular: uplinks (bandwidth) is usually limited, asymmetric bandwidth, maybe reducing the ACK frequency when the ACK path is congestion&#x20;
    * WiFi 6: contention is less, but always exist
  * Multi-hop wireless network&#x20;
    * Contention bigger&#x20;
    * TACK works?&#x20;
      * In theory, the benefits may increase&#x20;
  * Harder to figure out performance issue?&#x20;
    * Reduce 90% of the number of ACKs&#x20;
    * According to the connection states, more difficult&#x20;
    * TACK carries more necessary information, the size of the ACK is larger than the traditional one. The end-point can also get most of the information needed for the connections&#x20;
  * Protocol based on the rate?&#x20;
    * Rate-based CC&#x20;
      * TACK: less number of acks, the sender will have less information to do CC, also will result in burst in window-based CC&#x20;
    * TACK is more suitable for rate-based CC
      * BBR: pacing as the basic mechanism for the sender, can avoid the large burst for sending less number of ACKs &#x20;
