嵌入式TCP/IP网络通信协议的实现

来源 :硅谷 | 被引量 : 0次 | 上传用户:gbyljk008
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]TCP/IP已成为网络互联的标准,并成为支持Internet/Intranet的协议标准。就是针对当前流行的TCP/IP网络通信协议的实现进行具体的研究和探讨。
  [关键词]TCP/IP协议 Internet 网络通信
  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)1220053-01
  
  Internet已经发展得更加商业化,更加面向消费者,尽管基本目的发生了改变,但其最初的质量标准(也就是开放式、抗毁性和可靠性)依然是必需的。这些特性包括可靠传输数据、自动检测、避免网络发生错误等。更重要的就是TCP/IP是一个开放式的通信协议,开放性就意味着在任何组合间,不管这些设备的物理特征有多大差异,都可以进行通信。
  
  一、标准TCP/IP协议
  
  如同OSI参考模型一样,TCP/IP也是一种分层模型。与OSI参考模型不同的是,TCP/IP参考模型更侧重于互联设备间的数据传送,而不是严格的功能层次划分。TCP/IP通过解释功能层次分布的重要性来做到这一点,但它仍为设计者具体实现协议留下很大的余地。因此,OSI参考模型适用于解释互联网络的通信机制,而TCP/IP更适合做互联网络协议的市场标准。
  TCP/IP协议是一套把因特网上的各种系统互联起来的协议组,可以保证因特网上数据准确又快速地传输。TCP/IP协议是一个很大的协议族,通常表示为一个简化的四层模型。这四层分别是应用层、传输层、网络层和链路层。
  
  二、IP协议的实现
  
  IP是TCP/IP协议中最为核心的协议。所有的数据都以IP数据报格式传输。IP协议可以实现无连接数据报传送、数据报路由选择和差错控制的功能。在本课题中,由于单片机资源有限,结合实际需要只实现了IP数据报传送和接收,没有实现路由选择算法和差错控制,同时也不支持IP数据报的分片和重组。
  IP协议主要通过IP接收函数和IP发送函数两个函数实现。
  (一)IP发送函数
  voidip_send对来自上层的数据,按照IP数据报的结构构造数据报。通过调用ARP处理程序解析对应IP的物理地址。若返回NULL值,则将数据存入一个已定义的结构体WAITE中,并发送ARP请求。若返回对应IP的物理地址,则将数据交给底层以太网驱动程序处理。
  (二)IP接收函数
  Voidiprcve(UCHARxdata*inbuf)单片机收到数据包之后,应先对数据包的类型进行判断。如果是IP数据报,则调用该程序。接着再判断其数据域中所使用的协议类型,是ICMP协议调用ICMP处理子程序,是UDP协议调用UDP处理子程序,是TCP协议调用TCP处理子程序,其它返回。程序流程图如图1所示:
  


  在大多数TCP/IP协议中采用的差错检验方法是校验和,校验和是在分组上附加的信息。校验和能够防止分组在传输时所受到的损伤。在发送端先计算检验和并将得到的结果与分组一起发送过去。接收端对包括校验和的整个分组重复进行同样的计算。若得到的结果正确则接收此分组,否则就将其丢弃。发送端和接收端的校验和计算方法分别如下:
  ①发送端按以下步骤产生校验和;
  ②接收端按以下步骤产生校验和。
  
  三、TCP协议的实现
  
  TCP协议的实现是整个TCP/IP协议栈中最复杂的一个。TCP协议是面向连接的、端对端的可靠通信协议。TCP采取了很多机制来保证它的可靠性,比如TCP连接的建立与关闭机制、超时重传机制、数据包确认机制、流量控制机制等等。在嵌入式系统中实现TCP协议所要做的就是实现这些机制,当然要在不影响协议栈功能的前提下适当做一下简化。
  当一个TCP连接顺利建立起来后,TCP连接的双方可以互相传递数据了。TCP的可靠传输是靠确认机制来实现的,也就是每发送一个数据包后,只有接收到对方发送确认包后,才能确定该数据包已经成功发送,否则就要重发。
  TCP的流量控制是为了协调通信双方的收发速率不均衡而设计的。远端的客户机一般是通用计算机,相对与本地的嵌入式WebServer来说运行速度要快得多。因此,当远端快的发送方向本地慢的接收方发送数据的时候,如果发送速度很快,则会导致本端来不及处理,甚至导致死机。TCP连接建立时,双方会利用TCP首部中的Window窗口字段通报双方的可用窗口。实际上,接收方通报的窗口大小是根据其接收缓存的大小而定,考虑到本系统在使用TCP协议时,只设置了一个中等IP包大小接收缓存,因此接收窗口设为1024。同时,每次接收包的ACK确认时,窗口大小不再动态改变,恒定设置为1024。这样远端主机就会以较慢的传输速率与本端的WebServer进行通信。
  
  四、结论
  
  本文主要针对目前流行的TCP/IP网络通信协议的实现进行研究和探索,由于时间仓促,加上本人对该领域的研究才刚刚起步,所以还存在一些问题值得进一步研究探讨,主要有:
  1.对于TCP/IP协议,时间的控制非常重要。包括TCP的超时重传,TCP状态的保活等。如果时间处理不当,将影响整个系统的通讯性能。
  2.如何进一步实现TCP/IP对于多点通信以及完整协议栈的实现还有待于进一步研究。
  3.IPv6作为下一代互联网的核心协议,能够提供几乎无限的地址空间,从根本上克服了IPv4中地址空间不足的问题。因此,下一步可增加对IPv6协议的研究与实现。
  
  参考文献:
  [1]胡海,嵌入式TCP/IP协议栈研究与实现[D],西南交通大学,2006.8.
  [2]吴艳光,嵌入式TCP/IP协议栈设计方法的研究[D],太原理工大学,2006.2.
其他文献
[摘要]一种基于Trident Pro-QX数字电视系统的DDR2 400信号完整性设计、采用Cadence SPecctraQuest 仿真平台进行分析设计。类似于理论指导实践,来保证memory在高速状态下,保持稳定工作。从而达到研发成本最小,系统效率最大。  [关键词]DDR2 Pro-Qx 数字电视 信号完整性 Cadence SPecctraQuest  中图分类号:TN94文献标示码:
期刊
[摘要]讨论C语言教学中需要注意的几个问题,包括兴趣、实践、数学基础以及程序设计风格等问题。  [关键词]C语言 兴趣 程序设计  中图分类号:G43 文献标识码:A 文章编号:1671-7597(2008)0310067-01    C语言是计算机及其相关专业本科生的一门专业基础课,很多高校都将其作为学习计算机时的必修课程。学好C 语言既是学习C++、Windows编程等程序语言的基础,也是数据
期刊
[摘要]通过VB控件教学,讲述怎样教学生将专业知识和其它素质相结合起来,并系统化。  [关键词]visual basic 控件 对象 创造性 方法  中图分类号:G43 文献标识码:B 文章编号:1671-7597 (2008) 0310076-01    控件是面向对象的程序设计语言中的一大特色,它是面向对象程序设计中的一个基本组成部分,同样,在VISUAL BASIC语言中,它也给我们提供了丰
期刊
[摘要]二叉树中E=I+2n公式在查询等领域有着广泛的应用。一般对它采用数学归纳法来证明,且仅限于公式的直接应用。直接证明方法在充分利用二叉树定义的迭代关系基础之上,分析二叉树中E与I之间的密切关系,据此提出该公式的另一种证明方法并进行严格的证明。该方法能更多地了解每一边、每一结点上的具体情况,因而具有广泛意义。  [关键词]扩充二叉树 内部结点 外部结点 外部路径长度 满二叉树  中图分类号:O
期刊
[摘要]近年来,110KV有载分接开关多数采用电阻式组合型,总体结构可分为三部分:控制部分、传动部分、开关部分。有载分接开关对提高供电系统的电压合格率起到了重要作用。而目前靠大电网供电的县级电网的调压手段,主要靠有载调压变压器来实现。  [关键词]110KV有载分接开关 运行 维护  中图分类号:TM4 文献标识码:A 文章编号:1671-7597(2008)1220018-01    一、110
期刊
[摘要]在许多中小型软件企业中,软件质量是亟待解决的问题,而测试作为软件质量问题解决的重要手段,就成为他们的瓶颈。讨论抽取CMMI中的针对测试体系的部分,性能能够快速复制并且符合CMMI体系的软件测试体系标准,使得这些无法实施CMMI的企业也能够获取更好的软件质量。  [关键词]CMMI 测试体系 快速复制  中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)122004
期刊
[摘要]目的:研究大孔树脂分离和富集麦冬中总皂苷的工艺条件。方法:以麦冬中含量较高的麦冬皂苷A和麦冬皂苷B的富集量作为考察指标来确定富集效果。对5种不同类型的树脂进行评价优选。结果:D一101型大孔吸附树脂对麦冬中总皂苷有较好的分离富集能力。通过D一101大孔吸附树脂富集,麦冬提取物可以有效除去糖类等水溶性杂质,使麦冬皂苷A含量提高32倍,使麦冬皂苷B的含量提高36倍,富集效果好。  [关键词]麦
期刊
[摘要]在分析应变Si/应变Si1-YGeY/驰豫Si1-XGeX pMOSFET的在栅极电压作用下电荷在栅氧化层下面的分布情况的基础上,通过求解泊松方程,得到此器件的隐埋SiGe沟道阈值电压解析模型和表面沟道的阈值电压解析模型,并用典型参数对模型进行了模拟,得到的模拟结果与实验结果能够很好的吻合。  [关键词]SiGe MOSFET器件 阈值电压 解析模型  中图分类号:TM8 文献标识码:A
期刊
[摘要]介绍一种基于复杂可编程逻辑器件(CPLD)和数字信号处理器(DSP)的图像采集系统。系统采用增强型视频输入处理芯片SAA7111A完成视频信号的A/D转换,利用CPLD实现对视频前端译码后的视频数据的存储,以及完成前端采集与后端处理协调工作的方案。按照该方法制作的系统,经过实验验证效果良好。  [关键词]DSP CPLD 图像采集  中图分类号:TP3 文献标识码:A 文章编号:1671-
期刊
[摘要]中医药信息具有单属性多值的特点,同名异物、同物异名的现象普遍存在。传统的关系数据库中数据的表述是基于行与列的,这非常不利于中医药信息的描述。XML以一种开放的自我描述方式定义了数据结构,在描述数据内容的同时能突出对结构的描述。在XML中,用户可以采用树型结构自己定义标记,标记的增加与删除也非常的方便。然而XML毕竟不是数据库,用XML代替数据库的想法是不科学的。SQL Sever 2005
期刊