CN100474833C - 数据通信负荷分散控制、负荷分散数据发送方法及装置 - Google Patents

数据通信负荷分散控制、负荷分散数据发送方法及装置 Download PDF

Info

Publication number
CN100474833C
CN100474833C CNB038263017A CN03826301A CN100474833C CN 100474833 C CN100474833 C CN 100474833C CN B038263017 A CNB038263017 A CN B038263017A CN 03826301 A CN03826301 A CN 03826301A CN 100474833 C CN100474833 C CN 100474833C
Authority
CN
China
Prior art keywords
mentioned
data
computer
communication
decentralized
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
Application number
CNB038263017A
Other languages
English (en)
Other versions
CN1765084A (zh
Inventor
千叶正博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN1765084A publication Critical patent/CN1765084A/zh
Application granted granted Critical
Publication of CN100474833C publication Critical patent/CN100474833C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

能够在与不具有中继功能的交换集线器之间进行灵活性高的中继。计算机(1)生成分散算法通知数据包(4),该分散算法通知数据包(4)含有多个通信接口(1a)、(1b)、(1c)、(1d)的物理地址以及使通信对象计算机发送到计算机(1)处的数据分散到多个通信接口时的分散算法(步骤S1),并发送到计算机(3)(步骤S2)。计算机(3)根据所通知的分散算法确定应是向计算机(1)发送的发送数据(5)的发送目的地的通信接口,指定该通信接口的物理地址作为发送目的地,把发送数据(5)发送。

Description

数据通信负荷分散控制、负荷分散数据发送方法及装置
技术领域
本发明涉及通过多重化的传送路径进行数据通信时的数据通信负荷分散控制程序、以及数据负荷分散控制方法,特别是涉及使用了中继的数据通信负荷分散控制程序、以及数据负荷分散控制方法。
背景技术
作为实现多个装置间的通信的宽带化的方法之一就是中继。所谓中继,就是将装置间用多个传送路径连接。而且,在各装置中,将与多个传送路径分别连接的网络接口卡(NIC),逻辑上作为1个LAN端口来使用。由此,能够提高装置间的传送频带。
图21是表示现有的中继系统的构成例的图。现有的中继系统由计算机910、交换集线器920、以及对象侧计算机930、940、950、960构成。
计算机910具有应用程序911、中继机构部912、NIC913~916。应用程序911具有与对象侧计算机930、940、950、960进行通信,进行各种数据处理的处理功能。中继机构部912将多个NIC913~916视为1个LAN端口而进行与交换集线器920之间的通信。另外,中继机构部912具有设定了多个NIC913~916的MAC(Media Access Control:媒体访问控制)地址和各NIC913~916共有的IP(Internet Protocol:网际协议)地址的构成信息912a。
NIC913~916分别通过各自的传送路径与交换集线器920连接,与交换集线器920间进行数据通信。
交换集线器920,8个LAN端口中的4个与计算机910的NIC913~916连接。其他4个LAN端口与对象侧计算机930、940、950、960连接。
另外,交换集线器920具有中继对应部921。中继对应部921具有存储了向各LAN端口连接的连接对象的IP地址等的信息的构成信息921a。
在这样的构成的系统里,能够在计算机910与交换集线器920之间进行中继。即计算机910使用多重化了的NIC913~916生成1个逻辑NIC。而计算机910通过逻辑NIC进行数据的发送接收。
交换集线器920把从计算机910发送来的数据向对象侧计算机930、940、950、960发送。另外,交换集线器920把从对象侧计算机930、940、950、960发送来的数据,由中继对应部921分配给与计算机910连接的LAN端口的其中一个,通过该LAN端口向计算机910发送数据。
由此,能够扩大计算机910与交换集线器920之间的数据通信频带。
另外,不通过具有中继对应部921的交换集线器920,也能够进行多个LAN端口的负荷分散控制。例如,具有多个LAN(Local Area Network:局域网)适配器的主计算机,向通信对象通知任意的LAN适配器的物理地址。通信对象指定被通知的物理地址,把数据发送到主计算机。由此,能够把从多个通信对象发送来的数据向多个LAN适配器进行负荷分散来进行接收(例如参照专利文献1)。
专利文献1:JP特开平7—245619号公报(图1)。
可是,在现有的方式中,基本上计算机与交换集线器若不是都具有中继功能就不能连接,适用条件被限定了。并且,在交换集线器与计算机之间,必须使所使用的NIC数、端口数、分散算法一致而进行设定,因为实行中继用的专用MAC地址也必须定义,所以设定繁琐而使用户容易出错。
还有,想要增减所使用的NIC数时,为了变更上记设定信息,若不暂时中断通信就不能进行交换集线器侧的设定。因此,设定变更成为使系统的实际工作效率低下的主要原因。
另外,只使用不具有中继功能的交换集线器来实现中继功能时,虽然通过在计算机间交换IP地址或MAC地址的信息等手段,能够确定所使用的NIC,但是通过仅地址信息的交换的话,分散算法会被限定了。例如,在通信对象装置是1台时,存在只使用特定的NIC而不能分散的问题。
发明的公开
本发明是鉴于这样的问题点而完成的,其目的在于提供一种能够与不具有中继功能的交换集线器之间进行灵活性高的中继的计算机。
本发明中为了解决上述问题,提供了图1所示这样的数据通信负荷分散控制程序。本发明的数据通信负荷分散控制程序,实现了使在能够安装多个通信接口1a、1b、1c、1d的计算机中的传送路径的通信负荷分散用的数据通信负荷分散控制部1e的功能。基于该数据通信负荷分散控制程序,计算机1进行以下的处理。
计算机1生成分散算法通知数据包4,该分散算法通知数据包4含有使多个通信接口1a、1b、1c、1d的物理地址、以及通信对象的计算机3向计算机1处发送的数据分散到多个通信接口1a、1b、1c、1d时的分散算法(步骤S1)。而计算机1对通过网络连接的通信对象计算机发送分散算法通知数据包(步骤S2)。
由此,把安装在计算机1上的多个通信接口1a、1b、1c、1d的物理地址通知其他计算机3,能够指定负荷分散算法。
另外,为了解决上述问题,提供了如图1所示的负荷分散数据发送程序。本发明的负荷分散数据发送程序,实现了使到达能够安装多个通信接口1a、1b、1c、1d的通信对象的计算机1的传送路径的通信负荷分散用的负荷分散发送部3b的功能。基于该负荷分散数据发送程序,计算机3进行以下处理。
计算机3当接收到含有使多个通信接口1a、1b、1c、1d的物理地址、以及向计算机1处发送的数据分散到多个通信接口1a、1b、1c、1d时的分散算法的分散算法通知数据包4时,把多个通信接口1a、1b、1c、1d的物理地址和分散算法存储到数据表3c中。接下来,计算机3根据分散算法来确定应是对通信对象计算机发送的发送数据5的发送目的地的通信接口。还有,计算机3指定被确定为发送目的地的通信接口的物理地址为发送目的地,将发送数据5发送。
由此,从计算机3向通信对象计算机发送的发送数据5,通过由分散算法通知数据包4指定的分散算法,将负荷向分别通过了多个通信接口1a、1b、1c、1d的传送路径分散而进行发送。
另外,为了解决上述问题,提供一种数据通信负荷分散控制方法,是用于使在能够安装多个通信接口的计算机中的传送路径的通信负荷分散的数据通信负荷分散控制方法,执行这样的处理:生成含有使上述多个通信接口的物理地址、以及通信对象计算机向上述计算机处发送的数据分散到上述多个通信接口时的分散算法的分散算法通知数据包,对通过网络连接的上述通信对象计算机发送上述分散算法通知数据包。
根据这样的数据通信负荷分散控制方法,把安装在计算机上的多个通信接口的物理地址通知给其他的计算机,能够指定负荷分散算法。
本发明的上述以及其他的目的、特征以及优点,通过表示作为本发明的例子而优选的实施形式的与附图相关联的以下说明可以明确。
本发明的数据通信负荷分散控制方法,用于使能够安装多个通信接口的计算机中的传送路径的通信负荷分散,上述数据通信负荷分散控制程序方法的特征在于,使上述计算机执行下述步骤:生成分散算法通知数据包的步骤,上述分散算法通知数据包包含有使上述多个通信接口的物理地址、以及通信对象计算机发送到上述计算机处的数据分散到上述多个通信接口时的分散算法;对通过网络连接的上述通信对象计算机发送上述分散算法通知数据包的步骤。
本发明的负荷分散数据发送方法,用于使直到能够安装多个通信接口的通信对象计算机的传送路径的通信负荷分散,上述负荷分散数据发送方法的特征在于,使计算机执行以下步骤:当接收包含有使上述多个通信接口的物理地址、以及发送到上述通信对象计算机处的数据分散到上述多个通信接口情况下的分散算法的分散算法通知数据包时,把上述多个通信接口的物理地址和上述分散算法存储到数据表中的步骤;根据上述分散算法,确定成为对于上述通信对象计算机发送的发送数据的发送目的地的上述通信接口的步骤;将被确定为发送目的地的上述通信接口的上述物理地址作为发送目的地地址而指定,发送上述发送数据的步骤。
本发明的数据通信负荷分散方法,用于使直到能够安装多个通信接口的通信对象计算机为止的传送路径的通信负荷分散,上述数据通信负荷分散方法的特征在于,执行以下处理:当接收包含有使上述多个通信接口的物理地址、以及发送到上述通信对象计算机处的数据分散到上述多个通信接口的情况下的分散算法的分散算法通知数据包时,把上述多个通信接口的物理地址和上述分散算法存储到数据表中;根据上述分散算法,确定成为对于上述通信对象计算机发送的发送数据的发送目的地的上述通信接口;将被确定为发送目的地的上述通信接口的上述物理地址作为发送目的地地址而指定,对上述通信对象计算机发送上述发送数据。
本发明的数据通信负荷分散控制装置,使经由所安装的多个通信接口的通信负荷分散,上述数据通信负荷分散控制装置的特征在于,包括:数据包生成装置,其生成分散算法通知数据包,上述分散算法通知数据包包含有使上述多个通信接口的物理地址、以及从通信对象计算机发送的数据分散到上述多个通信接口的情况下的分散算法;数据包发送装置,其对通过网络连接的上述通信对象计算机发送在上述数据包生成装置生成的上述分散算法通知数据包。
本发明的负荷分散数据发送装置,使直到能够安装多个通信接口的通信对象计算机为止的传送路径的通信负荷分散,上述负荷分散数据发送装置的特征在于,包括:存储装置,其在接收包含有使上述多个通信接口的物理地址、以及发送到上述通信对象计算机处的数据分散到上述多个通信接口的情况下的分散算法的分散算法通知数据包时,把上述多个通信接口的物理地址和上述分散算法存储到数据表中;确定装置,其根据上述分散算法,确定成为对于上述通信对象计算机发送的发送数据的发送目的地的上述通信接口;发送装置,其将被确定为发送目的地的上述通信接口的上述物理地址作为发送目的地地址而指定,发送上述发送数据。
另外,本发明提供一种数据通信负荷分散控制方法,用于使能够安装多个通信接口的第一计算机中的传送路径的通信负荷分散,上述数据通信负荷分散控制方法的特征在于,包括下述步骤:生成分散算法通知数据包的步骤,上述分散算法通知数据包包含上述多个通信接口的物理地址以及使从第二计算机向上述第一计算机发送的数据分散到上述多个通信接口的分散算法;对通过网络连接的上述第二计算机发送上述分散算法通知数据包的步骤。
另外,本发明提供一种负荷分散数据发送方法,用于分散传送线路的通信负荷,该传送线路是用于将数据发送到能够安装多个通信接口的通信对象计算机的传送线路,上述负荷分散数据发送方法的特征在于,包括下述步骤:当接收到包含上述多个通信接口的物理地址以及使得向上述通信对象计算机发送的数据分散到上述多个通信接口的分散算法的分散算法通知数据包时,将上述多个通信接口的物理地址和上述分散算法存储到数据表中的步骤;根据上述分散算法,确定作为发送目的地的上述通信接口的步骤,其中,该发送目的地是对上述通信对象计算机发送的发送数据的目的地;将被确定为发送目的地的上述通信接口的上述物理地址指定为发送目的地地址,发送上述发送数据的步骤。
另外,本发明提供一种数据通信负荷分散控制装置,使经由所安装的多个通信接口的通信负荷分散,上述数据通信负荷分散控制装置的特征在于,包括:数据包生成单元,其生成分散算法通知数据包,上述分散算法通知数据包包含有上述多个通信接口的物理地址以及使从通信对象计算机发送的数据分散到上述多个通信接口的分散算法;数据包发送单元,其对通过网络连接的上述通信对象计算机发送在上述数据包生成单元生成的上述分散算法通知数据包。
本发明还提供一种负荷分散数据发送装置,分散传送线路的通信负荷,该传送线路是用于将数据发送到能够安装多个通信接口的通信对象计算机的传送线路,上述负荷分散数据发送装置的特征在于,包括:存储单元,其在接收包含有上述多个通信接口的物理地址以及使得向上述通信对象计算机发送的数据分散到上述多个通信接口的分散算法的分散算法通知数据包时,把上述多个通信接口的物理地址和上述分散算法存储到数据表中;确定单元,其根据上述分散算法,确定作为发送目的地的上述通信接口,其中,该发送目的地是对上述通信对象计算机发送的发送数据的目的地;发送单元,其将被确定为发送目的地的上述通信接口的上述物理地址指定为发送目的地地址,发送上述发送数据。
附图的简单说明
图1是适用于实施形式的发明的概念图。
图2是表示适用本发明的系统的构成例的图。
图3是表示中继机构部的内部构成的图。
图4是表示服务器计算机的硬件构成例的图。
图5是表示数据通信处理步骤的流程图。
图6是表示分散算法通知处理的概念图。
图7是表示用于分散算法通知数据包的帧结构的图。
图8是表示分散算法通知数据包的数据部的内容例的图。
图9是表示服务器计算机侧的分散算法表的数据结构例的图。
图10是表示对应于分散算法通知数据包的分散算法表的登录例的图。
图11是表示从服务器计算机发送的数据的负荷分散处理状况的图。
图12是表示从客户计算机发送的数据的负荷分散处理状况的图。
图13是表示第二实施形式的系统构成例的图。
图14是表示第二实施形式的分散算法表的数据结构例的图。
图15是表示第二实施形式的系统启动时的处理步骤的流程图。
图16是表示使用了多个服务器计算机时的数据发送步骤的图。
图17是表示使用了多个服务器计算机时的数据发送情况的图。
图18是增设一个NIC时的原理说明图。
图19是表示增加NIC时的分散算法表更新步骤的流程图。
图20是删除一个NIC时的原理说明图。
图21是表示现有的中继系统的构成例的图。
实施发明的最佳方式
以下,参照附图来说明本发明的实施形式。
首先,针对适用于实施形式的发明的概要进行说明,之后,说明实施形式的具体内容。
图1是适用于实施形式的发明的概念图。本发明适用于计算机1与计算机3之间的数据通信。计算机1具有多个通信接口1a、1b、1c、1d。各通信接口1a、1b、1c、1d的物理地址分别为“a”、“b”、“c”、“d”。通信接口1a、1b、1c、1d分别通过单独的传送路径与交换集线器2连接。
进一步计算机1通过执行数据通信负荷分散控制程序而构筑成数据通信负荷分散控制部1e的功能。数据通信负荷分散控制部1e具有使传送路径的通信负荷分散的功能。具体而言,数据通信负荷分散控制部1e进行以下的处理。
数据通信负荷分散控制部1e生成含有多个通信接口1a、1b、1c、1d的物理地址、以及使通信对象的计算机3向计算机1处发送的数据分散到多个通信接口1a、1b、1c、1d时的分散算法的分散算法通知数据包4(步骤S1)。而且,数据通信负荷分散控制部1e对通过网络而连接着的通信对象的计算机3发送分散算法通知数据包4(步骤S2)。
由此,把安装在计算机1上的多个通信接口1a、1b、1c、1d的物理地址通知给其他的计算机3,能够指定负荷分散算法。
另一方面,计算机3具有通信接口3a,该通信接口3a与交换集线器2连接。另外,计算机3通过执行分散负荷数据发送程序,实现使到达计算机1的传送路径的通信负荷分散的负荷分散数据发送部3b的功能。具体而言,负荷分散数据发送部3b进行以下的处理。
负荷分散数据发送部3b,当接收到含有多个通信接口1a、1b、1c、1d的物理地址、以及使向计算机1处发送的数据分散到多个通信接口1a、1b、1c、1d时的分散算法的分散算法通知数据包4时,将多个通信接口1a、1b、1c、1d的物理地址和分散算法存储到数据表3c中。在图1的例子中,物理地址“a、b、c、d”、分散算法“循环”被登录。
接着,负荷分散数据发送部3b根据分散算法来确定应是对通信对象计算机发送的发送数据5的发送目的地的通信接口。进一步,计算机3把所确定的通信接口的物理地址作为发送目的地来指定,将发送数据5发送。例如,发送数据5被分割为4份,最初的数据5a,作为发送目的地指定物理地址“a”而被发送。由此,数据5a在交换集线器2中被转送到通信接口1a。第二个数据5b作为发送目的地指定物理地址“b”而被发送。由此,数据5b在交换集线器2中被转送到通信接口1b。第3个数据5c作为发送目的地指定物理地址“c”而被发送。由此,数据5c在交换集线器2中被转送到通信接口1c。第4个数据5d作为发送目的地指定物理地址“d”而被发送。由此,数据5d在交换集线器2中被转送到通信接口1d。
由此,从计算机3对通信对象计算机发送的发送数据5,通过由分散算法通知数据包4指定的分散算法,将负荷向通过了多个通信接口1a、1b、1c、1d的每一个的传送路径分散而进行发送。
这样,从计算机1侧向计算机3,通过分散算法通知数据包4,通知多个通信接口1a、1b、1c、1d的物理地址和分散算法,在计算机3中,将发送数据5向根据分散算法而确定了的通信接口的物理地址处发送。因此,即使交换集线器2不具有中继功能,也能够进行使用了多个传送路径的中继。其结果是,能够构筑灵活性高的网络系统。
而且,由于在交换集线器2中不需要中继功能,所以能够使用廉价的交换集线器2。另外,由于从计算机1侧通知分散算法,所以对算法的变更、通信接口的增减的对应是容易的。
另外,成为计算机1的通信对象的计算机3存在多个时,通过分别通知各自分别的分散算法,可以按每个通信对象的计算机,区分开用于通信的通信接口。
进一步,由于在计算机3中确定发送对象的通信接口,所以能够参照在OSI阶层模型中的网络层和更上位的协议来确定发送对象的通信接口。例如,还能够对应用于通信的应用程序的种别,来确定发送对象的通信接口。
以下,关于把图1所示的构成适用于服务器客户系统时的实施形式具体进行说明。
第一实施形式
首先,针对本发明的第一实施形式进行说明。还有,在以下的说明中,说明在数据传输层的数据发送时,把信号的单位特别称为帧。
图2是表示适用本发明的系统的构成例的图。在服务器计算机100上,通过交换集线器200连接有多个客户计算机300、300a、300b、300c。
在服务器计算机100内设有WWW(World Wide Web)服务器110、中继机构部120、以及NIC131~134。
WWW服务器110响应来自客户计算机300、300a、300b、300c内的Web浏览器310、310a、310b、310c的请求,提供各种各样的内容。还有,服务器计算机110的节点名为“hostA”。另外,客户计算机300的节点名为“hostB”,客户计算机300a的节点名为“hostC”,客户计算机300b的节点名为“hostD”,客户计算机300c的节点名为“hostE”。
中继机构部120设置在WWW服务器110和NIC131~134之间。中继机构部120具有多个NIC131~134,确保逻辑上的高通信频带。而且,中继机构部120生成含有从WWW服务器110向客户计算机300、300a、300b、300c处发送的数据的数据包,选择多个NIC131~134中任意1个进行发送。
还有,中继机构部120具有分散算法表121。在分散算法表121中,定义了数据发送时的负荷分散的算法。从而中继机构部120参照分散算法表121,选择数据包的发送中使用的NIC,使得通过各个NIC131~134的通信的负荷均等。即进行负荷分散。负荷分散例如通过循环方式进行。
另外,中继机构部120在服务器计算机100起动时,对各客户计算机300、300a、300b、300c发送分散算法通知数据包。分散算法通知数据包是指定客户计算机300、300a、300b、300c向服务器计算机100处发送数据包时作为发送目的地应指定的物理地址(MAC地址)的选择算法。至于通知怎样的分散算法,由分散算法表121定义。还有,在分散算法通知数据包中,也含有服务器计算机100的各NIC131~134的MAC地址。
NIC131~134通过LAN电缆等与交换集线器200连接。NIC131~134进行与交换集线器200之间的帧的发送接收。另外,在各NIC131~134中,分别设定单独的MAC地址。在图2的例子中,NIC131的MAC地址是“a”,NIC132的MAC地址是“b”,NIC133的MAC地址是“c”,NIC134的MAC地址是“d”。
交换集线器200具有多个LAN端口211~214、221~224,把从LAN端口输入的帧,向与该帧的发送目的地的MAC地址对应的NIC所连接的LAN端口转送。LAN端口211~214分别通过LAN电缆与服务器计算机100的NIC131~134连接。另外,LAN端口221~224分别通过LAN电缆与客户计算机300、300a、300b、300c连接。
多个客户计算机300、300a、300b、300c分别具有Web浏览器310、310a、310b、310c。Web浏览器310、310a、310b、310c,响应来自用户的操作输入,输出WWW服务器110提供的内容的取得请求。
另外,在客户计算机300内,设置有中继机构部320和NIC331。
中继机构部320设置在Web浏览器310和NIC331之间。中继机构部320经由NIC331发送含有从Web浏览器310输出的内容的取得请求的帧。
还有,中继机构部320具有分散算法表321。分散算法表321定义了使对服务器计算机100发送的数据分散到多个NIC131~134用的算法。分散算法表321是基于从服务器计算机100的中继机构部120利用广播发送的分散算法通知数据包来设定的。
中继机构部320在发送数据时,基于分散算法表321,确定对服务器计算机100发送的帧的发送目的地MAC地址。例如,通过循环方式,确定MAC地址,从而向多个NIC131~134的每一个均等的进行帧发送。
NIC331通过LAN电缆与交换集线器200的LAN端口221连接,在与交换集线器200之间进行帧的发送接收。NIC331的MAC地址是“x”。
下面,关于服务器计算机100的中继机构部120和客户计算机300的中继机构部320的内部构成进行说明。
图3是表示中继机构部的内部构成的图。服务器计算机100的中继机构部120具有分散算法表121、分散算法通知部122、发送数据负荷分散处理部123、以及接收数据交接部124。
在分散算法表121中,定义了适用于与客户计算机300之间的数据通信的负荷分散算法。
分散算法通知部122参照分散算法表121,向客户计算机300通知与从客户计算机300向服务器计算机100发送的数据相关的分散算法。通过分散算法通知数据包20来通知分散算法。
发送数据负荷分散处理部123,当收到发送数据111时,参照分散算法表121,来确定对应于成为发送对象的客户计算机300的分散算法。而且,发送数据负荷分散处理部123,根据所确定的分散算法,把发送数据111分配到多个NIC131~134来发送。
接收数据交接部124把从客户计算机300接收到的数据送到WWW服务器110。还有,接收数据交接部124通过分散处理来分割转送接收数据,从多个NIC131~134输入时,把所分割的数据连接起来送到WWW服务器110。
客户计算机300的中继机构部320具有分散算法表321、分散算法取得部322、发送数据负荷分散处理部323、以及接收数据交接部324。
在分散算法表321中,定义了适用于与服务器计算机100之间的数据通信的负荷分散算法。
分散算法取得部322接收从服务器计算机100送来的分散算法通知数据包20,更新分散算法表321的内容。
发送数据负荷分散处理部323,当收到发送数据311时,参照分散算法表321,来确定对应于成为发送对象的服务器计算机100的分散算法。而且,发送数据负荷分散处理部323,根据所确定的分散算法,把构成发送数据311的多个数据的发送目的地MAC地址分配到多个NIC131~134中来发送。
接收数据交接部324把从服务器计算机100接收到的数据送到Web浏览器310。还有,接收数据交接部324通过分散处理来分割转送接收数据,经由多个NIC131~134进行转送时,把分割的数据连接起来送到Web浏览器310。
还有,在图2、图3中,只是详细表示了客户计算机300的构成,而其他的客户计算机300a、300b、300c也是同样的构成。
根据这样构成的系统,来自多个客户计算机300、300a、300b、300c的Web浏览器310、310a、310b、310c的内容取得请求,经由交换集线器200而被送到服务器计算机100。于是,由服务器计算机100内的WWW服务器110发送所请求的内容。
这时,由于服务器计算机100与交换集线器200之间通过多个LAN电缆来连接,所以能得到用1个传送路径连接时的4倍的频带宽度。例如,如果1个传送路径具有100Mbps的频带宽度,则在服务器计算机100与交换集线器200之间,能够以400Mbps的速度进行通信。由此,能够经受住伴随着从多个客户计算机300、300a、300b、300c向服务器计算机100的同时存取的高负荷。
而且,由于从服务器计算机100向客户计算机300、300a、300b、300c发送的数据,通过中继机构部120均匀地被分配到各NIC131~134,所以不存在对1个线路的通信量的不平衡。另外,由于从客户计算机300向服务器计算机100发送的数据的发送目的地,通过中继机构部320均匀地被分配到NIC131~134,所以不存在对1个线路的通信量的不平衡。
图4是表示服务器计算机的硬件构成例的图。服务器计算机100通过CPU(Central Processing Unit:中央处理器)101来控制装置全体。在CPU101上通过总线107连接有RAM(Random Access Memory:随机存取存储器)102、硬盘驱动(HDD:Hard Disk Drive)103、图形处理装置104、输入接口105、以及多个NIC131~134。
在RAM102中,暂时存储有使CPU101执行的OS(Operating System:操作系统)的程序和应用程序的至少一部分。另外,在RAM102内,存储有由CPU101进行的处理需要的各种数据。在HDD103中,存储有OS、应用程序。
图形处理装置104上连接有监视器11。图形处理装置104根据来自CPU101的命令,把图像显示在监视器11的画面上。输入接口105上连接有键盘12和鼠标13。输入接口105把从键盘12或鼠标13送来的信号,通过总线107发送给CPU101。NIC131~134分别与交换集线器200连接。
根据以上这样的硬件构成,能够实现第一实施形式的处理功能。还有,在图4中示出了服务器计算机100的硬件构成,但客户计算机300、300a、300b、300c也能够以同样的硬件构成来实现。只是,在客户计算机300、300a、300b、300c中,NIC有1个就可以。
下面,通过以服务器计算机100与客户计算机300之间的通信为例,针对用于进行数据通信的处理来进行说明。
图5是表示数据通信处理步骤的流程图。在图5中,左侧表示服务器计算机100的处理,右侧表示客户计算机300的处理。以下,把图5所示的处理按步骤序号进行说明。
[步骤S11]客户计算机300等待分散算法通知数据包20的接收。
[步骤S12]服务器计算机100在系统启动时等,把分散算法通知数据包20以广播帧发送。
[步骤S13]服务器计算机100在之后等待来自客户计算机300的应答。
[步骤S14]客户计算机300判断是否接收了分散算法通知数据包。接收到分散算法通知数据包时,处理进入到步骤S15。没接收到分散算法通知数据包时,处理进入到步骤S11,继续等待分散算法通知数据包20的接收。
[步骤S15]客户计算机300把与分散算法相关的信息从由服务器计算机100送来的分散算法通知数据包中提取出,组入到分散算法表321中。
[步骤S16]客户计算机300对服务器计算机100发送与分散算法通知数据包相关的应答。
[步骤S17]服务器计算机100判断是否在一定时间内接收到应答。在一定时间内接收到应答时,处理进入到步骤S18。在一定时间内没有接收到应答时,处理进入到步骤S12,再次发送分散算法通知数据包20。
[步骤S18]服务器计算机100确认应答内容,把含有通信对象的MAC地址的信息,追加到分散算法表121中。
[步骤S19]服务器计算机100开始与客户计算机300间的通信。
[步骤S20]客户计算机300开始与服务器计算机100间的通信。
[步骤S21]服务器计算机100根据分散算法发送数据。
[步骤S22]客户计算机300发送根据分散算法的数据。
这样,从服务器计算机100向客户计算机300发送分散算法通知数据包,通知分散算法。其结果是,即使在客户计算机300侧也能够识别服务器计算机100的NIC的构成,进行负荷分散到那些NIC中的数据发送。
图6是表示分散算法通知处理的概念图。中继机构部120内的分散算法通知部122,在与客户计算机300、300a、300b、300c的通信之前,生成分散算法通知数据包20,通过任意的NIC载入到以太网(注册商标)的帧上,以广播来发送。由此,分散算法通知数据包20被送到客户计算机300、300a、300b、300c。例如,想要进行循环方式的接收分散时,自己处的数据以使用循环方式进行发送的方式向NIC131~134发送分散算法通知数据包20。
另外,从接收到分散算法通知数据包20的客户计算机300、300a、300b、300c,向服务器计算机100发送应答数据包。
这里,关于进行分散算法的通知以及应答等时的帧结构进行说明。
图7是表示分散算法通知数据包用的帧结构的图。帧30由对象MAC地址31、自MAC地址32、协议标识符33、指令部34、以及数据部35构成。
对象MAC地址31是表示帧的发送目的地的MAC地址的设定区域。在分散算法通知数据包20的情况下,设定表示广播转送的值“FF-FF-FF-FF-FF-FF”。在客户计算机300、300a、300b、300c的NIC的MAC地址成为已知之后,在进行分散算法的追加等的情况下,在对象MAC地址31中设定发送对象的NIC的MAC地址。也能够发送多个分散算法通知数据包20。
在自MAC地址32中,设定服务器计算机100自身的NIC的MAC地址。服务器计算机100将选择任意的NIC来发送分散算法通知数据包20的、该被选择的NIC的MAC地址设定在自MAC地址32中。
在协议标识符33中,设定表示为分散算法通知数据包的标识符。通过在客户计算机300、300a、300b、300c侧确认协议标识符,识别所接收到的数据包是分散算法通知数据包20的情况。
在指令部34中,设定信息数据包的种别。在种别中有通告、追加、删除、以及应答。
数据包种别“通告”,表示为分散算法数据的通告(广播)。系统运行开始时,发送指令部24中设定了“通告”的分散算法通知数据包20。指令部34中设定了“通告”的帧,从服务器计算机100被发送到客户计算机300、300a、300b、300c。
数据包种别“追加”,表示为分散算法数据的追加指示。指令部34中设定了“追加”的帧,从服务器计算机100被发送到客户计算机300、300a、300b、300c。
数据包种别“删除”,表示分散算法数据的删除指示。指令部34中设定了“删除”的帧,从服务器计算机100被发送到客户计算机300、300a、300b、300c。
数据包种别“应答”,表示对通告、追加、删除指示的应答。指令部34中设定了“应答”的帧,从客户计算机300、300a、300b、300c被发送到服务器计算机100。
在数据部35中,设定了分散算法数据的内容。具体而言,服务器计算机100的节点名、客户计算机300、300a、300b、300c的节点名、应用程序名、分散算法、服务器计算机100的NIC131~134的MAC地址等的信息设定在数据部35中。还有,在服务器计算机100是由多个计算机构成的组构成时,作为NIC131~134的MAC地址的附带信息,追加安装了该NIC的计算机的节点名。
还有,数据部35的内容成为每个客户计算机300、300a、300b、300c的列表构造,各客户计算机300、300a、300b、300c只提取出对应自己的信息,设定在分散算法表中。
以太网(注册商标)的情况下,各自的NIC131~134具有被称作MAC地址的一致的网络地址。因此,各客户计算机300、300a、300b、300c,通过向由服务器计算机100通知的4个NIC131~134的MAC地址处,以循环方式发送以太网帧,由此即使交换集线器200没有中继功能,也能够进行与交换集线器200的中继功能相同的分散处理。
这里,在使用ARP(Address Resolution Protocol:地址分辨协议)等的国际互联网协议向客户计算机300、300a、300b、300c通知了地址信息时,能够通知的MAC地址只有1个。另外,以ARP不能通知分散算法信息。因此,在从客户计算机300、300a、300b、300c的每一个向服务器计算机100发送的数据中能够使用的NIC变得只有1个。例如,从1台客户计算机300向服务器计算机100发送大量的数据时,接收数据只使用4个中特定的1个而不能执行中继。在第一实施形式中,即使在这样的情况下,也能够进行由中继实现的负荷分散。
图8是表示分散算法通知数据包的数据部的内容例的图。图8是把ftP(File Transfer Protocol:文件传送协议)的文件转送,通过循环来进行负荷分散时的数据部35的例子。
在数据部35中,按每个对象节点名设定自节点名、对象节点名、应用程序名、使用算法以及使用NIC的MAC地址。自节点名为“hostA”。对象节点名为“hostB”、“hostC”、“hostD”、“hostE”。应用程序名为“ftp”。使用算法为“循环”。在MAC地址的项目里,设定NIC131~134各自的MAC地址“a”、“b”、“c”、“d”。
当通过这样的分散算法通知数据包20等把分散算法通知给客户计算机300、300a、300b、300c时,所通知的内容被追加到分散算法表中。其结果,在服务器计算机100和客户计算机300、300a、300b、300c双方中构筑分散算法表,进行基于分散算法表的负荷分散。
图9是表示服务器计算机侧的分散算法表的数据结构例的图。在分散算法表121中,设有自节点名、对象节点名、应用程序名、算法、自NIC、对象NIC、以及标志的栏。排列在各栏的横向上的信息彼此间相互建立关联,构成记录。
自节点名是服务器计算机100的节点名(例如IP地址)。
对象节点名是通信的对象的客户计算机300、300a、300b、300c的节点名(例如IP地址)。
应用程序名是成为分散对象的应用程序的名称(telnet,ftp)等
算法是在进行由应用程序名指定的应用程序的数据发送接收时使用的分散算法(例如循环、固定NIC、TCP连接数平均分散等)。
自NIC是服务器计算机100的NIC131~134的MAC地址。自NIC存在多个时,用逗点区分开,以列表形式表示。
对象NIC是作为对象侧的客户计算机300、300a、300b、300c的NIC的MAC地址(存在多个时以列表形式存储)。
标志表示记录的表信息的有效/无效。标志为有效时,表示分散算法的交换结束,为可通信状态。标志为无效时,表示分散算法的交换未结束,为不可通信状态。
根据这样的表构造,能够指定每个对象节点的分散算法或使用的NIC。另外,能够指定每个应用程序的分散算法或使用的NIC。
还有,图9表示了服务器计算机100侧的分散算法表121,而客户计算机300侧的分散算法表321也是同样的数据结构。因为客户计算机300只有1个NIC331,所以把1个MAC地址设定在自NIC中,把服务器计算机100内的NIC131~134的MAC地址设定在对象NIC中。
图10是表示对应分散算法通知数据包的分散算法表的登录例的图。如图10所示,首先,从服务器计算机100向客户计算机300发送通告的分散算法通知数据包20a。在图10的例子中,自节点名为“hostA”,对象节点名为“hostB”,应用程序名为“ftp”,算法为“循环”,自NIC为“a,b,c,d”。
接收了该分散算法通知数据包20a的客户计算机300,交换分散算法通知数据包20a的自节点名和对象节点名,把自NIC作为对象NIC,登录到分散算法表321中。接着,客户计算机300在所登录的记录的自NIC中设定自己的NIC331的MAC地址“x”,使标志为“有效”。而且,客户计算机300把含有自己的NIC331的MAC地址“x”的应答的分散算法通知数据包20b发送到服务器计算机100。
服务器计算机100中,当接收到应答的分散算法通知数据包20b时,把在分散算法通知数据包20a的内容中追加了对象NIC“x”、标志“有效”的记录,登录到分散算法表121中。
基于这样构成的分散算法表,在服务器计算机100和客户计算机300之间进行使负荷分散的数据通信。
图11是表示从服务器计算机发送的数据的负荷分散处理状况的图。在本例中,根据循环的分散算法进行负荷分散。循环方式的情况下,对多个NIC131~134,按规定的顺序分配数据。例如是NIC131、NIC132、NIC133、NIC134的顺序,NIC134的下一个是向NIC131分配数据。
从WWW服务器110把客户计算机300处的发送数据111送到中继机构部120。在这里,发送数据111,被分割成6个数据来发送。这里,使被分割的数据为“D1”、“D2”、“D3”、“D4”、“D5”、“D6”。
发送数据111通过中继机构部120而以循环方式被分配给多个NIC131~134。其结果,“D1”的数据通过NIC131被发送到客户计算机300。“D2”的数据通过NIC132被发送到客户计算机300。“D3”的数据通过NIC133被发送到客户计算机300。“D4”的数据通过NIC134被发送到客户计算机300。“D5”的数据通过NIC131被发送到客户计算机300。“D6”的数据通过NIC136被发送到客户计算机300。
这样一来,从服务器计算机100而发送向客户计算机300处的发送数据111,使传送路径的负荷分散,而被送到交换集线器200,之后,送到客户计算机300。
图12是表示从客户计算机发送的数据的负荷分散处理状况的图。在本例中,根据循环的分散算法进行负荷分散。
从客户计算机300而发送向WWW服务器110处的发送数据311被送到中继机构部320。在这里,发送数据311被分割成4个数据来发送。这里,使被分割的数据为“D11”、“D12”、“D13”、“D14”。
发送数据311通过中继机构部320,以循环方式被分配给多个NIC131~134。所分配的各数据,在发送该数据的帧的发送目的地MAC地址中设定分配对象的NIC的MAC地址。交换集线器200参照发送目的地MAC地址来确定送出的LAN端口,因此,各数据发送到被分配的NIC。图12的例子中“D11”的数据被发送到服务器计算机100的NIC131。“D12”的数据被发送到服务器计算机100的NIC132。“D13”的数据被发送到服务器计算机100的NIC133。“D14”的数据被发送到服务器计算机100的NIC134。
这样一来,从客户计算机300发送向服务器计算机100处的发送数据311通过交换集线器200,使负荷分散到多个传送路径而送到服务器计算机100。
象以上那样,即使交换集线器200没有中继功能,也能够进行使负荷分散到服务器计算机100和交换集线器200之间的多个传送路径的数据通信。因此,构筑中继的系统时,能够使用不对应于中继的任意的交换集线器,选择幅度扩大了。
另外,由于各自的客户计算机300、300a、300b、300c具有分散算法信息,所以即使只是1对1的2台装置间的通信,也能够实现中继的发送接收分散,能够实现和中继对应开关使用时完全相等的频带的提高。
而且,由于在客户计算机300、300a、300b、300c中管理负荷分散,所以能够指定对应于应用程序的分散算法。也就是,如现有这样用交换集线器200进行中继处理时,交换集线器由于在OSI阶层模型的数据传输层判别发挥功能,所以不能进行应用程序的判别,从而不能实现对应于应用程序的中继。在第一实施形式中,由于能够通过客户计算机300来指定对应于应用程序的分散算法,所以能够提供灵活性高的中继机构。
第二实施形式
下面,针对本发明的第二实施形式进行说明。第二实施形式是在通过多个服务器计算机协调动作而运转而构成组的情况下对其系统适用本发明的例子。
图13是表示第二实施形式的系统构成例的图。在第二实施形式中,2台服务器计算机100a、100b通过系统间通信总线40而相互连接。系统间通信总线40是能够实现比LAN高速的通信的通信接口。还有,服务器计算机100a、100b以外的构成要素与第一实施形式相同,所以赋予与图2所示的与第一实施形式相同的附图标记,省略了说明。
服务器计算机100a具有WWW服务器110a、中继机构部120a、NIC131a、132a。中继机构部120a具有分散算法表121a。同样,服务器计算机100b具有中继机构部120b、NIC131b、132b。中继机构部120b具有分散算法表121b。
这样各服务器计算机100a、100b分别具有2个NIC131a、132a、131b、NIC132b,但由于硬件的规格限制,不能安装更多个数的NIC。
服务器计算机100a和服务器计算机100b的中继机构部120a、120b通过系统间通信总线40,共有被登录在为了中继的分散算法表121a、121b中的控制信息。
这里,中继机构部120a、120b具有登录了中继的控制信息的分散算法表,从而对客户计算机300、300a、300b、300c分别使用NIC131a、132a、131b、132b来发送接收数据。
图14是表示第二实施形式的分散算法表的数据结构例的图。分散算法表121a的数据结构,除了自NIC,与图9所示的第一实施形式的分散算法表121相同。
在自NIC中,设定安装在多个服务器计算机100a、100b双方上的NIC131a、132a、131b、132b中的、对应的应用程序的数据传送所使用的NIC的MAC地址。另外,自NIC中,在括号内设定安装计算机名。安装计算机名是安装各NIC的服务器计算机的名称(识别名)。
在这样的环境里,WWW服务器110a,想要向客户计算机300、300a、300b、300c的4台中进行通过循环方式的数据发送接收分散时,系统启动时在服务器计算机100a、100b间进行以下的处理。
图15是表示第二实施形式中的系统启动时的处理步骤的流程图。以下,按步骤序号说明图15所示的处理。
[步骤S31]服务器计算机100a的中继机构部120a,与第一实施形式同样,生成分散算法表121a。另外,在分散算法表121a自身中,中继机构部120a通过广播来配送分散算法通知数据包20,但在这时的分散算法通知数据包20的自NIC中,含有服务器计算机100a和服务器计算机100b的NIC131a、132a、131b、132b的MAC地址。还有,对该MAC地址,赋予安装了NIC131a、132a、131b、132b的服务器计算机的节点名。
[步骤S32]中继机构部120a判断服务器计算机100a是否与其它的服务器计算机协调动作而构成组。在由多台服务器计算机构成的情况下,处理进入到步骤S33。在由1台服务器计算机100a构成时,处理进入到步骤S36。
[步骤S33]服务器计算机100a使用专用的系统间通信总线40,把分散算法表121a的内容向服务器计算机100b发送。
[步骤S34]服务器计算机100b的中继机构部120b基于从服务器计算机100a接收的分散算法表121a的内容,生成自身的分散算法表121b。
[步骤S35]中继机构部120b对服务器计算机100a发送应答。
[步骤S36]服务器计算机100a开始与客户计算机300、300a、300b、300c间的通信。
[步骤S37]同样,服务器计算机100b开始与客户计算机300、300a、300b、300c间的通信。
这样,由于在系统启动时进行分散算法表的共通化,所以能够实现使用了多个服务器计算机100a、100b的组系统的中继。通过中继的负荷分散进行以下这样的数据转送。
图16是表示使用了多个服务器计算机时的数据发送步骤的图。以下,按步骤序号说明图16所示的处理。
[步骤S41]服务器计算机100b的中继机构部120b保持等待来自服务器计算机100a的事件的状态。
[步骤S42]服务器计算机100a的中继机构部120a保持等待来自WWW服务器110a的事件的状态。
[步骤S43]当发生某种事件时,中继机构部120a判断所发生的事件是否是来自WWW服务器110a的数据发送请求。若是数据发送请求,则处理进入到步骤S45。若是数据发送请求以外的事件,则处理进入到步骤S44。
[步骤S44]中继机构部120a执行对应于所发生的事件的数据发送以外的处理。之后,处理进入到步骤S42而再次等待事件。
[步骤S45]中继机构部120a检索分散算法表121a,确定用于发送的NIC。具体而言,中继机构部120a参照分散算法表121a,根据发送对象、应用程序名等来确定分散算法。而且,根据所确定的分散算法确定用于发送的NIC。
[步骤S46]中继机构部120a从分散算法表121a中,取出安装了用于发送的NIC的服务器计算机的装置名。
[步骤S47]中继机构部120a判断所使用的NIC是否是安装在服务器计算机100a自身上的NIC。若是安装在服务器计算机100a上的NIC,处理进入到步骤S49。若是安装在其它的服务器计算机上的NIC,处理进入到步骤S48。
[步骤S48]中继机构部120a使用系统间通信总线40,把来自WWW服务器110a的数据向其它的服务器计算机100b转送。之后,服务器计算机100a侧的处理结束,处理进入到服务器计算机100b侧的中继机构部120b的步骤S50。
[步骤S49]中继机构部120a通过在步骤S45确定的NIC,把数据发送到客户计算机。
[步骤S50]服务器计算机100b的中继机构部120b,在自身的分散算法表121b内检索,确定用于发送的NIC。
[步骤S51]中继机构部120b通过在步骤S50确定的NIC,把数据向客户计算机发送。
图17是表示使用了多个服务器计算机时的数据发送情况的图。当服务器计算机100a的Web应用程序110a把发送数据111a送到中继机构部120a时,中继机构部120a把发送数据111a分割成多个数据,并分配给多个NIC131a、132a、131b、132b。在图17的例子中,发送数据111a是被分割成4个数据,使各个数据为“D21”、“D22”、“D23”、“D24”。
发送数据111通过中继机构部120,以循环方式被分配给多个NIC131a、132a、131b、132b。其结果,“D11”的数据通过NIC131被发送到客户计算机300。“D22”的数据通过NIC132a被发送到客户计算机300。“D23”的数据通过系统间总线40被发送到服务器计算机100b的中继机构部120b之后,在中继机构部120b被分配,通过NIC131b被送到客户计算机300。“D24”的数据通过系统间通信总线40被发送到服务器计算机100b的中继机构部120b后,在中继机构部120b被分配,通过NIC132b被发送到客户计算机300。
关于之后的数据转送,再从NIC131a顺序使用。
这样一来,从服务器计算机100a、100b发送向客户计算机300、300a、300b、300c处的发送数据111进行负荷分散,被送到交换集线器200,之后,送到客户计算机300、300a、300b、300c。
另一方面,在进行从客户计算机300、300a、300b、300c向服务器计算机100a发送的数据的分散处理时,客户计算机300、300a、300b、300c,在通信之前基于从服务器计算机100a发送的分散算法通知数据包,判断分散方式。由此,从客户计算机300、300a、300b、300c发送到服务器计算机100a的数据,分散到各NIC131a、132a、131b、132b来发送。这时对NIC131b、132b发送的数据,通过中继机构部120,经由系统间通信总线40而被送到WWW服务器110a。
这样,由于统一了分散算法表的内容,所以能够使用多个服务器计算机进行中继处理。其结果,能够不依存于所使用的服务器计算机100a的硬件规格(NIC安装的上限值),增加使用NIC个数而实现中继。
第三实施形式
下面,针对第三实施形式进行说明。第三实施形式不停止系统的运行而可追加删除NIC。
图18是增设一个NIC时的原理说明图。服务器计算机100c具有WWW服务器110c、中继机构部120c、NIC131c、132c、133c、134c、135以及NIC追加/删除控制部140。中继机构部210c设置有分散算法表121c。还有,NIC135是新追加安装的。
服务器计算机100c的管理者把安装的预备的NIC135,用LAN电缆连接到交换集线器200。这里,由于在交换集线器200中没有进行中继的设定,所以能够不把交换集线器200复位,而在连接后直接用于通信。换言之,使用中继对应的交换集线器时,为了设定变更,需要把全部连接的NIC的通信暂时停止。
另一方面,服务器计算机100c需要把新追加的NIC135追加到中继对象中。这里,服务器计算机100c的NIC追加/删除控制部140自动识别NIC135的追加,把对应于NIC135的追加的信息登录到分散算法表121c中。还有,不等待NIC135的追加的自动识别,还能够对应于来自应用程序或操作员的指示,更新分散算法表121c。
具体而言,NIC追加/删除控制部140在追加NIC135时,将该内容利用程序间通信,通知给中继机构部120c。收到通知的中继机构部120c,把对象的NIC添加到分散算法表121c内的分散对象中。这时,中继机构部120c把更新内容通过分散算法通知数据包,通知给各客户计算机300、300a、300b、300c。以后,中继机构部120c,在数据发送时包含NIC135而进行数据发送的负荷分散。
另外,通过分散算法通知数据包,向客户计算机300、300a、300b、300c,通知NIC135的追加,根据通知内容更新客户计算机300、300a、300b、300c内的分散算法表。因此,即使关于从客户计算机300、300a、300b、300c向服务器计算机100c发送的数据,也能够根据更新了的分散算法表,包含NIC135而进行数据发送的负荷分散。
以下,以服务器计算机100c和客户计算机300之间的处理为例,针对NIC追加时的分散算法表的更新步骤进行说明。
图19是表示NIC添加时的分散算法表的更新步骤的流程图。以下,按步骤序号来说明图19所示的处理。
[步骤S61]客户计算机300的中继机构部320等待分散算法通知数据包的接收。
[步骤S62]服务器计算机100c的NIC追加/删除控制部140等待事件的发生。
这里,当追加NIC135时,发生I/O中断。
[步骤S63]NIC追加/删除控制部140判断I/O中断的内容。若是NIC追加则处理进入到步骤S65。若是NIC追加以外的I/O中断,则处理进入到步骤S64。
[步骤S64]NIC追加/删除控制部140执行对应于I/O中断的处理,之后处理结束。
[步骤S65]NIC追加/删除控制部140从I/O表中取出所追加的NIC135的信息。还有,I/O表是定义了对应于由OS管理的I/O中断的信息的数据表。而且,NIC追加/删除控制部140把NIC的追加指示到中继机构部120c。
[步骤S66]中继机构部120c生成追加了数据包的种别的分散算法通知数据包,对客户计算机300进行发送。由此,对客户计算机300通知所追加的NIC135的信息。
[步骤S67]中继机构部120c成为应答的接收等待状态。
[步骤S68]客户计算机300的中继机构部320判断分散算法通知数据包的接收的有无。接收到了的时候,处理进入到步骤S69。没接收到时,处理进入到步骤S61,继续等待数据包的接收。
[步骤S69]中继机构部320判断分散算法通知数据包是否是新安装的NIC的追加指示。这能够判断数据包的种别是否是“追加”。是NIC的追加指示时,处理进入到步骤S71。是NIC的追加以外的指示(例如NIC的删除)时,处理进入到步骤S70。
[步骤S70]中继机构部320执行由分散算法通知数据包指示的处理(NIC追加以外的处理)。之后,处理进入到步骤S61。
[步骤S71]中继机构部320把由分散算法通知数据包指示的新的NIC,追加到自身的分散算法表321中。
[步骤S72]中继机构部320对服务器计算机100c发送应答的数据包。
[步骤S73]服务器计算机100c的中继机构部120c判断是否在一定时间内有应答。有了应答时,处理进入到步骤S74。没有应答时,处理进入到步骤S66。
[步骤S74]中继机构部120c确认应答后,向分散算法表121c追加新追加的NIC的信息。
[步骤S75]服务器计算机100c的中继机构部120c和客户计算机300的中继机构部320,开始进行把新追加的NIC包含到通信路径中的数据通信。
以上这样一来,能够追加新的NIC。由于该动作独立于WWW服务器110c等的应用程序的通信而并列执行,所以对交换到此的其他NIC131c、132c、133c、134c上的通信数据没有影响。而且,交换集线器侧也没有一旦复位了设定就重新启动的必要。因此,在继续通信的状态下能够动态的扩大数据传送频带。
与追加NIC时一样,也能够在运行中拆卸NIC。
图20是删除一个NIC时的原理说明图。从服务器计算机100c拆卸NIC135时,对NIC追加/删除控制部140,通过I/O中断而通知NIC的分离。还有,通过服务器计算机100c等的应用程序或来自操作员的操作输入,也能够把NIC分离的指示通知给NIC追加/删除控制部140。
接收到NIC分离的通知后的NIC追加/删除控制部140更新内部的系统构成信息,把该内容利用程序间通信,通知给中继机构部120c。接收到通知的中继机构部120c把对应的NIC135的信息从分散算法表121c中删除,从而从中继对象中去除。之后,从服务器计算机100c侧不使用NIC135而进行发送分散。
另外,关于接收,从中继机构部120c向客户计算机300、300a、300b、300c发送以把NIC135从对象去除的形式更新了的分散算法通知数据包(删除数据包的种别)。由此,各客户计算机300、300a、300b、300c的中继机构部从内部的分散算法表中删除NIC135的信息。以后,从客户计算机300、300a、300b、300c发送到服务器计算机100c的数据,使用NIC135以外的NIC131c、132c、133c、134c。
之后,从交换集线器200的对应LAN端口去除连接电缆,NIC135的删除结束。
由于该动作独立于应用程序的通信而并列执行,所以对交换到此的其他的NIC上的通信数据没有影响。另外,交换集线器200侧也没有必要一旦复位了设定就重新启动,因此在继续通信的状态下,能够动态的缩小数据传送频带。
这样,使不停止服务器计算机100c的运行而追加安装或去除NIC成为可能,因此服务器计算机100c与交换集线器200之间的频带宽度的调整变得容易。也就是,在出现数据通信量过大而频带宽度不足时,追加NIC,就能够在继续运行的状态下扩大频带宽度。
还有,为了实现上述的各实施形式,要提供记述了服务器计算机应具有的功能的处理内容的服务器程序、以及记述了客户计算机应具有的功能的处理内容的客户程序。通过用计算机执行服务器程序,来实现上述实施形式的服务器计算机的处理功能。另外,通过用计算机执行客户程序,来实现上述实施形式的客户计算机的处理功能。
记述了处理内容的服务器程序、客户程序,能够记录在用计算机可读取的记录介质上。作为能够用计算机读取的记录介质,有磁存储装置、光盘、光磁记录介质、半导体存储器等。磁存储装置包括硬盘装置(HDD)、软盘(FD)、磁带等。光盘包括DVD(Digital Versatile Disc:数字通用光盘)、DVD—RAM(Random Access Memory:随机存取存储器)、CD—ROM(Compact DiscRead Only Memory:紧凑光盘只读存储器)、CD—R(Recordable:可记录)/RW(Re Writable:可重写)等。至于光磁记录介质,包括MO(Magneto-Opticaldisc:磁光盘)等。
使服务器程序、客户程序流通时,例如,出售记录了各程序的DVD、CD—ROM等的可移动型的记录介质。另外,把客户程序存储在服务器计算机的存储装置中,通过网络,也能够把客户程序从服务器计算机转送到客户计算机。
执行服务器程序的服务器计算机,例如把记录在可移动型记录介质上的服务器程序存储在自己的存储装置中。从而服务器计算机从自己的存储装置读取服务器程序,执行基于服务器程序的处理。还有,服务器计算机也可以从可移动型记录介质中直接读取服务器程序,执行根据该服务器程序的处理。
执行客户程序的客户计算机,例如把记录在可移动型记录介质中的客户程序或者从服务器计算机转送来的客户程序存储于自己的存储装置。从而客户计算机从自己的存储装置读取客户程序,执行根据客户程序的处理。还有,客户计算机也可以从可移动型记录介质直接读取客户程序,执行根据该客户程序的处理。另外,客户计算机也可以在每从服务器计算机转送来客户程序时,逐次执行基于接收到的客户程序的处理。
如以上说明那样,本发明中,通过分散算法通知数据包把多个通信接口的物理地址和分散算法通知给通信对象计算机,在对象计算机中,把发送数据发送到根据分散算法确定的通信接口的物理地址处。由此,即使在中继数据包的装置中没有中继功能,也能够实现使用于多个传送路径的中继。
关于上述只是表示了本发明的原理。对本领域的普通技术人员来说还可以进行各种变形、变更,本发明并不限于如上述所示的已说明的正确的构成以及应用的例子,对应的所有的变形例以及近似部分,也被视为根据添加的权利要求以及其类似部分的本发明的范围。

Claims (14)

1.一种数据通信负荷分散控制方法,用于使能够安装多个通信接口的第一计算机中的传送路径的通信负荷分散,上述数据通信负荷分散控制方法的特征在于,包括下述步骤:
生成分散算法通知数据包的步骤,上述分散算法通知数据包包含上述多个通信接口的物理地址以及使从第二计算机向上述第一计算机发送的数据分散到上述多个通信接口的分散算法;
对通过网络连接的上述第二计算机发送上述分散算法通知数据包的步骤。
2.如权利要求1所述的数据通信负荷分散控制方法,其特征在于,上述分散算法通知数据包是在上述第一计算机启动时通过广播来发送的。
3.如权利要求1所述的数据通信负荷分散控制方法,其特征在于,按每个应用程序来生成指定了上述分散算法的上述分散算法通知数据包,上述应用程序是在上述第一计算机和上述第二计算机之间进行数据通信的程序。
4.如权利要求1所述的数据通信负荷分散控制方法,其特征在于,在存在多台上述第二计算机的情况下,分别针对多台上述第二计算机中的每一台,生成指定了上述分散算法的上述分散算法通知数据包。
5.如权利要求1所述的数据通信负荷分散控制方法,其特征在于,按每个应用程序来生成指定了通信中能够使用的上述通信接口的上述分散算法通知数据包,上述应用程序是在上述第一计算机和上述第二计算机之间进行数据通信的程序。
6.如权利要求1所述的数据通信负荷分散控制方法,其特征在于,在存在多台上述第二计算机的情况下,分别针对多台上述第二计算机中的每一台,生成指定了通信中能够使用的上述通信接口的上述分散算法通知数据包。
7.如权利要求1所述的数据通信负荷分散控制方法,其特征在于,还包括以下步骤:将从上述第二计算机向上述第一计算机发送的数据,分散发送到到上述多个通信接口。
8.如权利要求1所述的数据通信负荷分散控制方法,其特征在于,在上述第一计算机上连接有与上述第一计算机协调动作而执行处理的协动计算机的情况下,生成包含有安装在上述协动计算机上的通信接口的物理地址的上述分散算法通知数据包。
9.如权利要求8所述的数据通信负荷分散控制方法,其特征在于,将从上述第二计算机向上述第一计算机发送的数据,分散发送到上述第一计算机的通信接口和上述协动计算机的通信接口。
10.如权利要求1所述的数据通信负荷分散控制方法,其特征在于,当对上述第一计算机追加新的通信接口时,生成通知包含所追加的上述通信接口的物理地址从而将所追加的上述通信接口包含在分散处理的使用对象中的情况的分散算法通知数据包,
将所生成的上述分散算法通知数据包发送到上述第二计算机。
11.如权利要求1所述的数据通信负荷分散控制方法,其特征在于,当从上述第一计算机删除通信接口时,生成通知将被删除的上述通信接口从分散处理的使用对象中除去的情况的分散算法通知数据包,
将生成的上述分散算法通知数据包发送到上述第二计算机。
12.一种负荷分散数据发送方法,用于分散传送线路的通信负荷,该传送线路是用于将数据发送到能够安装多个通信接口的通信对象计算机的传送线路,上述负荷分散数据发送方法的特征在于,包括下述步骤:
当接收到包含上述多个通信接口的物理地址以及使得向上述通信对象计算机发送的数据分散到上述多个通信接口的分散算法的分散算法通知数据包时,将上述多个通信接口的物理地址和上述分散算法存储到数据表中的步骤;
根据上述分散算法,确定作为发送目的地的上述通信接口的步骤,其中,该发送目的地是对上述通信对象计算机发送的发送数据的目的地;
将被确定为发送目的地的上述通信接口的上述物理地址指定为发送目的地地址,发送上述发送数据的步骤。
13.一种数据通信负荷分散控制装置,使经由所安装的多个通信接口的通信负荷分散,上述数据通信负荷分散控制装置的特征在于,包括:
数据包生成单元,其生成分散算法通知数据包,上述分散算法通知数据包包含有上述多个通信接口的物理地址以及使从通信对象计算机发送的数据分散到上述多个通信接口的分散算法;
数据包发送单元,其对通过网络连接的上述通信对象计算机发送在上述数据包生成单元生成的上述分散算法通知数据包。
14.一种负荷分散数据发送装置,分散传送线路的通信负荷,该传送线路是用于将数据发送到能够安装多个通信接口的通信对象计算机的传送线路,上述负荷分散数据发送装置的特征在于,包括:
存储单元,其在接收包含有上述多个通信接口的物理地址以及使得向上述通信对象计算机发送的数据分散到上述多个通信接口的分散算法的分散算法通知数据包时,把上述多个通信接口的物理地址和上述分散算法存储到数据表中;
确定单元,其根据上述分散算法,确定作为发送目的地的上述通信接口,其中,该发送目的地是对上述通信对象计算机发送的发送数据的目的地;
发送单元,其将被确定为发送目的地的上述通信接口的上述物理地址指定为发送目的地地址,发送上述发送数据。
CNB038263017A 2003-03-31 2003-03-31 数据通信负荷分散控制、负荷分散数据发送方法及装置 Expired - Fee Related CN100474833C (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/004148 WO2004088931A1 (ja) 2003-03-31 2003-03-31 データ通信負荷分散制御プログラム、およびデータ負荷分散制御方法

Publications (2)

Publication Number Publication Date
CN1765084A CN1765084A (zh) 2006-04-26
CN100474833C true CN100474833C (zh) 2009-04-01

Family

ID=33105370

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038263017A Expired - Fee Related CN100474833C (zh) 2003-03-31 2003-03-31 数据通信负荷分散控制、负荷分散数据发送方法及装置

Country Status (6)

Country Link
US (1) US8068498B2 (zh)
JP (1) JP3792707B2 (zh)
CN (1) CN100474833C (zh)
AU (1) AU2003221109A1 (zh)
DE (1) DE10394206T5 (zh)
WO (1) WO2004088931A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1942608A4 (en) * 2005-09-02 2011-01-12 Fujitsu Ltd NETWORK INTERFACE CONTROL PROGRAM AND NETWORK INTERFACE CONTROL
US8094584B2 (en) 2006-02-16 2012-01-10 Nec Corporation Node, network system, frame transfer method, and frame transfer program
JP4579850B2 (ja) * 2006-03-07 2010-11-10 富士通株式会社 ブレード型システムおよびコネクション管理方法
US20070237084A1 (en) * 2006-03-29 2007-10-11 Rothman Michael A Data communication using multiple input/output devices
US7649892B2 (en) * 2006-08-30 2010-01-19 Hewlett-Packard Development Company, L.P. Method and system of network communication receive load balancing
US7813286B2 (en) * 2006-08-30 2010-10-12 Hewlett-Packard Development Company, L.P. Method and system of distributing multicast group join request in computer systems operating with teamed communication ports
JP5585660B2 (ja) 2010-10-14 2014-09-10 日本電気株式会社 通信システム、制御装置、処理規則の設定方法およびプログラム
US8694618B2 (en) 2011-04-13 2014-04-08 Microsoft Corporation Maximizing data transfer through multiple network devices
US8627412B2 (en) 2011-04-14 2014-01-07 Microsoft Corporation Transparent database connection reconnect
CN103297354B (zh) * 2012-03-02 2017-05-03 日电(中国)有限公司 服务器互连系统、服务器和数据转发方法
US20160352823A1 (en) 2015-05-26 2016-12-01 iDevices, LLC Systems and methods for server failover and load balancing
US11050746B2 (en) 2019-01-29 2021-06-29 Cisco Technology, Inc. Media access control (MAC) address anonymization based on allocations by network controller elements
US11973823B1 (en) * 2023-01-11 2024-04-30 Dell Products L.P. Offloading namespace redirection to backup clients in a scale out cluster

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07245619A (ja) * 1994-03-03 1995-09-19 Hitachi Ltd Lanシステムの制御方法
US5617417A (en) * 1994-09-07 1997-04-01 Stratacom, Inc. Asynchronous transfer mode communication in inverse multiplexing over multiple communication links
US5608733A (en) * 1994-11-29 1997-03-04 Valle; Richard ATM inverse multiplexing
US6016319A (en) * 1995-10-31 2000-01-18 Lucent Technologies, Inc. Communications system for transmission of datagram packets over connection-oriented networks
US6016310A (en) * 1997-06-30 2000-01-18 Sun Microsystems, Inc. Trunking support in a high performance network device
US6151297A (en) 1997-07-08 2000-11-21 Hewlett-Packard Company Method and system for link level server/switch trunking
US6046979A (en) * 1998-05-04 2000-04-04 Cabletron Systems, Inc. Method and apparatus for controlling the flow of variable-length packets through a multiport switch
US6078960A (en) * 1998-07-03 2000-06-20 Acceleration Software International Corporation Client-side load-balancing in client server network
US7145869B1 (en) * 1999-03-17 2006-12-05 Broadcom Corporation Method for avoiding out-of-ordering of frames in a network switch
US6560630B1 (en) * 1999-03-18 2003-05-06 3Com Corporation Receive load balancing and fail over with multiple network interface cards
US6490632B1 (en) * 1999-03-18 2002-12-03 3Com Corporation High performance load balancing and fail over support of internet protocol exchange traffic over multiple network interface cards
US6553028B1 (en) * 1999-04-30 2003-04-22 Cisco Technology, Inc. Method and apparatus for multicast switching using a centralized switching engine
US6874147B1 (en) * 1999-11-18 2005-03-29 Intel Corporation Apparatus and method for networking driver protocol enhancement
JP2001292153A (ja) 2000-04-05 2001-10-19 Hitachi Cable Ltd スイッチングハブ
US20030028644A1 (en) * 2001-08-02 2003-02-06 Patrick Maguire System and method for load sharing within a core network
US7290059B2 (en) * 2001-08-13 2007-10-30 Intel Corporation Apparatus and method for scalable server load balancing
JP3898498B2 (ja) * 2001-12-06 2007-03-28 富士通株式会社 サーバ負荷分散システム
US20040151111A1 (en) * 2003-01-31 2004-08-05 Yarroll La Monte Resource pooling in an Internet Protocol-based communication system

Also Published As

Publication number Publication date
US8068498B2 (en) 2011-11-29
JP3792707B2 (ja) 2006-07-05
AU2003221109A1 (en) 2004-10-25
CN1765084A (zh) 2006-04-26
DE10394206T5 (de) 2006-03-30
WO2004088931A1 (ja) 2004-10-14
JPWO2004088931A1 (ja) 2006-07-06
US20060013224A1 (en) 2006-01-19

Similar Documents

Publication Publication Date Title
CN102918808B (zh) 在虚拟站接口发现和配置协议中传输虚拟局域网信息的方法
US7385939B2 (en) Network management apparatus and method for determining the topology of a network
EP1089523B1 (en) Apparatus and method of configuring a network device
US5850397A (en) Method for determining the topology of a mixed-media network
CN100474833C (zh) 数据通信负荷分散控制、负荷分散数据发送方法及装置
CN1592259B (zh) 网络用交换装置、路径管理服务器、网络接口装置及其控制方法
EP0926859B1 (en) Multiple virtual router
US7340536B2 (en) Method and apparatus for determining unmanaged network devices in the topology of a network
EP1695482B1 (en) Centralized configuration of link-scope-type managed objects in internet protocol (ip)-based networks
US8948178B2 (en) Network clustering
JP2002531968A (ja) 網の正確な位相特徴を決定する方法および装置
AU7868994A (en) Determination of network topology
US7720001B2 (en) Dynamic connectivity determination
US6781989B1 (en) Method to support VLANs on a phoneline network
CN101699791B (zh) 虚拟专用网管理装置及方法
Kenyon High Performance Data Network Design: Design Techniques and Tools
Cisco LAT Configuration and Management
US20040111426A1 (en) Dynamic management method for forwarding information in router having distributed architecture
US20050076143A1 (en) Techniques for resolving network connectivity
JP2002538671A (ja) ネットワークマネージメントシステムへのデータ送信
JP2002335245A (ja) ノード検出方法、ノード検出装置、及びノード検出プログラム
US20030074359A1 (en) Network management unit
KR100650003B1 (ko) 데이터 통신 부하 분산 제어 프로그램 및 데이터 부하 분산제어 방법
CN100566289C (zh) Vpn通信控制装置、vpn中的通信控制方法
GB2371708A (en) Method and system for processing data for network connections

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090401

Termination date: 20180331

CF01 Termination of patent right due to non-payment of annual fee