接收函(实用4篇)
【引言】阿拉题库漂亮网友为您分享整理的“接收函(实用4篇)”范文资料,以供参考学习,希望这篇文档资料对您有所帮助,喜欢就下载分享给朋友吧!
接收函1
关键词:IPv6;ICMPv6;邻居发现协议
中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)16-21216-02
The Design and Transplantation of IPv6 Based on ARM
XIE Xi-feng
(Department of Power Engineering,Guangxi Hydraulic and Electric Polytechnic,Nanning 530023,China)
Abstract:In this paper the author firstly Introduced the data technological process of IPv6,and thendesigned the core Protocol of IPv6: IPv6, ICMPv6, Neighbor discovery,finallythe author illustrated the transplant of IPv6.
Key words:IPv6;ICMPv6;Neighbor discovery
随着网络的发展,在嵌入式操作系统中集成TCP/IP协议栈,与系统相应的硬件配合,为嵌入式系统提供联网功能,己经成为嵌入式系统发展的重要方向。IPv6协议的新特性可以更好地满足嵌入式系统对联网功能的需求,在嵌入式系统中实现IPv6协议有着良好的应用前景。因此,研究嵌入式IPv6协议栈的设计与实现,具有重要的现实意义。
1 数据处理流程
实现协议栈重要的一点是正确的处理数据流程。根据不同的条件进行协议栈状态的转换。图1显示了对收到IPv6数据包和发送IPv6数据包的处理流程。
接收数据时,网络接口层将从网卡接收到的数据存到缓冲区,根据以太帧报头的类型字段判断以太类型,若以太类型等于0x86DD,则为IPv6数据包,把IPv6数据包发送给协议栈输入处理模块。输入处理模块先做合法性检测(包括检查IP包的版本号是否为6,判断是否是本机的单播地址,是否是相应的组播地址,计算校验和是否为0,检查IPv6头部中的下一头部是否为ICMPv6或UDP),若不合法就抛弃,同时向源地址发送的差错报文,若合法的话,那么根据IPv6报文中下头部的值,调用不同的处理函数。
发送数据时,应用程序用UDP方式发送,按UDP报文格式封装数据包,然后把数据包传输到IP层,选择下一跳IP地址(下一个目的地址,在有路由的情况下,可能是路由的地址,本文不处理路由问题,所以下一跳IP地址即为目标IP地址),然后,调用IPv6输出函数发送数据包。
2 IPv6模块的设计
IPv6模块主要包括两部分的功能,一是负责从网络接口层收取IPv6数据包,对数据包进行一定的处理后将数据包发送给不同的处理模块(UDP或ICMPv6)。二是从上层接收数据,进行报文的选路,封装IPv6报头后将数据包发送给网络接口层。IPv6功能主要由三个函数完成:初始化函数、输入函数和输出函数。
初始化函数
初始化函数IPv6_init()的主要工作是初始化IPv6协议中各字段的参数,以及可能包含的协议的数目,例如:协议中的版本号、优先级、流标记、源IP地址、跳数限制等。该函数在应用初始化时被函数网络底层函数InitNic()调用。
接收函数
接收函数IPv6_input()通常要实现三个功能:对到达的分组进行验证;分组重装和向上层协议传递数据包。但是在本设计中只是实现了主要有两个功能:报文的合法性检测和向上层协议传递数据包。报文的合法性检测,包括检查版本号是否正确,收到的报文长度是否短于应有的长度,报文的目的地址是否本地地址等。向上层协议传递数据包,就是根据IPv6头部的下一头部字段,对报文进行分发, 若下一头部长段为17时,则是UDP数据包, 若下一头部长段为58时,则是ICMPv6数据包。如果是UDP数据包,则调用上层的UDP接收函数udp6_input():如果是ICMPv6报文,则调用ICMPv6协议实现中的接收处理函数ICMPv6_input()。
发送函数
在发送数据时,函数IPv6_output()通常要从两处接收传送报文:IP转发模块和IP层之上的协议。由于系统没有考虑实现IP路由转发模块,所以,IPv6_output()只实现了被ICMPv6, UDP上层协议调用。通常情况下,IPv6_output()的处理过程由四个部分组成:IPv6首部构造,路由选择和源地址选择、安全服务和分片。
3 ICMPv6模块的设计
ICMPv6协议位于IPv6层,负责接收、解释、发送ICMPv6报文。本设计主要实现了ICMPv6的echo应答,以及报错信息中的目的不可达。ICMPv6功能主要由两个函数完成:输入函数和输出函数。
输入处理函数
当输入处理函数ICMPv6_input()接收到报文时,首先检查其校验和,当校验和错误,则丢弃;当校验和正确时,按不同的类别交给相应的功能模块处理。例如,邻居请求或宣告报文到来时,ICMPv6_input()将会把报文分路交给相应的ICMPv6_ neighbor_input()模块处理。当接收到ICMPv6差错处理报文时,ICMPv6_input()将根据ICMP报文的ICMPv6_ type和ICMPv6_ code映射到一个与协议无关的差错码集上,然后将报文交给传输层,由传输层根据差错码进行相应的处理。当ICMPv6_input()接到未知ICMPv6类型报文或非响应的ICMPv6报文将丢弃报文不作任何处理。
输出处理函数
输出函数ICMPv6_output()主要是接收并处理从IP来的、或是从UDP高层协议来的差错报文,以及从应用程序来的查询报文,同时还要发送ICMPv6分组中用到的请求、询问和差错报文。它的由两部分构成:ICMPv6_ error()函数和ICMPv6_research()函数。ICMPv6_ error()函数的功能是构造差错报文,包括来自IP层和传输层的;ICMPv6_ research()是负责创建由高层或IP层所请求的请求报文。ICMPv6_error()函数负责ICMPv6数据包的封装以及校验和的生成。
4 邻居发现模块的设计
邻居发现(Neighbor discovery)报文使用ICMPv6的报文结构,邻居发现报文由邻居发现报文头和0个或多个邻居发现报文选项组成,其中邻居发现报文头由ICMPv6报头和ND报文的特定数据构成。
有5种不同的邻居发现报文:路由器请求报文、路由器公告报文、邻居请求报文、邻居公告报文和重定向报文。
本设计中只实现了邻居请求报文、邻居公告报文,通过这两个报文的交互可以使源节点和目的节点的MAC地址和IPv6地址进行绑定并且保存在对方的地址缓存区中。
5 IPv6在ARM中的移植
IPv6协议栈在设计时就考虑到了移植问题,己把所有与硬件、OS、编译器相关的部分独立出来。因此IPv6在本论文研究的系统中的移植,就是针对LPC2210硬件平台,μC/OS-II操作系统和的编译器对其进行相应的修改。
数据类型定义
IPv6的数据定义应该与μC/OS-II定义的数据长度类型是一致的。
typedef unsigned char uint8;
typedef signed charint8;
typedef unsigned short uint16;
typedef signed short int16;
typedef unsigned int uint32;
typedef signed int int32;
typedef floatfp32;
typedef double fp64;
操作系统相关部份
IPv6为了适应不同的操作系统,在代码中没有使用和某一种操作系统相关的系统调用和数据结构,而是在IPv6和操作系统之间加了一个操作系统封装层。操作系统封装层为操作系统服务(定时,进程同步,消息传递)提供了一个统一的接口。与操作系统移植有关的内容:IPv6采用信号量(Semaphone)和消息队列(Message Queue),作为同步与通信机制。
库函数的实现
IPv6协议栈中用到了6个外部函数,这些函数通常与用户使用的系统或编译器有关。返回字符串长度、字符串比较、内存数据块之间的互相拷贝和内存中指定长度的数据块清零4个函数已由中的运行时库提供,不需要再编写。因为网络数据采用的是大端数据存储,而LPC2210是工作在小端,所以在存取网络数据时要进行字节的交换。
6 结束语
嵌入式Internet技术正在快速发展,并将成为今后几年IT发展的热点。嵌入式技术也必定借此东风加快发展,进入以Internet为标志的新阶段。在不久的将来,嵌入式Internet系统的应用将会出现在本文工作生活的方方面面。基于这样的背景,着手研究一种嵌入式IPv6的设计与移植,具有重要的现实意义。
参考文献:
[1] R Dynamic Host Configuration Protocol[S].
[2] E AFramework for QoS-based Routing in the Internet[S].
[3] R 1633 Integrated Services in the Internet Architecture: an Overview[S].
[4] 陈赜,刘振兴,李宗福,等。ARM嵌入式技术实践教程[M].北京航空航天大学出版社,2005.
接收函2
你校会计学院xxxx届会计学(或财务管理)专业毕业生XXX同学,现已接收到我单位工作。
特此证明
单位地址:XX省(市、区)XX市(县)XXX街XXX号
联系电话:XXXXXXX
联系人:XXX
接收函3
大学毕业生实习接收函 ________________学院 :
我单位经研究决定同意接收你院______级_______________专业
____________等___名同学,从______年___月___日到______年___月___日,进行专业(教育)实习,主要从事__________________的工作。
(实习单位签章)
年 月 日
接收函4
接收函定义
人事关系转移的一种,计划经济制度时期极其重要的个人人事转移手续。计划经济时期,单位分有人事接收权单位和无人事接收权单位,只有有人事接收权的单位才能发接收函,无人事接收权单位不被允许发接收函,需要上级主管单位或者委托人事部门才能发函(一般只有党委机关、政府单位及事业单位和国有企业才有人事接收权)。接收函即为将拟调出人的全部人事关系(档案、户口、党组织关系、团关系等)从无隶属关系的一个单位调至另一个有人事接收权单位的函件,接收函有特定格式书写,一般各个部门有自己规定格式书写,就像政府所下发文件一样都有既定格式。
接收函范本:
实习单位接收函
____________________学院:
我单位愿意接受你院 年级 班 同学等 人到我校(单位)进行教育实习(毕业实习),实习时间从 年 月 日到 年 月 日。学生实习期间我们将严格管理,精心指导。
此致
敬礼
指导教师: 指导教师联系电话:
学校(单位)负责人联系电话是:
(单位):
年 月 日
户口接收函
__________派出所主管同志:
现有本单位职工____,男,________,身份证号:________前往你处办理户口迁移手续,本单位同意接收该人,并协助其办理户口在____落户事宜。特此证明。
单位公章。
经手人:
年 月 日
档案接收函
___________:
___________等_____名同志已被我公司聘用,同意其人事档案关系调入我公司,请协助办理。我公司存档编号:
同志原存档单位名称:
上一篇:各自远航优质4篇
下一篇:绿色环保宣传标语(精编4篇)