天天看點

《精通Wireshark》—第1章1.3節TCP/IP模型的分層

本節書摘來自異步社群《精通wireshark》一書中的第1章1.3節tcp/ip模型的分層,作者【印度】charit mishra(夏裡特 米什拉),更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

1.3 tcp/ip模型的分層

如下所示,tcp/ip模型中包含了4層,每一層均包含了一系列對應的協定。每個協定都自己的作用,這些協定也都是通過這個模型來對接業界标準的。

《精通Wireshark》—第1章1.3節TCP/IP模型的分層

第一層是應用層,這一層直接和使用者及其他網絡層協定進行互動;這一層的重點在于将資料通過使用者可以了解的方式呈現給使用者。應用層也會追蹤使用者連接配接的web會話,并且使用一系列的協定幫助應用層連接配接到tcp/ip模型中的其他各層。在本書當中,我們會介紹下面幾種非常常用的應用層協定:

超文本傳輸協定(http);

檔案傳輸協定(ftp);

簡單網絡管理協定(snmp);

簡單郵件傳輸協定(smtp)。

第二次是傳輸層。這一層唯一的作用是建立兩台主機通信時使用的套接字(讀者應該已經意識到網絡套接字對于通信的重要性了),這是在兩台裝置之間建立出一條獨立連接配接的關鍵。

兩台主機對于同一個通信執行個體可以建立多條連接配接,這是将ip位址和端口号結合起來實作的。在廣域網通信中需要使用ip位址(而在區域網路通信中,資料傳輸實際上是通過mac位址來實作的),而一台裝置之是以可以與多台裝置通過多條信道進行通信,這完全是借助端口号來實作的。除了某些限制使用的端口号之外,每個系統都可以在通信的過程中使用一個随機的端口号。

這一層也會充當兩台主機之間通信的骨幹。這一層中最常用的協定是tcp和udp,它們的概念分别如下所示。

tcp:這是一種面向連接配接的協定,常常稱為可靠協定。首先,這種協定會在兩台主機之間建立一條專用的通信信道,然後再開始傳輸資料。接下來,發送方會通過這條信道發送等分的資料段,而接收方則會針對每個接收到的資料段發送确認消息。一般來說,發送方會等待一段時間,然後再次發送同一個資料段,以確定接收方能夠接收這個資料段。比如,在使用者下載下傳檔案的時候,就是由tcp進行管理,并且確定每個比特位都能成功傳輸的。

udp:這是一種無連接配接的協定,術語中常常稱之為不可靠通信協定。不過這種協定十分簡單,因為它不會建立專用的信道,發送方隻負責向目的裝置發送資料段,但并不關心接收方是不是接收到了資料。這種通信的形式其實并不會影響通信的品質;因為這種通信形式都滿足了發送方向接收方傳輸資料的需求。比如,當使用者在玩區域網路遊戲時,有幾個比特位丢失其實并不會影響使用者的遊戲體驗,是以使用者體驗也不會是以而降低。

第三層是網際網路層,這一層關注的重點是資料的往返傳輸。這一層最主要的協定就是ip(網際網路協定),它同時也是這一層最重要的協定。ip可以給資料提供路由功能,正是因為ip協定提供的路由功能,很多資料包才能最終到達自己的目的地。這一層還包括一些其他的協定,如icmp和igmp。

最後一層是鍊路層(這一層常常被人們稱為網絡接口層),這一層與網絡硬體相連。雖然tcp/ip協定棧中并沒有在這一層定義任何協定,但這一層其實實施了很多協定,如位址解析協定(arp)和點到點協定(ppp)。這一層關注的是資訊的比特資料如何在實體線纜中進行傳輸。這一層會建立并終結連接配接,會将信号由模拟信号轉化為數字信号,反之亦然。網橋和交換機這類裝置就工作在這一層。

用戶端和伺服器将ip位址和mac位址結合起來使用是通信過程的核心。在這兩個位址中,ip位址是網關配置設定給裝置或者由管理者靜态配置設定的,而mac位址則來自于網絡接口卡(nic),每一個參與主機通信的裝置都擁有mac位址。在資料從應用層向鍊路層處理的過程中,會有很多資料以資料標頭部或資料包尾部的形式添加到傳輸的資料上,這需要tcp/ip模型中的不同分層互相協調。添加資料標頭部的處理過程稱為資料封裝,網絡模型會在這個過程中的最後建立出協定資料單元(pdu)。

協定資料單元中包括要發送的資訊,以及各個協定以頭部或尾部的形式向資料包添加的資訊。在pdu到達最底層的時候,它就已經封裝好了要進行傳輸所必須具備的所有資訊。當資料到達目的裝置的時候,封裝的頭部和尾部的資訊就會在tcp/ip模型自底向上的處理過程中,被目的裝置逐個摘除。

圖1-1所示為封裝的過程。

《精通Wireshark》—第1章1.3節TCP/IP模型的分層

繼續閱讀