TI C6000DSP上TCP/IP协议栈的实现
[复制链接]
TI公司结合C6000芯片推出了TCP/IP NDK(Network Developer's Kit)开发套件,其主要组件包括:(1)支持TCP/IP协议栈程序库。其中主要包含的库有:支持TCP/IP网络工具的库,支持TCP/IP协议栈与DSP/BIOS平台的库,网络控制以及线程调度的库。(2)示范程序。其中主要包括DHCP/Telnet客户端,HTTP数据服务器示范。(3)支持文档。包括用户手册、程序员手册和平台适应手册。NDK采用紧凑的设计方法,实现了用较少的资源耗费来支持TCP/IP。从实用效果来看,NDK仅用200-250K程序空间和95K数据空间即可支持常规的TCP/IP服务。
使用NDK相对于操作系统和底层硬件是透明的,这主要是由OS.LIB提供与操作系统DSP/BIOS的接口和HAL.LIB提供对硬件的支持来完成的。在NDK的TCP/IP协议栈中STACK.LIB包括了顶层套接字到底层链路层的所有功能,NETCTRL.LIB 在整个协议栈中起关键作用,协调操作系统和底层硬件驱动,管理所有网络事件,NETTOOL.LIB提供配置网络的各种服务。
NDK性能测试
测试NDK性能既有客观性又有主观性。客观性是因为使用标准的工具,并且结果可重现。主观性适应为实际测试要受到很多环境因素的影响,所以只能是性能的估计性测试。
影响NDK性能的主要因素有:
socket API:NDK既支持基于缓冲区的典型socket,也支持非拷贝的数据包socket,甚至非拷贝的直接接收的TCP数据流。性能随着所采用的策略而变化。
socket缓冲区:socket 缓冲区影响TCP发送和接收的窗口大小,并且决定每次发送数据流大小,这对网络性能有很大的影响。
CPU速度:在cache大小一定的情况下,网络性能随着CPU速度增加而线性提高。
CPU cache:cache的大小对网络性能有巨大的影响。
网络硬件设备:以太网硬件设计的好换直接影响DSP和网络接口的速度。
外部存储器(EMIF)接口:对于和DSP外部存储器接口相连的以太网设备,EMIF的速度对外部解码逻辑有额外的影响。
|