老師把無線網路用一節課一遍過了…感覺沒能學透,便課後自己總結,看書,找資料補充,把無線網路大概摸了個七七八八。雖然不算精細,但還能看!內容包括WLAN總概,WiFi—WLAN的實現,802.11規定的幀結構,以及蜂窩網路。
強烈推薦一本書:《802.11 Wireless Networks: The Definitive Guide》, 2nd Edition by Matthew S. Gast;這本書有效地幫助了這節課的覆盤。
還有推薦一個知乎的博主徐工徐方鑫,在這方面的知識能學到很多!
無線區域網的組成
無線網路在近些年來一直是個非常流行的東西。現在的移動使用者數量已經大大超過了有線使用者數量,比例大於5:1。
實現無線網路的挑戰性
從有線到無線是網路構建上一個偉大的設想,挑戰性主要集中在wireless
和mobility
兩個點上。
這兩個是不同的概念!不要混為一談!兩個概念不等價,雖然很緊密。
-
wireless無線:如何使用無線鏈路進行通訊
-
mobility移動性:如何處理改變網路連線點的移動使用者,即使用者可以隨時改變接入節點(mobile的節點鏈路不一定是無線的,有線網路也有著隨時拔線插線的問題,這也是一個移動性問題)
組成無線網路的元素
根據無線網路中所處位置的不同,我們可以將組成元素分為三類:
-
wireless hosts
無線終端:- 包括膝上型電腦、手機
- 負責執行應用程式
- 可以是固定的,亦可以是移動的
-
base station
基站:- 例子有cell towers, 802.11 AP
- 一頭連到有線網路,一頭負責無線終端的中繼
- 家裡的AP就相當於一個小基站
- 中國有鐵塔公司,專門負責基站鐵塔建造
-
wireless link
無線鏈路:- 用來連線移動終端和基站
- 有很多區別,區域網(WLAN)和廣域網(4、5G)
- 可以透過多跳來中繼,不用拉電纜
各種無線標準
因為無線通訊受距離影響極大,所以根據距離的不同有不同的無線協議標準。(距離很長很長就進行長波通訊,如漁船潛艇;再長就到衛星通訊)
兩種應用模式
-
傳統的
infrastructure mode
:- 使用基站做無線通訊
- 可以隨時handoff(快速切換)
-
新興的
ad-hoc mode
:- 無線自組織網路,不用AP,就直接互聯;(p2p連線,無基站)
- 軍用,如艦隊,因為使用infrastructure mode要有艦船做通訊艦,被打掉通訊就無了;還有軍用無人機隊協同作戰也是採用ad-hoc mode。
下圖展示了兩種模式在通訊中所處單跳和多跳環境時的不同之處:
無線鏈路特點(Link)
無線鏈路因為其無線訊號傳播的性質,和有線鏈路有幾個不同之處:訊號易衰減,多路傳播自干擾,以及不同源干擾。
訊號衰減
訊號在傳輸過程中受到的損傷可以分為衰減、噪聲和失真幾種。在課上主要學習了訊號的衰減的量化指標 和 噪聲指標相應的的量化關係。
無線訊號在路徑上透過介質傳播時,強度會因為反射,衍射,吸收,地形輪廓(城市,農村,植被),溼度等因素不斷減弱。這也被稱為路徑損耗(Path loss
)。這個損耗的指標用一個叫自由空間損耗(FSPL
)的值來衡量,它是一個“增益負值”,可以表示訊號總髮送功率和接收功率之間的比值關係,單位為分貝。
$$
FSPL = P_L = 10\lg(\frac{P_{recv}}{P_{tran}})=10\lg(\frac{4\pi{d2}}{\lambda{2}}) = 20\lg{d} + 20\lg{f} + 32.44
$$
可以看看這篇文章,寫了有關FSPL的推導:802.11協議精讀15:鏈路模型(基於Free-Space Path Loss)。上圖即為自由空間損耗模型。
除了衰減,訊號在傳輸過程中也會受到一定的噪聲干擾,噪聲是指 在傳送和接收之間的某處插入的不希望有的訊號。在計網課上並沒有詳細闡述噪聲的型別,但給出了訊雜比(SNR
)和誤位元速率(BER
)之間的量化關係。
訊雜比是表徵訊號質量的重要指標之一。絕對訊號功率是影響訊號質量的重要因素,但並不代表訊號質量——也就是說並不是絕對訊號功率越強,訊號質量越好。而 SNR 作為訊號功率和噪聲功率的比值表示,可以有效預測通訊系統中訊號的質量,可以說SNR是越高訊號質量越好的;同時,噪聲疊加會導致解碼器解碼錯誤,錯誤衡量的指標就是 BER 。總的來說,SNR越高,BER則越低。
下圖展示了SNR和BER在不同調變編碼方式(物理層)下的關係:
可以看到:
- 在同一調解方式下,SNR越高,則BER越低;
- 即使在同一SNR下,隨著調解深度增加,BER也會跟著升高。
所以我們要對SNR和BER做出一定的權衡。
-
同一調解方式下可以透過升高SNR來獲取比較好的BER,但是,SNR是不能無限升高的,儘管可以透過增強訊號來增加SNR,但過高會導致放出的能量過大,對人體有害。
-
給定了SNR,可以選擇一個調製編碼方式(物理層)來選取相對的BER(越先進即越深的調製編碼越容易受干擾,因為一個訊號中帶的bit較多)
-
SNR會根據移動性來變換,動態切換調製編碼方式(可以看看拿著手機的時候,自己的網速會跟著自己的移動而變化)
這裡有一篇文章值得看一看:無線通訊中的SNR、SINAD和SINR
自干擾
無線訊號不是按照一個確定的直線方向進行傳播的,就像上面所給出的自由空間損耗模型;訊號在傳播時會接觸到不同的表面而產生反射,這些反射會導致訊號傳播的時差,從而到達目的地時會產生疊加,形成自干擾。如下圖:
其它發射源干擾
如果在同一時間有其他裝置與你一起共享無線網路頻段(如2.4 GHz的通道疊加),就會產生一定的干擾;除此之外,一些無線裝置(如藍芽滑鼠、鍵盤,甚至USB3.0等)也會干擾你的訊號。
這篇文章講了對WIFI網路訊號的影響因素:What affects Wi-Fi networks?裡面提到了各種各樣的發射源干擾。
無線網路特點(Network)
把目光從無線鏈路放到無線網路上,無線網路也有一些總體的特點:
-
傳播媒介是
broadcast
的:任何在鄰近的接收端都能收到訊號,以及對傳送端造成干擾; -
半雙工:即不能同時收發訊號;儘管在近些年來研究發現全雙工是可以實現的,但是在商業成本上過高。可以看看這篇回答:為什麼有線網路可以全雙工,而無線網路只能半雙工呢?
-
傳送端傳送的訊號並不總是以接收端接收到為結束;
-
產生的問題:多址接入問題,隱藏終端問題(
Hidden terminal problem
)
WiFi--IEEE 802.11 WLAN
WiFi我們平時常常掛在嘴邊,但它和802.11協議簇有什麼關係呢?簡單來說,IEEE 802.11是無線區域網的實現標準,Wi-Fi是對IEEE 802.11標準的產品實現,IEEE 802.11的標準並不等同於Wi-Fi。
Wi-Fi是Wi-Fi聯盟的商標。Wi-Fi聯盟是一個為了推動IEEE 802.11標準的商業組織,其主要目的是在全球範圍內發展基於IEEE 802.11標準的無線區域網技術。IEEE 802.11提出的標準較為理論化,在實際生產中,各個廠家對於Wi-Fi產品的實現不盡相同,Wi-Fi聯盟很好地解決了符合IEEE 802.11標準的各Wi-Fi產品生產和裝置相容問題。
也就是說,IEEE 802.11側重無線區域網理論層面,包括物理層、MAC層相關技術標準制定;Wi-Fi聯盟側重產品層面,對符合IEEE 802.11標準要求的產品制定規範以達到裝置相容的目的。
IEEE802.11 WLAN的組成結構
組成元素對應的術語如下:
Station
(STA): device with IEEE 802.11 conformant MAC and physical layerAccess Point
(AP): Provides access to the distribution system via the wireless mediumBasic Service Set
(BSS):A single cell coordinated by one access point (base station)Extended Service Set
(ESS):Multiple BSSs interconnected by Distribution System (DS)- DS can be a switch, wired network, or wireless network
- An ESS appears as a single logical LAN
- Portals (routers) provide access to Internet
Distribution System
(DS): A system used to interconnect a set of BSSs and integrated LANs to create an ESS
PS:
IBSS
為 Independent Basic Service Set,可以說是在ad-hoc mode下的BSS。WDS
為wireless distribution system。
Host連線到WLAN的過程
我們以802.11b協議為標準來做一個簡單的舉例。
- 802.11b的頻段在2.4GHz-2.485GHz 之間,共劃分為了11個通道,AP管理員可以選擇一個干擾比較少的通道來提升通訊效率;
- 需要進行無線通訊的host必須與AP進行連線,在連線前host會掃描通道,偵聽包含AP名稱(SSID)和 MAC的信標幀(
beacon frame
)(即掃描有啥WIFI可以連線); - host選擇一個AP進行連線,連線可能需要經過認證(
authentication
); - host將通常使用 DHCP 來獲取 AP 子網中的 IP 地址。
來看看其中的一些過程以及產生的問題:
Host偵聽SSID和建立連線
Host的偵聽過程發生在host將無線訊號接入到已經掃描到的channels的過程中,過程可以分為passive和active兩類:
Passive Scanning(左圖):AP們會不斷地往周圍發出信標幀,間隔為100ms;Host掃描(本地網路卡在每一個通道上進行輪換掃描)接收到後,發出一個選擇AP的request幀,AP們收到request幀後,被選擇的對應AP返回一個response幀給Host,連線建立;
Active Scanning(右圖):首先Host會在不同的channel上週期性廣播一個probe-request幀(這個幀有兩種格式,見連結),然後等待AP們收到該幀後返回的probe-response幀(帶著各個的SSID);Host接收到後,發出一個選擇AP的request幀,AP們收到request幀後,被選擇的對應AP返回一個response幀給Host,連線建立;
這兩篇blog給出了詳細的闡述:802.11中的主動掃描與被動掃描,wifi的主動掃描和被動掃描
還有一個好回答!能學到東西:有關WIFI中的掃描SSID的問題?
多址接入產生的問題
如圖,多址接入會產生隱藏終端、訊號衰減、暴露終端等問題。其中比較重要的是隱藏終端hidden terminal
問題。
什麼是 hidden terminal problem?這裡有太長不看的鍛鍊英語能力的闡釋:The Hidden Terminal Problem;用我們的話來說,就是存在兩個或以上的STA,這些STA在距離上離得非常遠(超出彼此傳輸範圍),誰也不知道誰的存在,但他們卻要同時向接收端(AP)傳送資料,就像上圖A和C被一座大山擋著了一樣。
這個問題會讓A和C在傳送的時候都會認為當前通道空閒,導致資料在B處產生了collision。
那麼該如何解決呢?採用了 IEEE 802.11 RTS/CTS 協議!
- A要傳送資料了!先往B傳送一個RTS(Request to Send )幀;
- RTS幀在傳播出去的過程中,起到了通知A附近的STA“我在傳送,勿擾”的作用;
- B接收到了RTS,給A返回一個CTS(Clear to Send)幀;
- CTS幀在傳播出去的過程中,起到了通知B附近的STA“我要接收資料了,勿擾”的作用(尤其是C,讓它不要再往B傳送資料,表示通道繁忙);
- A傳送資料,B接收到後返回ACK,傳輸完成。
PS:RTS/CTS exchange is a required function, but can be disabled.
隱藏終端是由於監聽到的通道空閒而不是真的空閒,故引發衝突。而暴露終端是由於監聽到的通道忙而不是真的忙,故其可以傳輸而不傳輸。
還是繼續來一篇好文章,深入解釋:802.11協議精讀5:隱藏終端和暴露終端
802.11協議結構
PS:最下面一層是物理層即編碼方式的選擇。
幀間間隙
在詳細闡述兩種802.11MAC型別以及對應的協議機制前,我們先來引入關於幀間間隙的概念:
在802.11使用的CSMA/CA協議中,發一個幀之前,都需要 "等待" 一個相應的幀間間隔,比如傳送資料之前至少要等待DIFS時間,傳送ACK之前需要等待SIFS時間。這種機制可以有效地避免傳輸衝突。而不同型別的traffic需要不同的優先順序,我們可以根據優先順序來分配幀間間隙,那麼有哪些幀間間隙?對應各類優先順序?
SIFS
(Short Inter_Frame_Space):短幀間間隙,傳送ACK,、LLC(鏈路層控制)的控制資訊資料包、輪詢回應、CTS……時使用,基本都為控制訊號;PIFS
(point coordination function IFS):點協調幀間間隙,被中心控制器使用(中心節點),傳送輪詢資訊時使用;DIFS
(Distributed coordination function IFS):分散式幀間間隙,用於所有普通非同步通訊資訊(就是最普通的發資訊啦)
兩種MAC型別
無線的MAC主要有兩類:PCF和DCF(也就是兩個MAC子層)。其中DCF是指分散式協調功能,分散式控制,用於傳輸非同步資料;PCF是指點協調功能,集中式控制,用於傳送實時資料,優先順序僅次於控制幀。
下面是IEEE給出的DCF和PCF定義:
IEEE 802.11 defines two MAC sub-layers:
- Distributed Coordination Function (DCF) – DCF uses CSMA/CA as access method as wireless LAN can't implement CSMA/CD. It only offers asynchronous service.
- Point Coordination Function (PCF) – PCF is implemented on top of DCF and mostly used for time-service transmission. It uses a centralized, contention-free polling access method. It offers both asynchronous and time-bounded service.
Both DCF and PCF are 802.11 medium access types that are the mechanisms for the implementation of CSMA/CA in WLAN.
在當前的802.11協議中,除了初始定義的DCF和PCF工作模式外,在802.11e中還定義了EDCA,HCCA(DCF被擴充套件為EDCA模式,PCF模式被擴充套件為HCCA模式)。
PCF和DCF和兩種無線應用模式的關係(DCF and PCF in Wifi-networks):PCF只在infrastructure module中使用,因為PCF需要一個站點作為point coordinator.
DCF 分散式協調MAC
DCF使用CSMA/CA機制進行資料傳輸。在DCF模式下存在兩種子模式:Basic模式與RTS/CTS模式。其中Basic模式就是CSMA/CA機制的使用模式,而RTS/CTS模式在前文我們以有所講解。
CSMA/CA機制
由於無線通道只有一個衝突域的特性,所以需要設定一種隨機接入機制,以避免多個節點同時訪問網路所帶來的衝突問題,在WiFi協議中,該隨機接入機制即是CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance
)。
CSMA/CA和乙太網中使用的CSMA/CD都是基於CSMA機制,但在細節方面有著許多的不同。CSMA/CA主要是要“避免”衝突的出現。來看一個時序圖:
可以看到兩個S他的競爭通道的步驟為:
- 如果當前通道idle,先等待DIFS;
- 然後進行backoff過程,backoff採用的是BEB機制;
- backoff數值減至0而expired後,STA2傳送資料幀;
- STA2成功發完資料,AP校驗完確定接收後,等待SIFS向STA2傳送ACK;
- STA2接收到ACK,傳輸完成,開始下一次DIFS;這時STA1的backoff值是繼承上次沒減完的值,這是為了保證公平性。
如果沒有收到ACK,則如圖:總共等待EIFS時間後重新開始通道競爭。(EIFS=SIFS+ACK+DIFS時間)
PS:當一個站要傳送資料幀時,僅在下面的情況下才不使用退避演算法:檢測到通道是空閒的,並且這個資料幀是它想傳送的第一個資料幀。除此以外的所有情況,都必須使用退避演算法。
PCF 點協調MAC
在PCF中,必須要有一個coordinator來保證無競爭媒介接入。在802.11中,coordinators須為AP,所以PCF只能在infrastructure mode中使用(但不是全程使用,由於PCF是以DCF作為基礎擴充套件的,所以 infrastructure mode中往往是PCF和DCF交替提供服務);當PCF使用起來的時候,媒介上的時間段被劃分為contention-free週期(PCF控制訪問)和contention週期(DCF控制訪問)。
PCF的過程如下:
- 無線網路配置好由coordinator控制的具有time-sensitive的多個STA;
- coordinator“抓住”媒介,“鎖住”全部的非同步通訊量,以輪詢方式對STAs進行輪詢;
- 收到輪詢時,STA可以等待SIFS後進行data響應;
- 如果coordinator收到響應,就再等待PIFS後發出下一個輪詢;
- 如果在預期的週轉時間內沒有收到響應,coordinator將發出下一個輪詢;
- 重複步驟直到當前週期結束,開始下一週期;
PS:新的標準中PCF已經被廢棄。
802.11MAC的邏輯圖如下:
結合文章802.11協議精讀2:DCF與CSMA/CA和802.11協議精讀4:PCF工作模式來看,還有一個問題的回答802.11協議中為什麼DCF比PCF應用更廣泛?,能很好地理解。
802.11幀結構的特別地方
PS:對802.11幀各個欄位的詳細闡述:IEEE 802.11 Mac Frame
看到這個幀結構時是不是會覺得莫名奇怪?先撇開其它不談,為什麼802.11幀會有四個地址?
課上給出了一定的解釋:
課上說,前三個地址使得無線幀可以“轉換”成有線幀,即從802.11轉換到802.3。
那dest的地址欄位不用填了?明明在802.3的LAN中就只有兩個地址欄位(src和dest)……而802.3中的bridge和switch對host來說是透明的,也不見得要填它們的MAC啊……雖然第三講中有“當主機想要向外網通訊時,需要用尋找的MAC是第一跳路由器的MAC”,但對於WLAN來說,還是講得不清不楚啊!自己動手,豐衣足食!
在stackexchange上找到了同樣有疑惑的老哥:Four layer-2 addresses in 802.11 frame header,回答裡面提到,當802.11裝置向接收裝置傳送資料時,這些裝置中的一個(或兩個)可能不是流量的實際源或目的地。面對這種情景我們可以構建四個地址,這是一點準備工作;
- Transmitter Address (TA)
- Receiver Address (RA)
- Source Address (SA)
- Destination Address (DA)
查閱幀結構發現:
四個地址欄位和frame control欄位中的DS位有關:
- Address 1 to 4 – These are 6 bytes long fields which contain standard IEEE 802 MAC addresses (48 bit each). The meaning of each address depends on the DS bits in the frame control field.
DS位又和分散式系統有關……
- To DS: It is a 1 bit long field which when set indicates that destination frame is for DS(distribution system).
- From DS: It is a 1 bit long field which when set indicates frame coming from DS.
蝙蝠書給出了一個對應不同功能填寫地址欄位的表:
Function | ToDS | FromDS | Address 1 (receiver) | Address 2 (transmitter) | Address 3 | Address 4 |
---|---|---|---|---|---|---|
IBSS | 0 | 0 | DA | SA | BSSID | Not used |
To AP (infra.) | 1 | 0 | BSSID | SA | DA | Not used |
From AP (infra.) | 0 | 1 | DA | BSSID | SA | Not used |
WDS (bridge) | 1 | 1 | RA | TA | DA | SA |
可以說,在802.11中,transmitter並不一定就是幀的creator,同樣,receiver並不一定就是最終解包的processor。根據功能的不同,地址欄位的填寫也不同。課上的情況其實就是二和三行的情況,Address3填寫的是路由器的MAC地址,這一點和“當主機想要向外網通訊時,需要用尋找的MAC是第一跳路由器的MAC”是相同的。(下圖為二三行分別對應情形)
保持移動性
host可以保持在不同的BSS之間移動過程中IP不變;這個過程需要網路層的 Mobile IP 協議(RFC3344)來實現,在這裡先不展開闡述(因為這課是自底向上……);
而在鏈路層中,移動性的實現需要交換機來協助完成:交換機需要記住host是在哪個AP!記憶行為就透過交換機的自學習機制來實現。
802.11中的高階功能
802.11中有一些為適應無線網路的特點而做出來的功能,如rate adaptation
和power management
Rate adaptation
Rate adaptation允許在無線網路中以不同的速率進行傳輸,傳輸的速率取決於所處的網路條件。在無線網路中,訊號強度是有強有弱的,rate adaptation技術的出現可以讓傳輸速率根據訊號強度而跟隨變動。訊號強時採用高速調製方式,弱時則相反。
在IEEE上的有關 rate adaptation 的演算法論文綜述:Rate adaptation algorithms for IEEE 802.11 networks: A survey and comparison
Power management
power management 指在不工作時關閉電源或將系統切換到低電源狀態的功能。在WLAN中(infrastructure mode),基本思想是AP快取下行資料,並週期性向對應的節點其廣播快取區情況,從而節點可以知道自己是否被資料快取了。在休眠結束後,被快取資料的節點就會進行資料請求,反之就繼續休眠。廣播快取區情況內容包含在信標幀中,AP的週期性廣播也是廣播信標幀。
蜂窩網路
在前面我們知道了一臺host是如何接入WiFi的,但大多數WiFi的覆蓋範圍只有10~100m左右,當我們在戶外的時候無法訪問WiFi時,該如何接入無線Internet呢?
我們可以將蜂窩電話擴充套件到蜂窩網路,使它既支援語音電話,又能支援無線Internet接入。下面我們簡要介紹一下。
蜂窩網路的組成
接入方式
多個移動裝置接入基站時,無線射頻的劃分有兩種方式:組合FDMA/TDMA, 以及CDMA。2G就是採用了組合FDMA/TDMA的對空介面,下面是自頂向上的闡述:
2G(voice)網路結構
3G (voice+data)網路結構
4G和5G就不是一張兩張圖能夠概括的了...還有很長的路要走!
最後來一個行動通訊的演化圖^^