新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于SF0020芯片的嵌入式TCP/IP协议族设计与实现

基于SF0020芯片的嵌入式TCP/IP协议族设计与实现

作者:时间:2009-08-11来源:网络收藏

发送数据报时采用大缓冲区方案:即将缓冲区划分的足够大(1514字节),提前留出协议首部字节的大小,能够存储最长的分组。接收数据报时采用链表方案:为了避免内存碎片的产生该缓冲区采用固定大小。链表的特点是允许快速封装而无需数据的复制,也就是说当接收到递交上来的数据报后,就分配一个新缓冲区,填写其中的内容后将新缓冲区插入保存此信息的链接列表中,这样就可以很容易的在某个信息的前面插入附加字节,而无需移动已经存在的数据。采用此方法可以优化数据报的重组。
采用以上两种方法可以最大限度实现/协议族内数据公用,无需额外数据搬移。
3.3 协议族数据流程
如下图3所示,用户待发送的数据首先通过socket接口程序进入/协议族,分别进行TCP与的数据封装后查询ARP高速缓存,如果存在当前目的IP与硬件地址的映射则填充以太网帧头部信息后拷贝至以太网驱动程序空间立即发送,否则发出ARP查询报文,将当前用户数据拷贝至发送等待缓冲,进入接收状态等待ARP查询报文的应答。

由于输入操作发生在中断期间,此时设备驱动程序是不能调用任何过程来处理分组,也就是说中断服务程序并不直接调用IP,而是使用了消息传递的方式。当一个IP分组到达之后用消息通知主循环,由主循环调用协议族进行数据处理。如下图4所示,首先通过以太网子层分路到达帧,如果是ARP报文则检查更新ARP缓冲,收到ARP请求立即应答,若是应答报文则检查本地发送等待队列如有数据立即发送;如果是IP报文首先判定其协议类型,ICMP报文中的ping命令请求回显则立即应答,源站抑制报文交给TCP处理;若是TCP协议进入有限状态机进行解析最后将有效数据通过socket接口递交上层。


图3 协议族数据发送处理框图 图4 协议族数据接收处理框图

4、 结论
经过裁剪的嵌入式TCP/IP协议族,结构精简,实时性强,可以在芯片上稳定运行,基于该协议族的网络监控系统控制终端通过了专项测试达到期望的要求。

本文引用地址:http://www.eepw.com.cn/article/195759.htm

tcp/ip相关文章:tcp/ip是什么



上一页 1 2 3 下一页

关键词: 0020 TCP SF IP

评论


相关推荐

技术专区

关闭