999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

模擬網絡組建中Ping命令的實現

2008-12-31 00:00:00呂金榮龔沛曾楊志強
電腦知識與技術 2008年19期

摘要:網絡技術無論在教學還是在現實生活中都變得異常的重要,該文結合教學課程和實驗要求,對模擬網絡組建的過程進行了初步的研究。在該實驗平臺中,將簡單直觀的網絡設備圖標表示為真實的網絡設備,用于搭建現實中的網絡,并提供命令交互窗口,模擬常用的網絡命令的實現對當前的網絡狀態進行檢查,該文主要對Ping命令的實現進行了實驗分析。

關鍵詞:網絡技術;Ping命令;ICMP協議

中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)19-30028-03

The Realization of Ping Command in Virtual Network Construction

LV Jin-rong, GONG Pei-zeng, YANG Zhi-qiang

(Dept of Computer Science and Engineering, Tongji University, Shanghai 200092, China)

Abstract: Network Technology is being more and more important not only in teaching but also in practical application. The paper based on the teaching curriculum and experiment requirement and did a primary researching in Virtual Network Construction. This experiment method use the simple icons to behalf the real network equipment which been used to construct network. Also the experiment method gives a command interface line in a separated window and simulates some network commands to check the states of net. This paper realizes the Ping command and analyzes with an experiment.

Key words: network technology; Ping command; ICMP protocols

1 引言

隨著計算機技術及網絡技術的迅速發展,個人、家庭或宿舍中擁有多臺計算機已變得十分的普遍,將多臺計算機組建成網絡可以提高資源的利用率和協同工作的效率,所以網絡技術無論在教學還是在現實生活中都變得異常的重要。

在實際學習中,由于資源設備的限制,提供完善的實驗環境存在一定的難度,所以提供一種模擬的組建網絡的平臺具有很強的現實意義。雖然在應用中,業界有很多優秀的成品軟件,如:虛擬機軟件vmware、virtual pc;以及網絡認證考試的軟件NetSim、Dynamips等工具也可用于模擬組建網絡的練習工具,但是由于它們所面向的是高級的網絡應用,在教學的應用中需要更簡單直觀的平臺。

文中就是基于面向網絡技術教學的目的而設計的實驗平臺,提供了簡單直觀實驗的要求。文中重點實現了Ping命令,根據Ping命令的運行原理,對它進行了模擬實現,相應的其他檢查網絡狀態的命令,如:tracert、ipconfig、netstat等等,也可以根據各自的運行原理進行實現[1]。

2 Ping命令及ICMP協議簡介

2.1 Ping命令簡介

“Ping”這個名字源于聲納定位操作,最早Ping程序是由Mike Muuss編寫[2],目的是為了測試另一臺主機是否可達,該程序發送一份ICMP回顯請求報文給主機,并等待返回ICMP回顯應答。

一般來說,如果不能Ping到某臺主機,那么就不能Telnet或者FTP到那臺主機;反過來,如果不能Telnet到某臺主機,那么通??梢杂肞ing程序來確定問題出在哪里。但是隨著Internet安全意識的增強,Ping不通一臺主機也可能是受路由器、防火墻的影響,但在一般的應用中可以將Ping作為檢測網絡連通狀況的實用工具。

圖1 Ping命令發送ICMP報文

2.2 ICMP協議簡介

ICMP協議(Internet Control Message Protocol, Internet控制報文協議)是TCP/IP協議族的一個子協議,該協議位于網絡層,提供了傳輸差錯報文、控制報文和詢問報文的功能;允許ICMP報文在IP數據報內攜帶。封裝格式如下圖:

圖2 ICMP封裝在IP數據報內部

ICMP報文有多種類型,Ping程序使用ICMP的回顯請求報文,該報文的結構如下:前四個字節為報文頭部分,第一個字節為報文類型,第二個字節未用,第三、四個字節為報文的校驗和,第五、六個字節為報文的標志符,第六、七個字節為報文的序號,最后為選項數據但是報文總長度不超過64KB。

ICMP回顯請求和回顯應答報文格式如下圖:

圖3 ICMP回顯請求和回顯應答報文格式

3 Ping命令執行原理及實現步驟

3.1 執行原理和步驟

在進行Ping操作時,首先從客戶機向服務器發送ICMP回顯請求報文,當服務器接收到客戶機發送來的ICMP回顯請求報文時,服務器就會向客戶機發送ICMP回顯應答報文,客戶機通過接收來自服務器的ICMP回顯應答報文,從而判斷與遠程主機的聯通狀態。

實現步驟如下:

步驟 1:根據ICMP回顯請求的報文格式,定義報文;

步驟 2:客戶機發送封裝ICMP回顯請求報文的IP數據包;

步驟 3:客戶機接收封裝ICMP應答報文的IP數據包。

3.2 數據包的檢驗和算法

為了保證包頭和數據不被破壞,數據包在計算機網絡中傳輸期間使用了檢驗和(圖3中的第三四字節),ICMP的檢驗和字段覆蓋整個ICMP報文,而求ICMP的檢驗和是必須的,檢驗和保證了ICMP報頭和數據的正確性。

檢驗和算法在所有的協議中都是相同的,只是由于協議的不同,檢驗和保證的域的內容不同。檢驗和在各種協議中所保證的各種域如下:

檢驗和icmp_ckSum算法如下[4]:

① 在檢驗和的域中設置為0;

② 在數據長度為奇數時,在其域中最后追加0,使其調整為以16為單位(在這種調整方法中,即使追加8位,也不包含包長度);

③ 以16位為單位,將一個偽報頭、報頭、數據部分加上1的補碼;

④ 將所求出的值:1的補碼存儲到報頭檢查和的區域中。

如果首部在傳輸的過程中沒有發生任何差錯,那么接收方計算的結果應該為全1;如果結果不是全1(即檢驗和錯誤),那么IP就丟棄收到的數據報,但是不生成差錯報文,由上層去發現丟失的數據報并進行重傳。

4 模擬命令的實驗過程及結果

4.1 實驗要完成的功能

本實驗平臺要實現的功能界面如圖4。

在“工作臺”窗口中,組建了一個簡單的局域網,通過模擬網絡命令測試該局域網的網絡連通狀態,在“命令交互”窗口中,用Ping命令從PC1到PC2,返回的結果將與實際的局域網中得到的結果相似。

4.2 Ping命令的Visual C#模擬實現

安裝Ping命令的執行原理、步驟,其具體的實現過程如下:

① ICMP數據包類的定義和實現。

public class IcmpPacket{private Byte_type;// 報文類型

private Byte_subCode;// 字代碼類型

private UInt16 _checkSum;// 報文校驗和

private UInt16 _identifier;//識別符

private UInt16 _sequenceNumber;// 序列號

private Byte[]_data; // 數據選項 }

② 模擬Socket的SendTo()方法的SimSendTo()方法。

在執行Ping命令時該方法將被調用,根據計算機名或虛擬的IP地址,將ICMP數據包的UInt16數組發送給目的主機進行驗證。

在該方法中增加了對計算機名的名稱的解析,可以將計算機名稱與虛擬的IP地址對應起來,因此Ping命令后面的參數可以是計算機名也可以是具體的IP地址。

③ 模擬Socket的ReceiveFrom()方法的SimReceiveFrom()方法。

此方法在執行Ping命令是也會被調用,該方法返回了目的主機回顯的信息,表明了目的主機是否已經接收到了發送的數據,若該方法的返回值為ICMP數據包的大小,則表明操作成功,將在終端顯示接收信息;若返回的值為-1,則在終端顯示“目的主機不可到達”的信息。

④ 檢驗和icmp_ckSum()算法的實現。

public static UInt16 icmp_ckSum(UInt16[] buffer)

{int cksum = 0;

for(int i=0;i

cksum += (int) buffer[i];

cksum = (cksum >> 16) + (cksum 0xffff);

cksum += (cksum >> 16);

return (UInt16)(~cksum); }

5 結束語

該文對模擬組網的實驗平臺進行了介紹,詳細介紹了Ping命令的原理及其工作方式,并對其模擬實現進行了詳細的分析。依據此實現方式,可以對其他的命令tracert、ipconfig、netstat等等進行實現,以完善該實驗平臺。

當然該平臺到目前只是對關鍵的技術進行了前期的研究和解決,很多的功能和相關的技術還要進行繼續的研究,在命令的交互體驗方面也應該更加真實,這些都成為以后工作的重點。

參考文獻:

[1] Jon C.Snader. 劉江林,譯. 高級TCP/IP編程[M].北京:中國電力出版社,2001.6.

[2] W.Richard Stevens.TCP/IP Illustrated, Volume 1:The Protocols.北京:機械工業出版社,2002.1.

[3] 潘愛明,譯.計算機網絡[M].第4版.北京:清華大學出版社,2004.8.

[4] 馮杰,閆魯生,譯.TCP/IP網絡實驗程序篇[M].北京:科學出版社,2003.4.

[5] Gary R.Wright,W.Richard Stevens.TCP/IP Illustrated, Volume 2:The Implementation[M].北京:機械工業出版社,2002.1.

[6] 李銘,黃靜,譯.C#2005.NET 3.0高級編程.第5版.北京:清華大學出版社,2007.12.

[7] RFC 791-1981 INTERNET PROTOCOL[S].Network Working Group.

[8] RFC 792-1981 INTERNET CONTROL MESSAGE PROTOCOL[S].Network Working Group.

注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文

主站蜘蛛池模板: 五月六月伊人狠狠丁香网| 狠狠色综合久久狠狠色综合| 欧美特级AAAAAA视频免费观看| 日本在线视频免费| 看国产毛片| 伊人久久青草青青综合| 欧美日韩国产成人在线观看| 亚洲乱码精品久久久久..| 国产成本人片免费a∨短片| 亚洲国产日韩欧美在线| 91麻豆精品国产高清在线| 亚洲无码视频一区二区三区| 亚洲午夜天堂| 国产菊爆视频在线观看| 亚洲一本大道在线| 亚洲中文字幕手机在线第一页| 久久这里只有精品8| 亚洲最大情网站在线观看| 亚洲人在线| 黄色成年视频| 久久综合AV免费观看| 青青极品在线| 中字无码av在线电影| 国产成人亚洲综合A∨在线播放 | 波多野结衣AV无码久久一区| 亚洲国产综合自在线另类| 欧美亚洲激情| 欧美亚洲一区二区三区导航| 久久精品国产一区二区小说| 在线视频一区二区三区不卡| 亚洲一级毛片在线观播放| 激情乱人伦| 欧美一区日韩一区中文字幕页| 国产精品性| 高清免费毛片| 狼友视频国产精品首页| 五月婷婷综合在线视频| 成人在线不卡视频| 国产国模一区二区三区四区| 粗大猛烈进出高潮视频无码| 国产主播在线一区| 亚洲一区波多野结衣二区三区| 欧美中文字幕在线二区| 国产午夜人做人免费视频| 精品第一国产综合精品Aⅴ| 久久综合九色综合97网| 亚洲码一区二区三区| 精品无码一区二区三区在线视频| 久久香蕉国产线看观| 国产精品99久久久久久董美香 | 国产天天色| 久久精品国产999大香线焦| 国产美女一级毛片| 91精品啪在线观看国产| 永久毛片在线播| 国产精品分类视频分类一区| 日韩不卡高清视频| 都市激情亚洲综合久久| 色欲色欲久久综合网| 国产成熟女人性满足视频| 五月丁香在线视频| 国产一区二区福利| 久久公开视频| 亚洲妓女综合网995久久| 久久久久中文字幕精品视频| 色偷偷av男人的天堂不卡| 99资源在线| 国产97视频在线观看| 欧美天堂在线| 久久亚洲综合伊人| 自慰网址在线观看| 国产手机在线小视频免费观看| 成年女人a毛片免费视频| 黄片在线永久| 亚洲精品无码久久毛片波多野吉| 免费无码又爽又黄又刺激网站| 亚洲av片在线免费观看| 国产精品专区第1页| 免费播放毛片| 久久中文字幕2021精品| 亚洲第一视频区| 欧洲日本亚洲中文字幕|