版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p> 一、課程設(shè)計(jì)目的:………………………………………………3</p><p> 二、課程設(shè)計(jì)要求:………………………………………………3</p><p> 三、課程設(shè)計(jì)主要思路分析:……………………………………3</p><p> 四、設(shè)計(jì)流程圖:…………
2、……………………………………….4</p><p> 五、運(yùn)行結(jié)果:…………………………………………………….5</p><p> 六、總結(jié):………………………………………………………….6</p><p> 參考文獻(xiàn)…………………………………………………………..6</p><p> 源代碼:……………………………………………………
3、……….6 </p><p><b> 一、課程設(shè)計(jì)目的</b></p><p> 隨著Internet技術(shù)的發(fā)展,基于IP協(xié)議的應(yīng)用成為網(wǎng)絡(luò)技術(shù)研究與軟件開(kāi)發(fā)的一個(gè)重要基礎(chǔ),因此學(xué)習(xí)網(wǎng)絡(luò)層以基本概念,了解IP協(xié)議的基本內(nèi)容,對(duì)于掌握TCP/IP協(xié)議的主要內(nèi)容和學(xué)習(xí)網(wǎng)絡(luò)課程是十分重要的,通過(guò)本次課程設(shè)計(jì),有助于熟悉IP包格式和加深對(duì)IP協(xié)議的理解。</p&g
4、t;<p><b> 二、課程設(shè)計(jì)要求</b></p><p> 編制程序,監(jiān)控網(wǎng)絡(luò),捕獲一段時(shí)間內(nèi)網(wǎng)絡(luò)上的IP數(shù)據(jù)包,按IP數(shù)據(jù)包的源地址統(tǒng)計(jì)出該源地址在該時(shí)間段內(nèi)發(fā)出的IP包的個(gè)數(shù),將其寫(xiě)入日志文件中或用圖形表示出來(lái)(建議用圖形表示出統(tǒng)計(jì)結(jié)果)。</p><p> 程序的具體要求如下:</p><p> 用命令行運(yùn)行:
5、IPStatistic time logfile</p><p> 其中,IPStatistic是程序名;time是設(shè)定的統(tǒng)計(jì)時(shí)間間隔(單位為分鐘,比如,2表示2分鐘);logfile表示統(tǒng)計(jì)結(jié)果寫(xiě)入的日志文件名(若用圖形表示統(tǒng)計(jì)結(jié)果則可以不選這個(gè)參數(shù))。</p><p><b> 相關(guān)知識(shí):</b></p><p> IP是ICP/IP
6、協(xié)議體系中的網(wǎng)絡(luò)層協(xié)議,TCP、UDP、ICMP和IGMP等其他協(xié)議都是以IP 協(xié)議為基礎(chǔ)的。IP的特點(diǎn)如下:</p><p> IP協(xié)議是一種不可靠、無(wú)連接的數(shù)據(jù)報(bào)傳送協(xié)議。</p><p> IP協(xié)議是點(diǎn)對(duì)點(diǎn)的網(wǎng)絡(luò)層通信協(xié)議。</p><p> IP協(xié)議向通信層隱藏了物理網(wǎng)絡(luò)的差異。</p><p> 三、課程設(shè)計(jì)主要思路分析&l
7、t;/p><p> 1.課程設(shè)計(jì)中的重點(diǎn)及難點(diǎn)</p><p> ?。?)程序中會(huì)用到Winpcap, Winpcap是Windows packet capture的縮寫(xiě),這是UNIX下的lipbcap移植到Windows下的產(chǎn)物,是Win32環(huán)境下數(shù)據(jù)包捕獲的開(kāi)放代碼函數(shù)庫(kù)。Winpcap由內(nèi)核級(jí)的數(shù)據(jù)包過(guò)濾器,底層動(dòng)態(tài)鏈接庫(kù)(packet.dll)和一個(gè)高層的獨(dú)立于系統(tǒng)的庫(kù)(wpcap.
8、dll)組成。</p><p> Winpcap提供以下功能:</p><p> 捕獲原始數(shù)據(jù)報(bào),包括共享網(wǎng)絡(luò)上各主機(jī)發(fā)送/接收的數(shù)據(jù)報(bào)以及各主機(jī)之間交換的數(shù)據(jù)報(bào)。</p><p> 在數(shù)據(jù)報(bào)發(fā)往應(yīng)用程序之前,按照自定義的規(guī)則過(guò)濾某些特殊的數(shù)據(jù)報(bào)。</p><p> 將用戶構(gòu)造的數(shù)據(jù)報(bào)發(fā)送到網(wǎng)絡(luò)中。</p><p&
9、gt;<b> 統(tǒng)計(jì)網(wǎng)絡(luò)的流量。</b></p><p> Winpcap的主要功能在于獨(dú)立于主機(jī)協(xié)議(如TCP/IP)發(fā)送和接收原始數(shù)據(jù)報(bào)。也就是說(shuō),Winpcap不能阻塞、過(guò)濾或控制其他應(yīng)用程序數(shù)據(jù)報(bào)的收發(fā),它只是監(jiān)聽(tīng)共享網(wǎng)絡(luò)上傳送的數(shù)據(jù)報(bào)。因此,它不能用于QoS調(diào)度程序或個(gè)人防火墻。</p><p> 基于Winpcap的應(yīng)用程序一般按照下面幾個(gè)步驟編寫(xiě):
10、</p><p><b> 獲取網(wǎng)絡(luò)設(shè)備列表。</b></p><p><b> 選擇網(wǎng)卡并打開(kāi)。</b></p><p> 當(dāng)捕獲數(shù)據(jù)包時(shí),可能需要設(shè)置過(guò)濾器。</p><p> 捕獲數(shù)據(jù)包或者發(fā)送數(shù)據(jù)包。</p><p> Packet.dll相關(guān)數(shù)據(jù)結(jié)構(gòu)<
11、;/p><p> typedef struct_ADAPTER ADAPTER //描述一個(gè)網(wǎng)絡(luò)適配器</p><p> typedef struct_PACKET PACKET具 //描述一組網(wǎng)絡(luò)數(shù)據(jù)報(bào)的結(jié)構(gòu)</p><p> typedef struct NetType NetType //描述網(wǎng)絡(luò)類(lèi)型的數(shù)據(jù)結(jié)構(gòu)</p><p
12、> typedef struct npf_if_addr npf_if_addr //描述一個(gè)網(wǎng)絡(luò)適配器的IP地址</p><p> struct bpf_hdr //數(shù)據(jù)報(bào)頭部</p><p> struct bpf_stat //當(dāng)前捕獲數(shù)據(jù)報(bào)</p><p&g
13、t; ?。?)列出網(wǎng)卡列表,讓用戶選擇可用的網(wǎng)卡。</p><p> ?。?)注意過(guò)濾器的使用,只需捕獲IP所,別的包都需過(guò)濾掉。</p><p><b> 2.參考算法</b></p><p> ?。?)取得當(dāng)前網(wǎng)絡(luò)設(shè)備列表(在標(biāo)準(zhǔn)輸出上顯示,以讓用戶進(jìn)行選擇)。</p><p> (2)將用戶選擇的Etherne
14、t卡以混雜模式打開(kāi),以接收到所有的數(shù)據(jù)包。</p><p> (3)設(shè)置過(guò)濾器,此處的過(guò)濾器“IP”。</p><p> ?。?)捕獲IP包并按包的源地址進(jìn)行統(tǒng)計(jì)(用鏈表結(jié)構(gòu)進(jìn)行實(shí)現(xiàn))。程序流程如圖1-1所示:</p><p><b> 四、設(shè)計(jì)流程圖。</b></p><p><b> 圖1-1程序流程
15、圖</b></p><p><b> 五、運(yùn)行結(jié)果:</b></p><p> 安裝好WinPcap軟件,在VC++界面上點(diǎn)擊工具->選項(xiàng)->目錄。添加Include文件夾下的所有文件和Lib下的所有內(nèi)容,調(diào)試完程序無(wú)誤后,點(diǎn)擊開(kāi)始—>運(yùn)行“cmd”進(jìn)入目標(biāo)文件夾Debug下運(yùn)行IPI.EXE文件并加入?yún)?shù)2 bl.txt。此時(shí)程序會(huì)
16、檢測(cè)電腦系統(tǒng)中的網(wǎng)卡數(shù),然后選擇程序運(yùn)行時(shí)的網(wǎng)絡(luò)接口,耐心等待兩分鐘后就會(huì)得到程序的運(yùn)行結(jié)果.</p><p> 圖1-2系統(tǒng)中網(wǎng)絡(luò)接口數(shù)</p><p> 圖1-3選擇第一個(gè)網(wǎng)絡(luò)接口</p><p> 圖1-4 1分鐘之后捕獲的ip地址和數(shù)據(jù)包</p><p><b> 六、總結(jié):</b></p>
17、<p> 通過(guò)本次計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì),我更加充分的理解了課本上的知識(shí),并能夠加以擴(kuò)展,從而應(yīng)用于實(shí)踐當(dāng)中,這幾天的課程設(shè)計(jì)令我受益匪淺,我意識(shí)到我們所學(xué)的東西將來(lái)都是要付諸實(shí)踐的,所以一切要從實(shí)際情況出發(fā),理論聯(lián)系實(shí)際,這樣才能真正發(fā)揮我們所具備的能力。這次計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)歷時(shí)二個(gè)星期,在整整十多天的日子里,可以說(shuō)得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)
18、到過(guò)的知識(shí)。以前對(duì)于編程工具的使用還處于一知半解的狀態(tài)上,但是經(jīng)過(guò)一段上機(jī)的實(shí)踐,對(duì)于怎么去排錯(cuò)、查錯(cuò),怎么去看每一步的運(yùn)行結(jié)果。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)
19、現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多編程問(wèn)題,最后在老師的辛勤指</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 吳功宜 胡曉英.計(jì)算機(jī)網(wǎng)課程設(shè)計(jì) 北京:機(jī)械工業(yè)出版社,2007.12.</p><p> [2] 張蕘學(xué) 郭國(guó)強(qiáng).計(jì)算機(jī)網(wǎng)
20、絡(luò)與Internet教程(第二版) 北京:清華大學(xué)出版社2006.11.</p><p> [3] 王春曉 趙艷標(biāo).計(jì)算機(jī)網(wǎng)絡(luò)教程 北京:機(jī)械工業(yè)出版社,2005.08.</p><p> [4] 張仁 何云.計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)指導(dǎo) 北京:清華大學(xué)出版社 2006.05.</p><p><b> 源代碼: </b></p>
21、<p><b> //主程序</b></p><p> #include <iostream.h></p><p> #include <iomanip.h></p><p> #include <fstream.h></p><p> #include <
22、stdlib.h></p><p> #include <stdio.h></p><p> #include <conio.h></p><p> #include "pcap.h"</p><p> //#include "IPNodeList.h"</p
23、><p> #pragma comment(lib,"Wpcap.lib")</p><p> #pragma comment(lib,"Ws2_32.lib")</p><p> //IP包的頭部包括</p><p> struct ip_header{</p><p>
24、 unsigned char ver_ihl; //版本號(hào)(4位)+頭部長(zhǎng)度(4位)</p><p> unsigned char tos; //服務(wù)類(lèi)型</p><p> unsigned short tlen; //總長(zhǎng)度</p><p> unsigned short identif
25、ication; //標(biāo)識(shí)</p><p> unsigned short flags_fo; //標(biāo)志+片偏移</p><p> unsigned char tll; //生存時(shí)間</p><p> unsigned char proto; //協(xié)議</p><p&g
26、t; unsigned short crc; //校驗(yàn)碼</p><p> DWORD saddr; //源地址</p><p> DWORD daddr; //目的地址</p><p> unsigned int op_pad;
27、 //選項(xiàng)+填充</p><p><b> };</b></p><p> class IPNode</p><p><b> {</b></p><p><b> private:</b></p><p> long m_lIPAddress
28、; //IP地址</p><p> long m_lCount; //發(fā)送數(shù)據(jù)包數(shù)</p><p><b> public:</b></p><p> IPNode *pNext; //指向下一個(gè)IP結(jié)點(diǎn)</p><p><b>
29、 //構(gòu)造函數(shù)</b></p><p> IPNode(long sourceIP)</p><p><b> {</b></p><p> m_lIPAddress=sourceIP;</p><p> m_lCount=1; //初始化數(shù)據(jù)包個(gè)數(shù)為1</p>
30、<p><b> }</b></p><p><b> //數(shù)據(jù)包個(gè)數(shù)加1</b></p><p> void addCount()</p><p><b> {</b></p><p> m_lCount++;</p><p>&
31、lt;b> }</b></p><p><b> //返回?cái)?shù)據(jù)包個(gè)數(shù)</b></p><p> long getCount()</p><p><b> {</b></p><p> return m_lCount;</p><p><b&g
32、t; }</b></p><p><b> //返回IP地址</b></p><p> long getIPAddress()</p><p><b> {</b></p><p> return m_lIPAddress;</p><p><b&
33、gt; }</b></p><p><b> };</b></p><p><b> //結(jié)點(diǎn)鏈表</b></p><p> class NodeList</p><p><b> {</b></p><p> IPNode *p
34、Head;</p><p> IPNode *pTail;</p><p> public:NodeList()</p><p><b> {</b></p><p> pHead=pTail=NULL;</p><p><b> }</b></p>
35、<p> ~NodeList()</p><p><b> {</b></p><p> if(pHead!=NULL)</p><p><b> {</b></p><p> IPNode *pTemp=pHead;</p><p> pHead=pH
36、ead->pNext;</p><p> delete pTemp;</p><p><b> }</b></p><p><b> }</b></p><p> //IP結(jié)點(diǎn)加入鏈表</p><p> void addNode(long sourceIP)&
37、lt;/p><p><b> {</b></p><p> if(pHead==NULL) //當(dāng)鏈表為空時(shí)</p><p><b> {</b></p><p> pTail=new IPNode(sourceIP);</p><p> pHead=
38、pTail;</p><p> pTail->pNext=NULL;</p><p><b> }</b></p><p> else //不為空時(shí)</p><p><b> {</b></p><p> for(IPN
39、ode *pTemp=pHead;pTemp;pTemp=pTemp->pNext)</p><p><b> {</b></p><p> //如果鏈表中存在此IP,發(fā)送數(shù)據(jù)包個(gè)數(shù)加1</p><p> if(pTemp->getIPAddress()==sourceIP)</p><p><b
40、> {</b></p><p> pTemp->addCount();</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> //
41、如果鏈表中沒(méi)有此IP,則加入鏈表</p><p> if(pTemp==NULL)</p><p><b> {</b></p><p> pTail->pNext=new IPNode(sourceIP);</p><p> pTail=pTail->pNext;</p><p&
42、gt; pTail->pNext=NULL;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> //輸出IP結(jié)點(diǎn),即IP地址和其他送的IP包的個(gè)數(shù)</p><p
43、> ostream& print(ostream & out)</p><p><b> {</b></p><p> for(IPNode *pTemp=pHead;pTemp;pTemp=pTemp->pNext)</p><p><b> {</b></p><
44、p> long lTemp=pTemp->getIPAddress();</p><p> out<<inet_ntoa(*(in_addr*)&(lTemp))<<'\t';</p><p> out<<pTemp->getCount()<<endl;</p><p>
45、<b> }</b></p><p> return out;</p><p><b> }</b></p><p><b> };</b></p><p> void main(int argc,char *argv[])</p><p>&
46、lt;b> {</b></p><p> if (argc!=3) //判斷是否正確</p><p><b> {</b></p><p> cout<<"Usage:IPStatistic time logfile"<<endl;&l
47、t;/p><p> cout<<"Press any key to continue..."<<endl;</p><p><b> _getch();</b></p><p><b> return;</b></p><p><b> }&
48、lt;/b></p><p> double min=atof(argv[1]);</p><p> pcap_if_t *alldevs; //網(wǎng)絡(luò)設(shè)備結(jié)構(gòu)</p><p> pcap_if_t *d,*head=NULL;</p><p> pcap_t *fp;
49、 //網(wǎng)卡描述</p><p> char errbuf[PCAP_ERRBUF_SIZE]; //錯(cuò)誤信息</p><p> unsigned int netmask; //子網(wǎng)掩碼</p><p> char packet_filter[]="ip"; //過(guò)濾,選擇IP協(xié)議</p>
50、;<p> struct bpf_program fcode;</p><p> struct pcap_pkthdr *header;</p><p> const unsigned char *pkt_data;</p><p> //獲取網(wǎng)絡(luò)設(shè)備列表</p><p> if(pcap_findalldevs(&a
51、mp;alldevs,errbuf) == -1)</p><p><b> {</b></p><p> cout<<"Error in pcap_findalldevs:"<<errbuf;</p><p><b> return;</b></p><
52、;p><b> }</b></p><p> int i=1; //網(wǎng)卡數(shù)</p><p> if(i==0) //無(wú)設(shè)備</p><p><b> {</b></p><p> cout
53、<<"\nNo interfaces found! Make sure Winpacp is installed.\n";</p><p><b> return;</b></p><p><b> }</b></p><p><b> if(i>=1)</b&g
54、t;</p><p><b> {</b></p><p><b> int j=0;</b></p><p> for(d=alldevs;d;d=d->next) //列出網(wǎng)卡列表,讓用戶進(jìn)行選擇</p><p><b> {</b></p>&
55、lt;p> cout<<++j<<":"<<d->name;</p><p> if(d->description)</p><p> cout<<" "<<d->description<<endl;</p><p><
56、b> }</b></p><p> cout<<"\nEnter the interface number(1-"<<j<<"):";</p><p><b> int k;</b></p><p><b> cin>>k
57、;</b></p><p> if(k<1||k>j)</p><p><b> {</b></p><p> cout<<"out of range"<<endl;</p><p><b> return;</b><
58、/p><p><b> }</b></p><p> for(d=alldevs,i=1;i<k;d=d->next,i++); //找到選擇的網(wǎng)卡</p><p><b> head=d;</b></p><p><b> }</b></p>
59、<p> //以混雜模式方式打開(kāi)網(wǎng)卡</p><p> if((fp=pcap_open_live(head->name,1000,1,1000,errbuf))==NULL)</p><p><b> {</b></p><p> cout<<"\nUnable to open the adap
60、ter."<<endl;</p><p> pcap_freealldevs(alldevs);</p><p><b> return;</b></p><p><b> }</b></p><p><b> //獲取子網(wǎng)掩碼</b></p
61、><p> if(head->addresses!=NULL)</p><p> netmask=((struct sockaddr_in*)(head->addresses->netmask))->sin_addr.S_un.S_addr;</p><p><b> else</b></p><p
62、> //沒(méi)有地址則假設(shè)為C類(lèi)地址</p><p> netmask=0xFFFFFF00;</p><p><b> //編譯過(guò)濾器</b></p><p> if(pcap_compile(fp,&fcode,packet_filter,1,netmask)<0)</p><p><b
63、> {</b></p><p> cout<<"\nUnable to compile the packet filter.Check the syntax.\n";</p><p> pcap_freealldevs(alldevs);</p><p><b> return;</b>
64、</p><p><b> }</b></p><p><b> //設(shè)置濾波器</b></p><p> if(pcap_setfilter(fp,&fcode)<0)</p><p><b> {</b></p><p> c
65、out<<"\nError setting the filter.\n";</p><p> pcap_freealldevs(alldevs);</p><p><b> return;</b></p><p><b> }</b></p><p> //顯
66、示提示信息及每項(xiàng)的含義</p><p> cout<<"\t\tlistening on"<<head->description<<"..."<<endl<<endl;</p><p> ofstream fout(argv[2],ios::app); //日
67、志記錄文件</p><p> fout<<"\tIP Statistic:("<<min<<"minutes)"<<endl;</p><p> time_t tmp=time(NULL);</p><p> fout<<ctime(&tmp);<
68、/p><p> cout<<"IP Statistic:("<<min<<"minutes)"<<endl;</p><p> fout<<" Sour ip"<<"\tpacket numbers"<<endl;</p&
69、gt;<p><b> //釋放設(shè)備列表</b></p><p> pcap_freealldevs(alldevs);</p><p> NodeList link; //存儲(chǔ)數(shù)據(jù)用鏈表</p><p><b> int res;</b></p&
70、gt;<p> time_t beg;</p><p> time_t end;</p><p> time(&beg); //獲取當(dāng)前時(shí)間</p><p> while((res=pcap_next_ex(fp,&header,&pkt_data))>=0)&l
71、t;/p><p><b> {</b></p><p> time(&end); //獲得系統(tǒng)時(shí)間</p><p> if(end-beg>=min*60) //計(jì)算系統(tǒng)時(shí)間</p><p><b> break;</b
72、></p><p> if(res==0)</p><p> continue; //超時(shí)</p><p> ip_header *ih;</p><p><b> //找到I頭得位置</b></p><p> ih=(ip_header*)(
73、pkt_data+14); //14為以太頭的長(zhǎng)度</p><p> link.addNode(ih->saddr); //將源IP地址加入鏈表</p><p><b> }</b></p><p> cout<<"Sour IP"<<'\t'<&l
74、t;"packet numbers"<<endl;</p><p> link.print(cout); //輸出到屏幕</p><p> link.print(fout); //輸出到日志</p><p> fout<<endl;</
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告--監(jiān)控ip包流量
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---監(jiān)控ip數(shù)據(jù)包流量
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)-- 解析ip數(shù)據(jù)包
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---ip數(shù)據(jù)包解析報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 《計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)》
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)--端口檢測(cè)及ip包的捕獲解析
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)tcp數(shù)據(jù)包
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---網(wǎng)絡(luò)設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)--小規(guī)模ip網(wǎng)絡(luò)的建立
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論