- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式协议栈的研究与开发
李 明,康静秋,贾智平
(山东大学计算机系,济南)
(二滩水电开发公司,攀枝花)
计算机工程与应用
!!#$%
在三次握手建立连接的过程中,嵌入式系统作为监听状态
的服务器端,始终为被动方,相当于被动打开后的
’()*+
状
态,等待对方发起连接。当它接收到
(,+
数据片,它发出
(,+-
./0
数据片并确认它已接收到的对方的
(,+
,此时变为
(,+
1*/*’2*3
状态。再接收到对方返回的一个仅含
./0
的空数
据片,则三次握手完成,进入
*().4’(5*3
状态,之后可以进
行
)/6
数据通信。
在操作系统中,为防止旧的重复连接请求引起混乱,可以
用复位
1*(1)
控制报文对这种情况进行处理。收到复位
1*7
(*)
信号 后 ,若 处于非 同 步 状 态 (
(,+ 81*/*’2*3
、
(,+ 8
(*+)
)状态,则回到
’()*+
状态;若处于任意一种同步状态,
它就异常终止连接并通知它的用户。而嵌入式系统中取消了
/9(*
状态,所以收到复位
1*(1)
控制报文时,回到
’()*+
状态,实际处理时并没有记忆当前的状态,所以不需要作任何
操作,并因为始终处于被动状态而从不发复位
1*(*)
报文。
在操作系统中,将端口号、
’6
地址、序列号、窗口尺寸等和
响应的传输控制块
)/4
结合标示不同的连接,为不同的客户
请求建立多个连接,一一对应,并发执行。而在嵌入式
)/6
中
实现如此复杂的操作不现实,故设计中没有记忆
)/6
连接所
处的当前状态,也没有分开建立多个
)/6
连接。分析如下:每
从下层协议传来一个报文后,并不能比较报文段中的信息和
)/4
中的信息来进行处理,因为并没有记忆过去所建连接的有
关信息,所以并不知道此连接是否存在,所处状态等,仅仅根据
接收包内的有关信息(控制位和有无数据),来判断所处连接状
态,来进行回应。连接的概念在一定程度上,只是对客户端
6/
来说的,给它维持一个连接存在的假象。而嵌入式服务器端因
为不存储连接的信息,相当于没有连接的存在,对所有连接都
响应,才可以在有限的系统资源的条件下实现了多连接。
当
)/6
的连接中,一方由于崩溃等原因造成异常终止或
关闭一个连接,会产生半开连接的问题,由于异常的一方丢失
了存储的信息,若任一方发数据去,对方会回复复位信号,使连
接复位。对嵌入式系统来说,当客户机异常时,当嵌入式系统发
数据时,会被回复复位信号;当嵌入式系统异常后,又重新开始
时,由于它本来就无存储信息,故没有什么影响。
当网络问题等出现超时、丢失包时,一般用超时重传机制
时间来重发,而嵌入式系统发包之后,并未保存此包,因此不考
虑重发问题。当丢包后,对方接不到确认包,认为自己的所发的
包丢失,超时重发,而嵌入式系统此时再响应,发包,仍可保证
可靠性。
嵌入式系统不记忆
)/6
连接的序列号,除了第一次建立
连接时,初始化序列号外,根据对方发包中的值来确定序列号,
因此它不能识别重复报文,而照常回应,把此重复报文的处理
工作交给对方处理,仍可满足基本工作要求。对依靠
)/6
连接
的
5))6
服务来说,嵌入式服务器仅仅在服务器端响应客户端
请求,所接收的报文一个数据报即可传输完成,故不需考虑失
序问题。
在设计实现
)/6
有限状态机时使用过程驱动方案,为每
个输入状态启动一个过程。当某一事件发生时,
)/6
利用当前
状态来选取一个适当的过程。该过程处理输入事件并更新当前
状态变量值。即:每个状态对应一个过程,当一个输入报文段到
达时,
)/6
调用当前状态对应的过程,进行处理。
程序主要如下:
…
:;
(
(,+’+ == ?@ABCD@:EFA
)
AGHIBJ(,+./0
();
IKHI :;
(
(,+’+ == ?@A BCDL@?BE
)
AGHIBJ1()./0
();
IKHI :;
(
./0’+ == ?@A BCD@:EFA == FMNIJMAM
)
5))6@?7
GIHH
(
AG./0
);
IKHI :;
(
O’+’+ == ?@A BCD@:EFA == FMNIJMAM
)
5))6@?GIHH
(
AGO’+
);
IKHI :;
(
O’+’+ == ?@A BCD@:EFA == B?JMAM
)
AGHIBJO’+
();
IKHI
…
P#Q 5))6 协议
超文本传输协议
5))6
每一次交互由一个
.(/’’
码请求
跟着一个
R’R*
的应答组成。协议包括从浏览器到服务器的请
求集和从另一方向来的应答集。其中
S*)
方法请求服务器发
送一页面,因为此嵌入式系统中的
T*4
页面中的相关数据总
是实时更新的,因此每次解析出
S*)
方法,都发送当前网页。
从
文档评论(0)