通行证 | 帐号: 密码: 注册 | 登录
网站地图| 免费获取| 论文代理
教育资料网


自动化 模具 机械 电子 通信 动画 英语资料 工程管理 金融资料 旅游管理 工业工程 生物工程 给排水资料 西门子PLC 历史学 三菱PLC
单片机 财务 会计 法律 行政 物理 物流资料 电子商务 制药工程 包装工程 土木工程 材料科学 汉语言资料 欧姆龙PLC 电压表 松下PLC
计算机 化工 数电 工商 食品 德语 国贸资料 人力资源 教育管理 交通工程 市场营销 印刷工程 机电一体化 数控资料 变电站 文化产业

  • 网站首页|
  • 资料范文|
  • 修改降重|
  • 职称资料|
  • 合作期刊|
  • 资料下载|
  • 计算机资料|
  • 外文翻译|
  • 免费资料|
  • 原创资料|
  • 开题报告资料
搜索
教育管理原创资料  学前教育原创资料  快速降重  小学教育资料  汉语言文学

当前位置:教育资料网 -> 免费资料 -> 电子通信 -> IP协议设计实现—重装模块(二)
自动化资料范文| 电子机电资料| 测控技术资料| 通信专业资料| 电气工程资料| 通信工程资料| 电子信息工程资料| 免费自动化资料| 免费电子资料| 免费电气资料| 免费通信资料
·电子商务原创毕业论文
·法学专业原创毕业论文
·土木工程原创毕业论文
·工商管理专业原创论文
·电气自动化原创毕业论文
·汉语言文学专业原创论文
·会计专业原创毕业论文
·计算机技术原创毕业论文
·人力资源专业原创毕业论文
·市场营销专业原创论文
·信息管理专业原创毕业论文
·学前教育专业原创论文
·教育管理专业原创论文
·小学教育专业原创论文
·应用心理学专业原创论文
·英语专业原创论文
·播音与主持原创毕业论文
·行政管理专业原创论文
·广播电视编导原创毕业论文
·摄影专业原创毕业论文
·广告学专业原创毕业论文
·新闻学专业原创毕业论文
·文化产业管理原创毕业论文
·视觉传达设计原创毕业论文
·表演专业原创毕业论文
·动画专业原创毕业论文
·录音艺术原创毕业论文
·护理专业原创毕业论文
·通信工程原创毕业论文
·金融专业原创毕业论文

IP协议设计实现—重装模块(二)

IP协议设计实现—重装模块(二) ipq_dst; /*地址清单、目的与源地址*/
}
ipasfrag(过度结构)结构:
struct ipasfrag{
/* 预处理*/
#if BYTE_ORDER==LITTLE_ENDIAN
Char ip_hl=4,ip_v=4;
#endif
#if BYTE_ORDER==BIG_ENDIAN
char ip_v=4,ip_hl=4;
#endif
 char ipf_mff;   /* ipf_mff成员覆盖ip结构中的服务字段,*/
                 /*防止报头损坏,从标志字段复制*/
short ip_len/*下是报头定义,与ipq结构类似*/
unsigned short ip_id;
short ip_off;
unsigned char ip_p;
unsigned short ip_sum;
struct ipasfrag *ipf_next,*ipf_prev;
}
3详细流程:
ipintr先要对接收到的分片进行处理,如果它检查到MF或分片偏移为非0,则分组就是一个必须重装的分片,反之,就可以跳过重装。当一个缓存区无法容纳分组时,接口就将整个分组返回,在ipintr函数中在处理前应将IP首部移到缓冲区上。ipintr把一个要处理的分片传给和一个指针传给ip_reass,其中指针指向ipq中匹配的的重装首部,ip_reass可能把分片重装并返回一个完整的数据报(只有一个分片),也可能将该分片链接到数据报的重装链表上(不只一个分片),等其他分片到达后重装。ip_reass在一个由ipf_next和ipf_prev链接起来的双向循环链表上,并收集某个数据报分片。当在重装时产生错误,ip_reass就丢弃该分片,返回一个空。在设计中,最多实现重装576字节的数据报。ip_reass先创建重装表,然后切断分组,在重装表中找相应位置,插入分组,再重装数据报。
流程图:图(3)

 

以上就是重装的流程图。在超时检查时,如果没有超时,则继续接收,直到完成为止。
 

(三)基本代码实现
由于只有一个模快,故没有主函数main(),以下就是函数ipintr()与ip_reass的实现以及必要的说明,其中的数据结构定义包含在chong_z.h中。
IP数据报首部定义:
struct  ip{
/* 预处理*/
#if BYTE_ORDER==LITTLE_ENDIAN
unsigned char ip_hl=4,ip_v=4;
#endif
#if BYTE_ORDER==BIG_ENDIAN
usigned char ip_v=4,ip_hl=4;
#endif
unsigned char ip_tos;/*服务类型,下面的前面已给出*/
short ip_len;
short id;
short ip_off;
#define IP_DF 0x4000;/*不分片标志*/
#define IP_MF 0x2000;/*更多分片标志*/
#define IP_OFFMASK 0x1fff;/* 分段位*/
unsigned char ip_ttl;
unsigned char ip_p;
unsigned short ip_sum;/*检验和*/
struct in_addr,ip_src,ip_dst;
};
mbuf缓冲区定义:
struct m_hdr{
struct mbuf  *mh_next;/*链表的下一个缓冲区*/
struct mbuf  *mh_nextpkt;/*对列中的下个链表*/
int mh_len; /*缓冲区数据总数*/
short mh_type; /*数据类型*/
short mh_flags; /*标志位*/}
struct pkthdr{
int len; /*数据报总长*/
}
struct mbuf{
struct m_hdr;
union{
 struct{    struct pkthdr MH_pkthdr;
 union{
  char MH_databuf[MHLEN];
 }MH_dat;
 char M_databuf[MLEN];
 }M_dat;
 };
 本次设计用到的宏定义:
 #define m_next  m_hdr.mh_next
 #define m_len   m_hdr.mh_len
 #define m_pkthdr  M_dat.MH.MH_phthdr
 #define dtom(x) ((struct mbuf *)((int)(x)&~(MSIZE-1)
 /*取得一个放在mbuf中任意位置的数据指针,并返回一mbuf
 *  本身结构的指针   */
 分配mbuf函数m_get实现:
 struct mbuf *
 int nowait,type;
 m_get(nowait,type)
 {
 struct mbuf *m;
 MGET(m,nowait,type);
 return(m);}
ipintr代码:
void ipintr()/*对收到分片的处理*/
{
struct ip  *ip;
struct mbuf *m;
struct ipq *fp;
struct mbuf  *m;/*缓冲区指针*/
int  hlen;
next:
s=splimp();/*调用中断*/
IF_DEQUEUE(&ipintrq,m);
splx(s);/*打开网络中断*/
if(m==0) return;
  if(ip->ip_off&&ip->IP_DF){ /*如果分片位或更多分片为*0,则必须重装,反之则跳过重装*/
if(m->m_flags&M_EXT){
if(m=m_pullup(m,sizeof(struct ip))==0)
ipstat.ips_toosmall++;
goto next;}
ip=mtod(m,struct *ip);}/*搜索此数据报分片对列*/
for(fp=ipq.next;fp!=&ipq;fp=fp->next)
if(ip->ip_id==fp->ipq_id&&ip->src.s_addr==fp->ipq_src.s_addr&&ip->ip_dst.s_addr==fp->ipq

首页 上一页 1 2 3 4 下一页 尾页 2/4/4

赞赏
IP协议设计实现—重装模块(二)由教育资料网(www.jaoyuw.com)会员上传。
原创资料流程 相关资料
图像传输安全性的研究与实现
A市本地SDH 中继传输网设计
基于MATLAB的合作控制策略的分析与设..
财务管理 市场营销 幼儿教育 PLC 单片机 教育 幼儿园 中小企业 教师 内部控制 工程造价 电子商务 PLC 变频调速 供水 系统 应用 控制 交流 变频 电梯 设计 火灾 自动 报警系统 单片机 烟雾 检测 篮球 比赛 计时器  自动售货机 控制系统 电热水器 温度 异步电动机 MATLAB 10kV 配电 线路 控制器 智能交通  机床  机械手 变电站 变压器 自动化 售货机 花样喷泉 立体车库 洗衣机 西门子PLC 组态控制 抢答器 数控车床 自行车 里程 车速 超声波 液位 传感器 密码锁 机构 数控激光 切割机设计 后托架 加工工艺 夹具设计 CA6140 传动轴 注塑 模具设计 液压 风险管理 银行 竞争力 中小企业 内部控制 状况 调查报告 融资 管理 中间业务 实习报告 金融 监管 制度  农村 养老保险 合作医疗 外贸 理财 规划 网上银行 发展现状 个人理财 人民币 升值
上一篇:DDS的杂散对比与级联方案的研究 下一篇:MATLAB正交振幅调制解调仿真分析
推荐资料 本专业最新资料
通信基本电路课程设计--调幅发射机设计
浅析光传输网的误码性能及应用
办公自动化管理系统
图像传输安全性的研究与实现
A市本地SDH 中继传输网设计
速率预估下的GPRS信道配置算法研究
基于MATLAB的合作控制策略的分析与设..
彩色图像特征提取研究
非平稳信号去噪方法研究
Tags:协议 设计 实现 模块 2010-04-11 22:02:33【返回顶部】
电气工程自动化原创资料  电子商务原创资料
人力资源专业原创资料 土木工程原创资料
工商管理专业原创资料    药学专业原创资料
汉语言文学专业原创资料  会计专业原创资料
计算机技术原创资料  金融学原创资料
法学专业原创资料   市场营销专业原创资料
信息管理专业原创资料 学前教育专业原创资料
公共事业管理专业原创资料 英语专业原创资料
教育管理专业原创资料   行政管理专业原创资料
精彩推荐
发表资料
PLC 变频调速 供水 系统 应用 控制 交流 变频 电梯 设计 火灾 自动 报警系统 单片机 烟雾 检测 篮球 比赛 计时器  自动售货机 控制系统 电热水器 温度 异步电动机 MATLAB 10kV 配电 线路 控制器 智能交通  机床  机械手 变电站 变压器 自动化 售货机 花样喷泉 立体车库 洗衣机 西门子PLC 组态控制 抢答器 数控车床 自行车 里程 车速 超声波 液位 传感器 密码锁 机构 数控激光 切割机设计 后托架 加工工艺 夹具设计 CA6140 传动轴 注塑 模具设计 液压
电气工程自动化原创文档  电子商务原创资料文档
人力资源专业原创资料文档土木工程原创资料文档
工商管理专业原创文档    药学专业原创文档
汉语言文学专业原创文档  会计专业原创资料文档
计算机技术原创资料文档  金融学原创资料文档
法学专业原创资料文档  市场营销专业原创文档
信息管理专业原创资料文档 学前教育专业原创文档
公共事业管理专业原创文档 英语专业原创文档
教育管理专业原创文档   行政管理专业原创文档

联系方式 | 资料说明 | 网站地图 | 免费获取 | 钻石会员 | 硕士资料


教育资料网提供资料范文,资料代发,原创资料

本站部分文章来自网友投稿上传,如发现侵犯了您的版权,请联系指出,本站及时确认并删除  E-mail: 17304545@qq.com

Copyright@ 2009-2020 教育资料网 版权所有 湘ICP备19027999