DSCDMA網絡測試儀IP數據采集卡的研制_第1頁
DSCDMA網絡測試儀IP數據采集卡的研制_第2頁
DSCDMA網絡測試儀IP數據采集卡的研制_第3頁
DSCDMA網絡測試儀IP數據采集卡的研制_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第 18 卷第 4 期重慶郵電學院學報( 自然科學版)Vol. 18No. 42006 年 8 月Journal of Chongqing University of Posts and Telecommunications( Natural Science)Aug. 2006文章編號: 1004- 5694( 2006) 04- 0448- 03TD-SCDMA 網絡測試儀 IP 數據采集卡的研制劉偉, 張治中( 重慶郵電大學 通信網與測試技術重點實驗室, 重慶 400065)*摘要: 為順應 3G 網 絡 IP 化的趨勢, 根據 T D- SCD M A 網絡協議 中 IP 數據 包傳輸

2、相關描 述, 研 制了 T D- SCDM A網絡 測試儀 IP 數據采集卡, 利用網卡加 WinPcap 驅動的方法實現 I P 數據包采集, 為上層協議 分析提供 有效消息。在 Realt ek8139 網卡上的測試表明, 該設計能可靠地完成 I P 數據包的采集, 完全可以應用于當前 T D- SCDM A 網 絡測試。關鍵詞: T D- SCDM A ; 測試儀; 數據采集卡; PCI 總線; WinP cap中圖分類號: T N915. 06文獻標識碼: A0引言它和分組域一起實現實時和非實時的多媒體業務,并可以實現與電路域的互操作 5 。近年來 T D- SCDMA 一直是通信行業

3、關注的一個焦點, 回顧 T D- SCDM A 的研發與產業化進展、技術試驗、政府引導等, 明顯看出我國對 T D- SCDM AIP 數據采集在 T D- SCDMA 網絡測試儀中是非常重要的一部分。本文描述的是純 IP 數據包的采集實現( 非 IP over A T M 部分) 。的關注達到了一個新的高度。為了進一步支持 T D-SCDM A 產業化進展, 國家 對當前 T D- SCDM A 產1IP 數據采集卡的硬件實現業發展的各個環節給予了支持 1 。針對我國正大力開發 T D- SCDM A 第三代移動通信( 3G) 系統、即將大規模組建 3G 網絡, 卻沒有所必需的實驗研發、建網

4、和運行測試設備的現狀, 在國際上傳統通信測試儀表廠商只推出了基于 CDMA2000 和 WCDM A 2種標準的測試儀表的情況下, 研制出具有自主知識產權的 T D- SCDMA 移 動通 信 網 絡 測 試儀, 完 善T D- SCDMA 產業鏈, 形成系列產品并推向市場, 必將產生巨大的社會效益和經濟效益。該測試儀主要測試的接口包括 Iub, Iur, IuCS, IuP S, Nc, N b, C/ D/E/ G/ Gr/ MSCS- SCP, Gn/ Gp, Gi 等 2- 4 , 主 要 實 現協議分析( 解碼) 、呼叫跟蹤、業務統計及分析、網絡異常分析、網絡分析和優化、協議仿真等功

5、能, 采用工控機結構, 多鏈路、多通道的硬件由多個基于 P CI總線的數據采集卡( 規程板) 組成。IP 數據 采集卡是其中的一個 P CI 數據采集卡。T D- SCDMA 網絡從 R99 演進到 R4 版本, 逐步改進。T D- SCDM A 的下一步發展趨勢 是向 R5 版本演進, R5 版本是全 IP 化的版本, Iu, Iur 和 Iub 接口增加了基于 IP 的可選傳輸方式, 使得無線接入網實現了 IP 化; 在核心網方面, 最大的變化是 在 R4的基礎上增加了 IP 多媒體子系統( 即 IM S 系統) ,從 3GPP 和 T CP / IP 相 關協議 2- 5 可 以看 出,

6、T D- SCDM A 網絡中的 IP 數據與通常的 IP 網絡中的數據規范相同而且更簡單, 完全可以直接通過網卡捕獲完成數據采集, 我們需要做的只是取出網絡中的數據供上層分析軟件作信令分析。IP 數據采集卡的工作流程 大致為: 由 T D- SCDM A 網絡的相應接口傳輸過來的以太網幀到達網卡 網卡內的單片程序接收幀的目的 M AC 地址, 根據計算機上的網卡驅動程序設置的接收模式判斷該不該接收, 認為該接收后就產生中斷信號通知 CPU CPU 得到中斷信號產生中斷, 操作系統根據網卡的驅動程序設置的網卡中斷程序地址調用驅動程序接收數據放入堆棧 應用程序對數據進行處理。我們選擇了 Real

7、t ek RT L 8139C 芯片的 10M/100M 自適 應網 卡來 處 理 以太 網 幀, 該 網 卡遵 循P CI2. 2 總線規范, 支持 IEEE 802. 3u 100Base- T 和IEEE 802. 3x 全雙工流控制, 它內建了符合 M II 規格的收發器( T ranceiver) , 可以使用 DM A 直接使用位于內存的緩沖區來保存網絡上接收的數據包。為完成對數據包的捕獲, 需要對網卡的工作模式進行設置。*收稿日期: 2005- 09- 07修訂日期: 2006- 06- 03基金 項 目: 國 家 高 技 術 研 究 發 展 計 劃 ( 863 重 大 專 項

8、) ( 2005A A 123780 ) ; 科 技 部 中 小 企 業 創 新 基 金( 05c26215111405) ; 科技部中小企業創新基金( No . 05C26215111405) ; 重慶 市科委科技 攻關項目 ( CST C, 2005AC2040) 和重 慶市經委指導性計劃項目( N o. 05- 1G X- DZ180) 。作者簡介: 劉偉( 1978- ) , 男, 重慶人, 碩士 研究生, 研究方向為通信網測試, E- mail: L_30 so hu. co m; 張 治中, 教授, 主 要研究方向為通信網測試, 光交換和寬帶信息網 絡技術等。aaaaaa第 4 期

9、劉偉, 等: T D- SCDM A 網絡測試儀 I P 數據采集卡的研制44922. 1IP 數據采集卡的軟件調試混雜模式- 1。代碼如下( 去掉錯誤檢測等代碼, 下同) :pcap_if_t * alldev s;pcap_if_t * d;正常情況下, 網絡接口應該只響應這樣的 2 種數據幀: 與自己硬件地址相匹配的數據幀和發向所有機器的廣播數據幀。而對于網卡來說一般有以下4 種接收模式: 廣播模式: 該模式下的網卡能夠接收網絡中的廣播信息; 組播模式: 設置在該模式下的網卡能夠接收組播數據; 直接模式: 在這種模式下, 只有目的網卡才能接收該數據; 混雜模式: 在這種模式下的網卡能夠接

10、收一切通過它的數據, 而不管該數據是否是傳給它的。所以我們把網卡設置為混雜模式, 它就能接收傳輸在網絡上的每一個信息包。2. 2 Winpcap以太網介質接入控制( medium access contr ol,MAC) 子層及其以下層協議由硬件實現, 邏輯鏈路控制( log ical link cont ro l, L L C) 子層及其上層協議均由軟件實現。Window s 操作系統下的網絡 設備驅動程序遵守網 絡設備接 口規范 ( netw o rk deviceint erface specif ication, NDIS) , 它在分層的網絡驅動程序框架中規定了一個標準接口, 從而使

11、抽象低層次的硬件提供了高層次網絡上的網絡管理。我們采用的 w inpcap( w indow s packet capt ure) 也是用的NDIS, 將自己注冊為一個協議處理驅動。Winpcap 是 w indow s 平臺下一個免費、公共的網絡訪問系統 7 。開發 w inpcap 項目的目的在于為w in32 應用程序提供訪問網絡底層的能力。它提供了以下各項功能: 捕獲原始數據報, 包括在共享網絡上各主機發送/ 接收的以及相互之間交換的數據報; 在數據報發往應用程序之前, 按照自定義的規則將某些特殊的數據報過濾掉; 在網絡上發送原始的數據報; 收集網絡通信過程中的統計信息。Winpcap

12、 的主要功能是獨立于主機協議而發送和接收原始數據報。我們主要用到 w inpcap 的捕獲功能, 通過對 w inpcap 驅動和 w insock 的利用 8 , 很多編程變得簡單, 下面簡要介紹數據包的捕獲過程。char er rbuf PCA P_ERRBU F _SIZ E ;pcap_findalldevs( & alldev s, err buf) ; / / 獲得網絡設備 指針fo r( d= alldevs; d; d= d- nex t) d- name; / / d- name 就是 我們 需 要的 網卡 名 字字符串pcap_freealldev s( alldevs)

13、; / / 釋放 alldev 資源事實上, w inpap 也提供另外的高級信息。特別是 pcap_f indalldevs( ) 函數返回的每個 pcap_if 結構體都同樣包含一個 pcap_addr 結構的列表, 它包含: 一個地址列表, 一個掩碼列表, 一個廣播地址列表和一個目的地址列表。在此不再詳述。2. 2. 2 打開相 應網卡并設置為混雜模式打開網卡的功能是通過 pcap_open_live( ) 來實現的, 下面是 pcap_open_live 的函數聲明:pcap_t* pcap_o pen_live ( char * device, int sna-plen, int p

14、r omisc, int t o_ms, char * ebuf)Device 就是前面我們獲得的網卡的名字。它有 3 個參數 snaplen, pro misc, t o_m s。snaplen 用于指定所捕獲包的特定部分, 這樣在某些場合就可以減少拷貝數據的數量從而提高包捕獲的效率。pro misc 指明網卡 處于混雜模 式, 此 時網卡可以捕獲到發往其它主機的數據包。我們正需要此功能。to _ms 參數指定讀數據的超時控制, 超時以m s 計算。當在超時時間內網卡上沒有數據到來時,對網卡的讀操作將返回。如果該參數為 0 那么意味著沒有超時控制, 對網卡的讀操作在沒有數據到來時將永遠堵塞。

15、如果為- 1 那么對網卡的讀操作將立即返回, 不管有沒有數據可讀。代碼如下:pcap_t * adhandle;char er rbuf PCA P_ERRBU F _SIZ E ;adhandle = pcap_open_live( d- name, / / 網卡名稱65535, / / 捕獲包的大小2. 2. 1獲得網卡列表1, / / 混雜模式安裝了 winpcap 驅動之后, 其中的 pcap. h 提供了 pcap_f indalldevs ( ) 函數來 實現獲 得網 卡列 表( 主要是獲得網卡的名稱) , 該 AP I 返回一個 pcap_if結構的鏈表, 表的每項內容含有全面的

16、網卡信息: 字段名字、含有名字的描述、有關驅動器的易讀信息。它定義為* *參數 alldevsp 是 pcap_if _t 結構體的指針, 如果函數 pcap_f indalldevs 函數執行成功, 將獲得一個可用網卡的列表, 里面存儲的就是第一個元素的指針;Errbuf 存儲錯誤信息的字符串。返回值 int : 如果返回 0 則執行成功, 錯誤返回1000, / / 讀超 時為 1 秒er rbuf) ; / / er ro r buffer2. 2. 3 捕獲數 據包并保存為文件pcap_dump( ) 實現將數據包內容依次寫入 pcap_dump_open( ) 指定的文件中, 函數聲

17、明如下:v oid pcap_dump ( u_cha r* user , const str uct pcap_pk-*參數 co nst u_char * sp 即數據包內容指針 。代碼如下:dumpfile = pcap_dum p_open( adhandle, arg v) ; / / 打 開文件/ * 以下代碼循環捕獲數據并調用 packet_handler 函數把數據存儲到堆文件* /alldev sp, char* er rbuf)int pcap_findalldev s ( pcap_if_th, co nst u_char* sp)thdr450重 慶 郵 電 學 院 學

18、 報( 自然科學版)第 18 卷pcap _ loo p ( adhandle, 0, packet _ handler, ( unsig nedchar * ) dumpfile) ;void packet _ handler ( u _ char * dumpfile, const str uct有運行穩定高效、代碼簡單、同時方便改進等特點。參考文獻:pcap_pkthdr* header , const u_cha r* pkt_data) pcap_dump( dumpfile, header , pkt_data) ; 1王炎. T D- SCDMA 系 統測試 情況分 析 EB/O

19、L . 2005- 08- 04 . ht t p: / / w w w. ct t l. com.3設計結果 2cn.3GP P T S 23. 002 V5. 12. 0. Netw o rk arch-i數據包保存下來之后就可以讀取出來供應用軟件分析。為驗證捕獲效果, 我們通過接收另一個機器的已知數據 IP 包然后用該軟件抓包, 再用 pcap_t ect ure EB/ OL . ( 2003- 09- 20) 2006- 05-30 . ht tp: / / ww w . 3g pp. o rg/ f t p/ Specs/2004- 09/ Rel- 5/ 23_series/ 2

20、3002- 5c0. zip.open_of f line( ) 打開一個堆文件, 用 pcap _loop( ) 來循環從文件中讀取數據, 并打印了其中每個包的內容, 證實了我們的設計。在文中我們采用的所有代碼在 VC 編譯環境下用 C+ + 語言 實現 9 , 可以打 印出捕獲 的數據包。至此, 整個數據采集完成并得到驗證。該方案通過初步實踐確認在 T D- SCDMA 網絡建網初期數據量不太大的情況下完全能實現 IP 數據包的采集。如果在一個繁忙的網絡上進行截獲則需要對應用程序進行必要的性能優化以避免丟失數據包, 可以采用多線程的方法來解決: 程序中使用 3 個線程進行操 3 4 53G

21、PP T S 25. 401 V5. 9. 0. UT RAN o veralldescript ion EB/ OL . ( 2003- 09- 20) 2006-05- 30 . ht t p: / / w ww . 3gpp. o rg/ f t p/ Specs/2004- 09/ Re-l 5/ 25_series/ 25401- 590. zip.3GPP T S 23. 060 V5. 9. 0. General PacketRadio Serv ice ( GPRS) ; Service descript ion;St age 2 EB/ OL . ( 2003- 09- 20

22、) 2006- 05-30 . ht t p: / / w ww . 3gpp. o rg/ f t p/ Specs/2004- 09/ Re-l 5/ 23_series/ 23060- 590. zip.3GPP T S 29. 060 V5. 11. 0. General PacketRadio Service ( GPRS ) ; GPRS T unnelling作:只進行捕獲操作, 它將驅動程序獲得的數據Prot o col ( GT P ) across t he Gn and Gp int er-包添加到數據包隊列的頭部;只進行過濾操作,f ace EB/ OL . ( 200

23、3- 09- 20) 2006- 05- 30 .它檢查新到的隊尾的數據包, 檢查其是否滿足過濾ht t p: / / w w w . 3g pp. or g/ f t p/ Specs/ 2004- 09/條件, 如果不滿足則將其刪除出隊列;包處理操作。進行數據 6Re-l 5/ 29_series/ 29060- 5b0. zip.李小文, 李貴 勇, 陳賢 亮, 等. T D- SCDM A 第如果有要求更高的應用, 就不得不采用一些專用芯片如網絡處理器進行處理, 對此我們將進一步三代移動通信系統、信令及實現 M . 北京:人民郵電出版社, 2003.完善設計。 7T he W inPc

24、ap T eam . T he WinP cap manual4結束語and t ut o rial EB/ OL . 2006- 05- 30 . ht t p: / /ww w . w inpcap. o rg .在當前 3G 尚未 商用的前提下, 我們通 過多次模擬實驗證明, 利用該 IP 數據采集卡, 通過 100 M網卡讀入由 T D- SCDMA 網絡的相應接口傳輸過來的 IP 數據包, 利用 w inpcap 驅動捕獲數據包并將其轉換成可以識別的數據供上層分析是能夠滿足 T D-SCDM A 網絡 測試要 求的。 事實上, 采用 w inpcap 8 9ANT H ONY J. Jim Ohlund. M icrosof t Win-dow s 網絡編程 M . 2 版. 北京: 清華大學出版社, 2002.DAVID J. Kruglinski. Visual C+ + 技術內幕 M . 4 版. 北京: 清華大學出版社, 1999.( 責任編輯: 劉勇)驅動方案對網卡的型號并無嚴格要求, 該采集卡具On design and implementation of IP card for TD- SCDMA network analyzer

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論