专利名称:通信设备和方法
技术领域:
本发明涉及一种通信设备和方法,更特别地,本发明涉及
一种用于将数据分割(fragment)和传送数据的通信技术。
背景技术:
存在利用符合IEEE 802.3标准的网络并使用IP(因特网协议) 作为通信协议的系统。可使用TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户 数据报协议)作为比IP层更上层中的协议。此外,IP层下面的层 由LLC(Logical Link Control: IEEE 802.2,逻辑《连接控制)和 MAC (Media Access Control , 媒体访问控制)层、以及 PHY(physical,物理)层等构成。
根据IP规范,可将 一 个IP包中的数据量定义为最大可达 65535个八位字节。然而, 一般地,为了在连接至网络的站之间 合理地使用有限的网络带,可以这样配置限制传送的包的大 小以避免由特定的站造成的对带的压力的影响。
在IP层中,将能够在各种网络中由单个传输帧传送的最大 数据大小定义为MTU(Maximum Transfer Unit,最大传送单位)。 ——劣殳, 在 10Mbps(megabits per second , 3匕比净争/ 秒) lGbps(gigabits per second,吉比特/秒)以太网(注册商标)的 情况下经常将MTU设置为1492个八位字节,并在使用利用电话 线路的X.25协议的拨号连接的情况下经常将MTU设置为576个 八位字节。利用1 10Gbps以太网(注册商标),存在设置更大的 MTU以证明宽带特性的优点的实例。
将使用IP包格式来说明MTU。 MTU的所定义的长度对应于帧(例如以太网帧)中IP包的最大长度。当这作为以太网(注册商
标)帧而被输出时,将MAC头的14个八位字节附加至IP包的开头 并将FCS(Frame Check Sequence,帧4交'验序列)的4个八位字节附 加至包的末尾。
在图3所示的这种网络系统中,将说明以下情况属于网络 A 311的主才几A 301经过网络C 313将包发送至属于网络B 312的 主机B 302。假设在网络A311和B 312各自中MTU是1492个八位 字节,且在网络C 313中MTU是576个八位字节。路由器A 321 将网络A 311和网络C 313相互连接,而路由器B 322将网络B 312和网络C 313相互连接。
由于主机A 301和B 302分别所属的网络A 311和B 312的 MTU各自是1492个八位字节,因而主机A 301和B 302生成最大 为1492个八位字节的IP包。因此,如果主才几A 301将1492个八位 字节的IP包发送至主才几B 302,则^各由器A 321l丸4亍处理以分割 IP包。换句话说,路由器A321以这样的方式执行分割处理输 出至网络C 313的各个IP包的大小为576个八位字节或更少。
更具体地,为了将来自主机A301的IP包发送至网络C 313, 路由器A 321将其分割成3个IP包,如图4A 4D所示。图4A表示 从主机A301发送至路由器A321的原始IP包。另一方面,图4B、 4C和4D表示成为分割处理的结果的、从路由器A 321发出的IP 包。应当注意,为了区别原始IP包和从原始IP包分割时发送的 IP包,以下将已经经过分割处理的IP包称为"分割后的IP包"。
图4A所示的IP包包括IP头、UDP头和净荷。该IP包的包长 度是1492个八位字节。
图4B所示的第 一 个分割后的IP包也包括IP头、UDP头和净 荷。然而,该分割后的IP包的包长度是576个八位字节。此外, 在IP头内定义的MF(More Fragments, 更多分割)标志已经被设置为"1"。应当注意,将MF标志设置为"1"表示后续的分割 后的IP包的存在。
在图4C所示的第二个分割后的IP包的IP头内,添加有与图
4B所示的第 一 个分割后的IP包的IP头内设置的ID相同的ID。第 二个分割后的IP包具有576个八位字节的包长度,与第 一个分割 后的IP包具有的包长度相同。此外,将IP头内定义的MF标志设 置为"1",并附加意为偏移值为72(表示576个八位字节,因为 以8个八位字节的单位来计数)这样的值。应当注意,偏移值表 示在分割后的IP包内所包含的数据的原始IP包中的位置。
在图4D所示的第三个分割后的IP头中将MF标志设置为"0" 表示后续的分割后的IP包不存在。即,"0"表示该分割后的IP 包是由分割处理而生成的多个分割后的IP包的末端(terminus)。 第三个分割后的IP包具有3 6 4个八位字节的IP数据报长度,且其 偏移被设置为141(表示1128个八位字节)。
由于第 一个到第三个分割后的IP包的IP头内设置的ID都是 同一ID,因而有可能识别为原始IP包是已经通过分割同一IP 包所生成的包。
因此,已经从主机A 301发送的IP包由路由器A 321分割成3 个分割后的IP包并经由网络C 313发送至路由器B 322,并且将 该IP包以被分割的状态从路由器B 322发送至主机B 302。当主 机B 3 0 2接收到3个分割后的IP包时,通过参照每个IP头中的ID 、 M1 标志以及偏移值来重建原始IP包。
包分割处理不限于上述情况,还可以在这种情况下发生 主机(站)比较输出目的地处网络的MTU来发送大的数据报。在 例如日本国特开平9-204376中公开了分割处理的例子。
然而,在根据上述现有技术的路由器中执行分割IP包的处 理的情况下的传送中,出现某种问题。具体地,在第一个分割后的IP包中所包含的UDP头中,描述已经-故输入的全部数据的检查和(checksum)。因此,除非在路由器中收集全部数据,否 则不能发送第一个分割后的IP包。所导致的问题是随着输入 的数据量增大,由于分割处理造成的包的输出中的延迟变长。发明内容为了解决该问题而做出本发明,并本发明提供有可能缩短 经过分割处理的包的传送中的输出延迟的技术。因此,本发明的目的在于解决现有技术的上述问题。 本发明包括以下作为实现以上目的的独有的步骤的构造。 一种通信设备,用于以预定的包格式将数据发送至网络, 包括分割部件,用于将输入数据分割成多个分割后的数据项;生成部件,用于生成基于多个所述分割后的数据项所得到的数据信息;存储部件,用于存储多个所述分割后的数据项中、将 要包含在包含所述数据信息的包中的分割后的数据项;以及发分割后的数据项以外的分割后的数据项的包接连地输出至所述 网络之后,将包含所述数据信息和已经存储在所述存储部件中 的所述分割后的数据项的包输出至所述网络。一种通信方法,用于以预定的包格式将数据发送至网络, 包括以下步骤将输入数据分割成多个分割后的数据项;生成 基于多个所述分割后的数据项而得到的数据信息;将从多个所 述分割后的数据项中、要包含在包含所述数据信息的包中的分 割后的数据项存储在存储单元中;以及在将包含除已经存储在 所述存储单元中的所述分割后的数据项以外的分割后的数据项 的包接连地输出至所述网络之后,将包含所述数据信息和已经 存储在所述存储单元中的所述分割后的数据项的包输出至所述网络。根据本发明,在将输入数据分割成多个分割后的数据的项 并输出至通信网络的情况下,最后输出包含具有基于所有分割 后的数据的附加信息的分割后的数据的包。其它分割后的包在 每当获得其所属的分割后的数据时接连地被输出。由于该配置,可以在不等待包含基于所有分割后的数据的 信息的分割后的包的输出的情况下,接连地输出仅分割后的数 据的分割后的包。根据以下典型实施例的说明(参照附图)本发明更多特征将 显而易见。
图1是示出根据本发明的实施例的通信设备的结构的例子的框图;图2是用于说明本实施例中发送分割后的包的处理的图;图3是示出网络系统的例子的图;图4A 4D是用于说明IP包的分割的图;图5是示出能够实现根据本实施例的通信设备的计算机的 功能的框图。
具体实施方式
以下参照附图来说明本发明的实施例。图1是示出根据本发明的实施例的通信设备的结构的例子的框图。如图l所示,设备包括输入数据的输入端口 201;使已经从 输入端口 201输入的数据符合特定的固定大小的封包 (packetizing)单元202;以及执行将从封包单元202输出的数据放置在IP包中的协议处理的IP处理器203。 IP处理器203包括分割 处理单元211、检查和计算单元212以及头处理单元213。通过参照在(后面说明的)MTU寄存器204中设置并保持的 MTU的值,分割处理单元211判断从封包单元202提供的数据是 否要经过分割处理。的大小与MTU寄存器204中保持的值做比较。如果分割处理单 元211判断为来自封包单元202的数据的大小大于MTU寄存器 204中的设置值,则分割处理单元211以数据大小不超过该设置 值的方式来将来自封包单元202的数据分割成多个分割后的数 据的项。基于经由分割处理单元211提供的数据,检查和计算单元 212计算全部数据的检查和,将在UDP头中描述该检查和。头处 理单元213将UDP头/IP头附加至经由分割处理单元211提供的 数据。例如,头处理单元213生成包含由检查和计算单元212计 算出的检查和的UDP头,并将该头附加至数据的开头。MTU寄存器204将MTU的设置值保持在IP层中。如果基于 MTU寄存器204中的设置,在IP处理器203中出现了分割处理, 则分割緩冲器205保持已经由分割处理生成的第 一 个分割后的 数据的项。换句话说,如果已经产生了分割,则分割緩冲器205 保持在包含已经附加了检查和的UDP头的第 一 个分割后的包中 包含的分割后的数据。MAC协议处理器206执行MAC层协议处理,而PHY(物理) 单元2 0 7执行物理层处理。后者将它的输出输送到对应于电缆等 的网络介质。现在将说明根据本实施例的通信设备的工作。当从输入端口 201输入已经从外部的数据生成设备发送的数据或已经从外部存储单元读取的数据时,在封包单元202中将 该输入数据封包成特定的固定大小的数据。此时封包的数据的 大小取决于所连接的数据生成设备。已经由封包单元202封包的数据被^是供至IP处理器203, IP 处理器203继而附加UDP和IP头。IP包的大小由MTU寄存器204 所应用的其(MTU)的设置值来定义。因此,才艮据通过将UDP头 (通常8字节)的大小和IP头(通常M字节)的大小添加至由封包单 元202生成的数据的大小所获得的大小,构成1P处理器203的每 个处理单元执行以下说明的处理。如果通过将UDP和IP头的大小添加至输入数据的大小所获 得的大小小于MTU寄存器204中的设置值,则向该数据提供包 含全部数据的检查和的UDP头以及IP头,并将该数据作为IP包 提供至MAC协议处理器206。此后,MAC协议处理器206附加 MAC头,作为物理层装置的PHY单元207对电/光信号做变换, 并将结果得到的信号输出至网络介质208。如以上所述,从输入 端口 201输入的数据被发送至网络介质208。另 一方面,如果通过将UDP和IP头的大小添加至一俞入^:据 的大小所获得的大小大于MTU寄存器204中的设置值,则出现 分割处理。具体地,IP处理器203基于设置在MTU寄存器204中 的MTU的大小,从已经从封包单元202输入的数据的开头切割 数据,并将临时的UDP头附加至该数据。然而,由于此时尚未收集齐所有数据,因而检查和计算单 元212未完成计算作为UDP头中所包含的信息的全部数据检查 和。结果,附加了UDP头信息的开头的(第一个)分割后的包不 能被发送。因此,IP处理器203将附加有临时的UDP头的该开头 的分割后的包临时地存储并保持在分割緩冲器205中。接下来,IP处理器203基于MTU的大小,从接着之前切割第一个数据的项的位置切割数据,作为第二个数据的项。然后 IP处理器203将IP头附加至该切割的数据,生成分割后的IP包并将该包输出至M A C协议处理器2 0 6 。包含第二个数据的项的分 割后的IP包具有由MAC协议处理器206对其附加的MAC头,结 果得到的包经过用作物理层装置的PHY单元207而被输出至网 络介质208。在上述的方式中,IP处理器203乂人第二个^:据的项往后々妾连 地切割数据,从而生成IP包,并将包输出至MAC协议处理器 206。后者将MAC头附加至每个包。附加了MAC头的数据经由 PHY单元207接连地输出至网络介质208。如此进行输出,直到从封包单元202已经输入的数据的末尾 为止。如果完成了输出,则IP处理器203将检查和计算单元212 获得的检查和(即,已经从封包单元2 02输入的数据的检查和) 的结果附加至存储并保持在分割緩冲器205中的分割后的包的 临时的UDP头。此外,分割后的包从IP处理器203被输出至MAC 协议处理器206。在对它附加MAC头后,该包经由PHY单元207 输出至网络介质208。换句话说,IP处理器203内的分割处理单元211将MTU寄存 器2 0 4中的设置值与输入的数据量做比较,并判断输入的数据是 否要被分割。如果比较的结果是输入的数据要被分割,则IP处 理器203将属于包含UDP头的第 一个分割后的包的分割后的数 据存储并保持在分割緩沖器205中。在接连地输出从后续的第二 个分割后的包往后的分割后的包并发送最后的分割后的包之 后,IP处理器2 0 3将描述检查和的U D P头附加至第 一 个分割后的 包,并输出第一个分割后的包。即,在输入的数据经过分割处理并被输出的情况下,分割 处理单元211首先将临时的UDP头附加至第一个分割后的包,并将该第一个分割后的包保持在分割緩冲器205中。另一方面,从第二个往后的分割后的包被分割处理单元211接连地输出。此 时,检查和计算单元212并行地计算要被附加至第 一个分割后的 包所包含的UDP头的检查和。在最后的分割后的包的发送结束 后,头处理单元213生成已经附加了计算出的检查和的UDP头并 完成第一个分割后的包。接着,IP处理器203发送第一个分割后 的包。图2是用于说明本实施例中发送分割后的包的处理的图。图 2示出了将输入数据分成N个分割段再输出的情况。为了与本实 施例做比较,与现有技术中的发送处理一起示出。应当注意, 尽管输入的数据实际上是作为单个数据的项而输入的,但为了 使与输出数据的对应更易理解而在图2中示出为被分割。根据本实施例,在不等待附加了 UDP头的第 一 个分割后的 包的输出的情况下,可以接连地输出从第二个往后的分割后的 包。因而,如图2中明确地示出,与现有技术相比,分割中直到 包输出为止的延迟时间可缩短TS。此外,还可缩短直到UDP数 据报的发送完成为止的时间。这种分割方法可应用于TCP、 ICMP等协议和IP层以上的其它协议。此外,根据本实施例,如果将输入数据分割再输出,则一 完成属于这些分割后的包的数据的输入就输出从第二个往后的 分割后的包。这意味着所要求的緩沖器的量大约是MTU大小的 二倍。结果,与现有技术相比,分割处理所需的存储量可被大 幅减少。其它实施例为使实现上述实施例的功能的各种装置可以工作,而向连 接至这些各种装置的设备或系统内的计算机提供用于实现该实 施例的功能的软件的程序代码,并根据已经存储在该系统或设备的计算机(CPU或MPU)中的程序来使各种装置工作。这种实 施也落入本发明的范围内。在这种情况下,软件的程序代码自身实现上述实施例的功 能,且程序代码自身构成本发明。此外,向计算机提供程序代 码的装置、例如已经存储有程序代码的记录介质,构成本发明。通过例子的方式,软盘、硬盘、光盘、f兹光盘、CD-ROM、磁 带、非易失性存储卡和ROM等可用作存储程序代码的记录介质。此外,不仅通过在计算机中执行所提供的程序代码实现上 述实施例的功能,而且毋庸赘言,在通过在程序代码和在计算 机上运行的操作系统或应用软件间的合作来实现上述实施例的 功能的情况下,此时该程序代码也包含在本发明的实施例中。此外,毋庸赘言,本发明还涵盖这种情况在所提供的程 序代码已被存储在设置在计算机的功能扩展板或已连接至计算 机的功能扩展单元上的存储器后,设置在功能扩展板或功能扩 展单元上的CPU等基于程序代码中的指示来进行全部或部分实 际处理,/人而实现上述实施例的功能。例如,上述实施例所示的通信设备具有图5所示的这种计算 机功能500,并由CPU 501来实施上述实施例的工作。如图5所示,计算机功能500具有CPU 501、 ROM 502和RAM 503。计算机功能500具有控制键盘(KB)509的键盘控制器(KBC) 505和控制作为显示单元的CRT显示器(CRT)510的CRT控制器 (CRTC.)506。计算机功能500还具有用于控制硬盘(HD)511和软 盘(FD)512的磁盘控制器(DKC)507和网络接口卡(NIC)508。 CPU 501、 ROM 502、 RAM 503、 KBC 505、 CRTC 506、 DKC 507 和NIC 508经由系统总线504相互连接以能够相互通信。CPU 501通过执行已经存储在ROM 502或硬盘511中的软件或由软盘512提供的软件,来执行连接至系统总线504的组件 的整个控制。即,CPU 501在从ROM 502、石更盘511或软盘512 中读出为了进行上述工作的处理程序后执行该程序,从而执行 为了实现上述实施例的工作的控制。RAM 503用作CPU 501的 主存储器或工作区域等。键盘控制器505控制来自键盘509或来自未示出的指示装置 的命令的输入。CRT控制器506控制CRT 510上呈现的显示。磁 盘控制器507控制对存储启动程序、各种应用软件、用户文件、 网络管理程序以及上述实施例中的处理程序的硬盘511以及软 盘512的访问。网络接口卡508与网络513上的其它装置双向地交 换数据。尽管已经参照典型实施例而i兌明了本发明,-f旦应当明白, 本发明不限于所公开的典型实施例。所附权利要求书的范围符 合最宽的解释,以包含全部这样的修改和等同的结构及功能。本申请要求2005年11月2日提交的日本专利申请2005 -319801的权利,其全部内容通过引用而包含于此。
权利要求
1.一种通信设备,用于以预定的包格式将数据发送至网络,包括分割部件,用于将输入数据分割成多个分割后的数据项;生成部件,用于生成基于多个所述分割后的数据项所得到的数据信息;存储部件,用于存储多个所述分割后的数据项中、将要包含在包含所述数据信息的包中的分割后的数据项;以及发送控制部件,用于在将包含已经存储在所述存储部件中的所述分割后的数据项以外的分割后的数据项的包接连地输出至所述网络之后,将包含所述数据信息和已经存储在所述存储部件中的所述分割后的数据项的包输出至所述网络。
2. 根据权利要求l所述的通信设备,其特征在于,还包括 设置部件,所述设置部件用于设置所述分割后的数据项的最大 数据量;其中所述分割部件将所述输入数据的量和所述最大数据量 做比较,如果所述输入数据的量大于所述最大数据量,则以每 个分割后的数据项中的数据量低于所述最大数据量的方式来分 割所述输入数据。
3. 根据权利要求2所述的通信设备,其特征在于,所述最 大数据量是所述网络的最大传送单位(MTU)。
4. 根据权利要求l ~ 3中的任一项所述的通信设备,其特征 在于,如果假设所述分割部件将所述输入数据分割成m个分割 后的数据项、并且从所述输入数据的开头的第n个(其中n是大于 等于1且小于m的整数)分割后的数据项是第n个分割后的数据 项,则所述发送控制部件将包含第 一 个分割后的数据项以外的 分割后数据项的包接连地输出至所述网络,并在输出了包含 第m个分割后的数据项的包之后,输出包含所述第一个分割后的数据项和所述数据信息的包。
5. 根据权利要求4所述的通信设备,其特征在于,所述预定的包格式是UDP/IP格式;并且所述数据信息是基于所有m个分割后的数据项而得到的、 且包含在UDP头中的错误检测码的值。
6. 根据权利要求4所述的通信设备,其特征在于,所述预 定的包格式是TCP/IP格式;并且所述数据信息是基于所有m个分割后的数据项而得到的、 且包含在TCP头中的错误检测码的值。
7. 根据权利要求4所述的通信设备,其特征在于,所述预 定的包格式是ICMP格式;并且所述数据信息是基于所有m个分割后的数据项而得到的、 且包含在ICMP头中的错误检测码的值。
8. —种通信方法,用于以预定的包格式将数据发送至网 络,包括以下步骤将输入数据分割成多个分割后的数据项;生成基于多个所述分割后的数据项而得到的数据信息;将从多个所述分割后的数据项中、要包含在包含所述数据信息的包中的分割后的数据项存储在存储单元中;以及在将包含除已经存储在所述存储单元中的所述分割后的数据项以外的分割后的数据项的包接连地输出至所述网络之后,将包含所述数据信息和已经存储在所述存储单元中的所述分割后的数据项的包输出至所述网络。
9. 一种计算机程序,用于使计算机执行权利要求8所述的通信。
10. —种计算机可读的存储介质,其存储有权利要求9所述 的计算机程序。
全文摘要
缩短了由于包分割处理而造成的包输出的延迟。如果输入数据在经过分割处理再被输出,则从基于MTU寄存器中的设置值而分割的多个分割后的数据项中、将属于包含基于所有分割后的包的信息的第一个分割后的包的分割后的数据存储在分割后的缓冲器中。在输出了从其它分割后的数据项所属的第二个分割后的包往后的所有分割后的包之后,输出第一个分割后的包。
文档编号H04L12/56GK101300790SQ20068004078
公开日2008年11月5日 申请日期2006年10月19日 优先权日2005年11月2日
发明者川岛淳, 森村和彦 申请人:佳能株式会社