CN109995659A - 一种网络通信方法及装置 - Google Patents
一种网络通信方法及装置 Download PDFInfo
- Publication number
- CN109995659A CN109995659A CN201711482414.2A CN201711482414A CN109995659A CN 109995659 A CN109995659 A CN 109995659A CN 201711482414 A CN201711482414 A CN 201711482414A CN 109995659 A CN109995659 A CN 109995659A
- Authority
- CN
- China
- Prior art keywords
- routing
- physical address
- internet protocol
- address
- neighbor table
- 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.)
- Granted
Links
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/02—Topology update or discovery
-
- 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
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
-
- 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
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/58—Caching of addresses or names
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种网络通信方法及装置,所述方法包括:接收并解析报文,获得目的主机网际协议地址;根据所述目的主机网际协议地址,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型;根据所述物理地址和路由类型,发送报文。本申请简化了整个三层的封包处理流程,减少了资源占用。
Description
技术领域
本申请涉及网络传输领域,具体涉及一种网络通信方法和装置。
背景技术
在网络传输过程中,现在大多使用TCP/IP网络协议栈实现,如图1所示,TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。两台计算机通过TCP/IP协议通讯的过程如图2所示,在发送时,需要自上而下经过各层封装,到达目的主机后,再自下而上层层解析,最终实现设备与设备之间的通信。
在三层封装上主要由路由表和邻居表以及各种不同scope的表组成,其中路由表还可能包括缓存,经过统计,在很多情况下,程序对于这些表的应用非常单一,甚至一旦网络体系构建好,对应的表的结构不会有实质的大的变化,然而,这些表却必须占据存储空间,而且,这些表的增删改查,分别遵循不同的逻辑,维护成本较高。另一方面,由于环节较多,增加了运行时的内存开销,许多业务场景下,程序需要多次执行查询操作,增加了内存溢出的可能性。同时,这样的设计在安全方面也比较容易收到arp攻击,削弱了传输设备的性能。不管从安全性还是分布式的环境下,都不期望使用复杂的路由和邻居表。
发明内容
本申请提供一种网络通信发送方法,以提高传输设备的工作性能。此外,本申请还提供一种用于网络通信的装置。
本申请提供的一种网络通信方法,其包括:
接收并解析报文,获得目的主机网际协议地址;
根据所述目的主机网际协议地址,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型;
根据所述物理地址和路由类型,发送报文。
此外,本申请还提供一种网络通信方法,其包括:
接收并解析报文,获得目的主机网际协议地址;
判断路由邻居表是否启用,若启用,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型;
根据所述物理地址和路由类型,发送报文。
此外,本申请还提供一种网络通信方法,其包括:
接收并解析报文,获得目的主机网际协议地址;
判断路由邻居表是否启用,若启用,则对路由邻居表进行单次查询,若未查询到下一跳路由的物理地址,则执行下一步;
通过路由匹配算法获得下一跳路由的网际协议地址;
根据下一跳路由的网际协议地址,获得下一跳路由的物理地址;
将所述下一跳路由的物理地址更新至路由邻居表,并向物理地址发送报文。
此外,本申请还提供一种网络通信方法,其包括:
接收并解析报文,获得目的主机网际协议地址;
判断路由邻居表是否启用,若未启用,则根据所述目的主机网际协议地址查询路由表,获得下一跳路由网际协议地址;
根据所述下一跳路由网际协议地址查询邻居表,获得下一跳路由的物理地址;
向物理地址发送报文。
此外,本申请还提供一种网络通信方法,其包括:
验证目的主机网际协议地址是否为本机地址,若是,接收报文。
根据报文端口号将报文发送至目标应用程序;
若否,则在开启转发功能时,对路由邻居表进行单次查询,获得路由器物理地址,将接收的报文的物理地址替换为路由器物理地址,向所述路由器物理地址转发接收的报文。
此外,本申请还提供一种用于网络通信的装置,包括:
解析单元,用于接收并解析报文,获得目的主机网际协议地址;
查询单元,用于根据所述目的主机网际协议地址,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型;
报文发送单元,用于根据所述物理地址和路由类型,发送报文。
此外,本申请还提供一种用于网络通信的装置,包括:
解析单元,用于接收并解析报文,获得目的主机网际协议地址;
判断单元,用于判断路由邻居表是否启用,
查询单元,用于在路由邻居表启用时,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型;
报文发送单元,用于根据所述物理地址和路由类型,发送报文。
与现有技术相比,本申请的其中一个方面具有以下优点:
通过把整个三层的表融合成一个单一的表,通过单次查询即可获得IP地址对应的物理地址及路由信息,大大简化了整个三层的封包处理流程,不仅减少了资源占用,而且还可以尽可能减少任何额外的内存开销,并且避免了在某些业务场景下多次查询带来的内存溢出问题,从而使得工作效率和内存开销方面得到双重改善,提高了工作性能。
在维护方面,只需要维护单一的一张表,大大降低了维护成本。同时,对路由邻居表简单的查询操作在防范arp攻击方面也有一定的积极意义。
附图说明
图1是TCP/IP网络协议栈分层示意图。
图2是两台计算机通过TCP/IP协议通讯的过程示意图。
图3是本申请的第一实施例提供的网络通信方法的流程图。
图4是本申请第一实施例和第二实施例提供的路由邻居表表的示意图。
图5是本申请第二实施例提供的网络通信方法的流程图。
图6是本申请第三实施例提供的网络通信发送方法的流程图。
图7是本申请第四实施例提供的网络通信方法的流程图。
图8是本申请第五实施例提供的网络通信方法的流程图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
如前所述,在现有的三层数据包封装中,通过路由表(routing table)和邻居表实现数据发送和接收。路由表是一个存储在路由器或者联网计算机中的电子表格(文件)或类数据库。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择;如果目的主机与发送方主机不再同一局域网中,则需要选择一条合适的能够将报文发送至目的主机的发送路径,获得所述发送路径需要经过的下一跳路由的网际协议地址。路由表存储着指向特定网络地址的路径。邻居表也称为ARP的缓存表。协议栈通过ARP协议获取到的网络上邻居主机的IP地址与MAC地址的对应关系都会保存在这个表中,以备下次与邻居通讯时使用,同时,ARP模块自身也会提供一套相应的机制来更新和维护这个邻居表。
本申请的实施例中,将路由表和邻居表合二为一,将二者中的信息储存在一个数据结构中,形成路由邻居表。所述路由邻居表(Route-neighbour Table)是一个包括网际协议地址(IP地址)、物理地址、路由信息、路由类型等信息的数据结构。如此,现有技术中的路由表和邻居表的信息都在同一个数据结构里,可以使用IP作为哈希查找的key,报文在经过三层协议栈的时候,直接通过IP地址信息一次查找获得IP地址对应的物理地址和路由信息。而不同于现有技术中需要分别对路由表和邻居表分别进行查询,至少需要两次查询才能获得前述信息。
本申请第一实施例提供了网络通信方法。请参考图3,其示出了根据本申请的实施例提供的网络通信方法的流程图。以下结合图3进行详细说明。
步骤301,接收并解析报文,获得目的主机网际协议地址。
本步骤为本实施例的启动步骤,即三层协议栈接收并解析报文,获得目的主机网际协议地址使本方法整个流程启动。
所述报文(message),是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短不一致,长度不限且可变。
所述网际协议地址,是分配给网络上使用网际协议(Internet Protocol,IP)的设备的数字标签。
步骤S302,根据所述目的主机网际协议地址,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型。
在三层数据包封装中,最主要的功能就是根据上层报文中的目的主机网际协议地址获得目的主机或下一跳路由的物理地址(物理地址),由于目的主机与发送方主机可能不在同一局域网中,因此,在现有技术中,需要使用路由表通过目的主机的网际协议地址判断目的主机是否与发送方主机位于同一局域网中,如果目的主机与发送方主机位于同一局域网中,则获得目的主机的网际协议地址;如果目的主机与发送方主机不再同一局域网中,则选择一条合适的能够将报文发送至目的主机的发送路径,获得所述发送路径需要经过的下一跳路由的网际协议地址。在获得所述网际协议地址后,再使用路由表通过所述网际协议地址获得其所对应的物理地址,将所述物理地址嵌入至报文头传送至负责发送报文的物理介质层。
本申请将上述步骤中的路由表和邻居表合二为一,将所述路由表和邻居表中的信息储存在一个数据结构中,以实现与现有技术相同的功能。
所述路由邻居表(Route-neighbour Table)是一个包括网际协议地址、物理地址、路由信息、路由类型等信息的数据结构,记录每个设备的上述信息。
所述数据结构(英语:data structure)是计算机中存储、组织数据的方式。数据结构意味着接口或封装:一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装。
具体而言,可以采用哈希表的形式组织路由邻居表,将网际协议地址、物理地址、路由信息、路由类型作为字段,每一条记录提供以上四个字段的信息,如图4所示。如此,现有技术中路由和邻居表的信息都在同一个数据结构里,可以使用IP作为哈希查找的key,报文在经过三层协议栈的时候,直接通过IP信息(即目的主机网际协议地址)获得对应的物理地址和路由信息。在图4的表格中,字段“IP”表示目的主机的网际协议地址,字段“MAC”表示目的主机的物理地址,字段“Route”表示目的主机的路由信息,字段“Type”表示目的主机的路由类型。
所述物理地址(英语:Media Access Control Address),直译为媒体访问控制地址,也称为以太网ID或物理地址,它是一个用来确认网络设备位置的地址。物理地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的物理地址。
所述路由信息记录着下一跳路由的网际协议地址,一般在跨域传输时使用这项信息,在同一局域网中传输时,这项参数为“0”。也可以指定其他类型的字符表示不同的路由信息。
所述路由类型,是指目的主机与发送方之间的网络距离。本实施例中路由类型分别由不同的值例如“0”、“1”、“2”三个数字表示,其中,数字“0”表示路由器自身,数字“1”表示路由器所在局域网,数字“2”表示广域网。也可以指定其他类型的字符表示不同的路由类型。
所述路由器自身,是指路由器设备本身,在本实施例中仅仅为了层次的完整和递进关系设置本选项。
所述局域网,是指路由器所在局域网,亦即接收方(目的主机)与发送方处于同一局域网,此时不需要跨域传输。
所述广域网,是指接收方(目的主机)与发送方不处于同一局域网,需要跨域传输。
在报文经过三层协议栈的时候,先读取路由类型,如果路由类型的参数为0,则说明目的主机位于局域网内,此时不需要读取路由信息,直接读取物理地址,并向读取到的物理地址(即目的主机的物理地址)发送报文;如果路由类型的参数为1,则说明目的主机位于广域网,此时则需要读取路由信息和物理地址,并向读取到的物理地址(即下一跳路由的物理地址)发送报文。
例如,目的主机网际协议地址为192.168.0.3所对应的物理地址为aa:bb:cc:dd:ee:ff,路由信息为0,路由类型为1,则说明这个目的主机位于局域网内,物理地址为aa:bb:cc:dd:ee:ff;目的主机网际协议地址为192.168.24.3所对应的物理地址为aa:cc:ee:dd:bb:fa,路由信息为192.168.1.0,路由类型为2,则说明这个目的主机位于广域网,需要跨域传输,下一跳路由的网际协议地址是192.168.1.0,下一跳路由的物理地址为aa:cc:ee:dd:bb:fa。
以上提供的路由邻居表的数据结构只是实现本步骤的一种可能性,在设计路由邻居表时,可以采用其他类型的字符表示不同的路由信息或路由类型。更进一步地,可以根据需要增加或者减少路由邻居表信息,例如,可以考虑增加策略路由作为一个字段,或者剔除一个或几个不需要的字段,以下提供另外一种可能的实现方案。
可以将网际协议地址、物理地址、路由信息作为字段,删除路由类型字段,在报文经过三层协议栈的时候,直接读取路由信息和MAC信息,并向读取到的物理地址发送报文。
除了字段可以根据需要调整设计外,路由邻居表的数据结构在实现上也不局限于哈希表,可以设计成其他的一些基于树的数据结构。
如果局域网的记录在一定范围内,亦即局域网内的所有设备的总数有限的情况下,可以将局域网内的所有设备的路由邻居表信息记录在路由设备中。
步骤S303,根据所述物理地址和路由类型,发送报文。
本步骤中的物理地址是指目的主机或下一跳路由的网卡的物理地址。
本申请第二实施例提供了另外一种面向三层数据包封装的网络发送方法,请参考图5,其示出了根据本申请第二实施例提供的面向三层数据包封装的网络发送方法的流程图。以下结合图5进行详细说明。
步骤S401,接收并解析报文,获得目的主机网际协议地址。
本步骤为本实施例的启动步骤,即三层协议栈接收并解析报文,获得目的主机网际协议地址使本方法整个流程启动。
所述报文(message),是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短不一致,长度不限且可变。
所述网际协议地址,是分配给网络上使用网际协议(英语:Internet Protocol,IP)的设备的数字标签。
步骤S402,判断路由邻居表是否启用,若启用,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型。
在三层数据包封装中,最主要的功能就是根据上层报文中的目的主机网际协议地址获得目的主机或下一跳路由的物理地址(物理地址),由于目的主机与发送方主机可能不在同一局域网中,因此,在现有技术中,需要使用路由表通过目的主机的网际协议地址判断目的主机是否与发送方主机位于同一局域网中,如果目的主机与发送方主机位于同一局域网中,则获得目的主机的网际协议地址;如果目的主机与发送方主机不再同一局域网中,则选择一条合适的能够将报文发送至目的主机的发送路径,获得所述发送路径需要经过的下一跳路由的网际协议地址。在获得所述网际协议地址后,再使用路由表通过所述网际协议地址获得其所对应的物理地址,将所述物理地址嵌入至报文头传送至负责发送报文的物理介质层。
本申请将上述步骤中的路由表和邻居表合二为一,将所述路由表和邻居表中的信息储存在一个数据结构中,以实现与现有技术相同的功能。
所述路由邻居表是一个包括网际协议地址、物理地址、路由信息、路由类型等信息的数据结构,记录每个设备的上述信息。
所述数据结构(英语:data structure)是计算机中存储、组织数据的方式。数据结构意味着接口或封装:一个数据结构可被视为两个函数之间的接口,或者是由数据类型联合组成的存储内容的访问方法封装。
具体而言,可以采用哈希表的形式组织路由邻居表,将网际协议地址、物理地址、路由信息、路由类型作为字段,每一条记录提供以上四个字段的信息,如图4所示。如此,现有技术中路由和邻居表的信息都在同一个数据结构里,可以使用IP作为哈希查找的key,报文在经过三层协议栈的时候,直接通过IP信息(即目的主机网际协议地址)获得对应的物理地址和路由信息。在图4的表格中,字段“IP”表示目的主机的网际协议地址,字段“MAC”表示目的主机的物理地址,字段“Route”表示目的主机的路由信息,字段“Type”表示目的主机的路由类型。
所述物理地址(英语:Media Access Control Address),直译为媒体访问控制地址,也称为以太网ID或物理地址,它是一个用来确认网络设备位置的地址。物理地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的物理地址。
所述路由信息记录着下一跳路由的网际协议地址,一般在跨域传输时使用这项信息,在同一局域网中传输时,这项参数为“0”。也可以指定其他类型的字符表示不同的路由信息。
所述路由类型,是指目的主机与发送方之间的网络距离。本实施例中路由类型分别由“0”、“1”、“2”三个数字表示,其中,数字“0”表示路由器自身,数字“1”表示路由器所在局域网,数字“2”表示广域网。也可以指定其他类型的字符表示不同的路由类型。
所述路由器自身,是指路由器设备本身,在本实施例中仅仅为了层次的完整和递进关系设置本选项。
所述局域网,是指路由器所在局域网,亦即接收方(目的主机)与发送方处于同一局域网,此时不需要跨域传输。
所述广域网,是指接收方(目的主机)与发送方不处于同一局域网,需要跨域传输。
在报文经过三层协议栈的时候,先读取路由类型,如果路由类型的参数为0,则说明目的主机位于局域网内,此时不需要读取路由信息,直接读取物理地址,并向读取到的物理地址(即目的主机的物理地址)发送报文;如果路由类型的参数为1,则说明目的主机位于广域网,此时则需要读取路由信息和物理地址,并向读取到的物理地址(即下一跳路由的物理地址)发送报文。
例如,目的主机网际协议地址为192.168.0.3所对应的物理地址为aa:bb:cc:dd:ee:ff,路由信息为0,路由类型为1,则说明这个目的主机位于局域网内,物理地址为aa:bb:cc:dd:ee:ff;目的主机网际协议地址为192.168.24.3所对应的物理地址为aa:cc:ee:dd:bb:fa,路由信息为192.168.1.0,路由类型为2,则说明这个目的主机位于广域网,需要跨域传输,下一跳路由的网际协议地址是192.168.1.0,下一跳路由的物理地址为aa:cc:ee:dd:bb:fa。
以上提供的路由邻居表的数据结构只是实现本步骤的一种可能性,在设计路由邻居表时,可以采用其他类型的字符表示不同的路由信息或路由类型。更进一步地,可以根据需要增加或者减少路由邻居表信息,例如,可以考虑增加策略路由作为一个字段,或者剔除一个或几个不需要的字段,以下提供另外一种可能的实现方案。
可以将网际协议地址、物理地址、路由信息作为字段,删除路由类型字段,在报文经过三层协议栈的时候,直接读取路由信息和MAC信息,并向读取到的物理地址发送报文。
除了字段可以根据需要调整设计外,路由邻居表的数据结构在实现上也不局限于哈希表,可以设计成其他的一些基于树的数据结构。
如果局域网的记录在一定范围内,亦即局域网内的所有设备的总数有限的情况下,可以将局域网内的所有设备的路由邻居表信息记录在路由设备中。
步骤S403,根据所述物理地址和路由类型,发送报文。
本步骤中的物理地址是指目的主机或下一跳路由的网卡的物理地址。
本申请第三实施例提供了又一种网络通信方法,请参考图6,其示出了根据本申请第三实施例提供的网络通信方法的流程图。以下结合图6进行详细说明。
步骤S501,接收并解析报文,获得目的主机网际协议地址。
本步骤为本实施例的启动步骤,即三层协议栈接收并解析报文,获得目的主机网际协议地址使本方法整个流程启动。
所述报文(message),是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短不一致,长度不限且可变。
所述网际协议地址,是分配给网络上使用网际协议(英语:Internet Protocol,IP)的设备的数字标签。
步骤S502,判断路由邻居表是否启用,若启用,则对路由邻居表进行单次查询,若未查询到下一跳路由或目的主机的物理地址,则执行下一步;
所述未查询到下一跳路由或目的主机的物理地址是指路由邻居表中没有目的主机的记录。
步骤S503,通过路由匹配算法获得下一跳路由或目的主机的网际协议地址。
本步骤可采用现有技术实现,通过路由表现有机制,获得下一跳路由或目的主机的网际协议地址。
步骤S504,根据下一跳路由或目的主机的网际协议地址,获得下一跳路由或目的主机的物理地址。
本步骤可采用现有技术实现,通过邻居表现有机制,获得下一跳路由或目的主机的物理地址。
步骤S505,将所述下一跳路由目的主机的物理地址更新至路由邻居表,并向物理地址发送报文。
本步骤将步骤S503获得的下一跳路由或目的主机的网际协议地址,以及步骤S504获得的下一跳路由或目的主机的物理地址,储存在路由邻居表中。
本步骤中的物理地址是指目的主机或下一跳路由的网卡的物理地址。
由于网际协议地址、网络拓扑有可能变化,旧有的缓存可能因为这些变化而出现查找结果不正确的情况,因此,在一段时间内如果表中的某一行没有使用,就会被删除,防止网际协议地址改变或网络拓扑改变而造成错误信息滞留的情况发生。
本申请第四实施例提供了又一种网络通信方法,请参考图7,其示出了根据本申请第四实施例提供的网络通信方法的流程图。以下结合图7进行详细说明。
步骤S601,接收并解析报文,获得目的主机网际协议地址。
本步骤为本实施例的启动步骤,即三层协议栈接收并解析报文,获得目的主机网际协议地址使本方法整个流程启动。
所述报文(message),是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短不一致,长度不限且可变。
所述网际协议地址,是分配给网络上使用网际协议(英语:Internet Protocol,IP)的设备的数字标签。
步骤S602,判断路由邻居表是否启用,若未启用,则根据所述目的主机网际协议地址查询路由表,获得下一跳路由或目的主机的网际协议地址。
当路由邻居表未启用时,采用现有技术,通过路由表现有机制,获得下一跳路由或目的主机的网际协议地址。
步骤S603,根据所述下一跳路由或目的主机的网际协议地址查询邻居表,获得下一跳路由的物理地址。
本步骤采用现有技术实现,通过邻居表现有机制,获得下一跳路由或目的主机的物理地址。
步骤S604,向物理地址发送报文。
本步骤中的物理地址是指目的主机或下一跳路由的网卡的物理地址。
本申请第五实施例提供了一种网络通信方法,请参考图8,其示出了根据本申请第五实施例提供的网络通信方法的流程图。以下结合图8进行详细说明。
步骤S701,验证目的主机网际协议地址是否为本机地址,若是,接收报文。
本步骤接收方检验本机是否为发送方的目的主机,确认传输是否正确。具体通过根据报文的目的主机网际协议地址进行最大前缀匹配,来判断是发往本机还是非本机,如果是本机,则接收报文,通知应用程序收包。
步骤S702,根据报文端口号将报文发送至目标应用程序。
在一台服务器中,多个用户进程同时使用TCP是有可能的。为了识别与每个进程有关的数据,将使用端口号。每一个进程占用一个端口号,本步骤将报文发送至与其端口号相同的应用程序中。
若非本机,则在开启转发功能时,对路由邻居表进行单次查询,获得路由器物理地址,将接收的报文的物理替换为路由器物理地址,向所述路由器物理地址转发接收的报文。
此外,与前述方法实施例相对应,本申请同时提供用于网络通信的装置;以下对装置实施例进行描述,装置实施例与方法实施例类似,描述较为简单,具体请参考方法实施例。
本申请提供的一种用于网络通信的装置包括:
解析单元,用于接收并解析报文,获得目的主机网际协议地址;
查询单元,用于根据所述目的主机网际协议地址,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型;
报文发送单元,用于根据所述物理地址和路由类型,发送报文。
此外,本申请还提供另外一种用于网络通信的装置,其包括:
解析单元,用于接收并解析报文,获得目的主机网际协议地址;
判断单元,用于判断路由邻居表是否启用,
查询单元,用于在路由邻居表启用时,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型;
报文发送单元,用于根据所述物理地址和路由类型,发送报文。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (31)
1.一种网络通信方法,其特征在于,包括:
接收并解析报文,获得目的主机网际协议地址;
根据所述目的主机网际协议地址,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型;
根据所述物理地址和路由类型,发送报文。
2.根据权利要求1所述的网络通信方法,其特征在于,所述路由邻居表为哈希数据表;相应的,
对所述路由邻居表进行单次查询具体为对所述路由邻居表进行单次的哈希查询。
3.根据权利要求1所述的网络通信方法,其特征在于,在发送报文之前,将所述物理地址封装到所述报文的以太网报文头。
4.根据权利要求1所述的网络通信方法,其特征在于,所述路由邻居表为包括网络设备的网际协议地址、物理地址、路由信息和路由类型字段的哈希数据表。
5.根据权利要求4所述的网络通信方法,其特征在于,所述路由类型包含路由、局域网、广域网。
6.根据权利要求5所述的网络通信方法,其特征在于,所述路由类型由不同值来表示。
7.根据权利要求5所述的网络通信方法,其特征在于,如果局域网的主机数量可数,所述路由邻居表存储有所有路由类型为局域网的网际协议地址、物理地址、路由信息和路由类型。
8.根据权利要求1所述的网络通信方法,其特征在于,所述路由邻居表为包括网络设备的网际协议地址、物理地址、路由信息字段的哈希数据表。
9.根据权利要求8所述的网络通信方法,其特征在于,如果局域网的主机数量可数,所述路由邻居表存储有所有路由类型为局域网的网际协议地址、物理地址和路由信息。
10.根据权利要求1所述的网络通信方法,其特征在于,所述路由邻居表为包括网络设备的网际协议地址、物理地址字段的哈希数据表。
11.一种网络通信方法,其特征在于,包括:
接收并解析报文,获得目的主机网际协议地址;
判断路由邻居表是否启用,若启用,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型;
根据所述物理地址和路由类型,发送报文。
12.根据权利要求11所述的网络通信方法,其特征在于,所述路由邻居表为哈希数据表;相应的,
对所述路由邻居表进行单次查询具体为对所述路由邻居表进行单次的哈希查询。
13.根据权利要求11所述的网络通信方法,其特征在于,在所述向物理地址发送报文之前,将所述物理地址封装到所述报文的以太网报文头。
14.根据权利要求11所述的网络通信方法,其特征在于,所述路由邻居表为包括网络设备的网际协议地址、物理地址、路由信息和路由类型字段的哈希数据表。
15.根据权利要求14所述的网络通信方法,其特征在于,所述路由类型包含路由、局域网、广域网。
16.根据权利要求15所述的网络通信方法,其特征在于,如果局域网的主机数量可数,所述路由邻居表存储有所有路由类型为局域网的网际协议地址、物理地址、路由信息和路由类型。
17.根据权利要求11所述的网络通信方法,其特征在于,所述路由邻居表为包括网络设备的网际协议地址、物理地址、路由信息字段的哈希数据表。
18.根据权利要求17所述的网络通信方法,其特征在于,如果局域网的主机数量可数,所述路由邻居表存储有所有路由类型为局域网的网际协议地址、物理地址和路由信息。
19.根据权利要求11所述的网络通信方法,其特征在于,所述路由邻居表为包括网际协议地址、物理地址字段的数据表,用于记录网络设备的上述信息。
20.一种网络通信方法,其特征在于,包括:
接收并解析报文,获得目的主机网际协议地址;
判断路由邻居表是否启用,若启用,则对路由邻居表进行单次查询,若未查询到下一跳路由的物理地址,则执行下一步;
通过路由匹配算法获得下一跳路由的网际协议地址;
根据下一跳路由的网际协议地址,获得下一跳路由的物理地址;
将所述下一跳路由的物理地址更新至路由邻居表,并向物理地址发送报文。
21.根据权利要求20所述的网络通信方法,其特征在于,在所述向物理地址发送报文之前,将所述物理地址封装到所述报文的以太网报文头。
22.根据权利要求20所述的网络通信方法,其特征在于,所述路由邻居表为包括网络设备的网际协议地址、物理地址、路由信息和路由类型字段的哈希数据表。
23.根据权利要求22所述的网络通信方法,其特征在于,所述路由类型包含路由、局域网、广域网。
24.根据权利要求23所述的网络通信方法,其特征在于,如果局域网的主机数量可数,所述路由邻居表存储有所有路由类型为局域网的网际协议地址、物理地址、路由信息和路由类型。
25.根据权利要求20所述的网络通信方法,其特征在于,所述路由邻居表为包括网络设备的网际协议地址、物理地址和路由信息字段的数据表。
26.根据权利要求25所述的网络通信方法,其特征在于,如果局域网的主机数量可数,所述路由邻居表存储有所有路由类型为局域网的网际协议地址、物理地址和路由信息。
27.根据权利要求20所述的网络通信方法,其特征在于,所述路由邻居表为包括网络设备的网际协议地址、物理地址字段的哈希数据表。
28.一种网络通信方法,其特征在于,包括:
接收并解析报文,获得目的主机网际协议地址;
判断路由邻居表是否启用,若未启用,则根据所述目的主机网际协议地址查询路由表,获得下一跳路由网际协议地址;
根据所述下一跳路由网际协议地址查询邻居表,获得下一跳路由的物理地址;
向物理地址发送报文。
29.一种网络通信方法,其特征在于,包括:
验证目的主机网际协议地址是否为本机地址,若是,接收报文。
根据报文端口号将报文发送至目标应用程序;
若否,则在开启转发功能时,对路由邻居表进行单次查询,获得路由器物理地址,将接收的报文的物理地址替换为路由器物理地址,向所述路由器物理地址转发接收的报文。
30.一种用于网络通信的装置,其特征在于,包括:
解析单元,用于接收并解析报文,获得目的主机网际协议地址;
查询单元,用于根据所述目的主机网际协议地址,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型;
报文发送单元,用于根据所述物理地址和路由类型,发送报文。
31.一种用于网络通信的装置,其特征在于,包括:
解析单元,用于接收并解析报文,获得目的主机网际协议地址;
判断单元,用于判断路由邻居表是否启用,
查询单元,用于在路由邻居表启用时,对路由邻居表进行单次查询,获得下一跳路由的物理地址和路由类型;
报文发送单元,用于根据所述物理地址和路由类型,发送报文。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711482414.2A CN109995659B (zh) | 2017-12-29 | 2017-12-29 | 一种网络通信方法及装置 |
JP2020536653A JP7289303B2 (ja) | 2017-12-29 | 2018-12-24 | ネットワーク通信方法および装置 |
EP18894223.9A EP3735037A4 (en) | 2017-12-29 | 2018-12-24 | NETWORK COMMUNICATION PROCESS AND DEVICE |
PCT/CN2018/122996 WO2019128905A1 (zh) | 2017-12-29 | 2018-12-24 | 一种网络通信方法及装置 |
US16/958,662 US12010008B2 (en) | 2017-12-29 | 2018-12-24 | Network communication method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711482414.2A CN109995659B (zh) | 2017-12-29 | 2017-12-29 | 一种网络通信方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109995659A true CN109995659A (zh) | 2019-07-09 |
CN109995659B CN109995659B (zh) | 2022-03-01 |
Family
ID=67063137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711482414.2A Active CN109995659B (zh) | 2017-12-29 | 2017-12-29 | 一种网络通信方法及装置 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3735037A4 (zh) |
JP (1) | JP7289303B2 (zh) |
CN (1) | CN109995659B (zh) |
WO (1) | WO2019128905A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511433A (zh) * | 2020-11-24 | 2021-03-16 | 中移(杭州)信息技术有限公司 | 流量传输方法、服务器及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020143787A1 (en) * | 2001-03-31 | 2002-10-03 | Simon Knee | Fast classless inter-domain routing (CIDR) lookups |
CN101707547A (zh) * | 2008-07-21 | 2010-05-12 | 北京星网锐捷网络技术有限公司 | 路由信息生成方法及装置、递归路由数据转发方法及设备 |
CN103281748A (zh) * | 2013-06-13 | 2013-09-04 | 清华大学 | 基于链路活跃度的无线传感器网络节点选路方法 |
CN106254256A (zh) * | 2015-06-04 | 2016-12-21 | 杭州华三通信技术有限公司 | 基于三层vxlan网关的数据报文转发方法和设备 |
WO2017063866A1 (en) * | 2015-10-13 | 2017-04-20 | Philips Lighting Holding B.V. | Unicast message routing using repeating nodes |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3638742B2 (ja) * | 1996-11-29 | 2005-04-13 | アンリツ株式会社 | ルータ |
JP2000151709A (ja) * | 1998-11-12 | 2000-05-30 | Nec Corp | ルーティングアドレス検索システム |
JP3636710B2 (ja) * | 2002-02-08 | 2005-04-06 | 松下電器産業株式会社 | ゲートウェイ装置及びその制御方法 |
US7313633B2 (en) * | 2003-06-04 | 2007-12-25 | Intel Corporation | Methods and apparatus for updating address resolution data |
CN100446496C (zh) * | 2006-12-07 | 2008-12-24 | 中国科学院计算技术研究所 | 一种基于路由邻居表建立无线传感器网络路由的方法 |
JP4931888B2 (ja) * | 2008-09-29 | 2012-05-16 | アラクサラネットワークス株式会社 | 転送装置、転送方法、およびコンピュータプログラム |
KR101538560B1 (ko) * | 2010-09-08 | 2015-07-21 | 닛본 덴끼 가부시끼가이샤 | 스위치 시스템, 스위치 제어 방법 및 기억 매체 |
-
2017
- 2017-12-29 CN CN201711482414.2A patent/CN109995659B/zh active Active
-
2018
- 2018-12-24 EP EP18894223.9A patent/EP3735037A4/en active Pending
- 2018-12-24 JP JP2020536653A patent/JP7289303B2/ja active Active
- 2018-12-24 WO PCT/CN2018/122996 patent/WO2019128905A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020143787A1 (en) * | 2001-03-31 | 2002-10-03 | Simon Knee | Fast classless inter-domain routing (CIDR) lookups |
CN101707547A (zh) * | 2008-07-21 | 2010-05-12 | 北京星网锐捷网络技术有限公司 | 路由信息生成方法及装置、递归路由数据转发方法及设备 |
CN103281748A (zh) * | 2013-06-13 | 2013-09-04 | 清华大学 | 基于链路活跃度的无线传感器网络节点选路方法 |
CN106254256A (zh) * | 2015-06-04 | 2016-12-21 | 杭州华三通信技术有限公司 | 基于三层vxlan网关的数据报文转发方法和设备 |
WO2017063866A1 (en) * | 2015-10-13 | 2017-04-20 | Philips Lighting Holding B.V. | Unicast message routing using repeating nodes |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511433A (zh) * | 2020-11-24 | 2021-03-16 | 中移(杭州)信息技术有限公司 | 流量传输方法、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20210250272A1 (en) | 2021-08-12 |
JP7289303B2 (ja) | 2023-06-09 |
EP3735037A1 (en) | 2020-11-04 |
WO2019128905A1 (zh) | 2019-07-04 |
EP3735037A4 (en) | 2021-10-20 |
CN109995659B (zh) | 2022-03-01 |
JP2021508212A (ja) | 2021-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11134012B2 (en) | Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow | |
CN101888334B (zh) | 利用路由优先级值的动态重定义的可扩展路由策略结构 | |
US9871781B2 (en) | Systems and methods for path maximum transmission unit discovery | |
US20130259050A1 (en) | Systems and methods for multi-level switching of data frames | |
CN104885431A (zh) | 软件定义信息中心网络中基于内容的流量工程 | |
CN102857491A (zh) | 集管理方案 | |
CN104704779A (zh) | 用于加速软件定义网络中的转发的方法和设备 | |
CN105024985A (zh) | 一种报文处理方法及装置 | |
CN104010049A (zh) | 基于sdn的以太网ip报文封装方法及网络隔离和dhcp实现方法 | |
WO2020073685A1 (zh) | 转发路径确定方法、装置、系统、计算机设备及存储介质 | |
CN100442766C (zh) | 数据通信设备转发业务的实现方法 | |
CN103918246A (zh) | 用于使用网络地址转换功能对ip分段进行数据分组处理的系统和方法 | |
JP2021526331A (ja) | ネットワークトポロジ生成方法および装置 | |
CN112543108A (zh) | 网络隔离策略管理方法和网络隔离策略管理系统 | |
US10075362B2 (en) | Method and apparatus for determining next hop and advertising routing information | |
CN105812257A (zh) | 业务链路由管理系统及其使用方法 | |
CN105099919A (zh) | 报文处理方法及装置 | |
CN106921551A (zh) | 虚拟通信方法、系统及设备 | |
CN109995659A (zh) | 一种网络通信方法及装置 | |
CN110661713B (zh) | 一种报文转发方法及装置 | |
CN110572326A (zh) | 转发路径的建立方法、装置、网络设备及系统 | |
CN108111414B (zh) | 一种基于段路由的标签部署方法和装置 | |
CN109831378A (zh) | 一种报文超时回应方法及装置 | |
CN103916321A (zh) | 定义软件定义网络的网络元件的查找表实现的方法和设备 | |
CN103856400A (zh) | FCoE报文转发方法、设备及系统 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40010736 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |