天天看點

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

本節書摘來異步社群《非常網管:網絡管理從入門到精通(修訂版)》一書中的第1章,第1.4節,作者: 崔北亮 , 陳家遷,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

非常網管:網絡管理從入門到精通(修訂版)

tcp/ ip是目前最成功、使用最頻繁的互連協定。雖然現在已有許多協定都适用于網際網路,但隻有tcp/ip最突出,因為它在網絡互連中用得最為廣泛。

tcp/ip參考模型是4層結構,下面結合sniffer軟體來介紹tcp/ip模型的4層結構。

實驗1-5 使用sniffer軟體監控網絡

(1)實時監控網絡。

step1 啟動sniffer後,單擊sniffer中的“matrix”(矩陣)圖示,如圖1-4-1中箭頭所指。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

這裡顯示網卡接收到的資料包,預設是以mac位址的形式顯示,如圖1-4-2所示。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

step2 資料包以mac位址形式顯示時,感覺不是很直覺。單擊如圖1-4-2所示的“ip”頁籤(如箭頭所指),将會以ip的形式顯示網卡收到的資料包,從這裡可以直覺地看出每個ip發送資料包的情況,如圖1-4-3所示。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP
注 意 如果連接配接到一個新的網絡環境,在查詢該網絡使用的ip位址段時,那麼可以使用該功能。如圖1-4-3所示,捕獲的包中可以顯示該網段使用的ip位址,至于子網路遮罩,一般區域網路中使用的都是255.255.255.0,網關一般都是1或254,dns可以随便配置。

step3 單擊如圖1-4-3所示的“detail”圖示(如箭頭所指),檢視封包的詳細情況。如圖1-4-4所示,單擊标題欄(箭頭所指的那一行)中的“protocol”、“host 1”、“packets”、“bytes”、“bytes”、“packets”、“host 2”等,可以分别實作以該列進行升序/降序排列。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP
如果區域網路是通過交換機互連的,要捕獲區域網路中所有與外部通信的包,則可以配置端口鏡像,把上連端口的包鏡像到連接配接sniffer主機的交換機端口,詳見第4部分的實驗e交換端口分析。

(2)捕獲資料包。

step1 在sniffer中單擊“start”按鈕,啟動資料包捕獲,如圖1-4-5所示。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

step3 在圖1-4-5中,“stop and display”按鈕變亮,表示已經捕獲到資料包了。單擊此按鈕停止捕獲并顯示資料包,如圖1-4-6所示。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

單擊圖1-4-6中的“decode”頁籤,顯示捕獲包的詳細情況,如圖1-4-7所示。

step4 最初的兩個資料是dns的包,第一個包是客戶機192.168.1.200去往dns伺服器218.2.135.1的dns查詢包,客戶機需要從dns伺服器獲知“www.njut.edu.cn”所對應的ip位址,才能繼續後面的通路。第二個包是dns伺服器傳回給客戶機的dns應答包,其中“stat=ok”說明域名解析已經成功。接下來就是“www.njut.edu.cn”這台伺服器與客戶機之間的直接對話了。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

(3)過濾資料包。

在如圖1-4-7所示的視窗中,經常會捕獲到很多資料包,但大多數都是無關的資料包,需要采用過濾技術才能過濾出有用的資料包。過濾資料包分為兩個步驟:定義過濾條件和應用過濾條件。這裡以過濾arp包為例進行講解。

step1 定義過濾條件。如圖1-4-7所示的資料包捕獲視窗中,單擊右鍵,在快捷菜單中選擇“define filter”指令,如圖1-4-8所示。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

打開如圖1-4-9所示的“define filter – display”對話框,選中“arp”複選框,單擊“确定”按鈕,完成過濾條件設定。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

step2 應用過濾條件。在如圖1-4-8所示的快捷菜單中選擇“select filter”,打開如圖1-4-10所示的對話框,選擇“display”下的“default”,右邊顯示該項是針對arp進行過濾的。單擊如圖1-4-10所示的“确定”按鈕,進行過濾。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

過濾後的視窗如圖1-4-11所示,可以看到過濾後,隻有arp的包被顯示。與此類似,還可以基于mac位址、ip位址、udp、tcp、http等進行過濾。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

如圖1-4-7所示,任選一條http的資訊,可以看到第二個子視窗中顯示此http資訊由4個層組成。接下來詳細介紹tcp/ip模型的4層。

(1)網絡通路層。如圖1-4-7所示的“dlc:”層,包含了資料鍊路層的位址,如用在以太網上就是mac位址。展開此層,可以看到資料包的源mac、目的mac位址。此層是tcp / ip模型的最低層,負責接收從ip層傳來的ip資料報,并将ip資料報通過低層實體網絡發送出去,或者從低層實體網絡上接收實體幀,解封裝出ip資料報,交給ip層處理。需要注意,當一台主機通路外網的某台伺服器時,目的mac并不是目标伺服器的mac位址,而是路由器區域網路接口的mac位址。因為mac位址僅用于區域網路内的尋址,假設目的mac就是目标伺服器的mac,當路由器收到這樣的封包,通過比較目的mac位址,發現不是發往本接口時,便把封包丢棄,這樣資料封包也就無法通過路由器,更無法到達目标伺服器了。因為目的mac位址是路由器接口的mac位址,路由器接收下這個封包并解封裝後,交給上一層處理,路由器查詢路由表,決定轉發接口,把資料包交換到外出端口,再重新封裝後發出去。如圖1-4-7所示,驗證目的mac位址。

(2)網際網路層。如圖1-4-7所示的“ip:”層,包含了網絡層的位址,展開此層,可以看到資料包的源ip、目的ip位址。它的主要功能包括3個方面。第一,處理來自傳輸層的分組發送請求。将分組裝入ip資料報,填充報頭,選擇去往目的節點的路徑,然後将資料報發往适當的網絡接口。第二,處理輸入資料報。首先檢查資料報的合法性,然後進行路由選擇,假如該資料報已到達目的節點(本機),則去掉報頭,将ip封包的資料部分交給相應的傳輸層協定;假如該資料報尚未到達目的節點,則轉發該資料報。第三,處理icmp(internet control message protocol,網際控制資訊協定)封包。即處理網絡的路由選擇、流量控制和擁塞控制等問題。tcp/ip網絡模型的網際網路層在功能上非常類似于osi參考模型中的網絡層。

(3)傳輸層。如圖1-4-7所示的“tcp:”層,包含了傳輸層的端口号,展開此層,可以看到資料包的源端口、目的端口。tcp/ip參考模型中傳輸層的作用與osi參考模型中傳輸層的作用是一樣的,即在源節點和目的節點的兩個程序實體之間提供可靠的端到端的資料傳輸。為保證資料傳輸的可靠性,傳輸層規定接收端必須發回确認,如果沒有收到确認則假定分組丢失,再次發送,若幹次重傳後,仍然失敗,則認為目标不可達,放棄重傳。

tcp/ip模型提供了兩個傳輸層協定:傳輸控制協定tcp和使用者資料報協定udp。tcp是一個可靠的面向連接配接的傳輸層協定,它将某節點的資料以位元組流形式無差錯投遞到網際網路的另一台機器上。發送方的tcp将使用者交來的位元組流劃分成獨立的封包并交給網際網路層進行發送,而接收方的tcp将接收的封包重新裝配交給接收使用者。tcp同時處理有關流量控制的問題,以防止快速的發送方淹沒慢速的接收方。使用者資料報協定udp是一個不可靠的、無連接配接的傳輸層協定,udp将可靠性問題交給應用程式解決。udp主要面向請求/應答式的交易型應用,一次交易往往隻有一來一回兩次封包交換,假如為此而建立連接配接和撤銷連接配接,開銷是相當大的。這種情況下使用udp就非常有效。另外,udp也應用于那些對可靠性要求不高,但要求網絡的延遲較小的場合,如話音和視訊資料的傳送。

(4)應用層。如圖1-4-7所示的“http”層,即應用層,應用層包括所有的高層協定。早期的應用層有遠端登入協定、檔案傳輸協定和簡單郵件傳輸協定等。遠端登入協定允許使用者登入到遠端系統并通路遠端系統的資源,而且像遠端機器的本地使用者一樣通路遠端系統。檔案傳輸協定提供在兩台機器之間進行有效的資料傳送的手段。簡單郵件傳輸協定最初隻是檔案傳輸的一種類型,後來慢慢發展成為一種特定的應用協定。最近幾年出現了一些新的應用層協定,如用于将網絡中主機名字映射成網絡位址的域名服務;用于傳輸網絡新聞的網絡新聞傳輸協定(nntp,network news transfer protocol)和用于從www網上讀取頁面資訊的http。本書将在第2部分介紹有關dns、ftp、smtp、http等伺服器的搭建。

在tcp/ip網絡中,ip采用無連接配接的資料報機制,對資料進行“盡力而為的傳遞”,即隻管将封包盡力傳送到目的主機,無論傳輸正确與否,不做驗證,不發确認,也不保證封包的順序。tcp/ip的可靠性展現在傳輸層,傳輸層協定之一的tcp提供面向連接配接的服務(傳輸層的另一個協定udp是無連接配接的)。因為傳輸層是端到端的,是以tcp/ip的可靠性被稱為端到端可靠性。

iso/osi參考模型是在其協定被開發之前設計出來的。這意味着iso/osi模型并不是基于某個特定的協定集而設計的,因而它更具有通用性。但另一方面,也意味着iso/osi模型在協定實作方面存在某些不足。而tcp/ip模型正好相反,先有協定,模型隻是現有協定的描述,因而協定與模型非常吻合。問題在于tcp/ip模型不适合其他協定棧。是以,它在描述其他非tcp/ip網絡時用處不大。下面介紹兩種模型的具體差異。其中顯而易見的差異是兩種模型的層數不一樣:iso/osi模型有7層,而tcp/ip模型隻有4層。兩者都有傳輸層和應用層,但其他層是不同的,兩種模型之間的對應關系如圖1-4-12所示。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

ip位址是用來辨別網絡中的一個通信實體,如一台主機,或者是路由器的某一個端口。而在基于ip協定網絡中傳輸的資料包,也都必須使用ip位址來進行辨別,如同寫一封信,要标明收信人的通信位址和發信人的位址,郵政從業人員通過該位址來決定郵件的去向。

在計算機網絡裡,每個被傳輸的資料包也要包括一個源ip位址和一個目的ip位址。當該資料包在網絡中進行傳輸時,這兩個位址要保持不變(有網絡位址轉換和代理的情況例外,本書第2部分及第4部分都會介紹網絡位址轉換的配置執行個體),以確定網絡裝置總能根據确定的ip位址,将資料包從源通信實體送往指定的目的通信實體,以及資料包從目的通信實體傳回源通信實體。

目前,ip位址使用32位二進制位址格式,為友善記憶,通常使用以點号分隔的十進制數來表示,如202.119.248.65。一個ip位址主要由兩部分組成:一部分是用于辨別該位址所從屬的網絡号;另一部分用于指明該網絡上某個特定主機的主機号。網絡号由internet權力機構配置設定,主機位址由各個網絡的管理者統一配置設定。是以,網絡位址的唯一性與網絡内主機位址的唯一性確定了ip位址的全球唯一性(其中保留給私網使用的位址段除外,私網使用的位址段有10.0.0.0~10.255.255.255、172.16.0.0~172.31.255.255、192.168.0.0~192.168.255.255)。

為了給不同規模的網絡提供必要的靈活性,ip位址的設計者将ip位址空間劃分為5個不同的位址類别,如表1-4-1所示,其中a、b、c三類最為常用,d類用于多點傳播,e類用于科研。

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

規定a類中的0不允許使用,127作為測試tcp/ip的環回位址,也不可以使用,是以a類實際可用的位址是1~126。

如表1-4-1所示,a類位址的網絡位是8位,在子網路遮罩的二進制格式中,前面的8位是“1”,子網路遮罩中“1”表示的是網絡位,“0”表示的是主機位,是以a類位址的預設子網路遮罩是255.0.0.0。同理,b類位址的預設子網路遮罩中,“1”的位數是16位,換成十進制就是255.255.0.0;c類位址的預設子網路遮罩中,“1”的位數是24位,換成十進制就是255.255.255.0。

在講述子網劃分之前,先來看一個執行個體,如圖1-4-13所示,4台計算機接在一個hub(集線器)上,ip和子網路遮罩配置如圖中所示。圖中的“/24”表示的是計算機ip位址的網絡位有24位,主機位是8位(32−24=8),相當于子網路遮罩是255.255.255.0。哪些計算機之間可以通信?判斷的依據是什麼?如何才能讓它們全部都可以互訪?

《非常網管:網絡管理從入門到精通(修訂版)》一1.4 TCP/IP

結果是pc1和pc2為一組,pc3和pc4為一組,組内計算機之間可以通信,組間計算機之間不能通信。判斷的依據是:同一子網的計算機可以直接通信,不同子網的計算機不可以直接通信,處在不同子網中的計算機間如需通信,需要通過一個三層裝置(也就是有路由功能的裝置)。

那麼如何判斷計算機是否在同一個子網呢?先把ip位址和子網路遮罩換算成二進制,然後進行“與”運算,也就是二進制的按位取小運算,得出一台計算機所在的網絡号,如果兩台計算機的網絡号相同,則它們處在同一子網;如果網絡号不同,則它們處在不同子網。把每台計算機的ip位址與子網路遮罩進行按位“與”運算,得出pc1的網絡号192.168.1.0/24,pc2的網絡号是192.168.1.0/24,pc3的網絡号192.168.2.0/24,pc4的網絡号192.168.2.0/24,pc1和pc2處在同一子網,pc3和pc4處在同一子網。如果192.168.1.0網絡中的計算機需要通路192.168.2.0網絡中的計算機,那麼就需要通過一個三層裝置,而hub處于osi七層模型中的第一層,即實體層,不具備路由功能,無法為不同子網中的計算機提供路由功能。

如何才能讓4台計算機互相都可以通信呢?方法有很多種,這裡簡單列舉3種。方法一,修改pc3、pc4的ip位址為192.168.1.3、192.168.1.4,這樣4台計算機就處在同一子網中,互相之間可以直接通信;方法二,修改4台計算機的子網路遮罩為“/22”,即255.255.252.0,這樣4台計算機就都處在192.168.0.0/22子網中了;方法三,把集線器換成三層交換機,并把接pc1、pc2的交換機端口劃到一個vlan(虛拟區域網路,在本書第3部分會更詳細深入地介紹vlan的配置),并給此vlan配置設定ip位址192.168.1.254,把pc1和pc2的網關設成192.168.1.254,把連接配接pc3、pc4的交換機端口劃到另一個不同的vlan,并給此vlan配置設定ip位址192.168.2.254,把pc3和pc4的網關設成192.168.2.254,這樣4台計算機之間也可互相通信了。

需要注意,在做子網劃分的時候,主機位全“0”、全“1”的ip位址都不可以使用,全“0”的是子網位址,全“1”的是子網廣播位址,如192.168.1.0/24和192.168.1.255/24這兩個ip位址就分别代表網絡位址和廣播位址,都不可以配置給計算機使用,192.168.1.0/24網絡中可用的ip位址數是256−2=254個,即每個子網中可用的ip位址數量是:2主機位數−2。

繼續閱讀