## 3 System Design
### Transmission Mechanism
#### 3.2.2 Adaptive Data Transmission at the Protocol Layer  
The protocol benefits from an enhanced ARQ retransmission strategy that combines selective retransmission with Forward Error Correction (FEC). For critical video frames, such as I-frames and important P-frames, the system automatically adds redundant encoding. For regular data packets, a rapid retransmission mechanism is employed. The retransmission decision is intelligently made based on network conditions and content importance:  
\[RetransDecision= \begin{cases}FEC+ARQ&\text{if $FrameType=I$ and $LossRate>\theta_{high}$}\\ ARQ&\text{if $LossRate\leq\theta_{low}$}\\ Drop&\text{if $Age>LatencyThreshold$}\end{cases}  \tag{4}\]  
This strategy ensures the reliable transmission of critical video data while preventing excessive retransmissions from impacting real-time performance. SRT's adaptive retransmission mechanism specifically utilizes the Selective Repeat ARQ algorithm, which retransmits only lost packets, effectively bypassing the head-of-line blocking problem inherent in traditional TCP [37; 55]. The size of the retransmission window dynamically adjusts according to the network RTT and the packet loss rate, following the formula [56; 57]:  
\[W_{retrans}=\min(W_{max},\alpha\cdot RTT\cdot BDP+\beta\cdot Loss_{rate}) \tag{5}\]  
where \(W_{max}\) denotes the maximum window size, \(BDP\) is the bandwidth-delay product, and \(RTT\) is the round-trip time, multiplied by \(BDP\) to quantify the amount of data that can be in transit in the network. \(\alpha\) and \(\beta\) are tuning parameters that scale the contribution of bandwidth-delay product and loss, respectively. These are usually determined based on network conditions or system design goals. This mechanism ensures efficient retransmission under complex network conditions, making it particularly suitable for multiple transmission scenarios. Within the system's chain architecture, each node independently and dynamically maintains its retransmission window, preventing upstream packet loss from causing cascading impacts on downstream nodes. The values of tuning parameters \(\alpha\) and \(\beta\) directly influence the responsiveness of the retransmission mechanism. A higher \(\alpha\) emphasizes round-trip time (RTT), favoring stable networks where delay reflects congestion more reliably, while \(\beta\) governs sensitivity to packet loss to ensure smooth transmission under poor connectivity. In noisy or high-jitter environments, increasing \(\alpha\) relative to \(\beta\) effectively extends the temporal smoothing of retransmission decisions--analogous to lengthening the signal period and reducing information density--to suppress transient noise and prevent overreaction. In practice, when using ffmpeg, the parameters are controlled indirectly via setting parameters, including maximum acceptable latency, overhead bandwidth, and input bandwidth. These parameters trigger the built-in fine-tuning of the SRT protocol's congestion control and retransmission mechanisms, allowing the system to automatically adaptively optimize performance based on real-time network conditions. Dynamic congestion control is another key feature of SRT, implementing a hybrid algorithm based on latency and packet loss to maximize throughput while maintaining low latency. The sending window adjustment policy is as follows:  
\[W_{new}= \begin{cases}W_{current}+1&\text{if $RTT<RTT_{target}$ and $Loss<Loss_{threshold}$}\\ W_{current}\times 0.875&\text{if $RTT\geq RTT_{target}$ or $Loss\geq Loss_{threshold}$}\end{cases}  \tag{6}\]This algorithm dynamically adjusts the sending rate by monitoring in real-time the conditions of the network. Compared with traditional TCP's Additive Increase Multiplicative Decrease (AIMD) algorithm, SRT's congestion control is more aggressive, allowing it to adapt quickly to network changes. In practical deployment, our system sets different values for \(RTT_{target}\) based on the link hierarchy and geographical distance, ensuring optimal transmission performance for each hop.