OSI 七層模型和 TCP/IP 四層模型 及 相關網絡協議


 

 

簡介

OSI 是理論上的模型,也就是一個統一的國際標准,現在的很多網絡設備或者是網絡協議都不同程度的精簡了自己的所謂的模型,那么他們為了自己的通訊兼容都會參考這個OSI模型

TCP/IP 包括:

  TCP/IP 模型就是現在的很多廠商同意參考的一個很工業化的模型!多數廠在不做特殊設備的情況下都會按照這個模型來做,這樣做最大的好處就是保證了不同設備可以使用相同的網絡。也就是所謂的兼容性!

  TCP/IP 協議簇規定了TCP、UDP、ICMP、IGMP、IP、ARP、RARP(廢棄)這些協議。

  TCP/IP 支持多種不同的鏈路層(網絡接口層)協議,具體使用哪種協議取決於所使用的硬件,包括以太網、IEEE802.11、FDDI等。


注:Ethernet(以太網)協議是有線網絡;IEEE 802.11協議是無線網絡,IEEE 802.11提供了一個標准,wi-fi是其具體的實現。

 

 

 

 

協議說明:

ARP 和 RARP:

  有些地方把ARP協議划到網絡層,是因為ARP協議屬於TCP/IP協議簇。在TCP/IP模型中,它所有定義的協議是在網絡層上的。按照OSI的標准,數據在傳遞時每層會加上自己的信息。當網絡層的IP包進入鏈路層時,鏈路層通過ARP協議添加鏈路信息,而這不是網絡層的功能,所以認為ARP是鏈路層的。可以這樣做,在OSI模型中ARP協議屬於鏈路層;而在TCP/IP模型中,ARP協議屬於網絡層

  當IP報文傳到鏈路層,如果鏈路層是以太網協議,要求鏈路層包頭要有主機的MAC地址,所以會先通過ARP協議(ARP請求和應答)獲得主機MAC地址,然后把它添加到鏈路層包頭,最后整個數據包再通過網線把數據傳輸出去。

  ARP協議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。

  RARP協議允許局域網的物理機器從網關服務器的 ARP 表或者緩存上請求其 IP 地址。網絡管理員在局域網網關路由器里創建一個表以映射物理地址(MAC)和與其對應的 IP 地址。當設置一台新的機器時,其 RARP 客戶機程序需要向路由器上的 RARP 服務器請求相應的 IP 地址。假設在路由表中已經設置了一個記錄,RARP 服務器將會返回 IP 地址給機器,此機器就會存儲起來以便日后使用。注意,RARP協議曾經作為逆向的地址解析協議和ARP配合使用,但是現在RARP協議已經被淘汰,在DHCP(動態主機配置協議)協議中已經包含了RARP的功能

 

ARP應用實例:

  主機A要發數據給主機B,主機A在封裝Frame(OSI的第二層用的數據格式),要封裝對方的MAC,查找ARP表發現不知道B的MAC,只知道IP,它就發送一個ARP包,源IP是自己的,目的IP是B的,源MAC是自己的,目的MAC是廣播的。然后這個ARP請求在A所在的內網被廣播,當其他機器接到這個包時,用目的IP和自己的IP比較,不是的話就丟棄;是的話,B接收時,發現IP和自己的一樣,就應答這個請求,把自己的MAC送給A。如果B是其他子網的主機,那么路由器根據子網掩碼會判斷出B是其他子網,然后路由器把自己的MAC返回給A,A以后再給B發包時,目的MAC封裝的就是路由器的。總之,A和B如果是同一子網,A發送的目的MAC就是B的,否則A發送的目的MAC就是路由器的。

ICMP:

  ICMP封裝在 IP 數據報內部,如下:

IP 首部 ICMP報文

  ICMP報文類型可以分為兩類,一類是錯誤信息,這一類信息可用來診斷網絡故障。我們知道IP協議的工作方式是”best effort”。如果IP包沒有被傳輸到目的地,或者IP包發生錯誤,IP協議本身不會做進一步的努力。但是上游發送IP包的主機和接力的路由器並不知道下游發生了錯誤和故障,它們可能繼續發送IP包。通過ICMP包,下游的的路由器和主機可以將錯誤信息匯報給上游,從而讓上游的路由器和主機進行調整,需要主要的是,ICMP只提供特定類型的錯誤匯報,它不能幫助IP協議成為”可靠(reliable)”的協議。另一類信息是咨詢性質的,比如某台計算機詢問路徑上的每個路由器都是誰,然后各個路由器同樣用ICMP包回答。

  備注:ICMP基於IP協議,也就是說,一個ICMP包需要封裝在IP包中,然后在互聯網傳送。ICMP是IP套裝的必須部分,也就是說,任何一個支持IP協議的計算機,都要實現ICMP。

常見的ICMP報文類型:

1、回顯請求和應答,ping就是用了這類型ICMP包

2、源站被抑制

3、目的不可達

4、超時,traceroute就是用了這類型ICMP包

5、重新定向

6、參數問題

作用:

ICMP的全稱是 Internet Control Message Protocol 。ICMP就是一個“錯誤偵測與回報機制”,其目的就是用來檢測網絡通信故障和實現鏈路追蹤,最典型的應用就是PING和tracerooute。

  PING:

    通過發送回送請求報文和回送回答報文來檢測源主機到目的主機的鏈路是否有問題,目的地是否可達,以及通信的延遲情況。

  traceroute:

    通過發送探測報文來獲取鏈路地址信息。第一個探測報文TTL為1,到達第一個路由器時,TTL減1為0所以丟掉這個探測包,同時向源主機發回ICMP時間超過報文,這時源主機就獲得了第一個路由器的IP地址;接着源主機發送第二個探測報文,TTL增1為2,到達第一個路由器TTL減1為1並轉發探測包到第二個路由器,這時TTL減1為0,丟掉這個探測包並向源主機發回ICMP時間超過報文,源主機就獲得了第二個路由器的IP地址;以此類推,直到探測報文到達traceroute的目的地,這時源主機就獲得了到目的地的每一跳路由的IP地址。

總結:

總結

  ICMP協議是IP協議的排錯助手,它可以幫助人們及時發現IP通信中出現的故障。基於ICMP的ping和traceroute也構成了重要的網絡診斷工具。然而需要注意的是,盡管ICMP的設計是出於好的意圖,但ICMP卻經常被黑客借用進行網絡攻擊,比如利用偽造的IP包引發大量的ICMP回復,並將這些ICMP包導向受害主機,從而形成DoS攻擊。而redirect類型的ICMP包可以引起某個主機更改自己的routing table,所以也被用做攻擊工具。許多站點選擇忽視某些類型的ICMP包來提供自身的安全性.

 

IGMP:

IGMP 是Internet Group Management Protocol(互聯網組管理協議)的簡稱。它是TCP/IP 協議族中負責IP 組播成員管理的協議,用來在IP 主機和與其直接相鄰的組播路由器之間建立、維護組播組成員關系。 

 

IP:

  所有的TCP、UDP、ICMP 和 IGMP 數據都以 IP 數據報格式傳輸

  IP 層既可以配置成路由器的功能,也可以配置成主機的功能。IP 層在內存中有一個路由表。當 IP 層收到數據報,IP 層首先檢查目的 IP 地址是否為本機的 IP 地址之一或 廣播地址,如果是,數據報就被送到有 IP 首部協議字段所指定的協議模塊進行處理;如果不是這些地址,如果 IP 層被設置為路由器的功能,那么對數據報進行轉發,否則數據報被丟棄。

 

DNS:

  把域名轉換為唯一的 IP 地址,DNS同時占用UDP和TCP端口53

 

FTP:

  FTP 客戶端和 FTP 服務器之前可以進行文件傳輸

 

Telnet:

  提供遠程登錄功能,使得用戶在本地主機上運行Telnet客戶端,就可登錄到遠端的Telnet服務器. 在本地輸入的命令可以在服務器上運行,服務器把結果返回到本地,如同直接在服務器控制台上操作. 這樣就可以在本地遠程操作和控制服務器。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM