专利转让平台_买专利_卖专利_中国高校专利技术交易-买卖发明专利上知查网

全部分类
全部分类
一种基于缓冲机制的网络数据通信方法

一种基于缓冲机制的网络数据通信方法

IPC分类号 : H04L12/747I,H04L12/741I

申请号
CN201910499957.8
可选规格
  • 专利类型: 发明专利
  • 法律状态: 有权
  • 申请日: 2019-06-11
  • 公开号: CN110380971B
  • 公开日: 2019-10-25
  • 主分类号: H04L12/747
  • 专利权人: 常熟理工学院

专利摘要

本发明提供了一种基于缓冲机制的网络数据通信方法,所述网络包括路由器、服务器和节点;路由器分为主路由器,中间路由器和末端路由器;所述网络只包含一个主路由器、两个以上的中间路由器和两个以上的末端路由器,主路由器配置两个以上的上游接口和两个以上的下游接口,上游接口与路由器相连,下游接口与服务器相连;中间路由器配置两个以上的接口,每个接口与路由器相连;用户通过本发明提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于智能家居、环境监测、路况监测等诸多领域,具有广泛的应用前景。

权利要求

1.一种基于缓冲机制的网络数据通信方法,其特征在于,所述网络包括路由器、服务器和节点;路由器分为主路由器,中间路由器和末端路由器;所述网络只包含一个主路由器、两个以上的中间路由器和两个以上的末端路由器,主路由器配置两个以上的上游接口和两个以上的下游接口,上游接口与中间路由器或者末端路由器相连,下游接口与服务器相连;中间路由器配置两个以上的接口,每个接口与主路由器或者末端路由器相连;末端路由器配置两个以上的上游接口和两个以上的下游接口,上游接口与中间路由器相连,下游接口与节点相连;

服务器配置一个接口,与主路由器相连,节点配置一个接口,与末端路由器相连;每个接口由接口ID唯一标识,接口ID为x的接口记为接口x;数据由一个名称定义,一个服务器能提供一种以上的数据;每个路由器具有唯一的坐标;一个节点和路由器由一个地址唯一标识,一个节点的地址为它的硬件ID,一个路由器的地址为它的坐标;

一个消息由名称定义,如下所示:

主路由器保存一个服务器表,每个服务器表项包含名称、接口ID、队列长度和生命周期;一个服务器消息包含消息类型、名称集合和队列长度;任意一个服务器S1与主路由器相连,能提供名称构成名称集合NS1的数据,服务器S1定期执行下述操作:

步骤101:开始;

步骤102:服务器S1发送一个服务器消息,服务器消息的消息类型值为1,名称集合为NS1,队列长度为服务器S1中待处理的消息个数;

步骤103:主路由器从接口f1接收到该服务器消息后,查看服务器表;针对该服务器消息中名称集合中的每个名称NA1,主路由器执行下述操作:主路由器判断是否存在一个服务器表项,该服务器表项的接口ID为f1且名称等于该服务器消息中的名称,如果存在,则将该服务器表项的队列长度更新为该服务器消息中的队列长度,生命周期设置为最大值,否则主路由器创建一个服务器表项,该服务器表项的接口ID为f1,名称为该服务器消息中的名称,队列长度等于该服务器消息中的队列长度,生命周期设置为最大值;

步骤104:结束;

每个路由器保存一个邻居表,一个邻居表项包含地址、接口ID、角色值、队列长度和生命周期;角色值为1表示路由器,角色值为0表示节点;一个邻居消息包含消息类型、地址、角色和队列长度;任意一个路由器R1定期执行下述操作:

步骤201:开始;

步骤202:路由器R1构建一个邻居消息,该消息的消息类型值为2,角色值为1,地址为路由器R1的地址,队列长度为路由器R1队里中待处理的消息个数;如果路由器R1为中间路由器,则从每个接口发送该邻居消息,否则路由器R1从每个上游接口发送该邻居消息;

步骤203:其他路由器从接口f2接收到该邻居消息;如果存在一个邻居表项,该邻居表项的接口ID为f2,所述其他路由器则将该邻居表项的地址,角色和队列长度分别更新为该邻居消息的地址,角色和队列长度,将生命周期设置为最大值;否则所述其他路由器创建一个邻居表项,该邻居表项的接口ID为f2,该邻居表项的地址,角色和队列长度分别为该邻居消息的地址,角色和队列长度,将生命周期设置为最大值;

步骤204:结束;

节点ND1定期执行下述操作:

步骤301:开始;

步骤302:节点ND1发送一个邻居消息,该消息的消息类型值为2,角色值为0,地址为节点ND1的地址,队列长度为0;

步骤303:路由器从接口f3接收到该邻居消息;如果存在一个邻居表项,该邻居表项的接口ID为f3,该路由器则将该邻居表项的地址,角色和队列长度分别更新为该邻居消息的地址,角色和队列长度,将生命周期设置为最大值;否则该路由器创建一个邻居表项,该邻居表项的接口ID为f3,该邻居表项的地址,角色和队列长度分别为该邻居消息的地址,角色和队列长度,将生命周期设置为最大值;

步骤304:结束。

2.根据权利要求1所述的一种基于缓冲机制的网络数据通信方法,其特征在于,一个查询消息包含消息类型、名称、地址、数据长度、权值和地址集合;

一个数据消息包含消息类型、名称、地址、地址集合和负载;

一个节点保存一个数据表,一个数据表包含名称、数值和生命周期;

一个节点通过电子地图获取每个路由器的坐标;主路由器的坐标为(x1,y1);节点N2的地址为A2,数据DA1的名称为NA1,数据长度为L1,单位为字节;如果数据DA1点击率低于阈值,点击率为请求数据DA1的次数与请求所有数据的次数比值,节点N2通过下述过程获取数据DA1:

步骤401:开始;

步骤402:节点N2发送一个查询消息,该查询消息的消息类型值为3,名称为NA1,地址为0,数据长度为L1,权值为-1,地址集合为{A2};

步骤403:路由器接收到该查询消息,如果该路由器的缓冲区长度d1大于该查询消息的数据长度,则执行步骤404,否则执行步骤407;

步骤404:接收到该查询消息的路由器则使用公式(1)计算自己的权值w1,其中,d2为该查询消息地址集合中元素的个数,该路由器查看该查询消息的权值是否为-1,如果是,则执行步骤405,否则执行步骤406;

w1=d2/d1 公式(1)

步骤405:接收到该查询消息的路由器将该查询消息的地址和权值分别设置为自己的地址和权值,执行步骤407;

步骤406:接收到该查询消息的路由器判断自己的权值是否小于该查询消息的权值,如果是,则执行步骤405,否则执行步骤407;

步骤407:接收到该查询消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称等于该查询消息的名称,则执行步骤408,否则执行步骤409;

步骤408:接收到该查询消息的路由器选择一个数据表项,该数据表项的名称等于该查询消息的名称,构建一个数据消息,该数据消息的消息类型值为4,名称等于该查询消息的名称,地址等于该查询消息的地址,地址集合等于该查询消息的地址集合,负载为选中的数据表项的数值域值;该路由器选择一个邻居表项,该邻居表项的地址等于该数据消息地址集合中的最后一个元素,从该数据消息地址集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口转发该数据消息,执行步骤412;

步骤409:如果接收到该查询消息的路由器为主路由器,则执行步骤411,否则执行步骤410;

步骤410:接收到该查询消息的路由器将自己的地址加入到该查询消息的地址集合中并作为最后一个元素,该路由器查看邻居表,选择所有角色域值为1且满足公式(2)的邻居表项,(x2,y2)为该路由器的坐标,(x3,y3)为邻居表项的坐标;针对每个选中的邻居表项,该路由器利用公式(3)计算该邻居表项的权值w2,其中,q1为该邻居表项的队列长度;该路由器选择权值最小的邻居表项,从该邻居表项的接口ID所标识的接口转发该查询消息,执行步骤403;

步骤411:接收到该查询消息的路由器选择所有名称等于该查询消息名称的服务器表项,从这些服务器表项中,选择一个服务器表项,该服务器表项的队列长度值最小,从该服务器表项的接口ID所标识的接口转发该查询消息;服务器接收该查询消息后,选择一个数据表项,该数据表项的名称等于该查询消息的名称,发送一个数据消息,该数据消息的消息类型值为4,名称等于该查询消息的名称,地址等于该查询消息的地址,地址集合等于该查询消息的地址集合,负载为选中的数据表项的数值域值;

步骤412:如果节点N2接收到该数据消息,则执行步骤416,否则执行步骤413;

步骤413:接收到该数据消息的路由器判断自己的地址是否等于该数据消息中的地址,如果等于,则执行步骤414,否则执行步骤415;

步骤414:接收到该数据消息的路由器将该数据消息的地址域值设置为0,查看数据表,如果存在一个数据表项,该数据表项的名称等于该数据消息的名称,则将该数据表项的生命周期设置为最大值,否则该路由器创建一个数据表项,该数据表项的名称等于该数据消息的名称,数值域等于该数据消息负载中的数据值,生命周期设置为最大值;

步骤415:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址等于该数据消息地址集合中的最后一个元素,从该数据消息地址集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口转发该数据消息,执行步骤412;

步骤416:节点N2接收到该数据消息并保存该数据消息负载中的数据;

步骤417:结束。

3.根据权利要求1所述的一种基于缓冲机制的网络数据通信方法,其特征在于,

一个请求消息包含消息类型、名称、数据长度、权值和地址集合;

一个响应消息包含消息类型、名称、权值、地址集合和负载;

节点N2的地址为A2,数据DA1的名称为NA1,数据长度为L1,单位为字节;如果数据DA1的点击率大于等于阈值,点击率为请求数据DA1的次数与请求所有数据的次数比值,节点N2通过下述过程获取数据DA1:

步骤501:开始;

步骤502:节点N2发送一个请求消息,该请求消息的消息类型值为5,名称为NA1,数据长度为L1,权值为-1,地址集合为{A2};

步骤503:路由器接收到该请求消息,如果该路由器的缓冲区长度d3大于该请求消息的数据长度,则执行步骤504,否则执行步骤507;

步骤504:接收到该请求消息的路由器则使用公式(4)计算自己的权值w4,其中,d4为该请求消息地址集合中元素的个数;该路由器查看该请求消息的权值是否为-1,如果是,则执行步骤505,否则执行步骤506;

w3=d4/d3 公式(4)

步骤505:接收到该请求消息的路由器将该请求消息的地址和权值分别设置为自己的地址和权值,执行步骤507;

步骤506:接收到该请求消息的路由器判断自己的权值是否小于该请求消息的权值,如果是,则执行步骤505,否则执行步骤507;

步骤507:接收到该请求消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称等于该请求消息的名称,则执行步骤508,否则执行步骤509;

步骤508:接收到该请求消息的路由器选择一个数据表项,该数据表项的名称等于该请求消息的名称,构建一个响应消息,该响应消息的消息类型值为6,名称等于该请求消息的名称,权值等于该请求消息的权值,地址集合等于该请求消息的地址集合,负载为选中的数据表项的数值域值;该路由器选择一个邻居表项,该邻居表项的地址等于该响应消息地址集合中的最后一个元素,从该响应消息地址集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口转发该响应消息,执行步骤512;

步骤509:如果接收到该请求消息的路由器为主路由器,则执行步骤511,否则执行步骤510;

步骤510:接收到该请求消息的路由器将自己的地址加入到该请求消息的地址集合中并作为最后一个元素,该路由器查看邻居表,选择所有角色域值为1且满足公式(2)的邻居表项;针对每个选中的邻居表项,该路由器利用公式(3)计算该邻居表项的权值;该路由器选择权值最小的邻居表项,从该邻居表项的接口ID所标识的接口转发该请求消息,执行步骤503;

步骤511:接收到该请求消息的路由器选择所有名称等于该请求消息名称的服务器表项,从这些服务器表项中,选择一个服务器表项,该服务器表项的队列长度值最小,从该服务器表项的接口ID所标识的接口转发该请求消息;服务器接收该请求消息后,选择一个数据表项,该数据表项的名称等于该请求消息的名称,发送一个响应消息,该响应消息的消息类型值为6,名称等于该请求消息的名称,权值等于该请求消息的权值,地址集合等于该请求消息的地址集合,负载为选中的数据表项的数值域值;

步骤512:如果节点N2接收到该响应消息,则执行步骤518,否则执行步骤513;

步骤513:接收到该响应消息的路由器判断自己的缓冲区长度d5是否大于该响应消息负载中数据的长度,如果大于,则执行步骤514,否则执行步骤517;

步骤514:接收到该响应消息的路由器利用公式(5)计算自己的权值w4,其中,d6为该响应消息地址集合中的元素个数;如果该响应消息的权值为-1,则执行步骤516,否则执行步骤515;

w4=d6/d5 公式 (5)

步骤515:接收到该响应消息的路由器判断自己的权值是否小于该响应消息的权值,如果小于,则执行步骤516,否则执行步骤517;

步骤516:接收到该响应消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称等于该响应消息的名称,则将该数据表项的生命周期设置为最大值,否则该路由器创建一个数据表项,该数据表项的名称等于该响应消息的名称,数值域等于该响应消息负载中的数据值,生命周期设置为最大值;

步骤517:接收到该响应消息的路由器选择一个邻居表项,该邻居表项的地址等于该响应消息地址集合中的最后一个元素,从该响应消息地址集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口转发该响应消息,执行步骤512;

步骤518:节点N2接收到该响应消息并保存该响应消息负载中的数据;

步骤519:结束。

说明书

技术领域

本发明涉及一种通信方法,尤其涉及的是一种基于缓冲机制的网络数据通信方法。

背景技术

近年来,很多研究工作致力于数据网,以便用户人能够快速获取网络服务。随着网络技术的发展,数据网会成为未来提供服务的一种模式。目前,数据网的数据通信延迟和代价都比较大,降低了网络服务性能。因此,如何降低数据网提供服务的延迟和代价成为近年来研究的热点问题。

发明内容

发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供了一种基于缓冲机制的网络数据通信方法。本发明通过缓冲机制来实现数据获取,从而降低网络提供服务的延迟和代价,从而有效提高网络服务性能。

技术方案:本发明公开了一种基于缓冲机制的网络数据通信方法,所述网络包括路由器、服务器和节点;路由器分为主路由器,中间路由器和末端路由器;所述网络只包含一个主路由器、两个以上的中间路由器和两个以上的末端路由器,主路由器配置两个以上的上游接口和两个以上的下游接口,上游接口与路由器相连,下游接口与服务器相连;中间路由器配置两个以上的接口,每个接口与路由器相连;末端路由器配置两个以上的上游接口和两个以上的下游接口,上游接口与路由器相连,下游接口与节点相连;

服务器配置一个接口,与主路由器相连,节点配置一个接口,与末端路由器相连;每个接口由接口ID唯一标识,接口ID为x的接口记为接口x;数据由一个名称定义,一个服务器能提供一种以上的数据;每个路由器具有唯一的坐标;一个节点和路由器由一个地址唯一标识,一个节点的地址为它的硬件ID,例如MAC地址;一个路由器的地址为它的坐标;

一个消息由名称定义,如下所示:

消息类型值消息名称 1服务器消息 2邻居消息 3查询消息 4数据消息 5请求消息 6响应消息

主路由器保存一个服务器表,每个服务器表项包含名称、接口ID、队列长度和生命周期;一个服务器消息包含消息类型、名称集合和队列长度;服务器S1与主路由器RR1相连,能提供名称构成名称集合NS1的数据,服务器S1定期执行下述操作:

步骤101:开始;

步骤102:服务器S1发送一个服务器消息,服务器消息的消息类型值为1,名称集合为NS1,队列长度为服务器S1中待处理的消息个数;

步骤103:主路由器RR1从接口f1接收到该服务器消息后,查看服务器表;针对该服务器消息中名称集合中的每个名称NA1,主路由器RR1执行下述操作:主路由器RR1判断是否存在一个服务器表项,该服务器表项的接口ID为f1且名称等于该服务器消息中的名称,如果存在,则将该服务器表项的队列长度更新为该服务器消息中的队列长度,生命周期设置为最大值,否则主路由器RR1创建一个服务器表项,该服务器表项的接口ID为f1,名称为该服务器消息中的名称,队列长度等于该服务器消息中的队列长度,生命周期设置为最大值;

步骤104:结束。

服务器通过上述过程建立服务器表,这样通过服务器表中的名称域值和接口ID域值可实现消息的正确转发,此外,通过队列长度域值可以选择从当前性能最好的服务器获取数据,从而提高数据通信性能,确保数据通信的成功率。

本发明所述方法中,每个路由器保存一个邻居表,一个邻居表项包含地址、接口ID、角色值、队列长度和生命周期;角色值为1表示路由器,角色值为0表示节点;一个邻居消息包含消息类型、地址、角色和队列长度;路由器R1定期执行下述操作:

步骤201:开始;

步骤202:路由器R1构建一个邻居消息,该消息的消息类型值为2,角色值为1,地址为路由器R1的地址,队列长度为路由器R1队里中待处理的消息个数;如果路由器R1为中间路由器,则从每个接口发送该邻居消息,否则路由器R1从每个上游接口发送该邻居消息;

步骤203:路由器从接口f2接收到该邻居消息;如果存在一个邻居表项,该邻居表项的接口ID为f2,该路由器则将该邻居表项的地址,角色和队列长度分别更新为该邻居消息的地址,角色和队列长度,将生命周期设置为最大值;否则该路由器创建一个邻居表项,该邻居表项的接口ID为f2,该邻居表项的地址,角色和队列长度分别为该邻居消息的地址,角色和队列长度,将生命周期设置为最大值;

步骤204:结束。

路由器通过上述过程建立邻居表项,这样,路由器根据邻居路由器的坐标和队列长度能够选取最优的下一跳建立最优路由路径,从而降低了数据通信延迟和代价;此外,由于上述过程通过生命周期来确保邻居路由器信息的实时性和有效性,从而确保的路由路径的最优性。

本发明所述方法中,节点ND1定期执行下述操作:

步骤301:开始;

步骤302:节点ND1发送一个邻居消息,该消息的消息类型值为2,角色值为0,地址为节点ND1的地址,队列长度为0;

步骤303:路由器从接口f3接收到该邻居消息;如果存在一个邻居表项,该邻居表项的接口ID为f3,该路由器则将该邻居表项的地址,角色和队列长度分别更新为该邻居消息的地址,角色和队列长度,将生命周期设置为最大值;否则该路由器创建一个邻居表项,该邻居表项的接口ID为f3,该邻居表项的地址,角色和队列长度分别为该邻居消息的地址,角色和队列长度,将生命周期设置为最大值;

步骤304:结束。

节点通过上述过程建立邻居表项,这样,路由器根据邻居节点的地址和接口ID能够实现消息的正确转发,从而降低了数据通信延迟和代价;此外,由于上述过程通过生命周期来确保邻居节点信息的实时性和有效性,从而确保了数据通信的正确性。

本发明所述方法中,一个查询消息包含消息类型、名称、地址、数据长度、权值和地址集合;

一个数据消息包含消息类型、名称、地址、地址集合和负载;

一个节点保存一个数据表,一个数据表包含名称、数值和生命周期;

一个节点通过电子地图获取每个路由器的坐标;电子地图预先设置,包含每个路由器的坐标,每个节点预先配置电子地图;主路由器的坐标为(x1,y1);节点N2的地址为A2,数据DA1的名称为NA1,数据长度为L1,单位为字节;如果数据DA1点击率低于阈值,点击率为请求数据DA1的次数与请求所有数据的次数比值,阈值为1%-5%,节点N2通过下述过程获取数据DA1:

步骤401:开始;

步骤402:节点N2发送一个查询消息,该查询消息的消息类型值为3,名称为NA1,地址为0,数据长度为L1,权值为-1,地址集合为{A2};

步骤403:路由器接收到该查询消息,如果该路由器的缓冲区长度d1大于该查询消息的数据长度,则执行步骤404,否则执行步骤407;

步骤404:接收到该查询消息的路由器则使用公式(1)计算自己的权值w1,其中,d2为该查询消息地址集合中元素的个数,该路由器查看该查询消息的权值是否为-1,如果是,则执行步骤405,否则执行步骤406;

w1=d2/d1公式(1)

步骤405:接收到该查询消息的路由器将该查询消息的地址和权值分别设置为自己的地址和权值,执行步骤407;

步骤406:接收到该查询消息的路由器判断自己的权值是否小于该查询消息的权值,如果是,则执行步骤405,否则执行步骤407;

步骤407:接收到该查询消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称等于该查询消息的名称,则执行步骤408,否则执行步骤409;

步骤408:接收到该查询消息的路由器选择一个数据表项,该数据表项的名称等于该查询消息的名称,构建一个数据消息,该数据消息的消息类型值为4,名称等于该查询消息的名称,地址等于该查询消息的地址,地址集合等于该查询消息的地址集合,负载为选中的数据表项的数值域值;该路由器选择一个邻居表项,该邻居表项的地址等于该数据消息地址集合中的最后一个元素,从该数据消息地址集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口转发该数据消息,执行步骤412;

步骤409:如果接收到该查询消息的路由器为主路由器,则执行步骤411,否则执行步骤410;

步骤410:接收到该查询消息的路由器将自己的地址加入到该查询消息的地址集合中并作为最后一个元素,该路由器查看邻居表,选择所有角色域值为1且满足公式(2)的邻居表项,(x2,y2)为该路由器的坐标,(x3,y3)为邻居表项的坐标;针对每个选中的邻居表项,该路由器利用公式(3)计算该邻居表项的权值w2,其中,q1为该邻居表项的队列长度;该路由器选择权值最小的邻居表项,从该邻居表项的接口ID所标识的接口转发该查询消息,执行步骤403;

步骤411:接收到该查询消息的路由器选择所有名称等于该查询消息名称的服务器表项,从这些服务器表项中,选择一个服务器表项,该服务器表项的队列长度值最小,从该服务器表项的接口ID所标识的接口转发该查询消息;服务器接收该查询消息后,选择一个数据表项,该数据表项的名称等于该查询消息的名称,发送一个数据消息,该数据消息的消息类型值为4,名称等于该查询消息的名称,地址等于该查询消息的地址,地址集合等于该查询消息的地址集合,负载为选中的数据表项的数值域值;

步骤412:如果节点N2接收到该数据消息,则执行步骤416,否则执行步骤413;

步骤413:接收到该数据消息的路由器判断自己的地址是否等于该数据消息中的地址,如果等于,则执行步骤414,否则执行步骤415;

步骤414:接收到该数据消息的路由器将该数据消息的地址域值设置为0,查看数据表,如果存在一个数据表项,该数据表项的名称等于该数据消息的名称,则将该数据表项的生命周期设置为最大值,否则该路由器创建一个数据表项,该数据表项的名称等于该数据消息的名称,数值域等于该数据消息负载中的数据值,生命周期设置为最大值;

步骤415:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址等于该数据消息地址集合中的最后一个元素,从该数据消息地址集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口转发该数据消息,执行步骤412;

步骤416:节点N2接收到该数据消息并保存该数据消息负载中的数据;

步骤417:结束。

节点通过上述过程获取数据,由于上述过程通过邻居表选择性能最优的邻居路由器作为下一跳节点以构建最优路由路径,因此降低了数据通信延迟和代价,此外,该节点从最优的服务器获取数据,从而进一步降低了数据通信延迟和代价。

本发明所述方法中,一个请求消息包含消息类型、名称、数据长度、权值和地址集合;

一个响应消息包含消息类型、名称、权值、地址集合和负载;

节点N2的地址为A2,数据DA1的名称为NA1,数据长度为L1,单位为字节;如果数据DA1大于等于阈值,点击率为请求数据DA1的次数与请求所有数据的次数比值,阈值大于5%,小于100%,节点N2通过下述过程获取数据DA1:

步骤501:开始;

步骤502:节点N2发送一个请求消息,该请求消息的消息类型值为5,名称为NA1,数据长度为L1,权值为-1,地址集合为{A2};

步骤503:路由器接收到该请求消息,如果该路由器的缓冲区长度d3大于该请求消息的数据长度,则执行步骤504,否则执行步骤507;

步骤504:接收到该请求消息的路由器则使用公式(4)计算自己的权值w4,其中,d4为该请求消息地址集合中元素的个数;该路由器查看该请求消息的权值是否为-1,如果是,则执行步骤505,否则执行步骤506;

w3=d4/d3公式(4)

步骤505:接收到该请求消息的路由器将该请求消息的地址和权值分别设置为自己的地址和权值,执行步骤507;

步骤506:接收到该请求消息的路由器判断自己的权值是否小于该请求消息的权值,如果是,则执行步骤505,否则执行步骤507;

步骤507:接收到该请求消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称等于该请求消息的名称,则执行步骤508,否则执行步骤509;

步骤508:接收到该请求消息的路由器选择一个数据表项,该数据表项的名称等于该请求消息的名称,构建一个响应消息,该响应消息的消息类型值为6,名称等于该请求消息的名称,权值等于该请求消息的权值,地址集合等于该请求消息的地址集合,负载为选中的数据表项的数值域值;该路由器选择一个邻居表项,该邻居表项的地址等于该响应消息地址集合中的最后一个元素,从该响应消息地址集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口转发该响应消息,执行步骤512;

步骤509:如果接收到该请求消息的路由器为主路由器,则执行步骤511,否则执行步骤510;

步骤510:接收到该请求消息的路由器将自己的地址加入到该请求消息的地址集合中并作为最后一个元素,该路由器查看邻居表,选择所有角色域值为1且满足公式(2)的邻居表项;针对每个选中的邻居表项,该路由器利用公式(3)计算该邻居表项的权值;该路由器选择权值最小的邻居表项,从该邻居表项的接口ID所标识的接口转发该请求消息,执行步骤503;

步骤511:接收到该请求消息的路由器选择所有名称等于该请求消息名称的服务器表项,从这些服务器表项中,选择一个服务器表项,该服务器表项的队列长度值最小,从该服务器表项的接口ID所标识的接口转发该请求消息;服务器接收该请求消息后,选择一个数据表项,该数据表项的名称等于该请求消息的名称,发送一个响应消息,该响应消息的消息类型值为6,名称等于该请求消息的名称,权值等于该请求消息的权值,地址集合等于该请求消息的地址集合,负载为选中的数据表项的数值域值;

步骤512:如果节点N2接收到该响应消息,则执行步骤518,否则执行步骤513;

步骤513:接收到该响应消息的路由器判断自己的缓冲区长度d5是否大于该响应消息负载中数据的长度,如果大于,则执行步骤514,否则执行步骤517;

步骤514:接收到该响应消息的路由器利用公式(5)计算自己的权值w4,其中,d6为该响应消息地址集合中的元素个数;如果该响应消息的权值为-1,则执行步骤516,否则执行步骤515;

w4=d6/d5公式(5)

步骤515:接收到该响应消息的路由器判断自己的权值是否小于该响应消息的权值,如果小于,则执行步骤516,否则执行步骤517;

步骤516:接收到该响应消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称等于该响应消息的名称,则将该数据表项的生命周期设置为最大值,否则该路由器创建一个数据表项,该数据表项的名称等于该响应消息的名称,数值域等于该响应消息负载中的数据值,生命周期设置为最大值;

步骤517:接收到该响应消息的路由器选择一个邻居表项,该邻居表项的地址等于该响应消息地址集合中的最后一个元素,从该响应消息地址集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口转发该响应消息,执行步骤512;

步骤518:节点N2接收到该响应消息并保存该响应消息负载中的数据;

步骤519:结束。

节点通过上述过程获取数据,上述过程允许性能最好的路由器保存数据从而节点能够从距离最近的路由器获取数据,此外,上述过程通过邻居表选择性能最优的邻居路由器作为下一跳节点以构建最优路由路径并且从最优的服务器获取数据,从而降低了数据通信延迟和代价。

有益效果:本发明提供了一种基于缓冲机制的网络数据通信方法,用户通过本发明提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于智能家居、环境监测、路况监测等诸多领域,具有广泛的应用前景。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。

图1为本发明所述的建立服务器表流程示意图。

图2为本发明所述的建立邻居表流程示意图。

图3为本发明所述的维护邻居表流程示意图。

图4为本发明所述的数据通信流程示意图。

图5为本发明所述的获取数据流程示意图。

具体实施方式:

本发明提供了一种基于缓冲机制的网络数据通信方法,用户通过本发明提供的方法能够快速获取数据,从而降低数据通信延迟和代价,提高服务质量。本发明可应用于智能家居、环境监测、路况监测等诸多领域,具有广泛的应用前景。

图1为本发明所述的建立服务器表流程示意图。所述网络包括路由器、服务器和节点;路由器分为主路由器,中间路由器和末端路由器;所述网络只包含一个主路由器、两个以上的中间路由器和两个以上的末端路由器,主路由器配置两个以上的上游接口和两个以上的下游接口,上游接口与路由器相连,下游接口与服务器相连;中间路由器配置两个以上的接口,每个接口与路由器相连;末端路由器配置两个以上的上游接口和两个以上的下游接口,上游接口与路由器相连,下游接口与节点相连;

服务器配置一个接口,与主路由器相连,节点配置一个接口,与末端路由器相连;每个接口由接口ID唯一标识,接口ID为x的接口记为接口x;数据由一个名称定义,一个服务器能提供一种以上的数据;每个路由器具有唯一的坐标;一个节点和路由器由一个地址唯一标识,一个节点的地址为它的硬件ID,例如MAC地址;一个路由器的地址为它的坐标;

一个消息由名称定义,如下所示:

消息类型值消息名称 1服务器消息 2邻居消息 3查询消息 4数据消息 5请求消息 6响应消息

主路由器保存一个服务器表,每个服务器表项包含名称、接口ID、队列长度和生命周期;一个服务器消息包含消息类型、名称集合和队列长度;服务器S1与主路由器RR1相连,能提供名称构成名称集合NS1的数据,服务器S1定期执行下述操作:

步骤101:开始;

步骤102:服务器S1发送一个服务器消息,服务器消息的消息类型值为1,名称集合为NS1,队列长度为服务器S1中待处理的消息个数;

步骤103:主路由器RR1从接口f1接收到该服务器消息后,查看服务器表;针对该服务器消息中名称集合中的每个名称NA1,主路由器RR1执行下述操作:主路由器RR1判断是否存在一个服务器表项,该服务器表项的接口ID为f1且名称等于该服务器消息中的名称,如果存在,则将该服务器表项的队列长度更新为该服务器消息中的队列长度,生命周期设置为最大值,否则主路由器RR1创建一个服务器表项,该服务器表项的接口ID为f1,名称为该服务器消息中的名称,队列长度等于该服务器消息中的队列长度,生命周期设置为最大值;

步骤104:结束。

服务器通过上述过程建立服务器表,这样通过服务器表中的名称域值和接口ID域值可实现消息的正确转发,此外,通过队列长度域值可以选择从当前性能最好的服务器获取数据,从而提高数据通信性能,确保数据通信的成功率。

图2为本发明所述的建立邻居表流程示意图。每个路由器保存一个邻居表,一个邻居表项包含地址、接口ID、角色值、队列长度和生命周期;角色值为1表示路由器,角色值为0表示节点;一个邻居消息包含消息类型、地址、角色和队列长度;路由器R1定期执行下述操作:

步骤201:开始;

步骤202:路由器R1构建一个邻居消息,该消息的消息类型值为2,角色值为1,地址为路由器R1的地址,队列长度为路由器R1队里中待处理的消息个数;如果路由器R1为中间路由器,则从每个接口发送该邻居消息,否则路由器R1从每个上游接口发送该邻居消息;

步骤203:路由器从接口f2接收到该邻居消息;如果存在一个邻居表项,该邻居表项的接口ID为f2,该路由器则将该邻居表项的地址,角色和队列长度分别更新为该邻居消息的地址,角色和队列长度,将生命周期设置为最大值;否则该路由器创建一个邻居表项,该邻居表项的接口ID为f2,该邻居表项的地址,角色和队列长度分别为该邻居消息的地址,角色和队列长度,将生命周期设置为最大值;

步骤204:结束。

路由器通过上述过程建立邻居表项,这样,路由器根据邻居路由器的坐标和队列长度能够选取最优的下一跳建立最优路由路径,从而降低了数据通信延迟和代价;此外,由于上述过程通过生命周期来确保邻居路由器信息的实时性和有效性,从而确保的路由路径的最优性。

图3为本发明所述的维护邻居表流程示意图。节点ND1定期执行下述操作:

步骤301:开始;

步骤302:节点ND1发送一个邻居消息,该消息的消息类型值为2,角色值为0,地址为节点ND1的地址,队列长度为0;

步骤303:路由器从接口f3接收到该邻居消息;如果存在一个邻居表项,该邻居表项的接口ID为f3,该路由器则将该邻居表项的地址,角色和队列长度分别更新为该邻居消息的地址,角色和队列长度,将生命周期设置为最大值;否则该路由器创建一个邻居表项,该邻居表项的接口ID为f3,该邻居表项的地址,角色和队列长度分别为该邻居消息的地址,角色和队列长度,将生命周期设置为最大值;

步骤304:结束。

节点通过上述过程建立邻居表项,这样,路由器根据邻居节点的地址和接口ID能够实现消息的正确转发,从而降低了数据通信延迟和代价;此外,由于上述过程通过生命周期来确保邻居节点信息的实时性和有效性,从而确保了数据通信的正确性。

图4为本发明所述的数据通信流程示意图。一个查询消息包含消息类型、名称、地址、数据长度、权值和地址集合;

一个数据消息包含消息类型、名称、地址、地址集合和负载;

一个节点保存一个数据表,一个数据表包含名称、数值和生命周期;

一个节点通过电子地图获取每个路由器的坐标;电子地图预先设置,包含每个路由器的坐标,每个节点预先配置电子地图;主路由器的坐标为(x1,y1);节点N2的地址为A2,数据DA1的名称为NA1,数据长度为L1,单位为字节;如果数据DA1点击率低于阈值,点击率为请求数据DA1的次数与请求所有数据的次数比值,阈值为1%-5%,节点N2通过下述过程获取数据DA1:

步骤401:开始;

步骤402:节点N2发送一个查询消息,该查询消息的消息类型值为3,名称为NA1,地址为0,数据长度为L1,权值为-1,地址集合为{A2};

步骤403:路由器接收到该查询消息,如果该路由器的缓冲区长度d1大于该查询消息的数据长度,则执行步骤404,否则执行步骤407;

步骤404:接收到该查询消息的路由器则使用公式(1)计算自己的权值w1,其中,d2为该查询消息地址集合中元素的个数,该路由器查看该查询消息的权值是否为-1,如果是,则执行步骤405,否则执行步骤406;

w1=d2/d1 公式(1)

步骤405:接收到该查询消息的路由器将该查询消息的地址和权值分别设置为自己的地址和权值,执行步骤407;

步骤406:接收到该查询消息的路由器判断自己的权值是否小于该查询消息的权值,如果是,则执行步骤405,否则执行步骤407;

步骤407:接收到该查询消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称等于该查询消息的名称,则执行步骤408,否则执行步骤409;

步骤408:接收到该查询消息的路由器选择一个数据表项,该数据表项的名称等于该查询消息的名称,构建一个数据消息,该数据消息的消息类型值为4,名称等于该查询消息的名称,地址等于该查询消息的地址,地址集合等于该查询消息的地址集合,负载为选中的数据表项的数值域值;该路由器选择一个邻居表项,该邻居表项的地址等于该数据消息地址集合中的最后一个元素,从该数据消息地址集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口转发该数据消息,执行步骤412;

步骤409:如果接收到该查询消息的路由器为主路由器,则执行步骤411,否则执行步骤410;

步骤410:接收到该查询消息的路由器将自己的地址加入到该查询消息的地址集合中并作为最后一个元素,该路由器查看邻居表,选择所有角色域值为1且满足公式(2)的邻居表项,(x2,y2)为该路由器的坐标,(x3,y3)为邻居表项的坐标;针对每个选中的邻居表项,该路由器利用公式(3)计算该邻居表项的权值w2,其中,q1为该邻居表项的队列长度;该路由器选择权值最小的邻居表项,从该邻居表项的接口ID所标识的接口转发该查询消息,执行步骤403;

步骤411:接收到该查询消息的路由器选择所有名称等于该查询消息名称的服务器表项,从这些服务器表项中,选择一个服务器表项,该服务器表项的队列长度值最小,从该服务器表项的接口ID所标识的接口转发该查询消息;服务器接收该查询消息后,选择一个数据表项,该数据表项的名称等于该查询消息的名称,发送一个数据消息,该数据消息的消息类型值为4,名称等于该查询消息的名称,地址等于该查询消息的地址,地址集合等于该查询消息的地址集合,负载为选中的数据表项的数值域值;

步骤412:如果节点N2接收到该数据消息,则执行步骤416,否则执行步骤413;

步骤413:接收到该数据消息的路由器判断自己的地址是否等于该数据消息中的地址,如果等于,则执行步骤414,否则执行步骤415;

步骤414:接收到该数据消息的路由器将该数据消息的地址域值设置为0,查看数据表,如果存在一个数据表项,该数据表项的名称等于该数据消息的名称,则将该数据表项的生命周期设置为最大值,否则该路由器创建一个数据表项,该数据表项的名称等于该数据消息的名称,数值域等于该数据消息负载中的数据值,生命周期设置为最大值;

步骤415:接收到该数据消息的路由器选择一个邻居表项,该邻居表项的地址等于该数据消息地址集合中的最后一个元素,从该数据消息地址集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口转发该数据消息,执行步骤412;

步骤416:节点N2接收到该数据消息并保存该数据消息负载中的数据;

步骤417:结束。

节点通过上述过程获取数据,由于上述过程通过邻居表选择性能最优的邻居路由器作为下一跳节点以构建最优路由路径,因此降低了数据通信延迟和代价,此外,该节点从最优的服务器获取数据,从而进一步降低了数据通信延迟和代价。

图5为本发明所述的获取数据流程示意图。一个请求消息包含消息类型、名称、数据长度、权值和地址集合;

一个响应消息包含消息类型、名称、权值、地址集合和负载;

节点N2的地址为A2,数据DA1的名称为NA1,数据长度为L1,单位为字节;如果数据DA1大于等于阈值,点击率为请求数据DA1的次数与请求所有数据的次数比值,阈值大于5%,小于100%,节点N2通过下述过程获取数据DA1:

步骤501:开始;

步骤502:节点N2发送一个请求消息,该请求消息的消息类型值为5,名称为NA1,数据长度为L1,权值为-1,地址集合为{A2};

步骤503:路由器接收到该请求消息,如果该路由器的缓冲区长度d3大于该请求消息的数据长度,则执行步骤504,否则执行步骤507;

步骤504:接收到该请求消息的路由器则使用公式(4)计算自己的权值w4,其中,d4为该请求消息地址集合中元素的个数;该路由器查看该请求消息的权值是否为-1,如果是,则执行步骤505,否则执行步骤506;

w3=d4/d3 公式(4)

步骤505:接收到该请求消息的路由器将该请求消息的地址和权值分别设置为自己的地址和权值,执行步骤507;

步骤506:接收到该请求消息的路由器判断自己的权值是否小于该请求消息的权值,如果是,则执行步骤505,否则执行步骤507;

步骤507:接收到该请求消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称等于该请求消息的名称,则执行步骤508,否则执行步骤509;

步骤508:接收到该请求消息的路由器选择一个数据表项,该数据表项的名称等于该请求消息的名称,构建一个响应消息,该响应消息的消息类型值为6,名称等于该请求消息的名称,权值等于该请求消息的权值,地址集合等于该请求消息的地址集合,负载为选中的数据表项的数值域值;该路由器选择一个邻居表项,该邻居表项的地址等于该响应消息地址集合中的最后一个元素,从该响应消息地址集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口转发该响应消息,执行步骤512;

步骤509:如果接收到该请求消息的路由器为主路由器,则执行步骤511,否则执行步骤510;

步骤510:接收到该请求消息的路由器将自己的地址加入到该请求消息的地址集合中并作为最后一个元素,该路由器查看邻居表,选择所有角色域值为1且满足公式(2)的邻居表项;针对每个选中的邻居表项,该路由器利用公式(3)计算该邻居表项的权值;该路由器选择权值最小的邻居表项,从该邻居表项的接口ID所标识的接口转发该请求消息,执行步骤503;

步骤511:接收到该请求消息的路由器选择所有名称等于该请求消息名称的服务器表项,从这些服务器表项中,选择一个服务器表项,该服务器表项的队列长度值最小,从该服务器表项的接口ID所标识的接口转发该请求消息;服务器接收该请求消息后,选择一个数据表项,该数据表项的名称等于该请求消息的名称,发送一个响应消息,该响应消息的消息类型值为6,名称等于该请求消息的名称,权值等于该请求消息的权值,地址集合等于该请求消息的地址集合,负载为选中的数据表项的数值域值;

步骤512:如果节点N2接收到该响应消息,则执行步骤518,否则执行步骤513;

步骤513:接收到该响应消息的路由器判断自己的缓冲区长度d5是否大于该响应消息负载中数据的长度,如果大于,则执行步骤514,否则执行步骤517;

步骤514:接收到该响应消息的路由器利用公式(5)计算自己的权值w4,其中,d6为该响应消息地址集合中的元素个数;如果该响应消息的权值为-1,则执行步骤516,否则执行步骤515;

w4=d6/d5 公式(5)

步骤515:接收到该响应消息的路由器判断自己的权值是否小于该响应消息的权值,如果小于,则执行步骤516,否则执行步骤517;

步骤516:接收到该响应消息的路由器查看数据表,如果存在一个数据表项,该数据表项的名称等于该响应消息的名称,则将该数据表项的生命周期设置为最大值,否则该路由器创建一个数据表项,该数据表项的名称等于该响应消息的名称,数值域等于该响应消息负载中的数据值,生命周期设置为最大值;

步骤517:接收到该响应消息的路由器选择一个邻居表项,该邻居表项的地址等于该响应消息地址集合中的最后一个元素,从该响应消息地址集合中删除最后一个元素,从该邻居表项的接口ID所标识的接口转发该响应消息,执行步骤512;

步骤518:节点N2接收到该响应消息并保存该响应消息负载中的数据;

步骤519:结束。

节点通过上述过程获取数据,上述过程允许性能最好的路由器保存数据从而节点能够从距离最近的路由器获取数据,此外,上述过程通过邻居表选择性能最优的邻居路由器作为下一跳节点以构建最优路由路径并且从最优的服务器获取数据,从而降低了数据通信延迟和代价。

实施例1

基于表1、表2和表3的仿真参数,本实施例模拟了本发明中的一种基于缓冲机制的网络数据通信方法。

其中,表1中的末端路由器为8,中间路由器个数为7,最大移动速度为2m/s,传输半径为10。

表1仿真参数

表2中的末端路由器为32,中间路由器个数为31,最大移动速度为3m/s,传输半径为20m。

表2仿真参数

表3中的末端路由器为64,中间路由器个数为61,最大移动速度为4m/s,传输半径为30m。

表3仿真参数

该通信方法的性能分析如下:当点击率增加时,节点能够从距离最近的路由器获取数据,因此数据通信成功率为100%,延迟有所降低,当点击率下降时,数据通信成功率任然为100%,数据通信延迟稍微增加,数据获取的平均延迟为201.48ms。

本发明提供了一种基于缓冲机制的网络数据通信方法的思路,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。

一种基于缓冲机制的网络数据通信方法专利购买费用说明

专利买卖交易资料

Q:办理专利转让的流程及所需资料

A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。

1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。

2:按规定缴纳著录项目变更手续费。

3:同时提交相关证明文件原件。

4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。

Q:专利著录项目变更费用如何缴交

A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式

Q:专利转让变更,多久能出结果

A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。

动态评分

0.0

没有评分数据
没有评价数据
×

打开微信,点击底部的“发现”

使用“扫一扫”即可将网页分享至朋友圈

×
复制
用户中心
我的足迹
我的收藏

您的购物车还是空的,您可以

  • 微信公众号

    微信公众号
在线留言
返回顶部