首页> 中国专利> IP通信装置及其所组成的IP通信系统

IP通信装置及其所组成的IP通信系统

摘要

一对IP通信装置(称为源装置和目的地装置)在铺设在它们之间的通信路径上使用IP包(如,MAC帧或巨型帧)来执行通信。该IP通信装置检验MAC帧的大小是否超过了预先确定的最大帧大小;之后,将ICMP错误发回到具有包含在MAC帧的规定部分中的IP地址的源装置。源装置还执行路径MTU发现来确定适当的MTU,从而提高通信效率而不会在通信中引起黑洞。

著录项

  • 公开/公告号CN1933486A

    专利类型发明专利

  • 公开/公告日2007-03-21

    原文格式PDF

  • 申请/专利权人 雅马哈株式会社;

    申请/专利号CN200610127455.5

  • 发明设计人 广濑良太;

    申请日2006-09-15

  • 分类号H04L29/06;H04L12/56;

  • 代理机构北京天昊联合知识产权代理有限公司;

  • 代理人陈源

  • 地址 日本静冈县

  • 入库时间 2023-12-17 18:25:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-01-26

    授权

    授权

  • 2007-05-16

    实质审查的生效

    实质审查的生效

  • 2007-03-21

    公开

    公开

说明书

技术领域

本发明涉及使用IP包来执行通信的IP通信装置及其所组成的IP通信系统。

本申请要求日本专利申请No.2005-270626的优先权,其内容以引用的方式并入本文。

背景技术

题为“RFC 791”的文献(可通过互联网使用URL为http://www.ietf.org/rfc/rfc791.txt来在线检索到)指出在为第三层(即,网络层)安排的网际协议(IP)中,引入了MTU(即,最大传输单元)的概念来根据诸如为第二层(即,数据链路层)安排的以太网(即,注册商标)之类的各种协议以实现信息和数据的存储。MTU指出了通过为第二层安排的协议而可被存储的最大数据长度。

一个IP包(或一个IP数据报)的最大数据长度被定义为65535个八位字节。为了通过MAC帧存储IP包,例如应将其分成1500个八位字节的单元,每一个单元与以太网的最大帧大小(即,MTU)相对应。

为第二层安排了除以太网之外的各种协议;因此存在各种MTU,从而可以根据互联网环境中的多个第二层协议来存储IP包。当把IP包从某一具有相对较大MTU的第二层协议传输到另一具有相对较小MTU的第二层协议时,必须将IP包分为多个片段。当产生片段时,因为每个IP包都附上了包头,所以应相应地增加IP包的总数,从而增加传输数据的总量;这减少了总通信效率。由于这个原因,使用节点到节点通信(或主机到主机通信),其中借助两个节点和(存在于该两个节点之间路径中的)另一节点中具有最小MTU的一个来分割IP包,从而增加通信效率。最初,由路由器来执行包的分割;近年来,由发送源主机来执行包的分割以减小路由器的过载。为了实现这种程序,引入了路径MTU发现方法来发现通信路径中的最短MTU;这在题为“RFC 1191”的文献(可通过互联网使用URL为http://www.ietf.org/rfc/rfc1191.txt来在线检索到)中有介绍。

图1示出了路径MTU发现算法,其通过以下步骤实现。

(1)首先,源主机(H1)在IP头设置一个不分段标志。

(2)一个IP包被发送。在图1的情况下,被发送的IP包的包长度为1500。

(3)当发送数据长度超过MTU的IP包时,路由器不会将发送来的IP包分段,而是将其丢弃。

(4)在未能到达目的地的情况下,根据ICMP(网际控制报文协议)向源主机通知错误。在图1的情况下,例如在路由器R1和R2之间铺设电话线,其中MTU=576(八位字节)。由于这个原因,路由器R1把从源主机H1发送来的包长度为1500八位字节的IP包丢弃;之后,其把类型=3(未能到达目的地)且代码=4(所需的分段和设置的DF)的ICMP消息或ICMP错误通知到源主机H1。ICMP错误包括了指示从路由器R1延伸的路径以MTU=576(八位字节)设置的信息。

(5)此后,每一个都与被通知的MTU相匹配的包被重新发送。在此情况下,源主机H1将其MTU变为576八位字节,以便将包长度为576八位字节的IP包重新发送到目的地主机H2。由于源主机H1和目的地主机H2之间所铺设的路径具有576或更多八位字节的MTU,所以重新发送的IP包完整地到达目的地主机H2。

在上述例子中,一接收到单个ICMP错误就可进行路径MTU发现过程。然而,通常重复上述步骤(2)到(5),直到IP包完整地到达目的地主机H2(换句话说,直到不再发生ICMP通知)。

图2示出了在完成上述路径MTU发现过程后对在源主机H1和目的地主机H2之间发送的IP包进行分割和重组的过程。如上所述,为铺设在源主机H1和目的地主机H2之间的路径设置576八位字节的最小MTU。源主机H1将包长度为1500八位字节的IP包分割为三个包,即,两个包长度均为576八位字节的包和一个包长度为348八位字节的包;因此,源主机H1向目的地主机H2发送三次包。目的地主机H2将这三个包重组(恢复)为原始IP包。

为了提高通信效率,已将最大帧大小超过了(由前述标准定义的)1500八位字节的MAC帧(称为“巨型帧”)用在以太网中。

巨型帧的最大帧大小比以太网的原始MTU(即,1500八位字节)大;换句话说,它们可扩展以太网的原始MTU。不存在清楚地描述巨型帧的最大帧大小的标准;实际上,MTU取决于制造商和产品。

由于上述原因,网络管理者必须检查装置的MTU,装置相互连接在一起以使用各种帧大小来执行通信;因此,网络管理者必须手动设置相互连接的装置以实现在通信路径中所使用的最小MTU。这种手动设置操作是很繁琐的,并且可能会引起设置错误而使通信下降。

例如,当接收端装置接收到比其自身定义的指定帧大小还大的帧时,其仅将在第二层(即,数据链路层)中的那些帧丢弃。这会引起“黑洞”,即发送端装置无法接收到关于发送该帧的回复。题为“RFC2923”的文献(可通过互联网使用URL为http://www.ietf.org/rfc/rfc2923.txt来在线检索到)介绍了一种方法,其中一旦发生黑洞,则使用上述路径MTU发现算法来重新发送减小了MTU的MAC帧。

在发生了黑洞时的路径MTU发现过程中,发送端装置在等待到关于没有来自接收端装置的回复的检测超时之后启动路径MTU发现过程;因此与正常程序相比,在启动路径MTU发现过程之前花了相对较长的时间。

在正常的路径MTU发现过程中,一个发送ICMP错误的节点(或接收端装置)描述了关于ICMP错误中基准MTU的信息;因此,这使得发送端装置可以根据该信息来检验通信路径中的MTU。在发生黑洞时的路径MTU发现过程中,没有将信息送回到发送端装置;因此,例如发送端装置必须使用另一方法来搜索将一步步减小的MTU。

假设,如图3所示,将包从具有MTU=9000(八位字节)的源主机H1发送到具有MTU=7000(八位字节)的目的地主机H2。当源主机H1将帧大小为9000八位字节的包发送到目的地主机H2时,布置在它们之间的交换集线器SH仅将帧大小为9000八位字节的相应MAC帧传输到目的地主机H2。然而,该MAC帧在目的地主机H2中过大,所以目的地主机H2直接将其丢弃。

在上述情况下,源主机H1并未在指定时间段内从主机H2接收到回复,所以源主机H1将该9000八位字节的MAC帧分割为两个各具有一半MTU(即,4500八位字节)的MAC帧,之后,其重新发送各具有MTU=4500(八位字节)的已分割的MAC帧,其中该MTU=4500(八位字节)小于目的地主机H2的MTU=7000(八位字节);因此,目的地主机H2可以将它们可靠地接收并进行处理。

在上述情况下,因为对于可以接收每一个具有MTU=7000(八位字节)的包的目的地主机H2,使用了各具有MTU=4500(八位字节)的包来执行通信,所以势必会降低通信效率。在这种情况下,可以尝试通过改变应用于原始MAC包的减小率来多次执行包的分割,从而计算出一个适当的帧大小。然而,这增加了尝试执行包的分割的次数并且最终减小了通信效率。

发明内容

本发明的一个目的是提供一种IP通信装置,其可以使用巨型帧来执行高效率通信并可消除由网络管理器执行设定的必要。

在本发明的第一方面中,IP通信装置包括:发送器、接收器、以及用于检验接收到的数据的帧大小是否超过预先确定的最大帧大小的帧大小检验器。该IP通信装置还产生ICMP错误,该ICMP错误包括从接收到的数据提取的用来表示源地址的信息和作为MTU的最大帧大小,从而通过发送器将该ICMP错误送回到源地址。这里,在接收到ICMP错误时执行路径MTU发现。

 在本发明的第二方面中,IP通信系统是由多个IP通信装置组成的,该IP通信装置的每一个都包括:发送器、接收器、以及用于检验接收到的数据的帧大小是否超过预先确定的最大帧大小的帧大小检验器。另外,该IP通信装置还产生ICMP错误,该ICMP错误包括从接收到的数据提取的用来表示源地址的信息和作为MTU的最大帧大小。而且,在接收到ICMP错误时至少有一个IP通信装置执行路径MTU发现。

如上所述,当接收到的数据的帧大小超过了最大帧大小时,该IP通信装置将ICMP错误送回到由接收到的数据包含的信息所指定的源地址,其中,该ICMP错误还包括作为MTU的最大帧大小。因此,具有该源地址的源装置可在第二层(即,数据链路层)中检测到作为关于到达该网络层的IP包的错误的超过帧大小错误。另外,该源装置还可检测一个适合于铺设在该源装置和该目的地装置之间的通信路径的适当的MTU。

在接收到ICMP错误时执行路径MTU发现,从而调整发送帧大小来与送回该ICMP错误的IP通信装置的MTU匹配。这样迅速地确定了满足该通信路径的适当MTU,而不会在通信中引起黑洞;因此,可以提高通信效率。

附图说明

将参考以下附图详细描述本发明的这些及其他目的、方面、和

实施方式,其中:

图1是说明了与铺设在经由路由器的两个主机之间的通信线相关的路径MTU发现处理的顺序图;

图2是说明了在位于经由路由器的两个主机之间的通信线中的包的分段的顺序图;

图3是说明了包分割的顺序图,其中相对于铺设在经由交换集线器的两个主机之间的通信线来改变应用于原始MAC包的减小率;

图4是示出了根据本发明优选实施例的IP通信装置的组成的框图;

图5示出了IP包和MAC帧之间的关系;

图6示出了ICMP包的结构;

图7是示出了IP通信装置接收数据的处理的流程图,其中所述数据的帧大小与最大帧大小相比较而被检验;

图8A是示出在接收到ICMP错误时IP通信装置的处理的流程图;以及

图8B是示出由IP通信装置执行的路径MTU发现的详情的流程图。

具体实施方式

将参考附图通过示例进一步详细描述本发明。

图4是示出了根据本发明优选实施例的IP通信装置的组成的框图。接收器11基于以太网接收信号,从而对其最大帧大小都由规定位数限制的MAC帧执行缓冲。帧大小检验器12检验接收到的MAC帧是否符合缓冲的被限制的最大帧大小,换句话说,它检验接收到的每一个MAC帧的帧大小是否超过了缓冲的被限制的最大帧大小。CPU 13分析经过指定处理的接收和缓冲的MAC帧。例如,在第二层(即,数据链路层)中,CPU 13从MAC帧中提取MAC头、数据部分、和FCS(帧检验序列)部分,从而执行错误检验。在第三层(即,网络层)中,CPU 13从MAC帧中提取数据部分,即IP包的IP头和有效负荷(或数据)。在第四层(即,传输层)中,CPU 13提取IP包的有效负荷,即TCP段的TCP头和数据(其中TCP表示传输控制协议)。对于更高次序的层,CPU 13根据例如使用从TCP段中提取的传输控制协议(TCP)的应用程序的数据来执行指定的处理。

另外,CPU 13把要传输的MAC帧通过以太网输出到发送器14。发送器14通过以太网将它们发送出去。

当帧大小检验器12检测到接收到的MAC帧的帧大小超过了被限制的最大帧大小时,CPU 13产生ICMP错误,该ICMP错误随后将由发送器14进行发送。

图5示出了MAC帧和IP包之间的关系。MAC帧包括MAC头、数据、和FCS。MAC头包括目的地MAC地址、源MAC地址、和帧类型。IP包包括IP头和有效负荷。IP头包括源IP地址、目的地IP地址、和有效负荷长度。

图6示出了与ICMP错误对应的包,其包括IP头和ICMP报文。

ICMP报文通常描述了识别错误的内容(或原因)以及引起错误的IP包的前半部分的信息。然而,在帧大小超过被限制的最大帧大小以至于无法完整提取相应IP包时产生的ICMP错误中,通过从接收到的MAC帧的数据中提取IP包的必要部分来产生ICMP报文。

下面将参考图7和图8A及8B来描述并入图4所示IP通信装置中的CPU 13的处理,其中该IP通信装置作为通信路径中的源装置或目的地装置,或作为通信路径中布置在源装置和目的地装置之间的插入装置。

图7是示出了作为通信路径中的插入装置或目的地装置的IP通信装置的CPU 13的处理的流程图。当图4所示帧大小检验器12产生了表示接收到的帧大小超过“可处理的”最大帧大小的帧大小检验结果“NG”时,CPU 13从在接收器11中累积的缓冲中的MAC帧的前半部分提取关于通信路径的源装置的IP地址,以便将ICMP错误送回到该源装置。这是通过图7所示一系列步骤S1、S2、和S3实现的。使用图6所示ICMP包来实现ICMP错误,其中IP头包括提取的源装置的IP地址以及当前指定装置的IP地址,并且在IPv4(即,互联网协议版本4)的情况下,ICMP报文包括“类型=3”(表示“未能到达目的地”)和“代码=4”(表示分段错误)。在IPv6(即,互联网协议版本6)的情况下,ICMP报文包括“包过大”代码。另外ICMP报文还包括一个适当的MTU,其表示在第二层中可由IP通信装置处理的最大帧大小。

当帧大小检验器12产生了表示接收到的帧大小不大于“可处理的”最大帧大小的帧大小检验结果“OK”时,在步骤S4中,对相应MAC帧执行正常处理。

下面将参考图8A和8B描述在通信路径中作为源装置的IP通信装置的CPU 13的处理详情。如图8A所示,当IP通信装置接收到ICMP错误时,其执行路径MTU发现(见步骤S11和S12)。图8B示出了路径MTU发现的详情。在步骤S21中,MTU被设置为应用于IP通信装置的最大值。在步骤S22中,IP头包含的不分段标志被设为“1”。在步骤S23中,通信路径中的IP通信装置向目的地装置发送IP包。

当作为通信路径中的插入装置或目的地装置的IP通信装置接收到一个其帧大小超过上述MTU的MAC帧时,它把表示了未能到达目的地报文的ICMP错误(见图7所示的步骤S3)送回到通信路径中的源装置;因此,作为源装置的IP通信装置接收到这样的ICMP错误。在这种情况下,IP通信装置读取该ICMP错误中所包含的MTU,以便执行对相应的IP包的分段,该相应的IP包将在随后被分段并重新发送到目的地装置。这是由一系列步骤S24、S25、S22和S23实现的。

重复上述步骤直到IP通信装置未接收到上述表示未能到达目的地报文的ICMP错误。因此,可以在铺设于源装置和目的地装置之间的通信路径中产生适当的MTU。

IP通信系统是由多个在通信路径中作为源装置、插入装置和目的地装置的IP通信装置组成的;因此,将每一IP通信装置设计为解决图7的处理(其中检验接收到的帧大小,并且如果必要的话将ICMP错误送回到源装置)和图8A和8B的处理(其中在接收到ICMP错误时执行路径MTU发现)。具体地说,在接收到ICMP错误时步骤S4的处理(当在步骤S1中接收到的帧大小为“OK”时所执行的处理)包括路径MTU发现(见图8A和8B)。

在图8A和8B中,ICMP错误的接收触发了将要执行的路径MTU发现;因此,在路径MTU发现的处理期间再次将ICMP错误通知到源装置。由于在接收到其帧大小超过指定MTU的MAC帧时被通知到源装置的上述ICMP错误包括了适当的MTU,所以随着ICMP错误的第一次接收,源装置可以将其MTU改变为该适当的MTU,从而减少路径MTU发现。

如前所述,本发明并不需限制在上述例举的非限制性实施例中;因此,可以在所附权利要求定义的本发明的范围内提出进一步的修改。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号