# Performance Analysis of the IEEE 802.11 Distributed Coordination Function ![image](https://hackmd.io/_uploads/HySHAVUXA.png) 1. $b_{i-1,0} \cdot p = b_{i,0} \rightarrow b_{i,0} = p^ib_{0,0}$ $\space \space \space \space 0<i<m$ $b_{m-1,0} \cdot p = (1-p)b_{m,0} \rightarrow b_{m,0} = \frac {p^m}{1-p}b_{0,0}$ 前面第一項透過論文圖 4 可知道 $b_{i-1,0} \cdot p = b_{i,0}$ ,而第二項透過圖可以知道 $b_{m,0}$ 可由 $p\cdot (b_{m,0} + b_{m-1,0})$ 得到,因此寫成 $b_{m,0} = p\cdot (b_{m,0} + b_{m-1,0})$ ,移項過後 $(1-p) \cdot b_{m,0} = p\cdot b_{m-1,0}$ 2. $p = 1 - (1-\tau)^{n-1}$ p 為碰撞機率,而碰撞是因為多個 statation 同一時間要送,因此 p 可設為 1 減去其他 n-1 個 station 皆沒要送: $(1-\tau)^{n-1}$,而 $\tau$ 就代表 station 要送,而送的時機是 backoff time counter 為 0 ,寫成如下: \begin{equation} p = 1 - (1-\tau)^{n-1} \end{equation} 3. $\tau = \displaystyle\sum_{i=0}^{m}b_{i,0} = \frac {b_{0,0}}{1-p} = \frac {2(1-2p)}{(1-2p)(W+1)+pW(1-(2p)^m)}$ 現在我們想要的是 $\tau$ ,代表 station 要送的時機,而送的時機是 backoff time counter 為 0,總和 $i = 0$ ~ $m$ 個也就是 $\displaystyle\sum_{i=0}^{m}b_{i,0}$ 1. 透過第一題得出的 close from 的去使用等比級數和公式 \begin{equation} S_n = \frac {a_n(1-p^n)}{1-p} \end{equation} 先將 $b_{0,0}$ 提出後,前 $n = 0$ ~ $m - 1$ 項總和後會是 $\frac {1(1-p^m)}{1-p}$ ,再加上 $n = m$ 這項 $\frac {p^m}{1-p}$ ,可以得到以下: \begin{equation} \displaystyle\sum_{i=0}^{m}b_{i,0} = \frac {b_{0,0}}{1-p} \end{equation} 2. 現在將 $b_{0,0}$ 透過已知所有 Markov chain 的路徑總和應為 1 的資訊替換為以下得到的 $b_{0,0}$ : \begin{equation} 1 = \sum_{i=0}^{m} \sum_{k=0}^{W_i-1} b_{i,k} = \sum_{i=0}^{m} b_{i,0} \sum_{k=0}^{W_i-1} \frac{W_i - k}{W_i} = \sum_{i=0}^{m} b_{i,0} \frac{W_i + 1}{2} \end{equation} \begin{equation} = \frac{b_{0,0}}{2} \left[ W \left( \sum_{i=0}^{m-1} (2p)^i + \frac{(2p)^m}{1-p} \right) + \frac{1}{1-p} \right] \end{equation} 其中 \begin{equation} b_{i,k} = \frac{W_i - k}{W_i} \cdot \begin{cases} (1 - p) \sum_{j=0}^{m} b_{j,0} & \text{if } i = 0 \\ p \cdot b_{i-1,0} & \text{if } 0 < i < m \\ p \cdot (b_{m-1,0} + b_{m,0}) & \text{if } i = m \end{cases} \end{equation} 而透過 $\displaystyle\sum_{i=0}^{m}b_{i,0} = \frac {b_{0,0}}{1-p}$ 及第一題的資訊可以將此項改寫為 \begin{equation} b_{i,k} = \frac{W_i - k}{W_i} b_{i,0} \quad i \in (0, m), \quad k \in (0, W_i - 1). \end{equation} 將 $b_{0,0}$ 移至左,得到: \begin{equation} b_{0,0} = \frac {2(1-2p)(1-p)}{(1-2p)(W+1)+pW(1-(2p)^m)} \end{equation} 3. 最後替換 $b_{0,0}$ 得到: \begin{equation} \tau = \displaystyle\sum_{i=0}^{m}b_{i,0} = \frac {b_{0,0}}{1-p} = \frac {2(1-2p)}{(1-2p)(W+1)+pW(1-(2p)^m)} \end{equation} 4. $(eg. W=32,\space m = 3 \space or \space 5, \space n = 3)$ \begin{equation} \tau(p) = \frac {2}{1+W+pW\displaystyle\sum_{i=0}^{m-1}(2p)^i } \end{equation} 將 $W = 32,\space m = 3\space or\space m = 5,\space n = 3$ 代入後得到 $\frac{2}{33+32p(1+2p+4p^2)}$ 及 $\frac{2}{33+32p(1+2p+4p^2+8p^3+16p^4)}$ , 透過論文中提到的 > Once independence is assumed, and p is supposed to be a constant value 由於 p 為機率必小於 1 ,隨著次方增大,該值會越來越小並漸漸失去影響。 在程式碼中我嘗試計算 $\tau$ 在不同 $W, m, n, p$ 時所對應的值。