學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 網(wǎng)絡(luò)知識 > 局域網(wǎng)知識 >

Linux系統(tǒng)下使用工具調(diào)試網(wǎng)絡(luò)性能的方法有哪些

時間: 加城1195 分享

  Linux系統(tǒng)網(wǎng)絡(luò)性能可以用工具來測試,需要用到一些輔助命令,方法也有幾種,可能很多用戶不太清楚具體過程。本文就來分別介紹一下Linux系統(tǒng)下使用這三種工具調(diào)試網(wǎng)絡(luò)性能的方法。

  Linux系統(tǒng)下使用工具調(diào)試網(wǎng)絡(luò)性能的方法

  一:route

  在配置網(wǎng)絡(luò)時,要為機器指定接收數(shù)據(jù)包時該包要經(jīng)過的路徑。在Linux系統(tǒng)中,提供一個命令route,這個命令可以為ifconfig命令配置的網(wǎng)卡設(shè)置靜態(tài)路由。這種設(shè)置工作通常在/etc/rc.d/rc.inet1中引入,在系統(tǒng)引導(dǎo)時進行。

  我們通過幾個例子來說明如何使用route命令:

  route add -net 127.0.0.0

  這個命令將向路由表中添加一個指定地址或者網(wǎng)絡(luò)的路由。注意此時網(wǎng)絡(luò)為A類地址,掩碼被設(shè)置為255.0.0.0,這個新添加的條目被連接到lo設(shè)備上。

  route add -net xxx.xxx.xxx.xxx netmask 255.255.255.0 dev eth0

  這個命令為IP地址為xxx.xxx.xxx.xxx的主機增加一個路由,它的網(wǎng)絡(luò)掩碼被設(shè)置為255.255.255.0。

  route del -net xxx.xxx.xxx.xxx

  此命令將刪除xxx.xxx.xxx.xxx這個網(wǎng)絡(luò)的路由。

  使用route命令還可以很方便地對整個網(wǎng)絡(luò)的路由信息進行管理,其輸出結(jié)果是網(wǎng)絡(luò)的路由表。如下所示:

  -----------------------------------------------------------------

  [root@lee /root]#route

  Kernel IP routing table

  Destination Gateway Genmask Flags Metric Ref Use Iface

  10.10.8.224 * 255.255.255.255 UH 0 0 0 eth0

  10.10.8.0 * 255.255.255.0 U 0 0 0 eth0

  127.0.0.0 * 255.0.0.0 U 0 0 0 lo

  default dgc8.njupt.edu 0.0.0.0 UG 0 0 0 eth0

  default dgc8.njupt.edu 0.0.0.0 UG 1 0 0 eth0

  [root@lee /root]#

  -----------------------------------------------------------------

  輸出結(jié)果中各個字段的含義是:

  · Destination表示路由的目標IP地址。

  · Gateway表示網(wǎng)關(guān)使用的主機名或者是IP地址。上面輸出的“*”表示沒有網(wǎng)關(guān)。

  · Genmask表示路由的網(wǎng)絡(luò)掩碼。在把它與路由的目標地址進行比較之前,內(nèi)核通過Genmask和數(shù)據(jù)包的IP地址進行按位“與”操作來設(shè)置路由。

  · Flags是表示路由的標志。可用的標志及其意義是:U表示路由在啟動,H表示target是一臺主機,G表示使用網(wǎng)關(guān),R表示對動態(tài)路由進行復(fù)位設(shè)置;D表示動態(tài)安裝路由,M表示修改路由,!表示拒絕路由。

  · Metric表示路由的單位開銷量。

  · Ref表示依賴本路由現(xiàn)狀的其它路由數(shù)目。

  · Use表示路由表條目被使用的數(shù)目。

  · Iface表示路由所發(fā)送的包的目的網(wǎng)絡(luò)。

  通過查看這些輸出信息,我們就可以方便地管理網(wǎng)絡(luò)的路由表了。

  二:netstat

  netstat命令是一個監(jiān)控TCP/IP網(wǎng)絡(luò)的非常有用的工具,它可以顯示路由表、實際的網(wǎng)絡(luò)連接以及每一個網(wǎng)絡(luò)接口設(shè)備的狀態(tài)信息。在計算機上執(zhí)行netstat后,其輸出結(jié)果如下所示:

  -----------------------------------------------------------------

  [root@lee /root]#netstat

  Active Internet connections (w/o servers)

  Proto Recv-Q Send-Q Local Address Foreign Address State

  Active UNIX domain sockets (w/o servers)

  Proto RefCnt Flags Types State I-Node Path

  Unix 5 [ ] DGRAM 460 /dev/log

  Unix 0 [ ] STREAM CONNECTED 173 @00000014

  Unix 0 [ ] DGRAM 662

  Unix 0 [ ] DGRAM 631

  Unix 0 [ ] DGRAM 544

  Unix 0 [ ] DGRAM 484

  Unix 0 [ ] DGRAM 470

  [root@lee /root]#

  -----------------------------------------------------------------

  從整體上看,netstat的輸出結(jié)果可以分為兩個部分:第一部分:是Active Internet connections,稱為有源TCP連接,在上面的輸出結(jié)果中,這一部分沒有內(nèi)容,表示暫時還沒有TCP連接。第二部分:是Active UNIX domain sockets,稱為有源Unix域套接口。輸出結(jié)果顯示的是Unix域套接口的連接情況:

  · Proto顯示連接使用的協(xié)議。

  · RefCnt表示連接到本套接口上的進程號。

  · Types顯示套接口的類型。

  · State顯示套接口當前的狀態(tài)。

  · Path表示連接到套接口的其它進程使用的路徑名。

  可以用netstat -a來查看所有套接字的狀態(tài),這在您調(diào)試網(wǎng)絡(luò)程序的時候是非常有用的。netstat -r將顯示路由表的內(nèi)容,一般還要同時指定“-n”選項,這樣可以得到數(shù)字格式的地址,也可顯示默認路由器的IP地址。使用netstat -i則將顯示所有的網(wǎng)絡(luò)接口信息。使用netstat還可以獲得當前的網(wǎng)絡(luò)狀態(tài)以及網(wǎng)絡(luò)的拓撲結(jié)構(gòu),這在實際中是非常有用的。

  三:tcpdump

  tcpdump命令用于監(jiān)視TCP/IP連接并直接讀取數(shù)據(jù)鏈路層的數(shù)據(jù)包頭。您可以指定哪些數(shù)據(jù)包被監(jiān)視、哪些控制要顯示格式。例如我們要監(jiān)視所有Ethernet上來往的通信,執(zhí)行下述命令:

  tcpdump -i eth0

  即使是在一個相對平靜的網(wǎng)絡(luò)上,也有很多的通信,所以我們可能只需要得到我們感興趣的那些數(shù)據(jù)包的信息。在一般情況下,TCP/IP棧只為本地主機接收入站的數(shù)據(jù)包綁定同時忽略網(wǎng)絡(luò)上的其它計算機編址(除非您使用的是一臺路由器)。當運行tcpdump命令時,它會將TCP/IP棧設(shè)置為 promiscuous模式。該模式可接收所有的數(shù)據(jù)包并使其有效顯示。如果我們關(guān)心的只是我們本地主機的通信情況,一種方法是使用“-p”參數(shù)禁止 promiscuous模式,還有一種方法就是指定主機名:

  tcpdump -i eth0 host hostname

  此時,系統(tǒng)將只對名為hostname的主機的通信數(shù)據(jù)包進行監(jiān)視。主機名可以是本地主機,也可以是網(wǎng)絡(luò)上的任何一臺計算機。下面的命令可以讀取主機hostname發(fā)送的所有數(shù)據(jù):

  tcpdump -i eth0 src host hostname

  下面的命令可以監(jiān)視所有送到主機hostname的數(shù)據(jù)包:

  tcpdump -i eth0 dst host hostname

  我們還可以監(jiān)視通過指定網(wǎng)關(guān)的數(shù)據(jù)包:

  tcpdump -i eth0 gateway Gatewayname

  如果你還想監(jiān)視編址到指定端口的TCP或UDP數(shù)據(jù)包,那么執(zhí)行以下命令:

  tcpdump -i eth0 host hostname and port 80

  該命令將顯示從每個數(shù)據(jù)包傳出的頭和來自主機hostname對端口80的編址。端口80是系統(tǒng)默認的HTTP服務(wù)端口號。如果我們只需要列出送到80端口的數(shù)據(jù)包,用dst port;如果我們只希望看到返回80端口的數(shù)據(jù)包,用src port。

  補充:常見網(wǎng)絡(luò)故障解決方法

  ip地址沖突:ip地址沖突是局域網(wǎng)中經(jīng)常出現(xiàn)的問題,有的用戶可能重做系統(tǒng)或其他原因丟失自己的IP地址,在重新寫IP的時候和其他人的IP地址一樣導(dǎo)致ip地址出錯,此時電腦右下角就會有個提示框提示你IP地址已經(jīng)有人用。部門網(wǎng)管應(yīng)該統(tǒng)計好部門人員的IP地址,當出現(xiàn)問題時可有資料可循,避免IP地址沖突。

  計算機網(wǎng)卡故障,一般的主機網(wǎng)卡都帶有網(wǎng)卡指示燈,網(wǎng)卡燈有兩種類型,一種是只有單燈,一種是雙燈。一般來說,單燈是綠色,而雙燈一個是綠色,一個是橙色(1000M網(wǎng)絡(luò),如黃色則是100MM網(wǎng)絡(luò))。單燈顯示的意思是,綠色燈亮表示網(wǎng)線物理連接正常。是常亮狀態(tài),在有數(shù)據(jù)交換時單燈情況下綠色燈會明暗閃爍。雙燈情況下,綠色燈亮同樣表示網(wǎng)線物理連接正常,是常亮狀態(tài),在有數(shù)據(jù)交換時橙色或黃色燈閃爍,而綠燈不變。查看網(wǎng)卡燈顯示是否正常,可以判斷網(wǎng)卡的好壞。拔掉網(wǎng)線網(wǎng)卡燈還顯示正常,網(wǎng)卡出故障需要更換。

  網(wǎng)線有問題,如果網(wǎng)線在幾臺計算機上連接無反映,換根網(wǎng)線后正常,即可判斷網(wǎng)線出了問題。網(wǎng)線一半問題有水晶頭生銹造成短路,網(wǎng)線中間出現(xiàn)斷路,水晶頭沒壓好出現(xiàn)問題等。這時需要測線儀來檢查網(wǎng)線。

  測線儀使用方法,將一根網(wǎng)線兩頭分別差入測線儀的網(wǎng)線接口,查看對應(yīng)各燈依次從1至8或8至1閃亮,再閃亮一次或兩次某一燈(即為該網(wǎng)線所在主機的路數(shù)),循環(huán)不止。

  如果遇到整個網(wǎng)絡(luò)出現(xiàn)問題,需要檢查交換機是否出現(xiàn)問題,到交換機所在機房檢查交換機是否有電,如果有電則檢查連接交換機的trunk口燈是否正常,如果不正常找到上聯(lián)交換機檢查是否正常。有的交換機trunk口連接收發(fā)器,檢查收發(fā)器是否正常。

  相關(guān)閱讀:計算機網(wǎng)絡(luò)分層及其功能

  物理層:利用傳輸介質(zhì)為數(shù)鏈路層提供物理連接,實現(xiàn)比特流的透明傳輸。實現(xiàn)相鄰計算機節(jié)點的比特流的透明傳送,盡可能屏蔽掉傳輸介質(zhì)和網(wǎng)路設(shè)備的差異。

  數(shù)據(jù)鏈路層:在物理層提供的比特流的基礎(chǔ)上,通過差錯控制、流量控制方法,將有差錯的物理鏈路變?yōu)闊o差錯的數(shù)據(jù)鏈路。

  網(wǎng)絡(luò)層:數(shù)據(jù)鏈路層的數(shù)據(jù)在這一層被轉(zhuǎn)化為數(shù)據(jù)報,經(jīng)過路徑選擇、分組組合、順序、進/出路由等控制,將數(shù)據(jù)從一個網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)到另一個網(wǎng)絡(luò)設(shè)備。

  傳輸層:向用戶提供可靠的端到端的差錯和流量控制,保證報文的正確傳輸。向高層屏蔽下層數(shù)據(jù)信息的傳輸,向用戶透明的傳送報文。

  會話層:組織和協(xié)調(diào)兩個會話進程的通信,并對數(shù)據(jù)通信進行管理。

  表示層:處理用戶信息的表示問題,如編碼,數(shù)據(jù)格式轉(zhuǎn)換,加密解密等

  應(yīng)用層:完成網(wǎng)絡(luò)中應(yīng)用程序和操作系統(tǒng)之間的聯(lián)系,建立和結(jié)束使用者之間的聯(lián)系。

4009377