1.一种高效的未来网络数据通信方法,其特征在于,所述未来网络包括路由器、设备和服务器;路由器分为数据路由器和IP路由器,设备分为数据设备和IP设备,服务器分为数据服务器和IP服务器;
一个路由器配置两个以上的接口,接口分为上游接口和下游接口,每个上游接口与路由器相连,每个下游接口与设备或者服务器相连;
一个设备或者服务器配置一个接口,该接口与路由器相连;
一个接口由一个接口ID唯一标识,接口ID为x的接口简写为接口x;
一种类型的数据由一个数据名称或者一个IP地址唯一标识;标识一种类型数据的名称和IP地址的映射关系预先设置;
IP服务器、IP设备和IP路由器使用IP消息进行通信,一个IP消息包含IP地址和负载,负载的第一个字节为该消息的消息类型;
数据服务器、数据设备和数据路由器使用数据消息进行通信,一个数据消息包含名称域、消息类型域和负载域;
未来网络中的消息类型如下表所示:
消息类型值 消息名称 消息种类
1 数据发布消息 数据消息
2 地址发布消息 IP消息
3 请求消息 数据消息
4 响应消息 数据消息
5 查询消息 IP消息
6 确认消息 IP消息
IP服务器由标识该IP服务器所能提供的数据的IP地址标识,如果IP服务器能够提供多种数据,则该IP服务器由标识这些数据的两个以上的IP地址标识;IP服务器预先配置标识该IP服务器所能提供数据的IP地址以及名称之间的映射关系;
数据服务器由标识该数据服务器所能提供的数据的名称标识,如果数据服务器能够提供多种数据,则该数据服务器由标识这些数据的两个以上的名称标识;数据服务器预先配置标识该数据服务器所能提供数据的名称与IP地址之间的映射关系;
如果一个IP设备有权限获取一种类型的数据,该IP设备预先配置标识该类型数据的IP地址与名称之间的映射关系;
如果一个数据设备有权限获取一种类型的数据,该数据设备预先配置标识该类型数据的名称与IP地址之间的映射关系;
每个IP消息或者数据消息由一个公共头结构封装后在网络中进行传输,公共头结构由角色域、IP地址域和名称域构成;其中角色域为0时表示封装的消息为IP消息,角色域为1时表示封装的消息为数据消息;
每个IP路由器维护一个IP转发表,一个IP转发表项包含IP地址域、接口ID域、角色域和生命周期域;
每个数据路由器维护一个数据转发表,一个数据转发表项包含名称域、接口ID域,角色域和生命周期域;
在数据服务器DS1能提供数据C1,数据C1由名称NA1或者IP地址A1标识的条件下,数据服务器DS1定期执行下述操作维护IP转发表或者数据转发表:步骤101:开始;
步骤102:数据服务器DS1构建一个数据发布消息和一个公共头结构,在数据发布消息中,名称为NA1,消息类型值为1,负载为空;在公共头结构中,角色域值为1,IP地址为A1,名称为NA1;数据服务器DS1用公共头结构封装数据发布消息,发送封装后的数据发布消息;
步骤103:路由器从接口x1接收到封装后的数据发布消息,如果该路由器为IP路由器,则执行步骤104,否则执行步骤108;
步骤104:接收到封装后的数据发布消息的路由器查看IP转发表,如果存在一个IP转发表项,该转发表项的IP地址和角色域值分别等于封装后的数据发布消息的公共头结构的IP地址和角色域值,接口ID等于x1,且生命周期大于T1与T2的差值,则执行步骤112,否则执行步骤105;T1为生命周期最大值,T2为调节参数;
步骤105:接收到封装后的数据发布消息的路由器查看IP转发表,如果存在一个IP转发表项,该IP转发表项的IP地址和角色域值分别等于封装后的数据发布消息的公共头结构的IP地址和角色域值,且接口ID等于x1,则执行步骤106,否则执行步骤107;
步骤106:接收到封装后的数据发布消息的路由器选择一个IP转发表项,该IP转发表项的IP地址和角色域值分别等于封装后的数据发布消息的公共头结构的IP地址和角色域值,且接口ID等于x1,将该转发表项的生命周期设置为最大值,从除了接口x1以外的所有上游接口转发该封装后的数据发布消息,执行步骤103;
步骤107:接收到封装后的数据发布消息的路由器创建一个IP转发表项,该IP转发表项的IP地址和角色域值分别等于该封装后的数据发布消息的公共头结构的IP地址和角色域值,接口ID等于x1,生命周期设置为最大值,从除了接口x1以外的所有上游接口转发该封装后的数据发布消息,执行步骤103;
步骤108:接收到封装后的数据发布消息的路由器查看数据转发表,如果存在一个数据转发表项,该数据转发表项的名称和角色域值分别等于封装后的数据发布消息的公共头结构的名称和角色域值,接口ID等于x1,且生命周期大于T1与T2的差值,则执行步骤112,否则执行步骤109;
步骤109:接收到封装后的数据发布消息的路由器查看数据转发表,如果存在一个数据转发表项,该数据转发表项的名称和角色域值分别等于该封装后的数据发布消息的公共头结构的名称和角色域值,且接口ID等于x1,则执行步骤110,否则执行步骤111;
步骤110:接收到封装后的数据发布消息的路由器选择一个数据转发表项,该数据转发表项的名称和角色域值分别等于该封装后的数据发布消息的公共头结构的名称和角色域值,且接口ID等于x1,将该转发表项的生命周期设置为最大值,从除了接口x1以外的所有上游接口转发该封装后的数据发布消息,执行步骤103;
步骤111:接收到封装后的数据发布消息的路由器创建一个数据转发表项,该数据转发表项的名称和角色域值分别等于该封装后的数据发布消息的公共头结构的名称和角色域值,接口ID等于x1,生命周期设置为最大值,从除了接口x1以外的所有上游接口转发该封装后的数据发布消息,执行步骤103;
步骤112:结束;
如果IP转发表项或者数据转发表项的生命周期衰减为0,则删除该IP转发表项或者数据转发表项。
2.根据权利要求1所述的一种高效的未来网络数据通信方法,其特征在于,在IP服务器PS1能提供数据C1,数据C1由名称NA1或者IP地址A1标识的条件下,IP服务器PS1定期执行下述操作维护IP转发表或者数据转发表:步骤201:开始;
步骤202:IP服务器PS1构建一个地址发布消息和一个公共头结构,在地址发布消息中,IP地址为A1,负载的第一个字节为消息类型值2,在公共头结构中,角色域值为0,IP地址为A1,名称为NA1;IP服务器PS1用公共头结构封装地址发布消息,发送封装后的地址发布消息;
步骤203:路由器从接口x2接收到封装后的地址发布消息,如果该路由器为IP路由器,则执行步骤204,否则执行步骤208;
步骤204:接收到封装后的地址发布消息的路由器查看IP转发表,如果存在一个IP转发表项,该转发表项的IP地址和角色域值分别等于封装后的地址发布消息的公共头结构的IP地址和角色域值,接口ID等于x2,且生命周期大于T1与T2的差值,则执行步骤212,否则执行步骤205;
步骤205:接收到封装后的地址发布消息的路由器查看IP转发表,如果存在一个IP转发表项,该IP转发表项的IP地址和角色域值分别等于封装后的地址发布消息的公共头结构的IP地址和角色域值,且接口ID等于x2,则执行步骤206,否则执行步骤207;
步骤206:接收到封装后的地址发布消息的路由器选择一个IP转发表项,该IP转发表项的IP地址和角色域值分别等于封装后的地址发布消息的公共头结构的IP地址和角色域值,且接口ID等于x2,将该转发表项的生命周期设置为最大值,从除了接口x2以外的所有上游接口转发该封装后的地址发布消息,执行步骤203;
步骤207:接收到封装后的地址发布消息的路由器创建一个IP转发表项,该IP转发表项的IP地址和角色域值分别等于该封装后的地址发布消息的公共头结构的IP地址和角色域值,接口ID等于x2,生命周期设置为最大值,从除了接口x2以外的所有上游接口转发该封装后的地址发布消息,执行步骤203;
步骤208:接收到封装后的地址发布消息的路由器查看数据转发表,如果存在一个数据转发表项,该数据转发表项的名称和角色域值分别等于封装后的地址发布消息的公共头结构的名称和角色域值,接口ID等于x2,且生命周期大于T1与T2的差值,则执行步骤212,否则执行步骤209;
步骤209:接收到封装后的地址发布消息的路由器查看数据转发表,如果存在一个数据转发表项,该数据转发表项的名称和角色域值分别等于该封装后的地址发布消息的公共头结构的名称和角色域值,且接口ID等于x2,则执行步骤210,否则执行步骤211;
步骤210:接收到封装后的地址发布消息的路由器选择一个数据转发表项,该数据转发表项的名称和角色域值分别等于该封装后的地址发布消息的公共头结构的名称和角色域值,且接口ID等于x2,将该转发表项的生命周期设置为最大值,从除了接口x2以外的所有上游接口转发该封装后的地址发布消息,执行步骤203;
步骤211:接收到封装后的地址发布消息的路由器创建一个数据转发表项,该数据转发表项的名称和角色域值分别等于该封装后的地址发布消息的公共头结构的名称和角色域值,接口ID等于x2,生命周期设置为最大值,从除了接口x2以外的所有上游接口转发该封装后的地址发布消息,执行步骤203;
步骤212:结束;
如果IP转发表项或者数据转发表项的生命周期衰减为0,则删除该IP转发表项或者数据转发表项。
3.根据权利要求1所述的一种高效的未来网络数据通信方法,其特征在于,每个IP路由器维护一个IP缓存表,一个IP缓存表项包含IP地址域、数据缓存域和生命周期域;
每个数据路由器维护一个数据缓存表,一个数据缓存表项包含名称域、数据缓存域和生命周期域;
每个IP路由器维护一个IP请求表,一个IP请求表项包含IP地址域、接口ID域和角色域;
每个数据路由器维护一个数据请求表,一个数据请求表项包含名称域、接口ID域和角色域;
数据C1由名称NA1或者IP地址A1标识,数据设备DD1通过下述过程获取数据C1:
步骤301:开始;
步骤302:数据设备DD1构建一个请求消息和一个公共头结构;在请求消息中,名称域值为NA1,消息类型值为3,负载为空;在公共头结构中,角色域值为1,IP地址域值为A1,名称为NA1;数据设备DD1用公共头结构封装请求消息,并发送封装后的请求消息;
步骤303:判断是服务器还是路由器从接口y1接收到封装后的请求消息,如果是服务器则执行步骤311,否则执行步骤304;
步骤304:路由器从接口y1接收到封装后的请求消息,如果该路由器为数据路由器,则执行步骤305,否则执行步骤309;
步骤305:从接口y1接收到封装后的请求消息的路由器查看数据缓存表,如果存在一个数据缓存表项,该数据缓存表项的名称域值等于封装后的请求消息的公共头结构的名称域值,则执行步骤306,否则执行步骤307;
步骤306:从接口y1接收到封装后的请求消息的路由器选择一个数据缓存表项,该数据缓存表项的名称域值等于封装后的请求消息的公共头结构的名称域值,构建一个响应消息和一个公共头结构;在响应消息中,名称域值等于封装后的请求消息的公共头结构的名称域值,消息类型值为4,负载为响应数据;在公共头结构中,角色域值、IP地址域值以及名称域值分别等于封装后的请求消息的公共头结构的角色域值、IP地址域值以及名称域值;该路由器用公共头结构封装响应消息,从接口y1发送封装后的响应消息,执行步骤312;
步骤307:从接口y1接收到封装后的请求消息的路由器查看数据请求表,如果存在一个数据请求表项,该数据请求表项的名称域值和角色域值分别等于该封装后的请求消息的公共头结构的名称域值和角色域值,且接口ID等于y1,则执行步骤312,否则执行步骤308;
步骤308:从接口y1接收到封装后的请求消息的路由器创建一个数据请求表项,该数据请求表项的名称域值和角色域值分别等于该封装后的请求消息的公共头结构的名称域值和角色域值,接口ID等于y1;该路由器查看数据转发表,选择一个数据转发表项,该数据转发表项的名称域值和角色域值分别等于封装后的请求消息的公共头结构的名称域值和角色域值,从该数据转发表项的接口ID域值所标识的接口转发封装后的请求消息,执行步骤
303;
步骤309:从接口y1接收到封装后的请求消息的路由器查看IP请求表,如果存在一个IP请求表项,该IP请求表项的IP地址域值和角色域值分别等于该封装后的请求消息的公共头结构的IP地址域值和角色域值,且接口ID等于y1,则执行步骤312,否则执行步骤310;
步骤310:从接口y1接收到封装后的请求消息的路由器创建一个IP请求表项,该IP请求表项的IP地址域值和角色域值分别等于该封装后的请求消息的公共头结构的IP地址域值和角色域值,接口ID等于y1;该路由器查看IP转发表,选择一个IP转发表项,该IP转发表项的IP地址域值和角色域值分别等于封装后的请求消息的公共头结构的IP地址域值和角色域值,从该IP转发表项的接口ID域值所标识的接口转发封装后的请求消息,执行步骤303;
步骤311:接收到封装后的请求消息的服务器构建一个响应消息和一个公共头结构;在响应消息中,名称域值等于封装后的请求消息的公共头结构的名称域值,消息类型值为4,负载为响应数据;在公共头结构中,角色域值、IP地址域值以及名称域值分别等于封装后的请求消息的公共头结构的角色域值、IP地址域值以及名称域值;该路由器用公共头结构封装响应消息,发送封装后的响应消息;
步骤312:判断是数据设备DD1还是路由器从接口y2接收到封装后的响应消息,如果是数据设备DD1则执行步骤325,否则执行步骤313;
步骤313:路由器从接口y2接收到封装后的响应消息,如果该路由器为数据路由器,则执行步骤314,否则执行步骤321;
步骤314:从接口y2接收到封装后的响应消息的路由器查看数据缓存表,如果存在一个数据缓存表,该数据缓存表项的名称域值等于封装后的响应消息的公共头结构的名称域值,则执行步骤315,否则执行步骤316;
步骤315:从接口y2接收到封装后的响应消息的路由器选择一个数据缓存表,该数据缓存表项的名称域值等于封装后的响应消息的公共头结构的名称域值,将该数据缓存表项的生命周期设置为最大值,执行步骤317;
步骤316:从接口y2接收到封装后的响应消息的路由器创建一个数据缓存表,该数据缓存表项的名称域值等于封装后的响应消息的公共头结构的名称域值,数据缓存域值等于封装后的响应消息的响应数据,生命周期设置为最大值;
步骤317:从接口y2接收到封装后的响应消息的路由器查看数据转发表,如果存在一个数据转发表项,该数据转发表项的名称域值和角色域值分别等于该封装后的响应消息的公共头结构的名称域值和角色域值,且接口ID等于y2,则执行步骤318,否则执行步骤319;
步骤318:从接口y2接收到封装后的响应消息的路由器选择一个数据转发表项,该数据转发表项的名称域值和角色域值分别等于该封装后的响应消息的公共头结构的名称域值和角色域值,且接口ID等于y2,将该数据转发表项的生命周期设置为最大值,执行步骤320;
步骤319:从接口y2接收到封装后的响应消息的路由器创建一个数据转发表项,该数据转发表项的名称域值和角色域值分别等于该封装后的响应消息的公共头结构的名称域值和角色域值,接口ID等于y2,生命周期设置为最大值;
步骤320:从接口y2接收到封装后的响应消息的路由器查询数据请求表,选择所有名称域值和角色域值分别等于该封装后的响应消息的公共头结构的名称域值和角色域值的数据请求表项;针对每个选中的数据请求表项,该路由器从该数据请求表项的接口ID域值所标识的接口转发封装后的响应消息,删除该数据请求表项,执行步骤312;
步骤321:从接口y2接收到封装后的响应消息的路由器查看IP转发表,如果存在一个IP转发表项,该IP转发表项的IP地址域值和角色域值分别等于该封装后的响应消息的公共头结构的IP地址域值和角色域值,且接口ID等于y2,则执行步骤322,否则执行步骤323;
步骤322:从接口y2接收到封装后的响应消息的路由器选择一个IP转发表项,该IP转发表项的IP地址域值和角色域值分别等于该封装后的响应消息的公共头结构的IP地址域值和角色域值,且接口ID等于y2,将该IP转发表项的生命周期设置为最大值,执行步骤324;
步骤323:从接口y2接收到封装后的响应消息的路由器创建一个IP转发表项,该IP转发表项的IP地址域值和角色域值分别等于该封装后的响应消息的公共头结构的IP地址域值和角色域值,接口ID等于y2,生命周期设置为最大值;
步骤324:从接口y2接收到封装后的响应消息的路由器查询IP请求表,选择所有IP地址域值和角色域值分别等于该封装后的响应消息的公共头结构的IP地址域值和角色域值的IP请求表项;针对每个选中的IP请求表项,该路由器从该IP请求表项的接口ID域值所标识的接口转发封装后的响应消息,删除该IP请求表项,执行步骤312;
步骤325:数据设备DD1接收到封装后的响应消息后,去掉公共头结构,保存该响应消息负载中的响应数据;
步骤326:结束。
4.根据权利要求1所述的一种高效的未来网络数据通信方法,其特征在于,数据C1由名称NA1或者IP地址A1标识,IP设备PD1通过下述过程获取数据C1:步骤401:开始;
步骤402:IP设备PD1构建一个查询消息和一个公共头结构,在查询消息中,IP地址域值为A1,负载的第一个字节为消息类型值5;在公共头结构中,角色域值为0,IP地址域值为A1,名称为NA1;IP设备PD1用公共头结构封装查询消息,并发送封装后的查询消息;
步骤403:判断是服务器还是路由器从接口z1接收到封装后的查询消息,如果是服务器则执行步骤411,否则执行步骤404;
步骤404:路由器从接口z1接收到封装后的查询消息,如果该路由器为数据路由器,则执行步骤405,否则执行步骤407;
步骤405:从接口z1接收到封装后的查询消息的路由器查看数据请求表,如果存在一个数据请求表项,该数据请求表项的名称域值和角色域值分别等于该封装后的查询消息的公共头结构的名称域值和角色域值,且接口ID等于z1,则执行步骤412,否则执行步骤406;
步骤406:从接口z1接收到封装后的查询消息的路由器创建一个数据请求表项,该数据请求表项的名称域值和角色域值分别等于该封装后的查询消息的公共头结构的名称域值和角色域值,接口ID等于z1;该路由器查看数据转发表,选择一个数据转发表项,该数据转发表项的名称域值和角色域值分别等于封装后的查询消息的公共头结构的名称域值和角色域值,从该数据转发表项的接口ID域值所标识的接口转发封装后的查询消息,执行步骤
404;
步骤407:从接口z1接收到封装后的查询消息的路由器查看IP缓存表,如果存在一个IP缓存表项,该IP缓存表项的IP地址域值等于封装后的查询消息的公共头结构的IP地址域值,则执行步骤408,否则执行步骤409;
步骤408:从接口z1接收到封装后的查询消息的路由器选择一个IP缓存表项,该IP缓存表项的IP地址域值等于封装后的查询消息的公共头结构的IP地址域值,构建一个确认消息和一个公共头结构;在确认消息中,IP地址域值等于封装后的查询消息的公共头结构的IP地址域值,负载的第一个字节为消息类型值6,负载中从第二个字节开始为响应数据;在公共头结构中,角色域值、IP地址域值以及名称域值分别等于封装后的查询消息的公共头结构的角色域值、IP地址域值以及名称域值;该路由器用公共头结构封装确认消息,从接口z1发送封装后的确认消息,执行步骤412;
步骤409:从接口z1接收到封装后的查询消息的路由器查看IP请求表,如果存在一个IP请求表项,该IP请求表项的IP地址域值和角色域值分别等于该封装后的查询消息的公共头结构的IP地址域值和角色域值,且接口ID等于z1,则执行步骤412,否则执行步骤410;
步骤410:从接口z1接收到封装后的查询消息的路由器创建一个IP请求表项,该IP请求表项的IP地址域值和角色域值分别等于该封装后的查询消息的公共头结构的IP地址域值和角色域值,接口ID等于z1;该路由器查看IP转发表,选择一个IP转发表项,该IP转发表项的IP地址域值和角色域值分别等于封装后的查询消息的公共头结构的IP地址域值和角色域值,从该IP转发表项的接口ID域值所标识的接口转发封装后的查询消息,执行步骤403;
步骤411:接收到封装后的查询消息的服务器构建一个确认消息和一个公共头结构;在确认消息中,IP地址域值等于封装后的查询消息的公共头结构的IP地址域值,负载的第一个字节为消息类型值6,负载中从第二个字节开始为响应数据;在公共头结构中,角色域值、IP地址域值以及名称域值分别等于封装后的查询消息的公共头结构的角色域值、IP地址域值以及名称域值;该路由器用公共头结构封装确认消息,发送封装后的确认消息;
步骤412:判断是IP设备PD1还是路由器从接口z2接收到封装后的确认消息,如果是IP设备PD1则执行步骤425,否则执行步骤413;
步骤413:路由器从接口z2接收到封装后的确认消息,如果该路由器为数据路由器,则执行步骤414,否则执行步骤418;
步骤414:从接口z2接收到封装后的确认消息的路由器查看数据转发表,如果存在一个数据转发表项,该数据转发表项的名称域值和角色域值分别等于该封装后的确认消息的公共头结构的名称域值和角色域值,且接口ID等于z2,则执行步骤415,否则执行步骤416;
步骤415:从接口z2接收到封装后的确认消息的路由器选择一个数据转发表项,该数据转发表项的名称域值和角色域值分别等于该封装后的确认消息的公共头结构的名称域值和角色域值,且接口ID等于z2,将该数据转发表项的生命周期设置为最大值,执行步骤417;
步骤416:从接口z2接收到封装后的确认消息的路由器创建一个数据转发表项,该数据转发表项的名称域值和角色域值分别等于该封装后的确认消息的公共头结构的名称域值和角色域值,接口ID等于z2,生命周期设置为最大值;
步骤417:从接口z2接收到封装后的确认消息的路由器查询数据请求表,选择所有名称域值和角色域值分别等于该封装后的确认消息的公共头结构的名称域值和角色域值的数据请求表项;针对每个选中的数据请求表项,该路由器从该数据请求表项的接口ID域值所标识的接口转发封装后的确认消息,删除该数据请求表项,执行步骤412;
步骤418:从接口z2接收到封装后的确认消息的路由器查看IP缓存表,如果存在一个IP缓存表,该IP缓存表项的IP地址域值等于封装后的确认消息的公共头结构的IP地址域值,则执行步骤419,否则执行步骤420;
步骤419:从接口z2接收到封装后的确认消息的路由器选择一个IP缓存表,该IP缓存表项的IP地址域值等于封装后的确认消息的公共头结构的IP地址域值,将该IP缓存表项的生命周期设置为最大值,执行步骤421;
步骤420:从接口z2接收到封装后的确认消息的路由器创建一个IP缓存表,该IP缓存表项的IP地址域值等于封装后的确认消息的公共头结构的IP地址域值,数据缓存域值等于封装后的确认消息负载中的响应数据,生命周期设置为最大值;
步骤421:从接口z2接收到封装后的确认消息的路由器查看IP转发表,如果存在一个IP转发表项,该IP转发表项的IP地址域值和角色域值分别等于该封装后的确认消息的公共头结构的IP地址域值和角色域值,且接口ID等于z2,则执行步骤422,否则执行步骤423;
步骤422:从接口z2接收到封装后的确认消息的路由器选择一个IP转发表项,该IP转发表项的IP地址域值和角色域值分别等于该封装后的确认消息的公共头结构的IP地址域值和角色域值,且接口ID等于z2,将该IP转发表项的生命周期设置为最大值,执行步骤424;
步骤423:从接口z2接收到封装后的确认消息的路由器创建一个IP转发表项,该IP转发表项的IP地址域值和角色域值分别等于该封装后的确认消息的公共头结构的IP地址域值和角色域值,接口ID等于z2,生命周期设置为最大值;
步骤424:从接口z2接收到封装后的确认消息的路由器查询IP请求表,选择所有IP地址域值和角色域值分别等于该封装后的确认消息的公共头结构的IP地址域值和角色域值的IP请求表项;针对每个选中的IP请求表项,该路由器从该IP请求表项的接口ID域值所标识的接口转发封装后的确认消息,删除该IP请求表项,执行步骤412;
步骤425:IP设备PD1接收到封装后的确认消息后,去掉公共头结构,保存该确认消息负载中的响应数据;
步骤426:结束。