• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Scapy在網絡協(xié)議分析實驗教學中的應用

      2014-08-10 12:26:42李樹軍
      實驗科學與技術 2014年6期
      關鍵詞:網絡協(xié)議數(shù)據(jù)包實驗教學

      李樹軍

      (1.鹽城師范學院 信息科學與技術學院,江蘇 鹽城 224002;2.南京大學 軟件工程學院,南京 210093)

      Scapy在網絡協(xié)議分析實驗教學中的應用

      李樹軍1,2

      (1.鹽城師范學院 信息科學與技術學院,江蘇 鹽城 224002;2.南京大學 軟件工程學院,南京 210093)

      針對網絡協(xié)議分析實驗教學中存在的問題,介紹了協(xié)議分析軟件——Scapy的工作原理和功能優(yōu)勢。提出了將Scapy應用于網絡協(xié)議分析課程實驗教學的方法,總結了Scapy在教學中的基本過程,并給出了實驗教學應用實例。在網絡協(xié)議分析實驗教學中使用Scapy,有利于學生更加直觀地理解網絡協(xié)議的實現(xiàn)原理,能得到較好的教學效果。

      Scapy軟件; 實驗教學;網絡協(xié)議;協(xié)議分析;計算機網絡

      網絡協(xié)議分析課程是網絡工程本科的一門專業(yè)課程,主要是在學習計算機網絡課程的基礎上,就網絡協(xié)議的基礎理論、體系結構、性能特點、技術方法和所解決的問題等方面進行學習。學生通過本課程的學習,進一步掌握常用網絡協(xié)議的工作原理與機制,在實踐中能充分利用所學知識分析和研究協(xié)議運行過程中出現(xiàn)的各種現(xiàn)象和問題,能夠利用網絡協(xié)議的原理解釋網絡的工作過程,訓練靈活運用所學知識解決計算機網絡相關綜合問題的能力。網絡協(xié)議分析是一門實踐性很強的課程,其實驗內容在傳統(tǒng)的實驗環(huán)境下很難模擬或成本太高。為此,嘗試將國外廣泛使用的Scapy引入協(xié)議分析實驗教學,以較低的成本提供豐富的實驗教學環(huán)境,增強學生對計算機網絡協(xié)議的理解。

      1 網絡協(xié)議分析實驗教學現(xiàn)狀

      實驗教學離不開實驗環(huán)境,為了解決這個問題,各高校一般采用如下方案[1-4]:

      1)建設基于硬件的協(xié)議分析平臺。為了搶占高校市場,一些知名的網絡廠商(比如,國外的福祿克、安捷倫,國內的銳捷網絡、神州數(shù)碼)提出了網絡協(xié)議分析實驗室整體解決方案,部分資金充足的高校一般傾向于選擇這種方案來建設協(xié)議分析實驗室。

      2)采用協(xié)議分析軟件進行實驗。另外一些高校則采用Sniffer Pro、Ethereal、科來等協(xié)議分析軟件來進行網絡協(xié)議分析實驗。這種方法資金投入很少,解決了傳統(tǒng)實驗教學實驗設備數(shù)量少、實驗時間緊張、實驗地點單一的弊端。

      這兩種方案的優(yōu)缺點對比如表1所示。

      此外,實踐表明,這兩種解決方案還存在一些共同的缺點,主要體現(xiàn)在以下三個方面:

      1)僅能對捕獲到的數(shù)據(jù)包進行查看分析,缺乏數(shù)據(jù)包構造和發(fā)送方面的功能。不能根據(jù)自己的需要靈活批量定制各類數(shù)據(jù)包并發(fā)送到網絡中去,在發(fā)送的同時不能接受來自網絡的反饋數(shù)據(jù)包并分析它們。

      2)不能根據(jù)需要靈活地對大量的數(shù)據(jù)包進行相關性分析,不能根據(jù)分析結果生成直觀的圖表。

      3)可擴展性差。不具有可編程性,缺乏二次開發(fā)能力,缺乏第三方組件支持。不支持自定義網絡協(xié)議,不具備協(xié)議測試的功能。

      表1 兩種解決方案優(yōu)缺點對比

      2 Scapy介紹

      Scapy[5]是一款基于Python開發(fā)的開源軟件,可以運行于Linux、FreeBSD和Windows等主流操作系統(tǒng)平臺。目前,在國外應用較為廣泛,具有良好的開放性和可擴展性,并具有如下三個特點:

      1)它是一款強大的交互式數(shù)據(jù)包處理工具、數(shù)據(jù)包生成器、網絡掃描器、網絡發(fā)現(xiàn)工具和數(shù)據(jù)包嗅探與分析工具。它提供多種類別的交互式生成數(shù)據(jù)包或數(shù)據(jù)包集合,能方便地對數(shù)據(jù)包進行編輯、發(fā)送、嗅探、應答和反饋匹配等,利用它可以很方便地構造各種數(shù)據(jù)包用于各種網絡協(xié)議分析與測試[6]。

      2)豐富的組件支持。Scapy可以調用GnuPlot來繪制各類分析、統(tǒng)計報表;可以調用PypCAP來導入Sniffer Pro、Ethereal和Wireshark等其他協(xié)議分析軟件捕獲的數(shù)據(jù)包;可以調用PyCrypto來進行WiFi的WEP密碼破解;可以調用VPython對數(shù)據(jù)包分析結果進行3D呈現(xiàn)。

      3)強大的二次開發(fā)能力??梢酝ㄟ^編寫腳本完成各類復雜實驗;可以引用Scapy編寫自己的網絡工具。利用Scapy可以方便地構造新的網絡協(xié)議,具有協(xié)議Fuzzing測試等功能。

      3 Scapy在協(xié)議分析實驗中的應用

      3.1 協(xié)議分析實驗流程

      雖然Scapy使用比較簡單,開發(fā)者也提供了大量圖文并茂的使用教程,但在開始學習前,老師最好花適當?shù)臅r間向學生介紹軟件的基本功能、安裝方法、基本使用方法和技巧。完成這些準備工作后,開始進入網絡協(xié)議分析實驗。使用Scapy進行協(xié)議分析實驗的流程如圖1所示。整個實驗過程主要有三部分的工作量:基礎學習、實踐與應用和進階學習。

      圖1 協(xié)議分析實驗流程圖

      1)基礎學習。在這一階段的學習里,學生要了解該網絡協(xié)議的工作原理和功能。在此基礎上,詳細學習協(xié)議數(shù)據(jù)結構,理解各字段取值范圍、作用和相互關系。嘗試自己構造協(xié)議數(shù)據(jù)報文;嘗試把構造好的數(shù)據(jù)報文發(fā)送到網絡中去,看對網絡有什么影響,能獲得什么樣的反饋;嘗試定制過濾參數(shù)進行相關數(shù)據(jù)包的捕獲,分析捕獲到的多個數(shù)據(jù)包,分析數(shù)據(jù)包各字段值的變化情況,發(fā)現(xiàn)各個數(shù)據(jù)包的相互關系。

      2)實踐與應用。學習的目的在于應用。通過這一階段的學習,加強學生對網絡協(xié)議的理解和掌握,培養(yǎng)學生的動手實踐和設計分析能力,使學生能運用所學知識解決實際問題,培養(yǎng)創(chuàng)新型人才。在這一階段的學習中,老師要注意引導,從案例的設置到實驗步驟的分解、講解,要注意循序漸進。

      3)進階學習。本階段是對前面兩個學習階段的總結與提高,讓學生結合所學知識與實際應用背景,進行綜合性的實驗,培養(yǎng)學生運用已有知識去發(fā)現(xiàn)、分析和解決問題的能力。比如,在分析地址解析協(xié)議(address resolution protocol,ARP)[7-8]的時候,老師適當引導,使學生理解、掌握ARP協(xié)議的工作原理,協(xié)議存在的漏洞后,讓學生利用Scapy的可編程性,開發(fā)一個針對ARP欺騙攻擊的檢測與報警工具。又比如,在分析完SNMP協(xié)議的時候,讓學生基于Scapy開發(fā)一款網絡管理工具,對網絡設備接口的流量情況進行監(jiān)控和采集,對采集到的結果進行分析并生成相應的報表,能對異常流量進行報警等。

      3.2 應用Scapy進行協(xié)議分析實驗教學的優(yōu)勢

      應用Scapy作為網絡協(xié)議分析實驗的工具和平臺,有以下五個方面的優(yōu)勢:

      1)經濟性。Scapy是一個免費的、開源的網絡協(xié)議分析、測試軟件。使用Scapy,學生完全可以在普通PC環(huán)境下完成各類網絡協(xié)議的分析實驗,而學校只需投入極少的資金,既節(jié)約了實驗成本,又能得到較好的實驗教學效果。

      2)方便性。軟件嚴格遵循網絡協(xié)議分層的思想,在實驗時,網絡協(xié)議的所有層面都可以由實驗者控制。比如,要定義一個目的IP地址為192.168.1.1的ICMP Request包,通過命令p=IP(dst="192.168.1.1")/ICMP()即可完成。對于已定義的數(shù)據(jù)包,軟件也提供了方便的修改功能,比如,p.ttl=4。用命令r=sr(p),即可把剛才定義好的數(shù)據(jù)包發(fā)送出去,并把網絡反饋回的數(shù)據(jù)包保存在r中。

      3)全面的網絡協(xié)議支持。Scapy支持從IPv4到IPv6、從數(shù)據(jù)鏈路層到應用層的各種網絡協(xié)議。為了方便使用者,對于一些常用的協(xié)議,Scapy還做了細化。比如,針對ICMPv6協(xié)議,Scapy就對ICMPv6ND_NA(Neighbor Advertisement)、ICMPv6ND_NS(Neighbor Solicitation)和ICMPv6ND_RA(Router Advertisement)等幾種數(shù)據(jù)包格式做了預定。

      4)較強的數(shù)據(jù)處理能力。學生可以用Scapy中的數(shù)據(jù)處理工具,對大量的網絡數(shù)據(jù)包進行統(tǒng)計分析,分析吞吐量、時延、丟包率等,并進行直觀的圖示。

      5)靈活性和可擴展性。Scapy所有的源代碼公開,任何人都可以免費獲得、使用和修改其源代碼。學生可以根據(jù)自身的需要方便地設計新協(xié)議,擴展新的功能模塊。Scapy有完善的技術社區(qū),在這里你可以和全球的使用者交流學習。此外,Scapy的技術愛好者開發(fā)了豐富的輔助組件,結合這些組件,可以使Scapy變得無所不能。

      4 Scapy在教學中的應用實例

      下面以兩個實例來進一步說明Scapy在網絡協(xié)議分析實驗中的應用,一是利用Scapy對網絡故障進行診斷,二是基于Scapy開發(fā)一個網絡掃描程序。

      4.1 Scapy在網絡故障診斷中的應用

      故障描述與分析:某獨立Web站點提供靜態(tài)頁面訪問服務,平時訪問正常,突然訪問速度變得較慢,而此時訪問者訪問其他站點是正常的;說明訪問者所在的網絡正常,問題可能出在遠端網絡或者Web服務器上,因為站點提供的是靜態(tài)頁面服務,對服務器內存和CPU的要求很低,初步估計問題與網絡有關。由于是第三方的服務器,不能登錄進服務器進行查看。結合所學知識,利用Scapy進行故障診斷,步驟如下:

      1)Web服務器當前網絡流量判斷。運行TCP/IP協(xié)議棧的系統(tǒng)都有一個IPID系統(tǒng)變量作為本機發(fā)送IP包的計數(shù)器,系統(tǒng)每發(fā)送一個IP 包,系統(tǒng)就做IPID+1運算,同時,系統(tǒng)發(fā)送每個IP包的時候會把當前的IPID值填充到IP包IP首部的16位標識字段里[9]。因此,我們可以通過了解目標服務器IPID的變化情況來估算其網絡流量的大小。具體做法是:發(fā)送一個TCP包給目標主機,然后,從接收到的反饋數(shù)據(jù)包中提取出IPID值;再給目標主機發(fā)送一個數(shù)據(jù)包,再從反饋數(shù)據(jù)中得到一個IPID值,記錄兩個值的差;重復前面的操作,持續(xù)一段時間后,可以得到系列差值。通過這些差值,就能得到目標主機的網絡流量情況。Scapy測試代碼如下:

      packet = IP(dst="www.test.com")/ICMP()

      a,b = srloop(packet,prn=lambda (s,r):r.id)

      a.diffplot(lambda (s1,r1),(s2,r2): (r2.id-r1.id))

      結果如圖2所示。

      從圖2可以看出, IPID值變化較小,最大才90,也就是說目標主機當前的數(shù)據(jù)包流量最大為90pps,按最大數(shù)據(jù)包計算,最大數(shù)據(jù)流量為90×1 518/1 000 KB/s,約為136.62 KB/s,流量很小,不是主機網絡擁擠造成的,繼續(xù)進行下面的診斷。

      圖2 目標主機IPID變化率

      2)網絡延遲判斷。經過前面的分析,估計問題出在中間網絡節(jié)點上,需要進行確認。對于中間網絡,一般分析其網絡延遲情況。當數(shù)據(jù)在網絡中傳輸時,每個處理數(shù)據(jù)包的路由器都需要把IP首部的TTL字段的值減1,如果路由器發(fā)現(xiàn)TTL的值為0,則丟棄這份數(shù)據(jù),并且返回一個類型11、代碼0的ICMP包給源主機,告訴它報文超時。根據(jù)這一原理,我們設置數(shù)據(jù)包的TTL為需要的值,讓它到達某個路由器節(jié)點的時候TTL值正好變?yōu)?,這樣就得到一個路由器節(jié)點的反饋數(shù)據(jù)包,計算接收到反饋包的時間與發(fā)送數(shù)據(jù)包時間的差值,就是該節(jié)點的網絡延遲時間。調整TTL值能得到各個節(jié)點的網絡延遲,Scapy測試代碼如下:

      a,b = srloop(IP(dst="www.test.com",ttl=(7,11))/TCP())

      圖3 中間網絡節(jié)點延遲

      結果如圖3所示。從圖3中可以看出,除一個節(jié)點外,其他節(jié)點的網絡延遲穩(wěn)定在50 ms以下,屬于正?,F(xiàn)象,只有101.4.112.77這個節(jié)點,網絡延遲在400~500 ms之間波動,這個數(shù)值明顯異常,說明節(jié)點網絡負載較大或者鏈路有問題。至此,故障診斷完成

      4.2 基于Scapy開發(fā)網絡掃描程序

      有時出于網絡管理或者其他目的,需要快速發(fā)現(xiàn)同網段在線的主機。傳統(tǒng)的方法是采用網絡掃描軟件對每個IP地址發(fā)送一個ICMP Request包,如果能收到來自這個IP反饋的ICMP Response數(shù)據(jù)包,則表明此主機在線。挑戰(zhàn)在于,現(xiàn)在很多主機都安裝了防火墻軟件,發(fā)送過去的ICMP Request包將被防火墻攔截,導致掃描失敗。

      ARP規(guī)定,網絡中所有的主機在收到ARP請求后,首先檢查數(shù)據(jù)包中的目的IP是否和自己的IP地址一致,如果相同,就必須反饋一個 ARP響應包給源主機。因此,可以利用ARP協(xié)議的特性進行同網段在線主機的掃描。利用Scapy的可編程性,只要少量的代碼即可實現(xiàn)此掃描程序,代碼如下:

      #!/usr/bin/env python

      import sys

      if len(sys.argv) != 2:

      print "Usage: arpscan "

      print "Example: arpscan 192.168.1.0/24"

      sys.exit(1)

      from scapy.all import srp,Ether,ARP,conf

      conf.verb=0

      ans,unans=srp(Ether(dst="ff:ff:ff:ff:ff:ff")/

      ARP(pdst=sys.argv[1]),timeout=2)

      for snd,rcv in ans:

      5 結束語

      網絡協(xié)議分析課程教學存在內容枯燥,難以實驗等困難,需要不斷探索和研究先進的教學方法,以激發(fā)學生對該門課程的學習興趣,提高教學質量。Scapy功能強大,可擴展性強,在教學中引入Scapy,可以增強學生對于網絡協(xié)議的理解,還可以提高學生分析問題和動手的能力。實踐表明,使用Scapy作為一種教學輔助手段對提高協(xié)議分析課程教學的效果和水平有積極的意義,在一定程度上能彌補當前協(xié)議分析課程教學中的不足,是協(xié)議分析課程教學的一種全新的探索。

      [1] 陳健,吳海軍,徐煊. 計算機網絡協(xié)議分析與開發(fā)實驗的一種新教學方法[J]. 計算機教育,2011(10):99-103.

      [2] 耿奎,黃雪琴. 基于軟件構建網絡協(xié)議分析實驗平臺[J]. 數(shù)字技術與應用,2011(4):131-133.

      [3] 張巧榮,張斌. 協(xié)議分析軟件在計算機網絡實驗教學中的應用[J]. 實驗室科學,2010,13(3):119-121.

      [4] 袁春蕾,任艷麗. 千兆網絡協(xié)議分析實驗平臺的設計研究[J]. 電腦編程技巧與維護,2012(22):65-66.

      [5] Philippe.Scapy online document[EB/OL].(2013-03-10)[2013-06-22].http://www.secdev.org/projects/scapy/doc/index.html.

      [6] Wikipedia.Scapy[EB/OL].(2011-03-01)[2013-06-25].http://en.wikipedia.org/wiki/Scapy.

      [7] 田寶勇. ARP協(xié)議的攻擊及防范措施的分析[J]. 實驗室科學,2010,13(1):113-114.

      [8] Socolofsky T.A TCP/IP tutorial[EB/OL].(1995-03-10)[2013-06-25].https://tools.ietf.org/ht mL/rfc11.

      [9] 百度百科.IP數(shù)據(jù)報[EB/OL].(2013-03-10)[2013-06-25].http://baike.baidu.com/view/1519445.htm.

      Application of Scapy in Network Protocol Analysis Experiment Teaching

      LI Shujun1,2

      (1. College of Information Science and Technology, Yancheng Teachers University, Yancheng 224002, China;2. College of Software Engineering, Nanjing University, Nanjing 210093, China)

      This paper focuses on the problems in network protocol analysis experiment teaching, and introduces the working principle and functional advantages of the Scapy, a protocol analysis software, that has been widely used in foreign countries. It puts forward a teaching method for network protocol analysis experiment teaching. Then, the basic teaching process of using Scapy is summed up, and an application example is provided. It is beneficial for students to directly understand the principles of network protocol, and the good experiment teaching results can be obtained.

      Scapy software; experiment teaching; network protocol; protocol analysis; computer network

      2013-07-31;修改日期: 2013-11-15

      江蘇省高等教育教改研究基金資助項目(169)。

      李樹軍(1980-),男,碩士,講師,研究方向:計算機網絡、網絡安全。

      TP393;G642.423

      A

      10.3969/j.issn.1672-4550.2014.06.037

      猜你喜歡
      網絡協(xié)議數(shù)據(jù)包實驗教學
      計算機網絡理論下的傳播研究結構模型:Communication一詞的兩種翻譯
      小議初中化學演示實驗教學
      甘肅教育(2020年4期)2020-09-11 07:42:36
      電容器的實驗教學
      物理之友(2020年12期)2020-07-16 05:39:20
      對初中化學實驗教學的認識和體會
      甘肅教育(2020年8期)2020-06-11 06:10:04
      SmartSniff
      一種藍牙多跳網絡協(xié)議的設計與研究
      電子制作(2018年17期)2018-09-28 01:56:52
      基于DPI技術的語音視頻流量監(jiān)控系統(tǒng)設計與實現(xiàn)
      幾何體在高中數(shù)學實驗教學中的應用
      芻議局域網中網絡協(xié)議的添加與配置
      科技資訊(2015年10期)2015-06-29 18:17:23
      基于Libpcap的網絡數(shù)據(jù)包捕獲器的設計與實現(xiàn)
      平乐县| 青阳县| 麻江县| 闽清县| 五华县| 东兴市| 锦屏县| 邳州市| 佛教| 黄浦区| 西城区| 龙里县| 格尔木市| 康保县| 尉犁县| 陇川县| 梁平县| 通山县| 鲜城| 宁陵县| 霍城县| 枣阳市| 建德市| 习水县| 田林县| 尼勒克县| 舒城县| 体育| 仁寿县| 蒲江县| 额尔古纳市| 深水埗区| 宜昌市| 奉新县| 烟台市| 安国市| 新余市| 容城县| 渑池县| 平乡县| 田阳县|