CN116471229A - 报文转发方法及装置 - Google Patents
报文转发方法及装置 Download PDFInfo
- Publication number
- CN116471229A CN116471229A CN202310486685.4A CN202310486685A CN116471229A CN 116471229 A CN116471229 A CN 116471229A CN 202310486685 A CN202310486685 A CN 202310486685A CN 116471229 A CN116471229 A CN 116471229A
- Authority
- CN
- China
- Prior art keywords
- message
- node
- forwarded
- forwarding
- protocol stack
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000005516 engineering process Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书一个或多个实施例提供一种报文转发方法及装置。其中,该方法应用于分布式网络中的任一节点,可以包括:在接收到待转发报文的报文头的情况下,根据所述报文头和所述任一节点中维护的路由表对所述待转发报文进行路由决策,以确定所述待转发报文的下一跳节点;在接收到所述待转发报文包含的数据的情况下,由所述任一节点中部署的协议栈根据所述路由决策的决策结果将接收到的数据转发至所述下一跳节点;其中,所述数据不经由所述应用层处理。
Description
技术领域
本说明书一个或多个实施例涉及通信技术领域,尤其涉及一种报文转发方法及装置。
背景技术
在通信领域中,数据通常以报文的形式在网络中传输,而路由表则记录有可用于报文转发的路由节点。
在分布式网络中,节点通常维护有网络的路由表,以便在接收到报文的情况下,基于该路由表进行路由决策,进而对接收到的报文进行转发。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种报文转发方法及装置
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种报文转发方法,应用于分布式网络中的任一节点,包括:
在接收到待转发报文的报文头的情况下,根据所述报文头和所述任一节点中维护的路由表对所述待转发报文进行路由决策,以确定所述待转发报文的下一跳节点;
在接收到所述待转发报文包含的数据的情况下,由所述任一节点中部署的协议栈根据所述路由决策的决策结果将接收到的数据转发至所述下一跳节点;其中,所述数据不经由所述应用层处理。
根据本说明书一个或多个实施例的第二方面,提出了一种报文转发装置,应用于分布式网络中的任一节点,包括:
决策单元,在接收到待转发报文的报文头的情况下,根据所述报文头和所述任一节点中维护的路由表对所述待转发报文进行路由决策,以确定所述待转发报文的下一跳节点;
转发单元,在接收到所述待转发报文包含的数据的情况下,由所述任一节点中部署的协议栈根据所述路由决策的决策结果将接收到的数据转发至所述下一跳节点;其中,所述数据不经由所述应用层处理。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
附图说明
图1是一示例性实施例提供的一种报文转发方法的流程图。
图2是一示例性实施例提供的另一种报文转发方法的流程图。
图3是一示例性实施例提供的一种设备的结构示意图。
图4是一示例性实施例提供的一种报文转发装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
在分布式网络中,路由表中记录了可用于报文转发的转发节点的信息,此类节点被称作路由节点。在报文转发的过程中,分布式网络中的任一节点在接收到报文后,需要借助维护的路由表进行路由决策,以确定该报文的下一跳节点,进而将该报文转发至决策得到的下一跳节点。
在相关技术中,为提高报文的转发效率,提出了一种前摄式路由方法。在该方法中,任一节点在仅接收到报文头的情况下,即可进行路由决策,确定下一跳节点,使得在后续接收到相同报文包含的数据的情况下,无需再进行路由决策,直接基于确定的下一跳节点进行转发即可。换言之,该方法可以在未接收到完整数据的情况下,即可执行路由决策操作,提高了转发效率。
然而,前摄式路由尽管在一定程度上提高了转发效率,但该方法需要依赖于应用程序执行转发操作,致使其需要将接收到的数据上报至应用层。例如,在相应应用程序通过路由决策确定下一跳节点之后,后续接收到的数据也需要被上报至应用层,以由该应用程序基于决策结果下发转发指令,进而将接收到的数据转发至下一跳节点。
应当理解的是,由于前摄式路由的报文转发操作,需要由应用程序执行,致使其需要将数据上报至应用层,再由应用层的应用程序下发转发指令,基于此,导致前摄式路由的报文转发效率仍较为低下。
有鉴于此,本说明书提出了一种报文转发方法。在该方法中,分布式网络中的节点可以预先部署协议栈,并维护有路由表。在此基础上,任一节点在接收到待转发报文的报文头的情况下,可以根据该报文头和维护的路由表对待转发报文进行路由决策,以确定待转发报文的下一跳节点,在该前提下,在接收到待转发报文包含的数据时,即可无需将接收到的数据上报至应用层,而是直接由部署的协议栈根据路由决策的决策结果将接收到的数据转发至下一跳节点。换言之,本说明书基于路由决策的决策结果进行转发的数据,可以不经由应用层处理。
应当理解的是,由于本说明书预先部署有协议栈,使得本说明书在基于报文头得到路由决策的决策结果之后,可以由协议栈执行“将后续接收到的数据转发至下一跳节点”的操作,而无需如相关技术中需要由应用程序参与该转发操作,避免了相关技术中由于需要将数据上报至应用层,而导致报文转发效率低下的问题。
下面,结合附图对本说明书提出的报文转发方法进行详细介绍。
图1为本说明书一示例性实施例示出的一种报文转发方法的流程图。该方法应用于分布式网络中的任一节点,该方法可以包括以下步骤:
步骤102,在接收到待转发报文的报文头的情况下,根据所述报文头和所述任一节点中维护的路由表对所述待转发报文进行路由决策,以确定所述待转发报文的下一跳节点。
在本说明书中,待转发报文指的是:目标节点并非本节点,而需要由本节点进行转发的报文。在本说明书中,与相关技术中的前摄式路由相类似,无需在接收到完整报文之后,再进行路由决策,而是在接收到待转发报文的报文头的情况下,即可进行路由决策。
在本说明书中,可以采用不同的方式进行路由决策。
在一实施例中,由于路由表通常维护于应用层中,因此,可以与相关技术中的前摄式路由相类似,在应用层进行路由决策。例如,在接收到待转发报文的报文头之后,即可将该报文头中包含的路由信息上报至应用层,以根据应用层中维护的路由表对待转发报文进行路由决策,得到决策结果。在实际执行过程中,应用层中可以部署有用于维护路由表和进行路由决策的应用程序,以由该应用程序根据维护的路由表进行路由决策。
在另一实施例中,由于本说明书在节点中预先部署了协议栈,因此,可以将路由决策的操作卸载至协议栈执行。例如,协议栈也可以维护有路由表,以在接收到待转发报文的报文头的情况下,协议栈可以直接基于接收到的报文头和维护的路由表,对待转发报文进行路由决策,得到决策结果。
应当理解的是,由于本实施例将路由决策的操作卸载至协议栈执行,使得整个报文的转发操作,包含“路由决策、转发后续接收到的数据”均无需应用层参与,即在***架构的下层便完成了报文转发,相较于上一实施例,进一步减少了由于报文转发操作而需要与应用层进行交互的次数,提高了报文转发效率。
在本实施例中,协议栈维护的路由表可以通过多种方式获取,例如,可以将应用层维护的路由表下发至协议栈,以由协议栈进行存储;再例如,可以为其他节点将路由表转发至本节点时,协议栈自行记录。当然,该举例仅是示意性的,协议栈具体如何获取路由表,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
其中,在协议栈维护的路由表由应用层下发时,协议栈维护的路由表,可以随应用层维护的路由表进行更新。例如,在本节点获取到分布式网络的路由表更新信息的情况下,可以将路由表更新信息上报至应用层,以在应用层执行路由表更新操作,进而得到更新后路由表,在完成路由表的更新操作后,即可将更新后路由表下发至协议栈,以由协议栈对维护的路由表进行更新。值得注意的是,该举例中的路由表更新信息既可以为更新后的路由表,也可以为针对当前路由表中的特定路由节点的替换信息,具体为何种信息,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
在本说明书中,报文头中可以包含用于表征待转发报文的目标节点的节点信息,以作为待转发报文的路由信息。基于此,在接收到待转发报文的报文头的情况下,可以读取报文头中包含的节点信息,并基于最短路径算法计算由本节点至目标节点的最短路径,进而根据计算得到的最短路径确定待转发报文的下一跳节点。在一种可行的实施例中,基于最短路径算法得到的最短路径可以以SPT(Shortest Path Tree,最短路径树)的形式表征,在此基础上,即可从最短路径树中确定出下一跳节点。当然,该举例仅是示意性的,现有的任一种路由方式均可用于本说明书的路由决策,例如,链路状态路由算法、距离向量路由算法等动态路由算法均可用于本说明书的路由决策,具体如何确定下一跳节点,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
步骤104,在接收到所述待转发报文包含的数据的情况下,由所述任一节点中部署的协议栈根据所述路由决策的决策结果将接收到的数据转发至所述下一跳节点;其中,所述数据不经由所述应用层处理。
在本说明书中,在完成路由决策之后,若接收到待转发报文包含的数据,可以无需将该数据上报至应用层,而是直接由协议栈转发至下一跳节点。换言之,基于决策结果转发的数据可以无需经由应用层处理。
在本说明书中,协议栈可以通过多种方式将接收到的数据转发至下一跳节点。
在一实施例中,可以由协议栈根据路由决策的决策结果,在本节点与下一跳节点之间建立转发连接,在此基础上,在接收到待转发报文包含的数据时,即可由协议栈基于建立的转发连接将接收到的数据转发至下一跳节点。
在本实施例中,为了区分不同报文,以对待转发报文的数据进行转发,协议栈还可以确定用于将待转发报文发送至本节点的接收连接,以建立该接收连接与上述转发连接的转发连接对。在该前提下,在接收到通过上述接收连接发送的待转发报文的数据的情况下,即可由协议栈基于建立的转发连接对,确定出与该接收连接对应的转发连接,以通过确定出的转发连接将接收到的数据转发至下一跳节点。
换言之,本实施例可以通过建立转发连接对的方式,对后续接收到的待转发报文的数据进行转发。在通过该方式进行报文转发的情况下,可以基于转发的数据的字符串长度确定待转发报文是否转发完成,例如,报文头中可以包含待转发报文的字符串长度,在此基础上,可以由协议栈读取该字符串长度,以在将从接收连接接收到的数据通过转发连接发送至下一跳节点的过程中,确定从该接收连接中接收到的数据是否属于待转发报文,其中,若从该接收连接接收到的数据的字符串总长度未超过从报文头中读取的字符串长度,则确定接收到数据属于待转发报文,否则,即便从转发连接接收到数据,也不对接收到的数据进行转发。当然,除了基于字符串长度确定接收到的数据是否属于待转发报文以外,还可以通过其他方式确定是否继续将接收到的数据转发至下一跳节点,例如,还可以将报文头中读取到的报文标识,与后续接收到的数据的报文标识进行比对,以确定是否属于待转发报文,进而决定是否进行转发,本说明书对此不作限制。
应当理解的是,本实施例的转发方式,即通过建立转发连接对进行转发的方式,相当于为报文建立了传输通道,结合了包交换技术和流式传输技术,既能够在仅接收到协议头的情况下实现路由决策,且能够通过流式传输技术提高传输效率。
在另一实施例中,也可以通过记录报文标识的方式,对接收到的待转发的报文进行转发。例如,可以由协议栈读取报文头中包含的待转发报文的唯一标识符,并记录路由决策的决策结果与该唯一标识符的对应关系,在此基础上,若接收到待转发报文的数据,协议栈即可根据数据中包含的唯一标识符,确定出相应的决策结果,以根据决策结果指示的下一跳节点进行报文转发。
当然,上述举例仅是示意性的,具体如何基于路由决策的决策结果对待转发报文的数据进行转发,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
值得注意的是,本说明书本质上也可以是一种前摄式路由。换言之,本说明书在完成路由决策之后,可以由协议栈在尚未接收到待转发报文包含的所有数据的情况下,便根据路由决策的决策结果将接收到的数据发送至下一跳节点,即本说明书可以无需在接收到报文包含的所有数据之后,再进行转发,而是可以在仅接收到一部分数据的情况下,便开始转发,例如,可以采用流式传输的方式进行转发。当然,该举例仅是示意性的,具体采用何种形式对接收到的数据进行转发,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
除此之外,本说明书可以根据实际情况在节点中部署协议栈,以使协议栈可以执行上述报文转发操作。举例而言,节点中通常可以包含内核态协议栈和用户态协议栈,其中,用户态协议栈的编译权限是开放的,因此,本说明书在节点中部署的协议栈可以为用户态协议栈,以便技术人员通过对用户态协议栈进行编译,进而实现本说明书的技术方案。当然,该举例仅是示意性的,并非说明内核态协议栈不能用于实现本说明书的技术方案,例如,在技术人员获取内核态协议栈的编译权限的情况下,或者内核态协议栈在开发阶段便是按照实现本说明书技术方案的标准进行编译的情况下,节点中部署的用于转发报文的协议栈完全可以为内核态协议栈,本说明书对此不作限制。
需要声明的是,本说明书的技术方案可以应用于任一种分布式网络,例如,该分布式网络可以为P2P(Peer To Peer,点对点)网络、区块链网络等。本说明书的技术方案具体应用于哪一类型的分布式网络,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
其中,在分布式网络为区块链网络的情况下,该区块链网络既可以基于区块链技术的传统架构部署,即区块链网络中的所有节点均通过在相应实体设备上部署区块链代码而形成,大多数情况下,每个节点均对应于一个实体设备;该区块链网络也可以基于区块链技术中的BaaS(Blockchain as a Service)架构部署,即区块链网络中的所有节点均通过云服务在云端实现的虚拟机上部署区块链代码而形成,区块链节点无需一一对应于相应的实体设备。
由上述技术方案可知,本说明书预先在分布式网络的节点中部署了协议栈,在此基础上,任一节点在接收到报文的协议头的情况下,即可根据该报文头和路由表进行路由决策,以确定该报文的下一跳节点。在此基础上,在接收到同一报文的数据的情况下,该数据无需经由应用层处理,即可由协议栈根据决策结果转发至下一跳节点。
应当理解的是,本实施例由协议栈执行基于路由决策结果进行数据转发的操作,使得本说明书在后续接收到数据的情况下,无需将数据上报至应用层,避免了相关技术中由于由应用程序执行路由转发操作,而导致需要将接收到的数据上报至应用层,造成转发效率较低的问题。
进一步的,本说明书还可以由协议栈执行路由决策操作,即将路由决策操作卸载至协议栈,使得本说明书在无需应用层参与的情况下,即可完成整个报文的转发,进一步减少了与应用层的交互,提高了报文的转发效率。
下面,以“将应用层维护的路由表同步至用户态协议栈,以由用户态协议栈进行路由决策”为例,对本说明书的报文转发方法进行介绍。
图2为本说明书一示例性实施例示出的另一种报文转发方法的流程图。如图2所示,该方法可以包括以下步骤:
步骤201,用户态协议栈接收到报文的协议头。
在本实施例中,由于用户态协议栈可以进行编辑,以使其实现不同的功能。因此,本实施例可以预先对用户态协议栈进行编辑,以使用户态协议栈具备路由决策功能和数据转发功能。除此之外,由于路由决策需要依赖于路由表,因此,本节点还可以预先将维护于应用层的路由表下发至用户态协议栈,以由其进行维护。
步骤202,用户态协议栈基于维护的路由表对接收到的协议头进行路由决策。
在本实施例中,用户态协议栈在接收到报文的协议头的情况下,可以基于维护的路由表对接收到的协议头进行路由决策,进而确定相应报文的下一跳节点。
举例而言,假设本节点接收到报文A的报文头a,则可以读取报文头a中包含的报文A的目标节点7的节点信息,在此基础上,即可基于读取到的节点信息和维护的路由表进行路由决策,以确定报文A的下一跳节点,例如,可以采用最短路径算法确定由本节点至目标节点7的最短路径,进而基于该最短路径确定报文A的下一跳节点。
步骤203,用户态协议栈基于路由决策的决策结果在本节点与下一跳节点之间建立转发连接。
承接上述举例,假设本节点为节点1,而基于路由决策确定报文A的下一跳节点为节点2,则用户态协议栈可以建立“节点1-节点2”的转发连接。
步骤204,用户态协议栈建立上一跳节点与本节点之间的接收连接与建立的转发连接之间的转发连接对。
承接上述举例,假设报文A的上一跳节点为节点3,则报文头a是通过节点3建立的“节点3-节点1”这一转发连接发送至本节点,在本节点的角度,则可以将“节点3-节点1”称作接收连接。在此基础上,用户态协议栈即可建立用于表征该接收连接和自身建立的转发连接的对应关系的转发连接对。例如,用户态协议栈中建立的转发连接对可以如下表1所示:
报文 | 转发连接对 | 接收连接 | 转发连接 |
报文A | 转发连接对1 | 节点3-节点1 | 节点1-节点2 |
报文B | 转发连接对2 | 节点4-节点1 | 节点1-节点5 |
报文C | 转发连接对3 | 节点5-节点1 | 节点1-节点8 |
…… | …… | …… | …… |
表1
步骤205,用户态协议栈通过上一跳节点与本节点之间的接收连接接收到报文数据。
步骤206,用户态协议栈基于建立的转发连接对,确定出本节点与下一跳节点之间的转发连接。
在本实施例中,报文头中可以记录有相应报文的数据长度,以便用户态协议栈用于确定接收到的数据是否与该报文头同属于一个报文。
承接上述举例,假设报文A包含报文头a和报文体a’,则用户态协议栈可以从报文头a中读取报文体a’的字符串长度,并进行记录。此时,用户态协议栈中记录的信息可以如下表2所示:
报文 | 转发连接对 | 接收连接 | 转发连接 | 字符串长度 |
报文A | 转发连接对1 | 节点3-节点1 | 节点1-节点2 | 4536 |
报文B | 转发连接对2 | 节点4-节点1 | 节点1-节点5 | 7561 |
报文C | 转发连接对3 | 节点5-节点1 | 节点1-节点8 | 5816 |
…… | …… | …… | …… |
表2
在此基础上,用户态协议栈在从“节点3-节点1”这一接收连接接收到数据的情况下,即可基于表2所示的对应关系,确定出用于数据转发的转发连接为“节点1-节点2”,并判断在接收到报文头a之后,接收到的数据的字符串长度是否超过“4536”,若未超过,则通过“节点1-节点2”这一转发连接对接收到的数据进行转发。
步骤207,用户态协议栈基于确定出的转发连接将接收到的数据发送至下一跳节点。
由上述技术方案可知,本实施例预先将应用层的路由表下发至用户态协议栈,以由用户态协议栈进行维护,在该前提下,节点在接收到报文的报文头的情况下,无需将报文头上报至应用层,而可以由用户态协议栈基于维护的路由表直接对报文头进行路由决策,进而确定报文的下一跳节点,在此基础上,在后续接收到同一报文的数据的情况下,用户态协议栈可以直接基于路由决策对接收到的数据进行转发。
可见,本实施例的报文转发方法全程只需在用户态协议栈中执行,而无需应用程序参与,避免了相关技术中由于需要应用程序参与报文转发操作,而导致接收到的数据均需被上报至应用层,造成报文转发效率降低的问题。
图3是一示例性实施例提供的一种设备的示意结构图。请参考图3,在硬件层面,该设备包括处理器302、内部总线304、网络接口306、内存308以及非易失性存储器310,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器302从非易失性存储器310中读取对应的计算机程序到内存308中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图4,报文转发装置可以应用于如图3所示的设备中,以实现本说明书的技术方案。其中,该报文转发装置应用于分布式网络中的任一节点,可以包括:
决策单元401,在接收到待转发报文的报文头的情况下,根据所述报文头和所述任一节点中维护的路由表对所述待转发报文进行路由决策,以确定所述待转发报文的下一跳节点;
转发单元402,在接收到所述待转发报文包含的数据的情况下,由所述任一节点中部署的协议栈根据所述路由决策的决策结果将接收到的数据转发至所述下一跳节点;其中,所述数据不经由所述应用层处理。
可选的,决策单元401被进一步用于:
将所述报文头中的路由信息上报至应用层,以根据所述应用层中维护的路由表对所述待转发报文进行路由决策,得到决策结果。
可选的,决策单元401被进一步用于:
由所述协议栈根据自身维护的路由表和所述报文头中的路由信息,对所述待转发报文进行路由决策,得到决策结果。
可选的,还包括:
更新单元403,获取所述分布式网络的路由表更新信息,并将所述路由表更新信息上报至应用层,以在所述应用层执行路由表更新操作,得到更新后路由表;
将所述更新后路由表下发至所述协议栈,以由所述协议栈对维护的路由表进行更新。
可选的,所述报文头中包含用于表征所述待转发报文的目标节点的节点信息;决策单元401被进一步用于:
读取所述报文头中包含的节点信息,以基于最短路径算法计算由所述任一节点至所述目标节点的最短路径,并根据计算得到的最短路径确定所述待转发报文的下一跳节点。
可选的,转发单元402被进一步用于:
由所述任一节点中部署的协议栈根据所述路由决策的决策结果,在所述任一节点和所述下一跳节点之间建立转发连接;
由所述协议栈通过建立的转发连接将接收到的数据转发至所述下一跳节点。
可选的,
转发单元402还被用于:由所述协议栈确定用于将所述待转发报文发送至所述任一节点的接收连接,并建立确定的接收连接和所述转发连接的转发连接对;
转发单元402被进一步用于:在接收到通过所述接收连接发送的所述待转发报文包含的数据的情况下,由所述协议栈基于所述转发连接对确定出与所述接收连接对应的转发连接,以通过确定出的转发连接将接收到的数据转发至所述下一跳节点。
可选的,还包括:
读取单元404,由所述协议栈从所述报文头中读取所述待转发报文的字符串长度;所述字符串长度被所述协议栈用于确定从所述接收连接接收到的数据是否属于所述待转发报文;
其中,在从所述接收连接接收到的数据的字符串总长度未超过从所述报文头中读取的字符串长度时,确定接收到的数据属于所述待转发报文。
可选的,转发单元402被进一步用于:
由所述任一节点中部署的协议栈在未接收到所述待转发报文包含的所有数据的情况下,根据所述路由决策的决策结果将接收到的数据发送至所述下一跳节点。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (12)
1.一种报文转发方法,应用于分布式网络中的任一节点,包括:
在接收到待转发报文的报文头的情况下,根据所述报文头和所述任一节点中维护的路由表对所述待转发报文进行路由决策,以确定所述待转发报文的下一跳节点;
在接收到所述待转发报文包含的数据的情况下,由所述任一节点中部署的协议栈根据所述路由决策的决策结果将接收到的数据转发至所述下一跳节点;其中,所述数据不经由所述应用层处理。
2.根据权利要求1所述的方法,所述根据所述报文头和所述任一节点中维护的路由表对所述待转发报文进行路由决策,包括:
将所述报文头中的路由信息上报至应用层,以根据所述应用层中维护的路由表对所述待转发报文进行路由决策,得到决策结果。
3.根据权利要求1所述的方法,所述根据所述报文头和所述任一节点中维护的路由表对所述待转发报文进行路由决策,包括:
由所述协议栈根据自身维护的路由表和所述报文头中的路由信息,对所述待转发报文进行路由决策,得到决策结果。
4.根据权利要求3所述的方法,还包括:
获取所述分布式网络的路由表更新信息,并将所述路由表更新信息上报至应用层,以在所述应用层执行路由表更新操作,得到更新后路由表;
将所述更新后路由表下发至所述协议栈,以由所述协议栈对维护的路由表进行更新。
5.根据权利要求1所述的方法,所述报文头中包含用于表征所述待转发报文的目标节点的节点信息;所述根据所述报文头和所述任一节点中维护的路由表对所述待转发报文进行路由决策,包括:
读取所述报文头中包含的节点信息,以基于最短路径算法计算由所述任一节点至所述目标节点的最短路径,并根据计算得到的最短路径确定所述待转发报文的下一跳节点。
6.根据权利要求1所述的方法,所述由所述任一节点中部署的协议栈根据所述路由决策的决策结果将接收到的数据转发至所述下一跳节点,包括:
由所述任一节点中部署的协议栈根据所述路由决策的决策结果,在所述任一节点和所述下一跳节点之间建立转发连接;
由所述协议栈通过建立的转发连接将接收到的数据转发至所述下一跳节点。
7.根据权利要求6所述的方法,
还包括:由所述协议栈确定用于将所述待转发报文发送至所述任一节点的接收连接,并建立确定的接收连接和所述转发连接的转发连接对;
所述在接收到所述待转发报文包含的数据的情况下,由所述任一节点中部署的协议栈根据所述路由决策的决策结果将接收到的数据转发至所述下一跳节点,包括:在接收到通过所述接收连接发送的所述待转发报文包含的数据的情况下,由所述协议栈基于所述转发连接对确定出与所述接收连接对应的转发连接,以通过确定出的转发连接将接收到的数据转发至所述下一跳节点。
8.根据权利要求7所述的方法,还包括:
由所述协议栈从所述报文头中读取所述待转发报文的字符串长度;所述字符串长度被所述协议栈用于确定从所述接收连接接收到的数据是否属于所述待转发报文;
其中,在从所述接收连接接收到的数据的字符串总长度未超过从所述报文头中读取的字符串长度时,确定接收到的数据属于所述待转发报文。
9.根据权利要求1所述的方法,所述由所述任一节点中部署的协议栈根据所述路由决策的决策结果将接收到的数据转发至所述下一跳节点,包括:
由所述任一节点中部署的协议栈在未接收到所述待转发报文包含的所有数据的情况下,根据所述路由决策的决策结果将接收到的数据发送至所述下一跳节点。
10.一种报文转发装置,应用于分布式网络中的任一节点,包括:
决策单元,在接收到待转发报文的报文头的情况下,根据所述报文头和所述任一节点中维护的路由表对所述待转发报文进行路由决策,以确定所述待转发报文的下一跳节点;
转发单元,在接收到所述待转发报文包含的数据的情况下,由所述任一节点中部署的协议栈根据所述路由决策的决策结果将接收到的数据转发至所述下一跳节点;其中,所述数据不经由所述应用层处理。
11.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310486685.4A CN116471229A (zh) | 2023-04-28 | 2023-04-28 | 报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310486685.4A CN116471229A (zh) | 2023-04-28 | 2023-04-28 | 报文转发方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116471229A true CN116471229A (zh) | 2023-07-21 |
Family
ID=87175267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310486685.4A Pending CN116471229A (zh) | 2023-04-28 | 2023-04-28 | 报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116471229A (zh) |
-
2023
- 2023-04-28 CN CN202310486685.4A patent/CN116471229A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11716202B2 (en) | Techniques for secure blockchain routing | |
US11316921B2 (en) | Block synchronization methods and apparatuses | |
EP3975506B1 (en) | Methods and apparatuses for transmitting messages | |
US6968393B1 (en) | Method and apparatus for an attribute oriented routing update | |
US11445016B2 (en) | Methods and apparatuses for transmitting messages | |
CN108259328B (zh) | 报文转发方法及装置 | |
US11445428B2 (en) | Method and device for setting up route path | |
CN112968969B (zh) | 区块链***、消息传输方法及装置 | |
CN115314273B (zh) | 一种数据传输***、方法、电子设备和可读存储介质 | |
CN114172853B (zh) | 流量转发及裸机服务器的配置方法、装置 | |
CN111711567A (zh) | 一种基于区块链的网络消息传输方法装置及电子设备 | |
CN114866470A (zh) | 发送报文的方法、装置、***及存储介质 | |
CN116471229A (zh) | 报文转发方法及装置 | |
CN108259340B (zh) | 一种拓扑信息传输方法和装置 | |
CN111641555B (zh) | 一种路由收敛方法及装置 | |
CN111510321B (zh) | 网络故障处理方法、装置、计算机设备和存储介质 | |
CN115037690A (zh) | 一种流量调度方法、装置、电子设备及存储介质 | |
CN115118655B (zh) | 跨网络报文转发方法、装置、电子设备及可读存储介质 | |
CN109688060B (zh) | 链路分组配置方法、装置及路由器 | |
CN106506394B (zh) | 一种负载均衡方法、***和装置 | |
CN118101527A (zh) | 传输时延测量方法、装置、计算机设备及存储介质 | |
CN117014314A (zh) | 通信加速方法、装置、基站和计算机可读存储介质 | |
CN115499361A (zh) | 路由数据的处理方法及装置、存储介质、处理器 | |
CN117319971A (zh) | 数据包处理方法、服务器和无线通信*** | |
FR3144476A1 (fr) | Procédé de routage de messages dans un réseau maillé |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |