嵌入式系统的TCP/IP协议栈的研究与设计
高晓晶
电子科技大学电子工程学院,成都(610054)
E-mail: 40384719@qq
摘要:本文首先介绍了嵌入式TCP/IP协议栈的研究意义和科研背景,然后针对嵌入式系统硬件资源较少,通常缺乏足够的CPU和存储器资源以支持整个TCP/IP协议族的问题,提出针对不同的网络应用对协议栈进行精简的方案,只保留其基本功能,以满足网络应用的需要。
关键词:嵌入式系统,TCP/IP,协议栈,Internet
1. 引言
Internet技术的不断发展,将丰富的信息带入了人们的日常生活以及生产生活中,Internet的应用领域也不断扩大,除了传统的信息检索、、远程登陆外,各种新应用(如信息家电,远程数据采集,工业控
制)也越来越受人们的关注。接入Internet的主体也慢慢开始发生变化,越来越多的嵌入式应用需要支持网络功能。
实际上在全球每年的CPU出产量中,绝大部分是嵌入式的微处理器,可见嵌入式系统的应用比通用计算机系统广泛的多。嵌入式系统的应用更是涉及制造工业、过程控制、通讯、仪器、仪表、汽车、船舶、航空、航天、军事装备、消费类产品等各个领域。可见,如果将信息资源如此丰富的嵌入式系统接入Internet的话,将会给Internet的发展带来一个新的飞跃,真正实现全球资源共享。嵌入式TCP/IP协议栈就是嵌入式系统接入Internet的基础,TCP/IP协议是一种全世界通用的网络协议,嵌入式系统只有服从这种通用协议才可以和别的系统建立联系,才可以接入Internet。
2. 嵌入式TCP/IP研究现状和主要困难
在数据采集领域,一些小型监测设备需要增加网络功能来实现远程数据传输功能。而现存的IP网诸如全球Internet网的趋势愈演愈烈,只要那些设备上实现了TCP/IP协议并增加一个网络接口,就可以方便的接入到现有的网络中,所以小型设备的网络接入技术一直是大家关注的焦点。而使小型设备与Internet通信,实现一个短小精悍且占用资源比较少的嵌入式TCP/IP协议栈则是其核心所在,其次硬件的选取要根据项目的实际需要而定。
将嵌入式系统与Internet网络结合起来的思想很早以前就有了,主要的困难在于:一方面,Internet网上
的各种通信协议对于计算机的存储器、运算速度的要求比较高,而嵌入式系统以前大部分用的是8位的微处理器,如果要支持TCP/IP等Internet协议将占用大量系统资源,或根本不可能实现;另一方面,在嵌入式系统的应用上,微处理器的型号、种类非常多,要在不同的微处理器上实现相应的网络功能,设计人员要先熟悉该型号微处理器结构特点和相应的汇编语言,所以使得将嵌入式系统与Internet结合起来存在一定的难度。但是随着16位和32位MCU速度增快,存储器容量增大,尤其是32位MCU的出现,使嵌入式系统和Internet的结合成为可能。
3. 嵌入式系统接入Internet的主要解决方案
目前嵌入式系统的Internet接入技术主要有三种[1]:
(1)直接接入技术方案。实现嵌入式系统直接与Internet相互连接,主要是通过在嵌入式系统本身添加网络接口硬件,增加相应的软件支持,并采用相应的接口方案而实现的。其结构如图1所示。
图1 直接接入模型
这种Internet直接接入技术模型使嵌入式系统直接与Internet相连,具有很大的灵活性,但是占用的系统资源比较多,对微处理器的要求也很高。
(2)嵌入式网关技术方案。对于大量在一起的嵌入式设备来说,对每个嵌入式系统都实现Internet功能,将造成巨大的资源浪费,这时候可采用一个嵌入式网关接入。其结构如图2所示。
图2 网关接入模型
这种技术需要一个专门的嵌入式网关,而且网关和嵌入式系统之间通信也会受到轻量级网络协议的制约。对于过于分散的嵌入式系统而言,采用这种接入技术模型,成本将会增加。
(3)嵌入式系统+TCP/IP软件协议方案。通过软件方式实现TCP/IP协议栈,使嵌入式系统具备接入Internet的网络功能。这种方式需要自行开发协议栈,对开发人员要求较高,对系统资源要求较低。鉴于目前大多数嵌入式系统采用的是8b或16b的低档单片机,第三种技术方案更具有广泛意义。考虑到嵌入式系统的特点,必须根据实际情况精简TCP/IP协议,以下提出一种精简方案。
4. TCP/IP协议栈的精简
TCP/IP协议栈是一种四层的结构模型[2],如图3。嵌入式系统很难支持完整的TCP/IP 协议,也不需要支持,所以必须根据嵌入式系统自身的特点来对协议栈进行精简和优化。
4.1 链路层协议分析
媒体应用层传输层网络层链路层
图3 TCP/IP协议中不同层次的协议
如图3可见,链路层包括ARP(地址解析协议)和RARP(逆地址解析协议)两个协议。其中,RARP主要用于无盘工作站中,嵌入式系统不用实现。ARP的地址解析功能是为IP 地址和数据链路层使用的硬件地址提供动态的地址映射,因此必须实现。ARP包括分为ARP 请求协议和ARP响应协议两部分。因为嵌入式系统通常都是被动的接受用户的服务请求,所以只实现ARP响应协议部分就可以了。
4.2 网络层协议分析
在网络层中,IP(网际协议)是网络层的主要协议,提供不可靠的无连接的数据传送服务。IP协议非常重要,实现起来也非常复杂。对于嵌入式系统,不必实现其所有的功能。只需要完成两个基本的功能:1.接收下层送来的IP数据包进行处理后,再提交给上层。2.接受上层送来的数据包进行封装,在送交下层。ICMP主要用于与其他主机或路由器交换错误报文以及状态管理等信息。对于处于被动状态的嵌入式设备而言,只要能够识别客户发来的回显请求并发送回显应答即可[3]。IGMP用于将UDP数据包多播到多个主机,嵌入式系统不必实现。
4.3 传输层协议分析
在传输层协议中,TCP(传输控制协议)是一种面向连接的协议,具有高可靠性,这种高可靠性是以高复杂程度为代价的,实现起来对系统资源要求比较高[4]。而UDP(用户数据报协议)是一种无连接协议,提供不可靠服务,在数据传送过程中可能出现数据包丢失现象。但是UDP的复杂程度低,占用系统
资源少,因此,对于嵌入式系统来说,如果对数据传输的可靠性要求不高,应该选择UDP。
4.4 应用层协议分析
应用层包括FTP(文件传输协议),HTTP(超文本传输协议),SMTP(简单邮件传输协议),Telnet(远程登录协议)SNMP(简单网络管理协议)等多个协议,要根据嵌入式具体要实现什么功能来确定使用哪个协议,其余的协议则不必实现。
精简后的嵌入式TCP/IP协议的处理流程图如图4所示。
图4 精简后TCP/IP协议处理流程
5. 结束语
本文阐述了嵌入式接入Internet的深远意义,提出了一种TCP/IP协议的精简方案,以适用于嵌入式系统。但是由于嵌入式系统资源有限,只能实现有限的网络功能并且可靠性和安全性不高。相信随着嵌入式的不断发展和Internet技术的不断进步,在嵌入式系统上实现TCP/IP协议栈的技术也将会越来越完善。
tcpip协议在设计时就考虑了如何解决安全问题参考文献
[1] 齐志强.基于嵌入式系统的TCP/IP协议栈的研究.[D].秦皇岛市:燕山大学硕士学位论文.2006.1.
[2] Stevens W R. TCP/IP 译解卷1: 协议。[M]. 北京: 机械工业出版社, 2000.
[3] 阕建荣. 嵌入式Internet体系结构研究。[J] 微型机与应用, 2004, (3) : 4—6
[4] 李素侠, 段友祥. 嵌入式TCP/IP协议的分析与研究。[J]。微计算机信息, 2005 (7) : 52—53.
Research and Design on TCP/IP Protocol Stack in the
Embedded System
Gao Xiaojing
University of Electronic Science and Technology of China, Chengdu (610054)
Abstract
At first, this paper introduced the significance of the scientific research on TCP/IP protocol stack in the embedded system. Then, put forward a notion to simplify the TCP/IP protocol stack, in order to satisfy the limited software and hardware surroundings of the embedded system and its actual requirements. Keywords: embedded system, TCP/IP, protocol stack, Internet
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论