計算機網路_CH5
26 April 2020
計算機網路 wireless-part1
Introduction
wireless host
就是end user,可以是電腦、手機IoT設備
base station
收發wireless host的資料給網路,就是作為host跟網路之間連接的窗口
- Access point(大致等於ethernet的switch)
- Cell Tower
wireless link
host連接到host或host連接到base station,有不同的protocol
- coverage rate : 能夠覆蓋多少範圍
- transmission speed : 傳輸多快
infrastructure mode
就是host + base station的模型
ad hoc network
隨意加入的節點的網路,不需依賴網路架構(不用路由器、DNS、base station),自己有收發封包的能力、routing的能力
handoff process
wireless host有高機動性,故可以自己移動到想要的地方,當移動超過一個base station到另一個的coverage area時。 此圖中的base station像是link layer,連接host和實體網路
wireless link speed and coverage
Category
依據下述兩個crteria分類
- 無線網路裡的封包是一個hop或多個hop
- 無線網路裡有沒有base station
single hop, infrastructure based
wire host和base station透過single hop 相連
Single hop, infrastructure less
沒有base station,一個node會負責相連其他
- bluetooth
- 802.11 hoc mode
Multi hop, infrastructure based
有base station,但是某些end host要透過其他host才能連到base station
Multi hop, infrastructure less
沒有base station,end host都是透過幾個node來傳遞資訊 通常在mobility很高的network,像VANET, MANET(mobile ad hoc net)
wireless network
特徵
與有線網路只有link layer底部不同,上半部完全依樣,下面三點說明wireless network較容易有bit error
- Decrease signal strength: 電磁波傳遠能量會減少
- interference : 電磁波會互相干擾,或者受到周圍環境noise的電磁波影響
- Multipath propogation : 電磁波會發散,反射,因此可能走不同路從sender到receiver
signal-to-noise rate(SNR)
因為wireless network傳送有上述問題,容易造成能量損耗或者bit error,因此用這個描述接收端收到訊息的準確度,就是描述sender能量大小(dB)
- larger SNR : 接收端更能recover訊息,去掉noise
- 由下圖可知,sender送出能量越大(SNR大),receiver的BER(bit error rate越低)
- 後面為了降低一點的BER所需的SNR不實際
- 或者給定SNR,選擇最有利的physical layer protocol來降低BER rate
- SNR會隨著移動、環境而改變
Hidden terminal problem & fading
Hidden terminal problem
在有線網路的broadcast時,每個人都會收到對方的訊息。 但無線網路用電磁波傳輸,如果中間有障礙物的話,可能會有host沒辦法收到broadcast訊息。如下圖A,C彼此聽不到對方訊息,所以同時傳訊息給B,可能造成封包損毀
Fading
可能有host距離太遠,所以訊息還沒傳到那裡就消失了,所以A,C沒辦法預先溝通而同時傳資訊給B。在此狀況,中間那個B依樣可能同時收到A,C訊息導致封包損毀。
CDMA/CA
用途
在wireless network時,避免傳遞的資訊互相interfere的一個protocol,在wireless network或celluar network常見。是一種channel division
原理
- 把時間切割,一段時間傳一個bit,一段時間內又有切成很多小段時間(time slot),並賦予每個time slot一個bit,所以很多time slot形成一串bit string(chipping code)
- 所有user有一樣的時段長度(frequency),但有不同的chipping code
- encoding方式就是把要傳的資訊$d_i$ * $c_m$ (chipping code)
- $Z_i$ = $d_i$ * $c_m$ 第i個時段的data $d_i$ encoding
- receiver用以下公式把encode值decode,就是把chipping code乘$Z_i$然後除以chipping code有的bit數
- $d_i$ = $\frac{1}{M}\sum_{m=1}^{M}Z_ic_m$
Interference(沒有很懂)
在wireless的環境下是會interference的,所以某個sending data可能剛好跟另一個sending datat重疊,導致$Z_i$和$Z_j$疊加,但如果chipping code有選好的話,receiver還是能recover 如下圖,sender1 sender2的encode資料重疊,但是receiver還是能恢復
802.11
Introduction
- 一種IEEE standard,wireless lan,就是wifi
- 有各種802.11 standard
- 802.11.a
- 802.11.b : unlicenesed frequency,要跟電話之類搶頻寬
- 802.11.g
- 802.11.n : MIMO(multi input multi output)
- 越高的頻率,傳遞範圍越小
- 都採用CSMA/CA
- 都能減少transmission rate來使資料傳更遠
- 都有infrastructure or adhoc的模式
BSS(Basic service set)
- 一堆wireless host + 一個base station(AP)
- 在ad hoc模式,只有wireless host
- AP 連接到switch再透過switch到Internet,
- AP和wireless host都有6 byte MAC address
Channel and Association
- wireless host要associate一個AP才能聯網
- AP設置時
- 設定SSID(AP名字)
- 設定channel
- 802.11b有11個overlap channel,隔四個channel以上才沒overlap,除非使用者用的channel都沒overlap,上下載速度才能達到最大值
Beacon frames
現在到處都是wifi,有許多地方有AP重疊,要有一個機制讓使用者知道要連到哪個AP, 因此AP會發beacon frames,包括兩個訊息
- SSID
- Frequent 使用者scan 11 channel,看有誰送beacon frames來
passive scanning and active scanning
host跟AP建立wireless link的方法,主要是透過associate request跟associate response
建立好連線後,host透過AP送DHCP request去取IP,
Authentication
AP後面偶爾會有一台authentication server,這台server可以同時管理多個AP,簡言之就是決定使用者有沒有權限連這台AP
- 檢查host MAC address是不是whitelist
- host需要帳密登入
CSMA/CA
- 802.11 protocol
- carrier sense multiple access,collision avoidance protocol,
- host先檢查channel有沒有人在用,如果很多人在用就不透過該channel傳資料
- 沒有支援在傳的時候collision detection,也就是不會傳資料時發現有人也傳資料到同一個channel就abort,不會監測到有人傳這個channel
- 因為collision detection要能同時read跟send資料才能檢測collision,在wireless這樣cost高
- 因為hidden terminal問題,host也不能監測到所有collision,所以監測也沒太大用處
- 因為沒有collision detection,所以一次就是把所有資料都傳完,collision多時,效能會低,因此使用下面的技術來達到collision avoidance
link-layer acknowlegement
- 因為wireless常常各種原因資訊沒送到目的地,所以用這個來確保
- sender先送資訊,receiver收到後等一小段時間(SIFS,short interface-frame spacing),然後送一個ack frame回去給sender
- 如果sender沒收到ack,就會retransmit,如果retransmit幾次後都失敗,就放棄該frame
CSMA/CA protocol
- sender要傳資訊,發現有channel是空的,等一小段時間(DIFS)後再傳資料
- receiver收到後等一小段時間(SIFS)在送ack
- 如果channel busy,設定一個random backoff counter,每次sense到idle時counter -1,直到counter變成0才傳資料
- 接著如果要再傳新資料或者沒收到ack要重傳,都是設定random backoff counter,等變成0時在傳,如果是重傳的狀況,random的counter space會更大,就是會選到更大的數字(因為busy~)。
因為CSMA/CA目的是要avoid任何collision, CSMA/CD當frame傳到一半發現collision時,只要停掉重傳就好。 wireless時不會detect collision和abort transmission,要等所有資料傳完才行,所以collision的代價便很高 用這個方式,兩個host會選不同的random number,所以傳輸時間就不同,就能避免collision,當channel被佔據時,另一個host的counter就會凍結,等到有idle才會繼續扣 collision兩種狀況還是會發生
- 兩host的random number很近。
- hidden terminal problem
RTS and CTS
RTS : Request to send CTS : clear to send
- 目的 : 一個解法解決上述CSMA/CA沒辦法解決的hidden terminal problem
- sender先傳一個RTS封包給AP,內包含需要reserve多少時間
- receiver收到一個RTS封包後,broadcast CTS封包給所有sender,目的在於跟sender講目前誰能用這個channel
- 如果RTS也collide,就用CSMA選random counter
- 額外的傳輸、communicate耗資源時間,所以並不是所有時候都會用,只要data很大時才會用,不然直接傳就好
CSMA/CD
linke layer protocol 跟CSMA/CA不同處在於他不用random backoff counter,是一發現idle就傳
802.11
計算機網路 wireless-part2