1. 程式人生 > >網路理論知識1(四層、七層網路模型)

網路理論知識1(四層、七層網路模型)

一、TCP/IP四層網路模型

TCP/IP分層模型(TCP/IP Layening Model)被稱作因特網分層模型(Internet Layering Model)、因特網參考模型(Internet Reference Model)。圖2表示了TCP/IP分層模型的四層。
  ┌────────────┐┌─┬─-┬─-┬─┬─-┬─┬─-┬─┬─-┬─┬─-┐
  │          ││D│F│W│F│H│G│T│I│S│U│ │
  │          ││N│I│H│T│T│O│E│R│M│S│其│
  │第四層,應用層      ││S│N│O│P│T│P│L│C│T│E│ │
  │          ││ │G│I│ │P│H│N│ │P│N│ │
  │          ││ │E│S│ │ │E│E│ │ │E│它│
  │          ││ │R│ │ │ │R│T│ │ │T│ │
  └────────────┘└─┴─-┴─-┴─┴─-┴─┴─-┴─┴─-┴─┴─-┘
  ┌────────────┐┌─────────┬───────────┐
  │第三層,傳輸層 ││      TCP    │  UDP     │
  └────────────┘└─────────┴───────────┘
  ┌────────────┐┌─────┬─────┬─────────┐
  │        ││     │ICMP│       │
  │第二層,網間層 ││     └─────┘        │
  │        ││       IP         │
  └────────────┘└─────────────────────┘
  ┌────────────┐┌──────────┬───────────┐
  │第一層,網路介面   ││ARP/RARP│  其它     │
  └────────────┘└──────────┴───────────┘
      圖2 TCP/IP四層參考模型 
  TCP/IP協議被組織成四個概念層,其中有三層對應於ISO參考模型中的相應層。ICP/IP協議族並不包含物理層和資料鏈路層,因此它不能獨立完成整個計算機網路系統的功能,必須與許多其他的協議協同工作。
  TCP/IP分層模型的四個協議層分別完成以下的功能:

第一層 網路介面層

網路介面層包括用於協作IP資料在已有網路介質上傳輸的協議。

協議:ARP,RARP

第二層 網間層

網間層對應於OSI七層參考模型的網路層。負責資料的包裝、定址和路由。同時還包含網間控制報文協議(Internet Control Message Protocol,ICMP)用來提供網路診斷資訊。

協議:本層包含IP協議、RIP協議(Routing Information Protocol,路由資訊協議),ICMP協議。

第三層 傳輸層

傳輸層對應於OSI七層參考模型的傳輸層,它提供兩種端到端的通訊服務。

其中TCP協議(Transmission Control Protocol)提供可靠的資料流運輸服務,UDP協議(Use Datagram Protocol)提供不可靠的使用者資料報服務。

第四層 應用層

應用層對應於OSI七層參考模型的應用層和表達層。

因特網的應用層協議包括Finger、Whois、FTP(檔案傳輸協議)、Gopher、HTTP(超文字傳輸協議)、Telent(遠端終端協議)、SMTP(簡單郵件傳送協議)、IRC(因特網中繼會話)、NNTP(網路新聞傳輸協議)等。

二、協議詳解

ARP:

ARP:將32位的IP地址轉換為48位的實體地址。

IP地址是網路層的地址,連上網際網路的每一臺主機的每一個介面都會有一個IP地址,每臺主機的每個網絡卡均有唯一的實體地址,實體地址在生產時就已經定死,無法改變,而每個網絡卡的IP地址是可以改變的(例如連上不同的wifi,IP地址也會不同)。

為什麼有了IP地址還要有MAC地址,有MAC地址還要有IP地址?

首先要明白,物理網路是有許多結構的,不同的物理網路具有不同的mac地址格式,為了讓不同的網路進行通訊,那麼就使用統一的IP地址好了,

mac地址是資料鏈路層的地址,並且mac地址出現時間比IP地址要早,保留mac地址很可能是為了向後相容已有的網絡卡晶片,同時,並不是所有的網路都使用IP協議

ARP報文格式如下:

硬體型別(16位):指定實體地址的型別,1表示乙太網。

上層協議型別(16位):指定要將MAC地址對映成什麼協議的地址。0x0800表示IP地址。

MAC地址長度(8位):指定MAC地址的長度,單位是位元組。

協議地址長度(8位):指定協議地址的長度,單位為位元組。

操作型別:1表示ARP請求、2表示ARP迴應、3表示RARP請求,4表示RARP迴應。

接下來為傳送源的實體地址和協議地址(由於迴應時要知道傳送個誰,以此來封裝以太幀),目的實體地址和協議地址。

封裝ARP請求時,傳送源除了目的實體地址外都會填寫。

當路由器或主機選擇了某條路由時,首先會查詢ARP快取,若快取中有對應IP地址的實體地址,則以此封裝以太幀,否則會廣播(為二層廣播)ARP報文,每個主機接收到ARP請求報文後,會快取傳送源的IP——MAC對到ARP快取中,目的主機會發送ARP迴應(此時為單播),當傳送源接收到迴應時,會將目的方的IP——MAC對存放在ARP快取中。在點到點的物理連線中,是不會用到ARP報文的,在啟動時雙方都會通告對方自己的IP地址,此時物理層的封裝不需要MAC地址。windows上可以使用arp -a檢視本機的ARP快取。ARP快取中的每個條目的最大存活時間為20分鐘(從條目建立時開始計時)。

ARP代理:

之前說ARP請求是廣播的,我們知道路由器是分割廣播域的(這部分在CCNA總結中會講),如果我們要查詢的IP地址在外網怎麼辦?此時就需要ARP代理,當傳送源廣播ARP請求時,本地網路上不會有主機迴應(因為IP地址是外網的),此時路由器會將回應該請求,則傳送源誤認為路由器就是目的主機,會將報文全部轉發給它,在由路由器轉發報文,則該路由器就被稱為ARP代理。

免費ARP:

在主機開機配置時,會發送一個目的IP地址為自己IP地址的ARP請求報文,該報文稱為免費ARP,其作用如下:

1、讓主機確認本地網路上是否有與自己IP地址相同的主機,若有,則ICMP錯誤報文被返回。

2、若接收主機ARP快取中本身就有傳送源主機的IP——MAC對,則會更新,否則,會快取傳送源的IP——MAC對。

ICMP:

ICMP協議及報文格式

ICMP(Internet Control Message Protocol)因特網控制報文協議。它是IPv4協議族中的一個子協議,用於IP主機、路由器之間傳遞控制訊息。控制訊息是在網路通不通、主機是否可達、路由是否可用等網路本身的訊息。這些控制訊息雖然不傳輸使用者資料,但是對於使用者資料的傳遞起著重要的作用。
ICMP協議與ARP協議不同,ICMP靠IP協議來完成任務,所以ICMP報文中要封裝IP頭部。它與傳輸層協議(如TCP和UDP)的目的不同,一般不用來在端系統之間傳送資料,不被使用者網路程式直接使用,除了想Ping和Tracert這樣的診斷程式。

ICMP訊息型別

ICMP報告無法傳送的資料報的錯誤,並幫助對這些錯誤進行疑難解答。例如,如果IPv4不能講資料報傳送到目標主機,則路由器上的或目標主機上的ICMP會向主機發送一條“無法到達目標”訊息。下表為最常見的ICMP訊息。

ICMP訊息型別 用途說明
回顯請求 Ping工具通過傳送ICMP回顯訊息檢查特定節點的IPv4連線以排查網路問題。型別值為0
回顯應答 節點發送回顯答覆訊息響應ICMP回顯訊息。型別值為8
重定向 路由器傳送“重定向”訊息,告訴傳送主機到目標IPv4地址更好的路由。型別值為5
源抑制 路由器傳送“源結束”訊息,告訴傳送主機它們的IPv4資料報將被丟棄——因為路由器上發生了擁塞。於是,傳送主機將以較低的頻度傳送資料報。型別值為4
超時 這個訊息有兩種用途。第一,當超過IP生存期時向傳送系統發出錯誤資訊。第二,如果分段的IP資料報沒有在某種期限內重新組合,這個訊息將通知傳送系統。型別值為11
無法到達目標 路由器和目標主機發送“無法到達目標”訊息,通知傳送主機它們的資料無法傳送。型別值為3

其中無法到達目標訊息中可以細分為一下幾項

無法到達目標訊息 說明
不能訪問主機 路由器找不到目標的IPv4地址的路由時傳送“不能訪問主機”訊息
無法訪問協議 目標IPv4節點無法將IPv4報頭中的“協議”欄位與當前使用的IPv4客戶端協議相匹配時會發送“無法訪問協議”訊息
無法訪問埠 IPv4節點在UDP報頭中的“目標埠”欄位與使用該UDP埠的應用程式相匹配時傳送“無法訪問埠”訊息
需要分段但設定了DF 當必須分段但傳送節點在IPv4報頭中設定了“不分段(DF)”標誌時,IPv4路由器會發送“需要分段但設定了DF”訊息

ICMP協議只是試圖報告錯誤,並對特定的情況提供反饋,但最終並沒有使IPv4成為一個可靠的協議。ICMP訊息是以未確認的IPv4資料報傳送的,它們自己也不可靠。

ICMP報頭格式

ICMP報文包含在IP資料報中,IP報頭在ICMP報文的最前面。一個ICMP報文包括IP報頭(至少20位元組)、ICMP報頭(至少八位元組)和ICMP報文(屬於ICMP報文的資料部分)。當IP報頭中的協議欄位值為1時,就說明這是一個ICMP報文。ICMP報頭如下圖所示。

ICMP報頭格式

各欄位說明

  • 型別:佔一位元組,標識ICMP報文的型別,目前已定義了14種,從型別值來看ICMP報文可以分為兩大類。第一類是取值為1~127的差錯報文,第2類是取值128以上的資訊報文。
  • 程式碼:佔一位元組,標識對應ICMP報文的程式碼。它與型別欄位一起共同標識了ICMP報文的詳細型別。
  • 校驗和:這是對包括ICMP報文資料部分在內的整個ICMP資料報的校驗和,以檢驗報文在傳輸過程中是否出現了差錯。其計算方法與在我們介紹IP報頭中的校驗和計算方法是一樣的。
  • 標識:佔兩位元組,用於標識本ICMP程序,但僅適用於回顯請求和應答ICMP報文,對於目標不可達ICMP報文和超時ICMP報文等,該欄位的值為0。

常見的ICMP報文

相應請求

我們日常進行的Ping操作中就包括了相應請求(型別欄位值為8)和應答(型別欄位值為0)ICMP報文。一臺主機向一個節點發送一個型別欄位值為8的ICMP報文,如果途中沒有異常(如果沒有被路由丟棄,目標不迴應ICMP或者傳輸失敗),則目標返回型別欄位值為0的ICMP報文,說明這臺主機存在。

目標不可達,源抑制和超時報文

這三種報文的格式是一樣的。目標不可到達報文(型別值為3)在路由器或者主機不能傳遞資料時使用。例如我們要連線對方一個不存在的系統埠(埠號小於1024)時,將返回型別欄位值3、程式碼欄位值為3的ICMP報文。常見的不可到達型別還有網路不可到達(程式碼欄位值為0)、主機不可達到(程式碼欄位值為1)、協議不可到達(程式碼欄位值為2)等等。
源抑制報文(型別欄位值為4,程式碼欄位值為0)則充當一個控制流量的角色,通知主機減少資料報流量。由於ICMP沒有回覆傳輸的報文,所以只要停止該報文,主機就會逐漸恢復傳輸速率。最後,無連線方式網路的問題就是資料報回丟失,或者長時間在網路遊蕩而找不到目標,或者擁塞導致主機在規定的時間內無法重組資料報分段,這時就要觸發ICMP超時報文的產生。
超時報文(型別欄位值為11)的程式碼域有兩種取值:程式碼欄位值為0表示傳輸超時,程式碼欄位值為1表示分段重組超時。

時間戳請求

時間戳請求報文(型別值欄位13)和時間戳應答報文(型別值欄位14)用於測試兩臺主機之間資料報來回一次的傳輸時間。傳輸時,主機填充原始時間戳,接受方收到請求後填充接受時間戳後以型別值欄位14的報文格式返回,傳送方計算這個時間差。有些系統不響應這種報文。

三、OSI七層網路模型

在網路歷史的早期,國際標準化組織(ISO)和國際電報電話諮詢委員會(CCITT)共同出版了開放系統互聯的七層參考模型。一臺計算機作業系統中的網路過程包括從應用請求(在協議棧的頂部)到網路介質(底部) ,OSI參考模型把功能分成七個分立的層次。圖1表示了OSI分層模型。

  ┌───────┐
  │ 應用層 │←第七層
  ├───────┤
  │ 表示層 │
  ├───────┤
  │ 會話層 │
  ├───────┤
  │ 傳輸層 │
  ├───────┤
  │ 網路層 │
  ├───────┤
  │資料鏈路層│
  ├───────┤
  │ 物理層 │←第一層
  └───────┘ 
  圖1 OSI七層參考模型

第一層 物理層

作用:負責最後將資訊編碼成電流脈衝或其它訊號用於網上傳輸。它由計算機和網路介質之間的實際介面組成,可定義電氣訊號、符號、線的狀態和時鐘要求、資料編碼和資料傳輸用的聯結器。所有比物理層高的層都通過事先定義好的介面而與它通話。

協議:如最常用的RS-232規範、10BASE-T的曼徹斯特編碼以及RJ-45就屬於第一層。

第二層 資料鏈路層

作用:資料鏈路層通過物理網路鏈路提供可靠的資料傳輸。

協議:ATM,FDDI等。 

第三層 網路層

作用:這層對端到端的包傳輸進行定義,他定義了能夠標識所有結點的邏輯地址,還定義了路由實現的方式和學習的方式。為了適應最大傳輸單元長度小於包長度的傳輸介質,網路層還定義瞭如何將一個包分解成更小的包的分段方法。

協議:IP,IPX等

第四層 傳輸層

作用:傳輸層向高層提供可靠的端到端的網路資料流服務。傳輸層的功能一般包括流控、多路傳輸、虛電路管理及差錯校驗和恢復。流控管理裝置之間的資料傳輸,確保傳輸裝置不傳送比接收裝置處理能力大的資料;多路傳輸使得多個應用程式的資料可以傳輸到一個物理鏈路上;虛電路由傳輸層建立、維護和終止;差錯校驗包括為檢測傳輸錯誤而建立的各種不同結構;而差錯恢復包括所採取的行動(如請求資料重發),以便解決發生的任何錯誤。

協議:TCP,UDP,SPX。

第五層 會話層

作用:會話層建立、管理和終止表示層與實體之間的通訊會話。通訊會話包括髮生在不同網路應用層之間的服務請求和服務應答,這些請求與應答通過會話層的協議實現。它還包括建立檢查點,使通訊發生中斷的時候可以返回到以前的一個狀態。

協議:RPC,SQL等

第六層 表示層

作用:這一層的主要功能是定義資料格式及加密。

協議:FTP,加密

第七層 應用層

作用:應用層是最接近終端使用者的OSI層,這就意味著OSI應用層與使用者之間是通過應用軟體直接相互作用的。注意,應用層並非由計算機上執行的實際應用軟體組成,而是由嚮應用程式提供訪問網路資源的API(Application Program Interface,應用程式介面)組成,這類應用軟體程式超出了OSI模型的範疇。應用層的功能一般包括標識通訊夥伴、定義資源的可用性和同步通訊。因為可能丟失通訊夥伴,應用層必須為傳輸資料的應用子程式定義通訊夥伴的標識和可用性。定義資源可用性時,應用層為了請求通訊而必須判定是否有足夠的網路資源。在同步通訊中,所有應用程式之間的通訊都需要應用層的協同操作。
協議:telnet,HTTP,FTP,WWW,NFS,SMTP等。
 

OSI分層的優點: 

(1)人們可以很容易的討論和學習協議的規範細節。 
(2)層間的標準介面方便了工程模組化。 
(3)建立了一個更好的互連環境。 
(4)降低了複雜度,使程式更容易修改,產品開發的速度更快。 
(5)每層利用緊鄰的下層服務,更容易記住個層的功能。