TCP IP 协议栈分析与实现.docx

TCP IP 协议栈分析与实现.docx

ID:61443333

大小:88.19 KB

页数:9页

时间:2021-01-31

TCP IP 协议栈分析与实现.docx_第1页
TCP IP 协议栈分析与实现.docx_第2页
TCP IP 协议栈分析与实现.docx_第3页
TCP IP 协议栈分析与实现.docx_第4页
TCP IP 协议栈分析与实现.docx_第5页
资源描述:

《TCP IP 协议栈分析与实现.docx》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验报告课程名称:TCP/IP协议栈分析与实现学生姓名:郭勇专业:信息工程学号:8同组学生姓名:无实验地点:6C601指导老师:刘飚实验日期:2013年3月25日实验一:实验项目名称:Linux内核通用链表的使用一、实验目的和要求:学习Linux内核的通用链表的设计原理,熟练掌握Linux内核通用链表的使用。二、实验内容1.掌握Linux通用链表的创建2.掌握通用链表增加元素、删除元素和遍历链表的方法。三、实验要求1.待创建的链表头变量名为user_queue。2.作为链表的宿主节点类型定义如下:structuser{intid;/*userid*/structlist_headli

2、st;}3.针对上述user_queue链表,要求以队列方式向其中依次添加10个类型为structuser的宿主节点,并要求这10个宿主节点的id依次为1-104.依次遍历输出这10个宿主节点的id5.从队列中删除首个宿主节点,然后依次遍历该队列并输出余下各宿主节点的id值四、实现原理Linux的内核源文件list.h提供了所有的链表定义、各类操作接口及其实现。其中创建链表的方法如下:LIST_HEAD(my_list);内核源文件list.h中定义了以下若干接口,用于对通用链表进行各类操作:1)在指定的head后插入新节点,常用于堆栈数据结构的实现//@new:即将添加的新链表节点

3、//@head:在此节点后添加list_add(structlist_head*new,structlist_head*head);2)在指定的head前插入新节点,常用于队列数据结构的实现//@new:即将添加的新链表节点//@head:在此节点前添加list_add_tail(structlist_head*new,structlist_head*head)3)从链表中删除一个指定节点//@entry:要从链表中删除的链表节点list_del(structlist_head*entry)4)根据当前链表节点指针ptr获得宿主节点指针//*@ptr:structlist_head类

4、型的指针//*@type:链表节点所在的宿主节点的类型//*@member:嵌入宿主的链表节点的变量名list_entry(ptr,type,member)5)遍历链表//@pos:遍历链表时用于指示正在遍历的链表节点的指针//@head:链表头list_for_each(pos,head)五、实现代码和运行结果#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内核通用哈希链表的使用一、实验目的和要求:学习Linux内核的通用哈希链表的设计原理,熟练掌握Linux内核通用哈希链表的使用。二、实验内容1.掌握Linux通用哈希链表的创建2.掌握通用哈希表增加元素、查找元素的方法。三、1.实验要求待创建的哈希表头数组为structhlist_headuser_hash[16],要求对哈希表宿主元素的name成员的值进行散列,并将散列值作为哈希表宿主元素的key。2.作为哈希表元素的宿主节点类型定义如下:structusermap{structh

7、list_nodehlist;unsignedcharname[8];};3.针对上述user_hash哈希表,要求向其中添加3个类型为structusermap的宿主元素,并要求这3个宿主元素的name成员分别为"smith","john","bob"。4.向哈希表user_hash中添加第4个宿主元素。若新宿主元素的name成员已经存在(例如"john"),则提示已经存在该用户,否则向哈希表中添加该宿主元素。四、实现原理Linux的内核源文件list.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。