TCP IP 協(xié)議棧分析與實(shí)現(xiàn).docx

TCP IP 協(xié)議棧分析與實(shí)現(xiàn).docx

ID:61443333

大小:88.19 KB

頁數(shù):9頁

時間:2021-01-31

TCP IP 協(xié)議棧分析與實(shí)現(xiàn).docx_第1頁
TCP IP 協(xié)議棧分析與實(shí)現(xiàn).docx_第2頁
TCP IP 協(xié)議棧分析與實(shí)現(xiàn).docx_第3頁
TCP IP 協(xié)議棧分析與實(shí)現(xiàn).docx_第4頁
TCP IP 協(xié)議棧分析與實(shí)現(xiàn).docx_第5頁
資源描述:

《TCP IP 協(xié)議棧分析與實(shí)現(xiàn).docx》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、實(shí)驗(yàn)報告課程名稱:TCP/IP協(xié)議棧分析與實(shí)現(xiàn)學(xué)生姓名:郭勇專業(yè):信息工程學(xué)號:8同組學(xué)生姓名:無實(shí)驗(yàn)地點(diǎn):6C601指導(dǎo)老師:劉飚實(shí)驗(yàn)日期:2013年3月25日實(shí)驗(yàn)一:實(shí)驗(yàn)項(xiàng)目名稱:Linux內(nèi)核通用鏈表的使用一、實(shí)驗(yàn)?zāi)康暮鸵?學(xué)習(xí)Linux內(nèi)核的通用鏈表的設(shè)計原理,熟練掌握Linux內(nèi)核通用鏈表的使用。二、實(shí)驗(yàn)內(nèi)容1.掌握Linux通用鏈表的創(chuàng)建2.掌握通用鏈表增加元素、刪除元素和遍歷鏈表的方法。三、實(shí)驗(yàn)要求1.待創(chuàng)建的鏈表頭變量名為user_queue。2.作為鏈表的宿主節(jié)點(diǎn)類型定義如下:structuser{intid;/*userid*/structlist_headli

2、st;}3.針對上述user_queue鏈表,要求以隊列方式向其中依次添加10個類型為structuser的宿主節(jié)點(diǎn),并要求這10個宿主節(jié)點(diǎn)的id依次為1-104.依次遍歷輸出這10個宿主節(jié)點(diǎn)的id5.從隊列中刪除首個宿主節(jié)點(diǎn),然后依次遍歷該隊列并輸出余下各宿主節(jié)點(diǎn)的id值四、實(shí)現(xiàn)原理Linux的內(nèi)核源文件list.h提供了所有的鏈表定義、各類操作接口及其實(shí)現(xiàn)。其中創(chuàng)建鏈表的方法如下:LIST_HEAD(my_list);內(nèi)核源文件list.h中定義了以下若干接口,用于對通用鏈表進(jìn)行各類操作:1)在指定的head后插入新節(jié)點(diǎn),常用于堆棧數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)//@new:即將添加的新鏈表節(jié)點(diǎn)

3、//@head:在此節(jié)點(diǎn)后添加list_add(structlist_head*new,structlist_head*head);2)在指定的head前插入新節(jié)點(diǎn),常用于隊列數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)//@new:即將添加的新鏈表節(jié)點(diǎn)//@head:在此節(jié)點(diǎn)前添加list_add_tail(structlist_head*new,structlist_head*head)3)從鏈表中刪除一個指定節(jié)點(diǎn)//@entry:要從鏈表中刪除的鏈表節(jié)點(diǎn)list_del(structlist_head*entry)4)根據(jù)當(dāng)前鏈表節(jié)點(diǎn)指針ptr獲得宿主節(jié)點(diǎn)指針//*@ptr:structlist_head類

4、型的指針//*@type:鏈表節(jié)點(diǎn)所在的宿主節(jié)點(diǎn)的類型//*@member:嵌入宿主的鏈表節(jié)點(diǎn)的變量名list_entry(ptr,type,member)5)遍歷鏈表//@pos:遍歷鏈表時用于指示正在遍歷的鏈表節(jié)點(diǎn)的指針//@head:鏈表頭list_for_each(pos,head)五、實(shí)現(xiàn)代碼和運(yùn)行結(jié)果#include#include#include"list.h"LIST_HEAD(user_quene);structuser{intid;/*userid*/structlist_headlist;};intmain(){struct

5、useruid[10];structlist_head*pos;inti;for(i=0;i<10;i++){list_add_tail(&(uid[i].list),&user_quene);uid[i].id=i+1;}list_for_each(pos,&user_quene)printf("%d",list_entry(pos,structuser,list)->id);printf("");list_del(&(uid[0].list));list_for_each(pos,&user_quene)printf("%d",list_entry(pos,structuse

6、r,list)->id);printf("");return0;}實(shí)驗(yàn)二、實(shí)驗(yàn)項(xiàng)目名稱:Linux內(nèi)核通用哈希鏈表的使用一、實(shí)驗(yàn)?zāi)康暮鸵?學(xué)習(xí)Linux內(nèi)核的通用哈希鏈表的設(shè)計原理,熟練掌握Linux內(nèi)核通用哈希鏈表的使用。二、實(shí)驗(yàn)內(nèi)容1.掌握Linux通用哈希鏈表的創(chuàng)建2.掌握通用哈希表增加元素、查找元素的方法。三、1.實(shí)驗(yàn)要求待創(chuàng)建的哈希表頭數(shù)組為structhlist_headuser_hash[16],要求對哈希表宿主元素的name成員的值進(jìn)行散列,并將散列值作為哈希表宿主元素的key。2.作為哈希表元素的宿主節(jié)點(diǎn)類型定義如下:structusermap{structh

7、list_nodehlist;unsignedcharname[8];};3.針對上述user_hash哈希表,要求向其中添加3個類型為structusermap的宿主元素,并要求這3個宿主元素的name成員分別為"smith","john","bob"。4.向哈希表user_hash中添加第4個宿主元素。若新宿主元素的name成員已經(jīng)存在(例如"john"),則提示已經(jīng)存在該用戶,否則向哈希表中添加該宿主元素。四、實(shí)現(xiàn)原理Linux的內(nèi)核源文件list.

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。