計算機網路_CH5

26 April 2020

計算機網路 wireless-part1

Introduction

wireless host

就是end user,可以是電腦、手機IoT設備

base station

收發wireless host的資料給網路,就是作為host跟網路之間連接的窗口

  • Access point(大致等於ethernet的switch)
  • Cell Tower

host連接到host或host連接到base station,有不同的protocol

  • coverage rate : 能夠覆蓋多少範圍
  • transmission speed : 傳輸多快

infrastructure mode

就是host + base station的模型

ad hoc network

隨意加入的節點的網路,不需依賴網路架構(不用路由器、DNS、base station),自己有收發封包的能力、routing的能力

coverage

handoff process

wireless host有高機動性,故可以自己移動到想要的地方,當移動超過一個base station到另一個的coverage area時。 此圖中的base station像是link layer,連接host和實體網路

Category

依據下述兩個crteria分類

  1. 無線網路裡的封包是一個hop或多個hop
  2. 無線網路裡有沒有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

  1. Decrease signal strength: 電磁波傳遠能量會減少
  2. interference : 電磁波會互相干擾,或者受到周圍環境noise的電磁波影響
  3. 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
  • 因為wireless常常各種原因資訊沒送到目的地,所以用這個來確保
  • sender先送資訊,receiver收到後等一小段時間(SIFS,short interface-frame spacing),然後送一個ack frame回去給sender
  • 如果sender沒收到ack,就會retransmit,如果retransmit幾次後都失敗,就放棄該frame

CSMA/CA protocol

  1. sender要傳資訊,發現有channel是空的,等一小段時間(DIFS)後再傳資料
  2. receiver收到後等一小段時間(SIFS)在送ack
  3. 如果channel busy,設定一個random backoff counter,每次sense到idle時counter -1,直到counter變成0才傳資料
  4. 接著如果要再傳新資料或者沒收到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兩種狀況還是會發生

  1. 兩host的random number很近。
  2. hidden terminal problem

RTS and CTS

RTS : Request to send CTS : clear to send

  • 目的 : 一個解法解決上述CSMA/CA沒辦法解決的hidden terminal problem
    1. sender先傳一個RTS封包給AP,內包含需要reserve多少時間
    2. receiver收到一個RTS封包後,broadcast CTS封包給所有sender,目的在於跟sender講目前誰能用這個channel
    3. 如果RTS也collide,就用CSMA選random counter
    4. 額外的傳輸、communicate耗資源時間,所以並不是所有時候都會用,只要data很大時才會用,不然直接傳就好

CSMA/CD

linke layer protocol 跟CSMA/CA不同處在於他不用random backoff counter,是一發現idle就傳

802.11

計算機網路 wireless-part2