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

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

ID:61443333

大?。?8.19 KB

頁數(shù):9頁

時間:2021-01-31

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

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

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

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

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

4、型的指針//*@type:鏈表節(jié)點所在的宿主節(jié)點的類型//*@member:嵌入宿主的鏈表節(jié)點的變量名list_entry(ptr,type,member)5)遍歷鏈表//@pos:遍歷鏈表時用于指示正在遍歷的鏈表節(jié)點的指針//@head:鏈表頭list_for_each(pos,head)五、實現(xià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;}實驗二、實驗項目名稱:Linux內(nèi)核通用哈希鏈表的使用一、實驗目的和要求:學習Linux內(nèi)核的通用哈希鏈表的設計原理,熟練掌握Linux內(nèi)核通用哈希鏈表的使用。二、實驗內(nèi)容1.掌握Linux通用哈希鏈表的創(chuàng)建2.掌握通用哈希表增加元素、查找元素的方法。三、1.實驗要求待創(chuàng)建的哈希表頭數(shù)組為structhlist_headuser_hash[16],要求對哈希表宿主元素的name成員的值進行散列,并將散列值作為哈希表宿主元素的key。2.作為哈希表元素的宿主節(jié)點類型定義如下: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)存在該用戶,否則向哈希表中添加該宿主元素。四、實現(xiàn)原理Linux的內(nèi)核源文件list.

當前文檔最多預覽五頁,下載文檔查看全文

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

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