版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、網(wǎng)絡(luò)協(xié)議分析與實(shí)現(xiàn)習(xí)題解答參考思路第1章習(xí)題解答參考思路習(xí)題1:該題考查對(duì)異構(gòu)網(wǎng)絡(luò)互聯(lián)概念、異構(gòu)網(wǎng)絡(luò)涉及的問(wèn)題以及解決方法的理解程度。其中涉及的問(wèn)題包括地址問(wèn)題、包格式轉(zhuǎn)換問(wèn)題、路由問(wèn)題等,其中1.1.3節(jié)還列舉了很多其他的問(wèn)題。習(xí)題2:該題可參考教材中所講述的用戶A和用戶B的數(shù)據(jù)轉(zhuǎn)換和傳輸過(guò)程進(jìn)行解答。習(xí)題3:該題主要考查網(wǎng)上查找資料的能力。在/網(wǎng)站上可以查到所有的RFC信息。習(xí)題4:TCP/IP模型和OSI參考模型之間的層次對(duì)應(yīng)關(guān)系及各層協(xié)議參見(jiàn)教材中的圖1-5。習(xí)題5:該題主要考查動(dòng)手能力,可以使用Wireshark(曾稱為Ethereal
2、)、Sniffer Portable等軟件進(jìn)行抓包,然后針對(duì)一些具體報(bào)文進(jìn)行分析。注意分析通信中的多路復(fù)用和多路分解過(guò)程,說(shuō)出通信雙方的物理地址、IP地址和端口地址。習(xí)題6:該題主要考查閱讀代碼的能力,這部分代碼是對(duì)數(shù)據(jù)結(jié)構(gòu)課程中隊(duì)列操作的一個(gè)實(shí)現(xiàn)。該隊(duì)列是一個(gè)基于優(yōu)先級(jí)排序的隊(duì)列,主要的數(shù)據(jù)結(jié)構(gòu)是qinfo:structqinfo Boolq_valid;intq_type;/* mutex type*/intq_max;intq_count;intq_seen;intq_mutex;int*q_key;char*q_elt;具體操作如下:int enq(int q, void *elt,
3、int key);/*入隊(duì)列操作,根據(jù)key的大小插到隊(duì)列中的合適位置*/void * deq(int q);/*出隊(duì)列操作*/void * headq(int q);/*獲取隊(duì)列頭部元素*/void * seeq(int q);/*按順序取隊(duì)列元素*/int newq(unsigned size, unsigned mtype);/*分配一個(gè)新的隊(duì)列,并返回隊(duì)列的索引位置*/int freeq(int q);/*釋放隊(duì)列*/int lenq(int q);/*獲取隊(duì)列長(zhǎng)度*/static int initq();/*初始化隊(duì)列*/43第2章習(xí)題解答參考思路習(xí)題1:該題主要考查對(duì)HDLC概念的
4、理解程度,答案參見(jiàn)2.1節(jié)。習(xí)題2:該題主要考查對(duì)SLIP、PPP之間的關(guān)系,PPP對(duì)SLIP的改進(jìn)以及PPPoE的概念的理解程度。SLIP和PPP可以在教材中找到參考資料,PPPoE可以到網(wǎng)上或RFC中查找參考資料。PPPoE全稱為Point to Point Protocol over Ethernet(以太網(wǎng)上的點(diǎn)對(duì)點(diǎn)協(xié)議),簡(jiǎn)單地說(shuō),就是以太網(wǎng)和PPP結(jié)合后的協(xié)議,目前廣泛應(yīng)用在ADSL接入方式中。通過(guò)PPPoE技術(shù)和寬帶調(diào)制解調(diào)器(比如ADSL Modem)可以實(shí)現(xiàn)高速寬帶網(wǎng)的個(gè)人身份驗(yàn)證訪問(wèn),為每個(gè)用戶創(chuàng)建虛擬撥號(hào)連接,這樣就可以高速連接入因特網(wǎng)。(1)PPP在SLIP的基礎(chǔ)上的改
5、進(jìn)之處 提供了校驗(yàn)機(jī)制,可以對(duì)每一幀進(jìn)行檢查; 提供了IP地址的動(dòng)態(tài)協(xié)商機(jī)制,使通信雙方能夠得知對(duì)方的IP地址; 在一條串行鏈路上提供了對(duì)多協(xié)議的支持; 提供了對(duì)TCP和IP數(shù)據(jù)報(bào)首部的壓縮機(jī)制。(2)PPPoE和PPP的關(guān)系PPP提供了一種標(biāo)準(zhǔn)的方式在點(diǎn)對(duì)點(diǎn)的鏈路上傳輸多種網(wǎng)絡(luò)層協(xié)議的數(shù)據(jù)報(bào)。它要求通信雙方之間是點(diǎn)到點(diǎn)的關(guān)系,由于不適用于廣播類型的以太網(wǎng)和另外一些多點(diǎn)訪問(wèn)類型的網(wǎng)絡(luò),因此就產(chǎn)生了PPPoE。在實(shí)際應(yīng)用中,PPPoE利用以太網(wǎng)的工作機(jī)理,將ADSL Modem的10BASE-T接口與內(nèi)部以太網(wǎng)互聯(lián),在ADSL Modem中采用RFC1483的橋接封裝方式對(duì)終端發(fā)出的PPP報(bào)文進(jìn)
6、行LLC/SNAP封裝后,通過(guò)連結(jié)兩端的PVC在ADSL Modem與網(wǎng)絡(luò)側(cè)的寬帶接入服務(wù)器之間建立連接,實(shí)現(xiàn)PPP的動(dòng)態(tài)接入。PPPoE接入利用在網(wǎng)絡(luò)側(cè)和ADSL Modem之間的一條PVC(永久虛擬電路)就可以完成以太網(wǎng)上多用戶的共同接入,實(shí)際組網(wǎng)方式簡(jiǎn)單,實(shí)用方便,大大降低了網(wǎng)絡(luò)的復(fù)雜程度。PPPoE的實(shí)質(zhì)就是以太網(wǎng)和撥號(hào)網(wǎng)絡(luò)之間的一個(gè)中繼協(xié)議,它繼承了以太網(wǎng)的快速和PPP撥號(hào)的簡(jiǎn)單、用戶驗(yàn)證、IP分配等優(yōu)點(diǎn)。 (3)PPPoE的工作流程PPPoE提供了在廣播式網(wǎng)絡(luò)(如以太網(wǎng))中多臺(tái)主機(jī)連接到遠(yuǎn)端的訪問(wèn)集中器上的一種標(biāo)準(zhǔn)。在這種網(wǎng)絡(luò)模型中,不難看出所有用戶的主機(jī)都需要能獨(dú)立地初始化自己的
7、PPP協(xié)議棧,而且通過(guò)PPP本身所具有的一些特點(diǎn)能在廣播式網(wǎng)絡(luò)上對(duì)用戶進(jìn)行計(jì)費(fèi)和管理。為了能在廣播式網(wǎng)絡(luò)上建立、維持各主機(jī)與訪問(wèn)集中器之間點(diǎn)對(duì)點(diǎn)的關(guān)系,需要每個(gè)主機(jī)與訪問(wèn)集中器之間建立唯一的點(diǎn)到點(diǎn)的會(huì)話。PPPoE共包括兩個(gè)階段,即PPPoE的發(fā)現(xiàn)階段(PPPoE Discovery Stage)和PPPoE的會(huì)話階段(PPPoE Session Stage)。 發(fā)現(xiàn)階段:此階段用來(lái)建立連接,如下圖所示,當(dāng)一個(gè)用戶主機(jī)想開(kāi)始一個(gè)PPPoE會(huì)話時(shí),首先必須經(jīng)過(guò)發(fā)現(xiàn)階段以識(shí)別PPPoE Server的以太網(wǎng)MAC地址,并建立一個(gè)PPPoE會(huì)話標(biāo)識(shí)(Session ID)。如上圖所示,該階段的基本工
8、作流程由4個(gè)步驟組成。PADI:如果要建立一條PPPoE連接,首先PPPoE客戶端要以廣播的方式發(fā)送一個(gè)PADI(PPPoE Active Discovery Initiation)報(bào)文,PADI報(bào)文包括客戶端請(qǐng)求的服務(wù)。PADO:在PPPoE服務(wù)器(BRAS)收到一個(gè)PADI報(bào)文之后,它會(huì)判斷自己是否能夠提供服務(wù),如果能夠提供服務(wù),就會(huì)向客戶端發(fā)送PADO(PPPoE Active Discovery Offer)報(bào)文來(lái)進(jìn)行回應(yīng)。PADO報(bào)文包括PPPoE服務(wù)器名稱和與PADI報(bào)文中相同的服務(wù)名;如果PPPoE服務(wù)器不能為PADI提供服務(wù),則不允許用PADO報(bào)文應(yīng)答。PADR:由于PADI是
9、以廣播的形式發(fā)送出去的,PPPoE客戶端可能會(huì)收到不止一個(gè)PADO報(bào)文,它將審查所有接收到的PADO報(bào)文并根據(jù)其中的服務(wù)器名或所提供的服務(wù)選擇一個(gè)PPPoE服務(wù)器,同時(shí)向選中的服務(wù)器發(fā)送PADR(PPPoE Active Discovery Request)報(bào)文。PADR報(bào)文包括客戶端所請(qǐng)求的服務(wù)。PADS:當(dāng)PPPoE服務(wù)器收到客戶端發(fā)送的PADR報(bào)文時(shí),它準(zhǔn)備開(kāi)始一個(gè)PPPoE會(huì)話。它為PPPoE會(huì)話創(chuàng)建一個(gè)唯一的PPPoE會(huì)話標(biāo)識(shí),并向客戶端發(fā)送PADS(PPPoE Active Discovery Session- confirmation)報(bào)文作為應(yīng)答。當(dāng)發(fā)現(xiàn)階段正常結(jié)束后,通信的兩
10、端都會(huì)獲得會(huì)話標(biāo)識(shí)和對(duì)方的MAC地址,它們一起唯一定義一個(gè)PPPoE會(huì)話。 會(huì)話階段:PPPoE進(jìn)入PPP會(huì)話階段后,客戶端和服務(wù)器將進(jìn)行標(biāo)準(zhǔn)的PPP協(xié)商,PPP協(xié)商通過(guò)后,數(shù)據(jù)通過(guò)PPP封裝發(fā)送。PPP報(bào)文作為PPPoE幀的凈荷被封裝在以太網(wǎng)幀內(nèi),發(fā)送到PPPoE鏈路的對(duì)端。會(huì)話標(biāo)識(shí)必須是發(fā)現(xiàn)階段確定的標(biāo)識(shí),并且在會(huì)話過(guò)程中保持不變,MAC地址必須是對(duì)端的MAC地址。在會(huì)話階段的任意時(shí)刻,PPPoE服務(wù)器和客戶端都可向?qū)Ψ桨l(fā)送PADT(PPPoE Active Discovery Terminate)報(bào)文通知對(duì)方結(jié)束本會(huì)話。收到PADT以后,就不再允許使用該會(huì)話發(fā)送PPP流量了。在發(fā)送或接收
11、到PADT報(bào)文后,即使是常規(guī)的PPP結(jié)束報(bào)文也不允許發(fā)送。一般情況下,PPP通信雙方使用PPP報(bào)文自身來(lái)結(jié)束PPPoE會(huì)話,但在無(wú)法使用PPP時(shí)可以使用PADT來(lái)結(jié)束會(huì)話。(4)幀結(jié)構(gòu)及其應(yīng)用版本4位類型4位代碼8位會(huì)話標(biāo)識(shí)16位長(zhǎng)度16位凈載荷發(fā)現(xiàn)階段承載一些標(biāo)記會(huì)話階段承載PPP報(bào)文PPPoE作為寬帶網(wǎng)接入的一種有效方法,不但可以防止IP被盜用,還有利于開(kāi)展多服務(wù)、速率限制和按時(shí)按流量計(jì)費(fèi)等多方面的應(yīng)用。習(xí)題3:該題主要考查對(duì)CSMA/CD和CSMA/CA協(xié)議,以及無(wú)線網(wǎng)絡(luò)中“隱藏站”問(wèn)題的理解程度。習(xí)題4: XINU操作系統(tǒng)源代碼etherlance目錄下存放的是AMD 7990 Lan
12、ce以太網(wǎng)控制器驅(qū)動(dòng)實(shí)現(xiàn)程序源代碼,其中ethdemux函數(shù)實(shí)現(xiàn)了該控制器接收到以太幀后所要進(jìn)行的多路分解操作。該函數(shù)首先進(jìn)行一些檢查,然后進(jìn)行數(shù)據(jù)幀的復(fù)制,并最終轉(zhuǎn)入ni_in()函數(shù),進(jìn)行網(wǎng)絡(luò)接口層的多路分解。/* ethdemux.c - ethdemux */#include #include #include /*- * ethmudex -選擇一個(gè)端口發(fā)送一個(gè)傳入的數(shù)據(jù)報(bào)(ETHER端或者其他) *-*/ /*首先檢查來(lái)自網(wǎng)絡(luò)的數(shù)據(jù)幀的正確性,然后申請(qǐng)緩沖區(qū)以存儲(chǔ)數(shù)據(jù)幀,最后將數(shù)據(jù)幀交由ni_in()函數(shù)處理*/int ethdemux(etptr, bn)struct etblk
13、 *etptr; /*以太網(wǎng)控制塊描述*/int bn;structbre*pbre;structle_md*pmd; /*消息描述符*/structotblk*otptr;structep*pep; /*以太網(wǎng)的幀結(jié)構(gòu)*/intnoth, readlen, errs, ifnum;char*dest;ifnum = etptr-etintf; /*端口號(hào)*/pbre = &etptr-etbrrbn;pmd = pbre-pmd;errs = pmd-lmd_flags & (RMD_FRAM|RMD_OFLO|RMD_CRC|RMD_BUFF);if ( errs != 0) if (er
14、rs & RMD_FRAM)kprintf(ethread: framing errorn);if (errs & RMD_OFLO)kprintf(ethread: buffer overflown);if (errs & RMD_CRC)kprintf(ethread: CRC errorn);if (errs & RMD_BUFF)kprintf(ethread: dont own next buffern);goto drop;readlen = pmd-lmd_mcnt; /*消息的長(zhǎng)度(實(shí)際長(zhǎng)度) */if (readlen (EP_DLEN+18) /*長(zhǎng)度是否合法*/goto
15、drop;pep = (struct ep *)nbgetbuf(Npool); /*申請(qǐng)幀緩沖區(qū)*/if (pep = 0) /*申請(qǐng)失敗*/if (ifnum = 0 & ifnum ep_eh, pbre-buf, readlen-EP_CRC); /*將網(wǎng)卡緩沖區(qū)中的信息復(fù)制到幀緩沖區(qū)*/pmd-lmd_flags = LMD_OWN; /*將使用權(quán)還給以太網(wǎng)卡*/pbre-flags = 0; /*標(biāo)志位清零*/#ifNoth 0/*其他設(shè)備端口*/dest = (char *)pep-ep_dst;for (noth=0; nothetothnoth;if (otptr = 0 |
16、 !otptr-ot_valid)continue; if (blkequ(dest, otptr-ot_paddr, EP_ALEN) |blkequ(dest, otptr-ot_baddr, EP_ALEN)break;if (noth != Noth)ifnum = otptr-ot_intf;#endifif (ifnum ep_type = net2hs(pep-ep_type); /*將幀類型字節(jié)序轉(zhuǎn)換為本機(jī)字節(jié)序*/*ni_in函數(shù)可以根據(jù)幀類型來(lái)判斷多路分解*/ni_in(&nififnum, pep, readlen); /*調(diào)用ni_in函數(shù)來(lái)處理數(shù)據(jù)幀*/return
17、OK;drop:if (ifnum = 0 & ifnum lmd_flags = LMD_OWN; /*交還使用權(quán)*/pbre-flags = 0;return SYSERR; 流程圖如下:習(xí)題5:dot2ip()函數(shù)和ip2dot()函數(shù)實(shí)現(xiàn)了字符串形式的點(diǎn)分十進(jìn)制格式的IP地址與32位IP地址格式之間的相互轉(zhuǎn)換。/* dot2ip.c - dot2ip */#include #include #include /*- * dot2ip -將字符串形式的點(diǎn)分十進(jìn)制格式IP地址轉(zhuǎn)換為一個(gè)沒(méi)有小數(shù)點(diǎn)的IP地址 *- */ dot2ip(const char *pdot)/*參數(shù)pdot是一個(gè)指
18、向字符數(shù)組的指針,字符數(shù)組每個(gè)單元存儲(chǔ)IP地址的一個(gè)字節(jié): */IPaddrip; /*IPaddr是個(gè)無(wú)符號(hào)長(zhǎng)整型*/unsigned char*p;/*定義一個(gè)指向字符數(shù)組的指針,但此指針并沒(méi)有指向真正的內(nèi)存空間*/inti;ip = 0;p = (unsigned char *)&ip; /*使字符數(shù)組指針p指向起始地址是&ip的內(nèi)存單元*/for (i=0; pdot & *pdot & iIP_ALEN; +i) /*如果pdot指針不為空,并且它所指向的內(nèi)容也不為空,而且iip的長(zhǎng)度*/*p+ = atoi(pdot); /*將IP地址的一個(gè)字節(jié)保存到指針
19、p所指向的內(nèi)存單元中*/if (pdot = index(pdot, .)/*判斷pdot是否指向字符數(shù)組的最后一個(gè)單元,并且跳過(guò).單元*/+pdot;elsebreak;return ip; /*返回存儲(chǔ)IP地址首單元的地址*/* ip2dot.c - ip2dot */#include #include #include /*- * ip2dot - 將一個(gè)沒(méi)有小數(shù)點(diǎn)的IP地址轉(zhuǎn)換為字符串形式的點(diǎn)分十進(jìn)制格式IP地址 *- */ char * ip2dot(char *pdot, IPaddr ip) /*pdot指向一個(gè)字符數(shù)組,用于存儲(chǔ)轉(zhuǎn)換后的IP地址;IP是沒(méi)有小數(shù)點(diǎn)的IP地址的首地
20、址*/char*pch = pdot;inti;sprintf(pch, %u, (char *)&ip)0 & 0xff); /*將IP地址第一個(gè)字節(jié)的值存入pch所指向的字符數(shù)組的第一個(gè)單元中*/pch += strlen(pch); /*pch跳過(guò)長(zhǎng)度為strlen(pch)的內(nèi)存單元,即指向下一個(gè)單元*/for (i=1; iIP_ALEN; +i) sprintf(pch, .%u, (char *)&ip)i & 0xff);/*將.及IP地址的下一個(gè)字節(jié)保存到pch指向的單元*/pch += strlen(pch);/*pch跳過(guò)長(zhǎng)度為strlen(pch)的內(nèi)存單元,即指向下一
21、個(gè)單元*/*pch = NULL; /*指針置空*/return pdot; /*返回指向字符串形式的點(diǎn)分十進(jìn)制格式IP地址的首地址*/習(xí)題6:Netmatch()函數(shù)用于判斷一個(gè)IP地址是否屬于某個(gè)網(wǎng)絡(luò),netnum()函數(shù)用于判斷一個(gè)IP地址的類別。這兩個(gè)函數(shù)都是采用C語(yǔ)言的位操作來(lái)完成的。/* netmatch.c - netmatch */#include #include #include /*- * netmatch 檢查目的IP地址是否在此網(wǎng)絡(luò)中 *- */ Bool netmatch(IPaddr dst, IPaddr net, IPaddr mask, Bool isloc
22、al)if (dst & mask) != (net & mask)/*IP地址跟子網(wǎng)掩碼進(jìn)行與運(yùn)算的結(jié)果就是網(wǎng)絡(luò)號(hào),以此來(lái)判斷dst在不在該網(wǎng)絡(luò)上*/return FALSE;/* * local srcs should only match unicast (單一傳播) addresses (host routes) */if (islocal) /*判斷是否來(lái)自于本地網(wǎng)絡(luò)*/if (isbrc(dst) | IP_CLASSD(dst)/如果dst是廣播地址或是組播地址*/return mask != ip_maskall; /*如果是來(lái)自于本地網(wǎng)絡(luò)并且是廣播地址或是組播地址,那么發(fā)送該
23、廣播幀的主機(jī)就不需要接收此廣播幀,于是將自己置成不匹配此網(wǎng)絡(luò),就不會(huì)再收到此廣播幀了*/return TRUE;/* netnum.c - netnum */#include #include #include /*- * netnum - 用來(lái)得到某個(gè)IP地址的網(wǎng)絡(luò)號(hào) *- */ netnum(IPaddr ipa)IPaddrmask = 0; /*初始化為0*/if (IP_CLASSA(ipa) mask = hl2net(0xff000000); /*得到A類地址的子網(wǎng)掩碼*/if (IP_CLASSB(ipa) mask = hl2net(0xffff0000);
24、 /*得到B類地址的子網(wǎng)掩碼*/if (IP_CLASSC(ipa) mask = hl2net(0xffffff00); /*得到C類地址的子網(wǎng)掩碼*/return ipa & mask; /*得到網(wǎng)絡(luò)號(hào),即網(wǎng)絡(luò)地址*/第3章習(xí)題解答參考思路習(xí)題1:本題主要考查對(duì)ARP軟件整體結(jié)構(gòu)的理解程度,并幫助學(xué)生梳理ARP軟件中函數(shù)之間的關(guān)系,從而更好地掌握ARP軟件中函數(shù)的功能和處理機(jī)制。詳細(xì)描述請(qǐng)參照3.3節(jié)。習(xí)題2:本題主要考查對(duì)ARP報(bào)文處理算法的理解程度,并幫助學(xué)生進(jìn)一步理解ARP報(bào)文處理算法。報(bào)文處理算法可以概括為三個(gè)部分:當(dāng)報(bào)文交付給arp
25、_in()函數(shù)時(shí),該算法首先確認(rèn)該報(bào)文是否為合法報(bào)文及特征是否與接口相符;然后查詢ARP緩沖區(qū)表項(xiàng),若不存在對(duì)應(yīng)表項(xiàng)且確認(rèn)該報(bào)文是發(fā)往本機(jī),則直接創(chuàng)建新表項(xiàng),再根據(jù)該報(bào)文對(duì)表項(xiàng)進(jìn)行修改操作;最后根據(jù)該ARP報(bào)文是否為ARP請(qǐng)求來(lái)決定下一步操作,構(gòu)造一個(gè)ARP應(yīng)答報(bào)文或清理該ARP報(bào)文。ARP報(bào)文處理算法的利弊分析如下:在正常操作下,這是一種很有效率的處理算法,簡(jiǎn)單明了快捷。但是由算法分析可知,arp_in()函數(shù)“不計(jì)后果”地使用當(dāng)前處理的ARP報(bào)文中的創(chuàng)建新緩沖區(qū)或者修改已存在的緩沖表項(xiàng),沒(méi)有使用任何保護(hù)手段或者措施。ARP攻擊者很容易利用這一缺陷,發(fā)送ARP欺騙報(bào)文。習(xí)題3:主機(jī)發(fā)送IP數(shù)
26、據(jù)報(bào)是通過(guò)調(diào)用netwrite()函數(shù)來(lái)實(shí)現(xiàn)的,因此分析netwrite()函數(shù)即可了解IP數(shù)據(jù)報(bào)的發(fā)送過(guò)程。詳細(xì)描述請(qǐng)參考3.5節(jié)。習(xí)題4:Arpalloc.c代碼如下:/*-* 在ARP緩沖區(qū)表中分配一個(gè)表項(xiàng) * -*/struct arpentry *arpalloc()/*緩沖區(qū)表中所指的當(dāng)前表項(xiàng),這里采用的是循環(huán)隊(duì)列的數(shù)據(jù)結(jié)構(gòu),故需要記錄當(dāng)前表項(xiàng)所處的位置*/static int aenext = 0;struct arpentry *pae; /*返回值*/inti;for (i=0; iae_state = AS_PENDING & pae-ae_queue = 0)arpdq(
27、pae);pae-ae_state = AS_PENDING;return pae;習(xí)題5:ARP攻擊原理:由習(xí)題2可知,ARP報(bào)文處理算法只檢查ARP報(bào)文格式的合法性,隨即直接根據(jù)該報(bào)文內(nèi)容修改ARP表項(xiàng),這一處理方式為網(wǎng)絡(luò)攻擊者提供了“可乘之機(jī)”。ARP攻擊分為兩類:(1)ARP欺騙攻擊即通過(guò)偽造并發(fā)送ARP報(bào)文,修改被攻擊者ARP緩沖區(qū)表項(xiàng)以實(shí)現(xiàn)ARP欺騙,監(jiān)聽(tīng)被攻擊者與其他網(wǎng)絡(luò)的通信;(2)ARP溢出攻擊即通過(guò)發(fā)送大量的ARP報(bào)文致使被攻擊主機(jī)的ARP表項(xiàng)存滿無(wú)效的表項(xiàng),從而導(dǎo)致該主機(jī)與外界通信中斷。避免或阻止ARP攻擊可以通過(guò)改進(jìn)ARP自身(優(yōu)化報(bào)文處理算法)或借助動(dòng)態(tài)防御系統(tǒng)(如專
28、用ARP防火墻等)來(lái)實(shí)現(xiàn)。第4章習(xí)題解答參考思路習(xí)題1:該題主要考查對(duì)IP軟件整體結(jié)構(gòu)的理解程度,旨在使學(xué)生能夠脫離教材根據(jù)自己的理解勾勒出軟件的構(gòu)架。注重用自己的語(yǔ)言描述各函數(shù)的主要功能,以及相互之間的調(diào)用關(guān)系。具體內(nèi)容參見(jiàn)4.3節(jié)。習(xí)題2:該題結(jié)合IP數(shù)據(jù)報(bào)結(jié)構(gòu),主要考查對(duì)C語(yǔ)言結(jié)構(gòu)體的掌握程度。struct ipcharip_verpri;charip_flowlab3;shortip_ploadlen;charip_proto;charip_ttl;charsrc16;chardst16;charip_data1;另外,可以參考LINUX或者FreeBSD相應(yīng)的實(shí)現(xiàn)程序。習(xí)題3:該題的
29、解答請(qǐng)從4.6.3節(jié)的內(nèi)容中進(jìn)行綜合提煉。習(xí)題4:該題主要考查對(duì)IP數(shù)據(jù)報(bào)首部個(gè)字段的理解程度。IP數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)過(guò)程中,TTL會(huì)發(fā)生變化,這樣會(huì)導(dǎo)致檢驗(yàn)和變化;如果IP數(shù)據(jù)報(bào)產(chǎn)生分片,則IP數(shù)據(jù)報(bào)長(zhǎng)度字段、標(biāo)識(shí)字段、標(biāo)志字段、分片偏移字段也會(huì)發(fā)生變化;如果IP數(shù)據(jù)報(bào)首部存在分片,則首部長(zhǎng)度字段有可能發(fā)生變化。習(xí)題5:該題需要注意,對(duì)于不同體系結(jié)構(gòu)的主機(jī)需要設(shè)計(jì)不同的轉(zhuǎn)換宏,這里僅提供16位轉(zhuǎn)換宏。#ifBYTE_ORDER = LITTLE_ENDIAN#definehs2net(x) (unsigned) (x)8) &0xff) | (x) & 0xff)8)#definenet2hs(x)
30、 hs2net(x)#endif#ifBYTE_ORDER = BIG_ENDIAN#define hs2net(x) (x)#define net2hs(x) (x)#endif習(xí)題6:XINU操作系統(tǒng)中環(huán)回接口的實(shí)現(xiàn)方案如下:我們從IP數(shù)據(jù)的流向圖理解環(huán)回接口的實(shí)現(xiàn),IP輸入隊(duì)列中的數(shù)據(jù)來(lái)源有兩種:一種是網(wǎng)絡(luò)中輸入的報(bào)文,一種是上層協(xié)議希望通過(guò)ipsend()函數(shù)發(fā)送的報(bào)文。這兩種報(bào)文經(jīng)過(guò)ipproc()函數(shù)處理后調(diào)用ipputp()函數(shù)發(fā)送,報(bào)文有兩個(gè)去向:一個(gè)是交付物理網(wǎng)絡(luò)接口發(fā)送,一個(gè)是通過(guò)環(huán)回接口交付上層協(xié)議。所以在IP層數(shù)據(jù)的流向有4種:第一種是13,內(nèi)部數(shù)據(jù)發(fā)送給內(nèi)部數(shù)據(jù);第二
31、種是23,將外部接收到的數(shù)據(jù)向上層協(xié)議發(fā)送;第三種是14,將來(lái)自上層協(xié)議的數(shù)據(jù)向外發(fā)送;第四種是24,只是將收到的數(shù)據(jù)轉(zhuǎn)發(fā)出去。當(dāng)ipputp()函數(shù)調(diào)用netwrite()函數(shù)發(fā)送一個(gè)報(bào)文時(shí),若路由中提供的報(bào)文出接口為本地環(huán)回接口,則netwrite()函數(shù)會(huì)調(diào)用local_out()函數(shù)將IP數(shù)據(jù)報(bào)交付上層協(xié)議,即習(xí)題6圖示中的3。local_out()函數(shù)先是將IP數(shù)據(jù)報(bào)的字節(jié)序轉(zhuǎn)換為主機(jī)字節(jié)序,然后將收到的數(shù)據(jù)幀重組,再處理IP數(shù)據(jù)報(bào)的選項(xiàng)部分,最后根據(jù)協(xié)議字段將數(shù)據(jù)發(fā)送給UDP、ICMP、TCP等上層協(xié)議。如果協(xié)議字段有錯(cuò)誤,就發(fā)送ICMP不可達(dá)報(bào)文。因此,local_out()函數(shù)
32、處理的是本機(jī)接收的數(shù)據(jù),這個(gè)數(shù)據(jù)有可能是自己產(chǎn)生的,也可能是網(wǎng)絡(luò)中收到的數(shù)據(jù)。習(xí)題7:選路和轉(zhuǎn)發(fā)的主要差異及三層轉(zhuǎn)發(fā)的實(shí)現(xiàn)方式如下:選路的原理:當(dāng)路由器收到一個(gè)需要它轉(zhuǎn)發(fā)的IP數(shù)據(jù)報(bào)時(shí),它會(huì)根據(jù)數(shù)據(jù)報(bào)中的目的IP地址搜索路由表,找到相關(guān)的路由表項(xiàng),并根據(jù)路由中的三元組將數(shù)據(jù)報(bào)從相關(guān)的出接口轉(zhuǎn)發(fā)。而路由表的維護(hù)是由專門的路由選擇協(xié)議來(lái)進(jìn)行的,IP層只需要在轉(zhuǎn)發(fā)數(shù)據(jù)時(shí)搜索路由表即可。轉(zhuǎn)發(fā)的原理:交換機(jī)接收到源主機(jī)發(fā)送的數(shù)據(jù)幀后,在MAC地址表中查找數(shù)據(jù)幀中的目的MAC地址。如果找到,就將該數(shù)據(jù)幀發(fā)送到相應(yīng)的端口;如果找不到,就向所有的端口發(fā)送。同時(shí)利用接收數(shù)據(jù)幀中的源MAC地址來(lái)建立MAC地址表。
33、選路和轉(zhuǎn)發(fā)的區(qū)別主要是,選路在IP層,根據(jù)目的IP地址找到出接口;轉(zhuǎn)發(fā)在數(shù)據(jù)鏈路層,根據(jù)MAC地址對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)發(fā)。另外,轉(zhuǎn)發(fā)表和路由表不同,轉(zhuǎn)發(fā)表中的一行包括從網(wǎng)絡(luò)號(hào)到發(fā)出接口的映射和一些MAC信息,而路由表是由路由選擇算法建立的一個(gè)表,它通常包含從網(wǎng)絡(luò)號(hào)到下一跳IP地址的映射,轉(zhuǎn)發(fā)表可以由特殊的硬件來(lái)實(shí)現(xiàn),而路由表很少這樣。為了實(shí)現(xiàn)三層交換技術(shù),交換機(jī)將維護(hù)一張至少包括“目的IP地址,下一跳MAC地址”在內(nèi)的硬件轉(zhuǎn)發(fā)表。當(dāng)交換機(jī)接收到數(shù)據(jù)時(shí),根據(jù)報(bào)文中的“目的IP地址”查詢硬件轉(zhuǎn)發(fā)表,根據(jù)匹配結(jié)果進(jìn)行相應(yīng)的數(shù)據(jù)轉(zhuǎn)發(fā),并且采用硬件芯片或高速緩沖區(qū)支持,可以達(dá)到線速。在交換機(jī)剛啟動(dòng)完畢時(shí),交換機(jī)
34、就把設(shè)備的軟件路由表下載到ASIC芯片上。在需要進(jìn)行三層交換的報(bào)文到達(dá)交換機(jī)后,交換機(jī)首先會(huì)查詢最長(zhǎng)匹配硬件轉(zhuǎn)發(fā)表,但由于MAC地址是未知的,無(wú)法同時(shí)下載,此時(shí)的硬件轉(zhuǎn)發(fā)表是無(wú)效的,所以無(wú)法進(jìn)行硬件數(shù)據(jù)轉(zhuǎn)發(fā)。因此,交換機(jī)將利用CPU對(duì)數(shù)據(jù)進(jìn)行軟件路由轉(zhuǎn)發(fā),交換機(jī)在數(shù)據(jù)轉(zhuǎn)發(fā)過(guò)程中獲取下一跳IP地址和數(shù)據(jù)轉(zhuǎn)發(fā)出口的MAC地址,然后會(huì)被自動(dòng)下載到三層硬件轉(zhuǎn)發(fā)表,此時(shí)包含了下一跳IP地址和數(shù)據(jù)轉(zhuǎn)發(fā)出口MAC地址的硬件轉(zhuǎn)發(fā)表項(xiàng)才真正生效。在這之后,發(fā)往相同目的IP網(wǎng)段的報(bào)文到達(dá)交換機(jī)都可以直接通過(guò)最長(zhǎng)匹配硬件轉(zhuǎn)發(fā)表進(jìn)行硬件轉(zhuǎn)發(fā),而其他網(wǎng)段的數(shù)據(jù)轉(zhuǎn)發(fā)則需要重復(fù)上述過(guò)程。習(xí)題8:匯編語(yǔ)言函數(shù)可參考net/c
35、ksum.s文件,C語(yǔ)言函數(shù)可參考ucpcksum.c或者tcpcksum.c實(shí)現(xiàn)程序。習(xí)題9:由于通常情況下,IP報(bào)文首部發(fā)生變化的字段主要是TTL。而檢驗(yàn)和字段是伴隨TTL字段變化而變化的,因此根據(jù)RFC1624可以設(shè)計(jì)一種不需要重新計(jì)算檢驗(yàn)和的修正方法。具體方法參見(jiàn)RFC1642.習(xí)題10:使用散列結(jié)構(gòu)并通過(guò)分離鏈接的方法處理散列沖突,在元素個(gè)數(shù)保持一定規(guī)模的情況下可以保證insert和search的時(shí)間復(fù)雜度為O(1)。但是隨著元素規(guī)模的擴(kuò)大,insert和search的時(shí)間復(fù)雜度會(huì)逐漸脫離常數(shù)。同時(shí),選擇散列函數(shù)時(shí)需要非常謹(jǐn)慎。對(duì)于元素關(guān)鍵字隨機(jī)化程度較高的情況,可采用二分搜索樹(shù)的實(shí)
36、現(xiàn)方式。這種方式可以保證search的時(shí)間復(fù)雜度為O(log n),但是對(duì)元素關(guān)鍵字隨機(jī)化程度的要求比較高。為了防止不平衡的二分搜索樹(shù)出現(xiàn),可采用AVL樹(shù)或者紅黑樹(shù)作為路由結(jié)構(gòu)。只是兩者在元素的insert操作時(shí)需要一些額外的時(shí)間。目前廣泛流行的路由表結(jié)構(gòu)是采用radix樹(shù)的構(gòu)造。它可以保證最壞情況下search的時(shí)間復(fù)雜度達(dá)到O(log n)。第5章習(xí)題解答參考思路習(xí)題1: 本題主要考查對(duì)ICMP軟件整體結(jié)構(gòu)的理解程度,幫助學(xué)生梳理ICMP軟件中函數(shù)之間的關(guān)系,從而更好地掌握ICMP軟件中函數(shù)的功能和處理機(jī)制。詳細(xì)描述請(qǐng)參照5.3節(jié)。習(xí)題2:(1)終點(diǎn)不可達(dá)報(bào)文:當(dāng)路由器不能為報(bào)文找到路由或
37、者主機(jī)不能交付報(bào)文時(shí),丟棄該報(bào)文并發(fā)送該類型報(bào)文給源主機(jī);(2)源點(diǎn)抑制報(bào)文:當(dāng)路由器或主機(jī)因擁塞而丟棄報(bào)文時(shí),向源主機(jī)發(fā)送該類型報(bào)文;(3)超時(shí)報(bào)文:當(dāng)路由器收到TTL為零的報(bào)文或目的主機(jī)在規(guī)定的時(shí)間內(nèi)沒(méi)有收到所有的分片報(bào)文時(shí),向源主機(jī)發(fā)送該類型報(bào)文;(4)參數(shù)錯(cuò)誤報(bào)文:當(dāng)路由器或主機(jī)收到存在二義性或字段缺失的報(bào)文時(shí),丟棄該報(bào)文并發(fā)送該類型報(bào)文;(5)改變路由報(bào)文:當(dāng)路由器收到本應(yīng)發(fā)往其他路由器的報(bào)文時(shí),把該報(bào)文發(fā)送給正確的路由器,并發(fā)送該類型報(bào)文通知源主機(jī)更正路由,以幫助更新路由。ICMP的5種差錯(cuò)報(bào)告報(bào)文結(jié)構(gòu)如下: (1)終點(diǎn)不可達(dá)報(bào)文 類型:3代碼:015檢驗(yàn)和未使用(全0)收到的IP
38、數(shù)據(jù)報(bào)的一部分,包括IP數(shù)據(jù)報(bào)首部以及數(shù)據(jù)報(bào)數(shù)據(jù)的前8個(gè)字節(jié)(2)源點(diǎn)抑制報(bào)文 類型:4代碼:0檢驗(yàn)和未使用(全0)收到的IP數(shù)據(jù)報(bào)的一部分,包括IP數(shù)據(jù)報(bào)首部以及數(shù)據(jù)報(bào)數(shù)據(jù)的前8個(gè)字節(jié)(3)超時(shí)報(bào)文 類型:11代碼:0或1檢驗(yàn)和未使用(全0)收到的IP數(shù)據(jù)報(bào)的一部分,包括IP數(shù)據(jù)報(bào)首部以及數(shù)據(jù)報(bào)數(shù)據(jù)的前8個(gè)字節(jié)(4)參數(shù)錯(cuò)誤報(bào)文類型:12代碼:0或1檢驗(yàn)和指針未使用(全0)收到的IP數(shù)據(jù)報(bào)的一部分,包括IP數(shù)據(jù)報(bào)首部以及數(shù)據(jù)報(bào)數(shù)據(jù)的前8個(gè)字節(jié)(5)改變路由報(bào)文類型:5代碼:03檢驗(yàn)和目標(biāo)路由器IP地址收到的IP數(shù)據(jù)報(bào)的一部分,包括IP數(shù)據(jù)報(bào)首部以及數(shù)據(jù)報(bào)數(shù)據(jù)的前8個(gè)字節(jié)習(xí)題3:本題主要考查對(duì)
39、PING程序?qū)崿F(xiàn)及與ICMP報(bào)文聯(lián)系的掌握程度,幫助學(xué)生更深入地了解ICMP報(bào)文的實(shí)現(xiàn)。詳細(xì)描述請(qǐng)參照5.6節(jié)。 習(xí)題4:icsetbuf.c文件的源代碼如下。/*-* icsetbuf - 為ICMP報(bào)文申請(qǐng)一個(gè)緩沖區(qū)* icsetbuf()函數(shù)為ICMP報(bào)文分配緩沖區(qū),設(shè)置了兩個(gè)變量,其中一個(gè)變量指出該報(bào)文是否是一個(gè)差錯(cuò)報(bào)告報(bào)文(或是一個(gè)信息請(qǐng)求);而另一個(gè)指出這個(gè)報(bào)文的類型是否是對(duì)上一個(gè)請(qǐng)求做出的應(yīng)答。* 該函數(shù)很直觀,具體分四種情況:對(duì)絕大多數(shù)的應(yīng)答,icsetbuf()函數(shù)重新利用抵達(dá)的請(qǐng)求報(bào)文占用的緩沖區(qū)(即返回由入口參數(shù)pa1提供的地址);對(duì)于沒(méi)有具體實(shí)現(xiàn)的報(bào)文類型,icsetb
40、uf()函數(shù)釋放引起差錯(cuò)的報(bào)文,返回SYSERR;對(duì)含有大量數(shù)據(jù)的ICMP報(bào)文,icsetbuf()函數(shù)為其分配一個(gè)大緩沖區(qū);對(duì)其他不能利用原緩沖區(qū)的報(bào)文,icsetbuf()函數(shù)為它們分配一個(gè)標(biāo)準(zhǔn)緩沖區(qū)。*-*/struct ep *icsetbuf(type, pa1, pisresp, piserr)inttype;char*pa1;/*舊的報(bào)文(如果有的話)*/Bool*pisresp,/*查詢報(bào)文*/*piserr;/*差錯(cuò)報(bào)告報(bào)文*/Struct ep *pep; /*正在處理的以太網(wǎng)幀*/*pisresp = *piserr = FALSE;switch (type) case
41、ICT_REDIRECT:/*重定向報(bào)文*/pep = (struct ep *)getbufi(Npool);/* char *getbufi(poolid)申請(qǐng)小緩沖區(qū)*/if (pep = NULL)return(NULL);blkcopy(pep, pa1, MAXNETBUF);/* 函數(shù)原型為blkcopy(to, from, nbytes)*/pa1 = (char *)pep;*piserr = TRUE;break;case ICT_DESTUR:/*終點(diǎn)不可達(dá)報(bào)文*/case ICT_SRCQ: /*源點(diǎn)抑制報(bào)文*/case ICT_TIMEX: /*超時(shí)報(bào)文*/case
42、ICT_PARAMP: /*參數(shù)錯(cuò)誤報(bào)文*/pep = (struct ep *)pa1;*piserr = TRUE;break;case ICT_ECHORP:/*ECHO應(yīng)答報(bào)文*/case ICT_INFORP:/*消息應(yīng)答報(bào)文*/case ICT_MASKRP:/ *ICMP掩碼應(yīng)答報(bào)文*/pep = (struct ep *)pa1;*pisresp = TRUE;break;case ICT_ECHORQ:/*ECHO請(qǐng)求報(bào)文*/case ICT_TIMERQ: /*時(shí)間戳請(qǐng)求報(bào)文*/case ICT_INFORQ: /*消息請(qǐng)求報(bào)文*/case ICT_MASKRQ: /*IC
43、MP掩碼請(qǐng)求報(bào)文*/pep = (struct ep *)getbufi(Net.lrgpool); /*申請(qǐng)大緩沖區(qū)*/if (pep = NULL)return(NULL);break;case ICT_TIMERP:/* 時(shí)間戳應(yīng)答報(bào)文 */* IcmpOutTimestampsReps+; */IcmpOutErrors-;/* Kludge:超時(shí)報(bào)文數(shù)加1 */freebuf(pa1);return(NULL);switch (type) /* 更新MIB 統(tǒng)計(jì)信息量*/case ICT_ECHORP:IcmpOutEchos+;break;case ICT_ECHORQ:IcmpO
44、utEchoReps+;break;case ICT_DESTUR:IcmpOutDestUnreachs+;break;case ICT_SRCQ:IcmpOutSrcQuenchs+;break;case ICT_REDIRECT:IcmpOutRedirects+;break;case ICT_TIMEX:IcmpOutTimeExcds+;break;case ICT_PARAMP:IcmpOutParmProbs+;break;case ICT_TIMERQ:IcmpOutTimestamps+;break;case ICT_TIMERP:IcmpOutTimestampReps+;
45、break;case ICT_MASKRQ:IcmpOutAddrMasks+;break;case ICT_MASKRP:IcmpOutAddrMaskReps+;break;return pep;char *getbufi(poolid)/*從預(yù)先設(shè)定的緩沖池申請(qǐng)緩沖區(qū),如果沒(méi)有可用的緩沖區(qū)則立即返回*/struct ep /* 以太幀結(jié)構(gòu)*/IPaddrep_nexthop; /* niput函數(shù)使用 */shortep_len; /*以太幀長(zhǎng)度 */structeh ep_eh; /*以太幀首部 */charep_dataEP_DLEN;/*以太幀的數(shù)據(jù)部分*/;icsetdata.c
46、文件的源代碼如下。/* ECHOMAX必須是偶數(shù)*/#define ECHOMAX(pip) (MAXLRGBUF-IC_HLEN-IP_HLEN(pip)-EP_HLEN)/*MAXLRGBUF 最大緩沖區(qū)*/*IC_HLEN 8*/*IP_HLEN(pip) (pip-ip_verlen & 0xf)ip_data;inti, len;switch (type) case ICT_ECHORP: /*ECHO應(yīng)答報(bào)文*/len = pip-ip_len-IP_HLEN(pip)-IC_HLEN;/* 長(zhǎng)度 = IP報(bào)文長(zhǎng)度-IP首部長(zhǎng)度-ICMP首部長(zhǎng)度*/if (isodd(len)/*
47、 isodd()函數(shù):判斷其參數(shù)是不是奇數(shù),如果是奇數(shù)就返回TRUE,否則返回FASLE和錯(cuò)誤值*/pic-ic_datalen = 0;/*ICMP數(shù)據(jù)區(qū)CRC校驗(yàn) */return len;case ICT_DESTUR:/*終點(diǎn)不可達(dá)報(bào)文*/case ICT_SRCQ: /*源點(diǎn)抑制報(bào)文*/case ICT_TIMEX: /*超時(shí)報(bào)文*/pic-ic_mbz = (long) 0; /*必須為0 */break;case ICT_REDIRECT:/*重定向報(bào)文*/blkcopy(pic-ic_gw, pa2, IP_ALEN); /* blkcopy(to, from, nbytes) 重定向到網(wǎng)關(guān)*/break;case ICT_PARAMP:/*參數(shù)錯(cuò)誤報(bào)文*/len = (int)pa2;pic-ic_ptr
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海市2024-2025學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 遼寧省大連市2025屆高三上學(xué)期期末雙基考試地理試卷( 含答案)
- 河南省駐馬店市汝南縣2024-2025學(xué)年七年級(jí)上學(xué)期1月期末考試生物試卷(含答案)
- 2024行政單位預(yù)算執(zhí)行情況考核合同
- 2025年度太陽(yáng)能光伏發(fā)電系統(tǒng)安裝工程合同范本3篇
- 2024版合作場(chǎng)地推廣合同范本版B版
- 2024年度藝術(shù)品運(yùn)輸保險(xiǎn)及保全服務(wù)合同模板3篇
- 2025年度大米加工企業(yè)節(jié)能降耗改造工程合同3篇
- 2024牌照租賃附帶車輛年檢及環(huán)保檢測(cè)服務(wù)合同3篇
- 2025年度XX電子商務(wù)與XX人力資源公司客服團(tuán)隊(duì)派遣及運(yùn)營(yíng)支持協(xié)議2篇
- 2024年浙江嘉興市眾業(yè)供電服務(wù)限公司招聘38人高頻500題難、易錯(cuò)點(diǎn)模擬試題附帶答案詳解
- 初中英語(yǔ)聽(tīng)課記錄全集
- 課堂小游戲教學(xué)游戲互動(dòng)砸金蛋
- ISO∕TR 56004-2019創(chuàng)新管理評(píng)估-指南(雷澤佳譯-2024)
- 春節(jié)的習(xí)俗課件
- 小學(xué)舞蹈課學(xué)情分析
- GB 31825-2024制漿造紙單位產(chǎn)品能源消耗限額
- 《煤礦地質(zhì)工作細(xì)則》礦安﹝2024﹞192號(hào)
- 高考地理真題面對(duì)面押題精講練太陽(yáng)視運(yùn)動(dòng)(原卷版)
- 消防控制室值班服務(wù)人員培訓(xùn)方案
- 貸款咨詢服務(wù)協(xié)議書范本
評(píng)論
0/150
提交評(píng)論