網(wǎng)絡(luò)協(xié)議分析(TCPIP):第4章 互聯(lián)網(wǎng)協(xié)議IP_第1頁
網(wǎng)絡(luò)協(xié)議分析(TCPIP):第4章 互聯(lián)網(wǎng)協(xié)議IP_第2頁
網(wǎng)絡(luò)協(xié)議分析(TCPIP):第4章 互聯(lián)網(wǎng)協(xié)議IP_第3頁
網(wǎng)絡(luò)協(xié)議分析(TCPIP):第4章 互聯(lián)網(wǎng)協(xié)議IP_第4頁
網(wǎng)絡(luò)協(xié)議分析(TCPIP):第4章 互聯(lián)網(wǎng)協(xié)議IP_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第4章互聯(lián)網(wǎng)協(xié)議IP要求:

1、掌握IP協(xié)議的特點

2、掌握IP數(shù)據(jù)報的格式

3、掌握IP數(shù)據(jù)報分片及重組機制

4、了解IP選項的使用

5、掌握IP數(shù)據(jù)報選路的原理及算法

6、掌握路由表的一般形式及默認路由的概念

7、掌握IP軟件對IP數(shù)據(jù)報的處理14.1IP層的地位與特點

1.IP層的地位

IP層是通信子網(wǎng)的最高層,提供無連接的數(shù)據(jù)報傳輸機制。目的是屏蔽底層物理網(wǎng)絡(luò)細節(jié),向上提供一致性。以太網(wǎng)幀令牌環(huán)幀IP數(shù)據(jù)報傳輸協(xié)議分組22.IP層的特點不可靠:分組可能丟失,亂序等,不做確認;無連接:每個分組都獨立對待;盡力投遞:不隨意放棄分組;提供點到點,而非端到端傳輸。3點到點無連接交付服務(wù)提供了一個其它一切賴以存在的基礎(chǔ)。端到端可靠的傳輸服務(wù)提供了應(yīng)用所依賴的更高層平臺。點到點不可靠無連接分組投遞服務(wù)端到端可靠傳輸服務(wù)應(yīng)用服務(wù)3.互聯(lián)網(wǎng)服務(wù)的三個概念層次IPTCP44.IP層的主要功能(1)無連接數(shù)據(jù)報的投遞(數(shù)據(jù)結(jié)構(gòu),靜態(tài)特性)(2)數(shù)據(jù)報尋徑(選路,操作特性)(3)差錯與報文控制(管理特性)54.2IP數(shù)據(jù)報1.IP數(shù)據(jù)報(IPDatagram)一般格式首部數(shù)據(jù)區(qū)20字節(jié)固定部分0-40字節(jié)選項與硬件無關(guān)的虛擬包包含兩部分:首部+數(shù)據(jù)區(qū)首部:固定部分+可變部分62.數(shù)據(jù)格式(數(shù)據(jù)結(jié)構(gòu))版本首部長服務(wù)類型總長度標識符分片偏移標志TTL協(xié)議首部校驗和源IP地址目的IP地址IP選項(可選)填充數(shù)據(jù)……04816317版本:占4位,通信雙方IP版本必須一致首部長:占4位,最大60字節(jié)8服務(wù)類型:占8位,1998年改名為區(qū)分服務(wù)(DifferentiatedServices)。用于提供不同的服務(wù)質(zhì)量。總長度:首部+數(shù)據(jù)之和的長度,占16位,因此,數(shù)據(jù)報最大長度為65535字節(jié).封裝成底層(網(wǎng)絡(luò)接口層)數(shù)據(jù)幀時,數(shù)據(jù)字段長度不能超過MTU。9標識符:占16位,IP軟件在存儲器中維持一個計數(shù)器,每產(chǎn)生一個數(shù)據(jù)報,

計數(shù)器就加

1,并將此值賦給標識字段。但這個“標識”并不是序號,

因為

IP是無連接的服務(wù),數(shù)據(jù)報不存在按序接收的問題。

當數(shù)據(jù)報由于長度超過網(wǎng)絡(luò)的

MTU

而必須分片時,

這個標識字段的值就被復制到所有的數(shù)據(jù)報的標識字段中。相同的標識字段的值使分片后的各數(shù)據(jù)報片最后能正確地重裝成為

原來的數(shù)據(jù)報。10標志:占3

位,但目前只有2位有意義。

標志字段中的最低位

MF=1即表示后面“還有分片”的數(shù)據(jù)報。MF=0表示這已是若干數(shù)據(jù)報片

中的最后一個。

標志字段中間的一位記為

DF(Don‘t

Fragment),

表示“不能分片”。只有當

DF=0時才允許分片。11分片偏移:占

13位,較長的分組經(jīng)分片后,某片在原分組中的相對位置。即,相對用戶數(shù)據(jù)字段的起點,

該片從何處開始。片偏移以

8個字節(jié)為偏移單位。

12TTL:占

8位,生存時間TTL

(Time

To

Live),表明數(shù)據(jù)報在網(wǎng)絡(luò)中的壽命。

由發(fā)出數(shù)據(jù)報的源點設(shè)置這個字段。

其目的是防止無法交付的數(shù)據(jù)報無限制地在因特網(wǎng)中兜圍子,

因而白白消耗網(wǎng)絡(luò)資源。最初的設(shè)計是以秒作為

TTL的單位。

每經(jīng)過一個路由器時,就把TTL減去數(shù)據(jù)報在路由器消耗掉的一段時間。

若數(shù)據(jù)報在路由器消耗的時間小于

1

秒,就把TTL值減

1。

TTL值為

0時,就丟棄這個數(shù)據(jù)報,并向源點發(fā)回超時報告

??紤]網(wǎng)絡(luò)環(huán)境復雜,現(xiàn)將TTL置為允許經(jīng)過的最大路由器個數(shù)。13協(xié)議:占

8

位,協(xié)議字段指出此數(shù)據(jù)報攜帶的數(shù)據(jù)是使用何種協(xié)議,以便使目的主機的IP層知道應(yīng)將數(shù)據(jù)部分上交給哪個協(xié)議處理過程

14首部校驗和:占

16位,只檢驗數(shù)據(jù)報的首部,

但不包括數(shù)據(jù)部分。計算步驟:

(1)16比特分組,(b0,b1…bL-1);(2)校驗和清‘0’,即bL=0(3)求所有16比特之和,x=b0+b1…+bL-1+bL

(4)把求得的和模216-1,y=xmod(216-1)(5)在(4)的基礎(chǔ)上求二進制反碼bL=-x校驗:b0+b1…+bL-1+bLmod(216-1)=0結(jié)果為‘0’時正確。思考:為何只校驗首部?154.3數(shù)據(jù)報的分片控制1.數(shù)據(jù)報的封裝

(以太網(wǎng)幀類型0800H)每個網(wǎng)絡(luò)有固定的MTU,若IP報文長度大于MTU,則需要分片2.數(shù)據(jù)分片例:IP數(shù)據(jù)報長度1400字節(jié),網(wǎng)絡(luò)MTU620字節(jié),如何分片?數(shù)據(jù)報首部數(shù)據(jù)報數(shù)據(jù)區(qū)幀頭幀數(shù)據(jù)區(qū)首部數(shù)據(jù)(1600字節(jié))數(shù)據(jù)1(600字節(jié))數(shù)據(jù)2(600字節(jié))數(shù)據(jù)3(200字節(jié))16首部數(shù)據(jù)(1600字節(jié))數(shù)據(jù)1(600字節(jié))數(shù)據(jù)2(600字節(jié))數(shù)據(jù)3(200字節(jié))首部數(shù)據(jù)1(600字節(jié))首部數(shù)據(jù)2(600字節(jié))首部數(shù)據(jù)3(200字節(jié))問題1:如何組裝分片?(1)如何標識同一個數(shù)據(jù)報的各個分片?(2)如何標識同一個數(shù)據(jù)報分片的順序?(3)如何標識同一個數(shù)據(jù)報分片的結(jié)束?解決:重新設(shè)置首部的某些字段(1)修改分片標志和片偏移量字段(2)首部其它字段復制原來數(shù)據(jù)報首部的相應(yīng)字段標識符片偏移量DFMF17標識DFMF信源機產(chǎn)生,每個數(shù)據(jù)報唯一解決了:標識同一數(shù)據(jù)報的各個分片標識分片在原來數(shù)據(jù)報文中的位置解決了:分片的順序MF(MoreFragment):片未完位

MF=0,是最后一片

MF=1,不是最后一片解決了:分片的結(jié)束DF(DonotFragment):不分片位DF=1,強制不允許分片片偏移量18首部數(shù)據(jù)1:偏移量=0,MF=1首部數(shù)據(jù)2:偏移量=75(600)MF=1首部數(shù)據(jù)3:偏移量=150(1200)MF=0首部數(shù)據(jù)(1600字節(jié))數(shù)據(jù)1(600字節(jié))數(shù)據(jù)2(600字節(jié))數(shù)據(jù)3(200字節(jié))首部數(shù)據(jù)1(600字節(jié))首部數(shù)據(jù)2(600字節(jié))首部數(shù)據(jù)3(200字節(jié))19偏移量是8的整數(shù)倍,除最后一個分片外,各分片尺寸為8字節(jié)整數(shù)倍20一個數(shù)據(jù)報可能會被多次分片Network1,MTU=1500Network2,MTU=800源主機目的主機問題2:分片首部如何設(shè)置?

(1)首部長度:若無選項,和原數(shù)據(jù)報相同,否則重新計算。(2)ID、標志域和片偏移量:如問題1所述。(3)總長度:分片首部的長度+分片數(shù)據(jù)部分的長度。(4)校驗和:必須重新計算。(5)選項:記錄路由和時間戳選項只能復制到第一個分片中。解答:第一個分片的首部復制原IP數(shù)據(jù)報的首部,并修改總長度字段,之后的分片首部重新設(shè)置。21問題3:何處重組分片?答案:目的主機優(yōu)點:(1)不會反復分片/重組(2)各分片可獨立選路(3)路由軟件簡化缺點(1)可能浪費帶寬(2)丟失可能性增加22IPv6使用路徑MTU發(fā)現(xiàn)機制,報文分片在源端進行,路由器不再分片。23找到從源端到目的端的路徑上最小的MTU(1)

源端主機使用自己的MTU對報文進行分片,之后向目的主機發(fā)送報文。(2)

路由器發(fā)現(xiàn)轉(zhuǎn)發(fā)報文的接口支持的MTU值小于報文長度,則會丟棄報文,并給源端返回一個ICMPv6差錯報文,其中包含了轉(zhuǎn)發(fā)失敗的接口的MTU。(3)源主機收到該差錯報文后,將使用報文中所攜帶的MTU重新對報文進行分片并發(fā)送。(4)

如此反復,直到目的端主機收到這個報文,從而確定報文從源端到目的端路徑中的最小MTU。3.分片重組算法-FreeBSD(1)數(shù)據(jù)結(jié)構(gòu)(RFC791標準推薦使用)◆儲存數(shù)據(jù)報ID的緩沖區(qū)◆儲存第一個分片報頭的緩沖區(qū)◆重組表◆數(shù)據(jù)緩沖區(qū)◆定時器◆數(shù)據(jù)總長度域問題1:為什么需要存儲第一個分片報頭的內(nèi)存緩沖區(qū)?解答:該分片的將首部將作為重組后的數(shù)據(jù)報的首部;問題2:如何判斷一個數(shù)據(jù)報是否需要重組?解答:MF位和片偏移量位至少一個不為‘0’。24◆用源IP、目的IP、ID、協(xié)議域唯一標識一個IP數(shù)據(jù)報;◆每個IP數(shù)據(jù)報都有一個ipq;◆所有數(shù)據(jù)報的ipq形成一個雙鏈表?!敉粩?shù)據(jù)報的每個分片對應(yīng)一個ipasfrag結(jié)構(gòu);◆同一數(shù)據(jù)報的ipasfrag組成一個雙鏈表。25ipq結(jié)構(gòu)NextPrevipq_tllipq_pipq_idipq_nextipq_previpq_srcipq_dst指向其他數(shù)據(jù)報對應(yīng)的ipq,構(gòu)成雙向鏈表。26IP數(shù)據(jù)報重組超時時間間隔。IP數(shù)據(jù)報首部中的協(xié)議。IP數(shù)據(jù)報首部中的ID。IP數(shù)據(jù)報首部中的源、目的IP地址。指向該數(shù)據(jù)報的分片ipasfrag,構(gòu)成雙向鏈表。ipasfragip_vipf_mffip_lenip_idip_ttlipf_nextipf_previp_hl

ip_offip_pip_sumdata將TOS的最后一個未用比特重新設(shè)為重組的標志位,需要重組設(shè)置為‘1’,否則為‘0’分片合并◆所有分片數(shù)據(jù)放入數(shù)據(jù)緩沖區(qū)中合并,◆再與第一個分片報頭合并。27ipasfrag結(jié)構(gòu)與IP數(shù)據(jù)報基本一樣。FreeBSD算法1收到IP數(shù)據(jù)報,檢查是否需要重組,若是,繼續(xù)2檢查數(shù)據(jù)報ID,若未出現(xiàn)在ipq鏈表中,則新建一個ipq和ipasfrag結(jié)構(gòu)3若已在ipq鏈表中,則根據(jù)ID和偏移量插入鏈表,計算已收到數(shù)據(jù)長度,若達到總長度,合并分片數(shù)據(jù)4刪除已重組數(shù)據(jù)報的ipq和ipasfrag結(jié)構(gòu)定時檢查是否超時,若是,則刪除相應(yīng)結(jié)構(gòu)并返還重組失敗狀態(tài)。283.分片重組算法-基于“洞”算法為需要重組的數(shù)據(jù)報分配固定大小緩沖區(qū)何為“洞”?將收到的分片填入重組數(shù)據(jù)報對應(yīng)緩沖區(qū),其中因未到達而未填入的分片,稱為“洞”。數(shù)據(jù)結(jié)構(gòu)洞頭hole.first:第一個字節(jié)洞尾hole.last:最后一個字節(jié)293.分片重組算法-基于“洞”算法算法步驟1為需要重組的新數(shù)據(jù)報創(chuàng)建緩沖區(qū)2收到分片,填入相應(yīng)位置,更新數(shù)據(jù)結(jié)構(gòu)300140028007999First=175*8=1400Last=1400+(1420-20)-1=27990800140028007999First=0*8=0Last=0+(820-20)-1=7990800140028003999MF=0First=350*8=2800Last=2800+(1220-20)-1=39990800140028003999First=100*8=800Last=800+(620-20)-1=13994.4數(shù)據(jù)報選項功能:用于網(wǎng)絡(luò)測試、調(diào)試或控制。包括:(1)記錄數(shù)據(jù)報經(jīng)過的路由(2)記錄數(shù)據(jù)報經(jīng)過的路由和時間(3)源端指定必須經(jīng)過的路由(4)路徑MTU發(fā)現(xiàn)1.選項格式COPY選項類選項號代碼(1B)長度(1B)數(shù)據(jù)(不固定)COPY:控制數(shù)據(jù)報分片對選項的拷貝

COPY=1,所有分片均復制該選項

COPY=0,僅第一個分片復制該選項選項類:對選項功能的大分類

(10:測試和度量)31常用的選項類號含義03Loosesourcerouting07Recordroute09Strictsourcerouting24Timestamp32選項號與選項類結(jié)合,確定使用的選項。

2.記錄路由選項記錄從信源到信宿所經(jīng)過的各路由器IP地址。用途:測試路由軟件等。過程:信源機設(shè)定空表,規(guī)定選項長度,各路由器把自己的地址依次填在表中。代碼(7)長度指針第1個路由器的IP地址第2個路由器的IP地址……說明:COPY=0,最多只能放9個路由器地址指針:指向下一個可存放的位置,路由器把自己的地址寫入表中后,指針后移。333.時間戳選項用途:分析網(wǎng)絡(luò)系統(tǒng)吞吐率、擁塞、負載、時延等。代碼(68)長度指針第1個路由器的IP地址第1個路由器的時間戳……溢出標志最多只能記錄4個路由器IP地址和時間戳溢出:由于無空間而未能記下時間戳的路由器個數(shù)標志:

=0:只記錄時間戳

=1:記錄IP地址和時間戳

=3:發(fā)送方填入IP地址,匹配的路由器填寫時間戳344.源路由選項規(guī)定的數(shù)據(jù)報必須經(jīng)過的路徑用途:測試某特定網(wǎng)絡(luò)吞吐量;判斷網(wǎng)絡(luò)拓撲結(jié)構(gòu);繞開某危險網(wǎng)絡(luò)。嚴格源路由:指定完備路徑寬松源路由:指定路徑要點代碼(137/131)長度指針第1個路由器的IP地址第2個路由器的IP地址……路由器對源路由選項的處理過程:根據(jù)下一目標轉(zhuǎn)發(fā)數(shù)據(jù)報,將下一目標地址作為目的IP地址;用出口IP地址覆蓋入口IP地址;下移指針重復上述過程,直到到達目的主機dest=D{#R11,R21,R31}R1R2R3SDR11R12R21R22R31R32dest=R11{#R21,R31,D}dest=R21{R12,#R31,D}dest=R31{R12,R22,#D}dest=D{R12,R22,R32#}36ipconfig命令:查看本機網(wǎng)絡(luò)配置情況37與IP選項相關(guān)的命令:ping–rping–sping–jping–k記錄路由時間戳松散源路由嚴格源路由381.源路由攻擊原理:截獲數(shù)據(jù)包后,改變包中的路由選項,把數(shù)據(jù)包路由到攻擊者可控的路由器上。例:主機A與B之間建立TCP通信,C為攻擊者C偽造A發(fā)送SYN到B機器,指定一個讓B返回到A的路由,然后B會按照這個路由返回SYN和ACK序列號給A,這樣C就可以輕松知道ACK序列號,那么三次握手連接可以由C來偽造實現(xiàn)。4.5IP協(xié)議的一些安全問題394.5IP協(xié)議的一些安全問題2.分片攻擊(1)TinyFragment:發(fā)送極小分片,讓TCP報頭的端口號包含在第二個分片中,繞過防火墻或者IDS過濾系統(tǒng)。(nmap-f)40(2)PingofDeath:發(fā)送長度超過65535的IP報(封裝了ICMPEchoRequest包),目標主機重組分片時會造成事先分配的65535字節(jié)緩沖區(qū)溢出,系統(tǒng)通常會崩潰或者掛起。MF=0(最后一片),報文長度為49,偏移量為0x1FFE重組后長度為0x1FFE*8+(49-20)=6554941(3)teardrop:第二個IP分片偏移量小于第一個分片結(jié)束的位置,出現(xiàn)重疊,導致系統(tǒng)異常。分片1:MF=1,偏移量=0,長度為36(不含IP首部)分片2:MF=0,偏移量=3,偏移字節(jié)數(shù)0x3*8=24424.6選路的概念

1、選路尋找一條將分組從信源傳往信宿的傳輸路徑的過程。2、直接選路和直接投遞信源和信宿在同一物理網(wǎng)絡(luò)上。信宿處于當前路由器直連的網(wǎng)絡(luò)上。3、間接選路和間接投遞信源和信宿不在同一物理網(wǎng)絡(luò)上或者信宿不在當前路由器直連的網(wǎng)絡(luò)上。IP要解決的問題:間接選路434.7選路的表示:路由表1、選路方式:表驅(qū)動:每個主機和路由器都有一張路由表,指明去往某信宿應(yīng)該走哪條路徑。選路時,查詢路由表。

2、路由表格式信宿地址去往信宿的路徑不是主機地址,而是網(wǎng)絡(luò)地址不是完整路徑,而是(nexthop)下一跳地址目標網(wǎng)絡(luò)1的網(wǎng)絡(luò)號到達網(wǎng)絡(luò)1的下一跳路由器IP目標網(wǎng)絡(luò)2的網(wǎng)絡(luò)號到達網(wǎng)絡(luò)2的下一跳路由器IP………44路由表示例網(wǎng)絡(luò)10.0.0.0網(wǎng)絡(luò)20.0.0.0網(wǎng)絡(luò)30.0.0.0網(wǎng)絡(luò)40.0.0.010.0.0.520.0.0.520.0.0.630.0.0.630.0.0.740.0.0.720.0.0.0直接投遞30.0.0.0直接投遞10.0.0.020.0.0.540.0.0.030.0.0.7453、路由表的特殊表目(1)默認路由:信息隱藏、保持路由表更小的技術(shù)。每一網(wǎng)絡(luò)到外部的出口總是非常有限的幾個,對很多信宿網(wǎng)絡(luò)來說,出口總是同一個。方法:把不在路由表中列出的網(wǎng)絡(luò)統(tǒng)一到一個出口。(2)特定主機路由:為某個指定主機在路由表中單設(shè)一項。用途:測試網(wǎng)絡(luò)連通性、路由表正確性、安全性等。464.8選路的執(zhí)行1、路由選擇的依據(jù)

(1)網(wǎng)絡(luò)負載(2)數(shù)據(jù)報文的長度(3)服務(wù)類型實際中:基于最短路徑的假設(shè)。2、路由選擇的參與者路由器負責數(shù)據(jù)在各個不同網(wǎng)絡(luò)之間的傳輸時的路由選擇。問題1:主機是否參與路由選擇?

Y!

問題2:主機是否應(yīng)該轉(zhuǎn)發(fā)它收到的IP數(shù)據(jù)報?

N!473、選路總控算法RouteDatagram(Datagram,RoutingTable)從數(shù)據(jù)報中提取目的IP地址D,并計算網(wǎng)絡(luò)前綴N;ifN與任何直接相連的網(wǎng)絡(luò)地址匹配

then通過該網(wǎng)絡(luò)把數(shù)據(jù)報交付到目的地elseif表中包含特定于具體主機的一個到D的路由

then把數(shù)據(jù)報發(fā)送到表中指定的下一跳elseif表中包含到網(wǎng)絡(luò)N的一個路由

then把數(shù)據(jù)報發(fā)送到表中指定的下一跳elseif表中包含的一個默認路由

then把數(shù)據(jù)報發(fā)送到表中指定的默認路由器else宣布選路出錯484、IP軟件對數(shù)據(jù)報的處理主機:主機不轉(zhuǎn)發(fā)數(shù)據(jù)報。是自己的:交上層;不是自己的:丟棄。路由器:若是自己的,交上層;若是鄰網(wǎng),直接投遞;其它的轉(zhuǎn)發(fā)。(TTL–1,重新計算校驗和)49IP協(xié)議不涉及選路技術(shù)細節(jié),只描述原理和規(guī)則,具體選路技術(shù)指路由表的建立與刷新,由專門的路由協(xié)議完成路

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論