ADVERTISEMENT
無線使用CSMA/CA
雖然CSMA/CD在有線網路的範圍中,已被全雙工和switch所避免掉,在GbE網路環境裡已相當少用,10GbE規格裡更是直接被拿掉半雙工支援,hub也不復存在。但在無線網路中,CSMA還活得好好的,因為使用空間作為介質傳遞訊號,很難限定訊號只在特定範圍內傳播。無線環境還有個相當特殊的「隱藏節點」狀況,如下圖所示:
▲無線網路的特殊現象,由於無線訊號無法傳遞太遠,兩側的裝置無法得知對方的存在
由於無線訊號會根據傳輸距離而逐漸遞減,A、B點和基地台的距離都要在雙方的無線訊號涵蓋區之內才可進行通訊,但A、B點卻因距離問題都不在對方的訊號範圍內,無法得知對方的存在,如果同時發送訊號給基地台,基地台部分必會發生碰撞。由於無法相當有效的偵測碰撞的存在,無線傳輸無法使用CSMA/CD,而是盡量避免碰撞的發生,使用CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)。
發送之前隨機等待
CSMA/CA一樣也是先偵測傳輸媒體的狀態,如果忙碌中就不進行傳輸。但當偵測到媒體空閒時,並不像CSMA/CD直接傳輸資料,而是再等待一段隨機時間後,如果媒體依然空閒,才進行資料的傳輸。同時,傳輸資料後必須收到確認訊息後才算傳輸成功;若沒有收到確認訊息,則代表接收端有狀況發生,可能是上述的隱藏節點造成碰撞,也有可能是其它原因,總之傳輸端會重新傳送1次資料。
RTS/CTS
在無線網路傳輸標準802.11之中,還有個選用功能能夠避免碰撞的發生,就是啟用RTS/CTS(Request To Send/Clear To Send)。
在裝置傳送無線訊號之前,會先向基地台傳送RTS訊號,請求傳輸許可,若基地台感測到目前空間無裝置使用,便會發送CTS訊號給裝置,告知其准許傳輸。如果同時有多個裝置同時向基地台發送RTS,則基地台只會給其中1台CTS訊號允許傳輸,便不會造成訊框碰撞。
事實上這個RTS/CTS的交握協議在傳輸小量資料時較無效率,因此在實作上會有個RTS門檻值,一旦要傳送大於這個值的資料,就開始進行RTS/CTS的交握協議,如果比這個訊框小就不使用RTS/CTS。
以上所述在無線訊號的範疇裡屬於DCF(Distributed Coordination Function,分散式協調功能),需要傳送方自行去搶傳送資源,應此又稱為競爭式服務。另外一種是由AP負責輪詢各台裝置,唯有被問到的裝置才能傳輸資訊,為PCF(Point Coordination Function,集中式協調功能),屬於非競爭式服務。PCF由AP集中管理各裝置的發送,所以不會造成訊框碰撞,也避免掉隱藏節點的問題。但由於PCF屬於選配功能,實際應用上還是以DCF占大多數。
RTS門檻值的小八卦
如果讀者家中的AP提供RTS門檻值選項,其實大家可以觀察一下預設值為多少,絕大多數設定在最大的2346或是2347,所以大於2346 byte的訊框才會啟用RTS/CTS功能,而無線網路的訊框最大為2436 byte(包含訊框主體和其它控制除錯部分),換言之當RTS門檻值設定在2346或2347時,也就是關閉RTS/CTS功能。如果家中使用較多無線產品,或是附近的AP實在太多,干擾嚴重,就建議把RTS門檻值往下調,可以提升傳輸速度與品質。但是如果無線網路環境簡單,則建議保持預設值即可。其實這只是個經驗法則,最佳的RTS門檻值需要不斷的依據當地無線網路狀況,持續做實驗才可找出最佳設定。
下一次將會說明無線網路的規格,無線網路比較特殊一點,像是常見的54Mbps、150Mbps、300Mbps指的都是OSI網路模型L1的部分,或許可以談到DSSS(直接序列展頻)、OFDM(正交分頻複用)等技術。
本文同步刊載於電腦王雜誌
歡迎加入電腦王雜誌粉絲團
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!