📄 嵌入式web服务器中tcp-ip协议栈的实现的研究--《plc&fa》网络版.htm
字号:
<TR>
<TD>
<SCRIPT language=javascript>
<!--
function chkSubmits(){
if(magazine.magayear.value==''){alert('请先选择年份!');magazine.magayear.focus();return false;}
if(magazine.magano.value==''){alert('请先选择期数!');magazine.magano.focus();return false;}
magazine.submit();
return true;
}
//-->
</SCRIPT>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<FORM id=magazine name=magazine action=list_s.asp
method=post>
<TBODY>
<TR>
<TD class=14><SELECT class=login name=magayear>
<OPTION value=2007 selected>2007</OPTION> <OPTION
value=2006>2006</OPTION> <OPTION
value=2005>2005</OPTION> <OPTION
value=2004>2004</OPTION> <OPTION
value=2003>2003</OPTION></SELECT> <SELECT class=login
onchange=chkSubmits(); name=magano> <OPTION value=all
selected>选择期数</OPTION> <OPTION value=1>第1期</OPTION>
<OPTION value=2>第2期</OPTION> <OPTION
value=3>第3期</OPTION> <OPTION value=4>第4期</OPTION>
<OPTION value=5>第5期</OPTION> <OPTION
value=6>第6期</OPTION> <OPTION value=7>第7期</OPTION>
<OPTION value=8>第8期</OPTION> <OPTION
value=9>第9期</OPTION> <OPTION value=10>第10期</OPTION>
<OPTION value=11>第11期</OPTION> <OPTION
value=12>第12期</OPTION></SELECT>
</TD></TR></FORM></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" bgColor=#f9f9f9
border=0><TBODY>
<TR>
<TD vAlign=top align=middle bgColor=#f9f9f9>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD align=middle><IMG height=30
src="嵌入式WEB服务器中TCP-IP协议栈的实现的研究--《PLC&FA》网络版.files/category.gif"
width=150></TD></TR>
<TR height=2>
<TD height=2></TD></TR>
<TR>
<TD class=leftul height=20>·<A
href="http://www.plc-fa.hk/column.asp?cata=1">综述</A> </TD></TR>
<TR>
<TD height=20>·<A
href="http://www.plc-fa.hk/column.asp?cata=2">行业动态</A></TD></TR>
<TR>
<TD height=20>·<A
href="http://www.plc-fa.hk/column.asp?cata=3">海外文摘</A></TD></TR>
<TR>
<TD height=20>·<A
href="http://www.plc-fa.hk/column.asp?cata=4">专访</A></TD></TR>
<TR>
<TD height=20>·<A
href="http://www.plc-fa.hk/column.asp?cata=11">企业之窗</A></TD></TR>
<TR>
<TD height=20>·<A
href="http://www.plc-fa.hk/column.asp?cata=5">PLC/工控机与集散控制系统</A></TD></TR>
<TR>
<TD height=20>·<A
href="http://www.plc-fa.hk/column.asp?cata=6">现场总线与网络技术</A></TD></TR>
<TR>
<TD height=20>·<A
href="http://www.plc-fa.hk/column.asp?cata=7">计算机控制、监测与管理</A></TD></TR>
<TR>
<TD height=20>·<A
href="http://www.plc-fa.hk/column.asp?cata=8">工业控制技术</A></TD></TR>
<TR>
<TD height=20>·<A
href="http://www.plc-fa.hk/column.asp?cata=9">机器视觉</A></TD></TR>
<TR>
<TD height=20>·<A
href="http://www.plc-fa.hk/column.asp?cata=12">国际组织专栏</A></TD></TR>
<TR>
<TD height=20>·<A
href="http://www.plc-fa.hk/column.asp?cata=10">冶金行业应用</A></TD></TR>
<TR height=2>
<TD height=2></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
<TD width=12></TD>
<TD vAlign=top align=middle>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD height=10> </TD></TR>
<TR>
<TD height=10>
<DIV align=center><B
class=307070>嵌入式WEB服务器中TCP/IP协议栈的实现的研究</B></DIV></TD></TR>
<TR>
<TD style="WORD-BREAK: break-all" height=10>
<DIV align=center><B
class=307070>Realiaztion of TCP/IP Protocol Stack in Embedded Web Server</B></DIV></TD></TR>
<TR>
<TD align=middle height=10><IMG height=9
src="嵌入式WEB服务器中TCP-IP协议栈的实现的研究--《PLC&FA》网络版.files/file_.gif"
width=445></TD></TR>
<TR>
<TD align=middle>
<TABLE style="WORD-BREAK: break-all" cellSpacing=0 cellPadding=1
width=580 border=0>
<TBODY>
<TR>
<TD align=middle height=16>本文来自2006年第2期“计算机控制,监测与管理”上
,已经被阅读过1746次<BR></TD></TR>
<TR>
<TD><B class=996699>作 者
:</B>中国矿业大学 计算机学院 张丽娜 夏士雄</TD></TR>
<TR>
<TD height=4></TD></TR>
<TR>
<TD vAlign=top><B class=996699>关键词:</B>
嵌入式系统 WEB TCP/IP协议栈 ARP</TD></TR>
<TR>
<TD vAlign=top> </TD></TR>
<TR>
<TD class=ff vAlign=top>
<TABLE style="LINE-HEIGHT: 20px" width="98%" border=0>
<TBODY>
<TR>
<TD colSpan=2>
<P><FONT color=#008284>1
引言</FONT><BR>嵌入式Internet技术的历史虽然不长,但发展却十分迅速,涌现出了多种实现方法,主要有:<BR>(1)
嵌入式实时操作系统;<BR>(2) 嵌入式Web服务器技术;<BR>(3)
thinTCP/IP协议栈技术;<BR>(4) Web管理技术;<BR>(5)
嵌入式Java技术;<BR>(6) 嵌入式片上系统技术;<BR>(7) 嵌入式实时数据库;<BR>(8)
嵌入式软件开发平台等。<BR>每种方法都有着它自身的应用环境和优势。我在选择嵌入式Web服务器作为嵌入式internet技术的实现方式时,在通信协议选择方面做了具体的研究。这种方式的思路:在嵌入式设备中实现HTTP服务。</P>
<P><FONT color=#008284>2 嵌入式Web服务器技术<BR>2.1
Web的特点</FONT><BR>(1)
Web是图形化和易导航的。Web可在一页上同时显示色彩丰富的图形和文本,是一种全局性的信息结构,是超文本(hypertext)和多媒体(multimedia)在信息浏览环境下的结合。Web可提供图形,音频,视频信息合为一体的信息形式,同时易于导航,只需从一个连接跳到另一个连接,就可在各页间浏览。而在Web出现以前,internet上的信息只有文本形式。<BR>(2)
Web与平台无关。无论系统平台是什么,你都可以通过浏览器(browser)在internet上访问WWW(world
wide web)。<BR>(3)
Web是动态的。服务器可以根据用户输入的请求,去直接或间接地创建Web网页,然后返回给Web浏览器。最早实现动态内容应用的方法是通过CGI(Comman
Gateway
Interface公共网关接口),它对Web服务器上程序的运行及Web服务器同Web浏览器之间动态内容的传输有基本的规定。<BR><FONT
color=#008284>2.2
嵌入式Web服务器技术</FONT><BR>嵌入式Web服务器(Embedded Web Server,
EWS)是指将Web服务器引入到现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议,Web技术为核心的基于互联网的网络测试和控制设备。EWS系统与传统的Web应用相比,简化了系统结构,将信息采集和信息发布都集成到现场的测控设备中。由于有了标准的接口形式和通信协议,内嵌于设备的Web服务器可以向任何接入它所在网络的合法用户提供统一的基于浏览器方式的操作和控制界面,浏览器成了设备的前端控制板。由于Web技术的开放性和独立平台特性,大大降低了软件系统和通信系统的设计、维护工作量,节省了人员培训费用等,提高了现场测试和控制设备的管理水平。</P>
<P><FONT color=#008284>3
协议的选择</FONT><BR>嵌入式系统最先利用轻型工业网络进行互连,诸如:CAN,PROFIBUS,MODBUS等等组织的工业网络能够进行各工业设备间的互访和信息交流,但是,这些工业网络协议之间标准不统一,而且,这些工业网络的通信半径比较短,推广的前景不乐观。TCP/IP协议作为一种成熟的网际互联手段和事实标准,毫无疑问可以作为嵌入式系统连入互联网的首选协议。在TCP/IP协议基础上建立的HTTP超文本传输协议、FTP文件传输协议、Telnet远程登陆协议以及SMTP邮件协议等协议族构成了Web技术的核心。同时,Web服务器同Web浏览器之间的通信是通过HTTP协议进行的,这一通用的、无状态的、面向对象的协议HTTP协议是Web浏览器和Web服务器之间的应用层协议,也是基于TCP/IP协议。<BR>但是在嵌入式系统中,硬件资源较少,通常缺乏足够的处理器和存储器资源以支持整个TCP/IP协议簇。因此,必须针对不同的网络应用对协议栈进行删减,保留其基本功能,以满足网络应用的需要。嵌入式TCP/IP的实现有硬件固化和软件两种方式。硬件方式是将TCP/IP协议栈用硬件实现,嵌入式系统直接与协议栈硬件芯片连接,由它实现协议的转换。但这无疑增加了硬件成本,对一些功能相对较少的嵌入式系统,连接一个完整的硬件协议栈,是一个极大的浪费。因此,对大部分低端嵌入式系统,用软件实现TCP/IP协议栈具有更大的现实意义。<BR><FONT
color=#008284>3.1
TCP/IP协议模型简介</FONT><BR>TCP/IP协议是一套成熟的协议族,它规定了Internet上数据传输的格式和数据处理的方式。参考OSI模型,TCP/IP通常采用一种简化的四层模型,分别为:应用层,传输层,网络层,链路层。<BR><FONT
color=#008284>3.2
嵌入式WEB服务器中协议选择</FONT><BR>嵌入式系统TCP/IP协议选择时遵循的原则是:<BR>首先,嵌入式系统中实现的协议要根据系统自身的特点及功能来设计自己的协议族,实现与需要有关的部分,不使用的协议一概不考虑;<BR>其次,对于要使用的协议也根据实际应用情况做取舍。<BR>考虑到嵌入式Web服务器的硬件处理速度慢并且存储容量相对较小的条件限制,在TCP/IP协议栈中主要能够实现ARP,IP,ICMP,TCP,HTTP协议即可。分析如下:<BR>(1)
ARP:嵌入式Web服务器中ARP协议主要功能是进行IP地址与以太网地址之间的转换,当系统收到发送数据请求时,协议栈就需要返回IP数据报,所有的IP数据报都要进一步封装成以太网帧才能发送给网络控制器,而所加的以太网首部中就包含了由ARP协议解析目的IP地址所得来的对应的物理地址。<BR>(2)
IP:主要功能是用于主机之间发送数据报的传输。嵌入式Web服务器对IP包的大小严格限制,不支持分段传输,以减少程序的复杂度。在收到IP包后,检验IP头部的版本,目的地址,校验和的正确性,解析出协议类型字段,然后交给高层协议处理。发送IP包时,将缓冲区的目的地址设置上以后,交给下层协议。<BR>(3)
ICMP:仅仅实现检测目的站可达性及其状态的功能,作为嵌入式Web服务器中的应用只需回送应答响应收到的回送请求(PING)即可。<BR>(4)
TCP:它是嵌入式Web服务器的核心。在设计嵌入式Web服务器时,系统应用层只需支持HTTP协议。嵌入式系统把要传送的数据,参数等存入网页的相关位置。对于任何TCP连接,每次只需支持HTTP协议发送网页服务。作为嵌入式Web服务器,TCP连接时只需处于被动服务的状态,所以将标准的TCP有限状态机的主动创建连接的SYN-SENT状态,主动关闭连接的FIN-WAIT1,FIN-WAIT2,CLOSING,TIME-WAIT状态都省去,在设计中,还可以舍弃CLOSED状态,让它开始就处于LISTEN状态来监听客户端的连接请求。这样,TCP的三次握手机制中,建立连接的过程时,嵌入式系统作为监听状态的服务器,始终为被动方,相当于被动打开后的LISTEN状态,等待对方发起连接。当它接收到SYN数据片,它发出SYN+ACK数据片并确认它己经收到对方的SYN,此时变为SYN_
RECEIVED状态。再接收到对方返回的一个仅含ACK的空数据片,则三次握手完成,进入ESTABLISHED状态,之后可以进行TCP数据通讯。这样,既节省了系统开销,同时也保证了所有的数据段都能安全正确地到达目的端。<BR>HTTP:它包括从浏览器到服务器的请求集,从服务器到浏览器的应答集。嵌入式Web服务器中服务器对浏览器的响应仅仅在一个数据包中传输,限制分包传输。HTTP协议是基于请求/响应模式的(相当于客户机/服务器模式),请求格式是:统一资源标识符(URL)、协议版本号,后边是MIME(通用Internet邮件扩充)
信息包括请求修饰符、客户机信息和其它可能的内容;服务器在回应时的格式为:信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。</P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -