電臺等待以檢測信道是否空閒DIFS然後開始傳輸。我的問題是爲什麼只等待DIFS而不是SIFS。 什麼問題,它可能導致的問題(SIFS而不是DIFS)?爲什麼要等待DIFS以檢測信道是否空閒
2
A
回答
1
簡短回答:SIFS
不足以檢測通道是否確實空閒。等待SIFS
而不是DIFS
的含義是MAC協議將不再能夠檢測繁忙信道,因此可能會一直髮生衝突,從而導致信道效率低下。
龍答:
- 什麼是
SIFS
? standard定義了SIFS(短幀間空間)用於分離幀和幀。收到DATA
的臺站(STA)在發送ACK
之前將等待SIFS
。它應該儘可能短,基本上就足以解碼幀,MAC處理和準備時間以發送ACK
。對於802.11n/ac,SIFS
= 16微秒。 - 什麼是
DIFS
?DIFS
=SIFS + 2*slot_time
。與SIFS
類似,slot_time
是PHY依賴性的。對於802.11n/ac,slot_time
= 9微秒。定義爲足夠長的時間以解釋傳播延遲,從而使相鄰STA能夠檢測傳送STA的前導碼。
話雖如此,如果一個STA只是等待SIFS
發射之前,有沒有辦法可以檢測有可能通過在完全相同的時間,鄰居STA發送ACK
框架 - 這導致衝突和渠道效率低下。
其他:
- 如果一個
slot_time
在足夠長的時間來檢測發射STA的序言,爲什麼單單不等待SIFS + slot_time
?可以,但它實際上是PIFS
,通常僅由AP使用(具有比普通STA更高的訪問優先級)。 - 爲什麼要等至少
DIFS
發送之前?鑑於DIFS
足以確定通道是否忙,爲什麼不等待DIFS
?這是因爲可能有多個可能同時發送頻道的STA。如果每個STA只是等待DIFS
然後立即發送 - 那麼這是另一個衝突。這就是爲什麼標準要求如果STA發送信道空閒爲DIFS
,它可以立即傳輸。但是如果STA發送信道繁忙,則必須等待DIFS
加上隨機退避時間以避免衝突。什麼是隨機退避時間?時間到谷歌的802.11 CSMD /加州然後.. - 作爲參考,有a similar Q處理
SIFS
並觸及了其他渠道訪問時間。
0
一個站點用於檢測信道,然後發送RTS到另一個站點的時間。此總時間稱爲DIFS(DCF,幀間空間)。該站首次感知到該站未被其他站使用,然後發送RTS(請求發送)。 如果chanel閒置,那麼頻道從省電模式喚醒以接受來自電臺的RTS,因此在這個過程中也花費了一些時間。
+0
謝謝,但從答案來看,仍然不清楚爲什麼等待DIFS,當站可能等待較少 - SIFS,然後開始傳輸。 – user2176346
相關問題
- 1. 爲什麼要等待window.onload?
- 2. 檢測進程是否空閒
- 3. 如何檢測EventWaitHandle是否在等待?
- 4. 檢測android空閒
- 5. 什麼是等待?
- 6. 爲什麼這些rspec測試「等待」?
- 7. 爲什麼我需要等待協程?
- 8. 爲什麼要等待退出?
- 9. 如何知道演員是否空閒
- 10. JS異步/等待 - 爲什麼等待需要異步?
- 11. 程序爲什麼要等待schedule()完成,但不等待scheduleWithFixedDelay()?
- 12. 檢測IDataReader是否爲空的最佳方法是什麼?
- 13. XCTestCase:等待應用程序空閒
- 14. 檢測RichTextBox是否爲空
- 15. 是否有可能檢測到Cortex M3上的DMA通道何時空閒?
- 16. 檢查是否有什麼「等待」函數的返回值
- 17. 如何等待緩衝通道(信號量)爲空?
- 18. VB檢測空閒時間
- 19. 如何檢測Javascript空閒?
- 20. Flex:檢測用戶空閒?
- 21. 檢測服務空閒
- 22. 系統空閒檢測
- 23. 檢查Windows Mobile設備是否空閒
- 24. Java:檢查PC是否空閒
- 25. 爲什麼我不需要檢查引用是否無效/空?
- 26. 802.11中DIFS(分佈式幀間空間)的用途是什麼?
- 27. 什麼是等待setSoTimeout
- 28. 什麼是「等待線程」?
- 29. C++管道:是否等待寫入
- 30. 檢測網絡在Python中是否空閒
非常感謝您的詳細解答。 – user2176346