2015年11月22日 星期日

RaspberryPi Ad-hoc mode

由於做研究需要用到RaspberryPi,所以要想辦法讓Pi變成ad-hoc mode
網路上資料不多,查到也不一定是英文....所以在這裡做個整理

首先先把網路設定備份起來


cp /etc/network/interface /etc/network/interface_backup



再來我們去修改網路設定 /etc/network/interfaces 

NODEA

auto wlan0
iface wlan0 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    wireless-channel 1
    wireless-essid MYNETWORK
    wireless-mode ad-hoc


NODEB

auto wlan0
iface wlan0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    wireless-channel 1
    wireless-essid MYNETWORK
    wireless-mode ad-hoc

在這裡兩個node的IP請依自己的情況去修改,不一定會一模一樣。

再來我們重啟Pi的網路

service networking restart

然後我們在Node A去做Scan去找出Node B iwlist wlan0 scan

之後我們可以去Ping看看有無成功找到Node B


ping 192.168.1.2

2015年11月18日 星期三

NS2(1)_基礎


STEP 1:


下圖是一個要模擬出來的場景。

STEP 2:

撰寫 Tcl Script

[一] 定義網路拓墣


1. 先看種共有多少節點。然後利用 Tcl 建立這些節點出來。

共有四個節點,此時則建立出四個節點出來。

set n0 [$ns node]

set n1 [$ns node]

set n2 [$ns node]

set n3 [$ns node]

2. 建立節點之間的連線關係。

$ns duplex-link $n0 $n2 1Mb 10ms DropTail

$ns duplex-link $n1 $n2 1Mb 10ms DropTail

$ns duplex-link $n2 $n3 1Mb 10ms DropTail

[Note] : 

duplex-link 代表雙向連通

1Mb 代表頻寬

10ms 代表延遲時間

duplex-link 後面的節點編號,代表是所連接的兩個節點

3. 設定節點之間的相對關係(可有可無)

$ns duplex-link-op $n0 $n2 orient right-down

$ns duplex-link-op $n1 $n2 orient right-up

$ns duplex-link-op $n2 $n3 orient right

[Note]:

$n0 $n2 orient right-down

代表 n0 與 n2 節點的相對關係,以 n0 為原點,n2 在 n0 的右下角。
------------------------------------------------------------------------------------------------------------------------

[二] 定義所發生的事件


1. 設定節點使用的通訊協定

set udp0 [new Agent/UDP]

$ns attach-agent $n0 $udp0

[Note]:

產生一的 UDP 的通訊協定 Agent 命名他為 udp0。

這個 Agent 讓節點 n0 來做使用(attach-agent $n0 $udp0)

set udp1[new Agent/UDP]

$ns attach-agent $n1 $udp1

2. 節點通訊協定上所架設的應用程式

set cbr0 [new Application/Traffic/CBR]

$cbr0 set packetSize_ 500

$cbr0 set interval_ 0.005

 $cbr0 attach-agent $udp0

[Note]:

產一個 CBR 的應用程式。

設定 CBR 這個應用程式所發的封包大小(packetSize_)

設定 CBR 這應用程式的發封包的間距時間(interval_)

最後設定底層的通訊協定為 UDP。所以最後一行我們看到 cbr0 這個應用

程式會去連接剛剛所建立的 UDP Agent(attach-agent $udp0)

set cbr1 [new Application/Traffic/CBR]

$cbr1 set packetSize_ 500

$cbr1 set interval_ 0.005

$cbr1 attach-agent $udp1

[Note]:

當我們設定 CBR 這應用程式時,他會把封包丟到 NULL agent 去。所以要

設定 CBR 丟到哪個 NULL agent。我們設定 n3 為 null agent。

set null0 [new Agent/Null]

$ns attach-agent $n3 $null0

$ns connect $udp0 $null0

$ns connect $udp1 $null0

[Note]:

$ns connect $udp $null 不是連接$cbr $null。(udp、null 兩層才是相同層的

3. 設定開始的時間與結束時間

$ns at 0.5 “cbr0 start”

$ns at 1.0 “cbr1 start”

$ns at 4.0 “cbr0 stop”

$ns at 4.5 “cbr1 stop”

[Note]:

cbr0 這個應用程式在時間軸為 0.5 時開始運作、且在時間軸為 4.0 時聽停

------------------------------------------------------------------------------------------------------------------------

[三] 更進一步的學習 – 標色


我們在模擬器上面看到傳輸流量他預設值都是黑色。但是我們若要判別他是從

CBR0 還是 CBR1 所來的資料時,我們就可以利用標不同顏色的技巧。就可以輕

易的從 NAM 中看出他是從哪個應用程式出來的流量。這邊就要學會怎樣幫這

些流量標上色彩。

1. 先設定群組

$udp0 set class_ 1

$udp1 set class_ 2

2. 設定該群組送出資料時所要用的顏色

$ns color 1 Blue

$ns color 2 Red
------------------------------------------------------------------------------------------------------------------------

[四]、其他基本的設定

1.建立出模擬物件

set ns [new Simulator]


2.把模擬過程寫成 nam 檔案

set nf [open out.nam w]

$ns namtrace-all $nf


3. 定義一個簡單的副程式來控制結束時所要做的事件

proc finish {} {

global ns nf

$ns flush-trace

close $nf

exec nam out.nam &

exit 0

}

[Note]:

設定兩個 global 變數 ns(建立了一個模擬-ns)、nf(建立了一個 nam 數值追蹤

-nf)。

close $nf(結束數值的追蹤)。

exec nam out.nam &(把 out.nam 開起來)。

exit()結束離開。

4. 設定模擬器結束時間與讓模擬器開始啟動

$ns at 5.0 “finish”

$ns run

[Note]:

模擬器在 0.5 秒的時候呼叫 finish 函數。

$ns run – 模擬器開始模擬(通常放在 Tcl 的最後一行)

STEP 3:

觀察剛自己所寫的結果。

1. 此時在終端機上輸入

ns <file_name>

2. ns 模擬器則會去讀取所寫好的 Tcl 開始模擬 Tcl 內所描述的情形。


set ns [new Simulator]

$ns color 1 Blue
$ns color 2 Red

set nf [open out.nam w]
$ns namtrace-all $nf

proc finish {} {
     global ns nf
     $ns flush-trace
     close $nf
     exec ./nam out.nam &
     exit 0
}

set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]

$ns duplex-link $n0 $n2 1Mb 10ms DropTail
$ns duplex-link $n1 $n2 1Mb 10ms DropTail
$ns duplex-link $n2 $n3 1Mb 10ms DropTail

$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right

set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0

set udp1 [new Agent/UDP]
$ns attach-agent $n1 $udp1

$udp0 set class_ 1
$udp1 set class_ 2

set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0

set cbr1 [new Application/Traffic/CBR]
$cbr1 set packetSize_ 500
$cbr1 set interval_ 0.005
$cbr1 attach-agent $udp1

set null0 [new Agent/Null]
$ns attach-agent $n3 $null0
$ns connect $udp0 $null0
$ns connect $udp1 $null0

$ns at 0 "puts start...."
$ns at 0.5 "$cbr0 start"
$ns at 1.0 "$cbr1 start"
$ns at 4.0 "$cbr0 stop"
$ns at 4.5 "$cbr1 stop"
$ns at 5.0 "finish"

$ns run
------------------------------------------------------------------------------------------------------------------------

@@@@@@@@@@練習題@@@@@@@@@@




set ns [new Simulator]

$ns color 1 Blue
$ns color 2 Red

set nf [open out.nam w]
$ns namtrace-all $nf

proc finish {} {
     global ns nf
     $ns flush-trace
     close $nf
     exec ./nam out.nam &
     exit 0
}

set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]

$ns duplex-link $n0 $n2 100Mb 5ms DropTail
$ns duplex-link $n1 $n2 100Mb 5ms DropTail
$ns duplex-link $n2 $n3 54Mb 10ms DropTail
$ns duplex-link $n2 $n4 54Mb 10ms DropTail

$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right-down
$ns duplex-link-op $n2 $n4 orient right

set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0

set tcp0 [new Agent/TCP]
set sink [new Agent/TCPSink]
$ns attach-agent $n1 $tcp0
$ns attach-agent $n4 $sink
$ns connect $tcp0 $sink

set ftp [new Application/FTP]
$ftp attach-agent $tcp0

$udp0 set class_ 1
$tcp0 set class_ 2

set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0


set null0 [new Agent/Null]
$ns attach-agent $n3 $null0
$ns connect $udp0 $null0
$ns connect $tcp0 $sink

$ns at 0 "puts start...."
$ns at 0.5 "$cbr0 start"
$ns at 1.0 "$ftp start"
$ns at 4.0 "$cbr0 stop"
$ns at 4.5 "$ftp stop"
$ns at 5.0 "finish"

$ns run

2015年11月9日 星期一

how effective is the ieee 802.11 rts/cts handshake in ad hoc networks

how effective is the ieee 802.11 rts/cts handshake in ad hoc networks


摘要:

IEEE 802.11的MAC主要依靠兩種技術來打擊干擾: physical carrier sensing and RTS/CTS handshake。在本paper中,研究如何有效利用RTS / CTS握手減少干擾。在某些情況下,干擾範圍比傳輸範圍大,而導致RTS / CTS不能發揮作用。兩個獨立的解決方案提出了。一個是一個簡單的增強到IEEE 802.11 MAC協議。另一種是利用directional antennas。模擬結果發現,確實可以幫助IEEE 802.11解決大部分的干擾造成大的干擾範圍。

1.Introduction:

在無線網絡中,interference is location dependent。因此,隱藏終端問題可能頻繁發生,解決隱藏終端問題成為MAC協議的主要設計考慮因素之一,RTS / CTS握手主要設計用於這種目的,然而,它有一個基本假設,即所有隱藏節點是接收器的傳輸範圍內,所以當transmitter-receiver距離超過一定值這樣的假設可能不成立,在本paper中,表明對於開放的空間環境中,receiver的干擾範圍是transmitter-receiver1.78倍距離,這會讓RTS / CTS不能很好發揮作用,大的干擾範圍是Ad hoc網路中一個嚴重的問題,可能會傷害了Network capacity和network performance,本paper中探討兩種技術。第一種技術是IEEE 802.11 MAC DCF的一些小的修改,主要是,以選擇性地回復的CTS封包來防止傳輸時link quality是weak,主要缺點是減小有效傳輸範圍。第二個技術是增強硬體,更精確地使用接RBF天線。 RBF天線是一種類型的定向天線,其中傳輸是全向的,但接收是方向性的,它能夠interference by lock onto a specific direction for packet reception。

2.Effective of RTS/CTS Handshake:

本篇paper提到三個無線電範圍:傳輸範圍(RTX)表示在其內成功地接收到分組的範圍、
載波感應範圍(RCS)是在其中一個發射器觸發的載波檢測的範圍、干擾範圍(Ri)是在這站接收模式由一個不相關的發射器將被“干擾”的範圍。
Investigation of the interference range: 
 Ri = 
=
                                    
(SNR_THRESHOLD通常被設定為10)
傳輸距離的關係表示法:
在本章節作者分析當sender與receiver的距離大到一定程度後,會造成Ri > Rix,也就是Aj >ARTS/CST。作者做了模擬後得到Physical Carrier Sensing的結論,一個節點干擾範圍的不等於傳輸範圍。在大的carrier sensing range RTS / CTS沒有效率,造成此狀況不是由於硬體的限制和significant throughput reduction。

3.Problem By Large Interference Range:

本篇PAPER中,作者使用NS2模擬干擾範圍>傳輸範圍時,會出現甚麼現象,如第二章所提到,節點雖然已經在要傳送目的的節點的傳輸範圍內,可是會因為其他節點有著大範圍的干擾,而造成整體網路的吞吐量不好。

4.Proposed Scheme And Simulation Evaluation:

作者提出了一個想法:一個節點只在RTS packet的接收功率大於一定的thrshold時回CTS封包,作者的方案實際上降低有效傳輸範圍並解決干擾,可是當傳送廣播封包時,廣播封包不會被RTS/ CTS保護,在MANETs中的大多數路由協議使用廣播的route discovery
routing protocols,發現它如果透過作者的方式會disable link,為了解決這個問題和維持一致性
如果該封包的接收功率低於thrshold,節點丟棄該廣播封包。

5.Conclusion:

作者先分析了干擾範圍對RTS/CTS的影響,並提出一個簡單的改善方法,再以NS2模擬去實現作者的想法,發現作者所提出的方案是簡單卻有效率的方法。



















2015年11月8日 星期日

Interplay of Spatial Reuse and SINR-determined Data Rates in CSMA/CA-based, Multi-hop, Multi-rate Wireless Networks

Interplay of Spatial Reuse and SINR-determined Data Rates in CSMA/CA-based, Multi-hop, Multi-rate Wireless Networks

1.Introduction

   在CSMA / CA的無線網絡,如廣泛部署的IEEE 802.11標準,有幾個部分的機制與相關的media access,collision resolution,protocol capacity optimization:(ⅰ)對物理載波偵聽檢測同時傳輸和減輕干擾;(ⅱ)二進制指數退避機構,用於解決contention;和(iii)根據該信號數據速率調整質量(如IEEE 802.11中的自動定速率函數)。
作者相信根據網路環境來動態的調整 carrier-sensing threshold(Tcs)可以達到更好的Spatial Reuse
還有Data rate的選擇(透過選擇最有可能的Data Rate來支持SINR的value)

2.Related Work:

作者在此章節提出各個不同paper的觀點來分別描述Spatial Diversity by Tuning the Carrier-sensing Threshold與Spatial Diversity by Tuning the Transmit Power。

在Spatial Diversity by Tuning the Carrier-sensing Threshold小節中,作者提出三點不同的觀點,第一,作者的分析模型會計算在Carrier Sense Range外多個節點同時傳輸造成的多重干擾。
第二,透過第一點計算的結果來選擇合適的Data Rate。
第三,假設在Carrier Sense Range內同時傳輸,會造成Collsion。

在Spatial Diversity by Tuning the Transmit Power中,作者依照SINR的Value來調整Tcs,來選擇適合的Data Rate傳輸。

3.Network Model And Signal Propagation/Interference Model

作者在本章節透過參數與Radio Propagation and Interference Model模型來推導出合適的SINR來選擇合適的Data Rate。

4.Network Capacity As A Function Of Tcs, SINR, And β[i]

在本章節,作者透過延伸Cal´i’s model成multi-hop,multi-rate wireless networks,然後使用SINR,
β[i],dcs,其他PHY/MAC的參數來推導出網路容量。


A. Cal´i’s Model and Changes That Need to be Made

將一個p-persistent model 延伸成 multi-hop,multi-rate wireless 環境,需要做以下幾點改變:

1)在p-persistent model中 attempt prob只由backoff timer value來決定,為了結合physical carrier sense在傳遞中的作用機會,作者重新定義了attempt prob在我們的分析模型

2)在p-persistent模型,碰撞被認為發生如果有一個以上的同步傳輸在一個單一的Cell。在作者的分析模型,認為信號的作用是捕獲不同的Data Rate(即我們定義了不同的最低SINR值來支持不同的Data Rate),和定義碰撞的概念區(CZ)。基本上碰撞區是區在另一個單獨的同時傳輸會損害感興趣的傳輸(和誘導碰撞)。所有內部在碰撞區域中的節點包括激活的節點。碰撞的計算概率也相應的修改。

3)在p-persistent模型中,Single Data Rate被用於對所有傳輸。我們將multi-rate結合到我們的分析模型。無線電收發器可能根據選擇的Data Rate有不同的信號捕捉能力。

4)由於Cal'i Model是針對Single Cell的WLAN,他們不考慮Spatial Reuse。在作者的分析模型中,Spatial Reuse的程度是由調整Tcs和同時傳輸的節點數量。SINR決定出最可能與可支持的Data Rate。最後,網絡容量由同時傳送和Data Rate來決定。


B. Determination of Attempt Probability & C. Determination of Sustainable Data Rates & D. Definition of Collision Zone & E. Calculation of Network Capacity

在本三個章節,作者推導並重新定義了模型的Attempt Probability,由SINR推導出Sustainable Data Rates,並定義了所謂的Collision Zone,通過加入了所有的干擾來推算出CZ,如果CZ內的任何節點與所關注的發送同時發送,就會發生衝突,並計算模型的Network Capactty,分析Joint Effect of Tcs and CW on Network Capacity 與Impact of Node Density。

6.Conclusion

在本篇paper中,作者研究PHY-和MAC層參數,包括Carrier-sensing thrshold Tcs,CW大小,並且不同的Data Rate,在Multi-hop,Multi-rate wireless network之間的的相互作用。通過擴展Cal'i model,推導在802.11 DCF範疇內的Single-channel,Multi-hop,Multi-rate wireless network。網絡容量被推導為Tcs,SINR,β,和其他PHY / MAC的函數。特別是,不同的Spatial Reuse的程度通過調整Tcs合併。基於physical radio propagation model,我們理論上估計多重干擾與同時傳輸與合適的SINR。對於給定的SINR值,我們隨後確定適當的Data Rate傳輸可以支持。衍生的分析模型,能夠平衡兩個矛盾的因素:Spatial Reuse和可支持Data Rate。由理論分析結果發現,Protocol capacity並非單調增加/遞減的Tcs函數。相反,它表現一個傳輸點可以有多個Tcs選擇。此外,可以進一步選擇適當的backoff timer,雖然其效果不比直接調整 physical carrier sense好













2015年10月14日 星期三

Link-level Measurements from an 802.11b Mesh Network

Link-level Measurements from an 802.11b Mesh Network
   這篇paper主要在38-node unban multi-hop 802.11b network下,分析封包遺失的原因,這個networkCambridge Massachusetts,範圍包含六千平方公尺,每一個node代表一棟上面裝有omni-directional antenna的房子。利用Distribution of Delivery Probabilities去分析影響packet loss的原因,主要探討的因素依序為Time Variation of Loss RateEffect of Signal-to-Noise RatioEffect of Transmit Bit-RateInterference from 802.11 SourcesEffect of Multi-path
Time Variation of Loss Rate:
   有四條delivery probabilities 50% link被選出來做為Time Variation of Loss Rate的分析,如圖一,圖越下面variation越小。這邊的deviation計算利用Allan deviation= ,圖二為這四條link在不同時間間隔所計算出的Allan deviation,可以發現時間間隔越大,Allan deviation會被平滑的越小。圖三是ALL LINKAllan Deviation of Loss Rate的累積圖表,可以發現High Deviation of Loss Rate占的比率很少,說明大部分的Loss Rate都是穩定的。

                                                                              圖一                    
                                                                                                                                                       圖二                    
                                                                                                                                                      圖三
Effect of Signal-to-Noise Ratio:
   The Prism 2.5 specificationpacket error rate 介於10% and 90%時,range of S/N 3dB。圖四,是由模擬器所模擬出S/NDelivery Probability的影響。說明S/N對於Delivery Probability有正向的作用,但由圖五在dB>3的情況下,還是有蠻多的packet的情況出現,說明S/N不是造成packet loss的唯一因素。
                                                                                    圖四                       
                                                                                                                                                        圖五
Effect of Transmit Bit-Rate:
   圖六代表每一個link在不同的transmit bit-ratethroughput,由這個圖可以發現link11Mbit/s,儘管他的loss rate5.5Mbit/s還高,但是throughput卻比較高,但這也不代表高的11Mbit/s就擁有高的throughput,還是不少1Mbit/Slinkthroughput11Mbit/s還要多。由以上的現象我們可以觀察到,bit-rate的選擇不能直接地去預測,而是必須徹底在每一個bit-rate去測量他的throughput

                                                                                    圖六
Interference from 802.11 sources
    這邊在探討在同一個channel或是overlapping channel發送不是roofnet的封包(Foreign Packets),是否會影響RoofnetLoss Rate,由實驗發現答案是不會的,由圖七可以發現,Foreign Packets/Second的大小並沒有和Lost Packets/Second有任何明顯的相關性。
                                                                                 圖七
Effect of multi-path:
  這一個接收系統可以分辯出到達時間差小於250nanoseconds original signal reflected signal,所以只要時間差小於250 nanoseconds就對original的接收不會造成太大的影響,但在實際上reflect signaldelay大都大於microsecond。以圖八來看說明reflected sign確實造成了packet loss這是一個two-ray的模擬情況,這個例子傳輸速率是1Mbps,在Delay1 microseconds下,模擬出的reflected signal被衰減9dB,造成10%packet loss rate,率減為7dB則造成90%packet loss rate但我們也可以發現只要delay時間夠小,reflected signal其實不會對original signal造成什麼影響,接下要問那什麼會影響delay的時間,答案是可以說是傳輸距離,雖然他不是直接的原因,但因為傳輸距離夠長,就可以產生足夠長的delay去影響original signal的接收。由圖九可以看出傳輸距離愈長,則delivery probabilities愈小。

                                                                              圖八
                                                                              圖九

這篇PAEPERroofnetnetwork下探討了許多影響傳輸的原因,S/N和傳輸的距離確實會造成一些影響,但是卻不是主要或是直接的因素,主要的因素在於multi-path fading,因此在一個城市裡roofnet networkmulti-path是非常需要去解決的問題。