一种报文转发方法和网络设备与流程

文档序号:16516570发布日期:2019-01-05 09:40阅读:155来源:国知局
一种报文转发方法和网络设备与流程

本申请涉及通信技术领域,尤其涉及一种报文转发方法和网络设备。



背景技术:

零配置网络(英文:zero-configurationnetworking,zeroconf)技术是一种被广泛应用小型网络(如局域网)中的技术。处于零配置网络中的网络设备可以实现自动地址配置、域名解析和服务发现,而无需管理员进行手动配置动态主机配置协议(英文:dynamichostconfigurationprotocol,dhcp)服务器或域名系统(英文:domainnamesystem,dns)服务器来生成网际协议(英文:internetprotocol,ip)地址。

例如,bonjour技术是零配置网络技术的一种。bonjour技术基于组播域名系统(英文:multicastdomainnamesystem,mdns)以及dns服务发现(英文:dnsservicediscovery,dns-sd)来实现。单播dns的dns服务器存放了域名和ip地址的映射,具有域名解析的功能。mdns无需dns服务器。终端设备通过组播的方式交换mdns报文以获取其他终端设备的地址。

由于终端设备组播的报文会在整个网络中扩散,且终端设备也将接收来自网络中其他所有终端设备组播的报文,网络传输的报文数量大,传输负担重。并且,终端设备要对处理大量报文,导致终端设备的负担大。



技术实现要素:

本申请提供一种处理报文方法和网络设备,用于对网络中报文的转发进行控制,降低终端设备的负担。

第一方面,本申请提供一种报文转发方法。该方法应用在网络设备中。该方法包括:网络设备接收终端设备发送的mdns应答报文,并获取mdns应答报文中与终端设备的位置相关的转发控制参数,然后,若网络设备确定终端设备处于与网络设备的位置相关的转发区域外,则网络设备放弃转发该mdns应答报文。通过这种方法,网络设备在接收终端设备发送的mdns应答报文后,可以在根据mdns应答报文中的转发控制参数确定终端设备处于与网络设备所处的位置相关的转发区域外时,放弃转发该mdns应答报文,从而实现对mdns应答报文的转发进行控制。网络设备仅对处于转发区域内的终端设备所发送的mdns应答报进行转发,有效终端设备接收到的mdns应答报文,从而降低终端设备的工作负担。

在一个可能的设计中,转发控制参数包括设备标识,设备标识为与终端设备连接的网络设备的标识,则网络设备在确定邻居列表中缺少设备标识时,确定终端设备处于网络设备的位置相关的转发区域外,放弃转发mdns应答报文,该邻居列表包括与网络设备相近且与任意终端设备连接的网络设备的标识。通过该方法,网络设备只需要通过在邻居列表中查找mdns应答报文中的设备标识,即可确定发送mdns应答报文的终端设备连接的网络设备是否为邻居设备,从而可以确定终端设备是否处于网络设备的位置相关的转发区域中,以确定是否放弃转发mdns应答报文,实现方式较为快捷、可靠。

在一个可能的设计中,转发控制参数包括距离,网络设备确定终端设备处于网络设备的位置相关的转发区域外,放弃转发mdns应答报文的过程可以是网络设备确定mdns应答报文中的距离大于距离阈值,则放弃转发mdns应答报文。同时,若网络设备确定mdns应答报文中的距离小于等于距离阈值且网络设备包括接收mdns应答报文的端口之外的网络侧端口,则网络设备增加mdns应答报文中的距离,并向接收mdns应答报文的端口之外的网络侧端口转发mdns应答报文。通过该方法,网络设备通过将mdns应答报文中的距离与阈值距离的比较,可放弃对距离大于距离阈值的mdns应答报文的转发,例如放弃向终端侧端口的转发,降低终端设备的处理报文的负担。同时,在距离小于距离阈值时,通过增加mdns应答报文中的距离,实现对mdns应答报文在网络中传输的距离的记录。

在一个可能的设计中,转发控制参数包括设备标识,mdns应答报文还包括服务类型,设备标识为与终端设备连接的网络设备的标识,服务类型指示了终端设备所提供的服务,则网络设备将在多个转发列表中选择对应于服务类型的转发列表,该转发列表包括至少一个网络设备的标识,且至少一个网络设备与提供服务类型的服务的终端设备连接,如果网络设备确定对应于服务类型的转发列表中缺少设备标识,则确定终端设备处于网络设备的位置相关的转发区域外,此时网络设备放弃向终端侧端口转发mdns应答报文。通过该方法,网络设备可以选择与mdns应答报文中的服务类型对应的转发列表,由于转发列表中包括提供相应服务类型的服务的终端设备所连接的网络设备的标识,故根据转发列表可以判断不同服务类型的mdns应答报文所来自的终端设备是否处于转发区域外,有助于提高对提供各服务类型的服务的终端设备的监控。

在一个可能的设计中,网络设备还可根据mdns应答报文中的服务类型更新服务数据,服务数据包括多个服务类型中各个服务类型对应的一个或多个设备标识,该服务数据中的与服务类型对应的一个或多个设备标识为提供服务类型的服务的一个或多个终端设备的标识或提供服务类型的服务的终端设备所连接的一个或多个网络设备的标识,以及,网络设备还可以根据服务数据更新对应于服务类型的转发列表,以使更新后的转发列表仅包括更新后的服务数据中与网络设备相近的一个或多个终端设备所连接的网络设备的标识,或者更新后的转发列表仅包括更新后的服务数据中与网络设备相近的一个或多个网络设备的标识。通过该方法,网络设备可以实现对转发列表的更新,从而更新转发列表中网络设备所表征的转发区域,实现对网络设备的位置相关的转发区域的动态更新,有助于提高转发控制的准确性。

在一个可能的设计中,转发控制参数还包括距离,则网络设备可以根据mdns应答报文中的距离和服务类型更新服务数据,服务数据包括多个服务类型中各个服务类型对应的一个或多个设备标识以及一个或多个设备标识对应的距离,该服务数据中的与服务类型对应的一个或多个设备标识为提供服务类型的服务的终端设备所连接的一个或多个网络设备的标识。通过该方法,网络设备通过对各服务类型相关的设备标识及设备标识对应的距离的更新,使得服务类型可以对应于较近的终端设备所连接的一个或多个网络设备的标识,有助于提高报文传输的可靠性。

同时,在该可能的设计中,如果网络设备确定服务数据的一个或多个设备标识中存在至少一个网络设备的标识对应的距离小于mdns应答报文中的距离,表明终端设备处于网络设备的位置相关的转发区域外,则网络设备放弃向终端侧端口转发mdns应答报文,或者,若网络设备包括接收mdns应答报文的端口之外的网络侧端口,则网络设备将增加mdns应答报文中的距离,并向接收mdns应答报文的端口之外的网络侧端口转发mdns应答报文。通过该方法,网络设备通过更新服务数据中距离网络设备较近的终端设备连接的网络设备的标识,可确定距离较远的终端设备即为处于网络设备的位置相关的转发区域外的终端设备,从而放弃向终端侧设备转发距离较大的mdns应答报文,同时在向网络侧端口发送前对mdns应答报文中的距离进行增加,实现对mdns应答报文的距离的更新,有助于后续接收mdns应答报文的其他网络设备获取的距离的准确性。

在一个可能的设计中,转发控制参数包括距离,mdns应答报文还包括服务类型,服务类型指示了终端设备所提供的服务,则网络设备将根据mdns应答报文中的距离和服务类型更新服务数据,该服务数据包括多个服务类型中各个服务类型对应的一个或多个设备标识以及一个或多个设备标识对应的距离,服务数据中的与服务类型对应的一个或多个设备标识为提供服务类型的服务的一个或多个终端设备的标识。那么,如果网络设备确定服务数据的一个或多个设备标识中存在至少一个终端设备的标识对应的距离小于mdns应答报文中的距离,可以确定终端设备处于网络设备的位置相关的转发区域外,则网络设备放弃向终端侧端口转发mdns应答报文,或者,若网络设备包括接收mdns应答报文的端口之外的网络侧端口,则网络设备将增加mdns应答报文中的距离,并向接收mdns应答报文的端口之外的网络侧端口转发mdns应答报文。故通过该方法,网络设备可以放弃向终端侧设备的转发距离较大的mdns应答报文,同时在向网络侧端口发送前对mdns应答报文中的距离进行增加,实现对mdns应答报文的距离的更新,有助于后续接收mdns应答报文的其他网络设备获取的距离的准确性。通过该方法,网络设备通过对各服务类型相关的终端设备的标识及终端设备的标识对应的距离的更新,使得服务类型可以对应于较近的提供该服务类型的服务的一个或多个终端设备,便于实现终端设备的就近服务。

第二方面,本申请提供一种网络设备,该网络设备具有实现第一方面中方法的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的功能部件。

在一个可能的设计中,作为网络设备的具体结构可包括通信端口和处理器。通信端口和处理器可用于执行上述第一方面中的报文转发方法。

第三方面,本申请提供一种网络设备。该网络设备包括获取模块和处理模块。网络设备所包括的模块用于执行第一方面中的报文转发方法。

第四方面,本申请提供一种计算机存储介质,该计算机存储介质中存储有计算机程序指令,当指令在计算机上运行时,使得计算机执行第一方面中的报文转发方法。

附图说明

图1为本申请中的网络架构图;

图2为本申请中处理报文方法的流程图;

图3为本申请中mdns应答报文的报文格式的示意图;

图4为本申请中新增资源记录的示意图一;

图5为本申请中新增资源记录的示意图二:

图6为本申请中网络设备存储的邻居列表的示意图;

图7为本申请中网络设备的结构示意图;

图8为本申请中网络设备的模块示意图。

具体实施方式

首先,对本申请中的部分用语进行解释说明。

1)终端设备,可以是支持mdns技术的设备。终端设备可以基于mdns发送用于请求服务的查询报文或响应其他终端设备所请求的服务。例如,该终端设备可以包括打印机、多媒体电视、摄像头、虚拟机(英文:virtualmachine,vm)等。

2)网络设备,可以用于对终端设备发送的报文进行转发。本申请中网络设备可以是交换机,接入点(英文:accesspoint,ap)等。

本申请中,当网络设备与终端设备相连时,该网络设备也可称为接入设备。理论上来讲,网络中每个网络设备都可以作为接入设备。

此外,网络设备可以包括一个或多个通信端口,该通信端口可以是与网络中的其他网络设备连接的网络侧端口,和/或,可以是与终端设备连接的用户侧端口。网络侧端口也可称为网络到网络端口(英文:networktonetworkinterface,nni)。用户侧端口也可称为用户到网络端口(英文:usertonetworkinterface,uni)。通信端口可以是有线端口,也可以是无线端口。例如,通信端口可以为以太网端口。如果网络设备是ap,用户侧端口可以为ap的空中端口。

3)mdns,适用于没有dns服务器时的域名解析。通过mdns,终端设备可以通过组播的方式交互信息,实现终端设备之间的相互发现和通信。

例如,某个开启了mdns服务的终端设备需要解析一个域名时,终端设备用用户数据报协议(英文:userdatagramprotocol,udp)组播查询报文。如果有终端设备认为该域名是自己的,则通过生成应答报文来对该查询报文进行应答,并在应答报文中携带该进行应答的终端设备的ip地址。该终端设备以组播方式发送应答报文,以便需要解析域名的终端设备可以接收该应答报文中的ip地址,从而根据ip地址发现具有该域名的终端设备。

4)dns-sd,是一种用于发现终端设备所能提供的服务的技术。dns-sd通过发送查询报文查询某服务以获取所有关于该服务的信息。

终端设备发送mdns报文以在网络中进行服务通告,以注册自身所提供的服务。例如注册格式可以是“终端设备名称.服务类型.传输协议类型.根域名.”,例如“damonwebserver._http._tcp.local.”。当一个终端设备发送查找http服务的查询报文后,将接收到由其他终端设备根据查询报文发送的关于“http”传输协议类型的应答报文。

5)本申请中的术语“多个”是指两个或两个以上,鉴于此,本申请中也可以将“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。

下面将简单介绍交换机的转发报文的原理。

交换机可以根据报文的媒体访问控制(英文:mediaaccesscontrol,mac)地址转发报文。交换机可以用mac学习功能记录该报文的源mac地址与接收该报文的端口的对应关系,根据该对应关系即可转发报文。mac学习的基本过程如下:

1、交换机接收报文时,读取报文的源mac地址,并在转发表中记录或更新该源mac地址与接收该报文的端口的映射;

2、交换机读取报文的目的mac地址,并在转发表中以该目的mac地址为索引查找相应的端口;

3、如果找到了与目的mac地址相应的端口,则交换机用该端口转发该报文;

4、如果找不到与目的mac地址相应的端口,则交换机广播该报文。

下面结合附图介绍本申请所应用的网络架构。

如图1所示,为本申请所应用的网络架构图,图中以二层网络的架构为例。其中,网络设备a1是终端设备1的接入设备,网络设备s1是终端设备2的接入设备,网络设备a2是终端设备3的接入设备,网络设备s3是终端设备4的接入设备,网络设备a3是终端设备5的接入设备。网络设备a1用于传输终端设备1和网络设备s1之间的报文,网络设备a2用于传输终端设备3与网络设备s2之间的报文,网络设备a3用于传输终端设备5与网络设备s3之间的报文。网络设备s2、网络设备s1和网络设备s3可以两两之间进行报文传输。

接下来,将结合说明书附图介绍本申请提供的技术方案。在下面的介绍过程中,以本申请提供的技术方案应用在图1所示的网络架构为例。

如图2所示,本申请提供一种处理报文方法,该方法可以通过前述的网络设备来执行,图2中终端设备、接入设备和网络设备可以处于同一网络中。该方法的流程描述如下:

s21、终端设备发送mdns应答报文。接入设备接收mdns应答报文。

本申请中,终端设备可以是支持mdns服务的设备,其可以发送mdns查询报文,也可以发送mdns应答报文。

终端设备在接收到其他终端设备发送的mdns查询报文时,如果该终端设备能够提供mdns查询报文所请求的服务,则该终端设备可以对mdns查询报文进行响应,生成相应的mdns应答报文,并组播该mdns应答报文。

如果终端设备开启了mdns服务,终端设备在连接网络后,可发送组播报文。组播报文包括该终端设备的标识及ip地址等。接收到该组播报文后,其他有mdns服务的终端设备以mdns应答报文响应该组播报文。mdns应答报文包括响应的终端设备的标识和ip地址等。在终端设备需要解析一个域名时,则可以通过mdns查询域名对应的ip地址,广播mdns查询报文,接收到该mdns查询报文的其他终端设备认为域名是自己的,则对mdns查询报文进行应答,并在mdns应答报文中携带域名对应的ip地址,进而将该mdns应答报文进行组播,mdns应答报文会在整个网络中扩散,故网络中除发送mdns查询报文的终端设备之外的其他终端设备也可以收到该mdns应答报文。接收mdns应答报文的终端设备会记录解析的域名和域名对应的ip地址等。

本申请中,mdns应答报文中可以包括服务类型,服务类型可以用于指示终端设备所能提供的服务。例如,若终端设备为打印机,能够提供打印的服务,则其服务类型就可以是打印服务。

终端设备在响应其他终端设备发送的mdns查询报文时,可生成相应的mdns应答报文,该mdns应答报文中的服务类型即为其他终端设备所请求的服务,同时,还在生成的mdns应答报文中添加自身的ip地址,进而将该mdns应答报文在网络中进行组播。

mdns应答报文中还可以包括其他信息,例如终端设备的标识以及终端设备所采用的协议的版本信息等等。

s22、接入设备在mdns应答报文中添加转发控制参数,该转发控制参数可以包括设备标识和/或距离。

mdns应答报文中包括的转发控制参数与终端设备的位置相关,由处于不同位置的终端设备发送的mdns应答报文中的转发控制参数可能不同。例如,由处于不同位置的终端设备所发送的mdns应答报文中,转发控制参数中所包括的设备标识可能不同,距离可能也不同。

其中,设备标识可以是指接入设备的标识,即与发送mdns应答报文的终端设备连接的网络设备的标识。在该网络中,设备标识具有唯一性,例如设备标识可以是接入设备的身份标识。那么,后续在mdns应答报文的转发过程中,通过提取设备标识即可确定终端设备连接的接入设备。

距离可以表征mdns应答报文在网络中的传输距离。传输距离在mdns应答报文的转发过程中会逐渐累加。

本申请中,接入设备在mdns应答报文中添加转发控制参数时,可以通过对mdns应答报文中字段的设计来实现。为了更便于理解,下面将先对报文的原有格式进行介绍。

如图3所示,为mdns应答报文的报文格式的示意图,其包括5个字段,即包头(header)字段、查询的问题(question)字段、应答(answer)字段、授权应答(authority)字段和附加信息(additional)字段。

其中,header字段定义了报文是请求报文还是应答报文,question字段描述了查询的问题,例如包括查询类型(type)、查询类(class)、以及查询的域名(name)等。header字段和question字段是报文格式中固定存在的字段。通常来说,answer字段包含回答查询的问题的资源记录(英文:resourcerecord,rr),authority字段包含授权域名服务器的资源记录,additional字段可以包含与请求相关的资源记录,且各字段所采用的资源记录的格式相同。如图3中所示的资源记录的格式,包括域名、类型、类、生存时间、资源数据长度(rdlength)和资源数据(rdata)这几个部分。其中,域名可以记录资源数据的名称,类型和类可以与question字段所描述的类型和类相同,生存时间表示资源记录的生命周期,通常以秒为单位,资源数据长度表示资源数据的长度,资源数据表示按查询字段的要求所返回的相关资源记录的数据。不同字段可以包括不同的资源记录的数量,资源记录中各部分的值可能不同。

本申请中,在mdns应答报文的原有格式的基础上对字段的资源记录进行设计。所采用的方式为,在原有格式的基础上对字段中原有资源记录的值进行设计,或者,也可以在原有格式的基础上在字段中新增资源记录,并对新增的资源记录的各部分的值进行设置。新增的资源记录的格式与原有资源记录的格式相同。本申请中主要介绍新增加资源记录的方式在mdns应答报文中添加转发控制参数。

如图4所示,为在mdns应答报文中新增资源记录的一种示意图,新增的资源记录用于在mdns应答报文中添加设备标识。图4中,该资源记录中的域名可以设置为“accid”,代表该新增资源记录为用于记录设备标识的资源记录,本文中也将新增的用于记录设备标识的资源记录称为设备标识字段。设备标识字段中类型和类的值均可设置为私有扩展值,如“0xfff0”,以便于后期终端设备可以根据该私有扩展值从mdns应答报文包括的字段中识别报文中的设备标识字段。生存时间设置为空,即对mdns应答报文在网络中传输的时长不作要求。资源数据长度的值可以根据需要返回的资源记录的相关数据的量进行设置,此处以设置的资源数据长度的值为4为例,表示该新增字段中资源记录的相关数据可以占用4个字节。资源数据的值会根据接入设备标识的不同而有所不同,此处以设置的资源数据的值为“aaaa”为例,表示接入设备标识为“aaaa”。

同理,如图5所示,为在mdns应答报文中新增资源记录的另一种示意图,新增的资源记录用于在mdns应答报文中添加距离。图中,该资源记录中的域名可以设置为“cost”,代表该新增的资源记录为用于记录mdns应答报文的传输距离的资源记录,本文中也将该新增的用于记录mdns应答报文的传输距离的资源记录称为距离字段。距离字段中类型和类均可设置为私有扩展值,如“0xfff1”,生存时间设置为空,资源数据长度可设置为4个字节,资源数据即为mdns应答报文中在网络中传输的距离,该距离可以用相应的数值来记录。接入设备在为mdns应答报文添加距离字段时,默认设置的资源数据的初始值可以是0或1等。

在mdns应答报文的传输过程中,网络设备对mdns应答报文中的距离进行累加,可以是指对mdns应答报文携带的距离字段中的资源数据的值进行累加。例如,mdns应答报文每被转发一次,则当前将转发mdns应答报文的网络设备就可对mdns应答报文中距离字段中资源数据的值进行累加,例如+1,那么,后续接收mdns应答报文的网络设备依据mdns应答报文的距离字段中资源数据的取值就可以确定mdns应答报文在网络中传输的距离。

通过上述方式扩展报文格式,可在不影响mdns应答报文原有内容的基础上额外携带转发控制参数,实现方式简单。

s23、接入设备组播mdns应答报文。网络设备接收mdns应答报文。

接入设备在mdns应答报文中添加转发控制参数后,组播mdns应答报文。网络中的网络设备,例如交换机等,可以接收携带了转发控制参数的mdns应答报文。

s24、网络设备根据接收的mdns应答报文,确定是否放弃转发mdns应答报文。

本申请中,网络设备接收mdns应答报文后,可以根据mdns应答报文中的任意一个数据或多个数据的组合来确定是否放弃转发mdns应答报文,包括但不限于以下几种方式:

方式一:根据转发控制参数确定终端设备确定是否放弃转发mdns应答报文。

网络设备接收mdns应答报文后,可以解析mdns应答报文以获取转发控制参数。转发控制参数与发送mdns应答报文的终端设备的位置相关,网络设备根据转发控制参数可以确定终端设备是否处于网络设备的位置相关的转发区域内。

其中,网络设备的位置相关的转发区域可以是预先通过设计人员根据网络设备所处的位置设置的区域,例如将以网络设备的位置为中心的预设距离内的区域作为转发区域。或者,转发区域也可以是预先通过网络设备根据自身所处的位置自行设置的区域,例如网络设备检测其所处位置附近的其它网络设备,并将这些网络设备的位置所形成的区域作为转发区域,等等。

终端设备的位置可以通过与终端设备的接入设备的位置来体现,或者,也可以通过终端设备发送的mdns应答报文在网络中传输的距离来体现。

在该方式中,网络设备确定是否放弃转发mdns应答报文时,根据转发控制参数所包括的参数的不同,包括但不仅限于以下情况:

情况一:转发控制参数包括设备标识。

网络设备接收mdns应答报文之后可以获得mdns应答报文中的设备标识,并根据设备标识确定终端设备是否处于网络设备的位置相关的转发区域外,进而确定是否转发mdns应答报文。

本方式中,网络设备可以存储有邻居列表,邻居列表中记录了与该网络设备相近且与网络中任意终端设备连接的网络设备的标识。因此,可以认为邻居列表中记录了标识的网络设备可以是网络中被用作接入设备的网络设备,该网络设备所处的位置与接收mdns应答报文的网络设备的位置相近。例如,记录了标识的网络设备可以是与接收了mdns应答报文的网络设备的相对距离小于或等于预设距离的接入设备,其中预设距离可以是根据转发区域设置的距离,可以认为相对于接收了mdns应答报文的网络设备的距离小于等于该预设距离的网络设备的位置处于转发区域内。本申请中将记录在邻居列表中的网络设备称为该网络设备的邻居设备。

网络中彼此之间的距离小于或等于预设距离的网络设备,这样的网络设备可以相互称为邻居设备。对于一个网络设备来说,设计人员可以在该网络设备中存储邻居列表,以记录该网络设备的邻居设备的标识。或者,邻居列表也可以是网络设备自动生成的。例如,网络中各网络设备可以检测周围的其他网络设备,并根据检测到的其他网络设备的标识自动生成邻居列表。理论上来讲,网络中每个网络设备都可以存储邻居列表。

例如,在图1所示网络架构中,对于接入设备a1来说,其周围存在的网络设备有网络设备s1、网络设备s2、网络设备a2、网络设备s3和网络设备a3,其中,网络设备a1与网络设备s1之间的距离,网络设备a1与网络设备s2之间的距离,以及网络设备a1与网络设备a2之间的距离,均小于或等于预设距离,则可以确定网络设备中网络设备s1、网络设备s2、网络设备a2为网络设备a1的邻居设备。则网络设备a1的邻居列表中存储的网络设备的标识可以包括s1、s2、a2。同理,对于网络中其他每个网络设备均可以按照该方式来确定邻居设备。

按照上述方式,则图1所示的网络中各网络设备存储的一种邻居列表如图6所示。图6所示表格中包括的是图1中网络设备a1、网络设备a2、网络设备a3、网络设备s1、网络设备s2和网络设备s3共6个网络设备的邻居列表。例如图6中,标识s2、标识s3和标识a2这3个标识所在部分即为存储在网络设备a3中的邻居列表,标识s1、标识s2和标识a2这3个标识所在部分即为存储在网络设备a1中的邻居列表。同理,对于图6中其他网络设备与邻居设备的标识的对应关系也可按照同样方式理解,此处不再赘述。

那么,本申请中,网络设备在根据转发控制参数确定终端设备是否处于与网络设备的位置相关的转发区域外时,可以是查找存储的邻居列表中是否存储了与接入设备标识相同的标识,根据查找结果确定是否放弃转发mdns应答报文。相应的查询结果如下:

结果1、网络设备确定邻居列表中缺少与设备标识相同的标识。

则表明发送mdns应答报文的终端设备所连接的接入设备的位置与网络设备的位置之间的距离较远,终端设备处于网络设备的转发区域外。此时,网络设备可放弃转发mdns应答报文。

如果网络设备中的通信端口包括终端侧端口及除接收mdns应答报文的端口之外的网络侧端口,则网络设备放弃转发mdns应答报文可以是指网络设备仅放弃向终端侧端口转发mdns应答报文,同时,网络设备可以向除接收mdns应答报文的端口之外的网络侧端口发送,例如图2中在确定放弃转发mdns应答报文时,可将mdns应答报文向网络侧端口转发,以传输到其它网络设备(图中用虚线示出)。或者,网络设备放弃转发mdns应答报文也可以是指网络设备放弃向除接收mdns应答报文的端口之外的所有端口转发,即不转发mdns应答报文,例如可丢弃mdns应答报文。

例如,若图1中的接入设备a1在接收终端设备1发送的mdns应答报文后,在mdns应答报文中添加接入设备a1的标识a1,获得mdns应答报文。接入设备a1将mdns应答报文进行组播,网络中的网络设备s3接收mdns应答报文,提取mdns应答报文携带的接入设备标识a1。网络设备s3确定存储的邻居列表中缺少设备标识a1,即表明网络设备s3当前接收的mdns应答报文不是其邻居设备转发的报文,此时,网络设备s3可以不转发mdns应答报文。或者,网络设备s3也可以仅不向用户侧端口(连接终端设备4)转发mdns应答报文。

结果2、邻居列表中存储了与设备标识相同的标识。

则表明发送mdns应答报文的终端设备所连接的接入设备的位置与网络设备的位置较相近,终端设备可能处于网络设备的转发区域内。此时,网络设备可转发mdns应答报文,即继续mdns应答报文在网络中的组播。

网络设备在转发mdns应答报文时,若网络设备包括接收mdns应答报文的端口之外的网络侧端口,则可向接收应答报文的端口之外的网络侧端口转发。以及,若网络设备还包括终端侧端口,则网络设备可以删除mdns应答报文中的转发控制参数后,向终端侧端口转发该mdns应答报文。

例如,继续上述举例,网络设备s1在组播mdns应答报文后,网络设备s1接收mdns应答报文,提取mdns应答报文中的设备标识a1,并查询确定网络设备s1存储的邻居列表中记录了标识a1,此时,网络设备s1可继续转发mdns应答报文。例如,网络设备s1向连接网络设备s2的网络侧端口转发。或者,网络设备s1删除mdns应答报文中的设备标识a1,向连接终端设备2的用户侧端口转发该mdns应答报文。

通过本申请提供的技术方案,网络设备通过查询邻居列表来确定是否转发mdns应答报文,从而使得与网络设备的终端侧端口连接的终端设备所接收的mdns应答报文可以均是由其邻居设备发送的,这些邻居设备可以是处于网络设备的转发区域内的网络设备,以确保网络设备所转发的mdns应答报文是由距离网络设备较近的终端设备发送的,便于实现就近服务。或者,即便网络设备接收的mdns应答报文不是由处于转发区域内的终端设备发送的,网络设备通过放弃转发mdns应答报文,可以有助于避免mdns应答报文在网络中传输过远的距离,降低网络传输报文的负担。

另外,网络设备在向终端侧端口转发mdns应答报文之前,删除了mdns应答报文中的转发控制参数,使得接收mdns应答报文的其他终端设备无需再处理转发控制参数,避免在其他终端设备解析报文时造成干扰。

情况二:转发控制参数包括距离。

网络设备接收mdns应答报文之后可以获得mdns应答报文中的距离,可以确定该距离是否大于距离阈值,以确定是否转发mdns应答报文。

其中,距离可以表征mdns应答报文在网络中传输的距离。例如,如果在s22中,接入设备以数值的方式设计了新增的资源记录(即距离字段)中的资源数据的值,资源数据的值可以表征mdns应答报文在网络中传输的距离,那么,网络设备通过读取资源数据的值即可确定mdns应答报文的距离。

距离阈值可以是根据网络设备的转发区域所设置的阈值。可以认为,如果终端设备发送的mdns应答报文中的距离小于距离阈值,表明该终端设备处于网络设备的转发区域内,否则,表明终端设备处于网络设备的转发区域外。

若网络设备确定mdns应答报文中的距离大于距离阈值,则网络设备将放弃转发mdns应答报文。此时,如果网络设备中的通信端口包括终端侧端口及除接收mdns应答报文的端口之外的网络侧端口,则网络设备放弃转发mdns应答报文可以是指网络设备不向终端侧端口转发mdns应答报文,但会向接收mdns应答报文的端口之外的网络侧端口转发mdns应答报文,并且在转发mdns应答报文前,还将增加mdns应答报文中的距离,例如将mdns应答报文的距离字段中资源数据的值+1。或者,网络设备放弃转发mdns应答报文也可以是指网络设备放弃向除接收mdns应答报文的端口之外的所有端口转发,即不转发mdns应答报文,此时,网络设备也可丢弃mdns应答报文。

或者,若网络设备确定mdns应答报文中的距离小于等于距离阈值,且网络设备包括接收mdns应答报文的端口之外的网络侧端口,网络设备将增加mdns应答报文中的距离,以对mdns应答报文的距离进行累计,并向接收mdns应答报文的端口之外的网络侧端口转发mdns应答报文。

或者,若网络设备确定mdns应答报文中的距离小于等于距离阈值,且网络设备包括终端侧端口,则网络设备可以删除mdns应答报文中表示距离字段的资源记录,并向终端侧端口转发该mdns应答报文。

例如,若距离阈值为2,图1中的接入设备a1接收终端设备1发送的mdns应答报文,则接入设备a1在mdns应答报文中添加的距离字段的资源数据的值为1,获得mdns应答报文。接入设备a1将mdns应答报文转发给网络设备s1,网络设备s1接收mdns应答报文后,提取mdns应答报文的距离字段,确定距离小于距离阈值,此时网络设备s1将继续转发mdns应答报文。

其中,网络设备s1在将mdns应答报文向网络侧端口转发前,会对距离字段中资源数据的值进行一次累加,即,将距离字段中资源数据的值+1,更新为2,表明mdns应答报文传输的距离增大,将增加了资源数据的值的mdns应答报文向网络侧端口转。或者,网络设备s1在将mdns应答报文向终端侧端口转发前,将删除mdns应答报文中的距离字段。

作为一种示例,若网络设备确定mdns应答报文中的距离大于等于距离阈值,表明mdns应答报文在网络中传输的距离较大,发送mdns应答报文的终端设备可能处于转发区域之外。此时,网络设备可以放弃向终端侧端口或所有端口转发mdns应答报文,从而有效减轻网络传输报文的负担。同时,通过放弃转发距离大于距离阈值的报文,有助于减少终端设备以及其他网络设备的接收报文的数量,降低终端设备以及网络设备的工作负担。

网络设备通过对上述的两种情况的介绍可知,通过mdns应答报文中的转发控制参数可以实现对mdns应答报文在网络设备的位置相关的转发区域内的转发和扩散,使得网络中被转发的mdns应答报文均为由处于转发区域内的终端设备所发送的mdns应答报文,有效减少了网络中传输的由转发区域之外的终端设备所发送的mdns应答报文的数量,避免造成带宽的浪费。

当然,在不冲突的情况下,上述两种情况可结合使用。例如,转发控制参数包括设备标识和距离,那么,如果网络设备根据转发控制参数中距离确定放弃转发mdns应答报文,那么,在接收到新的mdns应答报文时,可以先查看该mdns应答报文中的设备标识与已放弃转发的mdns应答报文中的设备标识是否相同。若相同,则表明发送该新的mdns应答报文的终端设备处于转发区域之外,此时可以直接放弃转发mdns应答报文,而无需再进行其它判断。

进一步,本申请中,还可结合mdns应答报文中的服务类型和转发控制数据来实现对mdns应答报文的转发控制,包括但不仅限于以下方式:

方式二:mdns应答报文包括服务类型,mdns应答报文中的转发控制参数包括设备标识。

则网络设备可在存储的多个转发列表中选择对应于服务类型的转发列表,并查询选择的转发列表中是否包括mdns应答报文中的设备标识,从而确定是否放弃转发mdns应答报文,其中,转发列表包括至少一个网络设备的标识,该至少一个网络设备与提供服务类型的服务的终端设备连接。

也就是说,网络设备中可以存储有与不同服务类型对应的多个转发列表,每个转发列表中包括至少一个网络设备的标识,至少一个网络设备所连接的终端设备能够提供相同的服务类型的服务。例如,服务类型为打印类型,则打印类型对应的转发列表中每个标识对应的网络设备所连接的终端设备均能提供打印服务。那么,可以认为与至少一个网络设备相连的终端设备即为处于网络服务的位置相关的转发区域内的终端设备。

若网络设备确定对应于服务类型的转发列表中缺少设备标识,则网络设备可以放弃向终端侧端口转发mdns应答报文。

在该方式下,网络设备还可以根据mdns应答报文中的服务类型更新服务数据,服务数据包括网络设备中存储的多个服务类型中各个服务类型对应的一个或多个设备标识,服务数据中的与某个服务类型对应的一个或多个设备标识为提供该服务类型的服务的一个或多个终端设备的标识或为提供该服务类型的服务的终端设备所连接的一个或多个网络设备的标识,有助于实时了解提供各服务类型的服务的终端设备的变动。

例如,图1中,若网络设备s2中存储有与播放服务对应的转发列表,该转发列表中包括的网络设备的标识为(a1,s1,a2),其中,a1代表网络设备a1的标识,s1代表网络设备s1的标识,依此类推。且a1连接的终端设备1、s1连接的终端设备2以及a2连接的终端设备3均能提供播放服务。如果播放服务的服务数据为提供播放服务的终端设备的标识,例如可以包括(标识1,标识2,标识3),其中,标识1代表终端设备1的标识,标识2代表终端设备2的标识,依此类推。若网络设备s2接收到网络中新注册的终端设备4发送的mdns报文,该mdns报文表明终端设备所提供的服务类型是播放服务,且终端设备4与网络设备s3连接。此时,网络设备s2可以更新播放服务的服务数据。例如,将播放服务的服务数据中记录的终端设备的标识更新为(标识1,标识2,标识3,标识4)。或者,如果播放服务的服务数据为提供播放服务的终端设备所连接的网络设备的标识,例如为(a1,s1,a2),那么,也可以将服务数据中的网络设备的标识更新为(a1,s1,a2,s3)。理论上来说,服务数据中,终端设备的标识和网络设备的标识之间具有对应关系。

进一步,网络设备还可以根据更新后的终端设备的标识来更新播放服务的转发列表中的网络设备的标识,则更新后的转发列表仅包括更新后的服务数据中与网络设备相近的一个或多个终端设备所连接的网络设备的标识,或者更新后的转发列表仅包括更新后的服务数据中与网络设备相近的一个或多个网络设备的标识。

网络设备在根据更新后的服务数据对转发列表进行更新时,可以是将转发列表中的网络设备的标识更新为与接收mdns应答报文的网络设备最近的终端设备所连接的网络设备的标识,该相近的终端设备所连接的网络设备的标识可以是一个或者也可以是多个,如果只有一个,则该标识可以是与接收mdns应答报文的网络设备最近的终端设备所连接的网络设备的标识。

例如,继续上述的举例,若提供播放服务的终端设备1、终端设备2、终端设备3、终端设备4中与网络设备的位置最近的终端设备是终端设备4,最远的是终端设备1,那么,网络设备s2在根据更新服务数据后的服务数据更新转发列表时,可以将转发列表中原有的网络设备的标识更新为最近的终端设备所连接的网络设备的标识,则更新后的转发列表中包括的网络设备的标识可以是(s3)。或者,网络设备s2根据更新后的服务数据也可将转发列表中的网络设备的标识更新为多个网络设备的标识,例如更新为(a2,s3),或者为(s1,a2,s3),等等。其中,更新后的转发列表中的网络设备的标识的数量可以是预设的,或者也可以是在相近的终端设备所连接的网络设备中优选的多个网络设备的标识。

通过上述描述可知,网络设备通过根据接收的mdns应答报文中服务类型对服务类型的服务数据的更新,可实现对各服务类型对应的转发列表动态地更新,从而使得转发列表中网络设备的标识所表征的转发区域可随转发列表中网络设备的标识的变动而更新,有助于提高对报文转发的灵活性。

方式三:mdns应答报文包括服务类型,且mdns应答报文中的转发控制参数包括距离。

则网络设备可以根据mdns应答报文中的距离和服务类型更新服务数据,该方式中,服务数据可以包括多个服务类型中各个服务类型对应的一个或多个设备标识以及该一个或多个设备标识对应的距离,服务数据中的与服务类型对应的一个或多个设备标识为提供服务类型的服务的一个或多个终端设备的标识。设备标识对应的距离可以是指一个或多个网络设备连接的终端设备所发送的mdns应答报文到达网络设备时,需在网络中传输的距离,该距离可以用前述新增的资源记录(即距离字段)中资源数据的值来表征。

例如,如图1中,服务类型为播放服务时,播放服务对应的服务数据中的设备标识包括(标识1,标识2,标识3),其中,标识1代表终端设备1的标识,标识2代表终端设备2的标识,依此类推。设备标识对应的距离为(d1’,d2’,d3’),其中,d1’代表终端设备1对应的距离,d2’代表终端设备2对应的距离,依此类推。若网络设备s2接收到终端设备4发送的mdns应答报文,该mdns应答报文表明终端设备提供服务类型为播放服务,且终端设备4发送的mdns应答报文中距离为d4’。此时,网络设备s2可以更新播放服务的服务数据。例如,将播放服务的服务数据中记录的设备标识更新为(标识1,标识2,标识3,标识4),同时,还可将服务数据中设备标识对应的距离更新为(d1’,d2’,d3’,d4’)。

进一步,网络设备在确定终端设备是否处于网络设备的位置相关的转发区域外,并确定是否放弃转发接收的mdns应答报文时,网络设备可以确定服务数据的一个或多个设备标识中是否存在至少一个终端设备的标识对应的距离小于mdns应答报文中的距离。若存在,则网络设备放弃向终端侧端口转发mdns应答报文。例如,只要有任意一个终端设备对应的距离小于该mdns应答报文中的距离,如d1’<d4’,则网络设备放弃向终端侧端口转发mdns应答报文。或者,如果有2个或更多终端设备对应的距离小于该mdns应答报文中的距离,如d1’<d4’且d2’<d4’,则网络设备放弃向终端侧端口转发mdns应答报文。以及,若网络设备包括接收mdns应答报文的端口之外的网络侧端口,则网络设备放弃向终端侧端口转发mdns应答报文的同时,还可以对mdns应答报文中的距离进行一次累加,如将资源数据的值+1,并向接收mdns应答报文的端口之外的网络侧端口转发mdns应答报文。

或者,若mdns应答报文中的距离小于服务数据中全部终端设备的标识对应的距离,那么,网络设备可以继续转发mdns应答报文,例如网络设备可以向除接收mdns应答报文的端口之外的全部端口转发该mdns应答报文,并在转发前增加mdns应答报文中的距离,如将mdns应答报文中距离字段的数据资源的值+1。若该全部端口中包括终端侧端口,则在向终端侧端口转发mdns应答报文前可以删除mdns应答报文中的距离,避免在接收mdns应答报文的其他终端设备解析报文时造成干扰。

作为一种示例,若服务数据中的与服务类型对应的一个或多个设备标识为提供服务类型的服务的终端设备所连接的一个或多个网络设备的标识。例如,图1中提供播放服务的终端设备为终端设备1、终端设备2和终端设备3,播放服务对应的服务数据包括各终端设备所连接的网络设备的标识,即接入设备的标识,例如包括(a1,s1,a2),以及各接入设备的标识对应的距离,例如(d1,d2,d3)。那么,后续网络设备在更新服务数据时,可以是对服务数据中的接入设备的标识的更新。例如,网络设备s2接收到终端设备4发送的mdns应答报文,该mdns应答报文表明终端设备提供服务类型为播放服务,且终端设备4连接的网络设备为网络设备为s3,且该mdns应答报文中距离为d4,那么,更新的数据服务中网络设备的标识可以是(a1,s1,a2,s3),对应的距离可以是(d1,d2,d3,d4)。

进而,网络设备在确定终端设备是否处于网络设备的位置相关的转发区域外,并确定是否放弃转发接收的mdns应答报文时,可以是确定服务数据中与终端设备连接的网络设备的标识对应的距离是否小于mdns应答报文中的距离,进而根据判断结果确定是否放弃转发mdns应答报文。其判断及转发过程与前述方式二中根据终端设备的标识对应距离及mdns应答报文中的报文确定是否放弃转发mdns应答报文的过程一致,此处不再赘述。

或者,若网络设备中存储有与服务类型对应的转发列表,那么,在更新服务数据后,还可以根据更新后的服务数据对该服务类型对应的转发列表中的网络设备的标识进行更新,其更新过程与方式二中更新转发列表的方法可以相同,此处不再赘述。

通过上述方式二和方式三的描述可知,网络设备通过结合mdns应答报文中的多个参数来确定终端设备是否处于网络设备的位置相关的转发区域中,使得网络设备接收到提供各服务类型的服务的终端设备所发送的mdns应答报文后,能够按照服务类型更新各服务类型对应的服务数据,且网络设备根据更新后的服务数据,如根据网络设备的标识或终端设备的标识即可实时地调整与网络设备的位置相关的转发区域,进而确定终端设备是否处于网络设备的转发区域外,实现方式较为灵活、可靠,有助于提高网络设备对提供相应服务类型的服务的终端设备所发送的mdns应答报文的转发控制。

如图7所示,基于同一发明构思,本申请提供一种网络设备,该网络设备包括通信端口501和处理器502。

其中,通信端口501可以用于在终端设备与网络设备之间、以及网络设备与网络设备之间传输相应的数据,如报文。本申请中通信端口501可以包括网络侧端口和用户侧端口(图中未示出),其中,网络侧端口可以用于接收终端设备发送的组播域名系统mdns应答报文,并获取mdns应答报文中的转发控制参数,该转发控制参数与所述终端设备的位置相关。

可能的实施方式中,该网络设备还可以包括存储器503,均在图5中一并示出,因为存储器503不是必选器件,因此在图5中画为虚线框的形式,以与必选器件进行区分。存储器503的数量可以是一个或多个。存储器503可以包括只读存储器(rom)、随机存取存储器(ram)和磁盘存储器,等等。存储器503可以用于存储处理器502执行任务所需的程序代码,还可以用于存储数据。

其中,通信端口501和存储器503可以通过总线与处理器502相连接,或者也可以通过专门的连接线与处理器502连接。

处理器502进行设计编程,将前述所示的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述实施例中的所示的方法。如何对处理器502进行设计编程为本领域技术人员所公知的技术,这里不再赘述。

该网络设备可以用于执行上述图2所示的实施例所提供的方法,例如是接收mdns应答报文的网络设备。因此,对于该网络设备中的各功能单元所实现的功能等,可参考如前方法部分的描述,不多赘述。

如图8所示,本申请还提供一种网络设备,该网络设备包括获取模块601和处理模块602。

在实际应用中,获取模块601对应的实体设备可以是图7中的通信端口501,处理模块602对应的实体设备可以是图7中的处理器502。

本申请中的网络设备可以用于执行上述图2所述的方法,对于该网络设备中的各模块所实现的功能等,可参考如前方法部分的描述,在此不多赘述。

在上述实施例中,可以全部或部分地通过软件、硬件或者其组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、双绞线、光纤)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何介质或者是包含一个或多个介质集成的服务器、数据中心等数据存储设备。所述介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,光盘)、或者半导体介质(例如,固态硬盘(ssd))等。

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