当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: 在网络应用日益普遍的今天,越来越多的嵌入式设备实现Internet网络化。
 

 

 ·flashclash比赛ria获奖作品    »显示摘要«
    摘要:| 比赛网站地址 | 第一名:室内设计软件 第二名:图像处理软件 第三名:客户关系软件 ......
 ·剖析linux系统启动过程(三)    »显示摘要«
    摘要:1.启动系统.当pc机加电开始启动时,80x86的处理器(cpu)在实模式下自检,开始执行物理地址0xffff0即rom-bios的起始地址处的代码。pc机的bios进行系统自检,初始化中断向量表到物理地址0x0。然后把引导设备的第一个扇区加载到地址0x7c00,执行此处的指令。到这里与linux无关,x86系列的硬件设置如此. linux的内核本身是不能自举的,所以lilo和loadlin的作......


基于ARM的嵌入式TCP/IP协议的实现

图1 协议处理 【程序编程相关: Performance compari

在网络应用日益普遍的今天,越来越多的嵌入式设备实现internet网络化.tcp/ip协议是一种目前被广泛采用的网络协议.嵌入式internet的技术核心是在嵌入式系统中部分或完整地实现tcp/ip协议.由于tcp/ip协议比较复杂,而目前嵌入式系统中大量应用低速处理器,受内存与速度限制,有必要将tcp/ip协议简化. 【推荐阅读:OTSU方法计算图像二值化的自适应阈值

嵌入式tcp/ip协议一般实现:arp/rarp.ip.icmp.tcp.udp.http.smtp.ftp.telnet等协议,协议处理的主要流程如图1所示. 【扩展信息:在delete时的一些错误

1 tcp/ip协议的实现

1.1 tcp协议的实现

工业控制领域传输层采用tcp协议.不用udp协议,是考虑到实时监控系统中传输量并不大,而可靠性要求较高.tcp协议是面向连接的.端对端的可靠通信协议.它采用了许多机制来保证可靠传输,应用于嵌入式系统显得过于复杂.

tcp协议数据传输可分为三个阶段:建立连接.传输数据与断开连接.它的实现过程可以用状态机来描述.建立连接有两种方法,即主动打开与被动打开.服务器端是一种被动打开,它一直在侦听连接请求;而客户端是一种主动打开,它发送连接请求以建立连接.研究发现,如果tcp层的上层实现服务器端的应用,可以将标准tcp状态机建立连接过程中客户端建立连接的状态机部分简化掉.同理,如果应用是基于客户端的,可以将服务器端建立连接的状态机部分简化掉.断开连接有两种方式:一是主动断开连接;另一是被动断开连接.被动断开连接的处理较为简单,但标准tcp协议的主动断开连接的状态机部分过于复杂.经过实验发现,在需要主动断开连接的时候,发送一个fin数据报;接收到对fin数据报的确认后,再发送一个reset数据报,即可顺利完成一次主动断开连接.

标准的tcp协议使用慢启动的滑动窗口机制.滑动窗口是一种在流量控制与网络传输效率之间折中的方案.它允许发送方在等待一个确认之前发送多个窗口,其确认是一种批量的确认.研究滑动窗口协议发现,滑动窗口的一个极限情况,是只使用单个窗口,就变成了一种简单确认的处理方法.使用该方法后,所有的处理只是对单个数据报的发送与确认,节约了系统的资源,也使维护更加方便.为了协议的兼容性,需要通信的另一方也使用简单确认方法.因为如果对方使用较大的窗口,就可能造成处理器被淹没.这个问题可以通过设置待发送数据报的tcp头部的windows字段的大小解决.

在上述基础上,简化实现tcp协议的流程图如图2所示.
...   下一页

 ·linux的内核配置选项    »显示摘要«
    摘要:1.code maturity level options:代码成熟等级。 1.1.prompt for development and/or incomplete code/drivers.在linux的世界里,每天都有许多人为它发展支持的driver和加强它的核心。但是有些driver还没进入稳定的阶段。但其作者很欢迎其他人去测试这些driver并提出一些bugs。很多参考书上说这是那些开......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE