盛立軍《計算機(jī)網(wǎng)絡(luò)技術(shù)基礎(chǔ)》課件第四章.ppt
《盛立軍《計算機(jī)網(wǎng)絡(luò)技術(shù)基礎(chǔ)》課件第四章.ppt》由會員分享,可在線閱讀,更多相關(guān)《盛立軍《計算機(jī)網(wǎng)絡(luò)技術(shù)基礎(chǔ)》課件第四章.ppt(100頁珍藏版)》請在裝配圖網(wǎng)上搜索。
計算機(jī)網(wǎng)絡(luò)技術(shù)基礎(chǔ) 第4章 TCP IP協(xié)議集 不同的廠家生產(chǎn)的計算機(jī)運(yùn)行的操作系統(tǒng)可能完全不同 卻因?yàn)橛辛薚CP IP協(xié)議族而能夠進(jìn)行相互通信 TCP IP協(xié)議族包含很多協(xié)議 其中最重要的兩個協(xié)議分別是傳輸控制協(xié)議 TransmissionControlProtocol TCP 協(xié)議和網(wǎng)際互連協(xié)議 InternetProtocol IP 本章將介紹TCP IP協(xié)議族里比較核心的一些協(xié)議 學(xué)習(xí)目標(biāo) 4 1用戶數(shù)據(jù)報協(xié)議UDP 在TCP IP協(xié)議族中 有兩個傳輸層協(xié)議 傳輸控制協(xié)議 TransmissionControlProtocol TCP 和用戶數(shù)據(jù)報協(xié)議 UserDatagramProtocol UDP 其中 TCP是面向連接的 提供可靠服務(wù)的協(xié)議 UDP則是無連接的 它提供高效但低可靠性的服務(wù) UDP是一個簡單的面向數(shù)據(jù)報的傳輸層協(xié)議 發(fā)送端的UDP對應(yīng)用程序傳下來的報文 只在其首部僅僅加入了復(fù)用和數(shù)據(jù)校驗(yàn)字段后就交付IP層 也就是說 應(yīng)用層交給UDP多長的報文 UDP就一次照樣發(fā)送一個報文 如圖4 1所示 在接收端的UDP收到IP層交付的數(shù)據(jù)報后 去掉首部后原封不動地交付給上層的應(yīng)用程序 圖4 1發(fā)送端的UDP傳輸過程 UDP提供應(yīng)用進(jìn)程之間傳送數(shù)據(jù)的基本機(jī)制 它使用網(wǎng)絡(luò)層協(xié)議所提供的功能 向應(yīng)用層提供服務(wù) 為網(wǎng)絡(luò)層以上和應(yīng)用層以下提供了一個簡單的接口 4 1 1UDP的主要特點(diǎn) UDP的主要特點(diǎn)包括 4 1用戶數(shù)據(jù)報協(xié)議UDP 1 UDP提供無連接的服務(wù) 即在傳輸數(shù)據(jù)之前不需事先建立連接 UDP無連接的特點(diǎn)使得數(shù)據(jù)傳輸時延比較小 2 UDP不提供可靠性 UDP把應(yīng)用層傳給IP層的數(shù)據(jù)發(fā)送出去 使用盡最大努力交付 但是并不保證它們能夠可靠交付 由于缺乏可靠性 UDP應(yīng)用一般必須允許一定量的丟包 出錯和復(fù)制 絕大多數(shù)UDP應(yīng)用都不需要可靠機(jī)制 甚至可能因?yàn)橐肟煽繖C(jī)制而降低性能 流媒體 實(shí)時多媒體游戲和VoIP VoiceoverIP 就是典型的UDP應(yīng)用 4 1用戶數(shù)據(jù)報協(xié)議UDP 3 UDP缺乏擁塞避免和控制機(jī)制 網(wǎng)絡(luò)出現(xiàn)的擁塞不會使源主機(jī)的發(fā)送速率變低 因此需要基于網(wǎng)絡(luò)的擁塞控制機(jī)制來減小因失控和高速UDP流量負(fù)荷而導(dǎo)致的擁塞崩潰效應(yīng) 使用包隊(duì)列和丟棄技術(shù)的路由器等網(wǎng)絡(luò)基本設(shè)備往往就成為了降低UDP過大通信量的有效工具 此外 數(shù)據(jù)報擁塞控制協(xié)議 DatagramCongestionControlProtocol DCCP 是通過在諸如流媒體類型的高速率UDP流中增加主機(jī)擁塞控制來解決擁塞問題 4 UDP支持一對一 一對多 多對一和多對多的交互通信 4 1 2UDP端口號分配 協(xié)議端口是傳輸層引入的一個非常重要的概念 網(wǎng)絡(luò)中的通信實(shí)際上是進(jìn)程間的通信 應(yīng)用程序才是一個IP數(shù)據(jù)報的最終目的地 大多數(shù)計算機(jī)的操作系統(tǒng)都支持多進(jìn)程并發(fā)功能 即允許多個應(yīng)用程序同時運(yùn)行 因此 通信雙方進(jìn)行通信時 不僅要知道目的主機(jī)的IP地址 還應(yīng)該確定數(shù)據(jù)交付的具體應(yīng)用進(jìn)程 為了解決這個問題 傳輸層協(xié)議引入了不同的協(xié)議端口 簡稱端口 來表示不同的應(yīng)用程序 與遠(yuǎn)程服務(wù)程序通信時 發(fā)送方不僅要知道目的主機(jī)的地址 每個IP數(shù)據(jù)報還必須帶有目的主機(jī)的協(xié)議端口號 同樣 為使接收方知道把回應(yīng)數(shù)據(jù)發(fā)送給誰 發(fā)送端在IP數(shù)據(jù)報中還必須帶有自身的協(xié)議端口號 4 1用戶數(shù)據(jù)報協(xié)議UDP TCP IP參考模型的傳輸層用一個16位的端口號來標(biāo)志一個端口 因此允許有65535個不同的端口號 這對于一個計算機(jī)來講是足夠用的 TCP IP協(xié)議約定 0 1023為保留端口號 為標(biāo)準(zhǔn)應(yīng)用服務(wù)使用 1024以上是自由端口號 也稱動態(tài)端口號 為用戶應(yīng)用服務(wù)使用 4 1用戶數(shù)據(jù)報協(xié)議UDP 表4 1列出了常見的UDP服務(wù)端口號 表4 1常見UDP服務(wù)及端口號 4 1用戶數(shù)據(jù)報協(xié)議UDP 提示 4 1用戶數(shù)據(jù)報協(xié)議UDP 4 1 3UDP數(shù)據(jù)報格式 圖4 2UDP數(shù)據(jù)報格式 4 1用戶數(shù)據(jù)報協(xié)議UDP UDP數(shù)據(jù)報首部中各16位的源端口號和目的端口號用來標(biāo)記發(fā)送和接收的應(yīng)用進(jìn)程 因?yàn)閁DP不需要應(yīng)答 所以源端口號是可選的 如果源端口不用 那么置為零 在目的端口號后面是長度固定的以字節(jié)為單位的長度字段 用來指定UDP數(shù)據(jù)報中包括數(shù)據(jù)部分的長度 最小值為8 僅有首部 16位的UDP校驗(yàn)和是用來對首部和數(shù)據(jù)部分一起做校驗(yàn)和的 檢測UDP用戶數(shù)據(jù)報在傳輸中是否出錯 當(dāng)傳輸層從IP層收到UDP數(shù)據(jù)報后 根據(jù)首部中的目的端口將其交付給相應(yīng)的應(yīng)用程序 如果接收方UDP發(fā)現(xiàn)沒有與收到的報文中的目的端口號匹配的端口 則丟棄該報文 并發(fā)送 端口不可達(dá) 差錯報文給發(fā)送端 如果匹配端口號已滿 也丟棄該報文 但不回送差錯報文 只能等待超時重發(fā) 4 2傳輸控制協(xié)議TCP 傳輸控制協(xié)議 TransmissionControlProtocol TCP 是傳輸層上另一著名的協(xié)議 它也是TCP IP最具代表性的協(xié)議 4 2 1TCP的主要特點(diǎn) TCP除提供進(jìn)程通信能力外 主要提供端到端的面向連接的 可靠的字節(jié)流服務(wù) 從應(yīng)用程序的角度看 TCP提供的服務(wù)有如下特征 1 面向連接的服務(wù) 面向連接意味著兩個使用TCP的應(yīng)用程序 通常為一個客戶和一個服務(wù)器 在彼此交換數(shù)據(jù)之前必須先建立一個TCP連接 TCP連接只存在于兩個終端結(jié)點(diǎn) 網(wǎng)絡(luò)當(dāng)中的中間結(jié)點(diǎn) 如路由器和網(wǎng)橋 對這個連接毫不知情 只知道傳輸?shù)臄?shù)據(jù)而不是連接本身 4 2傳輸控制協(xié)議TCP 2 面向字節(jié)流的服務(wù) 流是無報文丟失 重復(fù)和失序的數(shù)據(jù)序列 兩個應(yīng)用程序通過TCP連接交換字節(jié)流 TCP協(xié)議從應(yīng)用程序處收集數(shù)據(jù)后 封裝成長度適中的一個數(shù)據(jù)報文段 在報文頭中的序號域指出段中數(shù)據(jù)在發(fā)送端數(shù)據(jù)流中的位置 TCP協(xié)議為實(shí)現(xiàn)流傳輸服務(wù)付出了大量開銷 3 可靠交付 TCP的傳輸過程由建立連接 傳輸數(shù)據(jù)和釋放連接3個步驟組成 一個應(yīng)用程序在發(fā)送數(shù)據(jù)時 首先要請求建立連接 通過TCP連接傳送的數(shù)據(jù) 無差錯 不丟失 不重復(fù)并且按序到達(dá) 4 全雙工通信 TCP連接提供的是全雙工的數(shù)據(jù)傳輸 采用點(diǎn)對點(diǎn)的方式 即在一個TCP連接中僅有兩方進(jìn)行通信 因此廣播和多播方式不能用TCP 5 流量控制 TCP連接的雙方都有固定大小的緩沖區(qū) 流量控制可以防止較快主機(jī)致使較慢主機(jī)的緩沖區(qū)溢出 通常把緩沖區(qū)中的空閑部分稱為窗口 TCP采用可變滑動窗口協(xié)議 并且當(dāng)交付的數(shù)據(jù)不夠填滿一個緩沖區(qū)時 流服務(wù)提供 PUSH 機(jī)制 應(yīng)用程序可以用其進(jìn)行強(qiáng)迫傳送 4 2傳輸控制協(xié)議TCP 4 2 2TCP端口號分配 TCP模塊以IP模塊為傳輸基礎(chǔ) 可以面向多種應(yīng)用程序提供傳輸服務(wù) 為了能夠區(qū)分出對應(yīng)的應(yīng)用程序 引入了TCP端口的概念 與UDP類似 TCP端口號采用了動態(tài)和靜態(tài)相結(jié)合的分配方法 對于一些常用的應(yīng)用服務(wù)使用固定的端口號 對于其他的應(yīng)用服務(wù) 尤其是用戶自行開發(fā)的應(yīng)用服務(wù) 端口號采用動態(tài)分配方法 由用戶指定其分配 表4 2列出了常見的TCP服務(wù)端口號 4 2傳輸控制協(xié)議TCP 表4 2常見TCP服務(wù)及端口號 4 2傳輸控制協(xié)議TCP 4 2 3TCP報文段格式 圖4 3TCP數(shù)據(jù)在IP數(shù)據(jù)報中的封裝 4 2傳輸控制協(xié)議TCP 圖4 4TCP報文段的格式 4 2傳輸控制協(xié)議TCP 1 源端口號和目的端口號 源端口號和目的端口號用于表示發(fā)送端和接收端的端口號 這兩個值加上IP首部中的源IP地址和目的IP地址可以確定一條唯一的TCP連接 2 序號 序號字段用于標(biāo)識從TCP發(fā)送端向TCP接收端發(fā)送的數(shù)據(jù)字節(jié)流 它表示在這個報文段中的第一個數(shù)據(jù)字節(jié)的序號 例如 當(dāng)前報文段的第一個數(shù)據(jù)字節(jié)的序號為201 數(shù)據(jù)長度為100字節(jié) 則當(dāng)前報文段的序號字段的值為201 下一報文段的序號值為301 序號字段占4個字節(jié) 當(dāng)序號到達(dá)232 1后又從0開始 3 確認(rèn)序號 確認(rèn)序號包含發(fā)送確認(rèn)的一端所期望收到的下一個序號 既然每個傳輸?shù)淖止?jié)都被計數(shù) 確認(rèn)序號應(yīng)當(dāng)是上次已成功收到數(shù)據(jù)字節(jié)序號加1 例如 接收端已成功接收發(fā)送端發(fā)送的序號為501 數(shù)據(jù)長度為200的報文段 那么 接收端期望收到的下一個數(shù)據(jù)序號是701 則該確認(rèn)序號為701 TCP為應(yīng)用層提供全雙工服務(wù) 這意味著數(shù)據(jù)能在兩個方向上獨(dú)立地進(jìn)行傳輸 因此 TCP連接的每一端必須保持每個方向上的傳輸數(shù)據(jù)序號 4 2傳輸控制協(xié)議TCP 4 數(shù)據(jù)偏移 數(shù)據(jù)偏移字段指出TCP報文段的數(shù)據(jù)起始處距離TCP報文段的起始處有多遠(yuǎn) 需要這個字段是因?yàn)檫x項(xiàng)字段的長度是可變的 這個字段占4位 以4字節(jié)為單位 因此TCP數(shù)據(jù)偏移的最大值是60字節(jié) 也就是說TCP首部的最大長度為60字節(jié) 5 保留 保留字段占6位 保留為今后使用 目前設(shè)置為0 6 標(biāo)志位 在TCP首部中有6個標(biāo)志位 具體含義如下 URG urgent 為緊急數(shù)據(jù)標(biāo)志 當(dāng)URG 1時 表示緊急指針字段的值有效 此時 該報文段中有緊急數(shù)據(jù) 應(yīng)盡快傳送 而不是按照原來的順序傳送 這時需要與首部中的緊急指針字段配合使用 ACK acknowledgement 為確認(rèn)標(biāo)志位 當(dāng)ACK 1時 表示報文段中的確認(rèn)序號有效 當(dāng)ACK 0時 確認(rèn)序號無效 TCP規(guī)定 在連接建立后 所有傳送的報文段的ACK字段必須置1 4 2傳輸控制協(xié)議TCP PSH push 為推送標(biāo)志位 當(dāng)PSH 1時 表示發(fā)送端希望立即得到接收端的響應(yīng) 此時 發(fā)送方的TCP協(xié)議軟件馬上發(fā)送該數(shù)據(jù)包 接收方收到后也應(yīng)盡快把這個報文段交給應(yīng)用層 RST reset 為復(fù)位標(biāo)志位 用來復(fù)位一條連接 如果TCP收到的數(shù)據(jù)不屬于該主機(jī)上的任何一個連接 則將RST字段置1 向發(fā)送端發(fā)送一個復(fù)位數(shù)據(jù)包 釋放當(dāng)前連接 RST字段置1還可用來拒絕一個非法的報文段或拒絕打開一個連接 SYN synchronous 為同步標(biāo)志位 在建立連接時用來同步序號 如果SYN 1 而ACK 0 表示這是一個連接請求報文段 如果SYN 1 而ACK 1 則表示這是一個連接接受報文段 具體的連接過程將在4 2 4節(jié)中進(jìn)行講解 FIN finish 為終止標(biāo)志位 用來釋放連接 當(dāng)FIN 1時 表示發(fā)送端端完成發(fā)送任務(wù) 希望釋放連接 4 2傳輸控制協(xié)議TCP 7 窗口 窗口表明該報文段的發(fā)送端當(dāng)前能夠接收的從確認(rèn)序號開始的最大數(shù)據(jù)長度 該值主要向?qū)Ψ铰暶鞅镜亟邮站彌_區(qū)的使用情況 窗口大小是一個16位字段 因而窗口字段最大65535字節(jié) 8 校驗(yàn)和 校驗(yàn)和覆蓋了整個TCP報文段 TCP首部和TCP數(shù)據(jù) 這是一個強(qiáng)制性的字段 一定是由發(fā)送端計算和存儲 并由接收端進(jìn)行驗(yàn)證 9 緊急指針 只有當(dāng)URG 1時 該字段才有效 緊急指針是一個正的偏移量 指出本報文段中緊急數(shù)據(jù)的字節(jié)數(shù) 也就是說 緊急指針字段和序號字段中的值相加表示緊急數(shù)據(jù)最后一個字節(jié)的序號 值得注意的是 即使窗口字段為零 也可以發(fā)送緊急數(shù)據(jù) 4 2傳輸控制協(xié)議TCP 10 選項(xiàng) 選項(xiàng)字段長度可變 最長可達(dá)40字節(jié) TCP規(guī)定了最長報文大小 又稱為MSS MaximumSegmentSize 每個連接方通常都在通信的第一個報文段中指明這個選項(xiàng) 它指明本端所能接收的報文段的最大長度 從圖4 4中可以注意到TCP報文段中的數(shù)據(jù)部分是可選的 在一個連接建立和釋放的過程 具體內(nèi)容在4 2 4節(jié)中進(jìn)行講解 中 雙方交換的報文段都是僅有TCP首部 沒有數(shù)據(jù)部分的 如果一方?jīng)]有數(shù)據(jù)要發(fā)送 也可以使用沒有任何數(shù)據(jù)的首部來確認(rèn)收到的數(shù)據(jù) 在處理超時的許多情況中 也會發(fā)送不帶任何數(shù)據(jù)的報文段 4 2傳輸控制協(xié)議TCP 4 2 4TCP傳輸連接建立和釋放 TCP是一個面向連接的協(xié)議 傳輸層連接的建立和釋放是每一次面向連接的通信中所必不可少的過程 TCP的連接和建立都采用客戶 服務(wù)器方式 主動發(fā)起連接建立的應(yīng)用進(jìn)程稱為客戶 client 而被動等待連接建立的進(jìn)程稱為服務(wù)器 server 下面具體來看一下TCP連接的建立與釋放過程 4 2傳輸控制協(xié)議TCP 建立TCP連接 假設(shè)客戶機(jī)上的一個進(jìn)程想與服務(wù)器上另一進(jìn)程通信 兩者要通過 三次握手 three wayhandshake 建立TCP連接 如圖4 5所示 圖4 5三次握手建立TCP連接 1 第1次握手 客戶發(fā)送連接請求 2 第2次握手 服務(wù)器同意連接確認(rèn) 是利用多條網(wǎng)絡(luò)連接來支持一條運(yùn)輸連接上的數(shù)據(jù)傳輸 目的是使低吞吐量 低速率和高傳輸延遲的網(wǎng)絡(luò)可以支持用戶高速傳輸數(shù)據(jù)的要求 是將多條運(yùn)輸連接上的數(shù)據(jù)匯集到一條網(wǎng)絡(luò)連接上傳輸 使具有高吞吐量 高速率和低傳輸延遲且高費(fèi)用的網(wǎng)絡(luò)可以支持用戶的低傳輸成本的要求 3 第3次握手 客戶確認(rèn)連接 是將一個長的運(yùn)輸服務(wù)數(shù)據(jù)單元分成若干個運(yùn)輸協(xié)議數(shù)據(jù)單元進(jìn)行傳輸 使傳輸長度有限的網(wǎng)絡(luò)可以支持用戶的無限長度數(shù)據(jù)的傳輸 4 2傳輸控制協(xié)議TCP 4 2傳輸控制協(xié)議TCP 1 第1次握手 客戶發(fā)送連接請求 客戶發(fā)送一個特殊的TCP報文段給服務(wù)器 這個報文段不包含應(yīng)用數(shù)據(jù) 而將段首的SYN標(biāo)志位置1 該報文段也因此被稱為SYN報文段 同時 客戶還為這個連接設(shè)置初始序列號seq client isn 該段被封裝成IP數(shù)據(jù)報發(fā)送給服務(wù)器 2 第2次握手 服務(wù)器同意連接確認(rèn) 一旦包含SYN段的IP數(shù)據(jù)報到達(dá)服務(wù)器 假設(shè)正常到達(dá) 服務(wù)器從IP數(shù)據(jù)報中提取出SYN段 并初始化TCP緩存及連接變量 同時發(fā)送給客戶一個同意連接的確認(rèn)信息 這個確認(rèn)報文段也不包含應(yīng)用數(shù)據(jù) 卻在段首包含三條重要的信息 SYN 1 ACK 1 TCP段首的確認(rèn)號ack client isn 1 服務(wù)器選擇連接的初始序列號seq server isn 這個報文段通常被稱為SYN ACK報文段 4 2傳輸控制協(xié)議TCP 3 第3次握手 客戶確認(rèn)連接 在接收到服務(wù)器同意連接的確認(rèn)后 客戶同樣要設(shè)置連接的緩存和變量 并再向服務(wù)器發(fā)送一個確認(rèn) 即對服務(wù)器SYN ACK報文段的確認(rèn) 這時ACK 1 SYN 0 表示連接已經(jīng)建立 三次握手過程結(jié)束后 客戶和服務(wù)器就可以相互發(fā)送數(shù)據(jù)了 4 2傳輸控制協(xié)議TCP 釋放TCP連接 客戶和服務(wù)器之間數(shù)據(jù)發(fā)送完成后 需要釋放連接 建立一個連接需要三次握手 而釋放一個連接則需要經(jīng)過四次握手 這是由TCP的半關(guān)閉造成 TCP連接是全雙工通信的 數(shù)據(jù)在兩個方向上能同時傳輸 因而每個方向必須單獨(dú)進(jìn)行關(guān)閉 也就是說 當(dāng)任意一方完成數(shù)據(jù)發(fā)送任務(wù)后都可以發(fā)送一個FIN報文段來釋放這個方向的連接 另一端收到FIN報文段后 通知應(yīng)用層另一端已經(jīng)終止了該方向的數(shù)據(jù)傳輸 也就是對FIN報文段進(jìn)行確認(rèn) 圖4 6四次握手釋放TCP連接 通常情況下都是客戶端主動釋放連接 因此以客戶端主動關(guān)閉一個TCP連接為例講解釋放TCP連接的過程 如圖4 6所示 4 2傳輸控制協(xié)議TCP 1 第1次握手 客戶請求關(guān)閉連接 客戶向服務(wù)器發(fā)送一個FIN 1的TCP報文段 并設(shè)置初始序列號seq client isn 該報文段封裝成IP數(shù)據(jù)報傳送給服務(wù)器 2 第2次握手 服務(wù)器確認(rèn)客戶請求 服務(wù)器收到上述TCP報文段后 發(fā)送一個ACK報文段對這個報文進(jìn)行確認(rèn) ACK報文段中 ACK 1 seq server isn ack client isn 1 這時的TCP連接處于半關(guān)閉狀態(tài) 即客戶機(jī)無法向服務(wù)器發(fā)送數(shù)據(jù) 但可以接收服務(wù)器發(fā)來的數(shù)據(jù) 客戶收到服務(wù)器的確認(rèn)報文段后 進(jìn)入終止等待狀態(tài) 等待服務(wù)器發(fā)出的連接釋放報文段 4 2傳輸控制協(xié)議TCP 3 第3次握手 服務(wù)器請求關(guān)閉連接 若服務(wù)器中沒有需要發(fā)送給客戶的數(shù)據(jù)了 則發(fā)送自己的FIN 1的連接釋放報文段給客戶端 該報文段中 ACK 1 seq server isn ack client isn 1 4 第4次握手 客戶確認(rèn)服務(wù)器請求 客戶收到服務(wù)器的連接釋放報文段后 對服務(wù)器的FIN報文段進(jìn)行確認(rèn) 在確認(rèn)報文段中把ACK位置1 確認(rèn)號ack server isn 1 序號seq client isn 1 然后進(jìn)入時間等待狀態(tài) 經(jīng)過時間等待計時器設(shè)置的時間2MSL后 客戶才真正釋放連接 4 2傳輸控制協(xié)議TCP 提示 4 3網(wǎng)際互連協(xié)議IP 網(wǎng)際互連協(xié)議IP是一個網(wǎng)絡(luò)層協(xié)議 它包含尋址信息和控制信息 可使數(shù)據(jù)包在網(wǎng)絡(luò)中路由 IP協(xié)議是TCP IP協(xié)議族中最為核心的協(xié)議 與TCP協(xié)議結(jié)合組成整個因特網(wǎng)協(xié)議的核心協(xié)議 與IP協(xié)議配套使用的還有4個子協(xié)議 地址解析協(xié)議ARP AddressResolutionProtocol ARP 逆地址解析協(xié)議RARP ReverseAddressResolutionProtocol RARP 因特網(wǎng)控制報文協(xié)議ICMP InternetControlMessageProtocol ICMP 因特網(wǎng)組管理協(xié)議 InternetGroupManagementProtocol IGMP 4 3 1IPv4地址 當(dāng)網(wǎng)絡(luò)中的兩臺主機(jī)要進(jìn)行通信時 必須知道通信雙方各自的地址 這就是我們所理解的Internet地址 即IP地址 IP地址實(shí)際上是一種標(biāo)識符 TCP IP協(xié)議通過IP地址來識別網(wǎng)絡(luò)中不同的主機(jī) 4 3網(wǎng)際互連協(xié)議IP IP地址的表示 根據(jù)TCP IP協(xié)議規(guī)定 IP地址由32位二進(jìn)制數(shù)所組成 例如 互聯(lián)網(wǎng)上一臺主機(jī)的IP地址為11000001001000001101100000001001 為了記憶方便 可以將IP地址的32位二進(jìn)制數(shù)進(jìn)行分段 每段8位 共4段 然后將每段8位二進(jìn)制數(shù)轉(zhuǎn)換為相應(yīng)的十進(jìn)制數(shù) 中間用 號間隔 這種表達(dá)方式稱之為 點(diǎn)分十進(jìn)制 也就是說 上述的IP地址可以表示成193 32 216 9 如圖4 7所示 圖4 7點(diǎn)分十進(jìn)制表示IP地址 從概率學(xué)的角度看 32位二進(jìn)制數(shù)能表達(dá)232種不同的情況 也就是說 按照IP地址的設(shè)計初衷考慮 32位的地址空間可以表達(dá)4294967296個不同的Internet地址 4 3網(wǎng)際互連協(xié)議IP IP地址的分類 每個IP地址內(nèi)部分成兩部分 即網(wǎng)絡(luò)號和主機(jī)號 如圖4 8所示 網(wǎng)絡(luò)號 也叫做網(wǎng)絡(luò)地址 用于標(biāo)識大規(guī)模TCP IP網(wǎng)際網(wǎng)絡(luò) 即由網(wǎng)絡(luò)組成的網(wǎng)絡(luò) 內(nèi)的單個網(wǎng)段 主機(jī)號 也叫做主機(jī)地址 用于識別每個網(wǎng)絡(luò)內(nèi)部的TCP IP節(jié)點(diǎn) 如工作站 服務(wù)器 路由器或其他TCP IP設(shè)備 圖4 8IP地址的結(jié)構(gòu) 4 3網(wǎng)際互連協(xié)議IP IP地址中的網(wǎng)絡(luò)號和主機(jī)號總共32位 4個字節(jié) 那么 如果網(wǎng)絡(luò)號部分占總地址空間比較少 相應(yīng)的主機(jī)號部分位數(shù)就增多 這樣的網(wǎng)絡(luò)中容納的主機(jī)數(shù)就比較多 也就是說網(wǎng)絡(luò)規(guī)模就比較大 反之也很好理解 因網(wǎng)絡(luò)規(guī)模有所不同 為了方便網(wǎng)絡(luò)的管理 IP地址被分為A B C D E五類 如圖4 9所示 圖4 9IP地址分類 4 3網(wǎng)際互連協(xié)議IP A B C類地址稱之為單目傳送地址 這些地址通常只能分配給唯一的主機(jī) D類地址是組播地址 E類地址則是在IP地址設(shè)計之初保留作為科學(xué)研究用的 各類IP地址類別詳述如表4 3所示 表4 3IP地址類別詳述 注 該表中的網(wǎng)絡(luò)號 主機(jī)號排除了一些特殊IP地址 4 3網(wǎng)際互連協(xié)議IP 特殊IP地址 在IP地址中 有一些特殊地址被賦予特殊的作用 主機(jī)地址全為1的IP地址稱為廣播地址 廣播地址專門用于同時向網(wǎng)絡(luò)中所有主機(jī)發(fā)送數(shù)據(jù) 例如 對于IP地址為192 168 10 0的C類網(wǎng)段 當(dāng)發(fā)出一個目的地址為192 168 10 255的分組時 它將被分發(fā)給該網(wǎng)段上的所有主機(jī) 廣播地址又分為直接廣播地址和有限廣播地址兩種 直接廣播地址有網(wǎng)絡(luò)號 但主機(jī)字段通常全為1 這類廣播會被送到專門網(wǎng)絡(luò) 由網(wǎng)絡(luò)號決定 上的每臺主機(jī) 有限廣播地址是指網(wǎng)絡(luò)字段和主機(jī)字段全為1的地址 即255 255 255 255 它不被路由但會被送到相同物理網(wǎng)絡(luò)段上的所有主機(jī) 4 3網(wǎng)際互連協(xié)議IP 組播地址就是前面講的D類地址 主要用于視頻廣播和視頻點(diǎn)播系統(tǒng) IP地址范圍從224 0 0 0到239 255 255 255 其中 224 0 0 1特指所有主機(jī) 224 0 0 2特指所有路由器 組播地址和廣播地址是不一樣的 廣播地址按主機(jī)的物理位置來劃分各組 而組播地址指定一個特定的邏輯組 參與該組的計算機(jī)可能遍布整個Internet 網(wǎng)絡(luò)地址是127的IP地址稱為環(huán)回地址或者回送地址 主要用于對本地回路測試及實(shí)現(xiàn)本地機(jī)進(jìn)程間的通信 在實(shí)際中經(jīng)常使用的環(huán)回地址是127 0 0 1 它還有一個別名叫做localhost 4 3網(wǎng)際互連協(xié)議IP 提示 4 3網(wǎng)際互連協(xié)議IP 一般的IP地址是由網(wǎng)絡(luò)信息中心 NetworkInformationCenter NIC 統(tǒng)一管理并分配給提出注冊申請的組織機(jī)構(gòu)的 這類IP地址稱為公有地址 通過它可以直接訪問因特網(wǎng) 而私有地址屬于非注冊地址 專門為組織機(jī)構(gòu)內(nèi)部使用 常用的私有地址分類如表4 4所示 表4 4私有地址分類 使用私有地址的私有網(wǎng)絡(luò)由于不與外部互連 因而可能使用隨意的IP地址 私有網(wǎng)絡(luò)在接入Internet時 要使用地址翻譯 NAT 將私有地址翻譯成公用合法IP地址 4 3網(wǎng)際互連協(xié)議IP 提示 4 3網(wǎng)際互連協(xié)議IP 不同類型的特殊IP地址總結(jié)如表4 5所示 表4 5特殊IP地址匯總 4 3網(wǎng)際互連協(xié)議IP 4 3 2子網(wǎng)技術(shù) 在實(shí)際使用過程中 許多單位會把單一網(wǎng)絡(luò)劃分為多個物理網(wǎng)絡(luò) 并使用路由器將它們連接起來 如圖4 10所示 這些物理網(wǎng)絡(luò)通稱為子網(wǎng) 這種操作方法稱為子網(wǎng)劃分 子網(wǎng) 4 3網(wǎng)際互連協(xié)議IP 劃分子網(wǎng)的好處有很多 主要體現(xiàn)在以下3個方面 充分利用IP地址 由于A類網(wǎng)和B類網(wǎng)的地址空間太大 致使在不使用路由設(shè)備的單一網(wǎng)絡(luò)中無法使用全部地址 因此 為了能更有效地使用地址空間 有必要把可用地址分配給更多較小的網(wǎng)絡(luò) 易于管理網(wǎng)絡(luò) 當(dāng)一個網(wǎng)絡(luò)被劃分為多個子網(wǎng)時 每個子網(wǎng)變得易于控制 管理變得簡單 減輕了大型網(wǎng)絡(luò)的管理難度 提高網(wǎng)絡(luò)性能 將一個大型的網(wǎng)絡(luò)劃分為若干個子網(wǎng) 其中的路由器設(shè)備可以把不同的子網(wǎng)隔離開來 同一子網(wǎng)中的主機(jī)之間只能在各自的子網(wǎng)中進(jìn)行廣播和通信 不會轉(zhuǎn)到其他子網(wǎng)中 另外 用路由器隔離還可以將網(wǎng)絡(luò)分為內(nèi)外兩個子網(wǎng) 限制外部網(wǎng)絡(luò)用戶對內(nèi)部網(wǎng)絡(luò)的訪問 從而提高內(nèi)部子網(wǎng)的安全性 4 3網(wǎng)際互連協(xié)議IP 劃分子網(wǎng)的方法 對于標(biāo)準(zhǔn)的A類 B類和C類地址來說 它們只具有網(wǎng)絡(luò)號和主機(jī)號兩層結(jié)構(gòu) 為了劃分子網(wǎng) 可以將其主機(jī)號分為兩個部分 其中一部分用于子網(wǎng)號的編制 剩余部分用于主機(jī)號的編制 這樣就形成了一個三層結(jié)構(gòu) 即網(wǎng)絡(luò)號 子網(wǎng)號和主機(jī)號 如圖4 11所示 圖4 11IP地址的三層結(jié)構(gòu) 4 3網(wǎng)際互連協(xié)議IP 子網(wǎng)號的位數(shù)取決于組網(wǎng)的實(shí)際需要 子網(wǎng)號所占的比特位越多 則可以分配給主機(jī)的位數(shù)就越少 也就是說 在一個子網(wǎng)中所包含的主機(jī)就少 1 假設(shè)當(dāng)前主機(jī)號有M位 向主機(jī)位部分借用n位來劃分子網(wǎng) 則可以劃分出2n個子網(wǎng) 反之 知道所需網(wǎng)絡(luò)數(shù) 也可以計算出所需借用的主機(jī)位位數(shù) 2 假設(shè)當(dāng)前主機(jī)號有M位 劃分子網(wǎng)后主機(jī)位有m位 則最多可容納主機(jī)數(shù)量為2m 2臺 反之 知道子網(wǎng)中的主機(jī)數(shù)量 也可以計算出所需主機(jī)位數(shù) 用當(dāng)前主機(jī)位M減去劃分子網(wǎng)后的m位 即可得到需借用的主機(jī)位位數(shù) 4 3網(wǎng)際互連協(xié)議IP 提示 例如 將一個C類網(wǎng)絡(luò)203 66 77 0劃分為4個子網(wǎng) 那么需要借用3位主機(jī)位作為子網(wǎng)號 每個子網(wǎng)可以容納25 2 30臺主機(jī) 又例如 一個B類網(wǎng)絡(luò)172 17 0 0 將主機(jī)號的前8位作為子網(wǎng)號 另外8位作為主機(jī)號 那么這個B類網(wǎng)絡(luò)就被分為28 2 254個子網(wǎng) 每個子網(wǎng)可以容納28 2 254臺主機(jī) 4 3網(wǎng)際互連協(xié)議IP 子網(wǎng)掩碼 圖4 12中給出了兩個B類IP地址 這兩個IP地址從外觀上沒有任何差別 那么應(yīng)該如何區(qū)分這兩個地址呢 這就要用到子網(wǎng)掩碼 圖4 12使用子網(wǎng)劃分和未使用子網(wǎng)劃分的IP地址 子網(wǎng)掩碼 或稱子網(wǎng)屏蔽碼 與IP地址相同 也是一個32位的二進(jìn)制數(shù) 對于子網(wǎng)掩碼的取值 通常是將對應(yīng)于IP地址中網(wǎng)絡(luò)地址 網(wǎng)絡(luò)號和子網(wǎng)號 的所有位設(shè)置為 1 對應(yīng)于主機(jī)地址 主機(jī)號 的所有位都設(shè)置為 0 子網(wǎng)掩碼有兩種表示方法 一是 點(diǎn)分十進(jìn)制 表示法 二是網(wǎng)絡(luò)前綴標(biāo)記法 1 點(diǎn)分十進(jìn)制 表示法與IP地址中相同 2 子網(wǎng)號是從IP地址高字節(jié)以連續(xù)方式選取的 即從左到右連續(xù)地取若干位作為網(wǎng)絡(luò)號 因此 可用網(wǎng)絡(luò)地址 網(wǎng)絡(luò)號和子網(wǎng)號 的位數(shù)來表示子網(wǎng)掩碼 形式為 這種表示方法稱為 網(wǎng)絡(luò)前綴標(biāo)記法 例如 一個子網(wǎng)掩碼為255 255 0 0的B類網(wǎng)絡(luò)地址156 81 0 0 用網(wǎng)絡(luò)前綴標(biāo)記法可以表示為156 81 0 0 16 4 3網(wǎng)際互連協(xié)議IP 4 3網(wǎng)際互連協(xié)議IP 標(biāo)準(zhǔn)的A類 B類 C類網(wǎng)絡(luò)地址的默認(rèn)子網(wǎng)掩碼如表4 6所示 表4 6標(biāo)準(zhǔn)的A類 B類 C類網(wǎng)絡(luò)地址的默認(rèn)子網(wǎng)掩碼 用子網(wǎng)掩碼判斷IP地址的方法是用IP地址與子網(wǎng)掩碼進(jìn)行 按位與 AND 運(yùn)算 運(yùn)算結(jié)果即為網(wǎng)絡(luò)地址 4 3網(wǎng)際互連協(xié)議IP 分析 168 16 16 51是B類地址 其默認(rèn)子網(wǎng)掩碼是255 255 0 0 將IP地址與子網(wǎng)掩碼進(jìn)行 按位與 AND 運(yùn)算即可得到網(wǎng)絡(luò)地址 如圖4 13所示 圖4 13使用子網(wǎng)掩碼求網(wǎng)絡(luò)地址 1 4 3網(wǎng)際互連協(xié)議IP 分析 168 16 16 51是B類地址 采用非默認(rèn)子網(wǎng)掩碼255 255 255 0劃分子網(wǎng) 將IP地址與子網(wǎng)掩碼進(jìn)行 按位與 AND 運(yùn)算即可得到網(wǎng)絡(luò)地址 如圖4 14所示 圖4 14使用子網(wǎng)掩碼求網(wǎng)絡(luò)地址 2 通過例4 1和例4 2可以看出 使用子網(wǎng)掩碼可以區(qū)分一個IP地址是否使用子網(wǎng)劃分 還可以計算出其網(wǎng)絡(luò)地址 4 3網(wǎng)際互連協(xié)議IP 劃分子網(wǎng)的步驟 劃分子網(wǎng)的步驟如下 4 3網(wǎng)際互連協(xié)議IP 1 確定子網(wǎng)號位數(shù) 網(wǎng)絡(luò)中有4個子網(wǎng) 則2n 2 4 計算得出n 3 即需要從IP地址中借用3位主機(jī)位 注意 n采用向上取整 剩余主機(jī)位為8 3 5位 則子網(wǎng)中最多容納25 32臺主機(jī) 符合題目要求 2 將IP地址的網(wǎng)絡(luò)位和子網(wǎng)位寫為1 主機(jī)位寫為0 即可得到子網(wǎng)掩碼 二進(jìn)制十進(jìn)制11111111 11111111 11111111 11100000255 255 255 224 4 3網(wǎng)際互連協(xié)議IP 4 3網(wǎng)際互連協(xié)議IP 4 3網(wǎng)際互連協(xié)議IP 可變長子網(wǎng)劃分 當(dāng)用戶選擇了一個普通子網(wǎng)掩碼之后 就不能支持不同尺寸的子網(wǎng)了 這對于網(wǎng)絡(luò)內(nèi)部不同網(wǎng)段需要不同大小子網(wǎng)的情形來說非常不方便 相對于普通子網(wǎng)掩碼 在RFC1878中定義了可變長子網(wǎng)掩碼 VariableLengthSubnetMask VLSM 它在劃分子網(wǎng)并保留足夠的主機(jī)數(shù)的同時 將子網(wǎng)進(jìn)一步分成多個小子網(wǎng) 這種方法能將網(wǎng)絡(luò)劃分為三級或更多級子網(wǎng) 使子網(wǎng)劃分具有更大的靈活性 也使IP地址具有更高的利用率 如果對一個網(wǎng)絡(luò)進(jìn)行了可變長子網(wǎng)劃分 那么就可以用不同長度的子網(wǎng)網(wǎng)絡(luò)號來唯一標(biāo)識每個子網(wǎng) 并能通過對應(yīng)的子網(wǎng)掩碼進(jìn)行區(qū)分 VLSM規(guī)定了如何在一個進(jìn)行了子網(wǎng)劃分的網(wǎng)絡(luò)中的不同部分使用不同的子網(wǎng)掩碼 4 3網(wǎng)際互連協(xié)議IP 1 一個能容納100臺主機(jī)的子網(wǎng) 4 3網(wǎng)際互連協(xié)議IP 用主機(jī)號中的1位 第4個字節(jié)的最高1位 進(jìn)行子網(wǎng)劃分 產(chǎn)生2個子網(wǎng) 分別為210 31 233 0 25 和210 31 233 128 25兩個子網(wǎng)段 這種子網(wǎng)劃分允許每個子網(wǎng)有126臺主機(jī) 27 2 選擇210 31 233 0 25 子網(wǎng)掩碼為255 255 255 128 作為網(wǎng)絡(luò)號 該一級子網(wǎng)共有126個IP地址可供分配 能夠滿足市場部的需求 表4 7中給出了能容納126臺主機(jī)的一個子網(wǎng) 分析 表4 7劃分市場部子網(wǎng) 2 兩個能容納52臺主機(jī)的子網(wǎng) 4 3網(wǎng)際互連協(xié)議IP 為滿足2個子網(wǎng)各能容納52臺主機(jī)的需求 可以使用一級子網(wǎng)中的第2個子網(wǎng)210 31 233 128 25 子網(wǎng)掩碼為255 255 255 128 取出其主機(jī)號的1位進(jìn)一步劃分成兩個二級子網(wǎng) 其中第1個二級子網(wǎng)為210 31 233 128 26 子網(wǎng)掩碼為255 255 255 192 劃分給硬件部門 該二級子網(wǎng)共有62個IP地址可供分配 第2個二級子網(wǎng)為210 31 233 192 26 子網(wǎng)掩碼為255 255 255 192 劃分給軟件部門 該二級子網(wǎng)共有62個IP地址可供分配 表4 8給出了能容納62臺主機(jī)的兩個子網(wǎng) 分析 表4 8劃分技術(shù)部的2個子網(wǎng) 4 3網(wǎng)際互連協(xié)議IP 對這個可變長子網(wǎng)的劃分結(jié)果如圖4 16所示 圖4 16可變長子網(wǎng)劃分結(jié)果 4 3網(wǎng)際互連協(xié)議IP 超網(wǎng)和無類域間路由 目前 在Internet上使用的IP地址是在1978年確立的協(xié)議 它由4段8位二進(jìn)制數(shù)字組成 由于Internet協(xié)議當(dāng)時的版本號為4 因而稱為 IPv4 盡管這個協(xié)議在理論上有大約43億個IP地址 但是 并不是所有的地址都得到了充分的利用 A類和B類地址所包含的主機(jī)數(shù)又太多 而C類地址包含的主機(jī)數(shù)又太少 如一個B類網(wǎng)絡(luò)其中所包含的主機(jī)數(shù)可以達(dá)到65534個 一個C類網(wǎng)絡(luò)中只能容納254臺主機(jī) 這對于擁有上千臺主機(jī)的單位來說 選擇哪類網(wǎng)絡(luò)地址都是不合適的 此外 由于Internet的迅猛發(fā)展 主機(jī)數(shù)量急劇增加 它正以非??斓乃俣认闹鳬P地址 為了解決當(dāng)前IP地址面臨的嚴(yán)重資源不足的問題 InterNIC設(shè)計了一種新的網(wǎng)絡(luò)分配方法 對于一個主機(jī)數(shù)量介于B類網(wǎng)絡(luò)和C類網(wǎng)絡(luò)的單位 InterNIC給它分配多個C類網(wǎng)絡(luò)的范圍 該范圍能夠容納足夠的網(wǎng)絡(luò)和主機(jī) 這種方法實(shí)質(zhì)上就是將若干個C類網(wǎng)絡(luò)合并成一個網(wǎng)絡(luò) 這個合并后的網(wǎng)絡(luò)就稱為超網(wǎng) 例如 假設(shè)一個單位擁有2000臺主機(jī) 那么InterNIC并不是給它分配一個B類網(wǎng)絡(luò) 而是分配8個C類網(wǎng)絡(luò) 每個C類網(wǎng)絡(luò)可以容納254臺主機(jī) 總共2032臺主機(jī) 能夠滿足實(shí)際需求 4 3網(wǎng)際互連協(xié)議IP 雖然這種方法有助于節(jié)約B類網(wǎng)絡(luò) 但它又導(dǎo)致新的問題 采用通常的路由選擇計算 在Internet上每個路由器的路由表中必須有8個C類網(wǎng)絡(luò)表項(xiàng)才能把IP包路由到該單位 為防止Internet路由器被過多的路由淹沒 必須采用一種稱為無類域間路由 ClasslessInter DomainRouting CIDR 的計算 把多個表項(xiàng)縮成一個表項(xiàng) 使用了CIDR后 路由表中只用一個路由表項(xiàng)就可以表示分配給該單位的所有C類網(wǎng)絡(luò) 在概念上 CIDR創(chuàng)建的路由表項(xiàng)可以表示為 起始網(wǎng)絡(luò) 數(shù)量 其中 起始網(wǎng)絡(luò) 表示的是所分配的第一個C類網(wǎng)絡(luò)地址 數(shù)量 是分配的C類網(wǎng)絡(luò)的總個數(shù) 實(shí)際上 它可以用一個超網(wǎng)子網(wǎng)掩碼來表示相同的信息 4 3網(wǎng)際互連協(xié)議IP 將8個C類網(wǎng)絡(luò)地址的二進(jìn)制表示形式列出 如表4 9所示 分析 表4 98個C類網(wǎng)絡(luò)地址 4 3網(wǎng)際互連協(xié)議IP CIDR實(shí)際上是借用部分網(wǎng)絡(luò)號來充當(dāng)主機(jī)號 在表4 9中 因?yàn)?個C類地址網(wǎng)絡(luò)號的前21位完全相同 變化的只是最后3位網(wǎng)絡(luò)號 因此 可以將網(wǎng)絡(luò)號的后3位看成是主機(jī)號 由此得到超網(wǎng)的子網(wǎng)掩碼的二進(jìn)制數(shù)為 11111111111111111111100000000000 即255 255 248 0 若用網(wǎng)絡(luò)前綴表示法來表示 可表示為210 31 224 0 21 利用CIDR實(shí)現(xiàn)地址匯總有兩個基本條件 1 待匯總地址的網(wǎng)絡(luò)號擁有相同的高位 如表4 9所示 8個待匯總的網(wǎng)絡(luò)地址的第3個位域的前5位完全相等 均為11100 2 待匯總的網(wǎng)絡(luò)地址數(shù)目必須是2n個 如2個 4個 8個 16個等 否則 可能會使匯總后的網(wǎng)絡(luò)可能包含實(shí)際中并不存在的子網(wǎng) 導(dǎo)致路由黑洞 使用可變長子網(wǎng)劃分 超網(wǎng)和CIDR配置網(wǎng)絡(luò)時 要求相關(guān)的路由器和路由協(xié)議必須能夠提供支持 IP路由信息協(xié)議版本2 RIPv2 和邊界網(wǎng)關(guān)協(xié)議版本4 BGPv4 都支持可變長子網(wǎng)劃分和CIDR 而路由信息協(xié)議版本1 RIPv1 則不支持 具體路由協(xié)議將在第六章進(jìn)行講解 4 3網(wǎng)際互連協(xié)議IP 4 3 3IP數(shù)據(jù)報 圖4 17IP數(shù)據(jù)報的格式 4 3網(wǎng)際互連協(xié)議IP IP數(shù)據(jù)報報頭包含了一些必要的控制信息 由20個字節(jié)的固定部分和變長的可選項(xiàng)部分組成 已知最高位在左邊 記為0位 最低為在右邊 記為31位 那么報頭中各字段的內(nèi)容如下 1 版本 版本字段占4位 用來表明IP協(xié)議的版本 目前廣泛使用的IP協(xié)議版本號為4 即IPv4 其版本字段為0100 2 首部長度 首部長度字段占4位 表示數(shù)據(jù)報頭的長度 3 區(qū)分服務(wù) 區(qū)分服務(wù)字段占8位 指示數(shù)據(jù)報內(nèi)容的優(yōu)先權(quán)或者優(yōu)先級 這個字段在舊標(biāo)準(zhǔn)中叫做服務(wù)類型 在一般情況下都不使用該字段 只有在使用區(qū)分服務(wù)時 這個字段才起作用 4 3網(wǎng)際互連協(xié)議IP 4 總長度 總長度字段是指整個IP數(shù)據(jù)報的長度 以字節(jié)為單位 包括數(shù)據(jù)報頭和數(shù)據(jù) 由于該字段占16位 所以IP數(shù)據(jù)報最長可達(dá)65535字節(jié) 在IP層下面的每一種數(shù)據(jù)鏈路層協(xié)議都規(guī)定了一個數(shù)據(jù)幀中的數(shù)據(jù)字段的最大長度 這個最大長度被稱為最大傳送單元 MaximumTransmissionUnit MTU 當(dāng)一個IP數(shù)據(jù)報在鏈路層封裝成幀時 此IP數(shù)據(jù)報的總長度一定不能超過數(shù)據(jù)鏈路層所規(guī)定的MTU 5 標(biāo)識符 標(biāo)識符占16位 每個數(shù)據(jù)報都必須由唯一的標(biāo)識符來標(biāo)識 以便使接收端能重裝被分段的數(shù)據(jù)包 當(dāng)IP對數(shù)據(jù)段進(jìn)行分段的時候 它將給所有的段分配一組編號 然后將這些編號放入標(biāo)識符字段 保證分段不會被錯誤地進(jìn)行重組 4 3網(wǎng)際互連協(xié)議IP 6 標(biāo)志 標(biāo)志字段占用3位 但只有低兩位有效 標(biāo)志字段的最低位記為MF MoreFragment 又稱最終分段標(biāo)志 當(dāng)MF 1時 表示該數(shù)據(jù)報后還有分片的數(shù)據(jù)報 當(dāng)MF 0時 表示該數(shù)據(jù)報是最后一個分片 標(biāo)志字段的中間一位記為DF Don tFragment 又稱禁止分段標(biāo)志 當(dāng)DF 1時 表示該數(shù)據(jù)包不能分片 當(dāng)DF 0時 才允許分片 7 片偏移 片偏移字段占13位 用于指出在較長的分組在分片后 某片在原分組中的相對位置 片偏移以8個字節(jié)為偏移單位 也就是說 每個分片的長度一定是8字節(jié) 64位 的整數(shù)倍 8 生存周期 TimeToLive TTL TTL值用于限制數(shù)據(jù)報在網(wǎng)絡(luò)中的生存時間 數(shù)據(jù)報每經(jīng)過一個路由器 該路由器將減少TTL的值 當(dāng)TTL的值為0的時候 該數(shù)據(jù)報將被丟棄 這樣可以防止一個數(shù)據(jù)報在網(wǎng)絡(luò)中無限循環(huán)地轉(zhuǎn)發(fā)下去 4 3網(wǎng)際互連協(xié)議IP 9 協(xié)議 協(xié)議字段占8位 用于指定數(shù)據(jù)區(qū)中攜帶的消息是由哪種高級協(xié)議建立的 常用的協(xié)議和相應(yīng)的協(xié)議字段值如下 10 首部校驗(yàn)和 首部校驗(yàn)和是一個16位的循環(huán)冗余校驗(yàn)碼 其值等于IP報頭內(nèi)每一個字段中包含的值的和 該字段用于保證頭部數(shù)據(jù)的完整性和傳輸?shù)恼_性 IP數(shù)據(jù)報每經(jīng)過一個路由器 路由器都檢查該校驗(yàn)和的值并進(jìn)行更新 這是因?yàn)閳箢^中的TTL值 標(biāo)志 片偏移等值可能發(fā)生變化 11 源IP地址和目的IP地址 源IP地址及目的IP地址均占32位 分別用于指定發(fā)送IP數(shù)據(jù)報的源主機(jī)地址和接收IP數(shù)據(jù)報的目的主機(jī)地址 IP數(shù)據(jù)報報頭的可選字段長度可變 從1個字節(jié)到40個字節(jié)不等 用來支持排錯 測量以及安全等措施 增加可選字段是為了增加IP數(shù)據(jù)報的功能 但同時也使得IP數(shù)據(jù)報的首部長度不固定 增加了路由器處理數(shù)據(jù)報的開銷 4 3網(wǎng)際互連協(xié)議IP 4 3 4地址解析協(xié)議 IP地址與物理地址 實(shí)際通信時 在一個網(wǎng)絡(luò)中對其內(nèi)部的一臺計算機(jī)進(jìn)行尋址所使用的地址稱為物理地址 通常將物理地址固化在網(wǎng)卡的ROM中 因此也稱其為硬件地址或MAC地址 MAC地址的長度為48位 6個字節(jié) 通常表示為12個十六進(jìn)制數(shù) 每兩個十六進(jìn)制數(shù)之間用冒號隔開 如 08 00 20 0A 8C 6D 網(wǎng)絡(luò)中每個以太網(wǎng)設(shè)備都具有唯一的MAC地址 這個地址與網(wǎng)絡(luò)無關(guān) 也就是說無論將這個硬件 如網(wǎng)卡 集線器 路由器等 接入到網(wǎng)絡(luò)的何處 它都有相同且唯一的MAC地址 4 3網(wǎng)際互連協(xié)議IP MAC地址和IP地址的相同點(diǎn)是它們都唯一 不同點(diǎn)主要體現(xiàn)在以下幾個方面 可變性不同 對于網(wǎng)絡(luò)上的某一設(shè)備 其IP地址可變 但必須唯一 而MAC地址不可變 長度不同 IP地址長度為32位 MAC地址長度為48位 分配依據(jù)不同 IP地址的分配是基于網(wǎng)絡(luò)拓?fù)涞?而MAC地址的分配是由制造商決定的 尋址協(xié)議層不同 IP地址應(yīng)用于網(wǎng)絡(luò)層 而MAC地址應(yīng)用在數(shù)據(jù)鏈路層 在OSI參考模型中 網(wǎng)絡(luò)層的數(shù)據(jù)傳輸依賴于32位的IP地址 而當(dāng)一臺主機(jī)把以太網(wǎng)數(shù)據(jù)幀發(fā)送到位于同一局域網(wǎng)上的另一臺主機(jī)時 物理網(wǎng)絡(luò)實(shí)際是根據(jù)48位的物理地址來傳輸數(shù)據(jù)的 因此 對于網(wǎng)絡(luò)中的任一硬件設(shè)備而言 它既有一個邏輯地址 IP地址 又有一個物理地址 MAC地址 需要有一種機(jī)制能夠把IP地址與對物理地址進(jìn)行映射才能完成數(shù)據(jù)的通信 4 3網(wǎng)際互連協(xié)議IP 圖4 18地址解析協(xié)議 4 3網(wǎng)際互連協(xié)議IP 地址解析協(xié)議ARP 圖4 19ARP協(xié)議的工作過程 4 3網(wǎng)際互連協(xié)議IP 1 主機(jī)A首先查看自己的高速緩存中的ARP表中是否有主機(jī)B對應(yīng)的ARP表項(xiàng) 如果找到 則直接利用該ARP表項(xiàng)中的物理地址將IP數(shù)據(jù)報封裝成幀發(fā)送給主機(jī)B 2 如果緩存表中沒有所需的表項(xiàng) 則主機(jī)A首先廣播發(fā)送一個ARP請求數(shù)據(jù)報文 請求IP地址為IPB的主機(jī)返回自己的物理地址 ARP請求數(shù)據(jù)報文中含有主機(jī)B的IP地址 以及主機(jī)A本身的IP地址和物理地址的映射關(guān)系 3 本局域網(wǎng)上包括主機(jī)B在內(nèi)的所有主機(jī)都會接收到這個查詢請求 然后將主機(jī)A的IP地址與物理地址的映射關(guān)系存入各自的ARP表中 4 主機(jī)B識別ARP請求報文后 發(fā)送一個ARP響應(yīng)報文給主機(jī)A 該報文中包含主機(jī)B的IP地址和物理地址的映射關(guān)系 5 主機(jī)A收到主機(jī)B的響應(yīng)報文后 就在其ARP高速緩存中寫入主機(jī)B的IP地址和物理地址的映射 4 3網(wǎng)際互連協(xié)議IP 知識庫 4 3網(wǎng)際互連協(xié)議IP 反向地址解析協(xié)議RARP 反向地址解析RARP一般用于無盤工作站和終端 解決已知物理地址獲取IP地址的問題 RARP的基本思想是 網(wǎng)絡(luò)中有一個RARP服務(wù)器 保存了本網(wǎng)中各個無盤工作站的地址綁定 并負(fù)責(zé)響應(yīng)這些節(jié)點(diǎn)的地址請求 新啟動的無盤工作站廣播一個RARP請求分組 分組中給出自己的物理地址 RARP服務(wù)器查找地址綁定表 用單播方式發(fā)回RARP應(yīng)答分組 給出所請求的IP地址 RARP的缺點(diǎn)在于要求每個網(wǎng)絡(luò)都要有一個RARP服務(wù)器 并且RARP響應(yīng)中只包含很少的信息 它在概念上很簡單 但是RARP服務(wù)器的實(shí)現(xiàn)卻與系統(tǒng)相關(guān) 因此 并不是所有的TCP IP實(shí)現(xiàn)都提供RARP服務(wù)器 使用RARP的常見協(xié)議是BOOTP BOOTstrapProtocol 自舉協(xié)議 和DHCP DynamicHostConfigurationProtocol 動態(tài)主機(jī)配置協(xié)議 4 3網(wǎng)際互連協(xié)議IP 4 3 5網(wǎng)際控制報文協(xié)議 概述 ICMP屬于網(wǎng)絡(luò)層協(xié)議 允許主機(jī)或路由器報告差錯情況和提供有關(guān)異常情況的報告 當(dāng)傳送IP數(shù)據(jù)報發(fā)生錯誤 比如主機(jī)不可達(dá) 路由不可達(dá)等 ICMP將會把錯誤信息封包 然后傳送回給主機(jī) 給主機(jī)一個處理錯誤的機(jī)會 這也就是為什么說建立在IP層以上的協(xié)議是可能做到安全的原因 通過之前的學(xué)習(xí)了解到IP協(xié)議并不是一個可靠的協(xié)議 它不保證數(shù)據(jù)被送達(dá) 那么 保證數(shù)據(jù)送達(dá)的工作應(yīng)該由其他的模塊來完成 其中一個重要的模塊就是網(wǎng)際控制報文協(xié)議 InternetControlMessageProtocol ICMP 4 3網(wǎng)際互連協(xié)議IP 圖4 20ICMP封裝在IP數(shù)據(jù)報內(nèi)部 4 3網(wǎng)際互連協(xié)議IP ICMP報文的種類 ICMP報文大致分為兩類 一種是查詢報文 一種是差錯報文 查詢報文 是成對出現(xiàn)的 它幫助主機(jī)或網(wǎng)絡(luò)管理員從一個路由器或另一個主機(jī)得到特定的信息 主要有以下幾種用途 Ping查詢 子網(wǎng)掩碼查詢和時間戳查詢 差錯報文 用于報告路由器或主機(jī)在處理一個IP數(shù)據(jù)報時可能遇到的一些問題 差錯報文產(chǎn)生在數(shù)據(jù)傳送發(fā)生錯誤的時候 4 3網(wǎng)際互連協(xié)議IP 盡管在大多數(shù)情況下 數(shù)據(jù)的傳送錯誤應(yīng)該給出ICMP報文 但是在如下幾種特殊情況下 是不產(chǎn)生ICMP差錯報文的 1 ICMP差錯報文不會產(chǎn)生ICMP差錯報文 ICMP查詢報文卻可能產(chǎn)生 2 目的地址是廣播地址或多播地址的IP數(shù)據(jù)報不產(chǎn)生ICMP差錯報文 3 作為鏈路層廣播的數(shù)據(jù)報不產(chǎn)生ICMP差錯報文 4 不是IP分片的第一片的不發(fā)送ICMP差錯報文 5 源地址不是單個主機(jī)的數(shù)據(jù)報 零地址 環(huán)回地址 廣播地址或多播地址 不產(chǎn)生ICMP差錯報文 4 3網(wǎng)際互連協(xié)議IP ICMP的應(yīng)用舉例 Ping是TCP IP網(wǎng)絡(luò)中一個最簡單而又非常有用的ICMP應(yīng)用程序 常用于驗(yàn)證兩個主機(jī)之間的連通性 ping在不同的實(shí)現(xiàn)中語法格式不同 在Windows操作系統(tǒng)下的應(yīng)用格式為 ping 可選參數(shù) target name 其中 target name是目的主機(jī)的名字或其IP地址 4 3網(wǎng)際互連協(xié)議IP 表4 10ping命令的常用可選參數(shù)及其含義 4 3網(wǎng)際互連協(xié)議IP 當(dāng)使用ping命令時 實(shí)際上是當(dāng)前主機(jī)發(fā)送一個ICMP回送請求報文 如果目的主機(jī)能接收到這個請求報文并且愿意作出回應(yīng) 則發(fā)送一個回送回答的ICMP報文 當(dāng)這個回應(yīng)報文能順利抵達(dá)當(dāng)前主機(jī)時 就完成了一個ping的動作 圖4 21用ping命令測試主機(jī)連通性 4 3網(wǎng)際互連協(xié)議IP ICMP另一個非常有用的應(yīng)用是tracert Windows操作系統(tǒng)下的名字 在UNIX操作系統(tǒng)下稱為traceroute tracert命令用于確定IP數(shù)據(jù)報訪問目標(biāo)所采取的路徑 其命令格式如下 tracert 可選參數(shù) target name 其中 target name是目的主機(jī)的名字或其IP地址 tracert命令的可選參數(shù)可在 命令提示符 窗口中執(zhí)行 tracert 命令進(jìn)行查看 4 3網(wǎng)際互連協(xié)議IP 圖4 22使用tracert命令獲得到目的主機(jī)的路由信息 4 3網(wǎng)際互連協(xié)議IP 4 3 6IPv6 現(xiàn)在使用的IPv4采用32位地址長度 只有大約43億個地址 估計在未來的若干年間將被分配完畢 1990年 因特網(wǎng)工程任務(wù)組 IETF 開始啟動IP新版本的設(shè)計工作 經(jīng)過多次討論 修訂和定位之后 在1993年得到了一個名為SIPP SimpleInternetProtocolPlus 的協(xié)議 即IPv6 網(wǎng)際協(xié)議第6版 4 3網(wǎng)際互連協(xié)議IP IPv6地址 IPv6地址采用十六進(jìn)制的表示方法 共128位 分8組表示 每組16位 因?yàn)橐粋€十六進(jìn)制數(shù)可以表示4位 所以每組由4個十六進(jìn)制數(shù)組成 各組之間用 隔開 每組中前面的0可以省略 但每組必須有一個數(shù) 例如 1080 0 0 0 8 800 200C 417A FEDC BA98 7654 3210 FEDC BA98 7654 3210 在IPv6地址段中有時會出現(xiàn)連續(xù)的幾組0 為了簡化書寫 這些0可以用 代替 但一個地址中只能出現(xiàn)一次 例如 4 3網(wǎng)際互連協(xié)議IP 在某些情況下 IPv4地址需要包含在IPv6地址中 這時 最后兩組用現(xiàn)在習(xí)慣使用的IPv4的十進(jìn)制表示方法 前六組表示方法同上 例如 IPv4地址61 1 133 1包含在IPv6地址中時表示為0 0 0 0 0 0 61 1 133 1 或者是 61 1 133 1 圖4 23IPv6地址的結(jié)構(gòu) 4 3網(wǎng)際互連協(xié)議IP IPv6的特點(diǎn) IPv6協(xié)議不僅是為網(wǎng)絡(luò)上的計算機(jī)設(shè)計 還應(yīng)用于所有的通信設(shè)備 如手機(jī) 無線設(shè)備 電話等 IPv6的主要特點(diǎn)如下 1 更大的地址空間 IPv6地址長度為128位 16字節(jié) 即有2128 1 3 4E 38 個地址 這一地址空間是IPv4地址空間的1E28倍 在IPv6的龐大地址空間中 目前全球連網(wǎng)設(shè)備已分配掉的地址僅占其中的極小一部分 有足夠的余量可供未來的發(fā)展之用 2 簡化的報頭和靈活的擴(kuò)展 IPv6對數(shù)據(jù)報頭作了簡化 將其基本報頭長度固定為40字節(jié) 減少了處理器開銷并節(jié)省了網(wǎng)絡(luò)帶寬 此外 IPv6定義了多種擴(kuò)展報頭 使得IPv6變得極其靈活 能提供對多種應(yīng)用的強(qiáng)力支持 同時又為以后支持新的應(yīng)用提供了可能 4 3網(wǎng)際互連協(xié)議IP 3 層次化的地址結(jié)構(gòu) IPv6的設(shè)計者把IPv6的地址空間按照不同的地址前綴來劃分 采用了層次化的地址結(jié)構(gòu) 以利于骨干網(wǎng)路由器對數(shù)據(jù)包的快速轉(zhuǎn)發(fā) 在IPv6網(wǎng)絡(luò)中 網(wǎng)絡(luò)被分為多個區(qū)域 每個區(qū)域中都有多個骨干節(jié)點(diǎn) 每個骨干節(jié)點(diǎn)匯聚多個接入網(wǎng) 站 點(diǎn) 通過接入網(wǎng)點(diǎn)連接終端網(wǎng)點(diǎn) 企業(yè)或個人用戶 提供服務(wù) IPv6定義了3種不同的地址類型 單點(diǎn)傳送地址 多點(diǎn)傳送地址和任意點(diǎn)傳送地址 所有類型的IPv6地址都屬于接口 Interface 而不是節(jié)點(diǎn) Node 一個IPv6單點(diǎn)傳送地址被賦給某一個接口 而一個接口又只能屬于某一個特定的節(jié)點(diǎn) 因此一個節(jié)點(diǎn)的任意一個接口的單點(diǎn)傳送地址都可以用來標(biāo)識該節(jié)點(diǎn) 4 3網(wǎng)際互連協(xié)議IP 4 即插即用的連網(wǎng)方式 IPv6允許主機(jī)發(fā)現(xiàn)自身地址并自動完成地址更改 這種機(jī)制既不需要用戶花精力進(jìn)行地址設(shè)定 又可以大大減輕網(wǎng)絡(luò)管理者的負(fù)擔(dān) IPv6有兩種自動設(shè)定功能 一種是和IPv4自動設(shè)定功能相同的名為 全狀態(tài)自動設(shè)定 功能 另一種是 無狀態(tài)自動設(shè)定 功能 5 網(wǎng)絡(luò)層的認(rèn)證與加密 IP安全協(xié)議 IPSec 是IPv4的一個可選擴(kuò)展協(xié)議 是IPv6的一個必須組成部分 主要功能是在網(wǎng)絡(luò)層對數(shù)據(jù)分組提供加密和鑒別等安全服務(wù) IPSec提供了認(rèn)證和加密兩種安全機(jī)制 認(rèn)證機(jī)制 使IP通信的數(shù)據(jù)接收方能夠確認(rèn)數(shù)據(jù)發(fā)送方的真實(shí)身份以及數(shù)據(jù)在傳輸過程中是否遭到改動 加密機(jī)制 通過對數(shù)據(jù)進(jìn)行編碼來保證數(shù)據(jù)的機(jī)密性 以防數(shù)據(jù)在傳輸過程中被他人截獲而失密 4 3網(wǎng)際互連協(xié)議IP 6 服務(wù)質(zhì)量的滿足 服務(wù)質(zhì)量 QualityofService QoS 通常是指通信網(wǎng)絡(luò)在承載業(yè)務(wù)時為業(yè)務(wù)提供的品質(zhì)保證 基于IPv4的Internet在設(shè)計之初 只有一種簡單的服務(wù)質(zhì)量 即采用 盡最大努力 Besteffort 傳輸 但是隨著IP網(wǎng)上多媒體業(yè)務(wù)增加 如IP電話 VoD 電視會議 對傳輸延時和延時抖動均有嚴(yán)格的要求 因此對服務(wù)質(zhì)量的要求也就越來越高 IPv6數(shù)據(jù)包的格式包含一個8位的業(yè)務(wù)流類別 Class 和一個新的20位的流標(biāo)簽 FlowLabel 它的目的是允許發(fā)送業(yè)務(wù)流的源節(jié)點(diǎn)和轉(zhuǎn)發(fā)業(yè)務(wù)流的路由器在數(shù)據(jù)包上加上標(biāo)記 中間節(jié)點(diǎn)在接收到一個數(shù)據(jù)包后 通過驗(yàn)證它的流標(biāo)簽 就可以判斷它屬于哪個流 然后就可以知道數(shù)據(jù)包的QoS需求 并進(jìn)行快速地轉(zhuǎn)發(fā) 7 對移動通信更好的支持 未來移動通信與互聯(lián)網(wǎng)的結(jié)合將是網(wǎng)絡(luò)發(fā)展的大趨勢之一 移動互聯(lián)網(wǎng)將成為我們?nèi)粘I畹囊徊糠?改變我們生活的方方面面 IPv6為用戶提供可移動的IP數(shù)據(jù)服務(wù) 讓用戶可以在世界各地都使用同樣的IPv6地址 非常適合未來的無線上網(wǎng) 4 3網(wǎng)際互連協(xié)議IP IPv4到IPv6的過渡技術(shù) 如何完成從IPv4到IPv6的轉(zhuǎn)換 是IPv6發(fā)展中需要解決的首要問題 目前 IETF已經(jīng)成立了專門的工作組研究IPv4到IPv6的轉(zhuǎn)換 并且提出了很多方案 主要包括以下幾個類型 隧道技術(shù) 路由器將IPv6的數(shù)據(jù)分組封裝入IPv4 IPv4分組的源地址和目的地址分別是隧道入口和出口的IPv4地址 當(dāng)分組到達(dá)隧道的出口處 再將IPv6分組取出轉(zhuǎn)發(fā)給目的站點(diǎn) 利用隧道技術(shù) 可以通過運(yùn)行IPv4協(xié)議的Internet骨干網(wǎng)絡(luò) 即隧道 將局部的IPv6網(wǎng)絡(luò)連接起來 因而是IPv4向IPv6過渡的初期最易于采用的技術(shù) 4 3網(wǎng)際互連協(xié)議IP 網(wǎng)絡(luò)地址轉(zhuǎn)換 協(xié)議轉(zhuǎn)換技術(shù) 網(wǎng)絡(luò)地址轉(zhuǎn)換 協(xié)議轉(zhuǎn)換 NetworkAddressTranslation ProtocolTranslation NAT PT 技術(shù) 通過與無狀態(tài)IP ICMP翻譯 SIIT 協(xié)議轉(zhuǎn)換和傳統(tǒng)的IPv4下的動態(tài)地址翻譯 NAT 以及適當(dāng)?shù)膽?yīng)用層網(wǎng)關(guān) ALG 相結(jié)合 可以實(shí)現(xiàn)只安裝IPv6的主機(jī)和只安裝了IPv4機(jī)器的大部分應(yīng)用的相互通信 4 3網(wǎng)際互連協(xié)議IP IPv6和IPv4是功能相近的網(wǎng)絡(luò)層協(xié)議 兩者都基于相同的物理平臺 而且加載于其上的傳輸層協(xié)議TCP和UDP又沒有任何區(qū)別 可以看出 如果一臺主機(jī)同時支持IPv6和IPv4兩種協(xié)議 那么該主機(jī)既能與支持IPv4的主機(jī)通信 又能與支持IPv6的主機(jī)通信 這就是雙協(xié)議棧技術(shù)的工作機(jī)理 在IPv4到IPv6的過渡過程中 作為Internet基礎(chǔ)架構(gòu)的應(yīng)用服務(wù)系統(tǒng)DNS也要支持這種網(wǎng)絡(luò)協(xié)議的升級和轉(zhuǎn)換 IPv4和IPv6的DNS在記錄格式等方面- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 計算機(jī)網(wǎng)絡(luò)技術(shù)基礎(chǔ) 盛立軍 計算機(jī)網(wǎng)絡(luò)技術(shù) 基礎(chǔ) 課件 第四
鏈接地址:http://m.appdesigncorp.com/p-7819627.html