CN101272351B - 一种报文处理的方法和交换机 - Google Patents
一种报文处理的方法和交换机 Download PDFInfo
- Publication number
- CN101272351B CN101272351B CN2008101065417A CN200810106541A CN101272351B CN 101272351 B CN101272351 B CN 101272351B CN 2008101065417 A CN2008101065417 A CN 2008101065417A CN 200810106541 A CN200810106541 A CN 200810106541A CN 101272351 B CN101272351 B CN 101272351B
- Authority
- CN
- China
- Prior art keywords
- message
- name
- list item
- host name
- address
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种报文处理的方法和交换机,能够在接收到名字登记报文后,判断自身是否已经存储包含所述名字登记报文所携带主机名的表项,如果否,则存储包含所述名字登记报文所携带主机名和IP地址的表项,并转发所述名字登记报文;如果是,则进一步判断所述名字登记报文所携带的IP地址是否与自身存储的包含所述主机名的表项中的IP地址相同,如果相同,则更新自身存储的所述表项的老化时间,丢弃所述名字登记报文。从而在交换机中已经存储有相应表项时,避免了该名字登记报文在网络中的广播,减少了网络中广播的报文数量,减轻了网络的负担。
Description
技术领域
本发明涉及网络通信技术,特别涉及一种报文处理的方法和交换机。
背景技术
网络基本输入/输出系统(NetBIOS,Network Basic Input/Output System)是一种局域网使用的传输协议接口,从功能上讲,NetBIOS可以看作是一组过程内通信服务,这些服务可以分为三类:名字服务、会话服务和数据报服务,本发明主要涉及其中的名字服务。
局域网中的各网络设备主要采用广播的方式发布自身的NetBIOS信息,例如,发布自身的主机名和IP地址,以及采用广播的方式查询其他主机的NetBIOS信息对其他主机进行名字解析。以图1所示的局域网组网结构为例,主机A登录后,会在该局域网中广播包含自身主机名和IP地址的名字登记报文,局域网中的交换机仅具有报文转发功能,即交换机A和交换机B将接收到的名字登记报文进行转发,其他主机即主机B、主机C和主机D接收到主机A的名字登记报文后,如果与自身的主机名不发生冲突,则存储主机A的主机名和IP地址信息,如果发生冲突,则在局域网中广播该主机名已被使用的消息,以便主机A以其他主机名进行重登录;并且,为了保证局域网中的各主机都能接收到该名字登记报文,进行登录的主机都会多次重复发送该名字登记报文。可以看出,这种方式会造成网络中广播了大量的报文,给网络造成了较重的负担。
发明内容
有鉴于此,本发明提供了一种报文处理方法和交换机,以便于减少网络中广播的报文数量,从而减轻网络的负担。
一种报文处理的方法,该方法应用于包含主机和交换机的局域网,该方法包括:
交换机接收到名字登记报文后,判断自身是否已经存储包含所述名字登记报文所携带主机名的表项,如果否,则存储包含所述名字登记报文所携带主机名和IP地址的表项,并转发所述名字登记报文;如果是,则进一步判断所述名字登记报文所携带的IP地址是否与自身存储的包含所述主机名的表项中的IP地址相同,如果相同,则更新自身存储的所述表项的老化时间,丢弃所述名字登记报文。
一种交换机,该交换机应用于包含主机和交换机的局域网,该交换机包括:报文接收单元、第一判断单元、表项处理单元、报文处理单元和第二判断单元;
所述报文接收单元,用于接收名字登记报文;
所述第一判断单元,用于判断所述表项处理单元中是否已经存储包含所述名字登记报文所携带主机名的表项,如果否,则向所述表项处理单元发送存储通知,并向所述报文处理单元发送第一转发通知;如果是,则向所述第二判断单元发送第一判断通知;
所述表项处理单元,用于接收到所述存储通知后,存储包含所述名字登记报文所携带主机名和IP地址的表项;接收到第一老化时间更新通知后,更新包含所述主机名的表项的老化时间;
所述报文处理单元,用于接收到所述第一转发通知后,转发所述名字登记报文;接收到第一丢弃通知后,丢弃所述名字登记报文;
所述第二判断单元,用于接收到所述第一判断通知后,判断所述名字登记报文所携带的IP地址是否与所述表项处理单元存储的包含所述主机名的表项中的IP地址相同,如果相同,则向所述表项处理单元发送第一老化时间更新通知,并向所述报文处理单元发送第一丢弃通知。
由以上技术方案可以看出,本发明提供的方法和交换机,能够在接收到名字登记报文后,判断自身是否已经存储包含所述名字登记报文所携带主机名的表项,如果否,则存储包含所述名字登记报文所携带主机名和IP地址的表项,并转发所述名字登记报文;如果是,则进一步判断所述名字登记报文所携带的IP地址是否与自身存储的包含所述主机名的表项中的IP地址相同,如果相同,则更新自身存储的所述表项的老化时间,丢弃所述名字登记报文。也就是说,在本发明中交换机不再仅仅具有报文转发功能,而是能够根据接收到的名字登记报文进行相应表项的存储,并根据接收到的报文和自身已存储的表项进行相应的报文处理功能,接收到名字登记报文后,如果自身已经存储有包含该名字登记报文所携带主机名和IP地址的表项,则丢弃该名字登记报文不再进行转发,从而避免了该名字登记报文在网络中的重复广播,减少了网络中广播的报文数量,减轻了网络的负担。
附图说明
图1为现有技术中的一种局域网组网结构图;
图2为本发明实施例提供的接收到名字登记报文时的方法流程图;
图3为本发明实施例提供的接收到名字查询报文时的方法流程图;
图4为本发明实施例提供的接收到主机名已被使用的报文时的方法流程图;
图5为本发明实施例提供的交换机结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供的方法主要包括:交换机接收到名字登记报文后,获取该名字登记报文中包含的主机名和IP地址,判断自身是否已经存储包含该主机名的表项,如果否,则存储包含该主机名和IP地址的表项,并转发该名字登记报文;如果是,则进一步判断该名字登记报文中包含的IP地址是否与自身存储的包含该主机名的表项中的IP地址相同,如果是,则更新自身存储的该表项的老化时间,丢弃所述名字登记报文。
下面对本发明所提供的方法进行详细描述,图2为本发明实施例提供的 接收到名字登记报文时的方法流程图,如图2所示,该方法可以包括以下步骤:
步骤201:交换机接收名字登记报文。
该名字登记报文中包含登录的主机名和该主机的IP地址。
步骤202:根据该名字登记报文中包含的主机名,判断自身是否已经存储包含该主机名的表项,如果否,执行步骤203;如果是,执行步骤204。
步骤203:将名字登记报文中包含的主机名和IP地址作为一条表项进行存储,并转发该名字登记报文,结束流程。
交换机中尚没有存储包含该主机名的表项,则在该交换机中新建一条关于该主机名和IP地址的表项。
步骤204:判断该名字登记报文中包含的IP地址是否与自身存储的表项中的IP地址相同,如果是,执行步骤205;否则,执行步骤206。
步骤205:更新该表项的老化时间,丢弃该名字登记报文,结束流程。
由于主机为了保证局域网中的设备接收到该名字登记报文,往往在局域网中重复多次发送该名字登记报文,因此,如果该交换机中存储的表项中的主机名和IP地址与名字登记报文中的相同,则说明已经进行了该主机的名字登记,不必再次广播该名字登记报文,所以,交换机可以在更新该名字登记报文的老化时间后,丢弃该名字登记报文。
步骤206:利用该自身存储的表项对应的入端口发送名字查询报文。
在表项中存在主机名,但是该表项中的IP地址与名字登记报文中的IP地址不同时,需要进一步验证自身存储的表项是否仍然有效,即是否仍有主机在使用,所以,利用存储的表项对应的入端口发送名字查询报文,该发送的名字查询报文中包含该主机名。
步骤207:接收返回的名字查询应答报文,根据所述名字查询应答报文判断上述存储的包含该主机名的表项是否有效,如果是,执行步骤208,否则,执行步骤209。
由于已经使用该主机名的主机接收到该名字查询报文后,会返回一个名 字查询应答报文,该名字查询应答报文中包含自身主机名和IP地址;或者,接收到名字查询报文的其他交换机,如果自身存储了包含该主机名的表项,也会代替主机返回名字查询报文,该名字查询报文中包含自身表项中的主机名和IP地址,其中,交换机接收到名字查询报文的操作在后续图3的流程中在做详细描述。
如果接收到的名字查询应答报文中包含的IP地址与该交换机中表项的IP地址相同,则该交换机中的表项仍有效,否则,该交换机中的表项无效。
步骤208:向接收该名字登记报文的入端口发送该主机名已被使用的报文,并丢弃该名字登记报文,结束流程。
如果交换机中的表项有效,说明已经有其他主机以该主机名进行登录,此时,交换机通过接收该名字登记报文的入端口发送该主机名已被使用的报文,该主机名已被使用的报文中包含该交换机表项中的主机名和IP地址。其他交换机接收到该主机名已被使用的报文后,可以按照图4所示的流程进行处理,并最终转发给发送该名字登记报文的主机,该主机接收到该主机名已被使用的报文后,可以采用其他主机名进行登录。
步骤209:利用名字登记报文中包含的主机名和IP地址更新自身存储的表项,并转发该名字登记报文,结束流程。
本步骤中,转发该名字登记报文时,和现有技术中一样,通过除了所述名字登记报文的入端口之外的其他端口转发该名字登记报文。
仍以图1所示的局域网架构为例,如果主机A登录,采用主机名PC_A进行登记,则在该局域网中广播包含PC_A和自身IP地址的名字登记报文,交换机A接收到该报文后,自身尚没有存在包含PC_A的表项,则以PC_A和主机A的IP地址建立表项,并转发该名字登记报文,交换机B执行同样操作,直至将该名字登记报文广播给主机B、主机C和主机D。为了保证局域网中的其他主机都能够接收到该报文,主机A往往会重复多次广播该名字登记报文,当主机A再次发送该名字登记报文时,交换机A中已经存储该表项,且表项内容与主机A的主机名和IP地址一致,因此,交换机A会 更新该表项的老化时间,并丢弃该名字登记报文,不再转发,从而减少了在该网络广播的名字登记报文。
如果主机A在登录时,主机C已经使用主机名PC_A进行登录,则交换机A和交换机B中已经建立了包含PC_A和主机C的IP地址的表项,所以,当交换机A接收到主机A的名字登记报文后,由于自身已经存在包含该主机名的表项,且IP地址与主机A的IP地址并不一致,此时,交换机A会以自身存储表项中主机C的IP地址发送名字查询报文,并根据接收到的名字查询应答报文确定自身存储的表项仍有效,因此,交换机A向主机A发送该主机名已被使用的报文,以便于主机A使用其他主机名进行登录。
另外,如果交换机接收名字查询应答报文,则也可以采用图2流程中对名字登记报文的方式对名字查询应答报文进行处理,只是在步骤205中,更新表项老化时间后,不是将名字查询应答报文丢弃,而是继续转发该名字查询应答报文。
在上述图2所示流程中提到交换机可能会接收到其他交换机发送的名字查询报文,另外,交换机也可能会接收到主机发送的名字查询报文,例如,主机A欲与主机B建立连接,但没有主机B的IP地址信息,则会在局域网中广播包含主机B的主机名的名字查询报文。下面对交换机接收到名字查询报文时的处理方法进行描述。图3为本发明实施例提供的接收到名字查询报文时的方法流程图,如图3所示,该方法可以包括以下步骤:
步骤301:交换机接收到名字查询报文时,根据该名字查询报文中包含的主机名查询自身存储的表项。
步骤302:判断自身是否存储包含该主机名的表项,如果是,执行步骤303,如果否,则执行步骤304。
步骤303:将自身存储的包含该主机名的表项中的IP地址携带在名字查询应答报文中进行回复,并将接收到的名字查询报文丢弃,结束流程。
如果自身存储有包含该主机名的表项,则针对该名字查询报文进行代答,不需要进一步转发至已经使用该主机名的主机,从而避免了该报文的进 一步广播。
步骤304:正常转发该名字查询报文。
仍以图1所示局域网架构为例,交换机B如果接收到交换机A发送的包含主机名PC_A的名字查询报文,则判断自身是否存在包含该主机名的表项,如果交换机B已经包含PC_A的表项,则直接将自身存储的该表项的内容包含在表项查询应答报文中回复给主机A。
如果已经登录的主机A要和主机C建立连接,但是尚没有主机C的IP地址,则主机A在局域网中广播包含主机C的名字查询报文,交换机A接收到该名字查询报文后,判断自身是否存在包含主机C的主机名的表项,由于主机C已经登录,因此,交换机A中已经存在包含主机C的主机名和IP地址的表项,则直接将该表项内容回复给主机A,并丢弃该名字查询报文,从而避免了该报文的进一步广播。
在上述图2所示流程中提到交换机可能会接收到其他交换机发送的主机名已被使用的报文,下面对交换机接收到主机名已被使用的报文时的处理方法进行描述。图4为本发明实施例提供的接收到主机名已被使用的报文时的方法流程图,如图4所示,该方法可以包括以下步骤:
步骤401:交换机接收到主机名已被使用的报文。
交换机接收到主机名已被使用的报文,说明该局域网中存在主机名冲突的现象,需要检查本交换机中存储的表项是否有效。
步骤402:判断该主机名已被使用的报文中包含的主机名和IP地址是否与自身存储的表项内容一致,如果是,执行步骤403,如果否,执行步骤404。
如果该主机名已被使用,则说明该局域网中的交换机中已经存在包含该主机名的表项,交换机判断该表项中的IP地址是否和该主机名已被使用的报文中包含的IP地址相同。
步骤403:更新自身存储的表项的老化时间,转发该主机名已被使用的报文,结束流程。
如果该主机名已被使用的报文中包含的主机名和IP地址与自身存储的表项内容一致,则说明该交换机中存储的该表项内容是有效的,仅需要更新该表项的老化时间,并正常转发该主机名已被使用的报文即可。
步骤404:删除自身存储的该表项,转发该主机名已被使用的报文。
如果该主机名已被使用的报文中包含的主机名和IP地址与自身存储的表项内容不一致,则说明该交换机中存储的该表项内容已经无效,则需要删除该无效的表项,并正常转发该主机名已被使用的报文。
至此,图4所示流程结束。
仍以图1所示局域网架构为例,由于交换机的表项老化时间不同,可能会导致交换机A存在包含PC_A的表项,而交换机B不存在包含PC_A的表项。此时,如果主机D同样采用PC_A的主机名进行登录,交换机B由于尚没有包含PC_A的表项,则会建立包含PC_A和主机D的IP地址的表项,并转发名字登记报文给交换机A,交换机A由于已经存在包含PC_A的表项,且IP地址不一致,并且,交换机A已经向主机A确认该表项有效,会向交换机B发送主机名已被使用的报文,该主机名已被使用的报文包含PC_A和主机A的IP地址。交换机B接收到该主机名已被使用的报文后,确定自身存储的包含PC_A的表项与该主机名已被使用的报文中的内容不一致,则删除自身存储的该表项,并转发该主机名已被使用的报文给主机D,以便主机D可以使用其他主机名重新进行登录。
从以上描述可以看出,交换机可能会接收到多种类型的NetBIOS报文,因此,交换机在接收到NetBIOS报文时,对接收到的NetBIOS报文进行解析,如果解析出接收到的是名字登记报文或名字查询应答报文,则执行图2所示的流程;如果解析出接收到的是名字查询报文,则执行图3所示的流程;如果解析出接收到的是主机名已被使用的报文,则执行图4所示的流程。另外,交换机还可能接收到其他形式的NetBIOS报文,相应的处理过程可以如下:
当主机退出登录时,会释放自身使用的主机名,此时,会在局域网中广 播包含自身主机名和IP地址的名字释放报文,交换机如果解析出接收到的是名字释放报文后,将自身存储的包含该主机名和IP地址的表项删除,并正常转发该名字释放报文。该转发与现有技术相同,采用除了该名字释放报文的入端口之外的其他端口转发该名字释放报文。
当交换机的端口从关闭状态到开启状态,为了检测自身存储的表项是否仍有效,则会通过该端口发送冲突检测报文,该冲突检测报文中包含该交换机所存储的表项内容;如果交换机解析出接收到的NetBIOS报文是冲突检测报文后,检测自身存储的表项中是否与冲突检测报文中的表项内容发生冲突,所谓发生冲突是指主机名相同但IP地址不同,如果发生冲突,则将自身发生冲突的表项删除,并向该表项所使用的入端口发送主机名已被使用的报文,该报文中包含冲突检测报文中包含的发生冲突的表项内容。通过这种方式将自身中检测到冲突的表项删除,并发送主机名已被使用的报文从而等待获取新的主机名,重新建立表项。
仍以图1所示架构为例,如果交换机A和交换机B之间的端口原先是关闭的,主机A和主机D分别在交换机A和交换机B中建立了关于PC_A主机名的表项,当交换机A和交换机B之间的端口开启后,会执行上述冲突检测机制,即交换机A和交换机B会相互发送包含自身存储表项内容的冲突检测报文,并检测到包含PC_A的表项发生冲突,则交换机A和交换机B会删除该表项,并分别向主机A和主机D发送该主机名已被使用的报文,以便主机A和主机D使用其他主机名重新进行登录。
对于其他NetBIOS报文,交换机不做处理,正常转发。
对于交换机中存储的表项都具有一定的老化时间,当到达老化时间时,将到达老化时间的表项删除。当交换机的端口关闭时,也可以删除与该端口对应的表项。
另外,为了防止局域网中发生主机恶意抢占主机名的现象,或者,为了保证比较重要的主机能够实现主机名和IP地址的绑定,可以将某些主机名和IP地址设置为静态表项存储在交换机中。可以预先在交换机中进行该静 态表项的设置,也可以在该主机发送名字登记报文或名字查询应答报文时,交换机将该主机的主机名和IP地址设置为静态表项。交换机在后续过程中不能够对该静态表项进行更新、老化和自动删除。从而,也可以实现基于该主机所使用端口的广播一致。
更进一步地,可以将设置为静态表项的表项作为认证模式,如果有其他非法主机采用该主机名进行登录,则将该非法主机所使用的端口设置为阻止(block)状态,阻止该端口报文的转发。即,如果交换机接收到名字登记报文或名字查询应答报文时,且该名字登记报文或名字查询应答报文中包含的IP地址与自身存储的包含该主机名的静态表项中的IP地址不同,则将该名字登记报文或名字查询应答报文的入端口设置为block状态,只有在主机名和IP地址与该静态表项中的内容一致时,才允许报文通过。可以实现基于端口的主机名和IP地址安全绑定。
另外,本发明也可以结合网际名字服务(WINS,Windows Internet NameServer)和域名服务器(DNS,Domain Name Server)中继代理功能,在网络中设置WINS服务器,该WINS服务器可以跨网段设置,即一个WINS服务器可以对多个局域网的名字服务进行管理。本发明可以在交换机中配置该WINS服务器的地址,在接收到名字登记报文后将该名字登记报文发送到WINS服务器进行名字登记,因此,该WINS服务器中会保存所有主机的主机名和IP地址的表项。交换机可以将该WINS服务器的地址设置为固定的查询地址,即在交换机接收到名字查询报文后,如果自身没有存储包含该主机名的表项,则直接向WINS服务器查询包含该主机名的表项,并将该查询到的包含该主机名的表项通过名字查询应答报文回复给该主机,该方法更加能够减少局域网中广播的报文数量,并且不需要在各个主机上配置WINS服务器地址。
以上是对本发明的方法进行的描述,下面对本发明提供的交换机进行详细描述。图5为本发明实施例提供的交换机结构图,如图5所示,该交换机可以包括:报文接收单元500、第一判断单元501、表项处理单元502、报 文处理单元503和第二判断单元504。
报文接收单元500,用于接收名字登记报文。
第一判断单元501,用于判断表项处理单元502中是否已经存储包含名字登记报文所携带主机名的表项,如果否,则向表项处理单元502发送存储通知,并向报文处理单元503发送第一转发通知;如果是,则向第二判断单元504发送第一判断通知。
表项处理单元502,用于接收到存储通知后,存储包含名字登记报文所携带主机名和IP地址的表项;接收到第一老化时间更新通知后,更新包含主机名的表项的老化时间。
报文处理单元503,用于接收到第一转发通知后,转发名字登记报文;接收到第一丢弃通知后,丢弃名字登记报文。
第二判断单元504,用于接收到第一判断通知后,判断名字登记报文所携带的IP地址是否与表项处理单元502存储的包含主机名的表项中的IP地址相同,如果相同,则向表项处理单元502发送第一老化时间更新通知,并向报文处理单元503发送第一丢弃通知。
另外,该交换机还可以包括:查询报文发送单元505、第三判断单元506和占用报文发送单元507。
第二判断单元504,还用于在确定名字登记报文中包含的IP地址与表项处理单元存储的包含主机名的表项中的IP地址不同时,向查询报文发送单元505发送第一触发通知。
查询报文发送单元505,用于接收到第一触发通知后,以表项处理单元502存储的包含主机名的表项中的IP地址为目的地址,发送包含主机名的名字查询报文。
报文接收单元500,还用于接收名字查询应答报文。
第三判断单元506,用于根据名字查询应答报文判断表项处理单元502存储的表项是否有效,如果有效,则向占用报文发送单元507发送第二触发通知,向报文处理单元503发送第一丢弃通知;如果无效,则向表项处理单元502发 送更新通知,并向报文处理单元503发送第一转发通知。
占用报文发送单元507,用于接收到第二触发通知后,向接收名字登记报文的入端口发送主机名已被使用的报文。
表项处理单元502,还用于接收到更新通知后,利用名字登记报文所携带主机名和IP地址更新自身存储的包含该主机名的表项。
其中,上述报文接收单元500包括:报文接收子单元5001和报文解析子单元5002。
报文接收子单元5001,用于接收NetBIOS报文。
报文解析子单元5002,用于对接收到的NetBIOS报文进行解析,如果接收到的NetBIOS报文是名字登记报文,则将该名字登记报文提供给第一判断单元501。
报文解析子单元5002,还可以用于接收到名字查询应答报文时,将该名字查询应答报文提供给第一判断单元501。
第一判断单元501,还用于接收到名字查询应答报文后,判断表项处理单元502中是否已经存储包含该名字查询应答报文所携带主机名的表项,如果否,则向表项处理单元502发送存储通知,并向报文处理单元503发送第一转发通知;如果是,则向第二判断单元504发送第二判断通知。
表项处理单元502,用于接收到存储通知后,存储包含名字查询应答报文所携带主机名和IP地址的表项;接收到第一老化时间更新通知后,更新包含该名字查询应答报文所携带主机名的表项的老化时间。
报文处理单元503,还用于接收到第一转发通知后,转发该名字登记报文。
第二判断单元504,用于接收到第二判断通知后,判断所述名字查询应答报文所携带的IP地址是否与表项处理单元502存储的包含该名字查询应答报文所携带主机名的表项中的IP地址相同,如果相同,则向表项处理单元502发送第一老化时间更新通知,并向报文处理单元503发送第一转发通知。
第二判断单元504,还可以用于在确定该名字查询应答报文中包含的IP地址与表项处理单元502存储的包含名字查询应答报文所携带主机名的表项中的 IP地址不同时,向查询报文发送单元505发送第一触发通知。
查询报文发送单元505,用于接收到第一触发通知后,利用表项处理单元502存储的包含名字查询应答报文所携带主机名的表项对应的入端口,发送包含该主机名的名字查询报文。
报文接收单元500,还用于接收通过所述入端口发送的名字查询应答报文;
第三判断单元506,用于根据通过该入端口接收到的名字查询应答报文判断表项处理单元502存储的该表项是否有效,如果有效,则向占用报文发送单元507发送第二触发通知,向报文处理单元503发送第一丢弃通知;如果无效,则向表项处理单元502发送更新通知,并向报文处理单元503发送第一转发通知。
占用报文发送单元507,用于接收到第二触发通知后,发送主机名已被使用的报文。
表项处理单元502,还用于接收到更新通知后,利用名字查询应答报文所携带主机名和IP地址更新自身存储的所述包含该主机名的表项。
该交换机还可以包括:第四判断单元508和应答报文发送单元509。
报文解析子单元5002,还用于在接收到的NetBIOS报文是名字查询报文时,则将该名字查询报文提供给第四判断单元508。
第四判断单元508,用于判断表项处理单元502中是否已经存储包含名字查询报文所携带主机名的表项,如果是,则向应答报文发送单元509发送第三触发通知,并向报文处理单元503发送第二丢弃通知。
应答报文发送单元509,用于接收到第三触发通知后,将表项处理单元502中存储的包含名字查询报文所携带主机名的表项携带在名字查询应答报文中进行回复。
报文处理单元503,还用于接收到第二丢弃通知后,丢弃名字查询报文。
该交换机还可以包括:第五判断单元510。
报文解析子单元5002,还用于在接收到的NetBIOS报文是主机名已被使用的报文时,则将该主机名已被使用的报文提供给第五判断单元510。
第五判断单元510,用于查找表项处理单元502存储的与主机名已被使用的报文具有相同主机名的表项,并判断主机名已被使用的报文中包含的表项内容是否与查找到的表项内容一致,如果是,则向表项处理单元502发送第二老化时间更新通知,并向报文处理单元503发送第三转发通知;如果否,则向表项处理单元502发送第一删除通知,并向报文处理单元503发送第三转发通知。
表项处理单元502,还用于接收到第二老化时间更新通知后,更新查找到的表项的老化时间;接收到第一删除通知后,删除查找到的表项。
报文处理单元503,还用于接收到第三转发通知后,转发主机名已被使用的报文。
另外,上述报文解析子单元5002,还用于在接收到的NetBIOS报文是名字释放报文时,则将该名字释放报文所携带主机名提供给表项处理单元502。
表项处理单元502,还用于删除包含名字释放报文所携带主机名的表项。
报文处理单元503,还用于转发名字释放报文。
该交换机还可以包括:检测报文发送单元511和第六判断单元512。
检测报文发送单元511,用于在该交换机的端口从关闭状态到开启状态时,通过端口发送包含表项处理单元502存储的表项内容的冲突检测报文。
报文解析子单元5002,还用于在接收到的NetBIOS报文是冲突检测报文时,将该冲突检测报文提供给第六判断单元512。
第六判断单元512,还用于判断表项处理单元502中是否存在与接收到的冲突检测报文中包含的主机名相同但IP地址不同的表项,如果存在,则向表项处理单元502发送第二删除通知,并向占用报文发送单元507发送第四触发通知。
表项处理单元502,还用于接收到第二删除通知后,删除与接收到的冲突检测报文中包含的主机名相同但IP地址不同的表项。
占用报文发送单元507,用于接收到第四触发通知后,发送包含冲突检测报文所携带主机名的主机名已被使用的报文。
该交换机还可以包括:第七判断单元514,用于接收第一判断单元501发 送的存储通知,并判断发送名字登记报文或名字查询应答报文的主机是否为特定主机,如果是,则在存储通知中携带设置静态表项的指示发送给表项处理单元502。
表项处理单元502,还用于在接收到的存储通知中携带设置静态表项的指示时,将名字登记报文或名字查询应答报文所携带主机名和IP地址的表项设置为静态表项。
该交换机还包括:状态设置单元515。
第二判断单元504,还用于在确定名字登记报文或名字查询应答报文所携带的IP地址与表项处理单元存储的包含主机名的静态表项中的IP地址不相同时,向状态设置单元515发送阻止通知。
状态设置单元515,用于接收到阻止通知后,将名字登记报文或名字查询应答报文的入端口设置为block状态。
另外,该交换机还可以包括:WINS查询单元516。
报文处理单元503,还用于在转发名字登记报文的同时,按照预设在该交换机中的WINS服务器地址,将名字登记报文发送给WINS服务器,供WINS服务器存储名字登记报文中包含的主机名和IP地址。
第四判断单元508,还用于在确定表项处理单元502中没有存储包含名字查询报文所携带主机名的表项时,向WINS查询单元516发送查询通知。
WINS查询单元516,用于接收到查询通知后,根据预设在该交换机中的WINS服务器地址,向WINS服务器查询名字查询报文所携带主机名对应的IP地址,并向应答报文发送单元509发送第五触发通知。
应答报文发送单元509,还用于接收到第五触发通知后,将WINS查询单元516获取到的IP地址携带在名字查询应答报文中通过名字查询报文的入端口进行回复。
由以上描述可以看出,本发明提供的方法和交换机,能够在接收到名字登记报文后,判断自身是否已经存储包含所述名字登记报文所携带主机名的表项,如果否,则存储包含所述名字登记报文所携带主机名和IP地址的表 项,并转发所述名字登记报文;如果是,则进一步判断所述名字登记报文所携带的IP地址是否与自身存储的包含所述主机名的表项中的IP地址相同,如果相同,则更新自身存储的所述表项的老化时间,丢弃所述名字登记报文。也就是说,在本发明中交换机不再仅仅具有报文转发功能,而是能够根据接收到的名字登记报文进行相应表项的存储,并根据接收到的报文和自身已存储的表项进行相应的报文处理功能,接收到名字登记报文后,如果自身已经存储有包含该名字登记报文所携带主机名和IP地址的表项,则丢弃该名字登记报文不再进行转发,从而避免了该名字登记报文在网络中的广播,减少了网络中广播的报文数量,减轻了网络的负担。
更进一步地,在本发明中还提供了交换机接收到多种不同类型的NetBIOS报文时执行的相应操作,例如名字查询报文、主机名已被使用的报文、名字释放报文、冲突检测报文等,这些操作更进一步减少了网络中广播报文的数量,减轻了网络的负担。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种报文处理的方法,其特征在于,该方法应用于包含主机和交换机的局域网,该方法包括:
交换机接收到名字登记报文后,判断自身是否已经存储包含所述名字登记报文所携带主机名的表项,如果否,则存储包含所述名字登记报文所携带主机名和IP地址的表项,并转发所述名字登记报文;如果是,则进一步判断所述名字登记报文所携带的IP地址是否与自身存储的包含所述主机名的表项中的IP地址相同,如果相同,则更新自身存储的所述表项的老化时间,丢弃所述名字登记报文。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:如果所述交换机确定所述名字登记报文所携带的IP地址与自身存储的包含所述主机名的表项中的IP地址不相同,则利用所述自身存储的包含所述主机名的表项所对应的入端口,发送包含所述主机名的名字查询报文,并根据返回的名字查询应答报文确定自身存储的所述表项是否有效,如果有效,则向接收该名字登记报文的入端口发送主机名已被使用的报文,并丢弃所述名字登记报文;如果无效,则利用所述名字登记报文中包含的主机名和IP地址更新自身存储的所述表项,并转发所述名字登记报文。
3.根据权利要求2所述的方法,其特征在于,所述根据返回的名字查询应答报文确定自身存储的所述表项是否有效包括:如果所述名字查询应答报文中包含的IP地址与交换机存储的所述表项中的IP地址相同,则确定所述表项有效,否则,确定所述表项无效。
4.根据权利要求1或2所述的方法,其特征在于,该方法还包括:如果交换机中存储了主机名和IP地址对应的表项,当接收到针对该主机名的名字查询报文时,将自身存储的包含该主机名的表项中的IP地址携带在名字查询应答报文中进行回复,并将接收到的所述名字查询报文丢弃。
5.根据权利要求1或2所述的方法,其特征在于,该方法还包括:当交换机中存储了主机名和IP地址对应的表项后收到主机名已被使用的报文,则所述交换机在自身所存储表项中查找与所述主机名已被使用的报文所携带主机名相同的表项,并判断所述主机名已被使用的报文中包含的表项内容是否与自身存储的该表项内容一致,如果是,则更新所述自身存储的表项的老化时间,转发所述主机名已被使用的报文;否则,删除所述自身存储的表项内容,并转发所述主机名已被使用的报文。
6.根据权利要求1或2所述的方法,其特征在于,该方法还包括:如果所述交换机的端口从关闭状态到开启状态,则通过所述端口发送包含自身所存储表项内容的冲突检测报文;
接收到冲突检测报文的交换机检测自身存储的表项中是否存在与所述冲突检测报文中包含的主机名相同但IP地址不同的表项,如果存在,则将自身存储的该表项删除,并利用该删除表项所对应的入端口发送包含该表项中主机名的主机名已被使用的报文。
7.一种交换机,其特征在于,该交换机应用于包含主机和交换机的局域网,该交换机包括:报文接收单元、第一判断单元、表项处理单元、报文处理单元和第二判断单元;
所述报文接收单元,用于接收名字登记报文;
所述第一判断单元,用于判断所述表项处理单元中是否已经存储包含所述名字登记报文所携带主机名的表项,如果否,则向所述表项处理单元发送存储通知,并向所述报文处理单元发送第一转发通知;如果是,则向所述第二判断单元发送第一判断通知;
所述表项处理单元,用于接收到所述存储通知后,存储包含所述名字登记报文所携带主机名和IP地址的表项;接收到第一老化时间更新通知后,更新包含所述主机名的表项的老化时间;
所述报文处理单元,用于接收到所述第一转发通知后,转发所述名字登记报文;接收到第一丢弃通知后,丢弃所述名字登记报文;
所述第二判断单元,用于接收到所述第一判断通知后,判断所述名字登记报文所携带的IP地址是否与所述表项处理单元存储的包含所述主机名的表项中的IP地址相同,如果相同,则向所述表项处理单元发送第一老化时间更新通知,并向所述报文处理单元发送第一丢弃通知。
8.根据权利要求7所述的交换机,其特征在于,该交换机还包括:查询报文发送单元、第三判断单元和占用报文发送单元;
所述第二判断单元,还用于在确定所述名字登记报文中包含的IP地址与所述表项处理单元存储的包含所述主机名的表项中的IP地址不同时,向所述查询报文发送单元发送第一触发通知;
所述查询报文发送单元,用于接收到所述第一触发通知后,利用所述表项处理单元存储的包含所述主机名的表项所对应的入端口,发送包含所述主机名的名字查询报文;
所述报文接收单元,还用于接收名字查询应答报文;
所述第三判断单元,用于根据所述名字查询应答报文判断所述表项处理单元存储的所述表项是否有效,如果有效,则向占用报文发送单元发送第二触发通知,向所述报文处理单元发送第一丢弃通知;如果无效,则向所述表项处理单元发送更新通知,并向所述报文处理单元发送第一转发通知;
所述占用报文发送单元,用于接收到所述第二触发通知后,向接收所述名字登记报文的入端口发送主机名已被使用的报文;
所述表项处理单元,还用于接收到更新通知后,利用所述名字登记报文所携带主机名和IP地址更新自身存储的所述包含该主机名的表项。
9.根据权利要求7或8所述的交换机,其特征在于,该交换机还包括:报文解析单元、第四判断单元和应答报文发送单元;
所述报文解析单元,用于在确定所述报文接收单元接收到的NetBIOS报文是名字登记报文时,将接收到的名字登记报文提供给所述第一判断单元,在确定所述报文接收单元接收到的NetBIOS报文是名字查询报文时,将该名字查询报文提供给所述第四判断单元;
所述第四判断单元,用于判断所述表项处理单元中是否已经存储包含所述名字查询报文所携带主机名的表项,如果是,则向所述应答报文发送单元发送第三触发通知,并向所述报文处理单元发送第二丢弃通知;
所述应答报文发送单元,用于接收到所述第三触发通知后,将所述表项处理单元中存储的包含所述名字查询报文所携带主机名的表项携带在名字查询应答报文中进行回复;
所述报文处理单元,还用于接收到所述第二丢弃通知后,丢弃所述名字查询报文。
10.根据权利要求7或8所述的交换机,其特征在于,该交换机还包括:报文解析单元和第五判断单元;
所述报文解析单元,还用于在确定所述报文接收单元接收到的NetBIOS报文是名字登记报文时,将接收到的名字登记报文提供给所述第一判断单元,在确定所述报文接收单元接收到的NetBIOS报文是主机名已被使用的报文时,将该主机名已被使用的报文提供给所述第五判断单元;
所述第五判断单元,用于查找所述表项处理单元存储的与所述主机名已被使用的报文具有相同主机名的表项,并判断所述主机名已被使用的报文中包含的表项内容是否与所述查找到的表项内容一致,如果是,则向表项处理单元发送第二老化时间更新通知,并向所述报文处理单元发送第三转发通知;如果否,则向所述表项处理单元发送第一删除通知,并向所述报文处理单元发送第三转发通知;
所述表项处理单元,还用于接收到第二老化时间更新通知后,更新所述查找到的表项的老化时间;接收到所述第一删除通知后,删除所述查找到的表项;
所述报文处理单元,还用于接收到第三转发通知后,转发所述主机名已被使用的报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101065417A CN101272351B (zh) | 2008-05-14 | 2008-05-14 | 一种报文处理的方法和交换机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101065417A CN101272351B (zh) | 2008-05-14 | 2008-05-14 | 一种报文处理的方法和交换机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101272351A CN101272351A (zh) | 2008-09-24 |
CN101272351B true CN101272351B (zh) | 2011-08-17 |
Family
ID=40006047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101065417A Expired - Fee Related CN101272351B (zh) | 2008-05-14 | 2008-05-14 | 一种报文处理的方法和交换机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101272351B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103391257A (zh) * | 2012-05-08 | 2013-11-13 | 阿里巴巴集团控股有限公司 | 一种报文存储、转发方法、装置及系统 |
CN102664973B (zh) * | 2012-05-14 | 2015-03-18 | 浙江宇视科技有限公司 | 一种更新ip地址的方法和装置 |
CN102710805B (zh) * | 2012-05-14 | 2015-10-14 | 浙江宇视科技有限公司 | 一种更新ip地址的方法和装置 |
CN104914745B (zh) * | 2012-10-24 | 2017-12-05 | 青岛海信宽带多媒体技术有限公司 | 控制示波器的方法及系统 |
CN109587084A (zh) * | 2015-12-30 | 2019-04-05 | 华为技术有限公司 | 一种报文存储转发方法和电路及设备 |
CN106254245A (zh) * | 2016-07-29 | 2016-12-21 | 杭州迪普科技有限公司 | 一种管理表项的方法及装置 |
CN109861916B (zh) * | 2018-10-31 | 2021-08-31 | 深圳向云科技有限公司 | 一种数据处理方法及相关设备 |
-
2008
- 2008-05-14 CN CN2008101065417A patent/CN101272351B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101272351A (zh) | 2008-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101272351B (zh) | 一种报文处理的方法和交换机 | |
Nam et al. | Enhanced ARP: preventing ARP poisoning-based man-in-the-middle attacks | |
US7756140B2 (en) | Relay device, path control method, and path control program | |
EP2940970B1 (en) | Nat implementation system, method, and openflow switch | |
CN101326771B (zh) | 操作虚拟网络的方法和设备以及数据网络系统 | |
KR101058625B1 (ko) | 중계장치, 통신방법 및 기록매체 | |
CN101816168B (zh) | Vrrp和学习网桥cpe | |
CN101026589A (zh) | 一种路由选择的方法和路由器 | |
CN103166864A (zh) | 一种私网vlan信息管理方法和设备 | |
MXPA04005733A (es) | Metodo y aparato para configurar en forma adaptable un enrutador. | |
CN100353717C (zh) | 一种针对互联网协议的安全访问控制方法 | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands | |
Cisco | DECnet Commands |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110817 Termination date: 20200514 |