# 第?1?章?介紹
**目錄**
+ [1.1\. 什么是Wireshark](#calibre_link-207)
+ [1.1.1\. 主要應用](#calibre_link-208)
+ [1.1.2\. 特性](#calibre_link-209)
+ [1.1.3\. 捕捉多種網絡接口](#calibre_link-210)
+ [1.1.4\. 支持多種其它程序捕捉的文件](#calibre_link-211)
+ [1.1.5\. 支持多格式輸出](#calibre_link-212)
+ [1.1.6\. 對多種協議解碼提供支持](#calibre_link-213)
+ [1.1.7\. 開源軟件](#calibre_link-214)
+ [1.1.8\. Wireshark不能做的事](#calibre_link-215)
+ [1.2\. 系通需求](#calibre_link-165)
+ [1.2.1\. 一般說明](#calibre_link-216)
+ [1.2.2\. Microsoft Windows](#calibre_link-217)
+ [1.2.3\. Unix/Linux](#calibre_link-218)
+ [1.3\. 從哪里可以得到Wireshark](#calibre_link-152)
+ [1.4\. Wiresahrk簡史](#calibre_link-157)
+ [1.5\. Wireshark開發維護](#calibre_link-158)
+ [1.6\. 匯報問題和獲得幫助](#calibre_link-219)
+ [1.6.1\. 網站](#calibre_link-220)
+ [1.6.2\. 百科全書](#calibre_link-221)
+ [1.6.3\. FAQ](#calibre_link-222)
+ [1.6.4\. 郵件列表](#calibre_link-166)
+ [1.6.5\. 報告問題](#calibre_link-223)
+ [1.6.6\. 在UNIX/Linux平臺追蹤軟件錯誤](#calibre_link-224)
+ [1.6.7\. 在Windows平臺追蹤軟件錯誤](#calibre_link-225)
## 1.1.?什么是Wireshark
Wireshark 是網絡包分析工具。網絡包分析工具的主要作用是嘗試捕獲網絡包, 并嘗試顯示包的盡可能詳細的情況。
你可以把網絡包分析工具當成是一種用來測量有什么東西從網線上進出的測量工具,就好像使電工用來測量進入電信的電量的電度表一樣。(當然比那個更高級)
過去的此類工具要么是過于昂貴,要么是屬于某人私有,或者是二者兼顧。 Wireshark出現以后,這種現狀得以改變。
Wireshark可能算得上是今天能使用的最好的開元網絡分析軟件。
### 1.1.1.?主要應用
下面是Wireshark一些應用的舉例:
* 網絡管理員用來解決網絡問題
* 網絡安全工程師用來檢測安全隱患
* 開發人員用來測試協議執行情況
* 用來學習網絡協議
除了上面提到的,Wireshark還可以用在其它許多場合。
### 1.1.2.?特性
* 支持UNIX和Windows平臺
* 在接口實時捕捉包
* 能詳細顯示包的詳細協議信息
* 可以打開/保存捕捉的包
* 可以導入導出其他捕捉程序支持的包數據格式
* 可以通過多種方式過濾包
* 多種方式查找包
* 通過過濾以多種色彩顯示包
* 創建多種統計分析
* …還有許多
不管怎么說,要想真正了解它的強大,您還得使用它才行
**圖?1.1.?Wireshark捕捉包并允許您檢視其內容**

### 1.1.3.?捕捉多種網絡接口
Wireshark 可以捕捉多種網絡接口類型的包,哪怕是無線局域網接口。想了解支持的所有網絡接口類型, 可以在我們的網站上找到[http://wiki.wireshark.org/CaptureSetup/NetworkMedia.](http://wiki.wireshark.org/CaptureSetup/NetworkMedia)
### 1.1.4.?支持多種其它程序捕捉的文件
Wireshark可以打開多種網絡分析軟件捕捉的包,詳見???
### 1.1.5.?支持多格式輸出
Wieshark可以將捕捉文件輸出為多種其他捕捉軟件支持的格式,詳見???
### 1.1.6.?對多種協議解碼提供支持
可以支持許多協議的解碼(在Wireshark中可能被稱為解剖)???
### 1.1.7.?開源軟件
Wireshark是開源軟件項目,用GPL協議發行。您可以免費在 任意數量的機器上使用它,不用擔心授權和付費問題,所有的源代碼在GPL框架下都可以免費使用。因為以上原因,人們可以很容易在Wireshark上添加新的協議,或者將其作為插件整合到您的程序里,這種應用十分廣泛。
### 1.1.8.?Wireshark不能做的事
Wireshark不能提供如下功能
* Wireshark不是入侵檢測系統。如果他/她在您的網絡做了一些他/她們不被允許的奇怪的事情,Wireshark不會警告您。但是如果發生了奇怪的事情,Wireshark可能對察看發生了什么會有所幫助。 [[3](#calibre_link-226)]
* Wireshark不會處理網絡事務,它僅僅是“測量”(監視)網絡。Wireshark不會發送網絡包或做其它交互性的事情(名稱解析除外,但您也可以禁止解析)。
[[3](#calibre_link-227)] 譯者注:因為不是入侵檢測之用,所以不會將入侵檢測和普通通信區別對待,但是都會體現在網絡包里面,如果您有足夠的經驗,或許能通過監視網絡包發現入侵檢測
## 1.2.?系通需求
想要安裝運行Wireshark需要具備的軟硬件條件...
### 1.2.1.?一般說明
* 給出的值只是最小需求,在大多數網絡中可以正常使用,但不排除某些情況下不能使用。 [[4](#calibre_link-189)]
* 在繁忙的網絡中捕捉包將很容塞滿您的硬盤!舉個簡單的例子:在100MBIT/s全雙工以太網中捕捉數據將會產生750MByties/min的數據!在此類網絡中擁有高速的CPU,大量的內存和足夠的磁盤空間是十分有必要的。
* 如果Wireshark運行時內存不足將會導致異常終止。可以在[http://wiki.wireshark.org/KnownBugs/OutOfMemory](http://wiki.wireshark.org/KnownBugs/OutOfMemory)察看詳細介紹以及解決辦法。
* Wireshark作為對處理器時間敏感任務,在多處理器/多線程系統環境工作不會比單獨處理器有更快的速度,例如過濾包就是在一個處理器下線程運行,除了以下情況例外:在捕捉包時“實時更新包列表”,此時捕捉包將會運行在一個處理下,顯示包將會運行在另一個處理器下。此時多處理或許會有所幫助。[[5](#calibre_link-190)]
### 1.2.2.?Microsoft Windows
* Windows 2000,XP Home版,XP Pro版,XP Tablet PC,XP Media Center, Server 2003 or Vista(推薦在XP下使用)
* 32-bit奔騰處理器或同等規格的處理器(建議頻率:400MHz或更高),64-bit處理器在WoW64仿真環境下-見一般說明
* 128MB系統內存(建議256Mbytes或更高)
* 75MB可用磁盤空間(如果想保存捕捉文件,需要更多空間) 800*600(建議1280*1024或更高)分辨率最少65536(16bit)色,(256色舊設備安裝時需要選擇”legacy GTK1”)
* 網卡需求:
* 以太網:windows支持的任何以太網卡都可以
* 無線局域網卡:見[MicroLogix support list](http://www.micro-logix.com/WinPcap/Supported.asp), 不捕捉802.11包頭和無數據楨。
* 其它接口見:[http://wiki.wireshark.org/CaptureSetup/NetworkMedia](http://wiki.wireshark.org/CaptureSetup/NetworkMedia)
說明
* 基于以下三點原因,將不會對舊版Windows提供支持:沒有任何開發人員正在使用那些操作系統, 這將使支持變得更加困難,Wireshark運行所依賴的庫文件(如GTK,WinPCap等)也放棄對它們的支持。 同樣,微軟也放棄了對它們的技術支持。
* Windows 95,98和ME不能運行Wireshark。已知的最后一個可以運行在以上平臺的版本是Ethereal0.99.0(需要安裝WinPCap3.1),你依然可以使用從: [http://ethereal.com/download.html](http://ethereal.com/download.html)獲得。順便提一下:微軟于2006年1月11日停止對98/ME支持。
* Windows NT 4.0今后將無法運行Wireshark.最有一個已知版本是Wireshark0.99.4(需安裝自帶的WinPCap3.1),你依然可以從:[http://prdownloads.sourceforge.net/wireshark/wireshark-setup-0.99.4.exe](http://prdownloads.sourceforge.net/wireshark/wireshark-setup-0.99.4.exe)得到它。順便提一下:微軟于2005年12月31日停止對NT 4.0的支持。
* Windows CE 及嵌入版windows(NT/XP)不被支持。
* 64-bit處理器運行Wireshark需要在32bit仿真環境下(稱作WoW64),最低需要安裝WinPCap4.0。
* 支持多顯示(不知道是顯示其還是監視器)安裝,但會遇到一些不可預料的問題。
### 1.2.3.?Unix/Linux
Wireshark目前可以運行在許多UNIX平臺,系統可以對照上面Windows下的指標。 二進制包最少在以下平臺可用:
* APPle Mac OSX
* Debian GNU/Linux
* FreeBSD
* NetBSD
* OpenPKG
* Red Hat Fedora/Enterprise Linux
* rPath Linux
* Sun Solaris/i386
* Sun Solaris/Sparc
如果二進制包在您的平臺無法使用,你可以下載源文件并嘗試編譯它。 希望您能發送郵件到[wireshark-dev[AT]wireshark.org .](mailto:Wireshark-dev@wireshark.org)分享您的經驗。
[[4](#calibre_link-191)] 譯者注:原文 “The values below are the minimum requirements and only "rules of thumb" for use on a moderately used network”,其中”rules of thumb”中譯名應該是拇指規則,但網上關于拇指規則解釋莫衷一是,大致意思是說:大多數情況下適用,但并非所有情況。這里翻譯的有點別扭
[[5](#calibre_link-192)] 譯者注:我對這句話的理解是,正如播放電影一樣,高性能的處理器只會增強顯示效果,您并不需要將原來30分鐘的影片10分鐘之內看完。當然,對減少延時還是有作用的。但是感覺這句有點閱讀困難,可能翻譯的有點問題.
## 1.4.?Wiresahrk簡史[[6](#calibre_link-159)]
1997年以后,Gerald Combs 需要一個工具追蹤網絡問題并想學習網絡知識。所以他開始開發Ethereal (Wireshark項目以前的名稱) 以解決以上的兩個需要。
Ethereal是第一版,經過數次開發,停頓,1998年,經過這么長的時間,補丁,Bug報告,以及許多的鼓勵,0.2.0版誕生了。Ethereal就是以這種方式成功的。
此后不久,Gilbert Ramirez發現它的潛力,并為其提供了底層分析
1998年10月,Guy Harris正尋找一種比TcpView更好的工具,他開始為Ethereal進行改進,并提供分析。
998年以后,正在進行TCP/IP教學的Richard Sharpe 關注了它在這些課程中的作用。并開始研究該軟件是否他所需要的協議。如果不行,新協議支持應該很方便被添加。所以他開始從事Ethereal的分析及改進。
從那以后,幫助Ethereal的人越來越多,他們的開始幾乎都是由于一些尚不被Ethereal支持的協議。所以他們拷貝了已有的解析器,并為團隊提供了改進回饋。
2006年項目Moved House(這句不知道怎么翻譯)并重新命名為:Wireshark.
[[6](#calibre_link-160)] 本段因為有很多協議,程序開發方面的術語,翻譯得比較糟糕
## 1.5.?Wireshark開發維護
Wireshark最初由Gerald Combs開發。目前由Wireshark team進行進一步開發和維護。Wireshark team是一個由修補bug提高Wireshark功能的獨立成員組成的松散組織。
有大量的成員為Wireshark提供協議分析。同時我們也希望這些活動能持續機芯。通過查看Wireshark幫助菜單下的About,你可以找到為Wireshark提供代碼的人員名單,或者你也可以通過Wireshark 網站的[authors](http://www.wireshark.org/about.html)頁面找到。
Wireshark 是開源軟件項目,發布遵循[GNU General Public Licence](http://www.gnu.org/copyleft/gpl.html) (GPL協議),所有源代碼可以在GPL框架下免費使用。歡迎您修改Wireshark以便適合您的需要,如果您可以提供您的改進給Wireshark team ,我們將不勝感激。
為Wireshark Team 提供您的改進建議,有以下益處:
* 如果其他人發現您提供的改進十分有用會肯定它們的價值,您將會得知你曾像Wireshark team 一樣幫助過他人
* The developers of Wireshark might improve your changes even more, as there's always room for improvement. Or they may implement some advanced things on top of your code, which can be useful for yourself too.
* The maintainers and developers of Wireshark will maintain your code as well, fixing it when API changes or other changes are made, and generally keeping it in tune with what is happening with Wireshark. So if Wireshark is updated (which is done often), you can get a new Wireshark version from the website and your changes will already be included without any effort for you.
Wireshar 源代碼和二進制kits (二進制工具包? )可以根據自己的平臺對應下載,網站是:[http://www.wireshark.org/download.html.](http://www.wireshark.org/download.html.)
## 1.6.?匯報問題和獲得幫助
如果您在使用中碰到了問題,或者您需要Wireshark的幫助,有以下幾種可能讓您有興趣的方法(當然,還包括這本書)。
### 1.6.1.?網站
通過訪問[http://www.wireshark.org](http://www.wireshark.org/)你將會發現關于Wireshark許多有用的信息。
### 1.6.2.?百科全書
Wireshark Wiki ([http://wiki.wireshark.org](http://wiki.wireshark.org/))提供廣泛的跟Wireshark以及捕捉包有關信息。你將會發現一些沒有被包括在本書內信息,例如:wiki上有解釋如何在交換網絡捕捉包,同時我們正努力建立協議參考,等等。
最好的事情是,如果對某些知識有獨到見解(比如您精通某種協議),您可以通過瀏覽器編輯它。
### 1.6.3.?FAQ
最經常被問到的問題“Frequently Asked Questions”提供一個經常被問到的問題以及答案的列表。
> 
> Read The FAQ
> 在您發送任何郵件到郵件列表之前,確信您已經閱讀了FAQ,因為這里面很可能已經提供了您想問的問題,答案。這將大大節約您的時間(記住,有很多人提交了大量的郵件)。
### 1.6.4.?郵件列表
下面的幾個幾個郵件列表,分別屬于不同的主題:
Wireshark-users
這是一個Wireshark用戶的列表,大家提交關于安裝和使用Wireshark的問題,其它人(非常有用)提供的答案。(譯者注:其他人當然也是指用戶?)
wireshark-announce
這是一個關于程序發布信息的列表,通常每4-8周出現一次。
wireshark-dev
這是一個關于Wireshark開發的郵件列表,如果開始開發協議分析,可以從加入該列表
你可以通過網站[http://www.wireshark.org](http://www.wireshark.org/)訂閱每個郵件列表.簡單點擊網站左手邊的郵件列表鏈接就可以。郵件同樣在網站上可以看到存檔。
> 
> 提示
> 你可以搜索存檔看看有沒有人問過跟你一樣的問題,或許您的問題已經有了答案。這樣您就不必提交郵件以等待別人答復您了。
### 1.6.5.?報告問題
> 
> 注意
> 在您提交任何問題之前,請確定您安裝的是最新版本的Wireshark。
當您提交問題的時候,如果您提供如下信息將會對解決問題很有幫助。
1. Wireshark的版本,及其依賴的庫的版本,如GTK+,等等。你可以通過**Wireshark –v**命令獲得版本號。(估計是UNIX/Linux平臺)。
2. 運行Wireshark的平臺信息。
3. 關于問題的詳細描述。
4. 如果您得到錯誤或者警告信息,拷貝錯誤信息的文本(以及在此之前或之后的文本,如果有的話),這樣其他人可能會發現發生問題的地方。請不要發送諸如:“I got a warning while doing x” [[7](#calibre_link-244)],因為這樣看起來不是個好主意。
> 
> 不要發送大文件
> 不要發送過大的文件(>100KB)到郵件列表,在郵件中附加一個能提供足夠數據的記事本就可以。大文件會讓很多郵件列表里的那些對您的問題不感興趣的用戶感到惱怒。如果需要,你可以單獨發送那些數據給對您問題真正感興趣,要求您發送數據的人。
> 
> 不要發送機密信息!
> 如果您發送捕捉數據到郵件列表,請確定它們不包含敏感或者機密信息,比如密碼或者諸如此類的。
### 1.6.6.?在UNIX/Linux平臺追蹤軟件錯誤
如果您發送捕捉數據到郵件列表,請確定它們不包含敏感或者機密信息,比如密碼或者諸如此類的。
你可以通過如下命令獲得追蹤信息:
```
$ gdb `whereis wireshark | cut -f2 -d: | cut -d' ' -f2` core >&bt.txt
backtrace
^D
$
```
> 
> 注意
> 在逐字輸入第一行的字符]
> 
> 注意
> 追蹤是一個**GDB**命令。你可以在輸完第一上以后輸入它,但是會沒有相應,^D命令(CTL+D)將會退出**GDB**命令。以上命令讓你在當前目錄得到一個名為`bt.txt`的文本文件,它包含您的bug報告。
> 
> 注意
> 如果您缺少**GDB**,您必須檢查您的操作系統的調試器。
你可以發送追蹤郵件到[wireshark-dev[AT]wireshark.org](mailto:wireshark-dev@wireshark.org)郵件列表
### 1.6.7.?在Windows平臺追蹤軟件錯誤
Windows下無法包含符號文件`(.pdb)`,它們非常大。因此不太可能創建十分有意義的追蹤文件。你將匯報軟件錯誤就像前面描述的其他問題一樣。(這句不盡人意)
[[7](#calibre_link-246)] 譯者注:那句話的意思是,我在XX時碰到一個警告信息
[[8](#calibre_link-247)] 譯者注:原文是:"Type the characters in the first line verbatim! Those are back-tics there!",Those are back-tics there!不知道是什么意思,back-tics=后勤抽搐?熟悉Linux的或許知道