• 沒有找到結果。

行動無縫式 TCP 連線環境架構之研究

N/A
N/A
Protected

Academic year: 2022

Share "行動無縫式 TCP 連線環境架構之研究 "

Copied!
59
0
0

加載中.... (立即查看全文)

全文

(1)

行動無縫式 TCP 連線環境架構之研究

研究生:林義欽 指導教授:吳毅成

國立交通大學 資訊工程學系

摘要

隨著通訊產業的發達,目前已經發展出很多套無線通訊的技術,

由於這些技術遵循的規格皆不同,造成互有利弊的情況,如:WLAN 的傳輸率較高,但是訊號覆蓋範圍較小;GPRS 的訊號覆蓋範圍較廣,

但是傳輸率較低,而且傳輸資料需要額外的費用。

本論文藉著結合 WLAN 和 GPRS 的優點提供給使用者一個更具 效益的 TCP 連線環境。當使用者建立 TCP 連線時,此連線環境會根 據使用者目前所處的環境條件,去動態選擇無線通訊的技術使得資料 的傳輸能夠達到最高的傳輸率和最低的費用,並且盡量降低在轉換技 術時出現的延遲時間。

(2)

The Study of a Mobile Seamless TCP Connection Framework

Student: I-Chin Lin Advisor: I-Chen Wu

Institute of Computer Science and Information Engineering National Chiao Tung University

Abstract

With the rapid development of communication industry, there are many technologies developed to do wireless transmission. Because they all follow different standards, they have their own advantages and disadvantages. E.g. WLAN has higher transmission rate but shorter transmission distance, GPRS has longer transmission distance but lower transmission rate, in addition, you need to pay extra billing cost while you use GPRS to transmit data.

In the thesis, we provide a TCP connection environment with better benefit by combining the advantages of WLAN and GPRS. When a user builds a TCP connection, this connection environment will dynamically choose a wireless technology according to the environmental condition of the user to guarantee the highest transmission rate and the lowest billing cost while transmitting data. This connection environment also needs to decrease the delay time while switching wireless technologies.

(3)

誌謝

首先,我要感謝的人是我的指導教授,吳毅成博士,在我寫這篇 論文的期間,給了我相當多的指導和愛護,由於他的寶貴意見及教 導,這篇論文才能夠順利的完成。

接下來要感謝的是實驗室的徐健智、汪益賢、林秉宏等學長和林 一平老師實驗室的蔡孟勳、賴建利同學,這篇論文的許多設計和架構 都是和他們不辭辛勞教導我透過不斷的討論、修正而完成的。同時,

也要感謝實驗室的同學陳智文、朱俊欣、陳家齊,和所有的學弟妹們 在我念研究所這段時間內所給予的幫助及鼓勵,也因為有他們的陪 伴,讓我的生活充滿了歡樂。

最後,要感謝的是我的父母,在我求學生涯上所給我的幫助及照 顧,不管是否遇到挫折,不論成功或失敗,總是默默的支持我,給我 最大的信心、動力。謹以此論文,獻給我最摯愛的家人。

(4)

目錄

摘要... i

Abstract ... ii

誌謝... iii

圖目錄... vi

表目錄... viii

第一章 緒論...1

1.1 無線通訊技術 ...1

1.2.1 WLAN...2

1.2.2 GPRS ...4

1.2 無線上網的裝置 ...5

1.3 相關研究 ...7

1.3.1 Mobile IP ...8

1.3.1.1 Mobile IP 架構 ...8

1.3.1.2 Mobile IP 封包傳送流程 ...9

1.3.2 透過 Mobile IP 整合 WLAN 和 GPRS ...10

1.3.2.1 整合 WLAN 和 GPRS 的第一個方法 ...11

1.3.2.2 整合 WLAN 和 GPRS 的第二個方法 ...12

1.4 研究目標 ...13

1.5 論文大綱 ...14

第二章 架構的設計 ...15

2.1 有線及無線網路系統架構 ...15

2.2 無縫式 TCP 連線環境架構 ...16

2.3 無縫式 TCP 連線環境設計 ...19

2.3.1 Server Wrapper ...19

2.3.1.1 Server Wrapper 的設計 ...20

2.3.1.2 Server Wrapper 連線轉移流程 ...21

2.3.2 Client Wrapper...24

2.3.2.1 Client Wrapper 連線轉移策略...25

2.3.2.2 Client Wrapper 的設計...26

2.3.2.3 Client Wrapper 連線轉移流程...27

(5)

第三章 實作及相關問題探討 ...36

3.1 行動裝置 ...36

3.2 無線網路偵測實作 ...36

3.3 Socket 和網路介面之間的問題 ...40

第四章 實驗及特性分析 ...43

4.1 實驗流程 ...43

4.2 實驗結果及特性分析 ...45

第五章 結論與未來發展 ...49

(6)

圖目錄

圖 1-1 WLAN架構圖 ...3

圖 1-2 使用WLAN時轉換到不同網域中的AP ...3

圖 1-3 GSM架構圖 ...4

圖 1-4 GPRS架構圖 ...5

圖 1-5 支援無線上網的裝置: ...6

圖 1-6MOBILE IP架構圖 ...9

圖 1-7 在HOME NETWORK中傳送接收封包的路徑 ...9

圖 1-8 三角繞送(TRIANGULAR ROUTING) ...10

圖 1-9 傳送封包流程圖(WLAN)...12

圖 1-10 傳送封包流程圖(GPRS)...12

圖 2-1 利用有線網路建立TCP連線之架構圖 ...15

圖 2-2 使用者利用WLAN技術建立TCP連線之架構圖...16

圖 2-3 使用者利用GPRS技術建立TCP連線之架構圖...16

圖 2-4 無縫式TCP連線環境的SCENARIO...17

圖 2-5 含有包裹器的無縫式TCP連線環境架構圖 ...18

圖 2-6 加上INTERMEDIATE SERVER的無縫式TCP連線架構圖 ...19

圖 2-7 SERVER WRAPPER...19

圖 2-8 SERVER WRAPPER(客戶端正常連線) ...21

圖 2-9 COUNTER和未接到的封包 ...22

圖 2-10 SERVER WRAPPER轉換前的狀態 ...22

圖 2-11 SERVER WRAPPER連線轉移流程圖一 ...23

圖 2-12 SERVER WRAPPER連線轉移流程圖二 ...23

圖 2-13 SERVER WRAPPER連線轉移流程圖三 ...24

圖 2-14 SERVER WRAPPER轉換後的狀態 ...24

圖 2-15 CLIENT WRAPPER...25

圖 2-16 建立連線(WLAN和GPRS都可以使用)...27

圖 2-17 建立連線(只有WLAN可以使用)...28

圖 2-18 建立連線(只有GPRS可以使用)...28

(7)

圖 2-19 從WLAN轉移到GPRS之轉移前狀態...29

圖 2-20 從WLAN轉移到GPRS流程圖一 ...29

圖 2-21 從WLAN轉移到GPRS流程圖二 ...30

圖 2-22 從WLAN轉移到GPRS之轉移後狀態...30

圖 2-23 從GPRS轉移到WLAN之轉移前狀態...31

圖 2-24 從GPRS轉移到WLAN流程圖一 ...31

圖 2-25 從GPRS轉移到WLAN流程圖二 ...32

圖 2-26 從GPRS轉移到WLAN流程圖三 ...32

圖 2-27 從GPRS轉移到WLAN之轉移後狀態...33

圖 2-28 維持WLAN連線之轉移前狀態 ...33

圖 2-29 維持WLAN連線之流程圖一 ...34

圖 2-30 維持WLAN連線之流程圖二 ...34

圖 2-31 維持WLAN連線之流程圖三 ...35

圖 2-32 維持WLAN連線之轉移後狀態 ...35

圖 3-1ANEXTEKSP230 ...36

圖 3-2WLAN判定圖 ...37

圖 3-3 函式庫 “IPHELPER”...38

圖 3-4NDIS和DRIVER NDISUIO ...39

圖 3-5 提供網路偵測功能的DLL檔案:NETWORKDETECTOR.DLL...39

圖 3-6 開啟單一服務時的ROUTING TABLE...41

圖 3-7 同時開啟兩個服務時的ROUTING TABLE...41

圖 3-8 修改之後的ROUTING TABLE...42

圖 4-1TEST CLIENT PROGRAM和TEST SERVER PROGRAM...43

圖 4-2 五個實驗流程 ...44

圖 4-3CASE 1 之流程圖 ...45

圖 4-4CASE 2 之流程圖 ...45

圖 4-5CASE 3 之流程圖 ...46

圖 4-6CASE 4 之流程圖 ...47

(8)

表目錄

表 4-1WLANÆGPRS 延遲時間...46 表 4-2GPRSÆWLAN 延遲時間...47 表 4-3WLAN(網域 1)ÆWLAN(網域 2)延遲時間 ...47

(9)

第一章 緒論

這幾年來,隨著通訊產業的蓬勃發展,無線通訊技術也迅速推 進。雖說在安全性的考量下有些技術仍未到達成熟之境,但是無線通 訊技術的應用已經越來越普遍,從多年前的手機無線對談到現在的無 線上網存取資料、資訊家電應用等等都是無線通訊技術的應用。目前 已經發展出很多套無線通訊的技術,因為彼此遵照不同的規格,導致 互有利弊的情況。若是可以結合多種無線通訊技術的優點,如 WLAN 的高傳輸率、GPRS 的廣傳輸範圍等等,相信可以提供給使用者一個 比原先更具效益的 TCP 連線環境。以下會先介紹多種無線通訊技術 和行動裝置,然後說明相關研究、研究目標和論文大綱。

1.1 無線通訊技術

目前已經發展出很多套的無線通訊技術,像是 GSM、GPRS、

IrDA、Bluetooth 和 WLAN,以下會簡單介紹這幾種目前較為普遍的 無線通訊技術:

‹ GSM (Global System of Mobile Communications)

GSM 為目前傳輸手機語音最為普遍的一種技術,它利用無 線電以電路交換(circuit-switched)的方式傳輸資料[1]。電路 交換的特性為只要一跟網路連接即使目前沒在傳送資料仍 然會佔據頻寬並持續收費,因為這些特性並不適合拿來建 立 TCP 連線,所以本論文不考慮使用此技術。

‹ GPRS (General Packet Radio Service)

GPRS 為在 GSM 系統上發展出的一種服務,此服務適合用 來傳輸數據資料。它改變了 GSM 系統中電路交換的方式改

(10)

用封包交換(packet-switched)的方式去更有效率地共享頻寬 [1],封包交換並不像電路交換會一直佔據著頻寬,它只有 在傳輸資料時才會消耗頻寬。

‹ IrDA (Infrared Data Association)

利用紅外線傳輸資料的一種無線通訊技術。這技術有一個 致命的缺點,那就是在兩個裝置之間不可以存在障礙物,

基於這個限制本論文不考慮使用此技術。

‹ Bluetooth

Bluetooth 之名源自十世紀的丹麥王,利用無線電傳輸資 料,但是由於其傳輸範圍較短,大約只有 10 公尺,所以此 技術常用在與周邊配備做無線連接,像是 Bluetooth 印表 機、Bluetooth 耳機等等,並不適合拿來建立 TCP 連線,基 於這原因本論文不考慮使用此技術。

‹ WLAN (Wireless Local Area Network)

遵照 IEEE 制定的 802.11 家族標準,也是利用無線電傳輸 資料,傳輸的範圍在 50 公尺到 150 公尺之間,適合做中距 離的無線上網[2]。

根據上面介紹,WLAN 和 GPRS 技術比較適合給 TCP 無線應用 程式使用,所以本論文考慮結合 WLAN 和 GPRS 技術去提供一個更 具效益的 TCP 連線環境,以下會比較詳細介紹這兩種技術。

1.2.1 WLAN

IEEE(Institute of Electrical and Electronics Engineers)在 1997 年公

(11)

佈了一份無線網路標準-802.11,WLAN 為遵照此標準發展出來的技 術。目前 WLAN 產品最普遍遵循的為 802.11b,它跟 802.11 相似,

但是傳輸率更高,相關 802.11 系列的標準還有:802.11a,802.11g 在這 就不多加介紹。WLAN 的架構如圖 1-1,行動裝置利用 AP(access point) 跟 Internet 相連,在同一各網域中可以同時擁有多個 AP 。

AP1 AP2 Subnet1

AP3 Subnet2

Internet

圖 1-1 WLAN 架構圖

WLAN 的特性如下: ( IEEE 802.11b )[2]

‹ 傳輸率高達 11Mbps。

‹ 正常來說,傳輸資料不需要額外的付費。

‹ 傳輸距離在室內為 50m,室外為 150m。

‹ 在做 TCP 連線時,會因為目前環境的無線訊號太差或是轉 換到不同網域的 AP 而損毀連線。圖 1-2 顯示轉換到不同網 域 AP 的情形。

AP1 AP2

Subnet1

AP3

Subnet2

TCP connection is broken because IP changes

Internet

圖 1-2 使用 WLAN 時轉換到不同網域中的 AP

(12)

WLAN 技術目前已經很普遍的架在學校、公司等等機構,由於 它的傳輸距離特性導致使用者活動範圍限制在建築物之內,出了建築 物通常會收不到訊號。此為 WLAN 技術對使用者來說比較大的一個 缺點。

1.2.2 GPRS

由於 GSM 系統的整個連線流程是以電路交換的方式進行,不但 每次重新連線需要繁瑣的撥接步驟,還有以時計費的限制,所以新增 GPRS 技術在既有 GSM 系統上去處理封包數據的傳輸,也就是說,

語音數據部分仍然使用 GSM 系統傳輸,封包數據則利用 GPRS 來傳 輸。要了解 GPRS 的架構必須先了解 GSM 系統的架構,GSM 系統的 架構如圖 1-3,BTS(Base Transceiver Station)為俗稱的基地台,用來接 收 行 動 裝 置 的 訊 號 或 是 發 送 訊 號 給 行 動 裝 置 , BSC(Base Station Controller)為基地台控制器,管理所有無線方面的進階功能如:交遞(行 動裝置從一個基地台轉到另一個基地台)、無線頻道的分配、QOS...

等,MSC(Mobile Switching Controller)則負責將資料路由到別的網路。

BTS BSC MSC

BTS

Telephony Network

圖 1-3 GSM 架構圖

GPRS 技術在 GSM 系統上增加了兩個節點: (1)SGSN(Serving GPRS Support Node),此節點負責數據封包使用者的資料管理,像是

(13)

使用者認證、已傳送的資料量...等。(2)GGSN(Gateway GPRS Support Node),此節點為 GSM 系統對外界網路(Internet)的一個閘道,負責資 料在不同網路之間的傳輸。GPRS 的架構如圖 1-4,BSC 在接到使用 者傳來的資料後,發現此資料為數據封包,便會將它導到 SSGN 再利 用 GGSN 將資料送至 internet[1]。

SGSN GGSN

BTS BSC MSC

BTS

Internet Telephony

Network

圖 1-4 GPRS 架構圖

GPRS 的特性如下:

‹ 傳輸速率只有 170Kbps,跟 WLAN 的 11Mbps 相比有一段 差距。

‹ 傳輸資料需要額外收費(以封包量收費)。

例:台灣大哥大 0 月租型Æ 0.03 元/128bytes[9]。

‹ 傳輸範圍廣大,可高達 10km 之遠,遠勝 WLAN。

目前大部份手機電信業者都已經提供了 GPRS 的服務,讓使用者 可以透過手機利用 GPRS 服務上網。相較於 WLAN,雖然 GPRS 的 傳輸率較低,但是廣泛的傳輸範圍讓使用者擁有較大的移動空間。

1.2 無線上網的裝置

(14)

目前市面上支援無線上網的裝置有很多,大概可以分成三類:

‹ 手機

現在市面上的手機不再是只能用來打電話而已,上網下載 Java 遊戲、手機上網查股票行情…等應用已經很普遍了,

以無線通訊技術來說,現在幾乎很多手機都已經支援 GPRS 技術,例:Motorola T720,如圖 1-5 的(a)。

‹ PDA

除了做記事本之外,利用 PDA 上網查資料,收發 E-mail…

等也已經成為很多社會人士常做的事情,目前在市面上,

也有不少機器同時支援 WLAN 和 GPRS 技術了,例:HP iPAQ H5550,如圖 1-5 的(b)。

‹ Pocket PC Phone

為手機結合一些 PDA 資料處理功能的機器,目前在市面上 已經漸露頭角,同時兼具手機和 PDA 的功能也吸引不少消 費者,通常 WLAN 和 GPRS 技術都會支援。例:AnexTEK SP230,如圖 1-5 的(c)。

Motorola T720

HP iPAQ H5550

AnexTEK SP230

(a) (b) (c)

圖 1-5 支援無線上網的裝置:

(a)手機,(b)PDA,(c)Pocket PC Phone

利用這些無線裝置建立 TCP 連線時,若是只選擇使用 WLAN 技

(15)

術,那 TCP 連線也許會因為使用者正再移動時而損毀;若是只選擇 使用 GPRS 技術,那不但可使用的傳輸率較 WLAN 低而且需要付出 較高的花費。

1.3 相關研究

本論文想要提出一個整合 WLAN 和 GPRS 技術的 TCP 連線環 境,根據高傳輸量和低消費的考量,此環境當 WLAN 可以用時會使 用 WLAN 傳輸資料,WLAN 不可以用時才使用 GPRS 傳輸資料。

「整合」的最大重點在於行動裝置如何在 WLAN 和 GPRS 之間 做「轉移」的動作。先撇開整合兩種技術,只使用 WLAN 也需要做

「轉移」的動作,由於使用者在移動時有可能會改變 IP 位址,所以

「轉移」的動作是必須的。目前已經有一些設計被提出來做 WLAN 的「轉移」,其中一類稱為 routing-based approach,此方法的運作核心 為利用一個代理人(Agent)替行動裝置傳送及接收資料,使用這方法只 需要改變行動裝置,固定主機 (Fixed Host)並不需要做改變。

Mobile IP 就是運用此方法設計出來的一套機制,目前很多在無 線方面的 Mobility 研究都是以 Mobile IP 為基礎來發展[7][8]。關於整 合 WLAN 和 GPRS 這兩種不同技術的方法,目前也已經有人提出 [5][6],其中之ㄧ的做法為利用 Mobile IP 技術去解決使用者行動管理 方面的問題並且透過修改 Mobile IP 去整合 WLAN 和 GPRS[5]。以下 會簡單介紹 Mobile IP 技術及如何透過 Mobile IP 去整合 WLAN 和 GRPS。

(16)

1.3.1 Mobile IP

Mobile IP 是由 IETF 所提出的一個封包路由協議,可以在目前的 IP 架構下不管行動裝置如何移動,無需改變其設定仍然可以保持網路 連線[4],以下會簡單介紹 Mobile IP 的架構和封包傳送流程。

1.3.1.1 Mobile IP 架構

Mobile IP 的架構如圖 1-6,Mobile Host (MH)為常常移動的行動 裝置。Home Network 為對 MH 有管理權的網路,對 internet 上的其他 主機而言,MH 不管移動到哪似乎都是處在 Home Network 中。每台 MH 都會有一個固定且唯一的位址稱做 Home Address,此位址為 Home Network 管理者提供給 MH 的。HA (Home Agent)為在 Home Network 上的一台主機,負責傳送要給 MH 的封包。Foreign Network 為除了 Home Network 之外的其他網路。Care-of-Address 為一個當 MH 目前身處在 Foreign Network 時的暫時位址,由 Foreign Network 管理者提供。FA (Foreign Agent)為在 Foreign Network 上的一台主機,

負責傳送封包到此網路中的 MH。FH (Fixed Host)為跟 internet 相連接 的機器。

(17)

Internet Internet FH1

FA HA

AP AP

MH MH

Foreign Network

Home Network

FH2

圖 1-6 Mobile IP 架構圖

當 MH 接 上 任 一 個 網路 時,必須先判斷其位置是在 Home Network 或是 Foreign Network。MH 可以經由收聽局部的廣播,來達 成這件事,或是主動送出訊息給 Agent。如果 MH 收到由 HA 的廣播,

表示它是在 Home Network,那麼傳輸資料只要經由 Home Address 發 送和接收封包即可,如圖 1-7。但是如果是在 Foreign Network,那麼 它會取得一個 Care-of-Address(通常為此 Foreign Network 中 FA 的 IP address),然後向它所屬的 HA 註冊其目前的位置,有關在 Foreign Network 中封包的傳送和接收會在下一節詳細介紹。

Internet Internet FH1

FA HA

AP AP

MH MH

Foreign Network

Home Network

FH2

圖 1-7 在 Home Network 中傳送接收封包的路徑

1.3.1.2 Mobile IP 封包傳送流程

(18)

考慮 MH 移動到 Foreign Network 的狀況,此時 MH 會透過此網 路中的 FA 向它的 HA 註冊 MH 目前的位置,如果有一台主機 A 想 要傳送封包給 MH 時,所有欲傳送到 MH 的封包,都會由它的 HA 收到。在收到之後,HA 會將此些封包利用 Tunneling 的方式加上 MH 目前所在網路的 FA 位址[15],然後傳送給 FA,再由 FA 將此封包做 反 Tunneling 的動作並傳給 MH。當 MH 想要傳送封包給網路上的某 台主機時,直接利用 Home Address 透過 FA 來傳送即可。這樣的傳送 方 式 , 導 致 由 外 面 傳 送 進 來 的 封 包 會 經 過 另 外 一 個 網 路 (Home Network)造成資料三角繞送(Triangular Routing of Data),如圖 1-8。這 種路徑會造成多餘的延遲時間。當 MH 改變其位置時並且向 HA 註冊 新位置前,所有的封包會送到舊的路徑而遺失。直到註冊成功後,產 生了一個新的 Binding,這時所有的封包才會依循新的路徑來傳送[4]。

Internet Internet FH1

FA HA

AP AP

MH MH

Foreign Network

Home Network

FH2

Triangular Routing

圖 1-8 三角繞送(Triangular Routing)

1.3.2 透過 Mobile IP 整合 WLAN 和 GPRS

在此篇論文中[5],它透過 Mobile IP 的技術提出了兩個整合

(19)

WLAN 和 GPRS 的方法,以下會對這兩個方法做簡單的介紹。

1.3.2.1 整合 WLAN 和 GPRS 的第一個方法

它提出的第一個方法為,將 GPRS 也納入 Mobile IP 中 HA 的管 理範圍,也就是說不管你目前正在使用 WLAN 或是 GPRS,MH 都會 擁有一個 home address 和 HA,當 MH 移動到新的區域就必須要馬上 向 HA 報告它目前的位置,所謂「目前的位置」可以是在 WLAN 中 的位置也可以是在 GPRS 中的位置。所以需要向 HA 報告目前位置的 情況有:

‹ 當 MH 使用 WLAN 時,移動到不同的網路:

在此種狀況下,MH 必須向 HA 報告它目前在 WLAN 的新 位置,MH 會透過 FA 傳送 FA 的 IP address 告知 HA。

‹ 當 MH 使用 WLAN 時,WLAN 不可以使用但是 GPRS 可以 使用:

在此種狀況下,MH 必須向 HA 報告它目前在 GPRS 的位 置,MH 會傳送從 GPRS 網路要到的 IP address 告知 HA。

‹ 當 MH 使用 GPRS 時,發現 WLAN 可以使用:

在此種狀況下,MH 必須向 HA 報告它目前在 WLAN 的位 置,MH 會透過 FA 傳送 FA 的 IP address 告知 HA。

經由不停報告 MH 目前位置的方法,HA 可以處理並傳送所有欲 送往 MH 的封包。圖 1-9 為透過 mobile IP 技術利用 WLAN 傳送封包 的流程圖,圖 1-10 為透過 mobile IP 技術利用 GPRS 傳送封包的流程 圖。

(20)

MH FA HA

Data

Data (Tunneled)

FH Data

圖 1-9 傳送封包流程圖(WLAN)

MH HA

Data (Tunneled)

FH Data

圖 1-10 傳送封包流程圖(GPRS)

使用這個方法只需要修改行動裝置,第一為修改 GPRS Module 使之可以通知 Mobile IP Module 目前可否使用 GPRS 服務;第二為修 改 Mobile IP Module 的註冊流程,讓 HA 可以隨時知道 MH 目前的所 在位置。但是使用這方法有一個缺點,根據圖 1-11,可以看到透過 GPRS 網路傳到 MH 上的資料為 Tunneled 的,所以解 Tunnel 的動作 必須發生在 MH 端,這動作會消耗到行動裝置的電力。

1.3.2.2 整合 WLAN 和 GPRS 的第二個方法

在第一個方法當中,當 MH 透過 GPRS 接收資料時會需要做解

(21)

tunnel 的動作,會造成這動作的原因為 GPRS 架構中並沒有提供給 MH 在 WLAN 中”FA”的功能。為了改善這一點,第二個方法除了需 要做第一個方法的修改之外,它還修改在 GPRS 網路中的 GGSN 擔 任 FA 的角色,並且修改在 GPRS 網路中的 SGSN 去解決在 GPRS 中 三角繞送的問題,細節在這就不詳細說明[5]。使用這個方法最大的 缺點就是要改變在 GPRS 網路中的兩個節點: SGSN 和 GGSN,這是 很不方便的。

1.4 研究目標

本論文的目標為提供給 TCP 應用程式一個較原來更具效益的 TCP 連線環境。由上一節得知,Mobile IP 技術發展在 IP 層,所以透 過 Mobile IP 去整合 WLAN 和 GPRS 對 IP 層以上所有的應用像是 TCP、UDP 等等都可以適用。不過由於 Mobile IP 技術並不普遍,要 做到上述的整合動作必須要自行架設一個 HA 和多個 FA,這對 TCP 應用程式提供者來說非常不方便。而且根據上一節敘述的兩個整合方 法,第一個方法會造行動裝置在使用 GPRS 接收資料時必須自行解 tunnel,這不但會多消耗行動裝置的電力而且會因為傳輸量變多而增 加付費金額(GPRS 為以傳輸量計費);第二個方法則需要修改 SGSN 和 GGSN,這對 TCP 應用程式提供者來說更是遙不可及。所以本論 文提供的連線環境選擇發展在應用層,不使用複雜的 Mobile IP 技術 而是透過在應用層簡單的設計去整合 WLAN 和 GPRS 技術,之後會 稱此環境為無縫式 TCP 連線環境,此連線環境有以下兩個特性:

‹ 動態根據使用者目前所處的環境條件選擇無線通訊的技術 使得資料的傳輸達到最高的傳輸率和最低的費用。

‹ 轉換無線通訊技術的延遲時間必須在可接受的範圍內。

有了此無縫式 TCP 連線環境,使用者可以直接在此環境上面發

(22)

展 TCP 應用程式,不需要關心行動裝置可以支援多少種的無線傳輸 技術就可讓此 TCP 應用程式達到多種異質無線網路無接縫換手的功 能。

1.5 論文大綱

本論文在第一章簡介了一些無線傳輸技術、裝置、相關研究及研 究目標,在第二章會說明無縫式 TCP 連線環境的架構及設計,第三 章會說明一些實做的方法和在實做上碰到的問題,第四章會提出一個 實驗去觀察此環境的特性,最後一章為結論和未來展望。

(23)

第二章 架構的設計

本論文的目標為在應用層透過簡單的設計整合 WLAN 和 GPRS 這兩種無線傳輸技術,藉此增進 TCP 連線環境對行動使用者的效益,

本章節著重在此架構的介紹及設計,首先會介紹使用者利用有線以及 無線網路建立 TCP 連線的系統架構,接下來介紹本論文設計的無縫 式 TCP 連線環境架構,最後會詳細介紹這個架構的設計。

2.1 有線及無線網路系統架構

圖 2-1 為在有線網路上,兩台機器建立 TCP 連線的架構圖,客 戶端機器(Client)和伺服器端機器(Server)都利用有線網路跟 Internet 連接,在這種架構下,兩端機器可以簡單的利用程式建立起一個 TCP 連線。

Client

Client Program

Server

Server Program

TCP Connection

Internet

圖 2-1 利用有線網路建立 TCP 連線之架構圖

若是客戶端機器利用無線網路傳輸資料,那可能有兩種情況:第 一種為利用 WLAN 技術,圖 2-2 為客戶端利用 WLAN 建立 TCP 連 線的架構圖,客戶端機器利用 WLAN 技術跟 Internet 連接,伺服器端

(24)

機器同樣利用有線網路跟 Internet 連接,在這種架構下,兩端機器可 以簡單的利用程式建立起一個 TCP 連線。

Internet

Client

AP Client Program

Server

Server Program TCP Connection

(WLAN)

圖 2-2 使用者利用 WLAN 技術建立 TCP 連線之架構圖

第二種為利用 GPRS 技術,圖 2-3 為客戶端利用 GPRS 建立 TCP 連線的架構圖,跟圖 2-2 一樣,這兩端機器可以簡單的利用程式建立 起一個 TCP 連線。

GPRS

Internet

TCP Connection (GPRS)

Client

Client Program

Server

Server Program

圖 2-3 使用者利用 GPRS 技術建立 TCP 連線之架構圖

2.2 無縫式 TCP 連線環境架構

若是使用者可以同時使用兩種無線傳輸技術,那就代表在客戶端

(25)

機器跟伺服器端機器之間可以存在兩條由不同技術所建立起來的 TCP 連線,依照本論文的目標,WLAN 有著比 GPRS 還要高的優先 權,所以在 WLAN 可以使用的時候就要使用 WLAN 那一條 TCP 連 線,等到 WLAN 無法使用但是 GPRS 可以使用,才使用 GPRS 那條 連線,如圖 2-4:

Internet

Client

AP Client Program

Server

Server Program TCP Connection

(WLAN)

No care GPRS

When WLAN can be used

Internet

GPRS

Client

AP Client Program

Server

Server Program

TCP Connection (GPRS)

When WLAN can not be used, but GPRS can be used

圖 2-4 無縫式 TCP 連線環境的 Scenario

由於在兩端同時可以存在兩條連線,客戶端程式(Client Program) 和伺服器端程式(Server Program)就必須要動態依照優先權高低去管 理這兩條連線。本論文在兩端應用層各發展一個包裹器,利用包裹器 去動態管理這些連線,這樣一來客戶端程式和伺服器端程式就只需要 單 純 的 傳 輸 資 料 , 在 客 戶 端 程 式 中 的 叫 做 客 戶 端 包 裹 器 (Client Wrapper,之後稱做 CW),負責根據目前環境動態選擇一條連線傳輸 資料;在伺服器端程式中的叫做伺服器端包裹器(Server Wrapper,之 後稱做 SW),負責根據客戶端的決定動態選擇一條連線傳輸資料。圖 2-5 為加入包裹器之後的架構圖,這些包裹器會去替兩端程式管理由

(26)

無線通訊技術建立的 TCP 連線,利用有線網路建立的 TCP 連線一樣 由兩端程式控管。

Internet

GPRS

Client

AP Client Program

Client Wrapper

Server

Server Program

Server Wrapper

2 TCP Connections

圖 2-5 含有包裹器的無縫式 TCP 連線環境架構圖

但是在這有一個考量:若是想要在伺服器程式端中加上 SW 必須 要改變伺服器端的程式,伺服器端的程式有時並不應該去改變,因為 伺服器端程式通常需要同時服務利用有線及無線網路連接的使用 者。基於這理由捨棄了將 SW 加在伺服器端程式的想法,在本論文中 使用了一個中繼伺服器(Intermediate Server,之後稱做 IS)去服務利用 無線網路連接的使用者。IS 為一台利用有線網路跟 Internet 連接的機 器,它負責服務利用無線網路連接的使用者並替兩端傳輸資料,並將 原本的 SW 搬移到 IS 中,SW 會管理兩條和客戶端之間的連線,當然 兩端原本的有線 TCP 連線一樣由兩端程式控管。改良後的無縫式連 線架構圖如圖 2-6:

Internet

GPRS

Client

AP Client Program

Client Wrapper

Server

Server Program WLAN

GPRS

Wired

Intermediate Server

Gateway Program Server Wrapper

Server Wrapper

(27)

圖 2-6 加上 Intermediate Server 的無縫式 TCP 連線架構圖

2.3 無縫式 TCP 連線環境設計

要實作上述的無縫式 TCP 連線環境,本論文的設計有兩個主要 的重點: SW 和 CW,以下會針對這兩個包裹器做詳細的介紹。

2.3.1 Server Wrapper

由於客戶端會因為目前環境因素動態選擇連線傳輸資料,IS 必須 要知道客戶端目前使用哪一條連線,所以 SW 最主要的功能就是順應 客戶端的決定動態的轉換連線替客戶端和伺服器端傳送資料。圖 2-7 為 SW 在架構中的位置。

Internet

GPRS

Intermediate Server

Client

AP Client Program

Client Wrapper

Server

Server Program Gateway Program

Server Wrapper

圖 2-7 Server Wrapper

(28)

2.3.1.1 Server Wrapper 的設計

為了要順應客戶端動態所選擇的連線改變,SW 為每一個客戶端 管理兩組連線:

‹ 第一組為在客戶端和 IS 端之間的主要連線,裡面只有一個 socket 稱做 clientMaster。

‹ 第二組為在客戶端和 IS 端之間的備份連線,稱做 clientSlaves,裡面可以有很多個 sockets。

IS 會不停的接受客戶端的連線,對每一個客戶端而言,第一次連 線會被當做 clientMaster,之後其他的連線都會被加進 clientSlaves 這 組連線中當作是備份連線。所以當客戶端正常連線,也就是沒有做連 線轉換動作時,SW 會做兩件事情,如圖 2-8:

‹ 替客戶端和伺服器端傳送資料,資料傳送路徑為從

clientMaster 讀入資料寫到伺服器端和從伺服器端讀入資料 利用 clientMaster 寫到客戶端。

‹ 監視在 clientSlaves 裡面的備份連線等待客戶端做連線轉 換,由於 SW 要順應客戶端動態的改變,它不會自動關掉 存在 clientSlaves 中的連線,關掉連線需要由客戶端做,所 以 SW 發現在備份連線中有連線被客戶端關掉了才會將此 連線從 clientSlaves 中移除。

(29)

Internet GPRS

Intermediate Server

Client

AP Client Program

Client Wrapper

Server

Server Program Gateway Program

Server Wrapper clientMaster clientSlaves

Message flow Monitor Sockets in clientSlaves

圖 2-8 Server Wrapper(客戶端正常連線)

2.3.1.2 Server Wrapper 連線轉移流程

接下來會說明如何處理客戶端想要轉移連線的狀況,在說明 SW 如何面對客戶端轉移連線要求之前,必須先解決一個問題,那就是在 轉移連線時,雙方封包會因為以下兩個原因遺失:

‹ 客戶端所在的環境無線訊號太差,導致封包在網路中被丟 棄。

‹ 在選擇使用新連線傳輸資料之後,原先利用舊連線傳輸的 封包也許會因為還沒到達而遺失掉。

為了要保證資料的完整性,本論文使用一個緩衝器去儲存所有已 經傳送過的封包,當客戶端想要轉換連線時,藉由交換一個 counter 去做資料的補足,counter 代表自己目前已經接到了多少位元組。資 料補足的流程如下:

1. 利用新連線兩端交換一個 counter

2. 雙方利用從對方傳來的 counter 在緩衝器中取出對方未接到 的封包,如圖 2-9

3. 雙方利用新連線傳送未接到的封包

(30)

Server

Client

Have send

Have gotten

Lost packets

counter

Client

Server

Have send

Have gotten

Lost packets

counter

buffer buffer

圖 2-9 counter 和未接到的封包

用來存放已送出封包的緩衝器,它的容量一定要大於或是等於令 一端遺失的封包量,所以當連線轉移時,如果發現對方未接到的封包 全部都存在緩衝器中那就繼續轉移連線;如果發現對方未接到的封包 超過緩衝器可以容納的範圍就中斷連線。

解決了訊息完整性問題之後,現在來說明 SW 如何處理客戶端的 轉移連線要求,假設客戶端目前狀態為以 A 連線當主要連線,以 B 連線當備份,這時 SW 並不需要知道連線 A 和 B 是利用哪種網路做 連接的,如圖 2-10:

Do not care

Intermediate Server

Client

Client Program

Client Wrapper

Gateway Program Server Wrapper

clientMaster clientSlaves

A B

Internet

Do not

care

圖 2-10 Server Wrapper 轉換前的狀態

當想要將連線 A 轉移到連線 B 時,客戶端會用連線 B 對 SW 送 出一個 counter 代表它現在想要用連線 B 當做新連線傳輸資料,SW 因為一直在監視客戶端的備份連線,所以它會在連線 B 接到對方送 來的 counter,在接到 counter 之後先停止客戶端和伺服器端的訊息傳

(31)

送,如圖 2-11:

Internet

Do not care Do not

care

Intermediate Server

Client

Client Program

Client Wrapper

Gateway Program Server Wrapper

clientMaster clientSlaves

A B 2.Stop transmitting data

1.Read a counter

圖 2-11 Server Wrapper 連線轉移流程圖一

然後利用連線 B 回送自己的 counter 並且傳送客戶端未接到的封 包,如圖 2-12:

Internet

Do not

care Do not

care

Intermediate Server

Client

Client Program

Client Wrapper

Gateway Program Server Wrapper

clientMaster clientSlaves

3.Send a counter back and transmit

lost packet A

B

圖 2-12 Server Wrapper 連線轉移流程圖二

最後將連線 A 和 B 的地位互換然後繼續客戶端和伺服器端的訊 息傳送,如圖 2-13

(32)

Internet

Do not care Do not

care

Intermediate Server

Client

Client Program

Client Wrapper

Gateway Program Server Wrapper

clientMaster clientSlaves

5.Go on to transmit data

4.Exchange positions A B

圖 2-13 Server Wrapper 連線轉移流程圖三

轉換完SW的狀態為以B連線作為主要連線,A連線當作備份,如 圖 2-14:

Internet

Do not care Do not

care

Intermediate Server

Client

Client Program

Client Wrapper

Gateway Program Server Wrapper

clientMaster clientSlaves

A B

圖 2-14 Server Wrapper 轉換後的狀態

2.3.2 Client Wrapper

客戶端會因為目前環境因素去動態選擇連線傳輸資料,所以 CW 最主要的功能就是動態管理這些連線並且對客戶端程式隱藏轉換連 線的動作。圖 2-15 為 CW 在架構中的位置。

(33)

Internet

GPRS

Client

AP Client Program

Client Wrapper

Server

Server Program

Intermediate Server

Gateway Program Server Wrapper

圖 2-15 Client Wrapper

2.3.2.1 Client Wrapper 連線轉移策略

在客戶端可以同時利用兩種無線傳輸技術:WLAN 和 GPRS,又 WLAN 的優先權較 GPRS 高,所以在 CW 中它的連線轉移策略分成 三個部分:

‹ 當客戶端開始連線時,有以下三個狀況:

(1)WLAN 可以使用Æ利用 WLAN 做連線。

(2)WLAN 不 可 以 使 用 , GPRS 可 以 使 用 Æ 利 用 GPRS 做連線。

(3)WLAN 不可以使用,GPRS 也不可以使用Æ不做連線動 作。

‹ 當客戶端目前利用 WLAN 傳輸資料時,有以下三個狀況:

(1)WLAN 可以使用Æ維持連線有效(WLAN 技術在轉移到 不同網域的 AP 時會改變 IP)。

(2)WLAN 不可以使用,GPRS 可以使用Æ轉換到 GPRS 去 傳輸資料。

(3)WLAN 不可以使用,GPRS 也不可以使用Æ停止傳輸資 料。

(34)

‹ 當客戶端目前利用 GPRS 傳輸資料時,有以下三個狀況:

(1)WLAN 可以使用Æ轉換到 WLAN 去傳輸資料。

(2)WLAN 不可以使用,GPRS 可以使用Æ不做動作,繼續 傳輸資料。

(3)WLAN 不可以使用,GPRS 也不可以使用Æ停止傳輸資 料。

為了要做到以上的轉移策略,CW 必須要做以下三個網路偵測動 作,有關於這三個網路偵測的實作,在第三章會詳細說明:

‹ WLAN 目前可不可以使用

‹ 當目前正在使用 WLAN 傳輸資料,WLAN 使用的 IP 是否 有改變

‹ GPRS 目前可不可以使用

2.3.2.2 Client Wrapper 的設計

在了解了 CW 的連線轉移策略之後,接下來說明如何設計 CW,

在 CW 中管理兩條連線:

‹ WLANSocket(利用 WLAN 使用的 IP 建立的連線)

‹ GPRSSocket(利用 GPRS 使用的 IP 建立的連線)

CW 做的動作其實很單純,就是盡量的保持這兩條連線處於連線 到 IS 的狀態;一旦偵測到有一種技術可以使用但是對應的連線卻處 於未連線的狀態就需要重新建立連線。然後依照上述的策略動態的選 擇其中一條連線做傳輸資料的動作。接下來會利用客戶端轉移連線時 的流程圖更清楚的說明 CW 怎麼幫客戶端做轉移連線的動作。

(35)

2.3.2.3 Client Wrapper 連線轉移流程

在本節中要說明 CW 幫客戶端做轉移連線的流程,主要分成四個 程序:

1. 開始連線。

2. 從 WLAN 轉移到 GPRS。

3. 從 GPRS 轉移到 WLAN。

4. 維持 WLAN 連線。

以下會詳細的敘述這四個程序:

程序一:開始連線

當客戶端開始連線時,分為三種狀況:第一就是 WLAN 和 GPRS 這兩種無線傳輸技術都可以使用,這時 CW 會將兩條連線都 建立,所以在客戶端和 IS 之間會同時存在兩條連線,資料的傳輸 則是利用 WLAN 這條連線傳輸,GPRS 這條連線則不做動作,如 圖 2-16:

Internet GPRS

Intermediate Server

Client

AP Client Program

Client Wrapper WLANSocket

GPRSSocket

Gateway Program

GPRS Use WLANSocket to

transmit data

WLAN

Server Wrapper

圖 2-16 建立連線(WLAN 和 GPRS 都可以使用)

(36)

第二就是只有 WLAN 可以使用,這時 CW 會將 WLAN 這條連 線建立並利用此連線傳輸資料,如圖 2-17:

Internet GPRS

Intermediate Server

Client

AP Client Program

Use WLANSocket to transmit data

Client Wrapper WLANSocket

GPRSSocket

Gateway Program

WLAN

Server Wrapper

圖 2-17 建立連線(只有 WLAN 可以使用)

最後一種狀況是只有 GPRS 可以使用,這時 CW 會將 GPRS 這條連線建立並且利用此連線傳輸資料,如圖 2-18:

Internet

GPRS

Intermediate Server

Client

AP Client Program

Use GPRSSocket to transmit data

Client Wrapper WLANSocket

GPRSSocket

Gateway Program

GPRS

Server Wrapper

圖 2-18 建立連線(只有 GPRS 可以使用)

程序二:從 WLAN 轉移到 GPRS

當客戶端的 WLAN 和 GPRS 都可以使用並且利用 WLAN 這條 連線傳輸資料時,CW 的狀態如圖 2-19:

(37)

Internet

GPRS

Intermediate Server

Client

AP Client Program

Client Wrapper WLANSocket

GPRSSocket

Gateway Program

GPRS WLAN

Server Wrapper

圖 2-19 從 WLAN 轉移到 GPRS 之轉移前狀態

當 CW 偵測到 WLAN 已經不可以使用時,必須將連線轉移到 GPRS 上,動作流程為一開始先停住跟 IS 之間的資料傳輸,利用 GPRS 連線發出一個 counter 表示想要將連線轉移到 GPRS 這條連 線上並且等待 IS 的 counter 回應,如圖 2-20:

Internet GPRS

1.Stop transmitting data Intermediate Server

Client

AP Client Program

Client Wrapper WLANSocket

GPRSSocket

Gateway Program

GPRS WLAN

2.Exchange a counter Server Wrapper

圖 2-20 從 WLAN 轉移到 GPRS 流程圖一

在接到對方的 counter 之後,利用此 counter 取得對方未送達的 封包利用 GPRS 這條連線傳輸過去,最後則是將 WLAN 這條連線 關閉然後繼續原本跟 IS 的資料傳輸動作,如圖 2-21:

(38)

Internet GPRS

Intermediate Server

Client

AP Client Program

Client Wrapper WLANSocket

GPRSSocket

Gateway Program

GPRS WLAN

3.Send lost packets Server Wrapper

4.Close WLANSocket and go on to transmit data

圖 2-21 從 WLAN 轉移到 GPRS 流程圖二

轉移完的狀態如圖 2-22,CW 只剩下 GPRS 連線並利用此條線 傳輸資料。

Internet

GPRS

Intermediate Server

Client

AP

Client Program

Client Wrapper WLANSocket

GPRSSocket

Gateway Program

GPRS

Server Wrapper

圖 2-22 從 WLAN 轉移到 GPRS 之轉移後狀態

程序三:從 GPRS 轉移到 WLAN

當客戶端目前只有 GPRS 可以使用並且利用 GPRS 這條連線傳 輸資料的時候,CW 的狀態如圖 2-23:

(39)

Internet GPRS

Intermediate Server

Client

AP

Client Program

Client Wrapper

WLANSocket

GPRSSocket

Gateway Program

GPRS

Server Wrapper

圖 2-23 從 GPRS 轉移到 WLAN 之轉移前狀態

一旦偵測到 WLAN 可以使用了,這時就必須將連線轉移到 WLAN 上,動作流程為一開始利用 WLAN 建立一條新連線,在新 連線建立好之後才停住跟 IS 之間的資料傳輸,如圖 2-24:

Internet GPRS

2.Stop transmitting data

Intermediate Server

Client

AP

Client Program

Client Wrapper

WLANSocket

GPRSSocket

Gateway Program

GPRS WLAN

1.Connect to server wrapper by WLAN IP

Server Wrapper

圖 2-24 從 GPRS 轉移到 WLAN 流程圖一

接下來利用 WLAN 連線發出一個 counter 表示想要將連線轉移 到 WLAN 這條連線上並且等待 IS 的 counter 回應,如圖 2-25:

(40)

Internet

GPRS

Intermediate Server

Client

AP

Client Program

Client Wrapper WLANSocket

GPRSSocket

Gateway Program

GPRS WLAN

3.Exchange a counter Server Wrapper

圖 2-25 從 GPRS 轉移到 WLAN 流程圖二

在接到對方的 counter 之後,利用此 counter 取得對方未送達的 封包利用 WLAN 這條連線傳輸過去,然後繼續原本跟 IS 的資料傳 輸動作,如圖 2-26:

Internet GPRS

Intermediate Server

Client

AP

Client Program

Client Wrapper

WLANSocket

GPRSSocket

Gateway Program

GPRS WLAN

4.Send lost packets

Server Wrapper

5.Go on to transmit data

圖 2-26 從 GPRS 轉移到 WLAN 流程圖三

轉移後的狀態如圖 2-27,CW 同時擁有 WLAN 和 GPRS 連線 並利用 WLAN 連線傳輸資料。

(41)

Internet GPRS

Intermediate Server

Client

AP Client Program

Client Wrapper

WLANSocket

GPRSSocket

Gateway Program

GPRS WLAN

Server Wrapper

圖 2-27 從 GPRS 轉移到 WLAN 之轉移後狀態

程序四:維持 WLAN 連線

當客戶端的 WLAN 和 GPRS 都可以使用並且利用 WLAN 這條 連線傳輸資料時,CW 的狀態如圖 2-28:

Internet GPRS

Intermediate Server

Client

AP

Client Program

Client Wrapper

WLANSocket

GPRSSocket

Gateway Program

GPRS WLAN

Server Wrapper

圖 2-28 維持 WLAN 連線之轉移前狀態

一旦偵測到 WLAN IP 改變了,這時就必須將重新利用 WLAN 連線,動作流程為一開始利用 WLAN 的新 IP 建立一條新連線然後

(42)

停住跟 IS 之間的資料傳輸,如圖 2-29:

Internet

GPRS

2.Stop transmitting data

Intermediate Server

Client

AP Client Program

Client Wrapper WLANSocket

GPRSSocket

Gateway Program

GPRS WLAN

1.Connect to server wrapper by WLAN new IP

Server Wrapper

圖 2-29 維持 WLAN 連線之流程圖一

接下來利用 WLAN 新連線發出一個 counter 表示想要將連線轉 移到 WLAN 這條新連線上並且等待 IS 的 counter 回應,如圖 2-30:

Internet GPRS

Intermediate Server

Client

AP

Client Program

Client Wrapper

WLANSocket

GPRSSocket

Gateway Program

GPRS WLAN

3.Exchange a counter

Server Wrapper

圖 2-30 維持 WLAN 連線之流程圖二

在接到對方的 counter 之後,利用此 counter 取得對方未送達的 封包利用 WLAN 這條新連線傳輸過去,最後則是關掉 WLAN 原本 的舊連線然後繼續原本跟 IS 的資料傳輸動作,如圖 2-31:

(43)

Internet

GPRS

Intermediate Server

Client

AP

Client Program

Client Wrapper WLANSocket

GPRSSocket

Gateway Program

GPRS WLAN

4.Send lost packets Server Wrapper 5.Close original WLANSocket and

go on to transmit data

圖 2-31 維持 WLAN 連線之流程圖三

轉移後的狀態如圖 2-32,CW 同時擁有 WLAN 和 GPRS 連線 並利用 WLAN 連線傳輸資料。

Internet

GPRS

Intermediate Server

Client

AP

Client Program

Client Wrapper WLANSocket

GPRSSocket

Gateway Program

GPRS WLAN

Server Wrapper

圖 2-32 維持 WLAN 連線之轉移後狀態

(44)

第三章 實作及相關問題探討

這一章節主要是要探討有關實作層面的細節,一開始會介紹使用 的行動裝置和它支援的無線傳輸技術,接下來是說明如何實作在第二 章提到的網路偵測動作,最後是探討當建立多個連線時 socket 和網路 介面之間會出現的問題。

3.1 行動裝置

本論文用來測試實作的行動裝置為 AnexTEK SP230,如圖 3-1,

這為一隻 packet PC phone,它使用 Intel®PXA255 400MHz 的處理器,

作業系統為 Microsoft® Pocket PC Phone 2003,提供 64MB ROM 和 64MB RAM 的記憶體,有關無線傳輸技術方面,它本身內建 GPRS 技術,藉由加裝一張 Wi-Fi SD 卡可以支援 WLAN 技術。

圖 3-1 AnexTEK SP230

3.2 無線網路偵測實作

(45)

根據第二章提到的連線轉移策略,在 CW 中需要做到三項網路偵 測動作:

‹ 偵測 WLAN 目前可不可以使用:

偵測的方法為根據目前環境的無線訊號強度來判斷,在 IEEE 802.11b 標準中將無線訊號強度的範圍規定在 -20dbm 到 -100dbm 之間,-20dbm 為最好; -100dbm 為最差[10]。在 TCP 連線已經建立的時後,並非訊號低到-100dbm 才會影 響資料傳送,根據實驗發現訊號小於-81dbm 之後封包就無 法傳算出去了。所以判定 WLAN 是否可以使用的根據為:

若是目前訊號強度從高掉到低於 -81dbm 就判定 WLAN 目 前不可以使用;若是目前訊號強度從低升到高於 -70dbm 就 判定 WLAN 可以使用,使用這種高水位跟低水位的判定方 法 可 以 讓 系 統 不 會 因 為 訊 號 強 度 小 幅 震 盪 而 疲 於 轉 換 WLAN 和 GPRS,判斷示意圖如圖 3-2:

-100 -81 -70 -20

OFF ON

ON OFF

WLAN Signal Strength (dbm)

圖 3-2 WLAN 判定圖

‹ 當正在使用 WLAN 時,偵測 WLAN IP 有沒有改變:

偵測的方法很直觀,就是定期去掃描 WLAN 使用的 IP 看 看有沒有改變。

‹ 偵測目前 GPRS 可不可以使用:

偵測的方法為定期掃描 GPRS 使用的 IP,如果有掃描到代

(46)

表可以使用,反之不可以使用。

綜合上述的判斷條件,在 CW 中需要實做三件事情:

‹ 取得目前 WLAN 訊號強度

‹ 取得 WLAN 使用的 IP

‹ 取得 GPRS 使用的 IP

Embedded Visual C++透過以下兩種方式可以做到這三件事情 [3]:

‹ 利用 EVC++提供的函式庫 “IP Helper”:

這個函式庫提供所有 IP 層資料的設定和取得,透過它 CW 可以取得目前行動裝置所有可用的 IP,然後藉由 IP 的型態 可以判定是 WLAN 或是 GPRS 使用的 IP,WLAN IP 的型 態為 Ethernet ;GPRS IP 的型態為 PPP。這函式庫可以直接 讓應用程式使用[11],如圖 3-3:

Application

IPHelper

圖 3-3 函式庫 “IP Helper”

‹ 利用 NDISUIO(NDIS User-mode I/O)跟 NDIS 溝通:

NDIS(Network Driver Interface Specification)是由 Microsoft 提出用來定義網路卡驅動程式的標準規範,可使網路卡的 驅動程式下不受硬體上不受通信協定的限制[12],在 NDIS 中儲存了一系列 802.11 WLAN 物件,這一些物件紀錄了 802.11 標準中的很多特性,像是行動裝置目前和哪一個 AP 連接或是目前環境的無線訊號強度等等。在作業系統 Win CE 中跑著一隻 driver 稱作 NDISUIIO,這 driver 的功能為

(47)

讓應用程式藉由它來對 NDIS 做 802.11 WLAN 物件的存取 動作 [13],如圖 3-4,CW 透過 NDISUIO 這個 driver 可以 跟 NDIS 取得 802.11 WLAN 物件 : “OID_802_11_RSSI”,

此物件代表的定義為目前環境的無線訊號強度。

Application

NDISUIO

NDIS

DeviceIoControl()

圖 3-4 NDIS 和 driver NDISUIO

利用上述的兩個方法可以將網路偵測動作實作出來,實作出的部 份本論文將它包成一個 DLL 檔: NetworkDetector.dll 供 CW 使用。如 圖 3-5:

NDISUIO

NDIS IPHelper

NetworkDetector.dll Client Wrapper

圖 3-5 提供網路偵測功能的 DLL 檔案: NetworkDetector.dll

(48)

將此些功能聚集起來包成一個 DLL 檔的好處為提供更大的共用 性,開發者若是利用 EVC++發展可以直接使用這 DLL 檔,若是利用 Java 發展則可以透過 JNI 使用這 DLL 檔[14]。

3.3 Socket 和網路介面之間的問題

根據第二章說明過的 CW 設計,當 CW 發現 WLAN 和 GRPS 技 術都可以使用的時候,它會在客戶端和 IS 之間利用 Socket 同時建立 兩條 TCP 連線,一條利用 WLAN 使用的 IP 建立;一條利用 GPRS 使 用的 IP 建立,程式碼如下:

GPRSSocket = new Socket(dstHost, dstPort, GPRSAddr, 0);

WLANSocket = new Socket(dstHost, dstPort, WLANAddr, 0);

以上兩行程式不一定在每一台機器上都可以執行,如本論文使用 的 AnexTEK SP230 在程式執行到第二行 new 出 WLANSocket 這個 Socket 的 時 候 會 失 敗 , 原 因 為 在 建 立 TCP 連 線 時 , 必 須 先 做 3-handshaking 的起始動作,這動作須要雙方封包的傳遞,但是在這台 機器上封包無法從 WLANAddr 送到 dstHost 導致 WLAN 這條連線無 法建立。至於封包為何無法傳遞,原因為當此台機器同時開啟 WLAN 和 GPRS 兩種服務時,routing table 的設定並不夠周全,routing table 是系統選擇封包繞送路徑的依據,如圖 3-6,當只有開啟 WLAN 服務 並且想要對外送出封包時,系統會選擇”0.0.0.0”這個項目利用索引為 2 的網路介面往外送,相對的如果只有開啟 GPRS 也是一樣,但是所 用的網路介面不一樣,在 GPRS 的情況下所使用的網路介面的索引為 262147。

(49)

Only WLAN:

Network_Destination Interface Metric

0. 0. 0. 0 2 29

127. 0. 0. 0 1 1

140.113. 24.151 1 30

Only GPRS: Network_Destination Interface Metric 0. 0. 0. 0 262147 1

127. 0. 0. 0 1 1

10. 69.234.228 1 50

圖 3-6 開啟單一服務時的 routing table 單獨開啟某一樣服務都不會有問題,那同時開啟兩樣服務為什麼 有其中一條連線無法建立呢?圖 3-7 為兩種服務都開啟的 routing table,在裡邊會看到兩個”0.0.0.0”項目,由圖 3-6 比對可以知道第一 個是 GPRS 送封包的路徑,第二個是 WLAN 的,但是在這兩個項目 中都有一個 Metric 值,這值代表優先權,在這表中 GPRS 的優先權 比 WLAN 高,所以當系統無論想要傳送 WLAN 或是 GPRS 封包出去 時,它都會選擇 GPRS 的網路介面傳送出去,所以 WLAN 封包會無 法到達對方。

BOTH: Network_Destination Interface Metric 0. 0. 0. 0 262147 1

0. 0. 0. 0 2 30

127. 0. 0. 0 1 1

140.113. 24.151 1 30

10.69.234.228 1 50

Different Priority!

圖 3-7 同時開啟兩個服務時的 routing table

為了要解決這個問題,在偵測到目前機器同時提供 WLAN 和 GPRS 時,需要去改變 routing table 中所有”0.0.0.0”項目中的 Metric 值,將這些值都設定成一樣,這樣封包在選擇繞送路徑時,就會因為 Metric 相同而去選擇正確的 interface 送出。圖 3-8 為改完之後的 routing table 內容,這動作在上述的函式庫 IP Helper 中也有提供:

‹ GetIpForwardTable(): 取得 routing table 內容

‹ SetIpForwardEntry(): 設定 routing table 內容

(50)

BOTH:

Network_Destination Interface Metric

0. 0. 0. 0 262147 0

0. 0. 0. 0 2 0

127. 0. 0. 0 1 1

140.113. 24.151 1 30

10.69.234.228 1 50

Same Priority!

圖 3-8 修改之後的 routing table

(51)

第四章 實驗及特性分析

本章節會提出一個實驗,藉由這個實驗去觀察本論文設計並且實 作出來的無縫式 TCP 連線環境的特性,要觀察的特性有兩點:

‹ 連線轉移狀態

‹ 在每次連線轉移時的延遲時間

本 實 驗 利 用 兩 個 簡 單 的 程 式 : 客 戶 端 測 試 程 式 (Test Client Program)和伺服器端測試程式(Test Server Program)來代替原本架構中 客戶端和伺服器端的程式,如圖 4-1:

Internet

Intermediate Server

Client

AP Test

Client Program Client Wrapper

Server

Test Server Program Gateway Program

Server Wrapper

圖 4-1 Test Client Program 和 Test Server Program

客戶端測試程式做的事情為每一秒向伺服器端傳送一個位元 組,此位元組的值為每秒遞增的;伺服器端測試程式做的事情為簡單 的一直讀取來自客戶端的資料。

4.1 實驗流程

(52)

本實驗的目的為觀察無縫式 TCP 連線環境的特性,需要觀察的 狀況有五種,如圖 4-2:

WLAN

(subnet1) GPRS

Case 1 Case 2

The same with case1

Case 3 WLAN

(subnet2) Case 4

圖 4-2 五個實驗流程

第一種狀況為從只有 WLAN 訊號的地方,跑到完全沒有訊號的 地方然後再跑回只有 WLAN 訊號的地方,稱作 Case 1。第二種狀況 為從有 WLAN 和 GPRS 訊號的地方,跑到完全沒有訊號的地方然後 再跑回有 WLAN 和 GPRS 訊號的地方,但是在之前的設計知道在 WLAN 和 GPRS 都有的狀況下,會優先使用 WLAN 去傳輸資料,所 以這種情況跟 Case 1 是一樣的,基於此原因這情況就不納入考慮。

第三種狀況為從只有 GPRS 訊號的地方,跑到完全沒有訊號的地方然 後再跑回只有 GPRS 訊號的地方,稱作 Case2。第四種狀況為從只有 WLAN 訊號的地方,跑到 WLAN 訊號和 GPRS 訊號都有的地方,接 下來跑到只有 GPRS 訊號的地方,最後逆著這順序走回只有 WLAN 訊號的地方,稱作 Case 3。第五種情況為在只有 WLAN 訊號的地方 從網域 1(subnet 1)轉移到網域 2(subnet 2),但是這種無線配置很難找 到,所以本論文利用程式假裝 WLAN 的 IP 已經改變,藉由這樣去模 擬這情況,稱作 Case 4。

(53)

4.2 實驗結果及特性分析

這小節會針對上述的四種 Cases,說明並分析每一個實驗結果所 呈現出來無縫式 TCP 連線環境的兩個特性:連線轉移狀態和連線轉 移時造成的延遲時間。

Case 1:

流程圖如圖 4-3:

WLAN GPRS

圖 4-3 Case 1 之流程圖

由實驗結果顯示,在連線轉移狀態這特性來說,它轉移的順序 為 WLAN Æ wait Æ WLAN (註:AÆBÆC 表示一開始先利用 A 技 術傳輸資料,然後改用 B 技術傳輸資料,最後使用 C 技術傳輸資 料,wait 代表在這階段中不做傳輸資料的動作)。

由於在這 Case 中並沒有涉及到連線的轉換,所以就不去討論 連線轉移時的延遲時間。

Case 2:

流程圖如圖 4-4:

WLAN GPRS

圖 4-4 Case 2 之流程圖

(54)

由實驗結果顯示,在連線轉移狀態這特性來說,它轉移的順序 為 GPRS Æ wait Æ GPRS。

由於在這 Case 中也沒有涉及到連線的轉換,所以就不去討論 連線轉移時的延遲時間。

Case 3:

流程圖如圖 4-5:

WLAN GPRS

圖 4-5 Case 3 之流程圖

由實驗結果顯示,在連線轉移狀態這特性來說,它轉移的順序 為 WLAN Æ GPRS Æ WLAN。

在連線轉移所造成的延遲時間這特性來說,本實驗取五次測試 結果來分析。在這 Case 中涉及到兩個連線轉換,第一次連線轉移(從 WLAN 連線轉到 GPRS 連線)的延遲時間平均為 3.698 秒如表 4-1,

這延遲時間為 CW 利用 GPRS 連線跟 SW 交換一個 counter 的網路 延遲時間加上取出未送達對方的封包的時間。

測試編號 第一次 第二次 第三次 第四次 第五次 平均 延遲時間

(秒)

2.969 3.116 3.745 5.234 3.426 3.698

表 4-1 WLANÆGPRS 延遲時間

在第二次連線轉移(從 GPRS 連線轉到 WLAN 連線)的延遲時 間平均為 1.374 秒如表 4-2,這延遲時間為 CW 利用 WLAN 連線跟 SW 交換一個 counter 的網路延遲時間加上取出未送達對方的封包

(55)

的時間。

測試編號 第一次 第二次 第三次 第四次 第五次 平均 延遲時間

(秒)

1.266 1.259 1.672 1.281 1.389 1.374

表 4-2 GPRSÆWLAN 延遲時間

相比之下,WLAN 連線的網路延遲時間通常會比 GPRS 連線 的網路延遲時間來的短。

Case 4:

流程圖如圖 4-6:

WLAN (subnet1) WLAN

(subnet2)

圖 4-6 Case 4 之流程圖

由實驗結果顯示,在連線轉移狀態這特性來說,它轉移的順序 為 WLAN(網域 1) Æ WLAN(網域 2)

先前有說明過這個 Case 是利用程式在某個時間點刻意讓 CW 認為 WLAN IP 已經改變,所以根據表 4-3 顯示,在這次轉移連線 的延遲時間平均為 2.731 秒,這延遲時間為 CW 利用 WLAN 的新 IP 建立新連線並且利用此新連線跟 SW 交換一個 counter 的網路延 遲時間加上取出未送達對方的封包的時間。

測試編號 第一次 第二次 第三次 第四次 第五次 平均 延遲時間

(秒)

2.110 3.381 2.792 2.435 3.134 2.731

表 4-3 WLAN(網域 1) Æ WLAN(網域 2)延遲時間

(56)

由於這種狀況一定是發生在 AP 轉換後,所以除了上述的延遲 時間還會多耗費轉移到別的 AP 的時間,這時間為不固定的,它會 因為目前所在環境的 WLAN 訊號強度不同而改變,WLAN 訊號強 度越強,轉換 AP 所需要的時間就越短,反之亦然。然而轉移 AP 花費的時間為 WLAN 技術本來就會發生的,並非因為本論文設計 出的架構產生,所以不將這時間算在轉移連線的延遲時間。

綜合上述四個 Case,此系統會依照第二章說明過的連線策略去 動態利用某一條連線傳輸資料,在轉移連線中會發生的延遲時間,多 半都為雙方交換一個 counter 的網路延遲時間加上處理未送達封包的 時間(Case 4 除外,需要加上利用新 IP 產生新連線的延遲)。

(57)

第五章 結論與未來發展

在本論文當中,試著在應用層中整合兩種無線傳輸技術:WLAN 和 GPRS,藉此提供給使用者一個較原先更具效益的 TCP 連線環境,

這連線環境有以下二個特性:

‹ 擷取這兩種無線傳輸技術的優點:

WLAN 有著較高傳輸率和傳輸資料不需額外費用的優點,

GPRS 有著傳輸範圍較廣適合廣域漫遊的優點。綜合這些優 點,在 WLAN 可以用時使用 WLAN 傳輸資料,WLAN 不 可以用時使用 GPRS 傳輸資料。

‹ 可以接受的延遲時間:

由於在轉移無線通訊技術時會有延遲時間,在第四章說明 的 Case 下,此環境在轉移無線通訊技術時造成的延遲時間 平均在大約 4 秒之內。

由於傳輸技術的蓬勃發展,未來希望可以利用同樣的設計繼續加 入別種技術,像是加入有線網路讓筆記型電腦可以擁有更具彈性的 TCP 連線環境,在籃芽技術發展的更成熟之後,也可以考慮將此技術 納入。整合更多樣的傳輸技術,藉著截長補短相信可以讓此環境的功 效更加的卓越。

因為使用了 IS 當作客戶端和伺服器端的橋樑,安全性上的考量 也就跟著很重要了,未來也希望可以在安全性上作更完善的保護,才 不會因為便利性而失掉了安全性,讓使用者增添了不必要的顧慮和麻 煩。

參考文獻

相關文件

209 景美女中-安東市場 定時發車 是傳說中的路線 欣欣客運 237 動物園-台北車站 定時發車 步入傳說中的路線 欣欣客運 294 動物園-仁愛國中 定時發車 傳說中的路線之一

第四章 連續時間週期訊號之頻域分析-傅立葉級數 第五章 連續時間訊號之頻域分析-傅立葉轉換.. 第六章

上列兩個範例是屬於連續型資料相同,但是組距不相同,比較看看,統計圖表有

a 顧客使用信用卡在線上付款時,只要輸入其卡號及有效期

可以看出和 critical-damped 和 over-damped case 因為阻泥太強,都連 原點都回不去。但 over-damped 的圖線在 critical-damped 之上,i.e.,over- damped

a 全世界各種不同的網路所串連組合而成的網路系統,主要是 為了將這些網路能夠連結起來,然後透過國際間「傳輸通訊 控制協定」(Transmission

‡ RFID 運作原理是透過一片小型硬體的無線射頻辨識技 術晶片( RFID chips),利用內含的天線來傳送與接

如圖,空間中所有平行的直線,投影在 image 上面,必會相交於一點(圖中的 v 點),此點即為 Vanishing Point。由同一個平面上的兩組平行線會得到兩個