計算機網(wǎng)絡(luò)設(shè)計與安全技術(shù) 課件7 網(wǎng)絡(luò)協(xié)議校驗與傳輸程序設(shè)計_第1頁
計算機網(wǎng)絡(luò)設(shè)計與安全技術(shù) 課件7 網(wǎng)絡(luò)協(xié)議校驗與傳輸程序設(shè)計_第2頁
計算機網(wǎng)絡(luò)設(shè)計與安全技術(shù) 課件7 網(wǎng)絡(luò)協(xié)議校驗與傳輸程序設(shè)計_第3頁
計算機網(wǎng)絡(luò)設(shè)計與安全技術(shù) 課件7 網(wǎng)絡(luò)協(xié)議校驗與傳輸程序設(shè)計_第4頁
計算機網(wǎng)絡(luò)設(shè)計與安全技術(shù) 課件7 網(wǎng)絡(luò)協(xié)議校驗與傳輸程序設(shè)計_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《計算機網(wǎng)絡(luò)設(shè)計與安全技術(shù)》第7章

網(wǎng)絡(luò)協(xié)議校驗與傳輸程序設(shè)計1學(xué)習(xí)內(nèi)容:(1)IP地址的合法性檢驗;(2)IP協(xié)議包分析;(3)IP協(xié)議的首部校驗和計算;(4)UDP協(xié)議報文封裝程序設(shè)計;(5)TCP協(xié)議報文封裝程序設(shè)計。學(xué)習(xí)目標(biāo):(1)熟練掌握IP地址劃分要點,能夠通過編程檢驗IP地址的合法性;(2)深入理解IP協(xié)議的數(shù)據(jù)格式,并能夠編程構(gòu)造IP分組;(3)通過編程,能夠設(shè)計和實現(xiàn)IP協(xié)議包的首部校驗和計算功能。(4)通過編程,能夠設(shè)計和實現(xiàn)TCP和UDP協(xié)議包的校驗和計算和報文發(fā)送功能。27.1IP地址的合法性檢驗37.1.1

IP地址的標(biāo)準(zhǔn)劃分4特殊IP地址網(wǎng)絡(luò)號主機號源地址目的地址含

義00可用不可用即,指在本網(wǎng)絡(luò)上的本主機0host-id可用不可用在本網(wǎng)絡(luò)上的某個主機host-id,如A類地址、B類地址4、C類地址1全1全1不可用可用即55,受限廣播,只在本網(wǎng)絡(luò)上進(jìn)行廣播,各路由器都不轉(zhuǎn)發(fā)net-id全1不可用可用直接廣播:對網(wǎng)絡(luò)號net-id上的所有主機進(jìn)行廣播,如A類地址55、B類地址55、C類地址55127任意數(shù)可用可用回送測試:用于網(wǎng)絡(luò)軟件測試和本地進(jìn)程間通信,如5專用地址IP地址類前綴專用地址范圍地址總數(shù)A10/8~55224B172.16/12~55220C192.168/16~5521667.1.2子網(wǎng)與超網(wǎng)編址方法(1)子網(wǎng)劃分

在劃分子網(wǎng)的情況下,路由表包含3項內(nèi)容:目的網(wǎng)絡(luò)地址、子網(wǎng)掩碼和下一跳地址。在選擇路由時,使用表項中的子網(wǎng)掩碼和目的IP地址操作,將其結(jié)果與表項中的目的網(wǎng)絡(luò)地址相比較。若相等,表明匹配,則把數(shù)據(jù)報轉(zhuǎn)發(fā)到該表項的下一跳地址。否則,執(zhí)行默認(rèn)路由等操作。(2)超網(wǎng)分類法CIDR

CIDR將32位的IP地址劃分為前綴和后綴兩部分,分別表示網(wǎng)絡(luò)和主機兩部分。兩者的長度是靈活可變的。CIDR采用斜線標(biāo)記法,即在IP地址后面加上斜線,再寫上前綴所占的位數(shù)。例如,IP地址8/20,表示前綴占20位,主機號占12位。77.1.3IP地址檢驗的程序設(shè)計方法

以下只針對IPv4標(biāo)準(zhǔn)。1)IP地址的合法性檢驗

標(biāo)準(zhǔn)劃分的IP地址,占用4個字節(jié)。其寫法是字符串格式,由3個點號分隔,每部分都是1個字節(jié),最大是255,最小是0。因此,編程時,應(yīng)先將IP地址分隔成4個部分,然后分別測試其所屬范圍,看是否屬于[0,255]。2)IP類型檢驗

若要判斷IP地址是否屬于標(biāo)準(zhǔn)分類,即A、B、C、D和E,則需要參照圖7.1給出的范圍,比對即可。表7.1和表7.2內(nèi)的IP地址,也很方便比較范圍。3)IP所屬子網(wǎng)檢驗

首先,要判斷IP地址、子網(wǎng)號和子網(wǎng)掩碼的合法性。

為了判斷某一IP地址是否屬于某一子網(wǎng),只需將二進(jìn)制IP地址與子網(wǎng)掩碼按位進(jìn)行“與”運算。若運算結(jié)果與給定子網(wǎng)地址一致,則確定該IP地址屬于給定的子網(wǎng)。87.2

IP協(xié)議包分析IPv4數(shù)據(jù)報的結(jié)構(gòu)常用的網(wǎng)絡(luò)協(xié)議協(xié)議字段值123468178889協(xié)議名ICMPIGMPGGPIPTCPEGPUDPIGRPOSPF97.3

IP協(xié)議的首部校驗和計算7.3.1設(shè)計需求示例針對IP協(xié)議包結(jié)構(gòu),2人一組,共同設(shè)計良好的人機界面,并實現(xiàn)首部校驗和的計算程序。功能包括:(1)

在界面上,用戶能夠輸入或編輯IP協(xié)議包各字段數(shù)據(jù),例如,“協(xié)議”字段應(yīng)該是下拉選擇方式;(2)

程序能夠自動檢查IP地址的合法性,且主機可用;(3)

能夠自動計算首部校驗和的值,并顯示計算結(jié)果;必須驗證程序的正確性:基于Wireshark工具所抓取的真實IP包首部數(shù)據(jù),能夠成功檢驗首部校驗和字段的計算程序。例如,以下是發(fā)出ping命令之后,捕獲ICMP包的IP首部信息,可用用來檢驗“首部校驗和”字段的計算結(jié)果。10IP首部校驗和計算程序界面設(shè)計示例11為了檢驗程序的有效性,所測數(shù)據(jù)來源于網(wǎng)絡(luò)抓包結(jié)果。采用Wireshark網(wǎng)絡(luò)協(xié)議分析工具,捕獲FTP網(wǎng)絡(luò)服務(wù)的數(shù)據(jù)包,可以觀察到IP首部的全部信息,比如標(biāo)志字段值為0×02,表示不能分片;協(xié)議字段值為0×06,屬于TCP協(xié)議;檢驗和字段值為0×84fc。可見,程序計算的校驗和也是0×84fc,與網(wǎng)絡(luò)數(shù)據(jù)包中的相同。127.3.2首部校驗和計算程序設(shè)計(1)程序設(shè)計思路重點有以下兩個方面:一要考慮收、發(fā)雙方的界面設(shè)計和測試效果展示;二要分清楚IP首部的固定部分和變化部分。固定部分包括:版本、服務(wù)類型、協(xié)議,版本僅指IPv4,而服務(wù)類型是從表7.3和表7.4查詢得到,可以設(shè)計為下拉列表方式。協(xié)議字段值參照表7.5,也應(yīng)該設(shè)計為下拉列表方式,供用戶選擇。變化部分很多,具體有:①報頭長度和選項字段的關(guān)系:如果無選項內(nèi)容,則報頭長度是固定的20字節(jié);否則,還應(yīng)加上選項和填充字段部分。②總長度及其分片信息影響了標(biāo)識、標(biāo)志和片偏移的值。輸入不同的總長度和MTU值,就會產(chǎn)生不同的分片結(jié)果。對于具體的一個分片,就會得到相應(yīng)的標(biāo)識、標(biāo)志和片偏移的值。這是界面操作和程序設(shè)計必須考慮的內(nèi)容。③生存時間:可以輸入。④源IP地址和目的IP地址:可以輸入。13(2)IP首部校驗和的計算流程①把IP數(shù)據(jù)報的校驗和字段置為0;②把首部看成以16位為單位的數(shù)字組成,依次進(jìn)行二進(jìn)制求和(注意:求和時應(yīng)將最高位的進(jìn)位保存,所以加法應(yīng)采用32位加法);③將上述加法過程中產(chǎn)生的進(jìn)位(最高位的進(jìn)位)加到低16位(采用32位加法時,即將高16位與低16位相加,之后還要把該次加法最高位產(chǎn)生的進(jìn)位加到低16位);將上述的和取反,即得到校驗和。147.3.3校驗和計算編程示例1157.3.4校驗和計算編程示例2167.4

UDP協(xié)議報文封裝程序設(shè)計在UDP報文中,字段“校驗和”的求解很重要,它涉及到偽首部和UDP報文的全部字段信息。7.4.1

UDP報文格式177.4.2

UDP的校驗和計算方法UDP的校驗和計算內(nèi)容包括3部分:偽首部、UDP首部和用戶數(shù)據(jù),即在UDP數(shù)據(jù)報前面增加一個偽首部,它是IP包的首部。

將偽首部和UDP數(shù)據(jù)報組合在一起,以16bit為單位劃分這些數(shù)據(jù)后,進(jìn)行二進(jìn)制反碼求和運算,該值的反碼就是校驗和。注意,在劃分前,校驗和字段數(shù)填0。而且,如果UDP數(shù)據(jù)部分的長度是奇數(shù),則需要在其后增補一個全0字節(jié),以便使所有數(shù)據(jù)都能構(gòu)成16bit數(shù)據(jù)。187.4.3

UDP報文封裝編程示例197.4.4

UDP報文發(fā)送編程示例207.5

TCP協(xié)議報文封裝程序設(shè)計7.5.1

TCP報文段的首部格式217.5.2

TCP報文的校驗和計算程序設(shè)計本章小結(jié)

本章內(nèi)容主要包括三方面:一是IP協(xié)議的首部校驗和計算,包括IP地址合法檢查、IP報文各字段的使用和內(nèi)容填報方法、各模塊的程序代碼等。部分字

溫馨提示

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

最新文檔

評論

0/150

提交評論