第三章 在理想通道環境下透過 Contiki OS 評估 6LoWPAN 之效能
3.3 理想通道環境下之效能分析結果
3.3.4 在 6LoWPAN 中 IPv6 的 UDP 封包傳輸速率
Throughput 指的是封包可傳送之最大速率,而 Goodput 指的是實際可用之資 料位元的傳輸速率,在此我們主要是計算單位時間內所能傳輸之 IPv6 UDP
Payload 之傳輸速率[22]。本論文透過計算 6LoWPAN 的 Throughput 與 Goodput 分析不同長度的 IPv6 MTU 對於 6LoWPAN 傳輸速率的改變,由於 IPv6 的封包在
Transmission Times (micro seconds) one hop transmission
Payload size (bytes)
28
包傳輸,所以我們將測試不同大小的封包對於 6LoWPAN 效能之影響。
在封包的傳輸我們使用 Client/Server 主從架構式的 UDP 封包傳輸,用這種方 法可使得測量出的效能更加準確,在封包傳輸前記錄開始傳輸時間,在封包抵達 目的地後再記錄傳輸結束時間,透過 sniffer 所擷取到的封包來實際計算傳輸封包 數量與長度,經由實際傳送的封包數除以其時間差,即可計算出 6LoWPAN 的
Throughput。而在 Goodput 的計算則是將實際傳輸之 IPv6 資料量大小除以封包傳 輸之時間差所計算出來。
在圖 3-5 中,我們可以看到透過傳輸時間所計算出來的 Throughput,當 Payload 越大時將會有更好的 Throughput 表現,在一開始只有 1 bytes 的 Payload 時,其效 率是非常的低,這是因為實際傳輸的有效 Payload 只有 1 bytes,但其對應之 Header 將佔大部分的封包內容,所以計算出的效率較差。但在 UDP Payload 趨近於所能 傳輸之最大負載大小時,算出來的 Throughput 將會較佳,圖中我們也可以發現在
Payload size 為 91 bytes 時其效率就往下降了,90 bytes 的 payload size 為單一 IPv6 封包在 IEEE 802.15.4 下不切割封包所能承載之最大量,當多 1 個 byte 的資料量 時,將導致 IPv6 封包被切割,IEEE 802.15.4 封包從 1 個變為 2 個,且第二個片 段封包之使用量並沒有達到最大的利用率,所以其 Throughput 才會比 90 bytes 的 IPv6 資料量傳送來的低。
在圖 3-6 中,同樣可以明顯看出 IPv6 MTU 越大其效能將更為優異,而在 UDP
29
Payload size 為 91 bytes 時 Goodput 就明顯下降,其原因一樣是因第二組片段封包 並沒有完全填滿所導致,相同的在傳輸的 IPv6 UDP Payload 越大時,其計算出來 的 Goodput 相對的有比較優異的表現。
圖 3-5、The Throughput in 6LoWPAN in single hop transmission 0
30000 60000 90000 120000 150000 180000 210000 240000
1 90 91 176 272 464 656 848 1040 1232
Throughput (bps)
one hop transmission
Payload size (bytes)
30
圖 3-6、The Goodput in 6LoWPAN in single hop transmission
3.4 在理想通道環境下透過 Contiki OS 評估 6LoWPAN 之效能分 析
本章節的主要目的於利用 Contiki OS 實際建構 6LoWPAN 網路環境,實際利 用 IPv6 UDP 封包計算在無線感測網路下,IPv6 封包的端對端傳輸效率,且經由 無線封包截取器(sniffer),觀察 IPv6 MTU 大小與 Fragment 之分割數目來探討對 於網路效能之影響,並分析 6LoWPAN 所能傳輸之最大 IPv6 MTU 與 Fragment
one hop transmission
Payload size (bytes)
31
高的 Throughput 與 Goodput,在 IPv6 MTU 較小時,傳輸之效能會比較差,這是 因為在後續的片段封包中所能負載的資料量大小比第一個片段封包多。實際上
IP6 MTU 越大將會導致 IPv6 封包遺失率越大,由 1 個片段封包與 13 個片段封包 所組成的 IPv6 封包,將有不同的封包傳輸成功率,所以在下個章節將針對非理 想通道環境下透過 Contiki OS 評估 6LoWPAN 之效能,將遺失率考慮進去,將會 使我們的測試結果更佳的完整。
32
第四章
在非理想通道環境下透過 Contiki OS 評估 6LoWPAN 之效能
在第三章節已清楚地介紹在理想通道環境下透過 Contiki OS 評估 6LoWPAN 之效能,在本章節將以相同的測試平台,在非理想通道環境下透過 Contiki OS 評 估 6LoWPAN 之效能,並且將測試不同的 RSSI 環境,對於封包成功傳輸率之影 響,且將測試在多跳環境下 6LoWPAN 之傳輸效能。
4.1 非理想通道環境下之封包分析結果
2.4GHz 頻帶是一個被普遍使用的頻帶,因為此頻帶之頻率範圍為 2.400 ~ 2.4835 MHz ISM (Industrial, Scientific and Medical) 無線頻段,其中如 Wi-Fi、
Bluetooth、Zigbee 等技術均是使用於 2.4GHz 頻帶並有相當大的重疊的部分,所 以本研究考慮在具有同頻干擾的非理想通道之環境下,對 6LoWPAN 效能進行分 析。
4.1.1 RSSI with packet successful rate
本章節將環境之因素與 6LoWPAN 封包傳輸成功率進行分析,利用 Contiki OS 建構 6LoWPAN 網路測試環境,透過計算 IPv6 UDP 封包在無線感測網路下的端 對端傳輸機率,透過統計端與端之間之 IPv6 UDP 封包實際接收的數量,計算出 不同無線訊號品質環境下之 IPv6 封包成功接收率(IPv6 packet sucessful rate),透 過控制傳送端與接收端間之傳輸距離來改變接收端之封包接收訊號強度值(RSSI),
33
經由分析不同 RSSI 環境下之 IPv6 packet sucessful rate,將有助於最佳化
6LoWPAN 在非理想通道環境下之效能。本研究設計一個外部時鐘來達到各設備 間的時間同步,用於精確紀錄封包收、發之時間差距,並透過 sniffer 分析在無線 感測網路中傳輸的封包,觀察 UDP 封包大小與 Fragment 之分割數目來探討對於 網路效能之影響,精確計算出 6LoWPAN 的傳輸效率,同時分析不同長度之 UDP 封包對於 6LoWPAN 傳輸效率之影響。
圖 4-1 為使用 1,000 筆 IPv6 UDP 封包傳輸下記錄統計其封包遺失率(packet loss rate),透過 end-to-end 的 IPV6 UDP 封包傳輸,統計傳送端傳輸 1,000 筆 IPv6 UDP 封包後,以接收端實際接收到的 IPv6 UDP 封包的數量來計算封包遺失率。
另外,透過改變傳送端與接收端間之傳輸距離的 RSSI 值以及傳送不同大小的 IPv6
UDP 封包,可了解 IPv6 封包長度對於 packet successful rate 之影響。從圖 4-1 中 可看到當 RSSI 值越來越差時,其 packet loss rate 將會升高,當 RSSI 為 -91dBm 時,packet loss rate 將會大幅提升,且當 RSSI = -80dBm 的環境下,傳輸 1,000 筆 IPv6 UDP 封包其 packet loss rate 均為 0,因此我們將以 RSSI = -80dBm 至 RSSI = -91dBm 作為本實驗的訊號強度的實驗範圍。除了紀錄 RSSI 變化外,本研究也利 用不同長度的 IPv6 UDP packet 實驗在不同 RSSI 環境下對於 packet loss rate 之影 響。從圖 4-1 可以發現,當 IPv6 UDP packet 越長時,代表此一 IPv6 UDP 封包將 分割至更多的片段(Fragment)時,其 packet loss rate 會相對地提昇,透過實驗結果
34 4.1.2 Performance in difference RSSI
圖 4-2 為在不同接收訊號強度下的 Throughput,其計算方法如方程式(1)所示。
在 RSSI 環境較好的環境下,傳送越大的 IPv6 MTU 擁有較好的 Throughput,但 是漸漸地在 RSSI = -84 的環境下時,傳送越大的 IPv6 MTU 並不一定擁有較好的
Packet Loss Rate
1 fragment
35
Throughput。當 IPv6 UDP 封包被切割成 9 個片段封包時,反而有較好的 Throughput,
而在 RSSI = -86 以下的環境中時,傳輸較少的 IPv6 MTU 封包其 packet loss rate 較小 Throughput 將越大。
圖 4-3 為在不同接收訊號強度下的 Goodput,,計算方法如方程式(2)。在 RSSI 較好的情況下其 Goodput 還是維持較大的 IPv6 MTU 擁有較好的 Goodput,但當 為 RSSI = -84 時,IPv6 UDP 封包被切割成 9 個片段封包將有較好的 Goodput,而 在 RSSI = -86 以下的環境中時,傳輸較少的 IPv6 MTU 封包 packet loss rate 較小,
反而有較好的 Goodput。因此依以上的實驗結果顯示,在非理想通道環境下傳送 越大的 IPv6 MTU 並不一定擁有較好的效能,因此本研究將提出基於接收訊號強 度動態調變之封包傳送機制,依照接收訊號強度選擇較適當的 IPv6 MTU 長度,
來提升 6LoWPAN 之整體傳輸效能。
𝑇ℎ𝑟𝑜𝑢𝑔ℎ𝑝𝑢𝑡𝑅𝑆𝑆𝐼 =Transmission Packet Size
Transmission Delay × 𝑃𝑎𝑐𝑘𝑒𝑡 𝑆𝑢𝑐𝑐𝑒𝑠𝑠𝑓𝑢𝑙 𝑅𝑎𝑡𝑒 ... (1)
𝐺𝑜𝑜𝑑𝑝𝑢𝑡𝑅𝑆𝑆𝐼 = IPv6 MTU
Transmission Delay× 𝑃𝑎𝑐𝑘𝑒𝑡 𝑆𝑢𝑐𝑐𝑒𝑠𝑠𝑓𝑢𝑙 𝑅𝑎𝑡𝑒 ... (2)
36
37
圖 4-4、Contiki 6LoWPAN 多跳傳輸測試環境
4.2.1 6LoWPAN 封包之格式
單一 IPv6 UDP 封包在多跳傳輸之分析結果如圖 4-5 與圖 4-6 所示,透過在單 跳中單一封包所能傳輸之最大 IPv6 MTU 為測試範例,從圖 4-6 中很明顯的看出,
當中間節點的轉傳封包時,將加入相對應的路由資訊,因此在圖 4-6 (a)中可以看 到 IPv6 表頭從 12 bytes 變為 21 byte,且由於原單一的 IPv6 UDP 封包分為二組片 段封包(Fragment),將使第二組 IEEE 802.15.4 封包加入 Fragments 表頭,以利收 到片段封包後進行 IPv6 封包的重組,除了第一的片段封包帶有 IPv6 表頭以外,
38
其於片段封包將不具有 IPv6 片段封包,從此得知,當傳輸的 IPv6 資料量越大時,
封包利用率將會提升,因此會以較好的傳輸效率。
圖 4-5、The single 6LoWPAN packet in first hop
(a) The first 6LoWPAN fragment
(b) The second 6LoWPAN fragment
圖 4-6、The single 6LoWPAN packet in second hop
為 了 使 片 段 封 包 能 有 較 大 的 封 包 利 用 率 , 因 此 本 實 驗 將 進 一 步 分 析 6LoWPAN 在多跳傳輸時的封包結構。圖 4-7 分析單一 IPv6 封包在多跳情況所能 傳輸之最大 MTU,此封包包含 Header 總長為 116 bytes,其中 payload 為 81 bytes,
經過多跳後會多加 Source MAC address 與 hop count 數。傳輸的封包中各 Header 分別為:IEEE 802.15.4 MAC Header 為 21 bytes,IPv6 Header 則為 12 bytes。從圖 4-8 可以發現經過多跳後其增加了 8 bytes 的 Source MAC address 以及 1 bytes hop
FCS
IEEE 802.15.4 header (21 bytes)
IPv6 header (12 bytes) Payload size (90 bytes) 2 bytes
FCS
IEEE 802.15.4 header (21 bytes)
IPv6 header (21 bytes) Payload size (72 bytes)
Fragments header (4 bytes) 2 bytes
FCS
IEEE 802.15.4 header (21 bytes) Payload size (18 bytes)
Fragments header (5 bytes) 2 bytes
39
count,IPv6 header 則變為 21 bytes,增加來源節點之 MAC address 是為了使傳輸 之封包可辨識其為從何而來,經過第二跳後已增加來源節點之位址,所以從圖 4-9 中可看到,第三跳時後續的節點則不會再增加其於資訊,透過此次封包分析可了 解經過多跳時會再增加路由資訊,對於後續 6LoWPAN 效能分析有非常大之幫 助。
圖 4-7、The optimal single 6LoWPAN packet in first hop
圖 4-8、The optimal single 6LoWPAN packet in second hop
圖 4-9、The optimal single 6LoWPAN packet in third hop 4.2.2 6LoWPAN 中使用 IPv6 的 UDP 封包傳輸
本次之研究將對於兩種片段封包做分析,第一種為第一跳之片段封包數目在 經過第二跳時會因為轉傳而多加一個片段封包之分析,第二種為經過本研究最佳
40
1040 及 1232 bytes 的資料量做傳送,其分別代表單一跳時 1、2、3、5、7、9、11 及 13 個 Fragments 所能承載之最大之資料量,但是經過中間節點轉傳後,其將變 為 2、3、4、6、8、10、12 及 14 個 Fragments,而 1232 bytes 即為本研究所能傳 輸之最大 IPv6 MTU 大小。
表 4-1、Fragments of IPv6 UDP packets in 6LoWPAN in multi-hop IPv6 Packet
Payload bytes
Fragments in one hop transmission
Fragments in second hop transmission
41
表 4-2 為第二種之封包傳輸分析,IPv6 的資料量在最一開始則有進行最佳化,
於 IPv6 MTU 中有預留中間節點轉傳將會增加來源節點 MAC 位址的空間,所以 在第二跳時雖有增加封包量,但不至於使片段封包數量再增加一個,本研究透過
81、168、264、456、648、840、1032 及 1224 bytes 的資料量做傳送,其分別代 表經過轉傳後 1、2、3、5、7、9、11 及 13 個 Fragments 所能承載之最大之資料 量,在此最佳化的情況下,IPv6 MTU 最多只能傳輸 1224 bytes 的資料量。
表 4-2、optimal Fragments of IPv6 UDP packets in 6LoWPAN in multi-hop IPv6 Packet
Payload bytes
Fragments in one hop transmission
Fragments in second hop transmission 傳輸的時間會隨著傳輸的 UDP Payload 越大而增加,尤其當 Fragment 數量增加時,
傳輸延遲時間將會有更明顯的增加,此結果對於單跳或是二跳都有相同的結果,
42
因為當 Fragment 數量增加時,實際上傳輸之 IEEE 802.15.4 封包量將以倍數成長,
從圖 4-10 中我們也可以發現單跳與二跳的傳輸時間有非常大的差異,二跳傳輸時
從圖 4-10 中我們也可以發現單跳與二跳的傳輸時間有非常大的差異,二跳傳輸時