跨層式感知與協力 4G-IMS 無線網路研究子計畫三 : 跨層式感知與協力 4G-IMS 無線網路之服務品質與資源管理研究 (3/3) 計畫編號 :NSC E 執行期間 :99 年 8 月 1 日至 100 年 7 月 31 日計畫主持人 : 陳俊良國立台灣科技大學電

Size: px
Start display at page:

Download "跨層式感知與協力 4G-IMS 無線網路研究子計畫三 : 跨層式感知與協力 4G-IMS 無線網路之服務品質與資源管理研究 (3/3) 計畫編號 :NSC E 執行期間 :99 年 8 月 1 日至 100 年 7 月 31 日計畫主持人 : 陳俊良國立台灣科技大學電"

Transcription

1 行政院國家科學委員會專題研究計畫成果報告 跨層式感知與協力 4G-IMS 無線網路研究 -- 子計畫三 : 跨層式感知與協力 4G-IMS 無線網路之服務品質與資源管理研究 (3/3) 研究成果報告 ( 完整版 ) 計畫類別 : 整合型計畫編號 :NSC E 執行期間 :99 年 08 月 01 日至 100 年 07 月 31 日執行單位 : 國立臺灣科技大學電機工程系 計畫主持人 : 陳俊良 計畫參與人員 : 碩士班研究生 - 兼任助理人員 : 楊佩嘉碩士班研究生 - 兼任助理人員 : 鄭秉昇碩士班研究生 - 兼任助理人員 : 張新毅博士班研究生 - 兼任助理人員 : 馬奕葳 報告附件 : 國外研究心得報告出席國際會議研究心得報告及發表論文 處理方式 : 本計畫可公開查詢 中華民國 100 年 10 月 14 日

2 跨層式感知與協力 4G-IMS 無線網路研究子計畫三 : 跨層式感知與協力 4G-IMS 無線網路之服務品質與資源管理研究 (3/3) 計畫編號 :NSC E 執行期間 :99 年 8 月 1 日至 100 年 7 月 31 日計畫主持人 : 陳俊良國立台灣科技大學電機工程學系計畫參與人員 : 楊佩嘉 馬奕葳 鄭秉昇 張新毅 一 中文摘要 無線通訊及行動計算技術的日新月異, 使行動通訊者及服務提供者處於異質的網路環境中 根據 4G 之定義, 高速移動中傳輸最高能達到 100Mb, 而低速移動或靜止時則能達到 1Gbps 的傳輸速率 有鑑於此, WiMAX 與 LTE 目前都被視為下一代行動網路, 因此未來 4G 將以異質網路共存方式呈現, 促使異質網路整合技術及多媒體應用服務成為發展焦點 藉著 IMS (IP Multimedia Subsystem) 平台依據開放式和標準化的架構, 可讓服務提供者在平台上同時提供語音 數據與視訊等多樣應用服務 然而隨著使用者的移動行為, 在跨越各種異質的網路環境時, 將會造成各種不同層次的 Handoff, 進而導致不同程度的封包遺失, 因此在 4G-IMS 的網路環境中, 服務品質與資源管理將是ㄧ項重大的挑戰 本計畫第一年完成 C 3 QM (Cross-layer, Cognition, Cooperation, QoS Manager)4G-IMS 網路架構 介面定義和 C 3 QM 資料層模組設計與開發以及 C 3 QM 4G-IMS 網路中 C 3 QM 控制層 QoS(Quality-of-Service) 動態調配, 透過資料層之介面與模組定義, 完成 Flow Classifier Monitoring 機制設計, 並強化 Data Collection/Transmission 之運作 本計畫第二年要點在於 C 3 QM 4G-IMS 網路之 QoS 動態控管的服務整合, 藉由 Cooperative 機制達成 本研究第二年完成控制層 Handoff Differentiation 機制及 Cooperative 運作的定義與設計, 提供 QoS 所需之功能模組, 在 QoS Agent 與 Cross-Layer Cognitive 及 Cooperative Process 處理機制設計, 透過跨層與感知合作決策模式, 於 HSS (Home Subscriber Server) PCRF (Policy and Charging Rule Function) 與各異質網路路由器中, 建置 QoS Agent, 滿足異質網路中不同的應用所提出的 QoS 需求 本研究第三年完成 Quality Assurance Management Charging System 之介面定義與模組設計, 於 4G-IMS 系統提供計費機制與控制功能, 並於應用服務 子系統 (IMS) 和業務 ( 如 MMS) 各層實現 Online Charging 和 Offline Charging Module, 進行即時監控各層的資源使用情況, 檢測相關計費資訊, 透過前兩年研究所設計之 PCRF (Policy and Charging Rule Function), 強化 PCC(Policy Control and Charging) 架構, 依據 Charging Module 蒐集並運算系統所消耗之資源利用率結果, 作為 Charging System 收費之計算標準, 以基於使用者計費原則, 給予用戶最佳之 Service 分配 本研究之 C 3 QM 系統建置完成後, 藉由 4G-IMS Testbed 進行運作測試及效能分析 此系統啟動 Quality Assurance Management Charging System 後, Operators & Managers 可針對多媒體應用服務訂定費率 效能分析結果顯示於語音計費服務模式下, Session 使用 PCMU Codec (64 kbps) 會比使用 GSM Codec (13.6 kbps) 多出五倍的費率 ; 而 Video Stream 的 第 1 頁 / 共 89 頁

3 計費服務, 計費系統每隔五秒就會記錄 Video Stream 之流量轉換成服務費率 關鍵詞 : IMS 平台 跨層管理 服務品質 資源管理 感知網路 協力網路 Abstract Accelerated advances in wireless mobile communications technology have rapidly transformed mobile communications and services. These advances are exhibited wireless access networks, mobile terminals and service providers. As companion, the emerge of IP multimedia subsystem (IMS) platform allows service providers to accommodate extended services, such as voice, data and video streaming based on open architecture and standards. Through unified heterogeneous networks, users are enabled to access applications using distinctive user terminals equipped by different network access technologies. When users terminals access the applications across various network environments, the terminals have to deal with different level of handoff decisions. As generally assumed, the certain degree of packet loss incurred by the variation of handoffs. This poses a major challenge for QoS provisioning and resource management in 4G-IMS network environment. In the first year, the project has completed the implementation of the cross-layer, cognition, cooperation, QoS manager (C 3 QM ) on 4G-IMS network infrastructure. The C 3 QM data plane modules were designed and developed on each defined interface. Then, dynamic allocations of and quality-of-service (QoS) mechanism was embodied into the control layer of the C 3 QM 4G-IMS network. In addition, the project also focused on integrating services of QoS dynamic control in the C 3 QM 4G-IMS networks. The data plane interfaces and modules were used to accomplish Flow Classifier and the Monitoring mechanism design as well as to improve Data Collection/Transmission functions. In the second year, the project completed the QoS agent and cross-layer, cognitive and cooperative process mechanism by using a cross-layer design and cognition-cooperative decision-operating mode. It satisfied the QoS requests for various applications in heterogeneous networks. In order to enhance the QoS, this work established a hardware environment that integrates each sub-project mechanism to preform experimental tests analysis, through the analysis the function of each model confirms the evaluation of the system performance. In the third year, the project completed the design and development of Quality Assurance Management and Charging System interfaces. QAM Charging provides 4G-IMS system billing and control mechanisms. The different services levels such as GPRS, IMS and MMS were combined with Online Charging and Offline Charging modules which conduct real-time monitoring of resource utilization levels and detect the relevant billing information. Moreover, the project enhanced the PCC (Policy Control and Charging) function using PCRF (Policy and Charging Rule Function) to offer a high level charging flexibility. In contemplation of achieving users best-assigned services through user-based billing principles, the charging module computes the system resource utilization follows the charging standard. Keywords: IP Multimedia Subsystem Platform, Cross-Layer Management, Quality of Service, Resource Management, Cognitive Network, Cooperative Network 第 2 頁 / 共 89 頁

4 二 緣由與目的 為了強化模組化的概念, 傳統 TCP/IP (Transmission Control Protocol/Internet Protocol) 通訊協定採用階層式 (Layer) 的模組化設計 ( 如圖一所示 )[1-3], 主要的目的在於訊息溝通只發生在相鄰的階層之間 因此, 引發一些影響效能的問題, 例如無線網路之安全性 服務品質 行動通訊的電力耗損與高錯誤率等問題 如繼續維持此模組化的運作架構, 勢必會影響未來 4G 環境的整體執行效能 以下針對幾項重要影響效能課題說明之 圖一 : TCP/IP 各層的相關協定架構 1.Security: 在現階段的網路環境中, 使用了許多加密協定與技術, 例如 Transport Layer 與 Application Layer 之 SSH PGP 及 SSL Network Layer 之 IPsec 無線網路之 WEP WPAN 等技術 由於每個階層皆執行加密動作, 雖然可以增加整體的安全性, 但相對地, 由於要處理多次的加密運算, 將會造成較多的能量耗損, 並增加傳輸時的延遲 [4, 5] 在未來的行動通訊網路應用, 需研究如何避免此類安全考量所帶來的負面效應 2.Quality-of-Service: 現行的網路服務可以分為 Elastic Service 和 Real-Time Service [6, 7] 面對 Elastic Service, 如 FTP 協定的檔案傳輸 HTTP 協定的網頁資料傳輸等, 這些服務在一段時間內完成工作即可 ; 而 Real-Time Service, 如語音訊息 影音資料等, 由於這些服務較具即時性的需求, 因此必頇在限定的時間內完成工作 但在現行的網路環境下, 系統無法動態地針對不同的需求提供適當的服務, 造成無法滿足使用者所需的 QoS [8,9] 3. Mobility Management: 當初在設計 Internet 通訊協定運作架構時, 並沒有考量到 Mobility 的問題, 使得在無線網路應用時, 利用 IP 為基礎的無線網路通訊協定, 無法得到良好的 Mobility 效能 現今在 Handoff 的過程中, 也因為 TCP/IP 設計上的缺失, 而使得在完成 Handoff 後的短暫時間內, 無法維持 Handoff 前之傳輸效能, 造成在網路頻繁的 Handoff 情況下, 使得整體傳輸效能變得低落 [10,11] 為了解決上述 Layer-based TCP/IP 的問題, 本研究提出一套 Cross-Layer Design for Cognitive and Cooperative 4G-IMS 網路應用架構 ( 如圖二所示 ; 整合計畫目標 ) 其中,Security and Privacy 模組, 主要是為了解決行動通訊系統中多層次的加密及認證動作 ; QoS 及 Resource Management 模組, 主要是管理網路資源及對 QoS 的確保, 並加入了計費標準的分級 ; Mobility 及 MAC Management 模組, 則是為了在異質網路間漫遊, 且可同時使用多頻道的通訊功能 ; Application and Services 模組, 則是針對 Audio 及 Video 應用服務, 選擇適合的編碼方式, 並且依據所連結的網路頻寬, 進行調整 圖二 : C 3 QM 4G-IMS 網路應用架構綜合上述在 TCP/IP 網路運作上所可能會發生的問題和解決架構, 本研究提出一套 C 3 QM (Cross-layer, Cognition, Cooperation, QoS Manager) 架構, 作為各階層間溝通橋樑, 以解決 QoS 議題所面臨之困境 圖三為 C 3 QM 的基本架構,C 3 QM Manager 可以接收各階層間所發出之 Events( 如表一所列 ), 例如 Handoff Start Link Lost, 由這些 Events 觸發 C 3 QM Manager 內的各模組運作, 並調控所有階層之運作 第 3 頁 / 共 89 頁

5 圖三 : Cross-Layer Manager 表一 : 各階層之 Events 和可供調控的 Variables 為不同的網路狀況, 而使得執行效能降低, 而這些效能的波動將被大範圍的散佈開來 為了解決這些問題, 必頇有一個能讓上層應用不受底層變化所影響的 QoS 設計, 以確保服務品質的提供 本計畫的研究將著重於目前 TCP/IP 階層式架構中 QoS 不足的部份提出解決策略, 以下茲介紹國內外研究實例, 說明 QoS 在有無 Cross-layer Cognitive 4G-IMS Network 支援情況下的差異 三 文獻探討 本計畫依據所提出的異質網路環境以及欲達成服務品質保證與資源管理的目標, 分別針對 IMS Cross-Layer Issue 及 Cognitive Network 進行文獻的蒐集與分析, 以利計畫的研究與開發 近年來, 由於無線通訊及行動計算技術的日新月異, 使行動通訊者及服務提供者處於異質的網路環境中 此種異質性存在於無線存取技術 網路 使用者終端機 裝置設備 應用程式及服務提供者等 基於下列理由, 這些異質性在可預見的未來不太可能消失 [12]: 1 應用程式需求的多樣化, 以致於很難找到單一最佳化且全面性的解決方案 2 基於競爭公司佔領市場的渴求, 許多擁有專利的系統紛紛相繼釋出 因此, 一個異質環境提供 Seamless 且 Adaptive 的服務品質, 將是下一代無線通訊系統的致勝關鍵之一 未來, 提供使用者符合經濟效益 無所不在 無處不連以及高服務品質的網際網路是最基本的需求 然而, 在一個異質無線網路環境中, 應用程式可能因 3.1 IP Multimedia Subsystem (IMS) IMS 是由國際合作組織 3GPP (3rd Generation Partnership Project) 所提出的技術標準 IMS 平台主要以 SIP (Session Initiation Protocol) 為基礎, 透過開放和標準架構, 使服務提供者可以在 IMS 平台上同時提供語音 數據 與視訊等多樣化應用服務, 亦可以作為固網 WLAN WiMAX GSM GPRS 等有線或無線網路的共同平台 IMS 的應用目的, 係在 3G 網路架構中提供行動網際網路的服務, 並確保在不同網路間轉換時的 QoS [13, 14] 在 Mobile Network 內提供 QoS 是相當具挑戰性的議題 由於頻寬之變動 基地台之間 Handoff 問題, 嚴重影響封包之傳遞, 使得 Mobile Network 中的 Realtime Applications 相當容易受影響 在一般的有線網路中, 封包傳輸處於 最佳效率 的狀態, 此狀態意味著網路會儘量保持 Application 所需的頻寬, 但不會依據頻寬的可用性和網路的擁塞情形, 予以任何的保證, 此項設計並無法確保 Mobile Network 中的 Real-time Applications 服務 QoS [15] 整合 SIP-based Network Mobility 至 IMS 環境中, 其帶來好處是節省電力 複雜度低 減少 Handoff 此研究提出兩種機制 : Loosely Coupled Architecture 以 第 4 頁 / 共 89 頁

6 及 Tightly Coupled Architecture 在 Loosely Coupled 架構中 ( 如圖四所示 ), 能保持原有 SIP-NEMO 及 IMS 特色, 並且在會議建立初始時, 讓控制訊號順利通過 Interrogating Network 環境 過 Go Interface 至 GGSN) 圖六 : IMS Policy Decision Function 運作架構 圖四 : 利用鬆散耦合建立 Session 的訊號流程此外在 Tightly Coupled Architecture 中 ( 如圖五所示 ), 其特色是其利用 SIP-NEMO 網路代理者, 當作是使用者代理人, 整合 SIP-NEMO 於 IMS 中, 進行些許修改, 加強其架構, 使之更為完備, 並且提供 IMS Network 安全機制 [16] 圖五 : 利用緊密耦合建立 Session 的訊號流程 IMS 的 QoS 機制是為了取代 最佳效率 狀態而設計, 以確保所提供的傳輸品質 IMS 的 QoS 機制為確保封包傳輸的品質, 經由對相關網路狀態參數如傳輸率 閘道延遲及錯誤率之量測, 使得 Resource 可事先被保留 用戶可依據服務形式及用戶環境, 指定要求的 QoS IMS 中 智慧型 的 QoS Request, 被稱為政策決策功能 (Policy Decision Function, 簡稱 PDF) 模組 ( 運作架構如圖六所示 ), 藉由 PDF 模組與基礎分封網路之間的互動, 控制基礎分封網路資源的分配 ( 透 在 IMS 標準中, 明確地規範 QoS 參數可在兩個 UE (User Equipment) 的 Session 建立前, 先進行協商動作 [17] 其目的在於檢查兩個 UE 之間的各段連線是否有足夠的 Resource 可供運用, 當 QoS 參數被確認後, IMS Network 則會要求 Core Network 及 Access Network 為該 Session 保留 Resource 當 UE1 對 UE2 發出 INVITE Message 時, 該 Message 會夾帶 QoS Proposal (Request), 此 QoS Proposal 則會分別於 UE1 及 UE2 的 S-CSCF(Serving-Call Session Control Functions) 檢查其 Subscription Level, 並確定 QoS 參數 其後,UE2 會回傳其所屬之 QoS Proposal, 此 QoS Proposal 也會於 UE1 及 UE2 之 S-CSCF 檢查 Subscription Level, 並根據此 Level 確定 QoS 參數 最後,UE1 會接收 UE2 的 QoS Proposal, 並開始建立 Session 或是根據 SIP UPDATE Message 做出 Renegotiate 的動作 透過 SIP Message 傳遞 QoS 參數, 使得 Session Data 得以藉由 Session Description Protocol (SDP) 傳輸 [18] 3.2 Cross-Layer Issue AMC with ARQ 系統在無線環境中進行資料傳輸, 無線傳輸媒介並不如有線網路穩定 無線訊號時常面臨各種雜訊及干擾, 使得封包的錯誤及遺失較有線環境更加頻繁 如何克服無線環境中 Channel Fading 的問題, 以確保資料傳輸的 QoS, 成為許多研究的重點 AMC with Data Link 第 5 頁 / 共 89 頁

7 Layer ARQ 即依照 Cross-Layer 的設計理念, 考慮以 Physical Layer 傳輸的調變及編碼方式 (Modulation and Coding), 搭配 Data Link Layer 的自動重傳請求訊號 (Automatic Repeat Request; ARQ), 達成即時調配的訊號傳輸, 增進無線網路的資料傳輸量 圖七為發送端以無線的方式傳送資料給接收端, 其間的傳輸 Channel 受 Channel Fading 干擾 一般 Data Link Layer 在傳輸期間, 若受到雜訊干擾, 而導致資料錯誤或遺失, 則發出 ARQ 訊號作為自動重傳請求 ; 若傳輸 Channel 依然持續受到相同的雜訊干擾, 則重新傳送資料的成功率依然會受到影響 因此, 有相關研究在接收端加入 Channel 偵測器, 評估 Channel 的實體環境之後, 動態選擇適合的調變編碼模式, 並搭配 ARQ 的使用與發送端進行協商, 選擇調變編碼模式來進行傳輸 同時回傳封包至原發送端並將 ECN bit 設定為 1, 原發送端也因而得知網路的擁塞情況, 此後兩端傳輸將會依照相對應的排程機制, 進行適當的傳輸動作, 以避免因 Congestion 與 Channel Fading 情況的混淆不清, 所導致縮減傳送速率的誤判 依據這些不同的實體網路狀況作適當的傳送排程, 一方面可以動態因應實際的網路狀況, 以避免在環境不佳的時段傳送資料, 另一方面也可避免因擁塞狀態的誤判, 所導致不必要的傳送速率縮減, 從而改善整體的傳輸效能, 也確保 QoS 圖八 : ECN Bit 系統架構圖 圖七 : AMC with ARQ 系統架構圖如此設計, 即包含了跨越 Physical Layer 及 Data Link Layer 的 Cross-Layer 運作概念, 以改善資料傳輸時的 Throughput, 進一步確保了上層資料傳輸的 QoS ECN Bit 系統一般網路上的路由器, 遇到網路擁塞的情況時, 將會丟棄超載的封包, 此時會造成傳送效能低落 因此, 許多研究傾向在封包欄位中加入一個 ECN Bit ( Explicit Congestion Notification Bit ), 以便對 Congestion Related Loss 的情況及 Channel Related Loss 的情況作區別 如圖八所示, 當網路發生擁塞的狀況時,Router 將把封包中的 ECN Bit 欄位設定為 1, 接收端收到封包後, 即可得知網路正處於擁塞的情形, ECN Bit 系統主要提出的概念是由 Physical Layer 直接將即時的網路環境狀況, 向上反映至 Network Layer, 運用 IP 表頭的附加欄位作標示, 以便區隔 Congestion 及 Channel Fading 這兩種情況所造成的封包遺失, 也同樣屬於利用 Cross-Layer 的設計理念, 以確保 QoS 的實例 WQE(Wireless Quality Enhancer) 系統 WQE 系統 ( 如圖九所示 ) 主要是在無線網路中, 加入 WQE 裝置至 AP 有線端 上層的應用程式會將該應用之 QoS 需求附加在每個資料片段, 傳遞到 Network Layer; 資料流在網路傳遞時, 在 IP 表頭的延伸欄位附加相關資訊以供區別 QoS 的需求 WQE 系統裡的 AP 能夠依據不同 QoS 的需求, 以不同的傳送策略進行傳遞 假如遭遇 QoS 需求無法識別的封包, 便會將該封包送到 WQE 設備, 由 WQE 依據該封包的 QoS 需求, 來指定適當的傳送策略, 再將此傳送策略讓 AP 知道, 並由 AP 依據 WQE 所指定的傳送策略來進行傳送 第 6 頁 / 共 89 頁

8 圖九 : WQE 系統架構圖 WQE 系統設計即從上層的 Application Layer 跨越至 Network Layer, 將 Application Layer 的 QoS 需求, 利用附加資訊的方式通知下層的 Network Layer 知道, 再利用此附加資訊, 依循不同的傳送策略進行傳輸 一些具有代表性的跨層式設計方案如圖十所示 [19-26] 更具體來說, 跨層式設計在各層會利用到的參數如下 應用層 : Application Types, QoS Requirements 傳輸層 : Rate Allocation, Rate Control 網路層 : Routing Policy, Admission Control MAC 層 : Channel Assignment, Scheduling 實體層 : Rate Adaptation, Power Control 定義為 可察覺周遭環境並從中學習對應方法之智慧型無線通訊系統, 即時改變對應操作參數 ( 例如 : 傳輸能量 載頻與調變策略 ), 統計環境中無線頻率 (Radio Frequency, RF) 內部狀態之變化, 藉以達成以下兩個主要的目標 : 訊息傳遞高可靠性以及增加無線電頻譜的使用性 [28] 而 Haykin 及 Mitola 對感知給了最廣泛的定義 其他的定義, 如 IEEE 標準和 FCC (Federal Communications Commission) 提出的感知無線電描述, 可以給這些定義一個更貼切的名字 --Adaptive Radios Mitola 和感知科學家所定義的感知, 不僅僅為簡單適應功能, 且感知深層的定義可用 Feedback Loop 概念來解釋 Feedback Loop 模組係根據過去環境互動情形, 來引導現在與未來的互動 圖十一為 Col John Boyd 描述一個稱作 OODA (Observe, Orient, Decide and Act) Loop 模組的 Feedback Loop, 迴路包含四個元件, 引導決策者根據環境輸入選擇適當行為的流程 OODA 迴路依據環境做出決定, 具有高度複雜性, 不完全是隨機的 圖十 : 跨層式之設計研究 3.3 Cognitive Network 感知網路 (Cognitive Network) 概念是以感知無線電 (Cognitive Radio, CR) 為基礎所描繪的網路架構 Mitola 為第一位描述感知無線電的學者, 在 Mitola 的觀點中, 感知無線電是建立在軟體定義無線電 (Software Definition Radio, SDR) 上 [27] 另外,Haykin 則將 CR 圖十一 : OODA Loop 運作示意圖以下分別針對相關研究實例說明之 : Dynamic Channel Sensing Management 在感知無線系統裡, 利用 Channel Sensing 的策略感知其它使用者的存在, 不僅影響到感知無線技術的使用者本身, 也連帶地影響到其它使用者 [29] 所以藉由 Orthogonal Frequency Division Multiple Access 第 7 頁 / 共 89 頁

9 (OFDMA) 之技術, 開發出在感知無線技術系統上有效率的 Channel Sensing 管理 為了增進整個系統的效能, 上述所提及方法, 為利用頻率選擇性衰減 (Frequency-Selective Fading) 的 Channel 與考慮不同類型的主要使用者之 Multiuser-Diversity 其結果顯示, 當減少主要用戶的等待時間, 可增加感知無線技術系統的利用度 [30,31] 圖十二所示, 利用 Fixed Quiet Interval 可感知主要使用者的存在 在此 Interval, 當所有感知無線技術的使用者停止傳送和接收資料時, 稱之為 Quiet Interval 由於感知無線技術系統只能夠在此 Quiet Interval 感知主要使用者的存在, 所以為了在短時間內搜尋到主要使用者的存在,Quiet Interval 之間的間隔不能過大 基地台與其廣泛使用者構成具 OFDMA 的 Cognitive Radio Downlink 系統 為了減少在 OFDMA 系統之上層被 Subcarrier 控制, 在此由多個 Subcarriers 構成的 子通道, 可以用來作為控制的單元 而每個具有子通道的系統, 由 Channel 凝聚頻寬之內的 Adjacent Subcarriers 所構成 此外, 系統時間被切割成 Frames, 每個 Frame 由 OFDM Symbols 所構成 ( 如圖十三所示 ) Interval 的策略相比, 此研究提出的設計具有頻率選擇性衰減的優點, 增進 Channel Sensing 的效能 Self-Aware Networks and QoS 在各種相關的網路架構中, 以 QoS-Driven Routing Protocol 為核心的架構, 稱為 Cognitive Packet Network (CPN) CPN 是一種封包路徑選擇 (Routing) 的協定, 此協定藉由即時線上量測的數據, 選擇使用適合的技術進行路徑選擇 執行 CPN 的必備條件中, 其中一項為第一次進行隨機搜尋時,CPN 即使沒有初始值也能夠自我啟動 (Cold Start), 並經由執行的紀錄, 逐步地改善其行為 由於網路的主要功能是將某一來源 (S) 的封包轉送到某一目的地 (D), 因此 CPN 必頇具備即使沒有轉送路徑的資訊, 還是能將封包從 S 轉送到 D 的功能 ( 如圖十四所示 ) 圖十四 : CPN Network Topology 圖十二 : Fixed Quiet Interval 在此研究中利用 CPN 的技術, 開發出 Dynamic QoS Control 實驗系統, 運作架構如圖十五所示 整個系統操作範圍在網際網路中進行, 使用的是動態流量控制, 其中網路伺服器藉由不同的網際網路連接埠, 將訊息傳遞出去, 此方法可以有效的降低上述訊息傳遞的延遲 IP CPN IP CPN Router-1 ISP1 INTERNET CPN CPN IP CPN Router-2 ISP2 圖十三 : OFDMA Frame Structure INTERNET Web server Http-request Http client Http-reply 此研究設計出具 OFDMA 的感知無線技術系統之 動態感知的排程程式, 以減少主要使用者的感知時間, 增加感知無線技術系統的利用度 與採取 Fixed Quiet 圖十五 : Dynamic QoS Control System 網路的使用者可以藉由網際網路存取網路伺服器, 第 8 頁 / 共 89 頁

10 而此網路伺服器是直接連結至 CPN [32-35], 此時的 CPN 就如同一個流量控制系統, 經由兩個不同的連接埠, 連結到兩個外部 CPN, 存取各自 ISP 所提供的服務, 整合之後再經由網際網路, 回傳訊息給網路使用者 [36] 此研究實作了 CPN 封包路徑選擇的協定, 再加上網路伺服器的支援, 完成一套 QoS 的感知控制系統, 藉由此感知控制系統, 能夠動態地去控管整個網際網路的 QoS Composite Services Charging Management 第三代合作夥伴計畫 (3GPP) 已經公佈 IMS 上之收費標準 3GPP 網路的計費方式可區分為離線計費和線上計費 離線計費只通知系統服務用途並建立收費記錄, 使用者不會與計費功能和應用程式進行互動, 線上計費則允許使用者與計費功能和應用程式進行請求及互動 Xu et al. [37] 提出了 IMS 的自動化配置與應用程式所組成的服務計費架構, 該架構使用 Domain Specific Language(DSL) 來實現 Accounting Logic Generator(ALG) 的開發 Bhushan [38] 提出聯合計費的機制來解決複雜的計費問題, 解決的關鍵在於多域環境下考慮服務層級協議 (SLA) 進行使用記錄的交換 Koutsopoulou [39] 提出計費機制來進行計費 結算, 並核算未來的使用者於動態申請之計費機制 Ooms [40] 探討如何在多域的 IMS 環境下, 以 Diameter 協定有效執行身份認證 存取權限控制與計費 (AAA), 並將重點放在多域環境的安全性 網路運營商可以提供基於開放式服務架構 (OSA) 的框架接口對應特別的電信協定, 如 CAMEL 服務 (CAMEL service) 的應用程式部分 (CAP) 與行動應用服務部分 (MAP), 藉以提供對不同服務的監聽控制器能力 因此, 必頇擴展框架的可重構性, 以提升服務品質 (QoS) 用戶定制性 服務的供應與靈活的收費機制 服務供應商與網路運營商皆為不同管理領域, 組合服務能經由服務供應商來進行提供 虛擬行動網路 運營商 (MVNO) 由於服務供應商介於行動網路基礎架構運營商 (MNO) 之間, 可將其視為進行服務整合的扮演角色, 並針對用戶訂閱和文件配置進行管理, 因此, 為了 MVNO 及傳統 MNO 用戶的出現, 除了與 MVNO 合作外, 傳統運營商還需要與其他競爭者的服務進行整合, 以獲得營運上更大的營收利潤 Multi-Agent System Multi-Agent Systems (MASs) 是由多個代理者 (Agent) 所構成的,MASs 是屬於 Distributed Artificial Intelligence (DAI) 系統之一環 DAI 系統是任務分派 協調 合作與代理者之間的相互作用語言相關研究之先驅 [41] MASs 的研究目標比 DAI 的目標更寬廣, 其中包含了代理者的分散式網路系統 雖然 MASs 沒有標準的定義, 而在 Jennings 所發表的 Paper 中, 定義了三個概念 :Situated,Autonomous 和 Flexible[42] Situated 指的是代理者在他們的環境中, 可以感覺和行動 有別於一般對代理者的認知, 其定義中有不完整知識 環境的部份控制權或兩者兼具 [43] Autonomous 指的是代理者能夠像人類般自由地行動, 或代理者會考慮其它代理者於自主程度上的限制 Flexible 指的是代理者針對環境變動適時做出反應甚至預先行動, 並可以與其它代理者互動, 甚至和人們互動, 就如同人們彼此互相幫助解決問題 Dietterich 描述一個標準代理者模組應包括四個主要部份 : 觀察 行動 推論引擎和知識庫 [44] 在代理者模型中, 推理和學習是使用推論引擎和知識庫相結合的結果 而推理是推論引擎從知識庫收集相關的資訊 知覺的輸入和行動的集合來決定的即時過程 學習是較長期的過程, 藉由推論引擎去評估其關係, 譬如比較過去行動和當前觀察之間的關係, 或在並行的行動之間觀察等, 並將其觀察的結論轉換成知識, 再存放於知識庫 Wooldridge 提出兩個影響 MASs 研究的要點 [45]: Agent Design(AD): 創造出能夠自主地完成任務的軟體代理者 Society Design(SD): 創造出在不明確的環 第 9 頁 / 共 89 頁

11 境中, 能夠藉著某種程度上的互動, 完成任務的軟體 代理者 應用之服務品質和資源妥善管理, 並改善使用者對於 服務品質的觀感 圖十七為 4G-IMS 架構模組圖, 其 中分為資料層 (Data Plane) 控制層 (Control Plane) 其中, 在 SD 設計上, 可以使用自我組織 (Self-Organization) 的方法 此外, 軟體代理者也被設計成能夠在大型環境及分散式環境裡運行 因此, MASs 具備幾個特性讓其能夠去描述 Cognitive Network (CN) 行為 : 其方法能夠滿足複雜的系統, 讓不同程度機器學習, 能有自然均勻分佈的特點, 以及在非穩定的環境裡仍可運行 由於 MASs 本身具有互動性, 利用這些特點, 使得 MAS 的自我組織及緊急處理性得以滿足複雜的系統 [46] 四 研究方法 以下介紹本研究所提出相關模組設計以及跨層 與知識層 (Knowledge Plane) 資料層的主要功能是負責資料的收集與傳送及對資料流的處理並且收集 TCP/IP 各層的資訊和網路狀況的資料, 提供至控制層和知識層進行分析及管理 ; 控制層主要目的是負責 QoS 的控制及訊號處理, 提供資料層與知識層每項功能執行時所需的控制訊號 控制層收到資料層傳來的訊息, 再依所設計的功能來做處理, 並將控制訊號透過資料層進行處理及傳送 ; 知識層則是基於 MSM (Multi-Service Agent Model) 架構的系統, 在物件導向式的 Multi-Agent 系統模組中, 每種 Agent 都是主動式的物件, 能夠同時獨立工作 式 QoS 策略演算法連結 Charging System 提供之計費 機制與控制功能 4.1 4G-IMS 架構 圖十六為整體 4G-IMS 環境架構圖, 本研究將 QoS 決策建立於 IMS 中 P-CSCF 模組上, 對所有通過 P-CSCF 的 Session 進行分析, 並將決策後的結果, 在不同存取網路的 Gateway 上進行流量的控管, 並針對 使用者的網路環境, 判斷是否符合使用者 QoS 的需求, 圖十七 : 4G-IMS 架構模組 再進行 Adaptive QoS 決策, 挑選最適用的存取網路進 行換手, 以滿足使用者對 QoS 的要求 Application Application Signaling Server Server Application Data / Media HSS Server SCIM Service / Application Plane 4.2 QAM Charging System Design (Quality Assurance Management, QAM) Charging System 對 4G-IMS 系統提供計費機制與控制功能 此模組蒐集並運算系統所消耗之資源利用率, 作為 S-CSCF CSCF I-CSCF BGCF Charging System 收費之計算標準 RACS NASS A-RACS PDF DSLAM 3GPP R7: Fix Network WAG 3GPP R6: WiFi RAN 3GPP R5: GPRS/UMTS Control / Signaling Plane BAS / A-BGF PDG SGSN P-CSCF GGSN Media / Transport Plane 圖十六 : 4G-IMS 環境架構 基於 Cross-layer Cognitive 和 Cooperative 概念, 本研究擬開發一套 C 3 QM 系統, 以確保 4G-IMS 網路 MRF MRFC MRFP I-BCF/ SIP ALG Core I-BFG/TrGW Network MGCF MGW SGW IPv4 Network PSTN IPv6 Network 本研究所定義之 QAM Charging System 依循 3GPP 的標準, 如圖十八所示, 提供在應用服務 ( 如 GPRS) 子系統(IMS) 和業務 ( 如 MMS) 各層的 Online Charging 和 Offline Charging Module, 進行即時監控各層的資源使用情況, 從而檢測相關計費資訊 Offline Charging Module 是在資源使用後由網路向計費系統匯報資源的使用情況 ;Online Charging Module 是允許用戶使用請求的網路資源之前, 先至此模組查詢用戶 第 10 頁 / 共 89 頁

12 帳號, 進行即時扣款的動作, 而 QAM Charging System 可提供之服務, 例如 : 特定時間的語音呼叫, 特定數據業務的流量傳輸, 或者特定多媒體訊息的提交 Offline Charging Module 和 Online Charging Module 可以同時相互獨立地處理相同的計費事件 各功能模組之特性如下所述 : 圖十八 :QAM Charging System 架構圖 1. Online Charging Module: 透過 Online Charging Function(OCF) 進行分類計費 主要利用 Rating Function(RF) 來決定計費價格, 並運用 Account Balance Management Function(ABMF) 做最後計費結算 以下則針對各功能模組說明 : OCF: 支援 Online Charging 模組進行計費分類, 包含事件計費功能 ( Event Based Charging Function, EBCF) 和會談計費功能 ( Session Based Charging Function, SBCF) 兩種類別 EBCF: 執行基於事件的計費和信用控制 EBCF 與 RF 通訊決定請求服務使用的值, 與 ABMF 來查詢和更新用戶的帳戶及 Timer 的狀態 其 EBCF 分為三層應用 : 在服務層, 基於從網路接收到的承載使用請求控制承載使用, 如 IMS; 在子系統層, 基於從網路 ( 如 IMS MRFC) 接收到的會談資訊使用請求控制資源的可用性, 如 : 准許或拒絕資源使用 ; 在服務層, 基於從網路接收到的應用伺服器請求控制應用服務的可用性, 如 : 准許或拒絕服務的使用 SBCF: 執行基於會談的計費和信用控制 其 SBCF 與批價功能通訊決定請求的承載資源和請求的會談的值, 與帳戶結算管理功能 (ABMF) 通信查詢和更新用戶帳戶及 Timer 的狀態 而 SBCF 也分為三層應用 : 在服務層, 基於從網路接收到的服務使用請求控制服務使用, 如允許的時間或流量 ; 在子系統層, 基於從網路 ( 如 : IMS CSCF) 接收到的會談資源使用請求控制會談, 如 : 准許或拒絕會談建立請求 結束已有通話 在服務層, 基於從網路接收到的服務使用請求控制服務的可用性, 如准予或拒絕服務使用 RF: RF 可決定費率或可計費事件的價格, 如每秒的呼叫 數據流量 多媒體會談 Web 內容等價格 根據從 Charging Gateway Function(CF) 接收到的批價請求 ( 價格或費率請求 ),RF 針對各種批價參數 ( 如服務標識 網路標識 用戶位置 服務使用時間 傳送資料量等 ) 評估請求, 決定可申請的價格或費率模型, 並返回給計費功能 CF 為支援線上批價處理, RF 需要 Timer,Timer 可由 RF 或 ABMF 維護 不維護 Timer 的 RF 稱為 class A RF, 維護 Timer 的 RF 稱為 class B RF RF 功能包括 : 流量批價 ( 如針對接入網路實體的計費 ); 時間批價 ( 如針對 SIP 應用的計費 ); 事件批價 ( 如針對 Web 內容或 MMS 的計費 ) ABMF: 主要負責 QAM Charging System 最後結算之模組 2. Offline Charging Module:QAM Charging System 中 Offline Charging Module 與傳統之分封交換網路計費方式不同 Charging Data Function(CDF) 在接收完同一網路元件針對同一通話過程所產生之計費訊息之後, 合併生成 Charging Data Record(CDR) 另外,CDF 針對單一網路元件生成的 CDR 不包含通話的所有訊息 Billing Domain 模組在獲取到同一通話內所有網路元件在 CDF 生成的 CDR 後, 可以獲得所有計費訊息 第 11 頁 / 共 89 頁

13 基於上述機制,QAM Charging System 將提供完 善和靈活的計費策略 由於次世代行動通訊網路可提 供的服務類型非常豐富, 不同服務 不同內容可以採 取多樣的計費策略,QAM Charging System 的計費機 制可有效應用於靈活多變的計費需求 因此, 當新的 計費策略引入時, 營運商不需要對控制層和服務層網 路進行改造, 可修改些許參數與設定, 即可運作 QAM Charging System, 用以實現相關計費功能 4.3 Charging 策略 本研究之 Charging 策略依據前兩年所定義之 QoS 機制, 按照 3G WLAN 及 WiMAX QoS 規格, 將不 同類型之應用程式分為 Interactive Class,VoIP, Video/Audio Streaming 以及 Best Effort 等四個類別 ( 如 表二所示 ), 每類應用程式具有不同的 QoS 需求, 結 合由感知能力所獲取的 RSSI 值進行 QoS 的決策, 判 斷是否有更合適的存取網路提供使用者進行 Handoff 以獲得最佳的傳輸品質, 如現有網路環境無法滿足眾 多使用者時, 再啟動 Charging 機制 當使用者的網路 環境遭受到雜訊干擾時, 系統就會根據使用者帳戶的 權重值去判斷是否請求更好的 QoS, 有較高權重值的 帳戶便會啟動 QoS 策略機制, 以保證應用程式所需的 QoS #1 Traffic Classes Interactive Class #2 VoIP #3 Video/Audio Streaming 表二 :QoS 分類等級 QoS Concern Reliable Delay and Jitter Packet Loss Typical Application Web Browsing Voice MPEG Video #4 Best Effort Throughput FTP download 1. 服務優先權 / 計價 (Service Priority/Accounting): 服務優先權 / 計價的部份則以使用者付費多寡, 來提供對應之 QoS 服務的概念, 或使用者有長期使用次世代行動通訊網路平台, 且讀取 QoS 服務之頻率較高, 則隨時間會逐漸開放其他服務於該使用者運用 本研究定義以下三種 QoS 等級來定義其使用者類別, 當資源衝突或使用環境受到限制時, 將有助於 QAM Charging System 做出更正確的判斷 QoSClass = 3 ( 白金使用者 ) QoSClass = 2 (VIP 使用者 ) QoSClass = 1 ( 一般使用者 ) 2. 流量等級 (Traffic Class): 在流量等級的定義部份, 考慮 Bit Error Rate(BER) 數據段順序(Segment Order) 數據段遺失(Segment Loss) 和數據段延遲 (Segment Delay) 等因素 本研究將最小分辨流量稱為 QoS 資料流 (QoS Stream) 於表三中,QoS Stream ID #15 代表著最高等級的 QoS 資料流, 相反地 QoS Stream ID #5 代表著最低等級, 而 QoS Stream ID #1 ~QoS Stream ID #4 是預先保留下來供未來擴充使用 而環境變數 (BER Segment Order Segment Loss Segment Delay) 的評估範圍是從 #4~#1, 這些的參數設定必頇根據底層頻道狀況來做動態的調整 表三 : 流量等級表 依據本研究所提供之 QoS 機制, 營運商可根據使用者的付費標準, 提供不同等級之服務與效能 計費機制則主要以兩種參數為其調控主因, 其為服務優先權 / 計價 (Service Priority/Accounting) 和流量等級 (Traffic Class) 以上兩個參數設定後, 本研究利用以下方程式 (5) 得知 QoS 參數值, 可針對每個使用者所要求的服務如 語音 影像串流 資料, 規劃出最適當的 QoS 狀態, 第 12 頁 / 共 89 頁

14 再根據第一年所研發之跨層式 QoS 策略與第二年所研 發之 Agent 動態調整 QoS, 以滿足每位使用者需求 QoS = QoSclass * QoSstreamID (5) 由於每個不同的應用服務所需要的 QoS 網路環境需求都不盡相同, 所以針對網路環境狀態提出一個 QoSnetwork 變數, 這個變數可由四項環境參數 (BER Segment Order Segment Loss Segment Delay) 所組成 如此再將這 QoSnetwork 變數與上述兩個參數結合, 本研究可得一 Cost 值, 如方程式 (2) 所示, 並以此 Cost 值為依據, 使得 QAM Charging System 進行相關服務規劃 Cost= QoSclass * QoSstreamID * QoSnetwork (6) 圖十九為 Charging System 費率決策之演算法 : 一開始使用者會向系統請求所要的應用服務, 當 Charging System 接收到所需求之服務類型之後, 再根據所定義之 QoS 流量等級表去判斷相應之 QoS Stream ID, 選擇出適合此服務的 QoS 配置, 若有多個候選網路符合條件, 則選擇 RSSI 訊號最強的作為目標網路, 進行 Handoff, 以確保使用者在通訊時能擁有最佳的 QoS 品質保證, 如網路環境無法支援現有之 QoS 配置, 則依循使用者帳戶之 QoSclass 去做更進一步的決策, 越高的 QoSclass 將可優先使用最佳之 QoSnetwork, 當服務確定要發送之前, 便會傳送給使用者服務費率之計費請求, 完成整個標準費率決策 圖十九 :Charging System 費率決策演算法圖二十為 Charging System 費率決策之流程圖, 首先針對使用者所要求的應用服務進行 QoS 相關參數的擷取與運算選擇最佳的 QoS 狀態, 接著判斷是否有滿足此 QoS 最佳的網路環境, 若有最佳的 QoS 網路環境, 便可依照本研究定義之公式決定其費率 ; 若沒有則判斷此使用者帳戶的 QoS 等級是否高於同一網路環境的其他使用者, 有的話便將使用者的網路切換到最佳的 QoS 網路環境, 沒有就降低此應用服務之 QoS 等級, 其最後定義之費率也會隨之降低 當費率決定之後, 才會開始計費的動作, 扣除使用者帳戶的 Credit 第 13 頁 / 共 89 頁

15 圖二十一 : 網路模擬環境拓樸 圖二十 :Charging 決策流程圖 本研究所模擬的應用程式型態為 VoIP 與 Video Stream, 相關模擬參數設定與 UE 在某時間點所產生的封包個數如圖二十二所示 其系統 Throughput 如圖二十三所示, 且於 Wi-Fi 環境則設定起始值為 0 秒, 每五秒產生封包數據 ;WiMAX 環境固定於 5Mbps; 而在 3G 環境中則起始值設為 70 秒, 且每五秒產生封包數據 五 結果與討論 的成果 以下介紹本研究的系統效能分析, 以及相關實作 5.1 效能分析 以下針對附加 Charging 機制下的 Video Stream 與 VoIP Stream 進行模擬量測與效能分析, 量測的數據包括 : 平均延遲時間 (Delay Time) 抖動時間(Jitter) 及封包遺失率 (Packet Loss Ratio) 模擬環境拓樸與各段連線能力如圖二十一所示 模擬環境包含 3G WiMAX 與 Wi-Fi 三種網路環境, 其網路頻寬分別為 2Mbps 14Mbps 及 54Mbps;UMTS/Node B BS 與 AP 連結到其 Gateway, 其連線能力為 8Mbps, 而 Gateway 與 CN(Corresponding Node) 之間的連線能力為 100Mbp, 而兩個 Gateway 之間的連線能力為 20Mbps 圖二十二 : 模擬參數圖二十三 : Gateway Throughput 模擬的結果如下圖所示 圖二十四顯示使用 VoIP 服務計費實行的情形, 針對語音計費如 Session 使用 PCMU Codec(64 kbps) 將會比使用 GSM Codec(13.6 kbps) 多出五倍的費率, 而圖中所採用的是 GSM Codec, 曲線的變動是相當平穩 第 14 頁 / 共 89 頁

16 要求取得對應的 Policy 定義之參數, 及結合本計畫完成之 QoS 演算法決策後的 QoS 參數, 封裝成 Gx 介面之 Diameter RAR 訊息向 PCEF 要求執行 當 PCEF 實際將 Traffic Flow 執行 Admission Control 後, 則回傳 Diameter RAA 訊息給 PCRF 圖二十四 :VoIP 計費 由圖二十五所示為使用 Video Stream 的計費服務, 使用者是透過一個遠端伺服器去獲得多媒體內容, 計費系統每隔五秒就會去記錄一次 Video Stream 的計費情形, 從圖中可以看出計費情況與多媒體當時流量相關 圖二十六 : Proposed IMS QoS framework 5.2 實作成果 圖二十五 :Video Stream 計費 圖二十六為本計畫完成之 IMS QoS Framework 架構, 其中 Policy Repository 由 Open Source 的 XDMS Server 進行建構, 用來儲存定義的 QoS Policy 檔案 本計畫定義完成四種 Policy, 分別為 Codec Domain Name QoS Class 和 Application Class Authorization Rules PCRF 具備 Domain Processor 功能模組, 藉由 XCAP 協定 (Parsing XML documents) 取得遠端 Repository 存放的 QoS Policy 檔案定義之參數, 以及具備 Generic Processor 功能模組取得全域的參數設定 本計畫處理 AAA 認證需求, 主要採取 Open Source 的 Diameter Engine PCRF 與 AF 之間 AAA 資訊傳遞透過 Diameter Rx 介面實現, 而位於 Transport Layer 之 PCEF 與 PCRF 間資訊傳遞則透過 Diameter Gx 介面實現 PCRF 能夠接收 AF 傳送的授權要求, 依據其 QoS 圖二十七為編輯 Codec Policy 之介面, 藉由此介面, 管理者可依據 QoS 需求, 動態更改多媒體傳輸所需要的 Codec 模式, 例如 :g722 g723 和 g729 等 Codec 當完成編輯並按下 Add Codec 按鈕後,PCRF 會接收到 AF 傳送的認證需求 (Rx 介面之 Diameter AAR 訊息 ), 將更換後的 Codec Policy 進行處理, 再向 PCEF 傳送再次認證需求 (Gx 介面之 Diameter RAR 訊息 ), 讓 PCEF 實際替換 Session 的 Codec 模式 圖二十七 : 動態編輯 Codec Policy 第 15 頁 / 共 89 頁

17 圖二十八為編輯 QoS Class Policy 之介面, 藉由此介面, 管理者可依據每個建立的 Session, 依據其 QoS Class 等級, 限制此 Session 的網路流量在頻道傳輸之上傳及下載的頻寬使用量 當 Policy 完成編輯後, PCRF 中 Domain Processor 會再次解析此 Policy 定義的參數, 並將此需求送往 PCEF 實際執行 圖三十 : Application Class Rule 結構 圖三十一為編輯 Application Class Policy 之介面, 藉由此介面, 管理者可根據正在傳送 Session 之 Application Class( 透過 SDP 訊息包含的 Media Type), 並利用此 Policy Rule 限制其所佔據的頻寬使用量 圖二十八 : 動態編輯 QoS Class Policy 圖二十九為編輯 Domain Policy 之介面, 藉由此 介面, 管理者能依據傳送及接收端本身的 Domain Name 限制其頻寬使用量 圖三十一 : 動態編輯 Application Class Policy 圖二十九 : 動態編輯 Domain Policy 圖三十為 Application Class Rule 之結構, 在 Application_class 標籤內, 定義每個 Application 類別能夠佔據的頻寬使用量, 當此 Policy 被 PCRF 處理完成並授權後, 則顯示 Application Class Authorized 訊息 圖三十二為 QoS Parameter Database 介面, 藉由此介面, 管理者可隨時監控異質存取網路之整體網路狀態, 並將底層觀察並分析後的 QoS 資訊, 例如 : Packet lost Delay 和 Jitter 等參數呈現在管理介面上 QoS Parameter Database 也提供 QoS 參數儲存之功能, 將資料送到後端資料庫存放 (MySQL Database), 使本計畫設計之 QoS 策略能夠依據分析後的資訊進行決策 第 16 頁 / 共 89 頁

18 圖三十二 : QoS Parameter Database 圖三十五為監測流量, 目前有五台電腦皆由 AP 指派虛擬 IP, 可相互連結傳遞資料 當流量超過 QoS Class 頻寬限制需求, 就會在 AP 執行頻寬流量的監控程式, 中斷超過頻寬的用戶 IP 因此中斷上述超過頻寬的用戶, 就無法連線至 AP 圖三十六為執行實作程式 圖三十三為 Charging Parameter Database 介面, 透過此介面管理者可以了解使用者帳戶之資訊, 如使用者帳戶之 Class 使用的服務 費率和帳戶的總額度等資訊, 並也將資料送到後端資料庫存放 (MySQL Database), 便於了解使用者所使用的服務資源等訊息 圖三十五 : 監測流量 圖三十三 : Charging Parameter Database 圖三十四為透過 Monitor.o 功能模組, 使 PCEF 可得知目前擷取到的 IP 流量, 自動判斷是否超過管理者所設定之最大頻寬, 再透過 iptable 語法寫進程式, 即能成功控制防火牆 terminate 此用戶 圖三十六 : 執行實作程式 基於實作 C 3 QM 中之 Cooperative 機制, 建置 Cooperative 系統於各異質網路中, 並運用於交換與儲存相關 QoS 資訊 圖三十七為建置 Java Jade Agent-based System 基本環境架構圖, 建置於 PCEF 上利用 ACL(Agent Commucication Language) 進行訊息交換 圖三十四 : 判斷是否超過最大頻寬 第 17 頁 / 共 89 頁

19 Netw 圖三十九 : QoS Agent 建置示意圖 圖三十七 : Cooperative 架構圖三十八為建置 C 3 QM 中之 Cooperative 機制, 於各異質網路之路由器中建置 Java Jade Agent-based System, 以做為資料溝通之代理人, 來傳送異質網路中各 QoS 參數值, 做為判斷 Handoff 機制之依據 圖四十為 QoS_pAgent 開始執行收集 QoS 資訊, 並定時傳遞資訊於 QoS_learningAgent 和各異質網路路由器中之 QoS_pAgent, 執行各異質網路之 QoS 資訊交換, 並傳遞於 QoS_dbAgent 做 HSS 資料更新, 且動態更新 QoS Parameter Database 介面之資料顯示, 而 QoS_learningAgent 執行 QoS 決策判斷 圖三十八 : Java Jade Agent-based System 依據上述相關 Agent System 資訊, 建置動態偵測之 QoS Agent 在各異質網路上建置 QoS_pAgent, 用以收集相關 QoS 參數, 並可互相傳遞相關資訊, 已達 Cooperative 功能, 讓各異質網路之間訊息達到互相通訊, 且與建置於 HSS 中之 QoS_dbAgent 和 PCRF 之 QoS_learningAgent 做定時之互相溝通 如圖三十九為各 QoS Agent 建置於 4G-IMS 整體架構示意圖 圖四十 : QoS_pAgnet 執行畫面圖四十一為 QoS_dbAgent 接收資訊後之訊息, 透過 QoS_dbAgent 可定時與 HSS 進行相互溝通,QoS 資料定時更新, 可讓使用者方便於得知目前 QoS 資訊 第 18 頁 / 共 89 頁

20 圖四十三 : Charging Module 建置示意圖 圖四十一 : QoS_dbAgent 動態更新資訊透過 Q-Learning 演算法, 將其應用於 PCRF 中, 並建置 QoS_learningAgnet, 執行 QoS 理想頻段之決策, 並依照 QoS_pAgent 定時傳遞更新資訊, 也將立即更新決策資訊, 其相關決策結果, 則可提供子計畫四進行換手之依據 圖四十二為 QoS_learningAgent 執行畫面 圖四十四為 Offline Charging Module 透過 Diameter 從 Application Server 所接收到之計費資訊, 可收集包含用戶身份和網路服務使用記錄之資料 圖四十五則為 Online Charging Module 透過 Diameter Ro 與 Application Server 溝通之計費資訊, 可即時連結到用戶的帳戶, 當服務即時運行時有能力改變這個帳戶的數值, 屬於預付機制 圖四十四 : Offline Charging 圖四十二 : QoS_learningAgent 執行畫面由於 IMS 能夠提供廣泛的服務, 單一的收費機制將不是一個可接受的解決方案, 因為它對用戶不提供任何靈活性 計費系統需要能夠為每個服務提供最適合的收費選擇, 因此可透過 Online Charging Module 和 Offline Charging Module 讓用戶能夠選擇他們如何支付他們的服務 圖四十三為增加計費模組之架構圖 圖四十五 : Online Charging 圖四十六為計費系統運行時,Charging Module 所記錄之相關使用者服務資訊 管理者可根據此紀錄得知使用者所使用的服務 Resource, 並把此資訊傳送到 Web 的管理介面上 第 19 頁 / 共 89 頁

21 程式類別繁多, 造成所需控制之服務品質參數有所差異 例如 : 網路電話則注重延遲變化率, 以及端對端的延遲時間, 線上電影較為重視封包遺失率相對於影片解析度的影響 圖四十六 : Record Message 在 Charging 費率計算方面, 透過 QoSclass QoSstreamID 和 QoSnetwork 等參數的設置, 可針對不同用戶及不同的服務決定其費率, 於 PCRF 中增加 QoS 之 Charging Rule, 對使用者而言增加了執行 QoS 理想頻段決策之公平性, 並根據 Online Charging Module 和 Offline Charging Module 傳遞更新資訊, 即時改變費率決策資訊 圖四十七為使用多媒體服務計費之執行畫面 故根據現有的 QoS 規範, 以多媒體應用軟體之 QoS 分類為基礎, 本計畫設計出可適性 QoS 管理機制, 用於即時監控網路流量及網路擁塞時的頻寬管理, 且提供可選擇性的存取網路, 針對無線網路異質性的服務品質參數來做進一步控制調整, 進而確保 Access Network 的服務品質, 並可提供相關參數運用於換手機制使用, 達到本計畫之 QoS 控制與整體 4G-IMS 網路架構之完整性 本研究為三年期之研究計畫, 研究主題分別為 4G-IMS 網路架構 介面定義與 C 3 QM 資料層模組設計與開發 All-IP 4G 網路 C 3 QM 控制層 QoS 整合與動態調配 及 4G-IMS 網路 C 3 QM 知識層之 QoS 動態控管之服務整合 三大課題 在計畫研究成果 outcome 部份, 本研究成果已發表八篇國際期刊論文及八篇會議論文 包括 : 圖四十七 : 多媒體服務執行畫面 六 計畫成果自評 現今瞬息萬變的網路應用環境中, 即時性 (Real-Time) 的應用服務是研發重點, 然而網路資源有限, 但品質保證之需求卻無止盡地提升, 因此需要一個品質保證的服務, 以確保網路使用者的權益 在現代之網際網路蓬勃發展下, 使用者皆處於有線及無線之異質性網路環境, 故注重的服務品質也不盡相同 例如 : 無線網路環境中比較著重於位元錯誤率 資料重傳, 以及封包遺失的問題, 主要是因為眾多服務品質控制參數於有線環境中之敏感度較低 此外, 應用 1. C.F. Lai, Y.M. Huang, J.L. Chen, W. Ji and M. Chen, Design and Integration of the OpenCore Based Mobile TV Framework for DVB-H/ T Wireless Network, ACM Multimedia System Journal, Vol.17, No.4, pp , J.L. Chen, S.W. Liu, S.L. Wu and M.C. Chen, Cross-layer and Cognitive QoS Management System for Next-Generation Networking, International Journal of Communication Systems, Vol.24, No.9, pp , M.C. Chen, J.L. Chen and T.W. Chang, Android/OSGi-based Vehicular Network Management System, Computer Communications, Vol.34, No.2, pp , C.Y. Chen, K.D. Chang, J.L. Chen and H.C. Chao, Extending Emergency Services Coverage in Cooperative IMS Networks, Appear to Int. J. Autonomous and Adaptive Communications Systems. 5. J.L. Chen, Y.C. Chang, Y.S. Lin and H.W. Du, Embedded Worldwide Interoperability for Microwave Access-based Vehicular Router for Telematics Computing, IET Communications, Vol.4, No.7, pp , April X. Li, H. Zhang, J.M. Chang, J.L. Chen and H.C. Chao, PIMac: Multicast Access Control Implementation in PIM-SM, Wireless Personal Communications, Vol.55, No.1, pp.35-49, September J.L. Chen, Y.W. Ma, C.P. Lai and Y.M. Huang, Multi-Hop Routing Mechanism for Reliable Sensor Computing, Sensors, Vol.9, No.12, pp , H.F. Lu and J.L. Chen, Design of Middleware for Tele-Homecare Systems, Wireless Communication and 第 20 頁 / 共 89 頁

22 Mobile Computing, Vol.9, No.12, pp , December J.L. Chen, Cooperative QoS Mechanism for Heterogeneous Networking Proceedings of IEEE Sarnoff, April 12-14, J.L. Chen, Y.W. Ma, Y.M. Hsu and Y.M. Huang, Adaptive Routing Protocol for Reliable Wireless Sensor Networking, Proceedings of IEEE 12th International Conference on Advanced Communication Technology, pp , February S.W. Liu, S.L. Wu and J.L. Chen, Adaptive Cross-layer QoS Mechanism for Cognitive Network Applications, Proceedings of IEEE 12 th International Conference on Advanced Communication Technology, pp , February J.M. Chang, W.T. Hsiao, H.C. Chao and J.L. Chen, The Adaptive QoS for SIP Phone using Dynamic Adjust Mechanism, Proceedings of the 2010 International Conference on e-technology, China, January J.M. Chang, W.T. Hsiao, J.L. Chen and H.C. Chao, Mobile Relay Stations Navigation-Based Self-Optimization Handover Mechanism in WiMAX Networks, Proceedings of the 4 th International Conference on Ubiquitous Information Technologies & Applications, pp , J.L. Chen, M.C. Chen, S.W. Liu and J.Y. Jhuo, Cross-Layer QoS Architecture for 4G Heterogeneous Network Services, Proceedings of the 11th International Conference on Advanced Communication Technology, pp.73-77, Phoenix Park, Korea, February 15-18, J.L. Chen, Y.T. Larosa, D.J. Deng, P.J. Yang and Y.W. Ma, QoS-aware Heterogeneous Networking using Distributed Multiagent Schemes, Proceedings of the IEEE Wireless Communications and Mobile Computing Conference (IWCMC), pp , August J.L. Chen, S.L. Wu, Y.T. Larosa, P.J. Yang and Y.F. Li, IMS Cloud Computing Architecture for High-quality Multimedia Applications, Proceedings of the Wireless Communications and Mobile Computing Conference (IWCMC), pp , September 並匯入 Q-Learning 演算法計算理想之頻段, 定時傳送給子計畫四, 進行換手之決策依據, 以期達到 QoS 動態控管之課題, 而在技術轉移部份, 則將各 QoS Agent 包裝成簡易之執行檔, 便於各子計畫之安裝建置 由於 IMS 能夠提供廣泛的服務之特性, 計費系統需要能夠為每個服務提供最適合的收費選擇, 因此透過 Online Charging Module 和 Offline Charging Module 建置讓用戶能夠選擇他們如何支付他們的服務, 並基於使用者付費之公平性原則, 根據 QoSClass Rule 和 QoSStreamID Rule 的費率決策演算法, 確保其服務品質 此外, 計畫執行迄今已培育出 1 位博士級及 3 位碩士級人才, 並投入學術及產業研發行列 計畫研究中, 已完成了 4G-IMS 網路架構 介面定義與 C 3 QM 資料層模組設計與開發 All-IP 4G 網路 C 3 QM 控制層 QoS 整合與動態調配 及 4G-IMS 網路 C 3 QM 知識層之 QoS 動態控管之服務整合, 並且設計出可調適性的 QoS 演算法, 建立 Problem Model 的相關規範, 及定義出 Self Model 與 Environment Model 的訊息溝通方式, 並透過所提出的 QoS 網路基礎架構中的資料層, 擷取所需的參數及相關資訊以提供控制層與管理層做分析以及決策的動作, 以達到 Cross-Layer 控制的目的 基於 Cooperative 機制下, 已完成於各異質網路之路由器中代理人之建置, 在 HSS 與 PCRF 中亦建置相關 QoS 代理人, 進行資料庫之定時更新動作, 第 21 頁 / 共 89 頁

23 參考文獻 [1] J. Choi, Kihong Park and C.K. Kim, Analysis of Cross-Layer Interaction in Multirate WLANs, IEEE Transactions on Mobile Computing, Vol. 8, No. 5, pp , May [2] B.J. Chang and J.F. Chen, Cross-Layer-Based Adaptive Vertical Handoff with Predictive RSS in Heterogeneous Wireless Networks, IEEE Transaction on Vehicular Technology, Vol. 57, No. 11, pp , Nov [3] F. Foukalas, V. Gazis and N. Alonistioti, Cross-Layer Design Proposals for Wireless Mobile Networks: a Survey and Taxonomy, IEEE Communications Survey & Tutorials, Vol. 10, No 4, pp , Apr [4] C. Xiangqian, K. Makki, Y. Kang and N. Pissinou, Sensor Network Security: a Survey, IEEE Communications Surveys & Tutorials, Vol. 11, No. 2, pp , Apr [5] W.L. Benjamin, J.F. Colin and A.C. David, Cross-Layer Verification of Type Flaw Attaches on Security Protocols, Proceedings of ACM 13th Australasian Conference on Computer Science, Vol. 62, pp , [6] H. Ekstrom, QoS control in the 3GPP evolved packet system, IEEE Communications Magazine, Vol. 47, No. 2, pp , Feb [7] P. Bellavista, A. Corradi and L. Foschini, IMS-based Presence Service with Enhanced Scalability and Guaranteed QoS for Interdomain Enterprise Mobility, IEEE Wireless Communications, Vol. 16, No. 3, pp , Jun [8] Y.T. Mai, C.C. Yang and Y.H. Lin, Cross-Layer QoS Framework in the IEEE Network, Proceedings of the 9th International Conference on Advanced Communication Technology, Vol. 3, pp , Feb [9] M.S. Siddiqui, R.A. Shaikh and C.S. Hong, QoS Control in Service Delivery in IMS, Proceedings of the 11 th Interational Confernece on Advanced Communication Technology, Vol. 1, pp , Feb [10]M.K. Denjo, E. Shakshuki and H. Malik, A Mobility-Aware and Cross-Layer Based Middleware for Mobile Ad Hoc Networks, Proceedings of the 21 th International Conference on Advanced Networking and Applications, pp , [11] M. Chang, M. Lee and H. Lee Per-Application Mobility Management with Cross-Layer Based Performance Enhancement, IEEE Wireless Communications and Networking Conference, pp , March [12] V.C.M. Leung, J. Zhang, F.R. Yu, H.C.B. Chan and H. Tang, Enhancing Interoperability in Heterogeneous Mobile Wireless Networks for Disaster Response, IEEE Transactions on Wireless Communications, Vol. 8, No. 5, pp , May [13] L. Lifeng and L. Gang, Cross-Layer Mobility Management based on Mobile IP and SIP in IMS, Proceedings of the International Conference on Wireless Communications, Networking and Mobile Computing, pp , Sep [14] M.A. Melnyk, A. Jukan and C.D. Polychronopoulos, A Cross-Layer Analysis of Session Setup Delay in IP Multimedia Subsystem (IMS) with EV-DD Wireless Transmission, IEEE Transactions on Multimedia, Vol. 9, No. 4, pp , Jun [15] A. Anzaloni, M. Listanti and I. Petrilli, Performance Study of IMS Authentication Procedures in Mobile 3G Networks, Proceedings of the International Conference on Wireless Communications and Mobile Computing, pp , [16] W.K. Chiang, A. Ren and Y.C. Chung, "Integrating SIP-Based Network Mobility into IP Multimedia Subsystem," Proceedings of the IEEE Wireless Communications and Networking Conference, pp.1-6, 5-8 April [17]M.S. Siddiqui, S.O. Amin and C.S Hong, A Set-Top Box for End-to-End QoS Management and Home Network Gateway in IMS, IEEE Transactions on Consumer Electronics, Vol. 55, No. 2, pp , May [18]K.S. Munasinghe and A. Jamalipour, Interworked WiMAX-3G Cellular Data Networks: An Architecture for Mobility Management and Performance Evaluation, IEEE Transactions on Wireless Communications, Vol. 8, No. 4, pp , Apr [19] Q. Zhang and Y.Q. Zhang, Cross-Layer Design for QoS Support in Multihop Wireless Networks, Proceedings of the IEEE, Vol.96, No.1, pp.64-76, Jan [20] B. Zamani, M. Mohammadi, A. Jalalvand, R. Fakouri and M. Fathy, A Cross Model Approach to Support of QoS Parameters in Wireless Sensor network, Proceedings of the International Conference on Computer and Electrical Engineering, pp , Dec [21] C. E. Huang and C. Leung, Adaptive Cross Layer Scheduling with Flow Multiplexing, Proceedings of the IEEE Wireless Communications and Networking Conference, pp , Apr [22] Y. Hu, Cross Layer Dynamic Resource Management with Guaranteed QoS in MIMO OFDM Systems, Proceedings of the International Conference on Wireless Communication, pp. 1-6, Oct [23] C. Tian and D. Y Cross Layer Opportunistic Scheduling for Multiclass Users in Cognitive Radio Networks, Proceedings of the International Conference on Wireless Communication, pp. 1-4, Oct [24] A. Morell, G. Seco-Granados and M. Á. Vázquez-Castro, Cross-Layer Design of Dynamic Bandwidth Allocation in DVB-RCS, IEEE System Journal, Vol. 2, No. 3, pp , March [25] D. P Pezaros and L. Mathy, Explicit 第 22 頁 / 共 89 頁

24 Application-Network Cross-layer optimization, Proceeding of the International Telecommunication Networking Workshop on QoS in Multiservice IP Networks, pp , Feb [26] C.W. Huang, M. Loiacono, J. Rosca and J.N. Hwang, Airtime Fair Distributed Cross Layer Congestion Control for Real-time Video over WLAN, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 19, No. 5, pp. 1-1, May [27] J. Mitola, Cognitive Radio Architecture Evolution, Proceedings of the IEEE, Vol. 97, No. 4, pp , Apr [28] A. Jovicic and P. Viswanath, Cognitive Radio: An Information-Theoretic Perspective, IEEE Transaction on Information Theory, Vol.55, No. 9, pp , Sept [29] H. Jiang, L. Lai, R. Fan and H.V. Poor, Optimal Selection of Channel Sensing Order in Cognitive Radio, IEEE Transactions on Wireless Communications, Vol. 8, No.1, pp , Jan [30] N. Baldo and M. Zorzi, Cognitive Network Access using Fuzzy Decision Making, Proceedings of the IEEE International Conference on Communications, pp , Jun [31] Z. Zhao, Z. Peng, S. Zheng and J. Shang, Cognitive Radio Spectrum Allocation using Evolutionary Algorithms, IEEE Transactions on Wireless Communications, Vol. 8, No. 9, pp , Sept [32] L.Song, Cognitive Networks: Standardizing the Large Scale Wireless Systems, Proceedings of the IEEE Consumer Communications and Networking Conference, pp , Jan [33] M.M. Rashid, M.J. Hossain, E. Hossain and V.K. Bhargava, Opportunistic Spectrum Scheduling for Multiuser Cognitive Radio: A Queueing Analysis, IEEE Transactions on Wireless Communications, Vol. 8, No. 10, pp , Oct [34] K. Ravindran, M. Rabby and X. Liu, Bandwidth Measurement and Management for End-to-end Connectivity over IP networks, Proceedings of the First International Communication Systems and Networks, pp.1-8, Jan [35] G. Dimitrakopoulos, K. Tsagkaris, K. Demestichas, E. Adamopoulou and P. Demestichas, A Management Scheme for Distributed Cross-Layer Reconfigurations in the Context of Cognitive B3G Infrastructure, Computer Communications, Vol. 30, No. 18, pp , Dec [36] Y. Young, W. Lifeng and Y. Quan, Cross-Layer Architecture in Cognitive Ad Hoc Networks, Proceedings of the International Conference on Communications and Mobile Computing, Vol. 2, pp. 6-8, Jan [37] L. Xu and B. Jennings, Automating the Generation, Deployment and Application of Charging Schemes for Composed IMS Services, Proceedings of the 10 th IFIP/IEEE Symposium on Integrated Network Management, PP May 2007 [38] B. Bhushan, M. Tschichhols, E. Leray and W. Connelly, Federated Accounting: Service Charging and Billing in a Business to Business Environment, Proceedings of the IFIP/IEEE Int l Symposium on Integrated Network Management, pp , [39] M. Koutsopoulou, A. Kaloxylos, A. Alonistioti and L. Merakos, A Platform for Charging, Billing & Accounting in Future Mobile Networks, Computer Communications, Vol. 30, No. 3, pp , 2007 [40] W. Ooms, Providing AAA with the Diameter Protocol for Multidomain Interacting Services, Masters Thesis, University of Twente, June [41] E. Costa-Montenegro, J.C. Burguillo-Rial, P.S Rodriguez-Hernandez, F.J. Gonzalez-Castano, M. Curras-Parada, P. Gomez-Rana and J.P. Rey-Souto, Multi-Agent System Model of a BitTorrent Network, Proceedings of the International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing, pp , Aug [42] N. Gatti, F. Amigoni and M. Rolando, Multiagent Technology Solutions for Planning in Ambient Intelligence, Proceedings of the IEEE International Conference on Web Intelligence and Intelligent Agent Technology, Vol. 2, pp , Dec [43] M. Waibel, L. Keller and D. Floreano, Genetic Team Composition and Level of Selection in the Evolution of Cooperation, IEEE Transactions on Evolutionary Computation, Vol. 13, No. 3, pp , Jun [44] Y. Suo, N. Miyata, H. Morikawa, T. Ishida and Y. Shi, Open Smart Classroom: Extensible and Scalable Learning System in Smart Space Using Web Service Technology, IEEE Transactions on Knowledge and Data Engineering, Vol. 21, No. 6, pp , Jun [45] L. Busoniu, R. Babuska and B.D. Schutter A Comprehensive Survey of Multiagent Reinforcement Learning, IEEE Transactions on Systems, Man and Cybernetics, Part C: Applications and Reviews, Vol. 38, No. 3, pp , Mar [46] V. Mahulkar, S. McKay, D.E. Adams and A.R. Chaturvedi, System-of-Systems Modeling and Simulation of a Ship Environment with Wireless and Intelligent Maintenance Technologies, IEEE Transactions on Systems, Vol. 39, No. 6, pp , Nov [47] J Oscar and L Romero, Self-Organized and Evolvable Cognitive Architecture for Intelligent Agents and Multi-agent Systems, Proceedings of the International Conference on Computer Engineering and Applications (ICCEA), Vol. 1, pp , Nov [48] A. Batool, A. Fardin and M. Parham, A Multi-Agent Based Personalized Meta-Search Engine Using Automatic Fuzzy Concept Networks, Proceedings of the International Conference on 第 23 頁 / 共 89 頁

25 Knowledge Discovery and Data Mining, pp , Apr [49] C. Xian-yi, L. Ying and Q. Jian-lin, Cooperative Learning Based on Multi-Agent Systems, Proceedings of the International Conference on Knowledge Discovery and Data Mining, pp , March [50] J. Yoon, K. Oh, C. Nam and D. Shin, Agent-based Sensor Network Middleware using Reputation Mechanism over Heterogeneous Network Environments, Proceedings of the International Conference on Computer and Automation Engineering (ICCAE), Vol. 2, pp , April [51] H. Al-Sammarraie, A. Merza, A. Shakeel and M. Adli, Intelligent Agent System Architecture for Presenting Health Grid Contents from Complex Database, Proceedings of the International Conference on Intelligent Systems, Modelling and Simulation (ISMS),pp , Feb [52] S. Arnon, D. Dov and S. Onn, An Object-Process-Based Modeling Language for Multiagent Systems, IEEE Transactions on Systems, Man, and Cybernetics, Part C: Applications and Reviews, Vol. 40, No. 2, pp , Feb [53] S. Liu, S. Wu and J.L. Chen, "Adaptive Cross-layer QoS Mechanism for Cognitive Network Applications," Proceedings of IEEE 12 th International Conference on Advanced Communication Technology (ICACT), Vol. 2, pp , Feb [54] R. Sunku, G.P. Rohan, M. Pande and D. Das, "Offline Charging for Multimedia Blended Services Using Service Capability Interaction Manager in IMS Network," Proceedings of the International Conference on Internet Multimedia Services Architecture and Application (IMSAA), pp.1-6, March [55] A. Sarajlic and A. Sarajlic, "Definition, Analytical Derivation and Optimization of the Lower Credit Limit in Mobile User s Prepaid Account for IMS Services," Proceedings of the International Conference on Information Technology Interfaces (ITI), pp , Aug 第 24 頁 / 共 89 頁

26 附錄程式碼 1. DecisionEngine.java package pcrf; import java.io.*; import java.net.*; import java.util.*; import de.fhg.fokus.constants; import de.fhg.fokus.diameter.diameterpeer.data.avp; import de.fhg.fokus.diameter.diameterpeer.data.diametermessa ge; import de.fhg.fokus.diameter.diameterpeer.transaction.transact ionlistener; import de.fhg.fokus.diameter.diameterpeer.diameterpeer; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.parsers.parserconfigurationexception; import org.w3c.dom.document; import org.w3c.dom.element; import org.w3c.dom.nodelist; import org.xml.sax.saxexception; import org.apache.xml.serialize.xmlserializer; import org.apache.xml.serialize.outputformat; /** * DecisionEngine: * * This class implements the functions to deal with resource request at the PCRF * - It loads all listed policies and policy profiles * - defines policy processor blocks for each policy type * - passes session information (new and modified) to each policy processor block (depending on priority) * - Enforces returned policy rules in the transport layer */ public class DecisionEngine DiameterPeer diameterpeer; xcap policyengine = null; String[] policies = new String[10]; String policy_db = ""; String username =""; String password = ""; int remote_xcap_server; /** Decision Engine constructor intialises variables*/ public DecisionEngine(DiameterPeer diameterpeer, String policy_db, String[] policies, String username, String password, int remote_xcap_server) throws IOException this.diameterpeer = diameterpeer; this.diameterpeer.enabletransactions(10,1); this.policies = policies; this.policy_db = policy_db; this.username = username; this.password = password; this.remote_xcap_server = remote_xcap_server; policyengine = new xcap (policy_db, "domain_policies", username, password, remote_xcap_server); 第 25 頁 / 共 89 頁

27 /** * this loads the necessary policies and invokes policy processor blocks based on priorities and trigger points * and installs the created policy rule service information */ public int authorisation_request(string af_session, Vector ip_flows, Vector codecs) throws IOException int result_code = -1; /**Get policy profile information*/ /**policy name; priority; trigger point*/ Vector policy_vector = new Vector(); for (int a = 0; a < policies.length; a++) if(policies[a]!= null) String policy_info = policies[a] + ";"; String profile_loc = "/opt/openimscore/uctpcrf/policies/" + "profile_" + policies[a] + ".xml"; //read policy profile information Document doc = null; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try //Using factory get an instance of document builder DocumentBuilder db = dbf.newdocumentbuilder(); //parse using builder to get DOM representation of the XML file doc = db.parse(profile_loc); catch(parserconfigurationexception pce) pce.printstacktrace(); catch(saxexception se) se.printstacktrace(); catch(ioexception ioe) ioe.printstacktrace(); Element docele = doc.getdocumentelement(); //get all policy information into vector format NodeList nl = docele.getelementsbytagname("priority"); if(nl!= null && nl.getlength() > 0) Element priority = (Element)nl.item(0); policy_info = policy_info + priority.getfirstchild().getnodevalue().tostring() + ";"; nl = docele.getelementsbytagname("trigger_point"); if(nl!= null && nl.getlength() > 0) Element trigger_point = (Element)nl.item(0); NodeList nl1 = trigger_point.getelementsbytagname("media"); if(nl1!= null && nl1.getlength() > 0) Element media = (Element)nl1.item(0); 第 26 頁 / 共 89 頁

28 policy_info = policy_info + media.getfirstchild().getnodevalue().tostring(); policy_vector.add(policy_info); //check if session is new request or already existing //if already existing remove current IP flow rules from the bearer level //extract session ID StringTokenizer st = new StringTokenizer(af_session,";"); /**The session ID has 2 semi-colons in it, so 3 tokens form the session ID*/ /**TO DO Define a way to decide how long the session id is, perhaps read from the back*/ String session_id = st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); String orig_realm = st.nexttoken(); String dest_realm = st.nexttoken(); if(policyengine.sessionexists(session_id) == 1) System.out.println("INFO: Session ID: " + session_id + " already exists, removing current IP Flow rules"); //remove IP flows from bearer level Vector current_ip_flows = policyengine.getipflows(session_id); for (int b = 0; b < current_ip_flows.size(); b++) int avail_qos_ul = 0; int avail_qos_dl = 0; st = new StringTokenizer(current_ip_flows.get(b).toString(),";"); session_id = st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); String flow_id = st.nexttoken(); String source_ip = st.nexttoken(); String dest_ip = st.nexttoken(); int dest_port = Integer.valueOf(st.nextToken()).intValue(); int source_port = Integer.valueOf(st.nextToken()).intValue(); int usage = Integer.valueOf(st.nextToken()).intValue(); int status = Integer.valueOf(st.nextToken()).intValue(); int bw_ul = Integer.valueOf(st.nextToken()).intValue(); int bw_dl = Integer.valueOf(st.nextToken()).intValue(); int QoS_class = Integer.valueOf(st.nextToken()).intValue(); int guaranteed_br_ul = bw_ul; //defaults to same as max int guaranteed_br_dl = bw_dl; //defaults to same as max String PCC_rule_name = session_id + ";" + flow_id; String pcef_address = ""; /**Only send DIAMETER RAR remove message if flow is already enabled*/ 第 27 頁 / 共 89 頁

29 if(status == Constants.FlowStatus.ENABLED) /**Send DIAMETER RAR remove message via Gx*/ DiameterMessage rar = createrar(session_id,dest_realm,pcc_rule_name,sourc e_ip,dest_ip,source_port,dest_port,qos_class,bw_ul,bw_ dl,guaranteed_br_ul,guaranteed_br_dl,1); //command - 1 remove System.out.println(); System.out.println(" "); System.out.println(); System.out.println("INFO: Sending DIAMETER RAR message to PCEF"); pcef_address = policyengine.getpcef(orig_realm,dest_realm); DiameterMessage raa = diameterpeer.sendrequestblocking(pcef_address,rar); if (raa==null) AVP result_code_avp = raa.findavp(constants.avpcode.result_code,true, Constants.Vendor.DIAM); if(result_code_avp!= null) result_code = result_code_avp.int_data; if(result_code == Constants.ResultCode._DIAMETER_SUCCESS) System.out.println("INFO: Result code SUCCESS received from PCEF"); else if(result_code == Constants.ResultCode._DIAMETER_ERROR_INITIAL _PARAMETERS) System.out.println("INFO: Time out waiting for PCEF RAA via Gx"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else System.out.println(); System.out.println("INFO: Received DIAMETER RAA message from PCEF"); if (raa.commandcode == Constants.Command.RAA) System.out.println("INFO: Result code INVALID INITIAL PARAMETERS received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else if(result_code == Constants.ResultCode._DIAMETER_ERROR_TRIGGE R_EVENT) 第 28 頁 / 共 89 頁

30 System.out.println("INFO: Result code TRIGGER ERROR EVENT received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else if(result_code == Constants.ResultCode._DIAMETER_PCC_RULE_EVE NT) System.out.println("INFO: Result code PCC RULE EVENT received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else System.out.println("INFO: Unknown Result Code received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; System.out.println("INFO: IP Flow with flow id: " + flow_id + " is being removed from the bearer level"); else result_code = Constants.ResultCode._DIAMETER_SUCCESS; if(result_code == Constants.ResultCode._DIAMETER_SUCCESS) //invoke policies according to priority and trigger points //find highest priority and invoke - then remove policy and find next highest priority policy - continue until all policies invoked while(policy_vector.size()>0) int highest_priority = 100; int highest_priority_tag = -1; for (int a = 0; a < policy_vector.size(); a++) st = new StringTokenizer(policy_vector.get(a).toString(),";"); st.nexttoken(); int priority = Integer.valueOf(st.nextToken()).intValue(); if(priority < highest_priority) highest_priority = priority; 第 29 頁 / 共 89 頁

31 highest_priority_tag = a; //policy with highest priority is policy_vector(a) //create policy processor block for this policy //pass info to this processor block and result code in return //if result success enforce IP Flows //then remove policy from policy vector st = new StringTokenizer(policy_vector.get(highest_priority_tag). tostring(),";"); String policy = st.nexttoken(); st.nexttoken(); String trigger_point = st.nexttoken(); if(policy.equals("domain_policies")) if(trigger_point.equals("any")) DomainPolicyProcessor dpp = new DomainPolicyProcessor(diameterPeer, policy_db, policy, username, password, remote_xcap_server); result_code = dpp.authorisation_request(af_session, ip_flows, codecs); policy_vector.removeelementat(highest_priority_t ag); /**TO DO Add support to create dynamic Policy Processor Blocks*/ //ADD new policy processor blocks here - remember to check the trigger points for each IP Flow which determine whether that policy should be called /**To enforce ENABLED IP Flows in the bearer level*/ if (result_code == Constants.ResultCode._DIAMETER_SUCCESS) result_code = enforce_ip_flows(ip_flows, orig_realm, dest_realm); if (result_code == Constants.ResultCode._DIAMETER_SUCCESS) System.out.println("\nINFO: The Request is Successful. The new session has ID : " + session_id); return result_code; /** * This methods check through a session IP Flows and enforces those marked ENABLED in the bearer level ip_flows all IP Flows assocaited with IMS session orig_realm the realm or domain of the orginating user 第 30 頁 / 共 89 頁

32 dest_realm the realm or domain of the destination user */ public int enforce_ip_flows(vector ip_flows, String orig_realm, String dest_realm) throws IOException int result_code = -1; ";" + flow_id; int QoS_class = Integer.valueOf(st.nextToken()).intValue(); System.out.println(session_id + ";" + flow_id + ";" + source_ip + ";" + dest_ip + ";" + source_port + ";" + dest_port + ";" + usage + ";" + status + ";" + bw_ul + ";" + bw_dl + ";" + QoS_class); int b = 0; for (b = 0; b < ip_flows.size(); b++) StringTokenizer st = new StringTokenizer(ip_flows.get(b).toString(),";"); String session_id = st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); String flow_id = st.nexttoken(); String source_ip = st.nexttoken(); String dest_ip = st.nexttoken(); int dest_port = Integer.valueOf(st.nextToken()).intValue(); int source_port = Integer.valueOf(st.nextToken()).intValue(); int usage = Integer.valueOf(st.nextToken()).intValue(); int status = Integer.valueOf(st.nextToken()).intValue(); int bw_ul = Integer.valueOf(st.nextToken()).intValue(); int bw_dl = Integer.valueOf(st.nextToken()).intValue(); int guaranteed_br_ul = bw_ul; //defaults to same as max int guaranteed_br_dl = bw_dl; //defaults to same as max String PCC_rule_name = session_id + String pcef_address = ""; /** enable the IP Flow in the bearer level*/ if(status == Constants.FlowStatus.ENABLED) /**Send Diameter RAR install message via Gx*/ DiameterMessage rar = createrar(session_id,dest_realm,pcc_rule_name,sourc e_ip, dest_ip, source_port,dest_port,qos_class,bw_ul,bw_dl,guarantee d_br_ul,guaranteed_br_dl,2); //command - 2 for install System.out.println(); System.out.println(" "); System.out.println(); System.out.println("INFO: Sending DIAMETER RAR message to PCEF"); pcef_address = policyengine.getpcef(orig_realm,dest_realm); DiameterMessage raa = diameterpeer.sendrequestblocking(pcef_address,rar); if (raa==null) System.out.println("INFO: Time out waiting for PCEF RAA via Gx"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM 第 31 頁 / 共 89 頁

33 ATION; return result_code; else if (raa.commandcode == Constants.Command.RAA) System.out.println(); System.out.println("INFO: Received DIAMETER RAA message from PCEF"); AVP result_code_avp = raa.findavp(constants.avpcode.result_code,true, Constants.Vendor.DIAM); if(result_code_avp!= null) result_code = result_code_avp.int_data; if(result_code == Constants.ResultCode._DIAMETER_SUCCESS) System.out.println("INFO: AAR Result code SUCCESS received from PCEF"); else if(result_code == Constants.ResultCode._DIAMETER_ERROR_INITIAL _PARAMETERS) System.out.println("INFO: AAR Result code INVALID INITIAL PARAMETERS received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else if(result_code == Constants.ResultCode._DIAMETER_ERROR_TRIGGE R_EVENT) System.out.println("INFO: Result code TRIGGER ERROR EVENT received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else if(result_code == Constants.ResultCode._DIAMETER_PCC_RULE_EVE NT) System.out.println("INFO: Result code PCC RULE EVENT received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else 第 32 頁 / 共 89 頁

34 System.out.println("INFO: Unknown Result Code received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; System.out.println("INFO: IP Flow with flow id: " + flow_id + " is being enforced in the bearer level"); /** disable the IP Flow in the bearer level*/ else if (status == Constants.FlowStatus.DISABLED) /**Send DIAMETER RAR remove message via Gx*/ DiameterMessage rar = createrar(session_id,dest_realm,pcc_rule_name,sourc e_ip,dest_ip, source_port,dest_port,qos_class,bw_ul,bw_dl,guarantee d_br_ul,guaranteed_br_dl,1); //command - 1 for remove System.out.println(); System.out.println(" "); System.out.println(); System.out.println("INFO: Sending DIAMETER RAR message to PCEF"); pcef_address = policyengine.getpcef(orig_realm,dest_realm); DiameterMessage raa = diameterpeer.sendrequestblocking(pcef_address,rar); if (raa==null) System.out.println("INFO: Time out waiting for PCEF RAA via Gx"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else if (raa.commandcode == Constants.Command.RAA) System.out.println(); System.out.println("INFO: Received DIAMETER RAA message from PCEF"); AVP result_code_avp = raa.findavp(constants.avpcode.result_code,true, Constants.Vendor.DIAM); if(result_code_avp!= null) result_code = result_code_avp.int_data; if(result_code == Constants.ResultCode._DIAMETER_SUCCESS) System.out.println("INFO: AAR Result code SUCCESS received from PCEF"); else if(result_code == Constants.ResultCode._DIAMETER_ERROR_INITIAL _PARAMETERS) 第 33 頁 / 共 89 頁

35 System.out.println("INFO: AAR Result code INVALID INITIAL PARAMETERS received from PCEF"); result_code; else return result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else if(result_code == Constants.ResultCode._DIAMETER_ERROR_TRIGGE R_EVENT) System.out.println("INFO: Result code TRIGGER ERROR EVENT received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else if(result_code == Constants.ResultCode._DIAMETER_PCC_RULE_EVE NT) System.out.println("INFO: Result code PCC RULE EVENT received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; System.out.println("INFO: Unknown Result Code received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; System.out.println("INFO: IP Flow with flow id: " + flow_id + " is being removed from the bearer level"); else System.out.println("INFO: Flow status not yet recognised"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; if(result_code == Constants.ResultCode._DIAMETER_SUCCESS) System.out.println("INFO: IP Flows associated with IMS session have been successfully processed"); 第 34 頁 / 共 89 頁

36 return result_code; /** * this loads the necessary policies and invokes policy processor blocks based on priorities and trigger points * and removes the created policy rule af_session session information */ public int termination_request(string af_session) throws IOException Document doc = null; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try //Using factory get an instance of document builder DocumentBuilder db = dbf.newdocumentbuilder(); //parse using builder to get DOM representation of the XML file doc = db.parse(profile_loc); int result_code = -1; StringTokenizer st = new StringTokenizer(af_session,";"); String session_id = st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); String orig_realm = st.nexttoken(); String dest_realm = st.nexttoken(); /**Get policy profile information*/ /**policy name; priority; trigger point*/ Vector policy_vector = new Vector(); for (int a = 0; a < policies.length; a++) if(policies[a]!= null) String policy_info = policies[a] + ";"; String profile_loc = "/opt/openimscore/uctpcrf/policies/" + "profile_" + policies[a] + ".xml"; //read policy profile information catch(parserconfigurationexception pce) pce.printstacktrace(); catch(saxexception se) se.printstacktrace(); catch(ioexception ioe) ioe.printstacktrace(); Element docele = doc.getdocumentelement(); //get all policy information into vector format NodeList nl = docele.getelementsbytagname("priority"); if(nl!= null && nl.getlength() > 0) Element priority = (Element)nl.item(0); policy_info = policy_info + priority.getfirstchild().getnodevalue().tostring() + ";"; 第 35 頁 / 共 89 頁

37 nl = docele.getelementsbytagname("trigger_point"); if(nl!= null && nl.getlength() > 0) Element trigger_point = (Element)nl.item(0); NodeList nl1 = trigger_point.getelementsbytagname("media"); if(nl1!= null && nl1.getlength() > 0) Element media = (Element)nl1.item(0); policy_info = policy_info + media.getfirstchild().getnodevalue().tostring(); policy_vector.add(policy_info); String flow_id = st.nexttoken(); String source_ip = st.nexttoken(); String dest_ip = st.nexttoken(); int dest_port = Integer.valueOf(st.nextToken()).intValue(); int source_port = Integer.valueOf(st.nextToken()).intValue(); int usage = Integer.valueOf(st.nextToken()).intValue(); int status = Integer.valueOf(st.nextToken()).intValue(); int bw_ul = Integer.valueOf(st.nextToken()).intValue(); int bw_dl = Integer.valueOf(st.nextToken()).intValue(); int QoS_class = Integer.valueOf(st.nextToken()).intValue(); int guaranteed_br_ul = bw_ul; //defaults to same as max int guaranteed_br_dl = bw_dl; //defaults to same as max String PCC_rule_name = session_id + ";" + flow_id; //remove IP flows from bearer level Vector current_ip_flows = policyengine.getipflows(session_id); for (int b = 0; b < current_ip_flows.size(); b++) int avail_qos_ul = 0; int avail_qos_dl = 0; st = new StringTokenizer(current_ip_flows.get(b).toString(),";"); session_id = st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); String pcef_address = ""; /**Only send DIAMETER RAR remove message if flow is already enabled*/ if(status == Constants.FlowStatus.ENABLED) /**Send DIAMETER RAR remove message via Gx*/ DiameterMessage rar = createrar(session_id,dest_realm,pcc_rule_name,sourc e_ip,dest_ip,source_port,dest_port,qos_class,bw_ul,bw_ dl,guaranteed_br_ul,guaranteed_br_dl,1); //command - 1 remove System.out.println(); 第 36 頁 / 共 89 頁

38 System.out.println(" "); System.out.println(); System.out.println("INFO: Sending DIAMETER RAR message to PCEF"); pcef_address = policyengine.getpcef(orig_realm,dest_realm); DiameterMessage raa = diameterpeer.sendrequestblocking(pcef_address,rar); int counter = 0; if (raa==null) if(counter == 3) System.out.println("INFO: Time out waiting for PCEF RAA via Gx"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else try Thread.sleep(100); catch (Exception err) err.printstacktrace(); counter++; else System.out.println(); System.out.println("INFO: Received DIAMETER RAA message from PCEF"); if (raa.commandcode == Constants.Command.RAA) AVP result_code_avp = raa.findavp(constants.avpcode.result_code,true, Constants.Vendor.DIAM); if(result_code_avp!= null) result_code = result_code_avp.int_data; if(result_code == Constants.ResultCode._DIAMETER_SUCCESS) System.out.println("INFO: AAR Result code SUCCESS received from PCEF"); else if(result_code == Constants.ResultCode._DIAMETER_ERROR_INITIAL _PARAMETERS) System.out.println("INFO: AAR Result code INVALID INITIAL PARAMETERS received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; 第 37 頁 / 共 89 頁

39 else if(result_code == Constants.ResultCode._DIAMETER_ERROR_TRIGGE R_EVENT) System.out.println("INFO: Result code TRIGGER ERROR EVENT received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else if(result_code == Constants.ResultCode._DIAMETER_PCC_RULE_EVE NT) System.out.println("INFO: Result code PCC RULE EVENT received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; else System.out.println("INFO: Unknown Result Code received from PCEF"); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; System.out.println("INFO: IP Flow with flow id: " + flow_id + " is being removed from the bearer level"); if(result_code == Constants.ResultCode._DIAMETER_SUCCESS) //invoke policies according to priority and trigger points //find highest priority and invoke - then remove policy and find next highest priority policy - continue until all policies invoked while(policy_vector.size()>0) int highest_priority = 100; int highest_priority_tag = -1; for (int a = 0; a < policy_vector.size(); a++) st = new StringTokenizer(policy_vector.get(a).toString(),";"); st.nexttoken(); int priority = Integer.valueOf(st.nextToken()).intValue(); if(priority < highest_priority) highest_priority = priority; 第 38 頁 / 共 89 頁

40 highest_priority_tag = a; //policy with highest priority is policy_vector(a) //create policy processor block for this policy //pass info to this processor block and result code in return //if result success enforce IP Flows //then remove policy from policy vector st = new StringTokenizer(policy_vector.get(highest_priority_tag). tostring(),";"); String policy = st.nexttoken(); st.nexttoken(); String trigger_point = st.nexttoken(); if(policy.equals("domain_policies")) if(trigger_point.equals("any")) DomainPolicyProcessor dpp = new DomainPolicyProcessor(diameterPeer, policy_db, policy, username, password, remote_xcap_server); result_code = dpp.termination_request(af_session); policy_vector.removeelementat(highest_priority_t ag); /**TO DO Add support to create dynamic Policy Processor Blocks*/ //ADD new policy processor blocks here - remember to check the trigger points for each IP Flow which determine whether that policy should be called System.out.println("INFO: IMS with session_id: " + session_id + " has been removed as well as all associated IP Flows"); return result_code; /** * This creates a DIAMETER RAR message input */ private DiameterMessage createrar (String session_id,string destination_realm,string PCC_rule_name,String source_ip,string dest_ip,int source_port,int dest_port,int qos_class_identifier,int max_bw_ul,int max_bw_dl,int guaranteed_br_ul,int guaranteed_br_dl, int command) DiameterMessage rar = diameterpeer.newrequest(constants.command.rar,co nstants.application.gx); /**add session-id*/ AVP session_id_avp = new AVP(Constants.AVPCode.SESSION_ID,true, Constants.Vendor.DIAM); session_id_avp.setdata(session_id); rar.addavp(session_id_avp); 第 39 頁 / 共 89 頁

41 /**add Auth Application id */ AVP auth_application_id_avp = new AVP(Constants.AVPCode.AUTH_APPLICATION_ID, true, Constants.Vendor.DIAM); auth_application_id_avp.setdata(constants.application. GX); rar.addavp(auth_application_id_avp); /**add destination-realm*/ AVP destination_realm_avp = new AVP(AVP.Destination_Realm,true,Constants.Vendor.DI AM); destination_realm_avp.setdata(destination_realm); rar.addavp(destination_realm_avp); if(command == 1) /**add PCC Rule remove*/ AVP charging_rule_remove_avp = new AVP(Constants.AVPCode.CHARGING_RULE_REMO VE,true,Constants.Vendor.V3GPP); /*Charging rule definition*/ AVP charging_rule_definition_avp = new AVP(Constants.AVPCode.CHARGING_RULE_DEFIN ITION,true,Constants.Vendor.V3GPP); /*Flow description1*/ AVP flow_description_avp = new AVP(Constants.AVPCode.FLOW_DESCRIPTION,true, Constants.Vendor.V3GPP); String flow = "permit out ip from " + source_ip + " to " + dest_ip + " " + dest_port; flow_description_avp.setdata(flow); charging_rule_definition_avp.addchildavp(flow_ description_avp); /*Flow description2*/ flow_description_avp = new AVP(Constants.AVPCode.FLOW_DESCRIPTION,true, Constants.Vendor.V3GPP); flow = "permit in ip from " + dest_ip + " to " + source_ip + " " + source_port; flow_description_avp.setdata(flow); charging_rule_definition_avp.addchildavp(flow_ description_avp); charging_rule_remove_avp.addchildavp(chargin g_rule_definition_avp); /*Charging rule name*/ AVP charging_rule_name_avp = new AVP(Constants.AVPCode.CHARGING_RULE_NAME, true,constants.vendor.v3gpp); charging_rule_name_avp.setdata(pcc_rule_name ); charging_rule_remove_avp.addchildavp(chargin g_rule_name_avp); rar.addavp(charging_rule_remove_avp); else if (command == 2) /**add PCC Rule install*/ AVP charging_rule_install_avp = new AVP(Constants.AVPCode.CHARGING_RULE_INSTA LL,true,Constants.Vendor.V3GPP); /*Charging rule definition*/ 第 40 頁 / 共 89 頁

42 AVP charging_rule_definition_avp = new AVP(Constants.AVPCode.CHARGING_RULE_DEFIN ITION,true,Constants.Vendor.V3GPP); /*Flow description1*/ AVP flow_description_avp = new AVP(Constants.AVPCode.FLOW_DESCRIPTION,true, Constants.Vendor.V3GPP); String flow = "permit out ip from " + source_ip + " to " + dest_ip + " " + source_port; _rule_name_avp); rar.addavp(charging_rule_install_avp); else System.out.println("Unknown command in Create RAR Message"); return null; flow_description_avp.setdata(flow); charging_rule_definition_avp.addchildavp(flow_ description_avp); /*Flow description2*/ flow_description_avp = new AVP(Constants.AVPCode.FLOW_DESCRIPTION,true, Constants.Vendor.V3GPP); flow = "permit in ip from " + dest_ip + " to " + source_ip + " " + dest_port; flow_description_avp.setdata(flow); charging_rule_definition_avp.addchildavp(flow_ description_avp); charging_rule_install_avp.addchildavp(charging _rule_definition_avp); /*Charging rule name*/ AVP charging_rule_name_avp = new AVP(Constants.AVPCode.CHARGING_RULE_NAME, true,constants.vendor.v3gpp); /**add Authorised QoS*/ AVP authorised_qos_avp = new AVP(Constants.AVPCode.AUTHORISED_QOS,true,Co nstants.vendor.v3gpp); /*QoS Class identifier*/ AVP qos_class_identifier_avp = new AVP(Constants.AVPCode.QOS_CLASS_IDENTIFIER,t rue,constants.vendor.v3gpp); qos_class_identifier_avp.setdata(qos_class_identif ier); authorised_qos_avp.addchildavp(qos_class_ident ifier_avp); /*Max requested bandwidth uplink*/ AVP max_requested_bandwidth_ul_avp = new AVP(Constants.AVPCode.MAX_REQUESTED_BAND WIDTH_UL,true,Constants.Vendor.V3GPP); max_requested_bandwidth_ul_avp.setdata(max_b w_ul); ); charging_rule_name_avp.setdata(pcc_rule_name charging_rule_install_avp.addchildavp(charging authorised_qos_avp.addchildavp(max_requested _bandwidth_ul_avp); /*Max requested bandwidth downlink*/ AVP max_requested_bandwidth_dl_avp = 第 41 頁 / 共 89 頁

43 new AVP(Constants.AVPCode.MAX_REQUESTED_BAND WIDTH_DL,true,Constants.Vendor.V3GPP); import java.io.*; import java.net.*; import java.util.*; max_requested_bandwidth_dl_avp.setdata(max_b w_dl); authorised_qos_avp.addchildavp(max_requested _bandwidth_dl_avp); /*Guaranteed bitrate uplink*/ AVP guaranteed_bitrate_ul_avp = new AVP(Constants.AVPCode.GUARANTEED_BITRATE_ UL,true,Constants.Vendor.V3GPP); guaranteed_bitrate_ul_avp.setdata(guaranteed_br_ ul); import de.fhg.fokus.constants; import de.fhg.fokus.diameter.diameterpeer.data.avp; import de.fhg.fokus.diameter.diameterpeer.data.diametermessa ge; import de.fhg.fokus.diameter.diameterpeer.transaction.transact ionlistener; import de.fhg.fokus.diameter.diameterpeer.diameterpeer; authorised_qos_avp.addchildavp(guaranteed_bitr ate_ul_avp); /*Guaranteed bitrate downlink*/ AVP guaranteed_bitrate_dl_avp = new AVP(Constants.AVPCode.GUARANTEED_BITRATE_ DL,true,Constants.Vendor.V3GPP); guaranteed_bitrate_dl_avp.setdata(guaranteed_br_ dl); authorised_qos_avp.addchildavp(guaranteed_bitr ate_dl_avp); rar.addavp(authorised_qos_avp); /** * DomainPolicyProcessor: * * This class implements Session Admission and policy rule creation for Domain Policies */ public class DomainPolicyProcessor DiameterPeer diameterpeer; xcap policyengine = null; return rar; 2. DomainPolicyProcessor.java package pcrf; /** Decision Engine constructor intialises variables*/ public DomainPolicyProcessor(DiameterPeer diameterpeer, String policy_db, String policy, String username, String password, int remote_xcap_server) throws IOException 第 42 頁 / 共 89 頁

44 this.diameterpeer = diameterpeer; this.diameterpeer.enabletransactions(10,1); this.policyengine = new xcap(policy_db, policy, username, password, remote_xcap_server); result_code = Constants.ResultCode._REQUESTED_SERVICE_NOT _AUTHORISED; return result_code; public int authorisation_request(string af_session, Vector ip_flows, Vector codecs) throws IOException int result_code = -1; //extract session ID StringTokenizer st = new StringTokenizer(af_session,";"); /**The session ID has 2 semi-colons in it, so 3 tokens form the session ID*/ /**TO DO Define a way to decide how long the session id is, perhaps read from the back*/ String session_id = st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); String orig_realm = st.nexttoken(); String dest_realm = st.nexttoken(); String source_ip = ""; String dest_ip = ""; /**Check that originating and destination realms are authorised domains*/ if(policyengine.checkdomain(orig_realm, dest_realm) == 1) System.out.println("INFO: Originating and Destination Domains authorised "); else System.out.println("\nINFO: " + new java.util.date().tostring() + " Session with ID : " + session_id + " attempted to use unauthorised domain"); result_code = Constants.ResultCode._REQUESTED_SERVICE_NOT _AUTHORISED; return result_code; /**Check if session is new or if session already exists and is to be modified*/ /**Check that codecs are supported*/ if(policyengine.checkcodecs(codecs) == 1) System.out.println("INFO: Codecs authorised"); else System.out.println("\nINFO: " + new java.util.date().tostring() + " Session with ID : " + session_id + " attempted to use unauthorised codec"); if(policyengine.sessionexists(session_id) == 1) System.out.println("INFO: Session ID: " + session_id + " already exists"); result_code = modsession(af_session, ip_flows, codecs); else System.out.println("INFO: Session ID: 第 43 頁 / 共 89 頁

45 " + session_id + " does not exist"); result_code = newsession(af_session, ip_flows, codecs); return result_code; /** * This checks if a new session is authorised and if so stores the relevant data in the policy repository af_session session information ip_flows associated ip flow information codecs requested codecs */ private int newsession(string af_session, Vector ip_flows, Vector codecs) throws IOException int result_code = -1; /**session id; originating realm; destination realm; source ip; dest ip*/ //extract session information StringTokenizer st = new StringTokenizer(af_session,";"); String session_id = st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); String orig_realm = st.nexttoken(); String dest_realm = st.nexttoken(); String source_ip = ""; String dest_ip = ""; int total_req_bw_ul = 0; int total_req_bw_dl = 0; int avail_qos_bw_ul = 0; int avail_qos_bw_dl = 0; /**Check that the requested QoS classes can handle the bandwidth requirements for each IP Flow*/ for (int a = 0; a < ip_flows.size(); a++) st = new StringTokenizer(ip_flows.get(a).toString(),";"); int req_bw_ul = 0; int req_bw_dl = 0; int QoS_class = -1; int i = 0; String temp = ""; for (i = 0 ;i < 10 ;i++) temp = st.nexttoken(); req_bw_ul = Integer.valueOf(st.nextToken()).intValue(); req_bw_dl = Integer.valueOf(st.nextToken()).intValue(); QoS_class = Integer.valueOf(st.nextToken()).intValue(); total_req_bw_ul = total_req_bw_ul + req_bw_ul; total_req_bw_dl = total_req_bw_dl + req_bw_dl; if(policyengine.checkqosbw(qos_class, req_bw_ul, req_bw_dl) == 0) System.out.println("\nINFO: " + 第 44 頁 / 共 89 頁

46 new java.util.date().tostring() + " Session with ID : " + session_id + " attempted to request more bandwidth than the requested QoS class can handle."); result_code = Constants.ResultCode._REQUESTED_SERVICE_NOT _AUTHORISED; return result_code; policyengine.insertsession(af_session, codecs); System.out.println("INFO: IMS Session information for session " + session_id + " added to Policy Repository"); System.out.println("INFO: Requested QoS class can handle the session bandwidth"); /**Check that the originating and destination realms can handle the bandwidth requirements for each IP Flow*/ if(policyengine.checkdomainbw(orig_realm, total_req_bw_ul, total_req_bw_dl) == 0 policyengine.checkdomainbw(dest_realm, total_req_bw_ul, total_req_bw_dl) == 0) System.out.println("\nINFO: " + new java.util.date().tostring() + " Session with ID: " + session_id + " attempted to request more bandwidth than the domains can handle."); result_code = Constants.ResultCode._REQUESTED_SERVICE_NOT _AUTHORISED;; return result_code; System.out.println("INFO: Originating and Destination Domains can handle the required bandwidth"); /**Manipulates the data repository to indicate the added IMS session and associated IP flows*/ /**add IP Flow parameters to IP_Flows tables*/ policyengine.insertipflow(ip_flows); System.out.println("INFO: IP Flow information for session " + session_id + " information added to Policy Repository"); /**edit QoS_classes remaining UL and DL bandwidth*/ for ( int b = 0; b < ip_flows.size(); b++) st = new StringTokenizer(ip_flows.get(b).toString(),";"); int req_bw_ul = 0; int req_bw_dl = 0; int QoS_class = -1; int i = 0; String temp = ""; for (i = 0 ;i < 10;i++) temp = st.nexttoken(); req_bw_ul = Integer.valueOf(st.nextToken()).intValue(); req_bw_dl = Integer.valueOf(st.nextToken()).intValue(); QoS_class = Integer.valueOf(st.nextToken()).intValue(); policyengine.reqqosbandwidth(qos_class,req_b 第 45 頁 / 共 89 頁

47 w_ul,req_bw_dl); /**edit Domain remaining UL and DL bandwidth*/ //if orig and dest realm are the same if(orig_realm.equalsignorecase(dest_realm)) policyengine.reqdomainbandwidth(orig_realm,tot al_req_bw_ul,total_req_bw_dl); //if orig and dest realm are different else policyengine.reqdomainbandwidth(orig_realm,tot al_req_bw_ul,total_req_bw_dl); policyengine.reqdomainbandwidth(dest_realm,tot al_req_bw_ul,total_req_bw_dl); int result_code = -1; /**session id; originating realm; destination realm; source ip; dest ip*/ //extract session information StringTokenizer st = new StringTokenizer(af_session,";"); String session_id = st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); String orig_realm = st.nexttoken(); String dest_realm = st.nexttoken(); String source_ip = ""; String dest_ip = ""; int total_req_bw_ul = 0; int total_req_bw_dl = 0; int avail_qos_bw_ul = 0; int avail_qos_bw_dl = 0; result_code = Constants.ResultCode._DIAMETER_SUCCESS; return result_code; /** * This checks if a previous sessions modifications are authorised and if so stores the relevant data in the policy repository service information */ public int modsession(string af_session, Vector ip_flows, Vector codecs) throws IOException /**Check that the requested QoS classes can handle the bandwidth requirements for each IP Flow*/ for (int a = 0; a < ip_flows.size(); a++) st = new StringTokenizer(ip_flows.get(a).toString(),";"); int req_bw_ul = 0; int req_bw_dl = 0; int QoS_class = -1; int i = 0; String temp = ""; for (i = 0 ;i < 10 ;i++) 第 46 頁 / 共 89 頁

48 temp = st.nexttoken(); req_bw_ul = Integer.valueOf(st.nextToken()).intValue(); req_bw_dl = Integer.valueOf(st.nextToken()).intValue(); QoS_class = Integer.valueOf(st.nextToken()).intValue(); total_req_bw_ul = total_req_bw_ul + req_bw_ul; total_req_bw_dl = total_req_bw_dl + req_bw_dl; if(policyengine.checkqosbw(qos_class, req_bw_ul, req_bw_dl) == 0) System.out.println("\nINFO: " + new java.util.date().tostring() + " Session with ID : " + session_id + " attempted to request more bandwidth than the requested QoS class can handle."); result_code = Constants.ResultCode._REQUESTED_SERVICE_NOT _AUTHORISED; return result_code; System.out.println("INFO: Requested QoS class can handle the session bandwidth"); /**Check that the originating and destination realms can handle the bandwidth requirements for each IP Flow*/ if(policyengine.checkdomainbw(orig_realm, total_req_bw_ul, total_req_bw_dl) == 0 policyengine.checkdomainbw(dest_realm, total_req_bw_ul, total_req_bw_dl) == 0) System.out.println("\nINFO: " + new java.util.date().tostring() + " Session with ID: " + session_id + " attempted to request more bandwidth than the domains can handle."); result_code = Constants.ResultCode._REQUESTED_SERVICE_NOT _AUTHORISED;; return result_code; System.out.println("INFO: Originating and Destination Domains can handle the required bandwidth"); /**Remove previous session*/ termination_request(af_session); /**Manipulates the data repository to indicate the added IMS session and associated IP flows*/ policyengine.insertsession(af_session, codecs); System.out.println("INFO: IMS Session information for session " + session_id + " added to Policy Repository"); /**add IP Flow parameters to IP_Flows tables*/ policyengine.insertipflow(ip_flows); System.out.println("INFO: IP Flow information for session " + session_id + " information added to Policy Repository"); 第 47 頁 / 共 89 頁

49 /**edit QoS_classes remaining UL and DL bandwidth*/ for ( int b = 0; b < ip_flows.size(); b++) st = new StringTokenizer(ip_flows.get(b).toString(),";"); int req_bw_ul = 0; int req_bw_dl = 0; int QoS_class = -1; int i = 0; String temp = ""; for (i = 0 ;i < 10;i++) temp = st.nexttoken(); req_bw_ul = Integer.valueOf(st.nextToken()).intValue(); req_bw_dl = Integer.valueOf(st.nextToken()).intValue(); QoS_class = Integer.valueOf(st.nextToken()).intValue(); policyengine.reqqosbandwidth(qos_class,req_b w_ul,req_bw_dl); /**edit Domain remaining UL and DL bandwidth*/ //if orig and dest realm are the same if(orig_realm.equalsignorecase(dest_realm)) policyengine.reqdomainbandwidth(orig_realm,tot al_req_bw_ul,total_req_bw_dl); //if orig and dest realm are different else policyengine.reqdomainbandwidth(orig_realm,tot al_req_bw_ul,total_req_bw_dl); policyengine.reqdomainbandwidth(dest_realm,tot al_req_bw_ul,total_req_bw_dl); result_code = Constants.ResultCode._DIAMETER_SUCCESS; return result_code; /** * This terminates an existing session * - Updates information in the policy repository af_session session information */ public int termination_request(string af_session) throws IOException int result_code = -1; StringTokenizer st = new StringTokenizer(af_session,";"); String session_id = st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); String orig_realm = st.nexttoken(); String dest_realm = st.nexttoken(); int total_bw_ul = 0; int total_bw_dl = 0; /**Check that session exists*/ if(policyengine.sessionexists(session_id) == 第 48 頁 / 共 89 頁

50 0) System.out.println("INFO: " + new java.util.date().tostring() + " Attempted to delete non-existent Session with session ID : " + session_id); result_code = Constants.ResultCode._INVALID_SERVICE_INFORM ATION; return result_code; /**Return bandwidth to individual QoS classes and calculate total bandwidth to be freed in each domain*/ Vector current_ip_flows = policyengine.getipflows(session_id); for (int b = 0; b < current_ip_flows.size(); b++) int avail_qos_ul = 0; int avail_qos_dl = 0; st = new StringTokenizer(current_ip_flows.get(b).toString(),";"); session_id = st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); String flow_id = st.nexttoken(); String source_ip = st.nexttoken(); String dest_ip = st.nexttoken(); int dest_port = Integer.valueOf(st.nextToken()).intValue(); int source_port = Integer.valueOf(st.nextToken()).intValue(); int usage = Integer.valueOf(st.nextToken()).intValue(); int status = Integer.valueOf(st.nextToken()).intValue(); int bw_ul = Integer.valueOf(st.nextToken()).intValue(); int bw_dl = Integer.valueOf(st.nextToken()).intValue(); int QoS_class = Integer.valueOf(st.nextToken()).intValue(); int guaranteed_br_ul = bw_ul; //defaults to same as max int guaranteed_br_dl = bw_dl; //defaults to same as max String PCC_rule_name = session_id + ";" + flow_id; total_bw_ul = total_bw_ul + bw_ul; total_bw_dl = total_bw_dl + bw_dl; policyengine.freeqosbandwidth(qos_class,bw_ul,bw_dl); /**return total free-ed bandwidth to orig and dest domains*/ /**return bandwidth to all domains*/ int avail_orig_realm_bw_ul = 0; int avail_orig_realm_bw_dl = 0; int avail_dest_realm_bw_ul = 0; int avail_dest_realm_bw_dl = 0; //if orig and dest realm are the same if(orig_realm.equalsignorecase(dest_realm)) policyengine.freedomainbandwidth(orig_realm,to tal_bw_ul,total_bw_dl); //if orig and dest realm are different 第 49 頁 / 共 89 頁

51 else policyengine.freedomainbandwidth(orig_realm,to tal_bw_ul,total_bw_dl); policyengine.freedomainbandwidth(dest_realm,to tal_bw_ul,total_bw_dl); /**remove all information from af_session*/ policyengine.deletesession(session_id); /**remove all associated ip flows*/ policyengine.deleteipflow(session_id); result_code = Constants.ResultCode._DIAMETER_SUCCESS; return result_code; 3. PCEF.java package pcrf; import java.net.socket; import java.net.*; import java.util.*; import java.io.*; import de.fhg.fokus.pcef_diam.pcefdiameterstack; import de.fhg.fokus.diameter.diameterpeer.diameterpeer; * - It initialises the Diameter stack and accepts connections from PCRFs * - Implements the state machine that defines the PCEF behaviour Richard Good */ public class PCEF pcefdiameterstack diameterstack; DiameterPeer diameterpeer; String pcrfaddress; String pcefid=null; LinuxRouter linux_router; static String policy_db = ""; static String[] policies = new String[10]; //max num policies 10 static String username = ""; static String password = ""; xcap policyengine = null; static int remote_xcap_server; //one if remote zero if local static String diffserv_interface=""; static int data_counter; //1 enabled 0 disabled /** * The main method args */ public static void main(string[] args) throws IOException getpreferences(); String pcefid = "1"; /** * PCEF: * * This is the main class for starting the PCEF //FOR TESTING PURPOSES ASSUME PCEF ID 1 //System.out.print("Enter PCEF Name : "); //pcefid = in.readline(); 第 50 頁 / 共 89 頁

52 PCEF pcef = new PCEF(pcefID); pcef.run(); /** * Constructor for PCEF * -initialises variables args */ public PCEF(String pcefid) throws IOException this.pcefid = pcefid; diameterpeer = new DiameterPeer("config/DiameterPeerPCEF.xml"); policyengine = new xcap (policy_db, "domain_policies", username, password, remote_xcap_server); pcrfaddress = policyengine.getpcrf(pcefid); linux_router = new LinuxRouter(diffserv_interface, pcrfaddress, policyengine, diameterpeer);//initialises machine as a linux router this.linux_router=linux_router; System.out.println("DEBUG: PCRF Address: " + pcrfaddress); // Starting pcef Diameter Stack try diameterstack = new pcefdiameterstack(linux_router, diameterpeer, remote_xcap_server); diameterstack.startup(); catch (Exception e) System.out.println("ERROR: " + e); e.printstacktrace(); System.out.println("INFO: PCEF Gx Diameter interface started"); waitforexit(); policyengine.statuspcef(pcefid, "Off"); diameterstack.shutdown(); String flush_iptables = "/opt/openimscore/uctpcrf/scripts/flush_iptables"; try /** * This connects to PCRF */ public void run() throws IOException //turns current PCEF ON System.out.println("INFO: Changing Status of PCEF #" + pcefid + " to 'On'"); policyengine.statuspcef(pcefid, "on"); System.out.println("INFO: This is PCEF number: " +pcefid); Runtime.getRuntime().exec(flush_iptables); catch (IOException e) System.out.println("ERROR: IOException" + e); System.exit(0); /**This retreives the preferences from 第 51 頁 / 共 89 頁

53 pcef.properties**/ private static void getpreferences() throws IOException StringBuffer filedata = new StringBuffer(1000); try BufferedReader reader = new BufferedReader(new FileReader("/opt/OpenIMSCore/uctpcrf/config/pcef.prop erties")); char[] buf = new char[1024]; int numread=0; while((numread=reader.read(buf))!= -1) String readdata = String.valueOf(buf, 0, numread); filedata.append(readdata); buf = new char[1024]; reader.close(); String filestr = filedata.tostring(); StringTokenizer st = new StringTokenizer(fileStr, "\n"); String policy_db_line = st.nexttoken(); StringTokenizer st1 = new StringTokenizer(policy_db_line, "="); st1.nexttoken(); StringTokenizer st2 = new StringTokenizer(st1.nextToken(), "\""); policy_db = st2.nexttoken(); String policies_line = ""; int pol = 0; while(pol!= -1) policies_line = st.nexttoken(); st1 = new StringTokenizer(policies_line, "="); if(st1.nexttoken().equals("policies")) st2 = new StringTokenizer(st1.nextToken(), "\""); policies[pol] = st2.nexttoken(); pol++; else pol = -1; String username_line = policies_line; st1 = new StringTokenizer(username_line, "="); st1.nexttoken(); st2 = new StringTokenizer(st1.nextToken(), "\""); username = st2.nexttoken(); String password_line = st.nexttoken(); st1 = new StringTokenizer(password_line, "="); st1.nexttoken(); st2 = new StringTokenizer(st1.nextToken(), "\""); password = st2.nexttoken(); String remote_xcap_server_line = st.nexttoken(); st1 = new 第 52 頁 / 共 89 頁

54 StringTokenizer(remote_xcap_server_line, "="); st1.nexttoken(); remote_xcap_server = Integer.valueOf(st1.nextToken()).intValue(); String diffserv_interface_line = st.nexttoken(); st1 = new StringTokenizer(diffserv_interface_line, "="); st1.nexttoken(); st2 = new StringTokenizer(st1.nextToken(), "\""); diffserv_interface = st2.nexttoken(); String data_counter_line = st.nexttoken(); st1 = new StringTokenizer(data_counter_line, "="); st1.nexttoken(); data_counter = Integer.valueOf(st1.nextToken()).intValue(); catch(filenotfoundexception e) System.out.println("Preferences file not found"); /** * This method waits until exit is typed in the console * If wait is typed, then it returns. */ private static void waitforexit() byte[] buffer = new byte[80]; int read; String input=""; while (true) try System.out.println("\nType \"exit\" to stop PCEF!"); read = System.in.read(buffer, 0, 80); input = new String(buffer, 0, read); input = input.trim(); catch (IOException e) e.printstacktrace(); if(input.equalsignorecase("exit") input.equalsignorecase("x")) return; 4. PCRF.java package pcrf; import java.net.*; import java.io.*; import java.rmi.*; import java.util.*; import de.fhg.fokus.pcrf_diam.pcrfdiameterstack; import de.fhg.fokus.diameter.diameterpeer.diameterpeer; /** * PCRF: * 第 53 頁 / 共 89 頁

55 * This is the main class for starting the Policy Control and Charging Function * - It initialises the Diameter stack and connects to P-CSCFs * - It initialises the Diameter stack and connects to PEPs - It downloads necessary policies from an XCAP * - Implements the state machine that defines the PCRF behaviour Richard Good */ public class PCRF pcrfdiameterstack diameterstack; DiameterPeer diameterpeer; static int remote_xcap_server; //one if remote zero if local static String policy_db = ""; static String[] policies = new String[10]; //max num policies 10 static String username = ""; static String password = ""; xcap policyengine = null; /** * The main method args */ public static void main(string[] args) throws IOException //retrieves configuration information from config files getpreferences(); try PCRF pcrf = new PCRF(); pcrf.run(); catch (Exception e) e.printstacktrace(); /** * Constructor for PCRF * -initialises variables * -Ensures that there are PCEFs listed in the repository to control args */ public PCRF() throws RemoteException, IOException diameterpeer = new DiameterPeer("config/DiameterPeerPCRF.xml"); policyengine = new xcap (policy_db, "domain_policies", username, password, remote_xcap_server); /** * This defines the behavour of the PCRF * -It starts the PCRF * -Starts the diameter stack and connects to the P-CSCF * -Starts the dimater stack and connects to all listed PCEFs */ public void run() throws IOException 第 54 頁 / 共 89 頁

56 String currentdomain=""; String pcrfid= "1"; //defaults to 1 //FOR TESTING PURPOSES Assume PCRFid 1 //choose PCRF from those listed in database if more than 1 //BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); //System.out.println(); //System.out.print("Enter PCRF Number : "); //pcrfid = Integer.parseInt(in.readLine()); //turns current PCRF ON System.out.println("INFO: Changing Status of PCRF #" + pcrfid + " to 'On'"); policyengine.statuspcrf(pcrfid, "on"); currentdomain = policyengine.getpcrfdomain(pcrfid); //FOR TESTING PURPOSES System.out.println("INFO: This is PCRF number: " +pcrfid); System.out.println("INFO: Controlling Domain: " + currentdomain); System.out.println("INFO: PCRF Server #" + pcrfid + " started : " + new java.util.date().tostring()); // Starting pcrf Diameter Stack try diameterstack = new pcrfdiameterstack(diameterpeer,currentdomain,policy_ db, policies,username,password, remote_xcap_server, policyengine); diameterstack.startup(); catch (Exception e) System.out.println("ERROR: " + e); e.printstacktrace(); System.out.println("INFO: PCRF Rx Diameter interface started"); System.out.println("INFO: PCRF Gx Diameter interface started"); waitforexit(); policyengine.statuspcrf(pcrfid, "Off"); diameterstack.shutdown(); System.exit(0); /**This retreives the preferences from pcrf.properties**/ private static void getpreferences() throws IOException StringBuffer filedata = new StringBuffer(1000); try BufferedReader reader = new BufferedReader(new FileReader("/opt/OpenIMSCore/uctpcrf/config/pcrf.prop erties")); char[] buf = new char[1024]; int numread=0; while((numread=reader.read(buf))!= -1) String readdata = 第 55 頁 / 共 89 頁

57 String.valueOf(buf, 0, numread); filedata.append(readdata); buf = new char[1024]; reader.close(); String filestr = filedata.tostring(); StringTokenizer st = new StringTokenizer(fileStr, "\n"); String username_line = policies_line; st1 = new StringTokenizer(username_line, "="); st1.nexttoken(); st2 = new StringTokenizer(st1.nextToken(), "\""); username = st2.nexttoken(); String policy_db_line = st.nexttoken(); StringTokenizer st1 = new StringTokenizer(policy_db_line, "="); st1.nexttoken(); StringTokenizer st2 = new StringTokenizer(st1.nextToken(), "\""); policy_db = st2.nexttoken(); int pol = 0; String policies_line = ""; while(pol!= -1) policies_line = st.nexttoken(); st1 = new StringTokenizer(policies_line, "="); if(st1.nexttoken().equals("policies")) st2 = new StringTokenizer(st1.nextToken(), "\""); policies[pol] = st2.nexttoken(); pol++; else pol = -1; String password_line = st.nexttoken(); st1 = new StringTokenizer(password_line, "="); st1.nexttoken(); st2 = new StringTokenizer(st1.nextToken(), "\""); password = st2.nexttoken(); String remote_xcap_server_line = st.nexttoken(); st1 = new StringTokenizer(remote_xcap_server_line, "="); st1.nexttoken(); remote_xcap_server = Integer.valueOf(st1.nextToken()).intValue(); catch(filenotfoundexception e) System.out.println("Preferences file not found"); /** * This method waits until exit is typed in the console * If wait is typed, then it returns. */ private static void waitforexit() byte[] buffer = new byte[80]; 第 56 頁 / 共 89 頁

58 int read; String input=""; while (true) try System.out.println("\nType \"exit\" to stop PCRF!"); read = System.in.read(buffer, 0, 80); input = new String(buffer, 0, read); input = input.trim(); catch (IOException e) e.printstacktrace(); if(input.equalsignorecase("exit") input.equalsignorecase("x")) return; 5. xcap.java package pcrf; import java.io.*; import java.net.*; import java.util.*; import org.apache.commons.httpclient.httpclient; import org.apache.commons.httpclient.usernamepasswordcred entials; import org.apache.commons.httpclient.auth.authscope; import org.apache.commons.httpclient.methods.getmethod; import org.apache.commons.httpclient.methods.putmethod; import org.apache.commons.httpclient.methods.stringrequeste ntity; import javax.xml.parsers.documentbuilder; import javax.xml.parsers.documentbuilderfactory; import javax.xml.parsers.parserconfigurationexception; import org.w3c.dom.document; import org.w3c.dom.element; import org.w3c.dom.nodelist; import org.xml.sax.saxexception; import org.apache.xml.serialize.xmlserializer; import org.apache.xml.serialize.outputformat; /** * xcap: * * This class defines the XCAP methods for retrieving and modifying policies stored on an XDMS server * It also defines methods for parsing and reading the XML document Richard Good */public class xcap String policy_db = ""; static private Document dom = null; String username = ""; String password = ""; int remote_xcap_server; //zero if local one if remote 第 57 頁 / 共 89 頁

59 /** * Constructor for xcap * -initialises variables args */ public xcap(string policy_db, String policy, String username, String password, int remote_xcap_server) throws IOException this.username = username; this.password = password; this.remote_xcap_server = remote_xcap_server; /**TO DO fix OpenXCAP to allow different Applications*/ if(remote_xcap_server == 1) this.policy_db = policy_db + "resource-lists/users/" + username + "/resource-lists.xml"; else this.policy_db = policy_db + policy + ".xml"; parsexml(getxml()); /** * This converts an XML Document into a String used to convey the doc via HTTP dom The XML document to be converted to a string xmlstr the String representation of the xml doc **/ private String XMLDocToString(Document dom) String xmlstr = null; StringWriter strwriter = null; XMLSerializer probemsgserializer = null; OutputFormat outformat = new OutputFormat(); try probemsgserializer = new XMLSerializer(); strwriter = new StringWriter(); outformat = new OutputFormat(); // Setup format settings outformat.setversion("1.0"); outformat.setencoding("utf-8"); outformat.setindenting(true); outformat.setindent(4); // Define a Writer probemsgserializer.setoutputcharstream(strwrite r); // Apply the format settings probemsgserializer.setoutputformat(outformat); // Serialize XML Document probemsgserializer.serialize(dom); xmlstr = strwriter.tostring(); strwriter.close(); catch (IOException ioex) 第 58 頁 / 共 89 頁

60 System.out.println("Error " + ioex); return xmlstr; /** * This creates the XML parser **/ private void parsexml(inputstream xmldoc) //get the factory DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try //Using factory get an instance of document builder DocumentBuilder db = dbf.newdocumentbuilder(); //parse using builder to get DOM representation of the XML file dom = db.parse(xmldoc); catch(parserconfigurationexception pce) pce.printstacktrace(); catch(saxexception se) se.printstacktrace(); catch(ioexception ioe) ioe.printstacktrace(); /** * This receives a list of codecs - checks the domain policies and returns whether they are acceptable or not codecs vector of requested requested codecs 1 if authorised 0 if not */ public int checkcodecs(vector codecs) throws IOException //fetch and parse the policy XML document parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); //get all authorised codec id's in a vector Vector authcodecs = new Vector(); NodeList nl = docele.getelementsbytagname("rule"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) //get the authorised codec rule Element rule = (Element)nl.item(i); String id = rule.getattribute("id"); if(id.equals("codec authorisation")) NodeList nl3 = rule.getelementsbytagname("conditions"); if(nl3!= null && nl3.getlength() > 0) Element conditions = (Element)nl3.item(0); NodeList nl1 = 第 59 頁 / 共 89 頁

61 conditions.getelementsbytagname("codec_id"); if(nl1!= null && nl1.getlength() > 0) Element codec_id = (Element)nl1.item(0); NodeList nl2 = codec_id.getelementsbytagname("id"); if(nl2!= null && nl2.getlength() > 0) for(int a = 0 ; a < nl2.getlength();a++) Element ID = (Element)nl2.item(a); ue() == Integer.valueOf(authCodecs.get(c).toString()).intValue() ) supported = 1; //Note this is to support dynamic codecs, see RFC 3551 if (supported == 0 && (Integer.valueOf(codecs.get(b).toString()).intValue() < 96 Integer.valueOf(codecs.get(b).toString()).intValue() > 127)) authorised = 0; authcodecs.add(id.getfirstchild().getnodevalue( )); //check that all requested codecs are authorised int authorised = 1; int supported = 0; for ( int b = 0; b < codecs.size(); b++) supported = 0; for (int c = 0; c < authcodecs.size(); c++) if(integer.valueof(codecs.get(b).tostring()).intval //1 if authorised 0 if not return authorised; /** * This receives the orig and term domains * It checks that both domains are allowed String orig originating domain String term terminating domain 1 if authorised 0 if not */ public int checkdomain(string orig, String term) throws IOException //fetch and parse the policy XML document parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); 第 60 頁 / 共 89 頁

62 int orig_authorised = 0; int term_authorised = 0; Vector domains = new Vector(); NodeList nl = docele.getelementsbytagname("rule"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) //get the authorised codec rule Element rule = (Element)nl.item(i); String id = rule.getattribute("id"); if(id.equals("domain authorisation")) NodeList nl3 = rule.getelementsbytagname("conditions"); if(nl3!= null && nl3.getlength() > 0) Element conditions = (Element)nl3.item(0); NodeList nl1 = conditions.getelementsbytagname("domain"); if(nl1!= null && nl1.getlength() > 0) Element domain = (Element)nl1.item(0); NodeList nl2 = domain.getelementsbytagname("address"); if(nl2!= null && nl2.getlength() > 0) for(int a = 0 ; a < nl2.getlength();a++) Element address = (Element)nl2.item(a); domains.add(address.getfirstchild().getnodevalu e()); //check that both orig and term domains are authorised for (int b = 0; b < domains.size(); b++) if(domains.get(b).tostring().equals(orig)) orig_authorised = 1; if(domains.get(b).tostring().equals(term)) term_authorised = 1; if(orig_authorised == 0 term_authorised == 0) System.out.println("\nINFO: " + new java.util.date().tostring() + " Session requests an unauthorised domain, either originating or destination"); return 0; return 1; 第 61 頁 / 共 89 頁

63 /** * This checks if a session with given session id already exists String session_id the Session to check 1 if exists 0 if it does not */ public int sessionexists(string session_id) throws IOException int session_exists = 0; //fetch and parse the policy XML document parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); NodeList nl = docele.getelementsbytagname("tris"); if(nl!= null && nl.getlength() > 0) //get the tris element Element tris = (Element)nl.item(0); NodeList nl1 = tris.getelementsbytagname("af_session"); if(nl1!= null && nl1.getlength() > 0) for(int i = 0 ; i < nl1.getlength();i++) Element af_session = (Element)nl1.item(i); NodeList nl2 = af_session.getelementsbytagname("session_id"); if(nl2!= null && nl2.getlength() > 0) Element Session_ID = (Element)nl2.item(0); if(session_id.haschildnodes() && session_id.equals(session_id.getfirstchild().getnodeva lue().tostring())) session_exists = 1; return session_exists; /** * This checks if the specified QoS class can handle a given bandwidth (ul and dl) int QoS_class the QoS class that is too be checked int bw_ul the requested uplink bandwidth int bw_dl the requested downlink bandwidth 1 if authorised 0 if not */ public int checkqosbw(int QoS_class, int bw_ul, int bw_dl) throws IOException int authbw_ul = 0; int authbw_dl = 0; parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); NodeList nl = docele.getelementsbytagname("rule"); 第 62 頁 / 共 89 頁

64 if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) //get the authorised codec rule Element rule = (Element)nl.item(i); String id = rule.getattribute("id"); if(id.equals("qos class authorisation")) NodeList nl3 = rule.getelementsbytagname("conditions"); if(nl3!= null && nl3.getlength() > 0) Element conditions = (Element)nl3.item(0); NodeList nl1 = conditions.getelementsbytagname("qos_class"); if(nl1!= null && nl1.getlength() > 0) Element qos_class = (Element)nl1.item(0); NodeList nl2 = qos_class.getelementsbytagname("class_id"); if(nl2!= null && nl2.getlength() > 0) for(int a = 0 ; a < nl2.getlength();a++) Element class_id = (Element)nl2.item(a); if(qos_class == (Integer.valueOf(class_id.getFirstChild().getNodeValue( ))).intvalue()) if(bw_dl < (Integer.valueOf(class_id.getAttribute("bw_downlink"))).intValue()) authbw_dl = 1; if(bw_ul < (Integer.valueOf(class_id.getAttribute("bw_uplink"))).int Value()) authbw_ul = 1; if(authbw_ul == 0 authbw_ul == 0) return 0; else return 1; 第 63 頁 / 共 89 頁

65 /** * This checks if the specified domain can handle a given bandwidth (ul and dl) String domain the Domain in question int bw_ul the requested uplink bandwidth int bw_dl the requested downlink bandwidth 1 if authorised 0 if not */ public int checkdomainbw(string domain, int bw_ul, int bw_dl) throws IOException int authbw_ul = 0; int authbw_dl = 0; parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); NodeList nl = docele.getelementsbytagname("rule"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) //get the authorised codec rule Element rule = (Element)nl.item(i); String id = rule.getattribute("id"); if(id.equals("domain authorisation")) NodeList nl3 = rule.getelementsbytagname("conditions"); if(nl3!= null && nl3.getlength() > 0) Element conditions = (Element)nl3.item(0); NodeList nl1 = conditions.getelementsbytagname("domain"); if(nl1!= null && nl1.getlength() > 0) Element Domain = (Element)nl1.item(0); NodeList nl2 = Domain.getElementsByTagName("address"); if(nl2!= null && nl2.getlength() > 0) for(int a = 0 ; a < nl2.getlength();a++) Element address = (Element)nl2.item(a); if(domain.equals(address.getfirstchild().getnode Value())) if(bw_dl < (Integer.valueOf(address.getAttribute("bw_downlink"))). intvalue()) authbw_dl = 1; if(bw_ul < (Integer.valueOf(address.getAttribute("bw_uplink"))).int Value()) 第 64 頁 / 共 89 頁

66 authbw_ul = 1; if(authbw_ul == 0 authbw_ul == 0) return 0; else return 1; /** * This inserts a session into the Policy repository String ims_session The session information Vector codecs A list of the requested codecs */ public void insertsession(string ims_session, Vector codecs) throws IOException parsexml(getxml()); StringTokenizer st = new StringTokenizer(ims_session,";"); /**The session ID has 2 semi-colons in it, so 3 tokens form the session ID*/ /**TO DO Define a way to decide how long the session id is, perhaps read from the back*/ String session_id = st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); String orig_domain = st.nexttoken(); String term_domain = st.nexttoken(); String codec_list = ""; for (int a =0; a < codecs.size(); a++) codec_list = codec_list + codecs.get(a) + ";"; //get the root elememt Element docele = dom.getdocumentelement(); //get a nodelist of <IMS session> elements NodeList nl = docele.getelementsbytagname("tris"); if(nl!= null && nl.getlength() > 0) Element tris = (Element)nl.item(0); NodeList nl1 = tris.getelementsbytagname("af_session"); if(nl1!= null && nl1.getlength() > 0) Element af_session = (Element)nl.item(0); NodeList nl2 = af_session.getelementsbytagname("session_id"); if(nl2!= null && nl2.getlength() > 0) 第 65 頁 / 共 89 頁

67 Element Session_ID = (Element)nl2.item(0); if(!session_id.haschildnodes()) Session_ID.appendChild(dom.createTextNode(ses sion_id)); nl2= af_session.getelementsbytagname("orig_domain"); if(nl2!= null && nl2.getlength() > 0) Element Orig_Domain = (Element)nl2.item(0); Orig_Domain.appendChild(dom.createTextNode(o rig_domain)); nl2 = af_session.getelementsbytagname("term_domain"); if(nl2!= null && nl2.getlength() > 0) Element Term_Domain = (Element)nl2.item(0); Codecs.appendChild(dom.createTextNode(codec_l ist)); else Element AF_Session1 = dom.createelement("af_session"); Element Session_ID1 = dom.createelement("session_id"); Session_ID1.appendChild(dom.createTextNode(se ssion_id)); AF_Session1.appendChild(Session_ID1); Element Orig_Domain = dom.createelement("orig_domain"); Orig_Domain.appendChild(dom.createTextNode(o rig_domain)); AF_Session1.appendChild(Orig_Domain); Element Term_Domain = dom.createelement("term_domain"); Term_Domain.appendChild(dom.createTextNode(t erm_domain)); Term_Domain.appendChild(dom.createTextNode(t erm_domain)); nl2 = af_session.getelementsbytagname("codecs"); if(nl2!= null && nl2.getlength() > 0) Element Codecs = (Element)nl2.item(0); AF_Session1.appendChild(Term_Domain); Element Codecs = dom.createelement("codecs"); Codecs.appendChild(dom.createTextNode(codec_l ist)); AF_Session1.appendChild(Codecs); tris.appendchild(af_session1); 第 66 頁 / 共 89 頁

68 //docele.appendchild(tris); else Element AF_Session1 = dom.createelement("af_session"); Element Session_ID1 = dom.createelement("session_id"); Session_ID1.appendChild(dom.createTextNode(se ssion_id)); AF_Session1.appendChild(Session_ID1); Element Orig_Domain = dom.createelement("orig_domain"); Orig_Domain.appendChild(dom.createTextNode(o rig_domain)); AF_Session1.appendChild(Orig_Domain); Element Term_Domain = dom.createelement("term_domain"); Term_Domain.appendChild(dom.createTextNode(t erm_domain)); AF_Session1.appendChild(Term_Domain); Element Codecs = dom.createelement("codecs"); Codecs.appendChild(dom.createTextNode(codec_l ist)); AF_Session1.appendChild(Codecs); tris.appendchild(af_session1); //docele.appendchild(tris); putxml(xmldoctostring(dom)); /** * This inserts an ip flow into the Policy repository ip_flows A vector of all the IP Flow information */ public void insertipflow(vector ip_flows) throws IOException parsexml(getxml()); for (int b = 0; b < ip_flows.size(); b++) StringTokenizer st = new StringTokenizer(ip_flows.get(b).toString(),";"); String session_id = st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); session_id = session_id + ";" + st.nexttoken(); String flow_id = st.nexttoken(); String source_ip = st.nexttoken(); String dest_ip = st.nexttoken(); String dest_port = st.nexttoken(); String source_port = st.nexttoken(); String usage = st.nexttoken(); String status = st.nexttoken(); String bw_ul = st.nexttoken(); String bw_dl = st.nexttoken(); String QoS_class = st.nexttoken(); //get the root elememt Element docele = dom.getdocumentelement(); NodeList nl0 = 第 67 頁 / 共 89 頁

69 docele.getelementsbytagname("tris"); if(nl0!= null && nl0.getlength() > 0) Element tris = (Element)nl0.item(0); //get a nodelist of <IP Flow> elements NodeList nl = tris.getelementsbytagname("ip_flow"); if(nl!= null && nl.getlength() > 0) Element IP_Flow = (Element)nl.item(0); NodeList nl1 = IP_Flow.getElementsByTagName("session_id"); if(nl1!= null && nl1.getlength() > 0) Element Session_ID = (Element)nl1.item(0); if(!session_id.haschildnodes()) Session_ID.appendChild(dom.createTextNode(ses sion_id)); nl1 = IP_Flow.getElementsByTagName("flow_id"); if(nl1!= null && nl1.getlength() > 0) Element Flow_ID = (Element)nl1.item(0); Flow_ID.appendChild(dom.createTextNode(flow_ id)); nl1 = IP_Flow.getElementsByTagName("source_ip"); if(nl1!= null && nl1.getlength() > 0) Element Source_IP = (Element)nl1.item(0); Source_IP.appendChild(dom.createTextNode(sour ce_ip)); nl1 = IP_Flow.getElementsByTagName("dest_ip"); if(nl1!= null && nl1.getlength() > 0) Element Dest_IP = (Element)nl1.item(0); Dest_IP.appendChild(dom.createTextNode(dest_ip )); nl1 = IP_Flow.getElementsByTagName("source_port"); if(nl1!= null && nl1.getlength() > 0) Element Source_Port = (Element)nl1.item(0); Source_Port.appendChild(dom.createTextNode(so urce_port)); nl1 = IP_Flow.getElementsByTagName("dest_port"); if(nl1!= null && nl1.getlength() > 0) Element Dest_Port = (Element)nl1.item(0); 第 68 頁 / 共 89 頁

70 Dest_Port.appendChild(dom.createTextNode(dest_ port)); nl1 = IP_Flow.getElementsByTagName("flow_usage"); if(nl1!= null && nl1.getlength() > 0) Element Flow_Usage = (Element)nl1.item(0); Flow_Usage.appendChild(dom.createTextNode(us age)); nl1 = IP_Flow.getElementsByTagName("flow_status"); if(nl1!= null && nl1.getlength() > 0) Element Flow_Status = (Element)nl1.item(0); Flow_Status.appendChild(dom.createTextNode(sta tus)); nl1 = IP_Flow.getElementsByTagName("bw_uplink"); if(nl1!= null && nl1.getlength() > 0) Element BW_Uplink = (Element)nl1.item(0); BW_Uplink.appendChild(dom.createTextNode(bw _ul)); nl1 = IP_Flow.getElementsByTagName("bw_downlink"); if(nl1!= null && nl1.getlength() > 0) Element BW_Downlink = (Element)nl1.item(0); BW_Downlink.appendChild(dom.createTextNode( bw_dl)); nl1 = IP_Flow.getElementsByTagName("qos_class"); if(nl1!= null && nl1.getlength() > 0) Element QoS_Class = (Element)nl1.item(0); QoS_Class.appendChild(dom.createTextNode(Qo S_class)); else Element IP_Flow1 = dom.createelement("ip_flow"); Element Session_ID1 = dom.createelement("session_id"); Session_ID1.appendChild(dom.createTextNode(se ssion_id)); IP_Flow1.appendChild(Session_ID1); Element Flow_ID = dom.createelement("flow_id"); Flow_ID.appendChild(dom.createTextNode(flow_ id)); IP_Flow1.appendChild(Flow_ID); 第 69 頁 / 共 89 頁

71 Element Source_IP = dom.createelement("source_ip"); Source_IP.appendChild(dom.createTextNode(sour ce_ip)); tus)); IP_Flow1.appendChild(Flow_Status); Element BW_Uplink = dom.createelement("bw_uplink"); IP_Flow1.appendChild(Source_IP); Element Dest_IP = dom.createelement("dest_ip"); Dest_IP.appendChild(dom.createTextNode(dest_ip )); BW_Uplink.appendChild(dom.createTextNode(bw _ul)); IP_Flow1.appendChild(BW_Uplink); Element BW_Downlink = dom.createelement("bw_downlink"); IP_Flow1.appendChild(Dest_IP); Element Source_Port = dom.createelement("source_port"); Source_Port.appendChild(dom.createTextNode(so urce_port)); BW_Downlink.appendChild(dom.createTextNode( bw_dl)); IP_Flow1.appendChild(BW_Downlink); Element QoS_Class = dom.createelement("qos_class"); IP_Flow1.appendChild(Source_Port); Element Dest_Port = dom.createelement("dest_port"); Dest_Port.appendChild(dom.createTextNode(dest_ port)); QoS_Class.appendChild(dom.createTextNode(Qo S_class)); IP_Flow1.appendChild(QoS_Class); tris.appendchild(ip_flow1); IP_Flow1.appendChild(Dest_Port); Element Flow_Usage = dom.createelement("flow_usage"); //docele.appendchild(tris); Flow_Usage.appendChild(dom.createTextNode(us age)); IP_Flow1.appendChild(Flow_Usage); Element Flow_Status = dom.createelement("flow_status"); Flow_Status.appendChild(dom.createTextNode(sta else Element IP_Flow1 = dom.createelement("ip_flow"); Element Session_ID1 = dom.createelement("session_id"); 第 70 頁 / 共 89 頁

72 ssion_id)); Session_ID1.appendChild(dom.createTextNode(se dom.createelement("flow_usage"); Element Flow_Usage = IP_Flow1.appendChild(Session_ID1); Element Flow_ID = dom.createelement("flow_id"); Flow_ID.appendChild(dom.createTextNode(flow_ id)); Flow_Usage.appendChild(dom.createTextNode(us age)); IP_Flow1.appendChild(Flow_Usage); Element Flow_Status = dom.createelement("flow_status"); IP_Flow1.appendChild(Flow_ID); Element Source_IP = dom.createelement("source_ip"); Source_IP.appendChild(dom.createTextNode(sour ce_ip)); Flow_Status.appendChild(dom.createTextNode(sta tus)); IP_Flow1.appendChild(Flow_Status); Element BW_Uplink = dom.createelement("bw_uplink"); IP_Flow1.appendChild(Source_IP); Element Dest_IP = dom.createelement("dest_ip"); Dest_IP.appendChild(dom.createTextNode(dest_ip )); BW_Uplink.appendChild(dom.createTextNode(bw _ul)); IP_Flow1.appendChild(BW_Uplink); Element BW_Downlink = dom.createelement("bw_downlink"); IP_Flow1.appendChild(Dest_IP); Element Source_Port = dom.createelement("source_port"); Source_Port.appendChild(dom.createTextNode(so urce_port)); BW_Downlink.appendChild(dom.createTextNode( bw_dl)); IP_Flow1.appendChild(BW_Downlink); Element QoS_Class = dom.createelement("qos_class"); IP_Flow1.appendChild(Source_Port); Element Dest_Port = dom.createelement("dest_port"); Dest_Port.appendChild(dom.createTextNode(dest_ port)); IP_Flow1.appendChild(Dest_Port); QoS_Class.appendChild(dom.createTextNode(Qo S_class)); IP_Flow1.appendChild(QoS_Class); tris.appendchild(ip_flow1); //docele.appendchild(tris); 第 71 頁 / 共 89 頁

73 putxml(xmldoctostring(dom)); /** * This removes a session from the Policy repository session_id the ID of the session to remove */ public void deletesession(string session_id) throws IOException parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); if(nl1!= null && nl1.getlength() > 0) Element Session_ID = (Element)nl1.item(0); String current_session_id = Session_ID.getFirstChild().getNodeValue().toString(); if(current_session_id.equals(session_id)) tris.removechild(ims_session); i = 0; nl = tris.getelementsbytagname("af_session"); NodeList nl0 = docele.getelementsbytagname("tris"); if(nl0!= null && nl0.getlength() > 0) Element tris = (Element)nl0.item(0); NodeList nl = tris.getelementsbytagname("af_session"); if(nl!= null && nl.getlength() > 0) int i = 0; while ((nl!= null && nl.getlength() > 0) && i < nl.getlength()) Element IMS_Session = (Element)nl.item(i); i++; NodeList nl1 = IMS_Session.getElementsByTagName("session_id"); putxml(xmldoctostring(dom)); /** * This removes an ip flow from the Policy repository session_id the ID of the IP Flows to remove */ public void deleteipflow(string session_id) throws IOException parsexml(getxml()); //get the root elememt Element docele = 第 72 頁 / 共 89 頁

74 dom.getdocumentelement(); NodeList nl0 = docele.getelementsbytagname("tris"); if(nl0!= null && nl0.getlength() > 0) Element tris = (Element)nl0.item(0); NodeList nl = tris.getelementsbytagname("ip_flow"); if(nl!= null && nl.getlength() > 0) int i = 0; while ((nl!= null && nl.getlength() > 0) && i < nl.getlength()) Element IP_Flow = (Element)nl.item(i); i++; NodeList nl1 = IP_Flow.getElementsByTagName("session_id"); if(nl1!= null && nl1.getlength() > 0) Element Session_ID = (Element)nl1.item(0); String current_session_id = Session_ID.getFirstChild().getNodeValue().toString(); putxml(xmldoctostring(dom)); /** * This returns the specified uplink and downlink bandwidth to the specified QoS class QoS_class the QoS class to return the bandwidth to bw_ul the uplink bandwidth to free bw_dl the downlink bandwidth to free */ public void freeqosbandwidth(int QoS_class, int bw_ul, int bw_dl) throws IOException parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); NodeList nl = docele.getelementsbytagname("rule"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) if(current_session_id.equals(session_id)) tris.removechild(ip_flow); i = 0; nl = tris.getelementsbytagname("ip_flow"); //get the authorised codec rule Element rule = (Element)nl.item(i); String id = rule.getattribute("id"); if(id.equals("qos class authorisation")) NodeList nl3 = rule.getelementsbytagname("conditions"); if(nl3!= null && 第 73 頁 / 共 89 頁

75 nl3.getlength() > 0) Element conditions = (Element)nl3.item(0); NodeList nl1 = conditions.getelementsbytagname("qos_class"); if(nl1!= null && nl1.getlength() > 0) Element qos_class = (Element)nl1.item(0); NodeList nl2 = qos_class.getelementsbytagname("class_id"); if(nl2!= null && nl2.getlength() > 0) for(int a = 0 ; a < nl2.getlength();a++) Element class_id = (Element)nl2.item(a); if(qos_class == (Integer.valueOf(class_id.getFirstChild().getNodeValue( ))).intvalue()) int temp = (Integer.valueOf(class_id.getAttribute("bw_downlink"))).intValue() + bw_dl; String new_bw_dl = "" + temp; temp = (Integer.valueOf(class_id.getAttribute("bw_uplink"))).int Value() + bw_ul; class_id.setattribute("bw_downlink",new_bw_dl); class_id.setattribute("bw_uplink",new_bw_ul); putxml(xmldoctostring(dom)); /** * This deducts the specified uplink and downlink bandwidth to the specified QoS class QoS_class the QoS class to return the bandwidth to bw_ul the uplink bandwidth to deduct bw_dl the downlink bandwidth to deduct */ public void reqqosbandwidth(int QoS_class, int bw_ul, int bw_dl) throws IOException parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); String new_bw_ul = "" + temp; NodeList nl = docele.getelementsbytagname("rule"); 第 74 頁 / 共 89 頁

76 if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) //get the authorised codec rule Element rule = (Element)nl.item(i); String id = rule.getattribute("id"); if(id.equals("qos class authorisation")) NodeList nl3 = rule.getelementsbytagname("conditions"); if(nl3!= null && nl3.getlength() > 0) Element conditions = (Element)nl3.item(0); NodeList nl1 = conditions.getelementsbytagname("qos_class"); if(nl1!= null && nl1.getlength() > 0) Element qos_class = (Element)nl1.item(0); NodeList nl2 = qos_class.getelementsbytagname("class_id"); if(nl2!= null && nl2.getlength() > 0) for(int a = 0 ; a < nl2.getlength();a++) Element class_id = (Element)nl2.item(a); if(qos_class == (Integer.valueOf(class_id.getFirstChild().getNodeValue( ))).intvalue()) int temp = (Integer.valueOf(class_id.getAttribute("bw_downlink"))).intValue() - bw_dl; String new_bw_dl = "" + temp; temp = (Integer.valueOf(class_id.getAttribute("bw_uplink"))).int Value() - bw_ul; String new_bw_ul = "" + temp; class_id.setattribute("bw_downlink",new_bw_dl); class_id.setattribute("bw_uplink",new_bw_ul); putxml(xmldoctostring(dom)); /** * This returns the specified uplink and downlink bandwidth to the specified domain domain the domain to return the bandwidth to bw_ul the uplink bandwidth to free bw_dl the downlink bandwidth to free */ 第 75 頁 / 共 89 頁

77 public void freedomainbandwidth(string domain, int bw_ul, int bw_dl) throws IOException parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); if(nl2!= null && nl2.getlength() > 0) for(int a = 0 ; a < nl2.getlength();a++) Element address = (Element)nl2.item(a); NodeList nl = docele.getelementsbytagname("rule"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) //get the authorised codec rule Element rule = (Element)nl.item(i); String id = rule.getattribute("id"); if(id.equals("domain authorisation")) NodeList nl3 = rule.getelementsbytagname("conditions"); if(nl3!= null && nl3.getlength() > 0) Element conditions = (Element)nl3.item(0); NodeList nl1 = conditions.getelementsbytagname("domain"); if(nl1!= null && nl1.getlength() > 0) Element Domain = (Element)nl1.item(0); NodeList nl2 = Domain.getElementsByTagName("address"); if(domain.equals( address.getfirstchild().getnode Value())) int temp = (Integer.valueOf(address.getAttribute("bw_downlink"))). intvalue() + bw_dl; String new_bw_dl = "" + temp; temp = (Integer.valueOf(address.getAttribute("bw_uplink"))).int Value() + bw_ul; String new_bw_ul = "" + temp; address.setattribute("bw_downlink",new_bw_dl); address.setattribute("bw_uplink",new_bw_ul); 第 76 頁 / 共 89 頁

78 putxml(xmldoctostring(dom)); /** * This deducts the specified uplink and downlink bandwidth to the specified domain domain the domain to return the bandwidth to bw_ul the uplink bandwidth to deduct bw_dl the downlink bandwidth to deduct */ public void reqdomainbandwidth(string domain, int bw_ul, int bw_dl) throws IOException parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); nl3.getlength() > 0) Element conditions = (Element)nl3.item(0); NodeList nl1 = conditions.getelementsbytagname("domain"); if(nl1!= null && nl1.getlength() > 0) Element Domain = (Element)nl1.item(0); NodeList nl2 = Domain.getElementsByTagName("address"); if(nl2!= null && nl2.getlength() > 0) for(int a = 0 ; a < nl2.getlength();a++) Element address = (Element)nl2.item(a); NodeList nl = docele.getelementsbytagname("rule"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) //get the authorised codec rule Element rule = (Element)nl.item(i); String id = rule.getattribute("id"); if(id.equals("domain authorisation")) NodeList nl3 = rule.getelementsbytagname("conditions"); if(nl3!= null && if(domain.equals( address.getfirstchild().getnode Value())) int temp = (Integer.valueOf(address.getAttribute("bw_downlink"))). intvalue() - bw_dl; String new_bw_dl = "" + temp; temp = (Integer.valueOf(address.getAttribute("bw_uplink"))).int Value() - bw_ul; String new_bw_ul = "" + temp; address.setattribute("bw_downlink",new_bw_dl); 第 77 頁 / 共 89 頁

79 address.setattribute("bw_uplink",new_bw_ul); putxml(xmldoctostring(dom)); ); PutMethod put = new PutMethod(policy_db); put.setdoauthentication( true ); put.setrequestentity(new StringRequestEntity(xmlDoc,"text/plain","UTF-8")); try // execute the PUT int status = client.executemethod( put ); // print the status and response //System.out.println(status + " " + put.getresponsebodyasstring() +"\n"); /** * This puts an XML file to the XDMS server xmldoc String representation of the document to put to the server */ public void putxml(string xmldoc) throws IOException if(remote_xcap_server == 1) // System.out.println(" "); // System.out.println(); // System.out.println("INFO: Sending HTTP PUT to XDMS Server"); // System.out.println(); HttpClient client = new HttpClient(); client.getstate().setcredentials( AuthScope.ANY, new UsernamePasswordCredentials(username,password) finally // release any connection resources used by the method put.releaseconnection(); else File domain_policies = new File(policy_db); FileWriter out = new FileWriter(domain_policies); out.write(xmldoc); out.close(); /** * This gets an XML file from the XDMS server xmldoc InputStream representation of the document retrieved from the server */ public InputStream getxml() throws IOException 第 78 頁 / 共 89 頁

80 InputStream xmldoc = null; if(remote_xcap_server == 1) // System.out.println(" "); // System.out.println(); // System.out.println("INFO: Sending HTTP GET to XDMS Server"); // System.out.println(); HttpClient client = new HttpClient(); client.getstate().setcredentials( AuthScope.ANY, new UsernamePasswordCredentials(username,password) ); GetMethod get = new GetMethod(policy_db); get.setdoauthentication( true ); try // execute the GET int status = client.executemethod( get ); // print the status and response //System.out.println("INFO: Received HTTP " + status + " from XDMS Server" ); String temp = status + "\n" + get.getresponsebodyasstring(); xmldoc = get.getresponsebodyasstream(); finally // release any connection resources used by the method get.releaseconnection(); else Document doc1 = null; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try //Using factory get an instance of document builder DocumentBuilder db = dbf.newdocumentbuilder(); //parse using builder to get DOM representation of the XML file doc1 = db.parse(policy_db); catch(parserconfigurationexception pce) pce.printstacktrace(); catch(saxexception se) se.printstacktrace(); catch(ioexception ioe) ioe.printstacktrace(); String xmlstr = XMLDocToString(doc1); xmldoc = new ByteArrayInputStream(xmlStr.getBytes()); return xmldoc; /** * This returns a vector of the IP Flows associated with specified Session ID session_id the sepcified session ID ip_flows Vector of all ip_flows 第 79 頁 / 共 89 頁

81 */ public Vector getipflows(string session_id) throws IOException //fetch and parse the policy XML document parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); Vector ip_flows = new Vector(); NodeList nl0 = docele.getelementsbytagname("tris"); if(nl0!= null && nl0.getlength() > 0) Element tris = (Element)nl0.item(0); NodeList nl = tris.getelementsbytagname("ip_flow"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) String ip_flow = ""; Element IP_Flow = (Element)nl.item(i); NodeList nl1 = IP_Flow.getElementsByTagName("session_id"); if(nl1!= null && nl1.getlength() > 0) Element Session_ID = (Element)nl1.item(0); if(session_id.equals(session_id.getfirstchild().get NodeValue().toString())) ip_flow = ip_flow + session_id + ";"; nl1 = IP_Flow.getElementsByTagName("flow_id"); if(nl1!= null && nl1.getlength() > 0) Element Flow_ID = (Element)nl1.item(0); ip_flow = ip_flow + Flow_ID.getFirstChild().getNodeValue() + ";"; nl1 = IP_Flow.getElementsByTagName("source_ip"); if(nl1!= null && nl1.getlength() > 0) Element Source_IP = (Element)nl1.item(0); ip_flow = ip_flow + Source_IP.getFirstChild().getNodeValue() + ";"; nl1 = IP_Flow.getElementsByTagName("dest_ip"); if(nl1!= null && nl1.getlength() > 0) Element Dest_IP = (Element)nl1.item(0); ip_flow = ip_flow + Dest_IP.getFirstChild().getNodeValue() + ";"; nl1 = IP_Flow.getElementsByTagName("source_port"); if(nl1!= null && nl1.getlength() > 0) Element Source_Port = (Element)nl1.item(0); ip_flow = ip_flow + Source_Port.getFirstChild().getNodeValue() + ";"; 第 80 頁 / 共 89 頁

82 nl1 = IP_Flow.getElementsByTagName("dest_port"); if(nl1!= null && nl1.getlength() > 0) Element Dest_Port = (Element)nl1.item(0); ip_flow = ip_flow + Dest_Port.getFirstChild().getNodeValue() + ";"; nl1 = IP_Flow.getElementsByTagName("flow_usage"); if(nl1!= null && nl1.getlength() > 0) Element Flow_Usage = (Element)nl1.item(0); ip_flow = ip_flow + Flow_Usage.getFirstChild().getNodeValue() + ";"; nl1 = IP_Flow.getElementsByTagName("flow_status"); if(nl1!= null && nl1.getlength() > 0) Element Flow_Status = (Element)nl1.item(0); ip_flow = ip_flow + Flow_Status.getFirstChild().getNodeValue() + ";"; nl1 = IP_Flow.getElementsByTagName("bw_downlink"); if(nl1!= null && nl1.getlength() > 0) Element BW_Downlink = (Element)nl1.item(0); ip_flow = ip_flow + BW_Downlink.getFirstChild().getNodeValue() + ";"; nl1 = IP_Flow.getElementsByTagName("bw_uplink"); if(nl1!= null && nl1.getlength() > 0) Element BW_Uplink = (Element)nl1.item(0); ip_flow = ip_flow + BW_Uplink.getFirstChild().getNodeValue() + ";"; nl1 = IP_Flow.getElementsByTagName("qos_class"); if(nl1!= null && nl1.getlength() > 0) Element QoS_Class = (Element)nl1.item(0); ip_flow = ip_flow + QoS_Class.getFirstChild().getNodeValue(); ip_flows.add(ip_flow); return ip_flows; /** * This returns the address of the PCRF associated with a PCEF ID pcef_id the ID of the pcef pcrfaddress the address of the PCRF */ public String getpcrf(string pcef_id) throws 第 81 頁 / 共 89 頁

83 IOException String pcrfaddress = ""; //fetch and parse the policy XML document parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); NodeList nl0 = docele.getelementsbytagname("tris"); if(nl0!= null && nl0.getlength() > 0) Element tris = (Element)nl0.item(0); //get all authorised domains and list of authorised QoS classes into vectors NodeList nl = tris.getelementsbytagname("pcef"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) Element PCEF = (Element)nl.item(i); NodeList nl1 = PCEF.getElementsByTagName("pcef_id"); if(nl1!= null && nl1.getlength() > 0) Element PCEF_ID = (Element)nl1.item(0); if(pcef_id.equals(pcef_id.getfirstchild().getnod evalue().tostring())) nl1 = PCEF.getElementsByTagName("pcrf_address"); if(nl1!= null && nl1.getlength() > 0) Element PCRF_Address = (Element)nl1.item(0); pcrfaddress = PCRF_Address.getFirstChild().getNodeValue().toString( ); return pcrfaddress; /** * This returns the address of the AS associated with a domain orig_realm the originating domain term_realm the terminating realm af_address the address of the AF */ public String getaf(string orig_realm,string dest_realm) throws IOException String af_address = ""; /**TODO Link multiple PCEFs if realms different*/ /**If orig and dest realm the same*/ //if(orig_realm.equalsignorecase(dest_realm)) // //fetch and parse the policy XML document 第 82 頁 / 共 89 頁

84 parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); int orig_authorised = 0; int term_authorised = 0; NodeList nl0 = docele.getelementsbytagname("tris"); if(nl0!= null && nl0.getlength() > 0) Element tris = (Element)nl0.item(0); NodeList nl = tris.getelementsbytagname("pcrf"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) Element AF_Address = (Element)nl1.item(0); af_address = AF_Address.getFirstChild().getNodeValue().toString(); return af_address; // /**if orig and dest realm different*/ // // //get the address element Element PCRF = (Element)nl.item(i); NodeList nl1 = PCRF.getElementsByTagName("domain"); if(nl1!= null && nl1.getlength() > 0) Element Domain = (Element)nl1.item(0); if(domain.getfirstchild().getnodevalue().tostring ().equals(orig_realm)) nl1 = PCRF.getElementsByTagName("af_address"); if(nl1!= null && nl1.getlength() > 0) /** * This returns the address of the AF associated with a PCRF pcrf_address the address of the pcrf af_address the address of the AF */ public String getaf(string pcrf_address) throws IOException String af_address = ""; //fetch and parse the policy XML document parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); NodeList nl0 = 第 83 頁 / 共 89 頁

85 docele.getelementsbytagname("tris"); if(nl0!= null && nl0.getlength() > 0) Element tris = (Element)nl0.item(0); //get all authorised domains and list of authorised QoS classes into vectors NodeList nl = tris.getelementsbytagname("pcrf"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) Element PCRF = (Element)nl.item(i); NodeList nl1 = PCRF.getElementsByTagName("address"); if(nl1!= null && nl1.getlength() > 0) Element Address = (Element)nl1.item(0); return af_address; /** * This returns the address of the PCEF associated with a domain orig_realm the originating domain term_realm the terminating realm pcefaddress the address of the PCEF */ public String getpcef(string orig_realm,string dest_realm) throws IOException String pcefaddress = ""; /**TODO Link multiple PCEFs if realms different*/ /**If orig and dest realm the same*/ if(pcrf_address.equals(address.getfirstchild().get NodeValue().toString())) nl1 = PCRF.getElementsByTagName("af_address"); if(nl1!= null && nl1.getlength() > 0) Element AF_Address = (Element)nl1.item(0); af_address = AF_Address.getFirstChild().getNodeValue().toString(); //if(orig_realm.equalsignorecase(dest_realm)) // //fetch and parse the policy XML document parsexml(getxml()); //get the root elememt Element docele = dom.getdocumentelement(); NodeList nl0 = docele.getelementsbytagname("tris"); if(nl0!= null && nl0.getlength() > 0) Element tris = (Element)nl0.item(0); 第 84 頁 / 共 89 頁

86 //get all authorised domains and list of authorised QoS classes into vectors NodeList nl = tris.getelementsbytagname("pcef"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) //get the address element Element PCEF = (Element)nl.item(i); NodeList nl1 = PCEF.getElementsByTagName("domain"); if(nl1!= null && nl1.getlength() > 0) Element Domain = (Element)nl1.item(0); if(domain.getfirstchild().getnodevalue().tostring ().equals(orig_realm)) nl1 = PCEF.getElementsByTagName("address"); if(nl1!= null && nl1.getlength() > 0) Element Address = (Element)nl1.item(0); pcefaddress = Address.getFirstChild().getNodeValue().toString(); return pcefaddress; // /**if orig and dest realm different*/ // // /** * This sets the stats of the specified PCEF to ON or OFF pcefid ID of PCEF status either ON or OFF */ public void statuspcef(string pcefid, String status) throws IOException //get the root elememt Element docele = dom.getdocumentelement(); NodeList nl0 = docele.getelementsbytagname("tris"); if(nl0!= null && nl0.getlength() > 0) Element tris = (Element)nl0.item(0); NodeList nl = tris.getelementsbytagname("pcef"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) Element PCEF = (Element)nl.item(i); NodeList nl1 = PCEF.getElementsByTagName("pcef_id"); if(nl1!= null && nl1.getlength() > 0) 第 85 頁 / 共 89 頁

87 Element PCEF_ID = (Element)nl1.item(0); if(pcefid.equals(pcef_id.getfirstchild().getnod evalue())) nl1 = PCEF.getElementsByTagName("status"); if(nl1!= null && nl1.getlength() > 0) Element Status = (Element)nl1.item(0); Status.replaceChild(dom.createTextNode(status),St atus.getfirstchild()); putxml(xmldoctostring(dom)); /** * This sets the stats of the specified PCRF to ON or OFF pcrfid ID of PCRF status either ON or OFF */ public void statuspcrf(string pcrfid, String status) throws IOException //get the root elememt Element docele = dom.getdocumentelement(); NodeList nl0 = docele.getelementsbytagname("tris"); if(nl0!= null && nl0.getlength() > 0) Element tris = (Element)nl0.item(0); NodeList nl = tris.getelementsbytagname("pcrf"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) Element PCRF = (Element)nl.item(i); NodeList nl1 = PCRF.getElementsByTagName("pcrf_id"); if(nl1!= null && nl1.getlength() > 0) Element PCRF_ID = (Element)nl1.item(0); if(pcrfid.equals(pcrf_id.getfirstchild().getnode Value())) nl1 = PCRF.getElementsByTagName("status"); if(nl1!= null && nl1.getlength() > 0) Element Status = (Element)nl1.item(0); Status.replaceChild(dom.createTextNode(status),St atus.getfirstchild()); 第 86 頁 / 共 89 頁

88 putxml(xmldoctostring(dom)); /** * This gets the domain of a specified PCRF pcrfid ID of PCRF domain associated domain */ public String getpcrfdomain(string pcrfid) String domain = ""; //get the root elememt Element docele = dom.getdocumentelement(); NodeList nl0 = docele.getelementsbytagname("tris"); if(nl0!= null && nl0.getlength() > 0) Element tris = (Element)nl0.item(0); PCRF.getElementsByTagName("pcrf_id"); if(nl1!= null && nl1.getlength() > 0) Element PCRF_ID = (Element)nl1.item(0); if(pcrfid.equals(pcrf_id.getfirstchild().getnode Value())) nl1 = PCRF.getElementsByTagName("domain"); if(nl1!= null && nl1.getlength() > 0) Element Domain = (Element)nl1.item(0); domain = Domain.getFirstChild().getNodeValue().toString(); NodeList nl = tris.getelementsbytagname("pcrf"); if(nl!= null && nl.getlength() > 0) for(int i = 0 ; i < nl.getlength();i++) return domain; (Element)nl.item(i); Element PCRF = NodeList nl1 = 第 87 頁 / 共 89 頁

89 附件二 可供推廣之研發成果資料表 可申請專利 可技術移轉日期 : 一百年十月十一日 國科會補助計畫 技術 / 創作名稱 發明人 / 創作人 技術說明 可利用之產業及可開發之產品 計畫名稱 : 跨層式感知與協力 4G-IMS 無線網路研究 - 子計畫三 : 跨 層式感知與協力 4G-IMS 無線網路之服務品質與資源管理研究 (3/3) 計畫主持人 : 陳俊良國立台灣科技大學電機工程學系 計畫編號 :NSC E 學門領域 : 電信國家型計畫 Cooperative QoS Mechanism with QAM Charging for Heterogeneous Networking 陳俊良 / 楊佩嘉 / 鄭秉昇 / 張新毅 中文 : 該技術提出在異質網路之 QoS(Quality-of-Service) 管理中, 基於 Cooperative 概念推演出的多智能系統, 所提出之 Cooperative 系統, 主要藉由互相交換訊息, 以確保 QoS 之區域性代理人組成 在系統之演算法中, 主要應用 Q-learning 演算法, 計算許多代理人所傳達之回應資訊, 以達到在不同網路中之換手運作 當正在與使用者連線之網路無法確保 QoS 時, 則會透過 QoS 代理人以及 Q-learning 演算法, 選擇較適當之網路通訊介質, 並基於使用者付費之公平性原則, 根據 QoSClass Rule 和 QoSStreamID Rule 的費率決策演算法, 合理分配使用者的應用服務, 以提供使用者高品質之多媒體服務 英文 : The technology proposes a novel cooperative multi-agent system based on a cooperative concept and awareness algorithm for QoS management in heterogeneous network. The cooperative system is consisted of problem-solving agents that autonomously process local tasks and cooperatively exchanges information via a shared database to guarantee network QoS. An awareness algorithm called Q-learning is proposed to calculate a reward set of handoff occurred from one to other access networks. When an access network cannot support multimedia applications with desired QoS level, thus the problem-solving agent can adaptively select another network from the Q-learning set to replace the system. 可利用之產業 : 無線網路 網路多媒體應用及車載魯路等相關產業 可開發之產品 : 無線網路之終端設備 車載之路側系統 (Road Side Unit, RSU) 與車輛單元 (On-Board Unit, OBU) 等 技術特點 1. Q-Learning 演算分析 : 為實作增強式學習法 (reinforcement learning) 之演算法 增強式學習法起源於心理學中的制約操作理論, 不同於監督式學習法, 要有一個監督者來指導學習, 增強式學習法僅憑著與環境的互動進行學習, 其學習代理人 (agent) 並沒有明確的指導者 在連續的決策過程中, 單一項決策可能會影響後續的狀態與決策, 因此增強式學習法學習的目標是極大化所有決策報酬的總合, 以及與環境互動來追求未來 第 88 頁 / 共 89 頁

90 推廣及運用的價值 整體預期收益的特色, 使得增強式學習法被認為適合用在決策控制系統上 2. Multi-agent System: 主要因應大型環境中訊息交換和進行控制等功能所設計, 主要係建構 Cooperative 概念, 且可運用增強式學習法設計 Multi-agent System, 以做為大量資料的判斷, 而代理人彼此進行相互溝通, 達到資訊交換之目的 3. QoS 策略 : 依據 3G WLAN 及 WiMAX QoS 規格, 將不同類型之應用分為 Interactive VoIP Video/Audio Streaming 及 Best Effort 等四個類別, 每類應用具有不同的 QoS 需求, 結合由感知能力所獲取的 RSSI 值, 進行 QoS 的決策, 判斷是否有更合適的存取網路, 提供使用者進行換區的動作, 以獲得最佳的傳輸品質 當使用者的網路環境遭受到雜訊干擾時, 往往會造成傳輸的品質不佳, 進而導致傳輸環境不符合應用所需的 QoS 要求, 此時 QoS 策略機制便會啟動, 以保證應用服務所需的 QoS 4. QAM Charging System: 提供應用服務 子系統 (IMS) 和業務 ( 如 MMS) 各層實現 Online Charging 和 Offline Charging Module, 進行即時監控各層的資源使用情況, 檢測相關計費資訊 Offline Charging Module 是在資源使用後由網路向計費系統匯報資源的使用情況 ;Online Charging Module 是允許用戶使用請求的網路資源之前, 先至此模組查詢用戶帳號, 進行即時扣款的動作, 而 QAM Charging System 可提供之服務, 例如 : 特定時間的語音呼叫, 特定數據業務的流量傳輸, 或者特定多媒體訊息的提交 Offline Charging Module 和 Online Charging Module 可以同時相互獨立地處理相同的計費事件 此研發成果可推廣及運用於無線網路 網路多媒體應用和車載網路之相關產業, 建置於無線網路之終端設備 車載之路側系統 (Road Side Unit, RSU) 與車輛單元 (On-Board Unit, OBU) 中, 使用者運用相關移動或非移動性終端設備時, 可確保傳輸多媒體訊息之網路服務品質 1. 每項研發成果請填寫一式二份, 一份隨成果報告送繳本會, 一份送貴單位研發成果推廣單位 ( 如技術移轉中心 ) 2. 本項研發成果若尚未申請專利, 請勿揭露可申請專利之主要內容 3. 本表若不敷使用, 請自行影印使用 第 89 頁 / 共 89 頁

91 附件六 國科會補助專題研究計畫項下國際合作研究計畫國外研究報告 日期 :100 年 7 月 5 日 計畫編號 計畫名稱 NSC E 跨層式感知與協力 4G-IMS 無線網路研究 -- 子計畫三 : 跨層式感知與協 力 4G-IMS 無線網路之服務品質與資源管理研究 (3/3) 出國人員姓名 陳俊良 服務機構及職稱 台灣科技大學電機系 / 教授 合作國家美國 / 日本合作機構美國 Telcordia/ 日本東京工業大學 出國時間 99 年 12 月 1 日至 99 年 12 月 4 日 100 年 6 月 6 日至 100 年 6 月 9 日 出國地點 日本 / 東京 京都 一 國際合作研究過程 本人因執行國科會計畫 (NSC E ; 附件一所示 ) 需至美國 New Jersey Morristown 的 Telcordia Technologies 公司 ( 前名為 Bell Labs; 合作部門 : Internet Service Management Research Department of the Internet Architecture Research Lab; Director for the "Service Integration Research") 進行研發系統合作測試 (Protocol Validation & Application Test), 以強化未來 4G-IMS 網路通訊的研究能量, 因 Telcordia 多位研究人員於 100/6/6~100/6/9 至日本京都參加 IEEE ICC 國際研討會, 我亦有一篇論文擬於此會議發表 ( 如附件二所示 ), 所以雙方約定先將已發展之系統模組互送對方進行測試, 然後於 IEEE ICC 會場租用其場地進行雙方合作研究成果討論 此外, 因日本東京工業大學亦有相關之 testbed, 邀請我們進行合作, 所以我們亦於 99 年藉由本校補助本實驗室研究人員至日本東京工業大學 Takada Lab 進行合作討論 綜上所述, 本人本期國際合作研究目的為 : (1)Telcordia Technologies 是國際網路通訊研發領導公司, 亦擁有與我們研究相同之 4G-IMS Testbed, 我們於前期計畫 (NSC E ; NSC E ; NSC E ;NSC E ) 已與 Telcordia 公司合作研發, 進行國科會計畫研究成果測試 與 Telcordia Research Team 已有長期合作之默契, 因此雙方於 4G IMS-QoS 協定測試與分析進展順利 1

92 (2) 東京工業大學 Takada Lab 是一個擁有 70 餘位研究人員之實驗室, 長期研究主題在網路通訊的訊號傳輸, 此實驗室與歐洲多個實驗室有合作計畫進行 此次,Takada Lab 邀請我們一起研討並探討如何整合雙方之研究成果, 此為將研究成果推廣至國際的好機會 以下為國際合作相關活動剪輯說明 : 圖一 :Telcordia 研究人員介紹系統整合情形 ( 在日本京都 ), 遠距與 Telcordia Team Member 視訊 ( 美國新澤西 ) 圖二 :Telcordia 測試系統 圖三 : 系統測試場景 2

93 圖四 : 測試終端設備 圖五 : 系統效能監控場景 圖六 : 於京都雙方與會人員 圖七 : 我方人員於合作會議報告 3

94 圖八 : 東京工業大學 Takada Lab 與我方研究人員 圖九 : 我方進行簡報 圖十 :Takada Lab 教授進行簡報 圖十一 : 實驗室研究成果討論 4

95 二 研究成果 經過了多年的合作, 兩方 ( 與 Telcordia) 合作相當順利, 成果如下所述 1. 研究成果發表論文 - J.L. Chen, S.W. Liu, S.L. Wu and M.C. Chen, Cross-layer and Cognitive QoS Management System for Next-Generation Networking, International Journal of Communication Systems, Vol.24, No.9, pp , J.L. Chen, Y.T. Larosa, D.J. Deng, P.J. Yang and Y.W. Ma, QoS-aware Heterogeneous Networking using Distributed Multiagent Schemes, Proceedings of the IEEE Wireless Communications and Mobile Computing Conference (IWCMC), pp , August J.L. Chen, S.L. Wu, Y.T. Larosa, P.J. Yang and Y.F. Li, IMS Cloud Computing Architecture for High-quality Multimedia Applications, Proceedings of the Wireless Communications and Mobile Computing Conference (IWCMC), pp , September 系統功能模組測試 - Online Charging Module; - Offline Charging Module; - QoSClass Rule 和 QoSStreamID Rule 的費率決策演算法 ; - Multimedia Applications over 4G-IMS with QoS Guarantee 3. 與東京工業大學合作撰寫未來合作計畫書 ( 如附件三 ) 三 建議國際研究除建立合作研究關係以達到前瞻研究之目的外, 亦應兼具培育實驗室研究人員之國際觀 國科會補助本人多年國際合作經費與國際頂尖 Lab 合作, 然前五年之運作模式皆是由實驗室先將研發之系統模組互送對方測試, 我則選定長假時間至 Telcordia 與他們的研究人員會談, 我的研究人員僅能藉由視訊會議討論, 國際觀稍欠缺 本期計畫執行我則帶實驗室 8 位研究人員直接接受東京工業大學 Takada Lab 邀請至東京與其實驗室研究人員研討, 雙方人員則一一發表研究相關模組及測試情形, 成效良好, 本案雖已結束, 然雙方仍繼續研討 建議未來國際合作研究, 儘量讓研究人員親自出席, 以培養其國際觀及強化其國際競爭力 四 其他感謝國家科學委員費經費補助參加此國際會議, 受益良多 5

96 附件一 6

97 On Alleviating Starvation in Wireless Sensor Networks Yang-Sheng Chen, Yu-Shiang Wong, and Der-Jiunn Deng + Department of Computer Science and Information Engineering National Changhua University of Education Changhua, Taiwan, R.O.C yeti @gmail.com, nightlossk@gmail.com, djdeng@cc.ncue.edu.tw Jiann-Liang Chen Department of Electrical Engineering National Taiwan University of Science and Technology Taipei, Taiwan, R.O.C lchen@mail.ntust.edu.tw Abstract Current medium access control (MAC) protocols for wireless sensor networks (WSNs) do not support prioritized channel access and often suffer from varying degrees of starvation and fairness problems. That is, with a little bad luck, a sensor node might have to wait arbitrarily long to send its frame, and thus results in the invisibility of some sensed area. In this paper we introduce a simple, but yet well performing starvationfree backoff scheme based on sensor MAC (S-MAC) protocol for WSNs. The proposed scheme allows a sensor node to adjust its backoff window size according to its re-transmission times. An analytical analysis is carried out to study the saturation throughput of proposed scheme under backlogged conditions. In addition to the theoretical analysis, simulations were also conducted to analyze the proposed scheme and the results show that our scheme can effectively alleviate the starvation and fairness problem and achieve better performance in high density WSNs. Keywords: S-MAC, WSNs, starvation, backoff, priority I. INTRODUCTION In recent years, the rapid growing of embedded systems and memory technique leads to the vigorous development of wireless sensor networks (WSNs). The core idea of wireless sensor networks is deploying a large number of small-sized sensors to collaboratively monitor physical and environment conditions. Generally, sensor nodes are operated with limited power and cooperated in unstable environment. Hence, in WSNs, the MAC protocol is the key component that provides the efficiency in sharing the common radio channel while satisfying the fairness requirements for each sensor node. In the literatures there have been adequate discussions about the performance of various MAC protocols for WSNs. Ye et al. [1] proposed a Sensor MAC (S-MAC) based on IEEE protocol, which significant reduced power consumption by adding periodic sleep mechanism. S-MAC employs periodically relative synchronization by broadcasting next sleeping time of sensor nodes periodically and choosing large slot time to provide robustness when topology changes or clock drifts. Due to the active time of sensor nodes in S-MAC is fixed, the energy efficiency of S-MAC is not satisfied. Hence, Tijs and Koen [2] proposed a Timeout MAC (T-MAC), which uses adaptive scheme to force a sensor node to enter sleeping mode when a sensor node is idle and channel is busy in active stage. T-MAC improves the performance of S-MAC in terms of energy efficiency but the adaptive scheme also causes early sleeping problems. To achieve better energy efficiency, there are many extended versions of S-MAC have been proposed. In [3] and [4], a dynamic control active time mechanism has been proposed to provide more efficient energy usage. In [5], the authors proposed a Berkeley-MAC (B-MAC) which attempts to use hardware technique, such as lower power listening (LSL) and clear channel assessment (CCA) to improve its power consumption. In [6], the authors pointed out that Z- MAC [7], a hybrid TDMA and CSMA/CA MAC protocol for WSNs, can achieve better performance than the B-MAC, but the robustness of network could be another problem. Although the aforementioned works achieve better performance than S-MAC, these approaches are not satisfactory since they did not take into account the fairness and starvation problems. Furthermore, many previous works, e.g. [1] and [2], choose to burst transmit its frames in order to get shorter transmission latency. However, this makes starvation problem worse because sensor nodes may face high contention from neighboring nodes. In [6], the authors mentioned that the fairness and starvation problems may cause significant parts of the network to be invisible, in that nodes sensing events in such areas are starved, and hence the sink never detects events from these areas. Please note that fairness problem usually come with starvation of sensor nodes, but essentially they are different, as starvation is induced by a bad luck sensor node which always chooses a relatively large backoff number, and therefore this sensor node might have to wait arbitrarily long to send its frame. Binary Exponential Backoff (BEB) algorithm, the defacto standard contention resolution algorithm for wireless local area networks (WLANs) might lead to a fairness problem as well because BEB algorithm always favors the last successfully transmitted node. In fact, the backoff algorithm of S-MAC is different from standard BEB algotithm. S-MAC uses fixed contention windows size and S-MAC does not freeze its timer if the channel becomes busy before time out. Hence, S-MAC eliminates the fairness problems but aggravates the starvation problem since a bad luck node may always choose a relatively large contention window size for each transmission. In [8], + Correspondence: Der-Jiunn Deng The work of this paper was partially sponsored by ROC NSC under Contract E MY3

98 Chunsheng et al. proposed a modified backoff algorithm to improve the funneling effect of S-MAC. However, it does not take into account the starvation problem either. In this paper, we introduce a simple but yet well performing backoff algorithm with the view of alleviating starvation problem for sensor nodes in high density WSNs. Besides, it can eliminate fairness problem in a partially connected network topology. An analytical analysis is carried out to study the system saturation throughput of the proposed scheme. In addition, we also carried out comprehensive simulations to evaluate its performance. Compared with the S- MAC, the simulation results show that the proposed scheme can effectively reduce the fairness problem and achieve higher system throughput and lower blocking rate in high density WSNs. The remainder of this paper is outlined as follows. In section 2, we describe proposed scheme and its numerical analysis in detail. Section 3 provides simulation results of proposed scheme comparing with S-MAC. Section 4 concludes this paper II. PROPOSED SCHEME AND ITS NUMERICAL ANALYSIS In this section we introduce the proposed scheme and its saturation throughput analysis. A. Proposed Scheme As we mention above, the S-MAC protocol suffers from the starvation problem and it lack of any priority scheme to cope with various type of multimedia traffic. Hence, we propose a backward compatible priority enforcement mechanism, thereby making the proposed scheme compliant sensor nodes to coexist with S-MAC enabled sensor nodes. The basic idea behind our method is that the prioritized access to the wireless channel is provided by allowing shorter contention window size for sensor nodes with re-transmitted frame. To support priority, we slightly decrease the size of initial contention windows for high priority sensor nodes. That is, when consecutive collision or frame lost happened, a sensor node will decrease both lower bound and upper bound of its backoff number for next transmission in order to obtain higher priority and avoid starvation. In addition, we define a resend time threshold so that a sensor node experienced consecutive collision or frame lost can access the wireless channel fast. Hence, by using the sliding backoff window mechanism, the more re-transmission times a sensor node experienced, the higher priority this sensor node will get. Consequently, after a successful transmission, a sensor node has to concede the bandwidth to the retransmission nodes to avoid possible starvation caused to these sensor nodes. Please note that we still keep large contention windows size for both collided and non-collided nodes to reduce the collision rate. The following pseudo code describes the proposed scheme. Assume the retry limit, m, large or equal than four and small or equal than thirty two, the initial contention window size, W, large than thirty two, and the parameter eifs, W ', and φ represent small reserve space, sliding contention windows size, and retry limit threshold respectively. Algorithm Function Backoff Initialization: 4 retry limit m 32 W > 32 eifs = 8 time slots W = W eifs log 2 m φ = Repeat if ACK frame received then resend times =0 else // transmission fail if resend times < retry limit then // retransmit frame if resend times i B. Packet Transmission Probability In this section, we present an analytical model that accurately evaluates the saturation throughput of proposed scheme. In our analysis, we assume that all nodes are deployed by random manner and located in a single-hop network. According to our assumption and the feature of S-MAC [1], all sensor nodes have the same sleep schedule and within the same virtual cluster. Before we start to discuss our analysis, important notations and variables are define in Table 1, and they will be used throughout this paper. TABLE I. Variables W W p f p φ then //pick up a random backoff number backoff number = eifs i Rand() W + eifs else 2 2 // failed too many times, gives highest priority backoff number = Rand() W else Report upper layer transmission fails until no more frame to transmit end VARIABLE USED IN ANALYTICAL ANALYSIS Meaning and explanation Contention window size Average contention window size Probability of transmission failure Transmission probability L data Data packet size L ack ACK packet size

99 Variables P s P I P c P err m em eifs φ W n T s T I T c Meaning and explanation Probability of a successful transmission Probability of idle channel Probability of a collided transmission Probability of a transmission errors Retry limit Extended retransmission limit Extended interframe space Resend time threshold Sliding contention window size Number of sensor nodes Duration of a success transmission time Duration of idle channel Duration of a collided transmission T err Duration of a transmission error T Length of time frame frame BER σ Channel bit error rate Duration of time slot Now let us try to calculate the average contention window size. According to the assumption and definition in section 2.1, both lower bound and upper bound of the random backoff number will decrease after a transmission failure, and we assume the geometric distributed random variable is used to choose the random backoff number. Hence, the average contention window size is eifs eifs φ p (1 p )( W ') p (1 p )( W ') + eifs... eifs W = 0 m 1 0 f f f f m 1 p f eifs i (1 p f )( W ') p + ( + 1) eifs 2 2 = m 1 φ i f φ i= 0 i= 0 m 1 p f m 2 f φ φ m 8(1 p f ) (1) 8 W ' (1 p ) eifs ( 8 9) = Here p f is the probability of a transmission failure. In the beginning of an active period, a sensor node starts to transmit a frame with probability p, and defers the transmission with probability1 p. According to probability theory, the probability that there are x failures of transmission before the first success can be calculate as x 1 PX ( = x) = (1 p) p, 1 x (2) Hence, the average contention window size, W, is completely identified by the value of p, and thus we have W + 1 x 1 p 1 1 = x xp(1 p) = x(1 p) = (3) 2 x= 1 1 p x= 1 p By solving the above equation, we get: 2 p = (4) W + 1 By substituting W in (1) into (4), we obtain: 2 p = W + 1 m (5) 16(1 p f ) = m 2 8( W ' + 1) (1 pf ) eifs ( φ 8φ 9) However, the probability p f is still unknown. Since the probability of transmission failure is defined as the probability that a transmitted frame collided or received with error, we have n 1 pf = 1 (1 p) (1 pe ) (6) Here p e is the probability that data frame error or ACK frame error consecutively occurred when transmitting a data frame. Since both lost of data or ACK frame will cause ACK timeout and force sender to immediately resend the data frame until it exceeds the extended retransmission limit or receive a ACK frame successfully, we can express p e as the summation of probability that data or ACK frame error happened consecutively. Hence, we have em em data i data ack em i pe = ( i )( pe ) ((1 pe ) pe ) (7) i= 0 Where em, data p e, and p ack e stand for the extended retransmission limit, the probability of data frame received with error, and the probability of ACK frame received with error. Thus, we have: data pe ack pe L = 1 (1 BER) data (8) L = 1 (1 BER) ack (9) C. Saturation throughput analysis Since the saturation throughput is defined as a relation of successfully transmitted payload size over a randomly chosen time slot in the active stage [9], the system saturation throughput can be defined as follows: PL s data S = (10) PT I I + PT s s + PT c c + PerrTerr According to the equation above, the successful transmission probability, P s, is defined as the system transmitted a data packet without collision or bit error. Hence we can express P as s n 1 P = np(1 p) (1 p ) (11) s e Let P denote the probability that no sensor node try to I send data in a time frame, and P c denote the probability that a collision occurs in a time frame. Hence, they can be express as: PI = (1 p) n (12) P p np p 1 1 (1 ) n n = (1 ) (13) c

100 Let P denote the probability that a transmission errors err occurs on a data frame or ACK frame, and then sender give up its transmission, i.e., 1 (1 ) n Perr = np p pe (14) According to the periodic sleep mechanism in S-MAC, the time frame, T, equal to the summation of listening time frame and sleeping time. Assume ST is the time needed for a successfully transmission. Therefore, we can define its values as follows: ST = T + T + T + T + T + T + T + T + T DIFS CW RTS SIFS CTS SIFS data SIFS ack = T + T + T + T + T + 3T + T (15) DIFS CW RTS CTS data SIFS ack Where T DIFS, T CW, T RTS, T CTS, T, T and T are the SIFS data ack DIFS time, average contention window, transmitting time of a RTS packet, transmitting time of a CTS packet, a SIFS time, a data transmission time, and the transmission time of a ACK frame respectively. Since T is the duration of channel idle, we I have: TI = σ (16) Let RT stand for the remaining sleep time after a successfully transmission, which equal to the time between a successful transmitted ACK frame and the next awake time of sender node. Hence, we have: T = ST + RT (17) s Because the collision could only happen with RTS packet, and sensor nodes would go to sleep after collision occurs, we can express T as: c T = T + T + T + RT (18) c DIFS CW RTS According to S-MAC protocol, when data or ACK error occurs, sender will immediately retransmit its data. Hence, the penalty of transmission error will equal to a frame time. Thus, it follows that T = T (19) err frame Hence, we can findt s, T, and T c err are all equal to T. frame data data Owing to the summation of P, P, P, P and P equal to err err S C I 1, we can substitute T frame into the equation (10), and then the system saturation throughput can be computed as follows: PL s data S = (20) T P( T T ) frame I frame I III. SIMULATIONS AND PERFORMANCE EVALUATION In this section, we evaluate the performance of the proposed scheme and provide a head-to-head comparison with S-MAC protocol. A. Simulation Environment Our simulation model is built using the Network Simulator version 2 (NS-2), and each simulation runs at least for 1000 simulation seconds. To focus on the access control issues and to reduce the complexity of simulations, we modified the original S-MAC NS-2 modules as following: We change the predefine value of maximum neighboring number, synchronization table, and the size of synchronization contention window in order to simulate high density environments. We use static routing and random topology in our simulation to focus on access control issues. All sensor nodes could communicate with each other in a single-hop coverage area. We implemented the proposed starvation-free backoff algorithm. The evaluation was made with respect to the system saturation throughput and blocking rate under different offered duty cycle or number of sensor nodes. The default values used in the simulations are list in Table 2. The values for the simulation parameters are chosen carefully in order to closely reflect the realistic environments as well as to make the simulation feasible and reasonable. TABLE II. DEFAULT ATTRIBUTE VALUES USED IN THE SIMULATION WITH EXPLANATION Attribute Meaning and Explanation Value β Radio bandwidth 20 kbps L ctr Length of control packet 10 bytes LMAC header Length of MAC header 10bytes L payload MAC layer payload size 50bytes W Initial contention window size 63 W SYNC Contention window size for SYNC frame W ' Sliding contention window size 55 m Retry limit 5 em Extended retransmission limit 5 eifs Extended interframe Space 8 time slots DC Duty cycle 10% to 90% T DIFS time 5 ms DIFS T SIFS time 5 ms SIFS T Slot time 1 ms slot δ Propagation delay 5 us 63

101 B. Simulations Result Fig. 1 compares the system throughput obtained from the proposed scheme with the S-MAC protocol. In this scenario there are fifteen sensor nodes within the simulation environment. As shown in the figure, the proposed scheme can provide a better performance in most cases. Besides, as we expected, when the duty cycle (the ratio of active time divided sleep time) increases, the system throughput increases linearly. Fig. 2 depicts the system throughput as the number of sensor nodes increases when the duty cycle is 10 %. In general, for both scheme, the system throughput deteriorates as the number of sensor nodes increase. We can see there is not much difference in the values of the performance measures between two schemes in low density environment. However, as shown in figure 3, the proposed scheme obviously outperforms the S-MAC protocol in high density environment. Fig. 3 shows the effect of number of sensor nodes by plotting the blocking rate of data frame. Note that the blocking rate of S-MAC protocol dramatically increase when the number of sensor nodes larger than 30 in contrast to the smoothness of the proposed scheme. Therefore, this result is evidence that the proposed scheme can effectively avoid starvation problem especially when the system becomes congested. It also reveals that the proposed scheme could avoid starvation problem without sacrificing the overall system performance. Blocking rate Number of nodes Figure 3. Proposed scheme S-MAC Blocking rate versus number of sensor nodes IV. CONCLUSION In this paper, we proposed a pragmatic starvation-free bakeoff algorithm based on S-MAC protocol for WSNs and the analytical model has also been conducted to study system throughput. Through extensive simulations, we have demonstrated quantitatively the effectiveness of our proposed scheme, and it offers a remarkable performance improvement in high density WSNs. In our future work, we will extend our scheme to support for multimedia transmission and compare with other random access MAC protocols. Thtoughput (kbps) Throughput (kbps) Proposed scheme simulation 0.2 S-MAC simulation Duty Cycle (%) Figure 1. Throughput versus duty cycle Proposed scheme S-MAC Number of nodes Figure 2. Throughput versus number of sensor nodes REFERENCES [1] W. Ye, J. Heidemann, and D. Estrin, "Medium access control with coordinated adaptive sleeping for wireless sensor networks." Networking, IEEE/ACM Transactions on, Volume 12, Issue 3, pp , June [2] T. v. Dam, and K. Langendoen, "An Adaptive Energy-Efficient MAC Protocol for Wireless Sensor Networks. Proceedings of the 1st international conference on Embedded networked sensor systems, Los Angeles, California, USA, pp , November 05-07, [3] P. Lin, C. Qiao, and X. Wang, "Medium access control with a dynamic duty cycle for sensor networks." Wireless Communications and Networking Conference, WCNC IEEE, vol.3, no., pp Vol.3, March [4] S.H. Yang, H.W. Tseng, E.H.-K. Wu, and G.H. Chen, "Utilization based duty cycle tuning MAC protocol for wireless sensor networks," Global Telecommunications Conference, GLOBECOM '05. IEEE, vol.6, no., pp.5 pp.-3262, 2-2 Dec [5] K. Fakih, J. F. Diouris, and G. Andrieux, "BMAC: Beamformed MAC protocol with channel tracker in MANET using smart antennas." Wireless Technology, The 9th European Conference on, vol., no., pp , Sept [6] A. Warrier, J. Min, and I. Rhee, "Mitigating Starvation in Wireless Sensor Networks," Military Communications Conference, MILCOM IEEE, vol., no., pp.1-5, Oct [7] I. Rhee, A. Warrier, M. Aia, and M. Jeongki, "Z-MAC: A Hybrid MAC for Wireless Sensor Networks." Networking, IEEE/ACM Transactions on, vol.16, no.3, pp , June [8] C. Zhu, Y. Chen, L. Wang, L. Shu, and Y. Zhang, "SMAC-based proportional fairness backoff scheme in wireless sensor networks." Proceedings of the 6th International Wireless Communications and Mobile Computing Conference, Caen, France, pp ,2010. [9] Q. Ni, T. Li, T. Turletti, and Y. Xiao, Saturation throughput analysis of error-prone wireless networks, Wireless Commun. and Mobile Computing, vol. 5, no. 8, pp , Nov

102 Cooperative Research Proposal Research and Development of 4G-LTE Mobile Communication Networks Emulation Test-bed by: Wireless Network and Evolutional Communication, National Taiwan University of Science and Technology; Takada Laboratory, Tokyo Institute of Technology

103 Collaborator Institutions: Takada Laboratory, Tokyo Institute of Technology. Wireless Networks and Evolutional Communications Laboratory, National Taiwan University of Science and Technology. Goal: 4G-LTE mobile communication networks emulation test-bed, Journal Paper Publication. Project Duration: one year. Description (Project/Research Abstract): The project aims to establish an emulation of Long Term Evolution (LTE) as a forth generation mobile communications framework test-bed using existing open platform. Two main parts comprise the test bed: first is the LTE physical layer providing two directional QoS parameters from user to the IP and EPC core networks. The second is the construction of IP and EPC core networks to emulate the actual condition of end-to-end QoS. The project is conducted by integrating the both parts, which Takada Lab. in Tokyo Institute Technology provides the first part of integration. WNEC lab conducts the EPC and IP network reconstructions by functioning open platform to capture provide a framework to adaptively adjust QoS parameter from LTE physical layer. The open platform used in this project is NetFPGA and OpenIMS. NetFPGA is an open hardware platform enabling the packet IP modification. Through the platform packet IP header will be able to be adjusted follow the QoS requirement. Moreover, in this project NetFPGA will be used as hardware agent on EPC core network, and also will be implemented as modified router and gateway for LTE access network. OpenIMS leverages the relation of EPC network to the application services forming on the cloud computing systems. The network parameter from LTE access network will be process NetPFGA platform as real time network condition and translated to OpenIMS to give appropriate traffic budget on service provider domains. Through this cooperative project, an open platform of LTE network test be can be realized then can be used for further research extension. Takada Lab as LTE access network provider can use this test-bed to design physical parameter on LTE access network such as MIMO scheduling. Meanwhile WNEC lab can design the QoS mechanism in order to build integrated operation and maintenance system for LTE-4G communication networks.

104 1. Introduction One of the important goals from this project is to achieve the correctness and also the appropriate result for further implementations. Proposing a test bed as experimental is considered as the best way to emulate this project assessment in determining QoS assurance parameter. Having the pervious direction on the method proposal, the cross layer enabled platform is used to invoke the design function as well to obtain the feedback to from the system. Fig. 1 can illustrate the fundamental concept of obtaining enhancement parameter for this research. Case study Parameters identi;ication Scenarios System reaction System behaviours Figure 1. Test bed model framework Base on that conceptual framework, the test bed environment is forming to be an interactive module as shown by Fig. 2. Figure 2. Test bed interactive module The network behavioral study between IP network, control network (as IMS assigned to) and access network of LTE are pointed as the feedback from the test bed system design. The system is expected to produce very significant parameters that fulfill the proportional parameter formation in developing assurance system for end-to0end QoS.

105 2. Test-bed architecture Adapting the comprehensive LTE network, the perspective of total integrated network have to be completely depicted to model for the next step architecture. Therefore in Fig. 3, given the IP core network perspective in the integration of LTE and IMS network as the purposed test-bed integration scenario. Firstly in the IP core network is considered several IMSs core located inside. Meanwhile the LTE abscess networks are integrated by SGSN/MME gateway. As well that application server such as 3 rd party software accesses are forming the cloud systems, connected by edge routers. Figure 3. Proposed Architecture of LTE 4G Test bed Networks IP core network itself is considered formed by multiple number of router connected randomly each other s. By simply meaning there are also network provider and network backbones in domain interconnection. From whole point of view of LTE-IMS integration architecture, an end-to-end service perspective has to take the place in order to provide the space of NetFPGA platform integration. Moreover for Fig.3 the presentation of test-bed shows Takada Lab. will conduct all types of QoS parameters from the physical layer, where WNEC lab will identify the QoS parameter on a database that later will be processed for QoS policy of total networks.

106 By defining that architecture the network service and signaling flows as appears in Fig. 4. The total perspective from UE to the application servers brought in some cases of UC access to application servers. The very basic case can be differentiated from the type of end-to-end connection purposes, denote that three main flows: 1. UE Signaling to IMS 2. IMS Signaling to targeting domain 3. UL/DL from UE to targeting domain Targeting domain here can be either directed to another LTE access network, application servers or other access networks. Fig. 4 shows at least five important points will influence on the flows. Where each point has its own special characteristic in determine end-to-end QoS. Service and signaling here to be emerged as two basic events generated from point to point. Every single point will have contribution on the system behavior. One event derived by one point will effect to the next point action. 3. Network model a. Network link establishment Figure 4. Service and signaling flows Denoting five important points for shaping the end-to-end QoS assurance, to adjust the architecture to NetFPGA implementation, it is necessary to define the network model for flow optimization. When the system reaches an optimal condition, it means the desired parameters are finally satisfied. Assuming the Fig. 4 depicts the architecture for flow event as an interpretation model of traffic flow and signaling. We can assume the model as point to point relation stages as depicted in Fig. 5 E dge events E dge events E A S etup Action A IMS S etup Action B E A Figure 5. Network model Setup action Here is given three important points as the actuators while two actions for the link setup denote as action A and action B. In sequence that EA (end agent) is the networks access layer two cases applied: LTE or servers in IP network. Action B constitutes the mirror of Action A, where IMS stage actions is to query all possible routes to EAs. Somehow Action Bs are conducted prior to Action A engagements. The edge events in accordance with Action A have implication in determining the next sequence of Action B request. There are some parameters of edge event covered for Action A are: 1. Cell capacities (c) ; this parameter depicts the link layer events toward LTE radio access to the UE in the term in the number of users access that specific access layer

107 2. enb types (G); the access node type effects on the behaviors of UE access location and possible direction for network mobility. 3. UE mobility (M); the common behaviors of UE, since that lot of scheme are provided to measure 4. Application types (ε); this is the first priority of parameter needed to be fulfilled to determining the access priority. This parameter is only can be exceed by priority assessment regarding to price concern. 5. Priority assessment (γ); this parameter refers to the pricing paid for network resources, with this parameter UE. The relation between those five event parameters to Action A given by: α! = c! n + G!!!! [M!(!) ] Action B is the impact of IMS node query of the best route and edge link capacity of destination source. This action will be determined on what kind of case applied to. Recall that two possible cases are applied to the actions. We have. 1. Case of Action B is directed to symmetrical link, so generally invoke that α = β!"#$%&! so that the Action B has to fulfill the Action A type. If f denotes as all possible set of event parameter the set of numerical discussion that the maximum optimization of end to end QoS for this case will be meet the requirement as: β!"#$%&! = arg min α! ; iεc, n, G, M, ε, γ! 2. Case of Action B is directed to asymmetrical link, in asymmetrical link the Action B need to enquire the best possible route to the application source. As this possible that the link are formed by the number of routers, with specific state. The most prominent parameter of router link state is the congestion state that obtained by the pre and the post link status. If there are n numbers of router, where the pre and post congestion state denoted by ρ!"#(!) and ρ!"#$(!) respectively. So the congestion state per node given by: ρ! = ρ!"#(!) ρ!"#$(!) Therefore, the expectation from the system to have:!!!! ρ! β!"#$%&! b. Network traffic control Once the network connection is established by signaling actions follow the action A and B preferences, the flow maintenance is needed to assure the quality regarding to connection setup signaling. Different from network setup action, in this part the assignment of actions are not taken into account anymore. Instead the entire transit nodes are having the equal impact on the traffic quality as well as its contribution to enhance the total link. It is

108 necessary to be reminded that EA LTE always considered as the highest determination for the traffic flow, and IMS is excluded from this system model since IMS only gives the function to setup the link, without any intervene on traffic flows.. Base on that discussion the five nodes are assumed to have contribution on the total end to end flow: a. EA LTE; the event state emulation of LTE UE b. EA X; the event state emulation for Application server c. Service router set; emulates the number of routers that traversed by the traffic in IP service networks. d. enb; emulates the access network type, including the femtocell function. e. EPC GW; this node emulate the P-GW and S-GW to different direction of traffic flow End to end event (E end ) External E vents (E x1 ) E A L TE Sub event#1 (E s1 ) enb G W R Sub event#2 (E s2 ) Sub event#3 (E s3 ) Sub event#4 (E s3 ) E A X External E vents (E x2 ) Figure 6 Traffic flow events identification In addition that at the end of the traffic flows there are external events that can be distinguished to EA, recalling that the specific condition can be always happened on the network edge. So these parameters are expected to be unknown, but since it can be identified as input indicator for the further. In Fig. 6 the identification of events are separately distinguish among nodes. Denote the sub-event as E!"# where four sub-events and two external events forming end to end event denotes by E!"#. During the application traffic flow is expected that no events occur to interrupt the current flows, that global denotation for E!"# =. E!"# occurs when either E!"# are emerged in random occasion. Set of E!"# will accumulatively determine the EA actions in giving the budget for traffic flow. On Sub-event#1 as the control configuration toward enb, at least there are six functions are possibly applied: radio resource control (RRC), packet data convergence protocol (PDCP), radio link control (RLC), MAC, and PHY. Those control modules are possibly to be invoked during traffic flow. Sub-event#2 addresses the event in accordance with EPS bearer control. Here also need to remind that EPC is consisted by S-GW ad P-GW, where the EPS bearer is in relation with P-GW. The S-GW itself is defined as the local event between enb and GW. Sub-event#3 appears as the random occasion on IP network/internet domain where the scale this event source is very extensive. Therefore the identification of link event here is function as the congestion and flow control parameters control. The emerging of the events is considers that the specific QoS parameter such as delay and throughput has accordance with R and GW queuing discipline model. Sub-event#4 gives the link event as the traffic flows on the edge router. The same function of sub-events#1 will be applied on the Sub-event#4 if in case that X of EA = LTE. By these discussions the conclusion convince that if the some traffic flows are handled to two different case of possible action sources: radio related and IP network related, as illustrated on Fig. 7.

109 Traffic F lows G W R adio related events R adio related events G W IP network related events R IP network related events Figure 7. Types of action handle 4. Agent module From the model, the realization of test bed implementation the requirement of controlling traffic by identifying the event, it would require a specific module on the test bed that has some abilities to modifying the IP packet and identifies the specific input to be translated as parameter modifications to the traffic flow Concatenating the principles of LTE end to end QoS action and event to the module, where the modules itself are implemented on the each node of LTE end to end traffic flow. Embracing all functions that embodied on the purposed model, a logical module is designed in order to accomplish all tasks in obtaining all discussed actions and events. On the test bed this module will be the ambassador of each node. For efficiency, each module needs to cover two important functions the signally for IMS setup link and the second is the traffic controller. Signaling Signaling module Aggregate P arameters (A) Policy (P) Traffic flow control Module Traffic Flow Figure 8. Node logical modules Fig. 8 shows that two modules are required in giving the functions. This is the basic module of pre NetPFGA implementation. Two information exchanges aggregate parameters (A) and Policy (P) are interchange from those two modules in giving the real time event query. a. Signaling module This module is the node implementation of action model of network link establishment. Fig. 9 gives which e more detailed of the signaling module. To Handling and forming very precise signaling action for network link establishment, this module needs to obtain the

110 input form traffic characteristic module on the underlying traffic flows or external conditions. These monitoring values are classified based on its current QoS metrics, then adjusted to specific parameter adjustor. S ignaling Action App. Request Class Identifier S i (n 1) agent learning module Parameters adjustor S i(p) A(t) QoS Information concatenation Parameters adjustor A(t) Traffic Characteristics Monitoring Policy for flow control Figure 9. Signaling module The signaling initiation will not only derived by the current module (n), but also it will identify the (n-1) events. An agent that will notice the application class and examine the previous agent parameters will take this. Then finally, a module will concatenate information before the signaling information will be passed to the next module. b. Traffic control module On this module the policy (P) will be applied in advanced, which is formed by the action of signaling module. In fig. 10, it is clearly seen that this module supports the functionality to the signaling module. Policy (P) Aggregate P arameters Policy applicator Real time event detector Traffic measurement Traffic Flow Figure 10. Traffic control module For the next sequence policies, the traffic flow will always be measured in real time, and conducted the QoS metric thresholds. Each alteration in the QoS metric will be identified as generation of the events. The events then are brought to the signaling control module to process the intelligence identification and comparison with the other agents. The sampling of events by traffic measurement will be always repeated until the module is saturated to the optimal condition.

111 5. Open Platform implementation The module need to be translated in real test bed implementation, which is NetFPGA platform, will be implemented on the each module. As mentioned before NetFPGA platform is expected to be able to measure the traffic flows, and determines the event in relation for decision sequence. a. NetFPGA Test-bed architecture Firstly the proposed test architecture is depicted by the fig. 11. There are five nodes of PC integrated with NetFPGA board. For each NetFPGA board there ar four-gigabit Ethernet ports, two ports are assigned Open IMS c ore eth0 eth0 eth0 eth0 eth0 eth1 eth1 eth1 eth1 Test router eth1 (optional) Figure 11. NetFPGA Implantation on the Network b. OpenFlow mechanism implementation Follow OpenFlow specification table, each node event can be handled by VLAN mechanism. There three field tuple of action table in OpenFlow entries are subjected to customization: VLAN_id, VLAN_prority, and IP_ToS. The OpenFlow role on the end-to-end IP flow by LTE-IMS mechanism, Fig. 13 has the detail illustration. EA (ACC LTE) to enb relation in PHY and LINK layer controlling can be translated as the assignment from VLAN_id as the semi static events and VLAN_prority as dynamic event and IP_ToS as static events. AC C L TE enb GW R ACC X C apsulated QoS information tunneling ToS 6 bits VL AN_id 12 bits VL AN_priority 3 bits VL AN_priority 3 bits Traffic Flows VL AN_priority 3 bits ToS 6 bits VL AN_id 12 bits Figure 12 OpenFlow Table Relations to Events Capsulator mechanism is projected to handle end to end record specification of ToS. For instance the setup request information is depending on the type of applications. For 2 3 possibilities of application types, the Capsulator inform this to the IMS process to matched the end the type of ACC X. On Each traffic control module will be place on OpenFlow module and according to the traffic and measurement function on every node we need to put traffic monitoring module. This function can be performed using promiscuous reference NetFPGA router, to get the real time information on the network layer. Eventually capsulator and OpenFLow module need to be glue with a controller. NOX control are be able to combine the cross events between these modules. NOX controller will be implemented together with Open IMS server. The virtualization is able to place the system together as virtual machine.

112 附件四 國科會補助專題研究計畫項下出席國際學術會議心得報告 日期 : 99 年 9 月 20 日 計畫編號 計畫名稱 NSC E 跨層式感知與協力 4G-IMS 無線網路研究 -- 子計畫三 : 跨層式感知與協 力 4G-IMS 無線網路之服務品質與資源管理研究 (3/3) 出國人員姓名 會議時間 陳俊良 99 年 8 月 25 日至 99 年 8 月 27 日 服務機構及職稱 會議地點 台灣科技大學電機系 / 教授 中國 北京 會議名稱 發表論文題目 ( 中文 ) 第五屆 ICST 通訊及網路國際研討會 ( 英文 ) 5 th International ICST Conference on Communications and Networking in China ( 中文 ) 下一代多媒體網路應用之可調式服務品質機制研究 ( 英文 ) An Adaptive QoS Mechanism for Multimedia Applications over Next Generation Vehicular Network 一 參加會議經過 CHINACOM 2010 是由 ICST 主辦 IEEE VTS IEEE CVTC CREATE-NET 及北京郵電大學合辦的學術研討會議, 舉辦地點在北京航空航天大學 8 月 24 日至古色古香的北京 CHINACOM 會議報到處辦理報到, 領取會議相關資料 隔天在航天大學校內之 Vision Plaza Hotel 舉行研討會議 會議開始由大會主席 Prof. Jinpeng Huai, Prof. Jun Zhang 及 Prof. Hsiao-Hwa Chen 共同開幕, 同時報告本屆 CHINACOM 會議議程 本屆研討會著重於 Green Technologies for Communications, 研討會議程包含一場 Dinner Speech 2 場 Tutorial (Information Theory Broadband Access Networks MINO) 4 場 Workshops (Advances in Data and Information Management Cognitive Radio Networks Internet of Things Broadband MIMO Channel Measurement and Modeling) 8 場 Symposiums(Advances in Internet Information and Coding Theory Networking and Information Security Signal Processing for Communications Frontiers on Communications and Networking Multimedia Communications Optical Communications and Networking Wireless Communications and Networking) 3 場 Keynote Lectures (Vehicular Ad Hoc Networks Broadband Network Development Opportunity and Challenge Network Convergence in Future Internet), 1

113 投稿論文總數為 373 篇, 大會接受 150 篇二十四國之研究論文, 論文接受率為 40% 我們的報告是安排在 8/27 下午 16:00~17:30, 同一個時段有 8 個 Parallel Session 進行 此次我們的研究團隊發表了 1 篇研究報告 An Adaptive QoS Mechanism for Multimedia Applications over Next Generation Vehicular Network 每一 Session 安排 paper 發表篇數不多, 所以討論熱烈, 我們的研究合作夥伴 Prof. Victor Leung 亦從 Canada 趕來參加此盛會, 並與大學的 Prof. Kung 討論未來合作事宜 我們報告完後, 與會的先進也提出了一些問題, 與之回覆與討論, 覺得受益良多 此外亦聽取其他 Session 的研究成果報告, 包括 :Xuedong Liang (Oslo 大學 ) 的 Soft QoS Provisioning for Wireless Sensor Networks: a Cooperative Communications Approach"; Mojtaba Sabeghi (Delft University of Technology, NL); Mahmoud Naghibzadeh (Ferdowsi University of Mashhad, IR); Koen Bertels (Delft University of Technology, NL) 的 " RDM+: A New Mac Layer Real-Time Communication Protocol"; Trent Jacobs (University of Texas at Dallas, US); Hlaing Minn (University of Texas at Dallas, US); Naofal Al-Dhahir (University of Texas at Dallas, US) 的 " Reduced-Complexity Bandwidth-Constrained Distributed Estimation for Wireless Sensor Networks"; Brian Matt (SPARTA, US); Matt Mundy (SPARTA, US) 的 " Designing Efficient and Resilient Tactical Sensor Network Neighborhood Keying Algorithms", 對未來通訊網路研究方向的定位較明確 大會 Keynote Lecture, 主題為 Challenge for Gigabit Wireless, 主講者為 Prof. Fumiyuki Adachi 演講內容以 2005 年開始由 NSF 補助之 Optical Network Project 為主軸, 參與之研究機構包含 Princeton 大學 ( 主導學校 ) Pittsburgh 大學 Stanford 大學 Berkeley 大學等 Prof. Fumiyuki 報告此項研究議題之動機 過程與相關研究, 對於近年 High Speed Wireless Network 所產生電能消耗的問題與解決方案提出具體說明與分析比較, 包含 Power Saving 及 Cloud Computing 等議題, 並以 Power-Aware Architecture 闡述未來 Gigabit 發展時應具備之節能觀念與趨勢 圖一 : Keynote Speech 2

114 圖二 : 論文發表 圖三 : 會議之展場 二 與會心得 CHINACOM 2010 是一個中型的國際研討會, 討論與發表的領域範圍相當廣泛, 吸引世界各國的專家學者投稿發表論文, 不論質與量都相當優良,Paper Accept Rate 控制在 40% 本次參加此國際會議時間收穫不少, 除了吸收了各國最新論文報告資料之外, 在第一天午餐中, 再次與熟識之 Prof. Nirwan (Department of Electrical Engineering, NJIT) 見面, 他是 IEEE Fellow, 除學術專精外亦熱衷舉辦學術活動,NJIT 電機系研究團隊在本屆會議中發表數篇論文 : Channel Assignment Scheme for WiMAX Networks 及 Improved Group Mutual Exclusion in Sensor Networks, 分別針對 WiMAX Network 及 Sensor Network 研究議題進行架構與效能探討, 可作為我們研究團隊日後研究參考 3

115 NJIT(USA) 及 UBC(Canada) 研究團隊對於我們研究團隊發展方向與人才培育有相當大的興趣, 同時也洽談未來共同進行研究議題, 由此可更加肯定我們研究團隊的努力與成果 日後我們可藉由本次與會議經驗, 繼續發展未來的研究方向與研究領域 三 建議 CHINACOM 國際會議每年定期於中國的大學舉辦, 會議中匯集了各國相關研究領域的教授及研究人員, 但會議中非華人之與會人員甚少, 若能夠聚集全球 ( 華人及非華人 ) 的研究人員參與此國際研討會, 將可結合國內外研究能量探討未來通訊網路系統之相關研究 建議國內學者參與此會議前先評估非華人研究人員參與比率, 以評估與會將可獲得之交流效益 四 攜回資料名稱及內容 Conference Proceedings(CD) 一片, 內含 Program Committee 成員資料 會議 Keynote 報告投影片, 各 Session 之報告論文檔案資料 若國內專家學者有需要上述資料可向本人索取 ( Lchen@mail.ntust.edu.tw; ) 亦可至 website: 下載 五 其他 感謝國家科學委員費經費補助參加此國際會議, 受益良多 4

116

117 An Adaptive QoS Mechanism for Multimedia Applications over Next Generation Vehicular Network Jiann-Liang Chen Dept. of Electrical Engineering, National Taiwan University of Science & Technology, Taipei, Taiwan. Yi-Wei Ma, Yueh-Min Huang Dept. of Engineering Science, National Cheng Kung University, Tainan, Taiwan. Qing-Tai Yang Institute of Electronic Engineering, National Dong Hwa University, Hualien, Taiwan. Abstract This study develops a novel IEEE MIH (Media Independent Handover) mechanism for next generation vehicular multimedia network. An adaptive QoS management mechanism is also proposed. By obtaining received signal strength parameters, the proposed MIH framework can determine the best available network. The adaptive QoS mechanism substantially improves the performance of real-time multimedia applications. The simulation results show that average handover time is slower than both UMTS and WiMAX when the MIH mechanism is used in vehicular network. However, the simulation results confirm that using the IEEE MIH mechanism can increase overall throughput. Increased throughput is satisfactory compensation for increased handover time. Keywords-Vehicular Network; Next Generation Network; Media-Independent Handover; Quality of Service. I. INTRODUCTION Future vehicular networks may require mobile devices to cross over different servicing locations. Maintaining network services requires seamless integration of different networks. An in-vehicle user roaming between different wireless communications technologies requires efficient handover between different networks and continuous connections of applications in the different networks. However, advanced multimedia services require increasing network bandwidth and improved quality. To satisfy the high quality requirements of heterogeneous vehicular network users, an effective QoS mechanism is needed. The rapid deployment of the wireless networks now enables MN (Mobile Node) to provide continuous internet access when it is moving. An MN located in an access network with weak strength must optimize network quality by performing handover conversion. In the past, MN could only provide handover in homogeneous networks. This technique does not enable the balance of network load into different networks. Figure 1 shows how MN can access different networks in a next-generation network architecture that includes 3G and WiMAX access technologies. When MN moves across different wireless networks, handover procedure automatically performs network optimization [1]. Figure 1. Vehicular Network This study designs MIH functions and then embeds them into OSI layers to support multimedia applications over heterogeneous networks [2]. The MIH layer supports handover processing for in-vehicle users. This study also enhances the application layer by developing a network management module that contains an adaptive QoS mechanism needed for highquality multimedia services. II. BACKGROUND KNOWLEDGE Overlapping networks provide alternative wireless links such as WLAN and 3G. Mobile users are connected to the best network according to predefined priorities. Dynamic network accesses technologies are still needed to improve the distribution of network resources standards have been developed to support dynamically roaming users in heterogeneous network environments. A. IETF Network Mobility The SIP is a flexible, multi-purpose signaling protocol for session-based communications in IP networks. Since the SIP only handles the session management phase, different communication applications can be used after the session has

118 been established. Two essential logical elements in the SIP architecture are registrar and proxy servers. Registrars are the SIP entities in which SIP users register their contact information after connecting to a network. Regarding next-generation value-added network services, system operators must re-integrate the inherent network with the mobile network, and create a new network architecture in which the traditional line replaces the IP network as the core network and in which the center and the fixed network, wireless network and GSM/GPRS/3G network are integrated.? The new network infrastructure is the IMS [3]. B. IEEE MIH Architecture To integrate heterogeneous wireless network, the IEEE standard defined by IEEE organizations is the MIH Mechanism. Its main purpose is to develop a handover mechanism to provide a common communication interface to the IEEE series of each system so that the interface between the two different systems can provide effective communication. The MIH mechanism also includes the cross-integration scheme of heterogeneous network interface to provide a qualitative abnormality of the hands network optimization the MIH will import the existing 3G system mainly through cellular network integration [4-6]. The IEEE instead of the definition of MIH intermediary protocol layer to layer 2. The network information communicates with the layer 3 protocol and the upper layers so that the abnormal mass MN network environment can optimize handover. Figure 2 shows the MIH architecture. The Link layer is between MIH Function and the Network layer. Upper layers can determine the network conditions in the lower layer through the MIH Function. The MN is connected with the original link and the layer 2 network information is sensed, and after the MIH function confirms that the signal for less than threshold and upper layer of the threshold issue of event notification, when received by upper layer of the Link Going Down event notification. Upper layer MIH user can send a lower layer requirement of changing hands. When changing hands on the trigger event, the relative order should be issued to collect the media information network message and the MIH Function provides all mechanisms needed for the three services. The three services are Event Service, Command Service and Information Service. III. PROPOSED SYSTEM ARCHITECTURE This study proposes a new network architecture that combines SIP scheme and MIH mechanism. Management mechanisms are implemented in application layer, and MIHF provides the handover function in the upper layers. The mechanism provides the MIHF network environment parameters and handover mechanisms needed for effective MN handover in heterogeneous networks. Figure 3 shows the SIP Server, MIIS Server, CN and three different network environments, including WiFi and 3G networks. The SIP Server provides a register and a proxy to deal with the MN mobility function. The study uses SIP to support terminal mobility, and it remains connected when the terminal equipment is moved between different sub-networks. Figure 3. Proposed Vehicular Network Architecture The MIIS server on the core network stores available network information to help MN perform heterogeneous handover. The MIIS server includes neighbor graphs and other related information needed for handover monitoring and decision making. Figure 2. MIH Protocol Stack For the purpose of MN, handover in the MNs gradually moves away from the original BS, and the communication signal weakens. MN needs at this time switch to other hearing a good strong BS. As for the stationary users, handover demand occurred in the user wishes to switch channels forced to improve the transmission performance. A. Layer Architecture The five layers of the proposed system architecture includes: Application Layer, Transport Layer, Network Layer, Lower Layer and MIHF Layer. 1) Lower Layer: The lower layer has numerous transmission interfaces that can support the mobile requirement in heterogeneous network environment and related information, which are transmitted to the MIHF layer by the SAP interfaces.

119 2) Network Layer: This layer adopts IETF-related protocols for various interface communications needed in the heterogeneous network environment. This layer communicates with MIHF layer via the MIH_SAP interface. 3) Transport Layer: The study adopts voice-related protocols in this layer. The SCTP, which is the major channel for voice transmissions, to avoid making use of multi-homing properties not interrupt between wireless network and wired network. In application layer makes use of SIP, adopting UDP that delivers SIP control message and response. 4) Application Layer: The application layer includes the administrator interface, SIP services and Management Module. Administrator interface is referred to as a communication interface between system and user and responds to requests to transmit information. The SIP services send and receive SIP messages. When the system starts, the module sets up an external receiver channel and proceeds to SIP registration and also provides current contact information The study proposes Management Module as Handover Mechanisms, proceeds handover procedure that selects the appropriate network by MIHF layer. 5) MIHF Layer: The study adds an MIHF layer in between Network layer and Lower layer. The MIHF layer provides assists the user during mobility management and handover process. The MIHF layer includes three service modules: MIES, MICS and MIIS. B. MIH General Architecture This proposed IEEE architecture defines three service modules to facilitate inter-technology handovers in Media-Independent Handover Services. The MIES provides lower layers information to upper layers, and upper layers drive handover mechanisms. The IEEE protocol sets up numerous events and respondent messages for lower layers, and the upper layers use these messages during handover between two systems. When the lower layers sets up events, it sends related messages to upper layers by network and also provides handover mechanisms. The proposed MIES in this architecture can integrate the original handover mechanisms to enhance system handover efficiency. The MICS allows effective management and control of different interfaces. During service system handover in the heterogeneous environment, inform user to use parameters and data that proceed to reserve resource, hence user have sufficient handover resources. The study proposes the use of MICS architecture, and the management module can horizontal handover, making use of BSs to ensure speedy handover. The MIIS provides the framework and corresponding mechanism needed for MIH services to discover available neighboring network information. Other neighbor system related-information, including transmission frequency, system type, and system operator set up and the BS is needed by the user to determine which neighboring network can supply in service ranges, and the BS can then perform network topology acquisition. The proposed IEEE protocol can be used by all of the various systems. In the experimental setup, the independent MIIS server provides all MIIS service system in the network environment. C. Proposed Management Module Figure 4 shows the Management Module for the proposed architecture. The lower MIHF information layers pass through the upper layers. The Management Module divided into three functions: Handover Mechanism, Signal Control and Network Parameters. Figure 4. Proposed Management Module The MIH aims to provide upper layers with the network parameters relevant to the lower layers. Since the terminal can access several network systems simultaneously, the proposed Handover Mechanism selects f networks handover candidates. The study proposes a handover algorithm in the Handover Mechanism module, and Handover Mechanism determines to implement the mechanism that must get the relevant network parameters in Network Parameters module. The module is responsible for communicating MIHF information. Signal control through MIES enables the Management Module to perform network handover. Handover Mechanism determines Signal Control parameters to receive MIIS information in Network Parameters Module. When the Management Module has passes through the Signal Control to send MICS information. The terminal changes connection from WiMAX system to UMT system. When the terminal transmits WiMAX RSSI ratio lower than the threshold, the MIHF sends Link Going Down signal to Management Module. The Management Module then sends out MICS to MIHF, and MIHF sends nearby environmental parameters to Management Module, and the Management Module passes through the Handover Mechanism selects the next target as handover procedures in UMTS system. When the UMTS set up is complete, the SIP has proceeds to session movement that provides the user for SIP service. The module stores with management module proceeding before the handover mechanism determine relevant network parameters. The terminal has a network interface that enables mobility in heterogeneous networks. The terminal can therefore cover different network systems simultaneously. The module stores with MIIS terminal and dynamic network information. Users indicate their specific requirements when setting up different QoS network parameters. The study adopts the following parameters: dropping, jitter, bandwidth and RSSI. It provides Handover Mechanism to select appropriate network algorithms.

Master Thesis_專門用來製作目錄.doc

Master Thesis_專門用來製作目錄.doc Introduction All-IP [1-4] All-IP packet switching long delay time, jitter packet loss All-IP Budget-Based QoS End-to-End QoS (real time on demand) 1 1.1 Circuit Switching Packet Switching DWDM IP VoIP

More information

Microsoft PowerPoint - Aqua-Sim.pptx

Microsoft PowerPoint - Aqua-Sim.pptx Peng Xie, Zhong Zhou, Zheng Peng, Hai Yan, Tiansi Hu, Jun-Hong Cui, Zhijie Shi, Yunsi Fei, Shengli Zhou Underwater Sensor Network Lab 1 Outline Motivations System Overview Aqua-Sim Components Experimental

More information

Microsoft PowerPoint - Performance Analysis of Video Streaming over LTE using.pptx

Microsoft PowerPoint - Performance Analysis of Video Streaming over LTE using.pptx ENSC 427 Communication Networks Spring 2016 Group #2 Project URL: http://www.sfu.ca/~rkieu/ensc427_project.html Amer, Zargham 301149920 Kieu, Ritchie 301149668 Xiao, Lei 301133381 1 Roadmap Introduction

More information

中文朗科AirTrackTM T600 迷你无线路由器用户手册.doc

中文朗科AirTrackTM T600 迷你无线路由器用户手册.doc AirTrack T600 http://www.netac.com.cn Netac Netac AirTrack OnlyDisk Netac Netac Netac http://www.netac.com.cn Netac 800-830-3662 FCC 15 B 1 2 3 4 / FCC 20cm 1 2 3 / / ...1 1.1...1 1.2...1 1.3...1 1.4...3...4

More information

填 写 要 求 一 以 word 文 档 格 式 如 实 填 写 各 项 二 表 格 文 本 中 外 文 名 词 第 一 次 出 现 时, 要 写 清 全 称 和 缩 写, 再 次 出 现 时 可 以 使 用 缩 写 三 涉 密 内 容 不 填 写, 有 可 能 涉 密 和 不 宜 大 范 围 公

填 写 要 求 一 以 word 文 档 格 式 如 实 填 写 各 项 二 表 格 文 本 中 外 文 名 词 第 一 次 出 现 时, 要 写 清 全 称 和 缩 写, 再 次 出 现 时 可 以 使 用 缩 写 三 涉 密 内 容 不 填 写, 有 可 能 涉 密 和 不 宜 大 范 围 公 2013 年 度 上 海 高 校 市 级 精 品 课 程 申 报 表 ( 本 科 ) 学 校 名 称 东 华 大 学 课 程 名 称 计 算 机 系 统 与 网 络 技 术 课 程 类 型 理 论 课 ( 不 含 实 践 ) 理 论 课 ( 含 实 践 ) 实 验 ( 践 ) 课 所 属 一 级 学 科 名 称 所 属 二 级 学 科 名 称 课 程 负 责 人 申 报 日 期 工 科 计 算 机

More information

RAQMON Context Setting MG PDA Applications RTP / FTP/ HTTP TCP/UDP S ignaling control plane (e.g. RS VP, NS IS) Streaming Media, Transaction, Bulk dat

RAQMON Context Setting MG PDA Applications RTP / FTP/ HTTP TCP/UDP S ignaling control plane (e.g. RS VP, NS IS) Streaming Media, Transaction, Bulk dat Realtime Application QOS Monitoring (RAQMON) Dan Romascanu dromasca@avaya.com 1 RAQMON Context Setting MG PDA Applications RTP / FTP/ HTTP TCP/UDP S ignaling control plane (e.g. RS VP, NS IS) Streaming

More information

Mechanical Science and Technology for Aerospace Engineering October Vol No. 10 Web SaaS B /S Web2. 0 Web2. 0 TP315 A

Mechanical Science and Technology for Aerospace Engineering October Vol No. 10 Web SaaS B /S Web2. 0 Web2. 0 TP315 A 2012 10 31 10 Mechanical Science and Technology for Aerospace Engineering October Vol. 31 2012 No. 10 Web2. 0 400030 SaaS B /S Web2. 0 Web2. 0 TP315 A 1003-8728 2012 10-1638-06 Design and Implementation

More information

业 务 与 运 营 社 交 网 络 行 为 将 对 网 络 流 量 造 成 较 大 影 响 3) 即 时 通 信 类 业 务 包 括 微 信 QQ 等, 该 类 业 务 属 于 典 型 的 小 数 据 包 业 务, 有 可 能 带 来 较 大 的 信 令 开 呼 叫 建 立 的 时 延 销 即 时

业 务 与 运 营 社 交 网 络 行 为 将 对 网 络 流 量 造 成 较 大 影 响 3) 即 时 通 信 类 业 务 包 括 微 信 QQ 等, 该 类 业 务 属 于 典 型 的 小 数 据 包 业 务, 有 可 能 带 来 较 大 的 信 令 开 呼 叫 建 立 的 时 延 销 即 时 移 动 互 联 网 业 务 在 LTE 时 代 的 发 展 分 析 及 业 务 建 模 刘 琪 王 蕴 实 盛 煜 李 轶 群 中 国 联 通 网 络 技 术 研 究 院 北 京 100084 摘 要 LTE 时 代 的 到 来 为 移 动 互 联 网 业 务 的 发 展 提 供 了 新 的 平 台, 也 给 运 营 商 带 来 巨 大 的 挑 战 文 章 探 讨 了 移 动 互 联 网 业 务 在

More information

scope_d2d2.pdf

scope_d2d2.pdf LAN 2 1. 5G 1. 5G 2. 1000 3. 4. mmwave 2. Bluetooth 1. Bluetooth 2. Bluetooth 3. 4. 3. MTC 1. MTC 2. MTC 3. MTC 4. MTC 5. MTC 1.1 5G 4G 5G [1] 1) a. 4G 1000 b. 5% 100Mbps 4G 100 a. 10Gbps 1.1 5G 2) 4G

More information

第四章-個案分析.doc

第四章-個案分析.doc - 33-27 28 AP application software - 34 - Value Added Service 60%~65% Project 35%~40% Broadband VOD Wireless Project by 80% 20% Contract Project by S.I. 29 SI System Integrationer MIC Total Solution Provider

More information

<4D6963726F736F667420506F776572506F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074>

<4D6963726F736F667420506F776572506F696E74202D20C8EDBCFEBCDCB9B9CAA6D1D0D0DEBDB2D7F92E707074> 软 件 架 构 师 研 修 讲 座 胡 协 刚 软 件 架 构 师 UML/RUP 专 家 szjinco@public.szptt.net.cn 中 国 软 件 架 构 师 网 东 软 培 训 中 心 小 故 事 : 七 人 分 粥 当 前 软 件 团 队 的 开 发 现 状 和 面 临 的 问 题 软 件 项 目 的 特 点 解 决 之 道 : 从 瀑 布 模 型 到 迭 代 模 型 解 决 项

More information

[2] AMPS Advanced Mobile Phone Service FDMA Frequency Division Multiple Access GSM Global System for Mobile Communication CDMAOne (IS-95A) US-

[2] AMPS Advanced Mobile Phone Service FDMA Frequency Division Multiple Access GSM Global System for Mobile Communication CDMAOne (IS-95A) US- 2.1 2.1 [2] AMPS Advanced Mobile Phone Service FDMA Frequency Division Multiple Access GSM Global System for Mobile Communication CDMAOne (IS-95A) US-TDMA (IS-136) 2.5 GPRS General Packet Radio System

More information

untitled

untitled LBS Research and Application of Location Information Management Technology in LBS TP319 10290 UDC LBS Research and Application of Location Information Management Technology in LBS , LBS PDA LBS

More information

Microsoft Word - 招股说明书.doc

Microsoft Word - 招股说明书.doc 创 业 板 投 资 风 险 提 示 : 本 次 股 票 发 行 后 拟 在 创 业 板 市 场 上 市, 该 市 场 具 有 较 高 的 投 资 风 险 创 业 板 公 司 具 有 业 绩 不 稳 定 经 营 风 险 高 退 市 风 险 大 等 特 点, 投 资 者 面 临 较 大 的 市 场 风 险 投 资 者 应 充 分 了 解 创 业 板 市 场 的 投 资 风 险 及 本 公 司 所 披 露

More information

Improving the Effectiveness of the Training of Civil Service by Applying Learning Science and Technology: The Case Study of the National Academy of Ci

Improving the Effectiveness of the Training of Civil Service by Applying Learning Science and Technology: The Case Study of the National Academy of Ci 善 用 學 習 科 技 提 升 公 務 人 員 培 訓 之 效 能 : 以 國 家 文 官 學 院 學 習 科 技 之 建 構 與 運 用 為 例 蔡 璧 煌 鍾 廣 翰 摘 要 公 務 人 員 的 素 質 代 表 一 國 國 力, 除 攸 關 國 家 施 政 外, 也 影 響 國 家 整 體 之 發 展, 因 此 如 何 善 用 學 習 科 技 協 助 公 務 人 員 培 訓 與 管 理, 未 來

More information

Microsoft Word - 103-4 記錄附件

Microsoft Word - 103-4 記錄附件 國 立 虎 尾 技 大 103 年 度 第 4 次 教 務 會 議 記 錄 附 件 中 華 民 國 104 年 6 月 16 日 受 文 者 : 國 立 虎 尾 技 大 發 文 日 期 : 中 華 民 國 104 年 5 月 28 日 發 文 字 號 : 臺 教 技 ( 二 ) 字 第 1040058590 號 速 別 : 最 速 件 密 等 及 解 密 條 件 或 保 密 期 限 : 附 件 :

More information

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot OSI OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Protocol OSI OSI OSI OSI OSI O S I 2-1 Application

More information

Microsoft PowerPoint - 数据通信-ch1.ppt

Microsoft PowerPoint - 数据通信-ch1.ppt 主 要 内 容 与 基 本 要 求 主 要 内 容 数 据 通 信 与 计 算 机 网 络 计 算 机 网 络 的 发 展 过 程 分 类 以 及 主 要 性 能 指 标 ; 分 组 交 换 的 基 本 原 理 及 其 与 电 路 交 换 报 文 交 换 的 联 系 与 区 别 ; 计 算 机 网 络 的 协 议 与 体 系 结 构 第 1 章 概 述 基 本 要 求 掌 握 分 组 交 换 电 路

More information

2002 7 2 Session Number E-Business PSTN PSTN Remote Site Frame Relay X.25 Leased Line : & Self Replicating Code Password Guessing 1980 Exploiting Known Vulnerabilities Password Cracking Back Doors

More information

y 1 = 槡 P 1 1h T 1 1f 1 s 1 + 槡 P 1 2g T 1 2 interference 2f 2 s y 2 = 槡 P 2 2h T 2 2f 2 s 2 + 槡 P 2 1g T 2 1 interference 1f 1 s + n n

y 1 = 槡 P 1 1h T 1 1f 1 s 1 + 槡 P 1 2g T 1 2 interference 2f 2 s y 2 = 槡 P 2 2h T 2 2f 2 s 2 + 槡 P 2 1g T 2 1 interference 1f 1 s + n n 37 1 Vol 37 No 1 2013 1 Journal of Jiangxi Normal UniversityNatural Science Jan 2013 1000-5862201301-0037-05 MISO 郭荣新, 袁继昌 361021 2 RVQ 2 MISO 3 TN 911 7 A 0 MIMO 2 MISO 3 MIMOnetwork MIMO 3GPP LTE-A 2

More information

随需应变网络,恒久电信质量

随需应变网络,恒久电信质量 ITCTICT TDM/ATM TCP/IP CT 5 9 ICTCT+IT + IT + SOA 7X24 OCAF Availability Serviceability Scalability Security Adaptability( WAP GZ1 WAP WAP BJ1 WAP BJ2 A = MTBF MTBF + MTTR MTBF: MTTR: Downtime876060(1-A)

More information

IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I

IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I 2004 5 IP TCP/IP PC OS µclinux MPEG4 Blackfin DSP MPEG4 IP UDP Winsock I/O DirectShow Filter DirectShow MPEG4 µclinux TCP/IP IP COM, DirectShow I Abstract The techniques of digital video processing, transferring

More information

出國報告電子檔規格

出國報告電子檔規格 會 議 報 告 ( 會 議 類 別 : 其 他 ) 3GPP RAN #69 Meeting 會 議 報 告 出 席 人 員 : 陳 瓊 璋 / 陳 弘 仁 派 赴 地 區 : 美 國 / 鳳 凰 城 會 議 期 間 :104 年 9 月 14 日 至 9 月 18 日 報 告 日 期 :104 年 10 月 15 日 1 摘 要 本 次 3GPP RAN #69 會 議 於 9 月 在 美 國 的

More information

XXX专业本科人才培养方案

XXX专业本科人才培养方案 计 算 机 科 学 与 技 术 专 业 本 科 人 才 培 养 方 案 (Computer Science and Technology 080901) 一 培 养 目 标 本 专 业 培 养 德 智 体 美 全 面 发 展, 具 有 良 好 的 科 学 与 人 文 素 养, 熟 悉 经 济 管 理 法 律 等 相 关 基 础 知 识, 系 统 地 掌 握 计 算 机 硬 件 软 件 方 面 的 基

More information

<4D F736F F D20312D3120D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E5A3A92E646F63>

<4D F736F F D20312D3120D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E5A3A92E646F63> 本 次 股 票 发 行 后 拟 在 创 业 板 市 场 上 市, 该 市 场 具 有 较 高 的 投 资 风 险 创 业 板 公 司 具 有 业 绩 不 稳 定 经 营 风 险 高 退 市 风 险 大 等 特 点, 投 资 者 面 临 较 大 的 市 场 风 险 投 资 者 应 充 分 了 解 创 业 板 市 场 的 投 资 风 险 及 本 公 司 所 披 露 的 风 险 因 素, 审 慎 作 出

More information

untitled

untitled 1. 95 年 度 2 老 2 老 8 10 11 理 4 2007.3.12 2. 更 Cisco 2960 switch 路 更 路 更 路 更 更 NIS 狀 料 兩 數 Visual Studio Standard.net 2005 老 2007.4.19 Panel talk 行 95 年 度 良 老 葉 羅 老 45 參 行 領 力 立 C 行 力 行 路 力 95 年 度 路 97 年

More information

10384 X2009230010 UDC The Design and Implementation of Small and Medium-sized Courier Company Logistics Vehicle Scheduling System 2012 06 Abstract With the arrival of the information age, tremendous

More information

基于泛在网的智能交通应用系统总体框架

基于泛在网的智能交通应用系统总体框架 ICS 01.040.33 M04 YDB 2010-2623T-YD 中 国 通 信 标 准 化 协 会 标 准 YDB 2010-2623T-YD 通 信 网 支 持 智 能 交 通 系 统 总 体 框 架 General architecture of intelligent transportation system based on telecommunication networks 201X

More information

附3

附3 普 通 高 等 学 校 本 科 专 业 设 置 申 请 表 ( 备 案 专 业 适 用 ) 080910T 3-6 2 016 7 6 4884878 目 录 填 表 说 明 ⒈ ⒉ ⒊ ⒋ ⒌ 1. 普 通 高 等 学 校 增 设 本 科 专 业 基 本 情 况 表 080910T 3-6 1978 36 ( 1978) ( 2008) 2017 60 120 / S J ⒉ 学 校 基 本 情

More information

2/80 2

2/80 2 2/80 2 3/80 3 DSP2400 is a high performance Digital Signal Processor (DSP) designed and developed by author s laboratory. It is designed for multimedia and wireless application. To develop application

More information

cost downoem Original Equipment Manufacture value up ODM Original Design Manufacture value addedobm Original Brand Manufacture a OEM ODM OBM O

cost downoem Original Equipment Manufacture value up ODM Original Design Manufacture value addedobm Original Brand Manufacture a OEM ODM OBM O * 林榮泰 2009 21 2008 OEM OBM * 32 cost downoem Original Equipment Manufacture value up ODM Original Design Manufacture value addedobm Original Brand Manufacture2006 2005a OEM ODM OBM OEM ODM OBM OEM OBM

More information

G G G 行動通訊CHAPTER

G G G 行動通訊CHAPTER -2-3 -4 3G -5 4G -6 5G -7-1 行動通訊CHAPTER Part 3 無線區域網路 / 廣域網路 / 行動通訊 -1! 1G AMPS AMPS - GSM GSM 2G GSM 9.6Kbps GSM GPRS 2.5G 2G 3G 1G, 2G,3G 4G 100Mbps Fifth gerneration mobile networks, 5G -2 1G 2G 2.5G

More information

Sep (SCI) 10. Jiann-Ming Wu, Annealing by two sets of interactive dynamics, IEEE Trans. on Systems Man and Cybernetics Part B-Cybernetics 34 (3)

Sep (SCI) 10. Jiann-Ming Wu, Annealing by two sets of interactive dynamics, IEEE Trans. on Systems Man and Cybernetics Part B-Cybernetics 34 (3) 03-863-3531 E-mail jmwu@mail.ndhu.edu.tw /(1990/06-1994/06) (1988/06-1990/06) (1984/09-1988/06) / (1997/8-) (1996/08-1997/07) () 1996 8 Wu, Jiann-Ming ( SCI EI SSCI TSSCI EconLit A&HCI ) 1. Pei-Hsun Hsu

More information

2 / (),, (Claim)(Prior art), ;,,,,,,

2 / (),, (Claim)(Prior art), ;,,,,,, 2 / (),, (Claim)(Prior art), ;,,,,,, ( ) 3 ;, :() ( :) (:) (: ) (: ), :,, :(),, :() 4 5 18,,,, I,M,D 6 - 7 - 8 :9,, - 9 9,,,1:,2:,3: (), 10 US 8,312,290 B2 (country code), /, Kind Code "US 2003/1234567

More information

<4D6963726F736F667420576F7264202D2049507636B5F8B054BB50BB79ADB5A662B971A46CA4C6B0B7B164B7D3C540A4A7C0B3A5CE2E646F63>

<4D6963726F736F667420576F7264202D2049507636B5F8B054BB50BB79ADB5A662B971A46CA4C6B0B7B164B7D3C540A4A7C0B3A5CE2E646F63> IPv6 視 訊 與 語 音 在 電 子 化 健 康 照 護 之 應 用 The application of Audio and video over IPv6 networks for e-healthcare. 詹 茂 源 亞 洲 大 學 電 腦 與 通 訊 研 究 所 redhat_p122@yahoo.com.tw 黃 秀 園 亞 洲 大 學 電 腦 與 通 訊 研 究 所 syhuang@asia.edu.tw

More information

untitled

untitled rxli@public.wh.hb.cn http://idc.hust.edu.cn/~rxli/ 2 3 ( ) (Distributed System) Integrated System () 4 5 6 System Integration 7 8 Integrated System 9 1.1 CIMS IDEF CSCW STEP MIS MRPII ERP CRM SCM MIS:

More information

经华名家讲堂

经华名家讲堂 5.1 5.1.1 5.1.2 5.2 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.3 5.3.1 5.3.2 5.3.3 / 5.3.4 / 5.3.5 / 5.4 Internet 5.4.1 Internet 5.4.2 Intranet 1. 2. 1 31 5 5.1 5.1.1 Internet 1 Host 20 60 IBM 2000 2 20 60 20 60

More information

<4D6963726F736F667420576F7264202D20B8BDBCFE3220BDCCD3FDB2BFD6D8B5E3CAB5D1E9CAD2C4EAB6C8BFBCBACBB1A8B8E6A3A8C4A3B0E5A3A92E646F6378>

<4D6963726F736F667420576F7264202D20B8BDBCFE3220BDCCD3FDB2BFD6D8B5E3CAB5D1E9CAD2C4EAB6C8BFBCBACBB1A8B8E6A3A8C4A3B0E5A3A92E646F6378> 批 准 立 项 年 份 2007 通 过 验 收 年 份 2013 教 育 部 重 点 实 验 室 年 度 报 告 ( 2015 年 1 月 2015 年 12 月 ) 实 验 室 名 称 : 机 器 智 能 与 先 进 计 算 教 育 部 重 点 实 验 室 实 验 室 主 任 : 张 军 实 验 室 联 系 人 / 联 系 电 电 : 詹 志 辉 /13826089486 E-mail 地 址

More information

Microsoft PowerPoint - ARC110_栾跃.ppt

Microsoft PowerPoint - ARC110_栾跃.ppt ARC110 软 件 构 架 设 计 的 原 则 和 指 南 课 程 内 容 概 述 介 绍 和 引 言 软 件 构 架 和 构 架 师 软 件 构 架 的 设 计 模 式 框 架 和 参 照 设 计 自 我 介 绍 第 一 代 自 费 留 学 生 : 美 国 南 伊 利 诺 州 立 大 学 (SIUE) 电 机 工 程 学 士 (1984) 及 硕 士 学 位 (1985) 历 任 OwensIllinois,

More information

WLAN 2

WLAN 2 1 WLAN 2 IEEE 802.11 HomeRF GSM/ GPRS CDMA 3 ( ) (Infrared) (Laser) (Microwave) (DSSS) (FHSS) (HomeRF) (Bluetooth) 4 ( ) IrDA (Direct-Beam IR, DB/ IR) (Diffuse IR, DF/ IR) (Ominidirectional IR, Omini/

More information

科 研 信 息 化 技 术 与 应 用,2015, 6 (1) of identity and the framework of identity management, this paper analyses the development trend of Identity Management

科 研 信 息 化 技 术 与 应 用,2015, 6 (1) of identity and the framework of identity management, this paper analyses the development trend of Identity Management 科 研 信 息 化 技 术 与 应 用 2015, 6(1): 41 49 应 用 / APPLICATION 身 份 管 理 发 展 趋 势 和 中 国 科 学 院 身 份 管 理 系 统 薛 聪 1,2, 向 继 1 1, 高 能 1. 中 国 科 学 院 信 息 工 程 研 究 所 信 息 安 全 国 家 重 点 实 验 室, 北 京 100093 2. 中 国 科 学 院 大 学, 北 京

More information

OOAD PowerDesigner OOAD Applying PowerDesigner CASE Tool in OOAD PowerDesigner CASE Tool PowerDesigner PowerDesigner CASE To

OOAD PowerDesigner OOAD Applying PowerDesigner CASE Tool in OOAD PowerDesigner CASE Tool PowerDesigner PowerDesigner CASE To PowerDesigner Applying PowerDesigner CASE Tool in OOAD albertchung@mpinfo.com.tw PowerDesigner CASE Tool PowerDesigner PowerDesigner CASE Tool PowerDesigner CASE Tool CASE Tool PowerDesignerUnified ProcessUMLing

More information

ebook140-9

ebook140-9 9 VPN VPN Novell BorderManager Windows NT PPTP V P N L A V P N V N P I n t e r n e t V P N 9.1 V P N Windows 98 Windows PPTP VPN Novell BorderManager T M I P s e c Wi n d o w s I n t e r n e t I S P I

More information

F4

F4 DOI:10.3969/j.issn.1009-6868.2016.01.002 网 络 出 版 地 址 :http://www.cnki.net/kcms/detail/34.1228.tn.20151117.1506.006.html Challenges and Countermeasures of Network Space Security 周 延 森 /ZHOU Yansen 周 琳 娜

More information

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID

59 1 CSpace 2 CSpace CSpace URL CSpace 1 CSpace URL 2 Lucene 3 ID 4 ID Web 1. 2 CSpace LireSolr 3 LireSolr 3 Web LireSolr ID 58 2016. 14 * LireSolr LireSolr CEDD Ajax CSpace LireSolr CEDD Abstract In order to offer better image support services it is necessary to extend the image retrieval function of our institutional repository.

More information

9 Internet 10 Internet

9 Internet 10 Internet 1 2 3 4 5 6 Internet 7 8 9 Internet 10 Internet 11 12 1 1.1 1.2 1.3 1.4 1.5 1.6 1.1 1.1.1 20 50 20 60 ARPANET ARPANET Internet 20 70 ISO International Organization for Standardization TCP/IP 20 90 Internet

More information

<4D6963726F736F667420576F7264202D20C9CFBAA3BFC6BCBCB4F3D1A7D0C5CFA2D1A7D4BA32303136C4EAC7EFBCBEC8EBD1A7B2A9CABFD7CAB8F1BFBCCAD4CAB5CAA9CFB8D4F22D30343036C8B7B6A8B8E5>

<4D6963726F736F667420576F7264202D20C9CFBAA3BFC6BCBCB4F3D1A7D0C5CFA2D1A7D4BA32303136C4EAC7EFBCBEC8EBD1A7B2A9CABFD7CAB8F1BFBCCAD4CAB5CAA9CFB8D4F22D30343036C8B7B6A8B8E5> 上 海 科 技 大 学 信 息 科 学 与 技 术 学 院 年 度 博 士 资 格 考 试 实 施 细 则 一 总 则 本 细 则 由 上 海 科 技 大 学 信 息 科 学 与 技 术 学 院 ( 以 下 简 称 信 息 学 院 ) 教 学 指 导 委 员 会 讨 论 制 定, 适 用 于 信 息 学 院 2014 级 硕 士 研 究 生 的 年 度 博 士 资 格 考 试 信 息 学 院 2014

More information

,,.,, : 1),,,,, 2),,,,, 3),,,,,,,,,, [6].,,, ( ),, [9], : 1), 2),,,,, 3),,, 2.,, [10].,,,,,,,,, [11]. 2.1,, [12],, ;, ; Fig. 1 1 Granular hier

,,.,, : 1),,,,, 2),,,,, 3),,,,,,,,,, [6].,,, ( ),, [9], : 1), 2),,,,, 3),,, 2.,, [10].,,,,,,,,, [11]. 2.1,, [12],, ;, ; Fig. 1 1 Granular hier 36 7 Vol. 36, No. 7 2010 7 ACTA AUTOMATICA SINICA July, 2010 1, 2 1, 2, 3 1, 2,,,,,,, DOI,,, 10.3724/SP.J.1004.2010.00923 Distributed Simulation System Hierarchical Design Model Based on Quotient Space

More information

Microsoft PowerPoint ARIS_Platform_en.ppt

Microsoft PowerPoint ARIS_Platform_en.ppt ARIS Platform www.ixon.com.tw ARIS ARIS Architecture of Integrated Information System Prof. Dr. Dr. h.c. mult. August-Wilhelm Scheer ARIS () 2 IDS Scheer AG International Presence >> Partners and subsidiaries

More information

穨網經期末報告-WAP.PDF

穨網經期末報告-WAP.PDF WAP WAP 8841641 8641641 8641648 PC PC 1997 (Nokia) (Ericsson) (Motorola) Phone.com (Wireless Application Protocol WAP) (Wireless Portal) WAP WAP ( 1 HTTP) (Wireless Markup Language WML) WAP WAP WML Nokia

More information

附件4

附件4 附 件 2 2015 年 省 级 精 品 资 源 共 享 课 申 报 书 ( 本 科 ) 申 报 学 校 西 华 师 范 大 学 课 程 名 称 数 值 方 法 与 计 算 机 技 术 课 程 类 型 公 共 基 础 课 专 业 基 础 课 专 业 课 其 它 所 属 学 科 门 类 理 学 ( 数 学 ) 所 属 专 业 类 名 称 课 程 负 责 人 数 学 与 应 用 数 学 信 息 与 计

More information

山东省招生委员会

山东省招生委员会 附 件 2: 2012 年 度 山 东 大 学 精 品 课 程 申 报 表 课 程 名 称 课 程 负 责 人 所 属 院 系 网 站 建 设 与 设 计 连 莉 副 教 授 计 算 机 学 院 课 程 类 型 理 论 课 ( 不 含 实 践 ) 理 论 课 ( 含 实 践 ) 实 践 ( 验 ) 课 所 属 专 业 大 类 所 属 专 业 类 理 工 电 子 信 息 科 学 类 联 系 电 话 13256167020

More information

Microsoft PowerPoint - chapter5-3G System.ppt [相容模式]

Microsoft PowerPoint - chapter5-3G System.ppt [相容模式] 教育部資通訊科技人才培育先導型計畫 Third Generation System (3G) 任課老師 : 陳懷恩 助理教授兼任資訊工程研究所所長電算中心資訊網路組組長 國立宜蘭大學 Email: wechen@niu.edu.tw 3G Introduction 3G and all it is meant to be are defined d in the International Telecommunications

More information

目次 

目次  軟 體 工 程 期 末 報 告 網 路 麻 將 91703014 資 科 三 黃 偉 嘉 91703024 資 科 三 丘 祐 瑋 91703030 資 科 三 江 致 廣 1 目 次 壹 前 言 (Preface) P.4 貳 計 畫 簡 述 及 預 期 效 益 (Project Description and Expected Results) P.4 參 系 統 開 發 需 求 (System

More information

TrackF- 網際網路技術 ChangAd-Hoc [5][6]SIP SIP UA Ad-HocSIP UPnPoverhead 3. SIP LSP SIPSIP presencesip(all SIP)SIP SIP (State Digram) 3.1 SIP UDP SIP UASIP

TrackF- 網際網路技術 ChangAd-Hoc [5][6]SIP SIP UA Ad-HocSIP UPnPoverhead 3. SIP LSP SIPSIP presencesip(all SIP)SIP SIP (State Digram) 3.1 SIP UDP SIP UASIP Design and Realization of Ad -hoc VoIP System 1 1 1,2 Shih-Yi Chiu 1 Chun-Hui Sung 1 Lin-Huang Chang 1,2 1 2 (VoIP) SIP (SLP) SIP UA SIP SIP UA SIP VoIPSIP SIP Abstract In the recent years, wireless network

More information

4 115,,. : p { ( x ( t), y ( t) ) x R m, y R n, t = 1,2,, p} (1),, x ( t), y ( t),,: F : R m R n.,m, n, u.,, Sigmoid. :,f Sigmoid,f ( x) = ^y k ( t) =

4 115,,. : p { ( x ( t), y ( t) ) x R m, y R n, t = 1,2,, p} (1),, x ( t), y ( t),,: F : R m R n.,m, n, u.,, Sigmoid. :,f Sigmoid,f ( x) = ^y k ( t) = 2007 4 4 :100026788 (2007) 0420114206, (, 430074) :,,,,,,GIS.,,. : ; ; ; ; : TP391 ;P338 : A Development of Combinatorial Intelligentized Decision2Making Support System and Its Utilization in Runoff Forecasting

More information

2 3. 1,,,.,., CAD,,,. : 1) :, 1,,. ; 2) :,, ; 3) :,; 4) : Fig. 1 Flowchart of generation and application of 3D2digital2building 2 :.. 3 : 1) :,

2 3. 1,,,.,., CAD,,,. : 1) :, 1,,. ; 2) :,, ; 3) :,; 4) : Fig. 1 Flowchart of generation and application of 3D2digital2building 2 :.. 3 : 1) :, 3 1 Vol. 3. 1 2008 2 CAA I Transactions on Intelligent Systems Feb. 2008, (,210093) :.,; 3., 3. :; ; ; ; : TP391 :A :167324785 (2008) 0120001208 A system f or automatic generation of 3D building models

More information

2014_

2014_ 新 鼎 系 統 股 份 有 限 公 司 簡 介 台 北 總 公 司 11510 臺 北 市 南 港 路 三 段 52 號 5 樓 TEL: 886-2-2785-3839 FAX: 886-2-2782-0180 高 雄 分 公 司 811 高 雄 市 楠 梓 區 楠 梓 新 路 306 號 TEL: 886-7-352-5226 FAX: 886-7-351-3698 新 鼎 信 息 技 術 (

More information

电 信 领 域 排 名 前 20 名 占 15 席 1 IEEE Communications Surveys And Tutorials 874 6.311 3 IEEE Communications Magazine 6016 3.785 4 IEEE Journal On Selected A

电 信 领 域 排 名 前 20 名 占 15 席 1 IEEE Communications Surveys And Tutorials 874 6.311 3 IEEE Communications Magazine 6016 3.785 4 IEEE Journal On Selected A IEL Newsletter 2012 年 12 月 特 刊 : IEEE 期 刊 的 影 响 因 子 在 各 学 科 领 域 的 排 名 情 况 欢 迎 体 验 全 新 的 IEEE Xplore 数 字 图 书 馆 www.ieee.org/ieeexplore IEEE 成 立 于 1884 年, 是 全 球 最 大 的 技 术 行 业 协 会, 凭 借 其 多 样 化 的 出 版 物 会 议

More information

NANO COMMUNICATION 23 No.3 90 CMOS 94/188 GHz CMOS 94/188 GHz A 94/188 GHz Dual-Band VCO with Gm- Boosted Push-Push Pair in 90nm CMOS 90 CMOS 94

NANO COMMUNICATION 23 No.3 90 CMOS 94/188 GHz CMOS 94/188 GHz A 94/188 GHz Dual-Band VCO with Gm- Boosted Push-Push Pair in 90nm CMOS 90 CMOS 94 NANO COMMUNICATION 23 No.3 90 CMOS 94/188 GHz 23 90 CMOS 94/188 GHz A 94/188 GHz Dual-Band VCO with Gm- Boosted Push-Push Pair in 90nm CMOS 90 CMOS 94/188GHz LC class-b 0.70 0.75 mm 2 pad 1 V 19.6 ma (ƒ

More information

输电线路智能监测系统通信技术应用研究

输电线路智能监测系统通信技术应用研究 Smart Grid 智 能 电 网, 2014, 4, 11-15 http://dx.doi.org/10.12677/sg.2014.41003 Published Online February 2014 (http://www.hanspub.org/journal/sg.html) Application Research of Communication Technology for

More information

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 1.2.4 计 算 机 网 络 在

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 1.2.4 计 算 机 网 络 在 计 算 机 网 络 ( 第 4 版 ) 课 件 第 1 章 计 算 机 网 络 概 述 郭 庆 北 Ise_guoqb@ujn.edu.cn 2009-02-25 第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特

More information

WAPOPAC系統設計與行動圖書館通訊技術之探討.PDF

WAPOPAC系統設計與行動圖書館通訊技術之探討.PDF 44 61-77 92 2 WAPOPAC WAP WAP-based OPAC WAPOPAC WAP WAP WAP, Design of WAPOPAC System and Survey on Mobile Library Communication Technology Sinn-Cheng Lin Associate Professor Department of Information

More information

10 IBM Louis V. Gerstner, Jr. 15 Moore's Law EPC PC 2-2

10 IBM Louis V. Gerstner, Jr. 15 Moore's Law EPC PC 2-2 Chapter02 2.1 2.2 2.3 2.4 EPC 2.5 10 IBM Louis V. Gerstner, Jr. 15 Moore's Law 1950 1965 1980 1995 1995 2010 15 2.1 2.2 2.3 2.4 EPC 2.5 2.1 PC 2-2 CHAPTER 02 Human to Human, H2H Facebook Plurk Human to

More information

<B1B1BEA9B9E2BBB7D0C2CDF8BFC6BCBCB9C9B7DDD3D0CFDEB9ABCBBEB4B43F3F12FB6CB293>

<B1B1BEA9B9E2BBB7D0C2CDF8BFC6BCBCB9C9B7DDD3D0CFDEB9ABCBBEB4B43F3F12FB6CB293> 本 次 股 票 发 行 后 拟 在 创 业 板 市 场 上 市, 该 市 场 具 有 较 高 的 投 资 风 险 创 业 板 公 司 具 有 业 绩 不 稳 定 经 营 风 险 高 退 市 风 险 大 等 特 点, 投 资 者 面 临 较 大 的 市 场 风 险 投 资 者 应 充 分 了 解 创 业 板 市 场 的 投 资 风 险 及 本 公 司 所 披 露 的 风 险 因 素, 审 慎 作 出

More information

EE Lecture 11 (Wireless Communications Systems)

EE Lecture 11 (Wireless Communications Systems) EE110300 Lecture 11 (Wireless Communications Systems) Contents ( ) (RF) (Antenna) m(t) m(t) 90 50 40 30 20 10 0 ( ) 10 300 330 0 30 60 270 90 240 210 180 150 120 (LAN) (VSAT ) (Pager) (Cellular Phone)

More information

PS PS GMM SM.zte.com.

PS PS GMM SM.zte.com. WBUB-010-1 ZXWN PS V0411.zte.com. PS PS GMM SM.zte.com. PS TMSI Packet-Temporary mobile subscriber identification number P-TMSI) GPRS MS P- TMSI 4 BCD 3G TS 23.003 MSC SGSN SGSN P-TMSI 11 MSC TMSI 00 01

More information

BYOD IP+Optical (IP NGN) API 4. End-to-End (Service Aware) 5. IP NGN (IP Next Generation Network) ( ) Prime Carrier Management Access Edge Co

BYOD IP+Optical (IP NGN) API 4. End-to-End (Service Aware) 5. IP NGN (IP Next Generation Network) ( ) Prime Carrier Management Access Edge Co BYOD 228 2015 IT open source DIY ( ) Up/Down HP NNMi WhatsUp Gold Nagios HP SiteScope WhatsUp Gold HP NNMi WhatsUp Gold Cacti MRTG HP ispi Performance for Metrics WhatsUp Gold ( ) Open source Agent End-to-End

More information

Microsoft Word - netcontr.doc

Microsoft Word - netcontr.doc * 一 种 基 于 模 型 的 输 出 反 馈 网 络 化 控 制 系 统 刘 松 晖, 吴 俊, 徐 巍 华, 陈 生 (. 工 业 控 制 技 术 国 家 重 点 实 验 室 浙 江 大 学 先 进 控 制 研 究 所, 浙 江 杭 州 3007;. 南 安 普 敦 大 学 电 子 与 计 算 机 学 院, 英 国 南 安 普 敦 SO7 BJ) E-mail: shliu@iipc.zju.edu.cn

More information

Microsoft Word - A201103-528_1299547322.doc

Microsoft Word - A201103-528_1299547322.doc 5 10 15 20 25 30 基 于 Android 平 台 的 人 机 交 互 的 研 究 与 实 现 郁 亚 男 ( 北 京 邮 电 大 学 软 件 学 院, 北 京 100876) 摘 要 : 随 着 计 算 的 发 展, 计 算 变 得 越 来 越 自 由, 在 资 源 使 用 方 面 也 越 来 越 灵 活 移 动 终 端 由 于 无 线 通 信 网 络 传 输 速 率 的 提 高,

More information

工程师培训

工程师培训 .1 TCP/IP TCP/IP 1 .2.2.1 Host 1960 S 1970 S Host Low Speed Lines 1970 S 1980 S pc Server Local Interneting 1980 S 1990 S Branch. pc Branch. WAN Branch. pc pc IBM SNA IBM X.25 2 .2.2 OSI OSI Application

More information

1 目 錄 1. 簡 介... 2 2. 一 般 甄 試 程 序... 2 3. 第 一 階 段 的 準 備... 5 4. 第 二 階 段 的 準 備... 9 5. 每 間 學 校 的 面 試 方 式... 11 6. 各 程 序 我 的 做 法 心 得 及 筆 記... 13 7. 結 論..

1 目 錄 1. 簡 介... 2 2. 一 般 甄 試 程 序... 2 3. 第 一 階 段 的 準 備... 5 4. 第 二 階 段 的 準 備... 9 5. 每 間 學 校 的 面 試 方 式... 11 6. 各 程 序 我 的 做 法 心 得 及 筆 記... 13 7. 結 論.. 如 何 準 備 研 究 所 甄 試 劉 富 翃 1 目 錄 1. 簡 介... 2 2. 一 般 甄 試 程 序... 2 3. 第 一 階 段 的 準 備... 5 4. 第 二 階 段 的 準 備... 9 5. 每 間 學 校 的 面 試 方 式... 11 6. 各 程 序 我 的 做 法 心 得 及 筆 記... 13 7. 結 論... 20 8. 附 錄 8.1 推 甄 書 面 資 料...

More information

6112 http / /mops.tse.com.tw http / /

6112 http / /mops.tse.com.tw http / / 6112 http/ /mops.tse.com.tw http/ / www.sysage.com.tw (02)8797-8260 pr@sysage.com.tw 134 5 02-87978260 516 10 02-87978260 2 7 1 03-5437168 51 20 A2 04-23271151 38 20 2 07-5372088 533 (02)2381-6288 http//www.nsc.com.tw

More information

2013_6_3.indd

2013_6_3.indd 中 国 科 技 资 源 导 刊 ISSN 1674-1544 2013 年 11 月 第 45 卷 第 6 期 95-99, 107 CHINA SCIENCE & TECHNOLOGY RESOURCES REVIEW ISSN 1674-1544 Vol.45 No.6 95-99, 107 Nov. 2013 构 建 基 于 大 数 据 的 智 能 高 校 信 息 化 管 理 服 务 系 统

More information

892213E006146

892213E006146 Modular Design of Quality Control Systems NSC89-2213-E006-146 89 8 1 90 7 31 ( ) ISO14000, and OHSAS18000. Keywords: ISO9000; ISO14000; OHSAS18000; Quality ISO9000 ISO14000 OHSAS18000 Management; Environment

More information

untitled

untitled Chapter 01 1.0... 1-2 1.1... 1-2 1.1.1...1-2 1.1.2...1-4 1.1.2.1... 1-6 1.1.2.2... 1-7 1.1.2.3... 1-7 1.1.2.4... 1-7 1.1.2.5... 1-8 1.1.2.6... 1-8 1.1.3??...1-8 1.1.4...1-9 1.2...1-12 1.3...1-14 1.4...1-17

More information

IBM中国高校合作项目新闻

IBM中国高校合作项目新闻 2009 年 5-6 月 IBM 大 学 合 作 项 目 新 闻 双 月 报 大 学 合 作 项 目 新 闻 2009 年 (5-6 月 刊 ) 总 第 15 期 IBM 大 学 合 作 部 E-mail mail: ibmur@cn.ibm.com 联 系 电 话 : 010-63612203 热 点 新 闻 IBM 大 中 华 区 董 事 长 周 伟 焜 先 生 拜 访 教 育 部 周 济 部

More information

Microsoft Word - CWSN2010-PROGRAM.doc

Microsoft Word - CWSN2010-PROGRAM.doc 第 四 届 中 国 传 感 器 网 络 学 术 会 议 CWSN2010 程 序 册 中 国 湖 南 长 沙 2010 年 10 月 28 日 -30 日 第 四 届 中 国 传 感 器 网 络 学 术 会 议 组 织 机 构 名 单 主 办 单 位 中 国 计 算 机 学 会 传 感 器 网 络 专 业 委 员 会 承 办 单 位 湖 南 大 学 协 办 单 位 湖 南 科 技 大 学 大 会 主

More information

Microsoft Word - 专论综述1.doc

Microsoft Word - 专论综述1.doc 2016 年 第 25 卷 第 期 http://www.c-s-a.org.cn 计 算 机 系 统 应 用 1 基 于 节 点 融 合 分 层 法 的 电 网 并 行 拓 扑 分 析 王 惠 中 1,2, 赵 燕 魏 1,2, 詹 克 非 1, 朱 宏 毅 1 ( 兰 州 理 工 大 学 电 气 工 程 与 信 息 工 程 学 院, 兰 州 730050) 2 ( 甘 肃 省 工 业 过 程 先

More information

Thesis for the Master degree in Engineering Research on Negative Pressure Wave Simulation and Signal Processing of Fluid-Conveying Pipeline Leak Candi

Thesis for the Master degree in Engineering Research on Negative Pressure Wave Simulation and Signal Processing of Fluid-Conveying Pipeline Leak Candi U17 10220 UDC624 Thesis for the Master degree in Engineering Research on Negative Pressure Wave Simulation and Signal Processing of Fluid-Conveying Pipeline Leak Candidate:Chen Hao Tutor: Xue Jinghong

More information

沒有投影片標題

沒有投影片標題 EE110300 Lecture 11 (Wireless Communications Systems) Dr. Tsai Contents Dr. Tsai 2 Dr. Tsai ( ) (RF) (Antenna) m(t) m(t) Dr. Tsai 4 90 50 40 30 20 10 0 ( ) 10 Dr. Tsai 5 300 330 0 30 60 270 90 240 210

More information

Revit Revit Revit BIM BIM 7-9 3D 1 BIM BIM 6 Revit 0 4D 1 2 Revit Revit 2. 1 Revit Revit Revit Revit 2 2 Autodesk Revit Aut

Revit Revit Revit BIM BIM 7-9 3D 1 BIM BIM 6 Revit 0 4D 1 2 Revit Revit 2. 1 Revit Revit Revit Revit 2 2 Autodesk Revit Aut 60 2 2016 2 RAILWAY STANDARD DESIGN Vol. 60 No. 2 Feb. 2016 1004-2954201602-0071-06 BIM 1 1 2 2 1 1. 7140992. 710054 BIM BIM 3D 4D nd BIM 1 3D 4D Revit BIM BIM U442. 5TP391. 72 A DOI10. 13238 /j. issn.

More information

Microsoft Word - YDB 064-2011 Vehicle Telematics Service Requirement and General Framework

Microsoft Word - YDB 064-2011 Vehicle Telematics Service Requirement and General Framework 通 信 标 准 类 技 术 报 告 YDB XXX 2010 泛 在 物 联 应 用 汽 车 信 息 服 务 业 务 需 求 和 总 体 框 架 Vehicle Telematic Service Requirement and General Framework 200X XX XX 印 发 中 国 通 信 标 准 化 协 会 目 次 前 言... 错 误! 未 定 义 书 签 1 范 围...

More information

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 作 的

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 作 的 声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 作 的 负 责 人 会 计 机 构 负 责 人 保 证 公 开 转 让 说 明 书 中 财 务 会 计 资

More information

豐佳燕.PDF

豐佳燕.PDF Application of Information Literacy to chiayen@estmtc.tp.edu.tw information literacy Theme-oriented teaching. Abstract Based on the definition of Information Literacy and Six core concepts of the problem

More information

第 11 章 互聯網技術 11.1 互聯 網 和 萬 維 網 的 發 展 歷 史 A. 互聯網的發展 互聯網是由 ARPANET 開 始發展的 1969 年 美國國防部高級研究計劃署 (ARPA) 把部分軍事研究所和大 的電腦連接起來 建造了㆒個實驗性的電腦網絡 稱為 ARPANET 並 列 的功能

第 11 章 互聯網技術 11.1 互聯 網 和 萬 維 網 的 發 展 歷 史 A. 互聯網的發展 互聯網是由 ARPANET 開 始發展的 1969 年 美國國防部高級研究計劃署 (ARPA) 把部分軍事研究所和大 的電腦連接起來 建造了㆒個實驗性的電腦網絡 稱為 ARPANET 並 列 的功能 互 聯 網 技 術 在 完 成 這 章 後, 你 將 能 夠 描 述 互 聯 網 的 發 展 歷 史 描 述 萬 維 網 的 發 展 歷 史 了 解 連 接 互 聯 網 的 基 本 概 念 能 夠 連 接 到 互 聯 網 知 道 互 聯 網 如 何 運 作 互 聯 網 是 全 球 網 絡 的 集 合 互 聯 網 (Internet) 是 ㆒ 個 集 合 全 球 許 多 網 絡 ㆒ 起 的 大 型 網

More information

Microsoft Word - 刘 慧 板.doc

Microsoft Word - 刘  慧 板.doc 中 国 环 境 科 学 2012,32(5):933~941 China Environmental Science 系 统 动 力 学 在 空 港 区 域 规 划 环 境 影 响 评 价 中 的 应 用 刘 慧 1,2, 郭 怀 成 1*, 盛 虎 1, 都 小 尚 1,3, 李 娜 1 1, 杨 永 辉 (1. 北 京 大 学 环 境 科 学 与 工 程 学 院, 北 京 100871; 2.

More information

ebook140-8

ebook140-8 8 Microsoft VPN Windows NT 4 V P N Windows 98 Client 7 Vintage Air V P N 7 Wi n d o w s NT V P N 7 VPN ( ) 7 Novell NetWare VPN 8.1 PPTP NT4 VPN Q 154091 M i c r o s o f t Windows NT RAS [ ] Windows NT4

More information

标题

标题 DOI:0.3878 / j.cnki.jnuist.206.04.006 郭 锐 冯 志 杰 张 浩 然 多 制 式 移 动 终 端 身 份 感 知 系 统 研 究 摘 要 移 动 终 端 的 合 法 监 管 是 国 家 安 全 部 门 保 障 移 动 网 络 安 全 的 重 要 手 段, 获 取 移 动 终 端 身 份 标 识 是 实 现 监 管 的 基 础. 首 先 阐 述 了 移 动 终 端

More information

a b

a b 38 3 2014 5 Vol. 38 No. 3 May 2014 55 Population Research + + 3 100038 A Study on Implementation of Residence Permit System Based on Three Local Cases of Shanghai Chengdu and Zhengzhou Wang Yang Abstract

More information

99年度提案審查

99年度提案審查 1/21 2 97 98 99 00 01 02 03 04 05 06 07 3 年度 年 類 例 年 行 量 年 行 量 4 Source NCC 5 行 WAP, GPRS, PHS, 3G (Source: NCC) 6 Source: Allot Mobile Trends 7 ARPU from $48 to $24 by 2011 HSPA Modules from $70 to $35

More information

ebook64-1

ebook64-1 1 Internet Protocol, IPI P (voice over IPVo I P ) (packetized voice) (Internet telephony) Vo I P Vo I I P I n t e r n e ti n t e r n e t s 1.1 Vo I P I (IP telephony) p a c k e t - v o i c e I P 1.2 I

More information

和文タイトル

和文タイトル - Bus Timetable Design to Ensure Smooth Transfer and Avoid Delay Propagation - An Application of Optimization Techniques to Design of Public Transport Services in Fuji City * ** *** ** Takehiro TANAKA*,

More information

University of Science and Technology of China A dissertation for master s degree Research of e-learning style for public servants under the context of

University of Science and Technology of China A dissertation for master s degree Research of e-learning style for public servants under the context of 中 国 科 学 技 术 大 学 硕 士 学 位 论 文 新 媒 体 环 境 下 公 务 员 在 线 培 训 模 式 研 究 作 者 姓 名 : 学 科 专 业 : 导 师 姓 名 : 完 成 时 间 : 潘 琳 数 字 媒 体 周 荣 庭 教 授 二 一 二 年 五 月 University of Science and Technology of China A dissertation for

More information

P4i45GL_GV-R50-CN.p65

P4i45GL_GV-R50-CN.p65 1 Main Advanced Security Power Boot Exit System Date System Time Floppy Drives IDE Devices BIOS Version Processor Type Processor Speed Cache Size Microcode Update Total Memory DDR1 DDR2 Dec 18 2003 Thu

More information

SIP/ENUM Trial

SIP/ENUM Trial Taiwan SIP/ENUM trial ENUM Director of TWNIC IP Department 2004/12/15 1 Outline What is ENUM Taiwan SIP/ENUM Trial Project ENUM 2 What is ENUM ENUMDNSE.164 ENUMDNS ENUM 3 ENUMDNSE.164 Enum telephone Number

More information

<4D6963726F736F667420576F7264202D20312D3120D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E5A3A9>

<4D6963726F736F667420576F7264202D20312D3120D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E5A3A9> 本 次 股 票 发 行 后 拟 在 创 业 板 市 场 上 市, 该 市 场 具 有 较 高 的 投 资 风 险 创 业 板 公 司 具 有 业 绩 不 稳 定 经 营 风 险 高 退 市 风 险 大 等 特 点, 投 资 者 面 临 较 大 的 市 场 风 险 投 资 者 应 充 分 了 解 创 业 板 市 场 的 投 资 风 险 及 本 公 司 所 披 露 的 风 险 因 素, 审 慎 作 出

More information

國家圖書館典藏電子全文

國家圖書館典藏電子全文 EAI EAI Middleware EAI 3.1 EAI EAI Client/Server Internet,www,Jav a 3.1 EAI Message Brokers -Data Transformation Business Rule XML XML 37 3.1 XML XML XML EAI XML 1. XML XML Java Script VB Script Active

More information

ICS 13.310 A 91 SZDB/Z 深 圳 市 标 准 化 指 导 性 技 术 文 件 SZDB/Z 158 2015 交 通 运 输 行 业 视 频 监 控 联 网 系 统 通 用 技 术 要 求 General technical specification for video monitoring network system of transportation industry in

More information

<4D6963726F736F667420576F7264202D2032A1A2CAD7B4CEB9ABBFAAB7A2D0D0B9C9C6B1D5D0B9C9CBB5C3F7CAE92E646F63>

<4D6963726F736F667420576F7264202D2032A1A2CAD7B4CEB9ABBFAAB7A2D0D0B9C9C6B1D5D0B9C9CBB5C3F7CAE92E646F63> 广 州 杰 赛 科 技 股 份 有 限 公 司 GCI SCIENCE & TECHNOLOGY CO.,LTD. ( 注 册 地 址 : 广 州 市 新 港 中 路 381 号 ) 首 次 公 开 发 行 股 票 招 股 说 明 书 保 荐 人 ( 主 承 销 商 ) ( 注 册 地 址 : 深 圳 市 红 岭 中 路 1012 号 国 信 证 券 大 厦 16-26 层 ) 本 次 发 行 概

More information