TCP/IP协议实现方法、装置及存储介质与流程

文档序号:16310701发布日期:2018-12-19 05:16阅读:361来源:国知局
TCP/IP协议实现方法、装置及存储介质与流程

本发明涉及一种tcp/ip协议实现方法、装置及存储介质,属于网络协议应用领域。

背景技术

tcp/ip协议起源于20世纪60年代末美国政府资助的一个分组交换网络研究项目,到目前已发展成为通信设备之间最常应用的组网形式,且该协议构成了国际互联网的基础。tcp/ip协议从下到上分为网络接口层、网络层、传输层和应用层,其中下三层是通信实现的基础。在现有技术中,进程模型在实现tcp/ip协议时,将每一个协议都通过独立的进程实现。这种技术的优势在于网络协议的每一层实现都很清晰,代码的调试和理解都比较容易。缺点在于进程占用系统资源较多,进程间切换效率较低。在另一种现有技术中,tcp/ip协议栈驻留在操作系统内核中,应用程序通过系统调用实现tcp/ip协议。这种技术的优势在于调用效率较高,缺点在于与操作系统绑定,系统的移植性能和通用性能较差,不利于在单片机、arm等微控制器和微处理器上实现。

鉴于此,本发明的目的在于提供一种tcp/ip协议实现方法、装置及存储介质,实现轻量级tcp/ip协议通信,使得系统精简且运行效率较高,另一方面不依赖于任何操作系统,易于进行系统间的移植。



技术实现要素:

为了缓解现有技术存在的不足,本发明的目的在于提供一种tcp/ip协议实现方法、装置及存储介质。

第一方面,本发明提供了一种tcp/ip协议实现方法,应用于网络协议开发领域,包括:对物理层设备进行复位,开启物理层设备自动协商功能,设置物理层设备的通信速率;设置数据链路层设备的自适应功能、差错控制、存储转发模式、反馈功能、数据对齐功能和输入输出功能;设置ip数据包路由检查和输入输出功能,设置tcp数据段超时重传和拥塞控制;设置定时器以支持ip数据包和tcp数据段的控制与传输。

进一步地,还包括:使用内存堆和/或内存池,设置网络数据接收缓冲区和网络数据发送缓冲区。

进一步地,数据链路层设备输入输出功能,包括:输入功能,从数据链路层设备的dma描述符链表接收数据,从链表的头部开始读取数据,直至读取到链表的尾部,记录链表尾部的位置;输出功能,通过数据链路层设备的dma描述符链表发送数据,发送过程中移动链表,记录数据发送完成后链表的位置。

进一步地,ip数据包路由检查包括:在ip数据包发送之前,查找网络中是否存在ip数据包的目标ip地址。

进一步地,ip数据包输入输出功能包括:输入功能,读入数据链路层设备的数据,校验并解析ip数据包;输出功能,ip数据包进行路由检查后,发送ip数据包到数据链路层设备。

进一步地,tcp数据段超时重传包括:tcp数据段发送后,在设定的时间内收不到tcp数据段的应答,重新发送tcp数据段。

进一步地,tcp数据段拥塞控制包括:在tcp数据段发送后,收到tcp数据段的应答前,减小数据量发送。

第二方面,本发明提供了一种tcp/ip协议实现装置,包括:接口层模块,对物理层设备进行复位,开启物理层设备自动协商功能,设置物理层设备的通信速率;设置数据链路层设备的自适应功能、差错控制、存储转发模式、反馈功能、数据对齐功能和输入输出功能;网络层模块,设置ip数据包路由检查和输入输出功能;传输层模块,设置tcp数据段超时重传和拥塞控制;定时器模块,设置定时器以支持ip数据包和tcp数据段的控制与传输。

第三方面,本发明提供了一种tcp/ip协议实现装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:对物理层设备进行复位,开启物理层设备自动协商功能,设置物理层设备的通信速率;设置数据链路层设备的自适应功能、差错控制、存储转发模式、反馈功能、数据对齐功能和输入输出功能;设置ip数据包路由检查和输入输出功能,设置tcp数据段超时重传和拥塞控制;设置定时器以支持ip数据包和tcp数据段的控制与传输。

第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现第一方面所提供的tcp/ip协议实现方法的步骤。

本发明提供的技术方案可以包括以下有益效果:对物理层设备进行复位,开启物理层设备自动协商功能,设置物理层设备的通信速率;设置数据链路层设备的自适应功能、差错控制、存储转发模式、反馈功能、数据对齐功能和输入输出功能;设置ip数据包路由检查和输入输出功能,设置tcp数据段超时重传和拥塞控制;设置定时器以支持ip数据包和tcp数据段的控制与传输。这样,本发明提供的tcp/ip协议实现方法,达到了精简实现tcp/ip协议通信的技术效果,提升了系统的运行效率,可以在单片机、arm等微控制器和微处理器上运行。此外,该实现方法不依赖于任何操作系统,易于进行系统间的移植。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一种实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明第一实施例的一种tcp/ip协议实现方法流程图;

图2是本发明第一实施例的一种tcp/ip协议实现方法物理层设备初始化流程图;

图3是本发明第一实施例的一种tcp/ip协议实现方法数据链路层设备初始化流程图;

图4是本发明第一实施例的一种tcp/ip协议实现方法dma描述符链表结构示意图;

图5是本发明第二实施例的一种tcp/ip协议实现装置结构示意图;

图6是本发明第三实施例的一种tcp/ip协议实现装置结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

实施例一:

图1是本发明第一实施例的一种tcp/ip协议实现方法流程图,如图1所示,该方法包括如下四个步骤。

步骤s101:设置物理层设备和数据链路层设备。具体地,对物理层设备进行复位,开启物理层设备自动协商功能,设置物理层设备的通信速率。设置数据链路层设备的自适应功能、差错控制、存储转发模式、反馈功能、数据对齐功能和输入输出功能。详细地,数据链路层设备输入输出功能,包括:输入功能,从数据链路层设备的dma描述符链表接收数据,从链表的头部开始读取数据,直至读取到链表的尾部,记录链表尾部的位置;输出功能,通过数据链路层设备的dma描述符链表发送数据,发送过程中移动链表,记录数据发送完成后链表的位置。

需要说明的是,tcp/ip协议为4层通信模型,底层为网络接口层,该层对应osi模型的物理层和数据链路层。在通信协议实现时,首先需要对网络接口层设备进行初始化,也即对物理层和数据链路层设备进行初始化。

在一个可选的实施例中,物理层设备由以太网卡物理层控制芯片实现。如图2所示,首先复位以太网卡芯片、开启网卡自动协商功能,其后重新启动网卡,最后设置网卡的通信速率。如图3所示,数据链路层设备由mac芯片实现,初始化功能包括重启网络、开启网络自适应、关闭反馈功能、允许接收广播帧、开启数据帧校验、开启丢弃错误帧、开启数据对齐功能和使能以太网中断。如图4所示,dma描述符链表各元素间首尾相接,如果从数据链路层设备的dma描述符链表接收数据,则从链表的头部开始读取数据,直至读取到链表的尾部,记录链表尾部的位置,以便于下次的读取;如果通过数据链路层设备的dma描述符链表发送数据,则发送过程中移动链表,记录数据发送完成后链表的位置,以便于下次的发送。

步骤s102:设置ip数据包路由检测和输入输出功能。具体地,ip数据包路由检查包括:在ip数据包发送之前,查找网络中是否存在ip数据包的目标ip地址。ip数据包输入输出功能包括:输入功能,读入数据链路层设备的数据,校验并解析ip数据包;输出功能,ip数据包进行路由检查后,发送ip数据包到数据链路层设备。

需要进行说明的是,ip数据包路由检查的实现途径就是检查网络中目标ip地址的网络接口,如果不存在目标ip地址的网络接口,则丢弃ip数据包,终止发送。校验并解析ip数据包的方法按照ip协议的规定进行相关数据的检查和校验。

步骤s103:设置tcp数据段超时重传和拥塞控制。具体地,tcp数据段超时重传包括:tcp数据段发送后,在设定的时间内收不到tcp数据段的应答,重新发送tcp数据段。tcp数据段拥塞控制包括:在tcp数据段发送后,收到tcp数据段的应答前,减小数据量发送。

在一个可选的实施例中,tcp数据段在发送后,如果500毫秒未收到数据接收方的应答,则重新发送该tcp数据段。为了减小网络数据拥塞,在tcp数据段发送后,收到tcp数据段的应答前,减小数据量发送,因为超时重传机制会导致收到应答前数据的重复发送。

在另一个可选的实施例中,使用内存堆和/或内存池对tcp数据段的接收和发送数据进行缓存,以进行接收和发送控制。

步骤s104:设置定时器以支持tcp/ip协议控制。

需要进行说明的是,tcp数据段超时重传和拥塞控制都需要定时器来进行时间控制,ip数据包的传输也需要时间信息。

实施例二:

本发明实施例提供了一种tcp/ip协议实现装置,该装置主要用于执行本发明实施例上述内容所提供的tcp/ip协议实现方法,以下对本发明实施例提供的tcp/ip协议实现装置做具体介绍。

图5是本发明第二实施例的一种tcp/ip协议实现装置的结构示意图。如图5所示,该tcp/ip协议实现装置200包括以下模块。

接口层模块201,对物理层设备进行复位,开启物理层设备自动协商功能,设置物理层设备的通信速率;设置数据链路层设备的自适应功能、差错控制、存储转发模式、反馈功能、数据对齐功能和输入输出功能。

网络层模块202,设置ip数据包路由检查和输入输出功能;

传输层模块203,设置tcp数据段超时重传和拥塞控制。

定时器模块204,设置定时器以支持ip数据包和tcp数据段的控制与传输。

实施例三:

本发明实施例还提供了一种tcp/ip协议实现装置。如图6所示,该实施例的tcp/ip协议实现装置300包括:处理器301、存储器302、以太网卡303,以及存储在存储器302中并可在处理器301上运行的计算机程序,例如该程序和以太网卡303协同工作,以实现tcp/ip协议通信。处理器301执行计算机程序时实现上述各个tcp/ip协议实现方法实施例中的步骤,例如图1所示的步骤s101、s102、s103和s104。或者,处理器301执行计算机程序时实现上述各装置实施例中各模块的功能,例如图5中的模块和以太网卡303协同工作,以实现tcp/ip协议通信。

示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器302中,并由所述处理301器执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述tcp/ip协议实现装置中的执行过程。例如,所述计算机程序可以被分割成接口层模块、网络层模块、传输层模块和定时器模块,各模块具体功能如下:接口层模块对物理层设备进行复位,开启物理层设备自动协商功能,设置物理层设备的通信速率;设置数据链路层设备的自适应功能、差错控制、存储转发模式、反馈功能、数据对齐功能和输入输出功能;网络层模块设置ip数据包路由检查和输入输出功能;传输层模块设置tcp数据段超时重传和拥塞控制;定时器模块设置定时器以支持ip数据包和tcp数据段的控制与传输。

所述tcp/ip协议实现装置可以是单片机系统、桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述tcp/ip协议实现装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是tcp/ip协议实现装置的示例,并不构成对tcp/ip协议实现装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述tcp/ip协议实现装置还可以包括输入输出设备、总线等。

所称处理器可以是微控制单元(microcontrollerunit,mcu),中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述tcp/ip协议实现装置的控制中心,利用各种接口和线路连接整个tcp/ip协议实现装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述tcp/ip协议实现装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

实施例四:

tcp/ip协议实现装置集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1