动态适配计算机网络中的最大传输单元大小的方法和系统的制作方法

文档序号:7798957阅读:365来源:国知局
动态适配计算机网络中的最大传输单元大小的方法和系统的制作方法
【专利摘要】一方面包括动态地适配计算机网络中的最大传输单元(MTU)大小。在计算机网络的交换机的第一链路处接收分组。基于与该交换机的第一链路相关联的应用编程接口(API)交叉值来确定接收的分组的MTU大小。确定作为接收的分组的目标目的地的该交换机的第二链路的相关联的目的地MTU大小。基于接收的分组的MTU大小和第二链路的相关联的目的地MTU大小之间的差来调整第二链路的相关联的目的地MTU大小。
【专利说明】动态适配计算机网络中的最大传输单元大小的方法和系统

【技术领域】
[0001]本发明涉及计算机网络,更具体地涉及动态地适配计算机网络中的最大传输单元的大小。

【背景技术】
[0002]在包括多个网络交换机的局域网(LAN)中通常采用以太网络。已经开发多个通信协议并且它们持续发展以改进对于各种环境的以太网络性能。例如,称为数据中心桥接(DCB)、融合增强以太网(CEE)或者数据中心以太网(DCE)的对以太网的改进支持LAN与存储区域网络(SAN)的融合。可以与以太网结合用在数据中心环境中的其他协议包括例如经以太网的光纤通道(FCoE)、因特网广域远程直接存储器访问协议(iWARP)、经融合以太网的远程直接存储器访问(RoCE )。为了不同的目的,各种应用可以采用不同的协议。
[0003]在网络中使用的各种以太网协议通常使用共同的以太网帧大小包封数据。最大传输单元(MTU)大小被定义为网络可以传输的最大数据单元。更大的MTU带来更高效率,因为在诸如头部或基本的每分组延迟的协议开销固定时,每个分组携带更多用户数据。这得到更高的效率,使得批量协议吞吐量的提高。更大的MTU还使得对于相同的数据量处理更少分组。在诸如混合架构的一些系统中,每分组处理可以是关键性能限制,但是,使用最大可能的MTU也可能是有问题的。例如,大的分组可能占据慢的链路达更长时间段,导致在增加滞后和最小等待时间的同时,导致对接下来的分组的更大延迟。作为例子,在网络层处因特网允许的最大的1500字节分组占用通常的14kbps调制解调器链路达大约一秒。在存在通信错误时,大的分组也是有问题的。分组中的单个位的讹误要求重新传输整个分组。在给定的位错误率时,更大的分组更可能出现讹误。更大的分组的重新传输花费更久,这可能降低整体系统吞吐量。


【发明内容】

[0004]根据本发明的一个方面,提供了动态地适配计算机网络中的最大传输单元(MTU)大小的方法。在计算机网络的交换机的第一链路处接收分组。基于与该交换机的第一链路相关联的应用编程接口(API)交叉值来确定接收的分组的MTU大小。确定作为接收的分组的目标目的地的该交换机的第二链路的相关联的目的地MTU大小。基于接收的分组的MTU大小和第二链路的相关联的目的地MTU大小之间的差来调整第二链路的相关联的目的地MTU大小。
[0005]根据本发明的另一方面,提供了动态地适配计算机网络中的最大传输单元大小的系统。该系统包括服务器以及通过计算机网络中的第一链路耦接到该服务器的交换机。该交换机还耦接到该计算机网络中的第二链路。该系统还包括MTU大小适配器,其在计算机网络中的交换机的第一链路处接收分组。基于与该交换机的第一链路相关联的应用编程接口(API)交叉值来确定接收的分组的MTU大小。确定作为接收的分组的目标目的地的该交换机的第二链路的相关联的目的地MTU大小。基于接收的分组的MTU大小和第二链路的相关联的目的地MTU大小之间的差来调整第二链路的相关联的目的地MTU大小。
[0006]根据本发明的另一方面,提供了动态地适配计算机网络中的最大传输单元大小的计算机程序产品。该计算机程序产品包括可由处理电路读取并且存储由该处理电路执行用于进行一种方法的指令的切实存储介质。该方法包括在计算机网络的交换机的第一链路处接收分组。基于与该交换机的第一链路相关联的应用编程接口(API)交叉值来确定接收的分组的MTU大小。确定作为接收的分组的目标目的地的该交换机的第二链路的相关联的目的地MTU大小。基于接收的分组的MTU大小和第二链路的相关联的目的地MTU大小之间的差来调整第二链路的相关联的目的地MTU大小。
[0007]通过本发明的技术实现另外的特征和优点。在此详细描述本发明的其他实施例和方面,并且这些被认为是主张的本发明的一部分。为了更好地理解具有优点和特征的本发明,参考描述和附图。

【专利附图】

【附图说明】
[0008]在说明书的结尾处的权利要求书中特别指出并明确主张被认为是本发明的主题。本发明的以上和其他特征以及优点从结合附图考虑的以下详细描述显而易见,附图中:
[0009]图1绘出可以根据一个实施例实现的包括具有有OpenFlow能力的交换机的网络的系统的框图;
[0010]图2绘出根据一个实施例的有OpenFlow能力的交换机的框图;
[0011]图3绘出可以在实施例中使用的OpenFlow流程切换定义的例子;
[0012]图4绘出可以根据一个实施例实现的包括交换机的网络的系统的框图;
[0013]图5绘出根据实施例的MTU大小适配器的框图;以及
[0014]图6绘出动态地适配MTU大小的处理的流程图。

【具体实施方式】
[0015]示例实施例涉及对于具有不同消息大小的不同类型的网络协议适应性地匹配不同的最大传输单元(MTU)大小。可以以分组为基础在一个或多个网络交换机处监视并调整MTU大小。每个链路可以使用时分复用以经过一段时间变化该相同链路的MTU大小。分组大小和网络链路性能可以用于估计和调整多个网络交换机的每个链路的MTU大小。
[0016]在一个示例实施例中,网络中的交换机在中央软件定义的网络(SDN)控制器的控制下。SDN是网络虚拟化的形式,其中控制平面与网络中的数据平面分离,并且被实现在软件应用中。此架构允许网络管理员具有对网络流量的可编程中央控制而无需对网络的硬件设备的物理访问。OpenFlow是给出经过网络对网络交换机或路由器的转发(forwarding)平面的访问的SDN的启用器(enabler )。中央SDN控制器可以接收来自网络中的所有交换机的消息并且向每个交换机提供关于虚拟队列的创建以及分组流量的路由的指令。中央SDN控制器监管(overlook)整个网络并且可以在特定时间瞬间激活对交换机的选择。
[0017]现在转向图1,现在将更详细地描述包括支持OpenFlow的网络101的系统100的例子。在图1所示的例子中,系统100是数据中心环境,包括多个服务器102以及配置为使用有OpenFlow能力的交换机106通过网络101通信的客户端系统104。在示例实施例中,服务器102、在此也称为主机或者主机系统是高速处理设备(例如主机计算机、桌面计算机、膝上型计算机、手持设备、嵌入式计算设备等),包括至少一个能够读取并执行指令并且处理与系统100的各个组件的交互的处理电路(例如计算机处理器/CPU)。服务器102可以是配置为访问并将大量数据存储到一个或多个数据存储系统108的存储系统服务器。
[0018]客户端系统104可以包括具有处理电路和诸如键/按钮、触摸屏、音频输入、显示设备和音频输出的输入/输出(I/O)接口的各种桌面型、膝上型、通用计算机设备、移动计算设备和/或联网的设备。客户端系统104可以直接或者经过一个或多个无线接入点110链路到交换机106中的一个或多个。
[0019]数据存储系统108涉及任意类型的计算机可读存储介质,并且可以包括一个或多个次级存储元件,例如硬盘驱动器(HDD)、固态存储器、带、或者在服务器102内部或者外部的存储系统。可以存储在数据存储系统108中的数据的类型包括例如各种文件和数据库。可以存在由每个服务器102利用的多个数据存储系统108,其可以分布在系统100的各个位置处。
[0020]系统100还包括网络控制器112,其是中央软件定义的控制器,配置为做出网络101内的路由决定。网络控制器112建立安全链路103以配置交换机106并建立在交换机106之间的链路105的通信属性。例如,网络控制器112可以配置交换机106以控制对于服务器102和客户端系统104以及一个或多个防火墙114以及一个或多个负载平衡器116之间的数据流的分组路由路径。该一个或多个防火墙114限制网络101和一个或多个外部网络118之间的网络流量的访问和流动。该一个或多个负载平衡器116可以在多个计算机之间、比如在服务器102之间分发工作量。
[0021]服务器102、客户端系统104和网络控制器112可以包括本领域中已知的各种计算机/通信硬件和软件技术,比如一个或多个处理单元或电路、包括可移除介质的易失性和非易失性存储器、电源、网络接口、支持电路、操作系统等。尽管网络控制器112被绘出为单独的组件,但是将理解,可替换地,网络配置功能可以以单独的或者分布式格式实现在服务器102或客户端系统104的一个或多个中。
[0022]网络101可以包括无线、有线和/或光纤链路的组合。为了说明的目的。图1所示的网络101表示简化的例子。例如,在网络101中示出的每个链路105可以包括多于一个物理链路。网络101的实施例可以包括许多交换机106 (例如数百个),每个交换机106具有数十个端口和链路。网络101可以支持允许在服务器102、客户端系统104、交换机106、网络控制器112、防火墙114和负载平衡器116之间传输数据的各种已知的通信标准。通信协议通常实现在一个或多个层中,比如物理层(层-1)、链路层(层_2)、网络层(层-3)、传输层(层-4)和应用层(层-5)。在示例实施例中,网络101支持OpenFlow作为层-2协议。交换机106可以是专用OpenFlow交换机或者是也支持层_2和层-3以太网的OpenFlow使能的通用交换机。
[0023]图2绘出支持OpenFlow的图1的交换机106的框图。交换机106包括交换机逻辑202、安全信道204、协议支持205、流程表206、缓冲器208a_208n以及端口 210a_210n。交换机106还可以包括如参考图5进一步描述的MTU大小适配器500。可替换地,MTU大小适配器500可以整个或者部分地被包括在图1的网络控制器112内。交换机逻辑202和/或MTU大小适配器500可以被实现在一个或多个处理电路中,其中计算机可读存储介质配置为保存对于交换机逻辑202和/或MTU大小适配器500的指令以及支持交换机106的操作的各种变量和常数。交换机逻辑202在端口 210a-210n之间转发分组,作为由图1的网络控制器112定义的流程。
[0024]安全信道204将交换机106连接到图1的网络控制器112。安全信道204允许在网络控制器112和交换机106之间经由OpenFlow协议传送命令和分组。安全信道204可以被实现在软件中作为存储在交换机106内的可执行指令。建立用于实现OpenFlow的协议定义以及其他协议的协议细节可以被存储在协议支持205中。协议支持205可以是定义一个或多个支持的协议格式的软件。协议支持205可以被体现在例如闪存的计算机可读存储介质中,其配置为保存用于由交换机逻辑202执行的指令。将协议支持205实现为软件使能够实现对于协议的新版本或变型的字段的更新,并且可以提供OpenFlow作为对现有传统路由器或交换机的改进。
[0025]流程表206定义与特定地址、虚拟局域网或者交换机端口相关联的支持的连接类型。流程可以被定义为匹配于特定头部格式的所有分组。流程表206中的每个项目211可以包括一个或多个规则212、动作214和与特定流程相关联的统计216。规则212定义每个流程并且可以由分组头部确定。动作214定义如何处理分组。统计216跟踪诸如每个流程的大小(例如字节数)、每个流程的分组数量以及自从流程的上一个匹配分组起的时间或者连接时间的信息。动作的例子包括用于将流程的分组转发到一个或多个具体端口 210a-210n(例如单播或多播)、包封并转发流程的分组到图1的网络控制器112、以及丢弃流程的分组的指令。流程表206中的项目211可以由图1的网络控制器112经由安全信道204添加和去除。图1的网络控制器112可以预填充流程表206中的项目211。另外,交换机106可以在接收到流程而在流程表206中没有相应的项目211时从网络控制器112请求创建项目211。
[0026]缓冲器209a_208n提供在端口 210a_210n之间发送队列时对流程在队列中的暂时存储。在无损配置中,当出现网络拥塞时,不是丢弃分组,缓冲器208a-208n暂时存储分组直到图1的相关联的端口 210a-210n以及链路105可用。缓冲器208a_208n的每个可以与特定端口、流程或子网络相关联。缓冲器208a-208n的每个逻辑上分离但是不需要物理地独立。因而,当缓冲器208a-208n中的一个已满时,其不会不利地影响交换机106内的其他缓冲器208a-208n的性能。
[0027]图3绘出可以用在实施例中的OpenFlow流程切换定义300的例子。OpenFlow流程切换定义300是包括高达十一个元组(tuple)或字段的示例的流程头部;但是,不是所有的元组都需要依赖于特定流程来定义。在图3的例子中,OpenFlow流程切换定义300包括用于标识进入端口 302、以太网目的地地址304、以太网源地址306、以太网类型308、虚拟局域网(VLAN)优先级310、VLAN标识符312、因特网协议(IP)源地址314、IP目的地地址316、IP协议318、传输控制协议(TCP) /用户数据报协议(UDP)源端口 320和TCP/UDP目的地端口 322的元组。以太网目的地地址304可以表示在遗留切换和路由中使用的层-2以太网硬件地址或者媒体访问控制(MAC)地址。IP目的地地址316可以表示在遗留(legacy)切换和路由中使用的层-3IP地址。可以对于OpenFlow流程切换定义300中的元组的任意组合定义流程切换,元组的特定组合用作密钥(key)。例如,可以通过对于集合的MAC-子网络、IP-子网络、端口、VLAN标识符等的准确匹配或通配符匹配在图2的规则212中定义流程。
[0028]图4绘出根据一个实施例可以实现的包括交换机406的网络401的系统400的框图。类似于图1的系统100,系统400包括配置为经过交换机406的网络401中的链路405而通信的多个服务器102和客户端系统104。在网络401中示出的每个链路405可以包括多于一个物理链路。与图1的系统100相反,交换机406没有OpenFlow能力。客户端系统104可以直接或者经过一个或多个无线接入点110无线地链路到交换机406中的一个或多个。而且类似于图1的系统100,系统400包括多个数据存储系统108、一个或多个负载平衡器116以及一个或多个防火墙114以控制对一个或多个外部网络118的访问。
[0029]不是包括诸如图1的网络控制器112的单独的网络控制器,控制和路由方面由服务器102、客户端104以及交换机406中的一个或多个来处理。因而,当控制逻辑被定位在交换机406内时,交换机406不需要包括图2的安全信道204。在示例实施例中,图1的交换机106以及图4的交换机406包括如参考图5进一步描述的MTU大小适配器500。
[0030]图5绘出根据实施例的MTU大小适配器500的框图。MTU大小适配器500包括调整逻辑502,其分析来自一个或多个接收队列506的接收的分组504。在诸如图1的链路105或者图4的链路405的一个或多个链路505a上经由端口 508接收分组504。调整逻辑502可以基于定义分组大小的应用编程接口(API)交叉值510来确定每个接收的分组504的MTU大小。调整逻辑502访问MTU数据存储器510以取回诸如项目513的信息,该项目513包括具有相关联的目的地MTU大小516的链路标识符514。接收的分组504中的头部数据可以用于标识传输端口 518和相关联的连接505b中的哪个应该用于发送接收的分组504作为传输分组520。链路标识符514与传输端口 505以及诸如图1的链路105和图4的链路405中的一个的链路505b相关联。调整逻辑502可以在将接收的分组504放置在传输队列522中作为传输分组520之前对接收的分组504进行调整。例如,如果确定的接收的分组504的MTU大小超过相关联的目的地MTU大小516,则调整逻辑502可以将接收的分组504分割为多个传输分组520,使得传输分组520小于相关联的目的地MTU大小516。
[0031]MTU数据存储器512可以包括可以通过消息类型524进一步区分的对于相同的链路505b的多个项目513。例如,对于给定链路505b的命令类型消息可以具有比数据类型消息更小的相关联的目的地MTU大小。MTU数据存储器512中的项目513还可以包括定时数据525。定时数据525可以用于在两个或多个不同的MTU大小之间对给定链路505b排序,使得经过一过段时间在链路505b上使用更大和更小MTU大小的组合。定时数据525可以指示对于相关联的链路505b的定时切换间隔和/或时分复用MTU大小值的序列。因而,调整逻辑502可以访问定时器526作为用于切换每个链路505b的MTU大小的时基(timebase)。
[0032]调整逻辑502还可以使用性能监视器528来监视链路505b的拥塞、利用、重新传输率和倾向。识别的链路505b的倾向变得更慢、超利用或者更多错误的趋势可能导致调整逻辑502减小相关联的目的地MTU大小516。同样,随着监视的链路505b变得更不拥塞、利用得更少或者更可靠,调整逻辑502可以朝向链路505b的最大支持的大小增加相关联的目的地MTU大小516。
[0033]链路505a和505b的每个可以包括多个物理连接。因而,如果多个物理链路耦接到相同的目标目的地,则可以基于从相关联的目的地MTU大小516确定最佳匹配MTU值将接收的分组504路由到MTU大小适配器500的相关联的网络中的目标目的地。例如,如果在包含MTU大小适配器500的交换机之间的链路505b包括到相同的目标目的地的一对物理链路,其中第一物理链路具有1500字节的相关联的目的地MTU大小516并且第二物理链路具有9k字节的相关联的目的地MTU大小516,则调整逻辑502可以使用此信息基于其确定的MTU大小来匹配对于接收的分组504的路由决定。
[0034]现在转向图6,将在一个示例实施例中描述用于动态地适配计算机网络中的MTU大小的处理600的流程图。参考图1-5描述处理600,并且该处理600可以由图1的系统100和/或图4的系统400实现。为了说明的目的,主要考虑图1的系统100以及图5的MTU大小适配器500来提供以下例子。
[0035]在块602,在计算机网络101的交换机106的第一链路505a处接收分组504。在块604,基于交换机106的第一链路505a相关联的API交叉值510确定接收的分组504的MTU大小。在块606,确定交换机106的第二链路505b的相关联的目的地MTU大小516,其中第二链路505b是接收的分组504的目标目的地。
[0036]在块608,基于接收的分组504的MTU大小和第二链路505b的相关联的目的地MTU大小516之间的差别调整第二链路505b的相关联的目的地MTU大小516。调整可以包括基于确定接收的分组504的MTU大小小于第二链路505b的相关联的目的地MTU大小516而减小第二链路505b的相关联的目的地MTU大小516。如果第二链路505b可以支持更大的MTU大小,则可以增加第二链路505b的相关联的目的地MTU大小516以匹配接收的分组504的MTU大小。
[0037]MTU大小调整还可以基于消息类型,其中确定接收的分组504的消息类型524。基于确定消息类型524是控制消息类型,可以将第二链路505b的相关联的目的地MTU大小516调整得更低,并且基于确定消息类型524是数据消息类型,可以将第二链路505b的相关联的目的地MTU大小516调整得更高。
[0038]还可以进行或者可替换地进行基于时间的MTU大小调整。例如,通过基于时间段在不同的大小之间调整第二链路505b的相关联的目的地MTU大小516,可以进行在第二链路505b上的时分复用。定时数据525和定时器526可以支持时分复用。
[0039]MTU大小调整可以基于网络性能。例如,性能监视器528可以监视在交换机106处的网络性能。可以基于经过一个时间段的网络性能来调整第二链路505b的相关联的目的地MTU大小516以响应于以下的一个或多个而逐渐地减小第二链路505b的相关联的目的地MTU大小516:第二链路505b的增加的拥塞水平以及第二链路505b的增加的重新传输率。调整逻辑502还可以响应于以下的一个或多个而逐渐地增加第二链路505b的相关联的目的地MTU大小516:第二链路505b的降低的拥塞水平以及第二链路505b的降低的重新传输率。
[0040]在块610,基于确定接收的分组504的MTU大小大于第二链路505b的相关联的目的地MTU大小516而将接收的分组504分段为多个传输分组520。
[0041]在一个示例实施例中,第二链路505b包括具有较低相关联的目的地MTU大小516和较高相关联的目的地MTU大小516的一对物理链路。基于确定接收的分组504的MTU大小小于或等于较低相关联的目的地MTU大小516,可以将接收的分组504路由到具有较低相关联目的地MTU大小516的物理链路。类似地,基于确定接收的分组504的MTU大小大于较低相关联的目的地MTU大小516,可以将接收的分组504路由到具有较高相关联目的地MTU大小516的物理链路。
[0042]技术效果包括动态地适配对于计算机网络中的最大传输单元大小的网络流量。基于分组进行MTU大小调整允许更有效的网络利用。可以基于分组大小、消息类型和定时参数在较大和较小大小之间动态地调整MTU大小。另外,可以在网络交换机内本地地划分分组以匹配特定链路的MTU限制。
[0043]所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0044]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形和非暂时性存储介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0045]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0046]体现在计算机可读介质上的程序代码可以用任何适当的介质传输,所述介质包括但不限于:无线、有线、光缆、RF等,或上述的任意合适的组合。
[0047]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言一诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0048]本文中将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0049]也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruct1nmeans)的制造品(manufacture)。
[0050]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0051]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0052]在此使用的术语仅是为了描述特定实施例,且不旨在限制本发明。如在此使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外清楚地指明。还将理解,当在说明书中使用时,术语“包括”和/或“包含”指明存在所述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件和/或组件。
[0053]所附权利要求书中的所有装置或步骤加功能元件的相应结构、材料、操作以及等价物,如有的话,旨在包括用于结合如特别要求保护的其他所要求保护的元件来执行所述功能的任何结构、材料或操作。呈现本发明的说明是为了示出和描述的作用,但不是穷尽性的或将本发明限制于所公开的形式。许多修改和变化对本领域普通技术人员来说是明显的,且不脱离本发明的范围。选择和描述实施例是为了最佳地解释本发明的原理和实际应用,并使得本领域普通技术人员能针对适于考虑的特定用途的具有各种修改的各种实施例理解本发明。
【权利要求】
1.一种动态地适配计算机网络中的最大传输单元(MTU)大小的方法,包括: 在计算机网络的交换机的第一链路处接收分组; 基于与该交换机的第一链路相关联的应用编程接口(API)交叉值来确定接收的分组的MTU大小; 确定作为接收的分组的目标目的地的该交换机的第二链路的相关联的目的地MTU大小;以及 基于接收的分组的MTU大小和第二链路的相关联的目的地MTU大小之间的差来调整第二链路的相关联的目的地MTU大小。
2.如权利要求1的方法,其中调整第二链路的相关联的目的地MTU大小还包括: 基于确定接收的分组的MTU大小小于第二链路的相关联的目的地MTU大小,减小第二链路的相关联的目的地MTU大小。
3.如权利要求1的方法,还包括: 基于确定接收的分组的MTU大小大于第二链路的相关联的目的地MTU大小,将接收的分组分段为多个传输分组。
4.如权利 要求1的方法,还包括: 确定接收的分组的消息类型; 基于确定消息类型是控制消息类型,将第二链路的相关联的目的地MTU大小调整得更低;以及 基于确定消息类型是数据消息类型,将第二链路的相关联的目的地MTU大小调整得更闻。
5.如权利要求1的方法,还包括: 通过基于时间段在不同的大小之间调整第二链路的相关联的目的地MTU大小,在第二链路上进行时分复用。
6.如权利要求1的方法,其中第二链路包括一对物理链路,其包括较低相关联的目的地MTU大小以及较高相关联的目的地MTU大小,并且该方法还包括: 基于确定接收的分组的MTU大小小于或等于较低相关联的目的地MTU大小,将接收的分组路由到具有较低相关联的目的地MTU大小的物理链路;以及 基于确定接收的分组的MTU大小大于较低相关联的目的地MTU大小,将该接收的分组路由到具有较高相关联的目的地MTU大小的物理链路。
7.如权利要求1的方法,还包括: 监视交换机处的网络性能; 经过一个时间段基于网络性能调整第二链路的相关联的目的地MTU大小,以响应于以下的一个或多个而逐渐减小第二链路的相关联的目的地MTU大小:第二链路的增加的拥塞水平以及第二链路的增加的重新传输率;以及 响应于以下的一个或多个而逐渐增加第二链路的相关联的目的地MTU大小:第二链路的降低的拥塞水平以及第二链路的降低的重新传输率。
8.一种用于动态地适配计算机网络中的最大传输单元(MTU)大小的系统,包括: 服务器; 交换机,通过计算机网络中的第一链路耦接到该服务器,该交换机还耦接到该计算机网络中的第二链路;以及 MTU大小适配器,配置为进行包括以下的方法: 在计算机网络中的交换机的第一链路处接收分组; 基于与该交换机的第一链路相关联的应用编程接口(API)交叉值来确定接收的分组的MTU大小; 确定作为接收的分组的目标目的地的该交换机的第二链路的相关联的目的地MTU大小;以及 基于接收的分组的MTU大小和第二链路的相关联的目的地MTU大小之间的差来调整第二链路的相关联的目的地MTU大小。
9.如权利要求8的系统,其中调整第二链路的相关联的目的地MTU大小包括:基于确定接收的分组的MTU大小小于第二链路的相关联的目的地MTU大小,减小第二链路的相关联的目的地MTU大小,以及该MTU大小适配器还配置为进行: 基于确定接收的分组的MTU大小大于第二链路的相关联的目的地MTU大小,将接收的分组分段为多个传输分组 。
10.如权利要求8的系统,其中该计算机网络是融合的以太网络。
11.如权利要求8的系统,其中该MTU大小适配器还配置为进行: 确定接收的分组的消息类型; 基于确定消息类型是控制消息类型,将第二链路的相关联的目的地MTU大小调整得更低;以及 基于确定消息类型是数据消息类型,将第二链路的相关联的目的地MTU大小调整得更闻。
12.如权利要求8的系统,其中该MTU大小适配器还配置为通过基于时间段在不同的大小之间调整第二链路的相关联的目的地MTU大小,在第二链路上进行时分复用。
13.如权利要求8的系统,其中第二链路包括一对物理链路,其包括较低相关联的目的地MTU大小以及较高相关联的目的地MTU大小,并且该MTU大小适配器还配置为进行: 基于确定接收的分组的MTU大小小于或等于较低相关联的目的地MTU大小,将接收的分组路由到具有较低相关联的目的地MTU大小的物理链路;以及 基于确定接收的分组的MTU大小大于较低相关联的目的地MTU大小,将该接收的分组路由到具有较高相关联的目的地MTU大小的物理链路。
14.如权利要求8的系统,其中该MTU大小适配器还配置为进行: 监视交换机处的网络性能; 经过一个时间段基于网络性能调整第二链路的相关联的目的地MTU大小,以响应于以下的一个或多个而逐渐减小第二链路的相关联的目的地MTU大小:第二链路的增加的拥塞水平以及第二链路的增加的重新传输率;以及 响应于以下的一个或多个而逐渐增加第二链路的相关联的目的地MTU大小:第二链路的降低的拥塞水平以及第二链路的降低的重新传输率。
【文档编号】H04L12/70GK104052684SQ201410095571
【公开日】2014年9月17日 申请日期:2014年3月14日 优先权日:2013年3月15日
【发明者】C.德库萨迪斯, R.B.克里施纳莫西 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1