因为网络可以用许多协议与接入方法,所以先要考虑应该用到何种协议与用哪种接入法。就协议而言,TCP/IP无疑是首要选择。不过由于嵌入式的硬件资源较少,所以难以满足完整地TCP/IP协议簇。因此针对不同的需求来提供TCP/IP中的不同功能是很重要的。一般可以选择支持TCP/IP的RTOS操作系统来实现TCP/IP。还可采用硬件法来实现TCP/IP。于后者而言,现如今互联法有:局域网、拨号、无线接入。然而用何种接入将由设备的性质作抉择。
反正,嵌入式TCP/IP使得生活更加的简洁方便。其所拥有的实时性能使响应时间更快并且可预测与确定。其简单性表明其代码将更加精简。其灵活性则是对其升级与文护更加便捷[1]。
1.2 国内外研究现状
1.3 论文主要工作
本设计采用LM3S8962为核心处理器设计一个TCP/IP协议栈设计与实现,同时完成Ethernet网口与RS232异步串口之间数据转换的程序设计。主要完成的工作为1、熟悉LM3S8962原理与程序设计;2、在相关硬件平台上编写TCP/IP协议栈程序,完成实现RS232异步串口与以太网接口之间的数据交互功能;3、得到具有上述功能的系统样机。下面就详细解释下TCP/IP的工作原理。
TCP的中文名称为传输控制协议。通过TCP/IP的叫法将TCP放在首位说明了TCP的重要性。TCP基于IP数据帧传输。具有可靠地数据传输功能。TCP具有以下特点:
(1) 面向连接:TCP协议规定,两个节点必须通过TCP建立连接,才能进行数据交换与通信。当需要终止连接则要按照相关的TCP中断连接过程来实现。至于其详细过程就不在这细说了。
(2) 双向传输:TCP协议的连接中皆具有收发双管道。就可以实现同步的数据收发。TCP报头存在发出数据与确认接收数据标致。
(3) 可靠传输:TCP协议规定,要按照一定的顺序对数据进行传输。接受规则为发送方得到接收方的确认算完成若未收到确认则将重新发送并且接收方收到重复包会自动丢弃。不按顺序接受的包将自动排序。TCP校验字能够检测每一个TCP数据报的正确性。
(4) 数据字节流:TCP输入与输出逻辑管道上传送的数据被认定是不间断的字节流。在TCP数据报里,报头的序列号和取人号都是以字节为单位确定的。因为TCP对传输内容是不可见的,并且开始与终止位置也不清楚,所以仅有利用应用层协议来对字节流进行分析。
(5) 流控制:TCP协议里还拥有流量控制与预防拥塞的功能。进行数据传输的一对主机皆包含接收buff。若其中一边buff装不下了,与之通信的一边将停止发送。待其buff有剩余空间。而双方的接收缓冲区都是独立的,永远也不会溢出[7,6]。
(6) 应用层数据分段:建立TCP连接期间,两边皆能发送允许收到MAX段。若收到ICMP的MTU(路径最大传输单位)消息,即可自动调节TCP MAX段的大小。
(7) 一对一传输:TCP协议完成点对点通讯服务。
SOCKET接口函数是TCP/IP的API。SOCKET API以其作用的对象来分有三中,其一为平常所用函数,一般为TCP或UDP通信皆用到的函数;其二为TCP所专有函数,一般只用于TCP通信中;其三为UDP所专有函数,一般只用于UDP通信中。下面简要说明TCP通信中SOCKET API函数如何实现。
TCP通信的任务分两种方法,一是服务器方法,二是客户机方法。服务器方法为要监听连接,仅能于客户端建立连接之后才会对数据进行处理。客户机方法为主动连接服务器,它也是在连接成功后才能进行数据处理。 基于cortex-M3ARM的TCPIP协议栈的设计与实现(2):http://www.youerw.com/jisuanji/lunwen_26611.html