网卡及信息处理装置的制作方法

文档序号:7942368阅读:109来源:国知局
专利名称:网卡及信息处理装置的制作方法
技术领域
本发明涉及一种数据发送技术,特别是涉及一种有效地发送宽带流数据 (Streaming data)的技术。
背景技术
近几年,实现了视频点播(VOD)等流媒体服务。另外,由于近几年的存取网的宽带 化,从发配服务器发送的一个视频流数据的频宽也增大。此外,可预期以后通过所谓HD (高 清)图像的发配等,会进一步宽带化。随着从发配服务器传输的数据传输率增大,该发配服 务器的内部总线(例如PCI等)的利用率也有增大的趋势。一般在网络接口方面,根据各规格而规定有可传输的最大的数据长度(MTU)。例如 即使是IEEE 802. 3系列规格,所知的以太网络(注册商标)中也是最大约1.5k字节。因 此,一般而言,设备驱动程序即使在内部总线可传送的数据长度非常大的情况下,也将发送 到网络上的数据分割成不超过上述MTU的大小的数据以后,经由内部总线传输至接口板。 此外,该分割被称为片段(Fragment)处理。之后,通过板上的MAC/PHY来进行处理并发送 至网络。另一方面,在流媒体服务中,因为数据量多而会在网络上发生包损坏等。在此情况 下,可以不从接收侧发出重发请求,而在发配服务器中利用前向纠错码(FEC)。例如,利用如 专利文献1所公开的编码。专利文献1 国际公开号第W02005/112250号

发明内容
在内部总线中,一般而言,能够根据流数据的发送单位以非常大的数据单位(数 据长度)进行传输。不过,如同上述,由于MTU的限制,其结果在内部总线上流动的数据长 度会变小。因此,在流数据的发送方面,容易发生总线混乱,存在由于片段处理而需要CPU 功耗的问题。另外,为了对大量的数据执行专利文献1所公开的编码处理,需要更大的CPU功
^^ ο本发明是鉴于上述的问题而作出的,其目的在于解决这些问题中的至少一个。为了解决上述问题中的至少一个,本发明的一种网卡具备以下结构。S卩,一种网卡,具备主机连接器,用于与设置在主机装置上的总线连接器连接; 和网络连接器,用于与网络连接,所述网卡还具备接收单元,将能够经由所述网络连接器 发送的数据帧的最大大小设为第1大小时,以比所述第1大小大的第2大小的块数据为单 位,经由所述主机连接器而接收经由所述网络连接器发送的数据;缓冲存储器,用于暂时存 储所述接收单元所接收的块数据;以及发送单元,从所述缓冲存储器读入用于包含到发送 的数据帧中的数据,生成所述第1大小以下的数据帧,将该数据帧发送至与所述网络连接 器连接的网络上。
4
为了解决上述问题中的至少一个,本发明的一种信息处理装置具备以下结构。S卩,一种信息处理装置,具备通过总线连接的主机处理部和网络处理部,将流数据 发送至网络,所述主机处理部具备数据输入单元,输入流数据;和总线传输单元,将能够 在所述网络中传输的数据帧的最大大小设为第1大小时,以比该第1大小大的第2大小的 块数据为单位,经由所述总线将至少所述流数据传输至所述网络处理部,所述网络处理部 具备接收单元,接收从所述总线传输单元经由所述总线所发送的块数据;存储单元,用于 暂时存储所述接收单元所接收的块数据;以及发送单元,从所述存储单元读入用于包含到 发送的数据帧中的数据,生成所述第1大小以下的数据帧,将该数据帧发送至与所述网络 连接器连接的网络上。发明效果根据本发明,能够提供一种高效地发送流数据的技术。


图1是例示地表示流发配系统的整体结构的图。图2是表示第1实施例的发配服务器的内部结构的图。图3是表示第1实施例的发配服务器内的网络板的内部结构的图。图4是表示与第1实施例的发配服务器的数据发送相关的功能结构的图。图5是第1实施例的发配服务器的数据处理流程图。图6是表示第2实施例的发配服务器内的网络板的内部结构的图。图7是表示与第2实施例的发配服务器的数据发送相关的功能结构的图。标号说明100IlOaUlOb30130230331040140240340具体实施例方式以下,参照附图详细说明本发明优选的实施方式。此外,这些实施方式仅是例示, 并非将本发明的范围局限于此。(第1实施例)作为本发明的数据发送装置的第1实施例,以下由通用PC及网络板所构成的流发 配装置为例进行说明。< 概要 >
发配服务器 接收终端
包处理器(发送单元)
存储器(缓冲存储器或者存储单元)
存储控制器
总线I/F (接收单元)
输入部(输入单元)
总线传输部(总线传输单元)
片段处理部(发送单元)
平滑处理部(发送间隔控制单元)
在第1实施例的流发配装置中,以往通过PC主体的CPU执行设备驱动程序而进行 的片段处理(Fragment processing)是由网络板上的硬件来进行的。其结果,实现PC主体 的CPU的负荷降低,并且能以更大的数据长度来经由总线对网络板进行数据传输,实现总 线使用效率的提升。<系统结构以及装置结构>图1表示流发配系统的整体结构的概念图。发配服务器100是流发配服务器,IlOaUlOb是流接收装置。另外,IOlUlla以及 Illb分别是发配服务器100、接收装置110a、IlOb所属的网段(Network segment)。各网段 101、llla、lllb是经由路由器102、112a、112b以及核心网络120连接。此外,以后,在各网 段之间的数据传输方面,以使用因特网协议(IP)的情况进行说明。发配服务器100对接收终端IlOaUlOb以RTP/UDP/IP的形式来将流数据进行 封包化并发送。在此,RTP代表实时传输协议,UDP代表用户数据报协议(User Datagram Protocol) 0此外,发配服务器100能以单播(imicast)来对各接收终端进行流发配,也可 以利用组播(multicast)来进行发配。另外,也可以如同所谓的视频点播(VOD)服务,根据 来自各接收终端的发配请求而开始发配。图2是表示第1实施例的发配服务器的内部结构图。如图所示,发配服务器100 由CPU201、RAM202、R0M203、HDD204、用户I/F 205以及网络(NW)板200所构成,各部分通 过内部系统总线210相互连接。CPU201通过执行R0M203、HDD204中所存储的各种程序来控制各部,并实现图4中 后述的各功能部。R0M203存储发配服务器100起动时等所执行的程序等。RAM202暂时存 储由CPU201所执行的各种程序和各种数据。HDD204是大容量的存储装置,进行各种程序和 各种数据文件的存储。程序中包含有操作系统(OS)程序和流发配程序。用户I/F205是未 图标的键盘、鼠标等用户输入装置、以及未图标的显示器等显示输出装置。作为内部系统总线210,假设是含有普通PCI总线的通用总线,但当然也可以是专 用的总线。不过,总线210的传输速度比网络101的传输速度高,可传输的数据长度比网络 101的数据长度长。此外,为了以后方便说明,在发配服务器100中,有时会将网络(NW)板200称为 “NW板侧”,其以外的部分称为“服务器主体侧”。图3是表示第1实施例的发配服务器内的网络板的内部结构的图。如图所示,网 络板200由包处理器(Packet Handler) 301、存储器302、存储控制器303以及总线I/F 310 所构成。存储器302是暂时存储经由总线210以及总线I/F 310从服务器主体侧接收的数 据的部分,且在内部具备包缓存器(Packet Buffer)302a。此外,后述详细情况,包缓存器 302a针对每个流确保有区域。包处理器301是以适合网络110的数据形式来发送暂时存储于存储器302的数 据的电路部。具体而言,对于暂时存储在存储器302的数据,进行后述的片段处理和平滑 (smoothing)处理之后,输出至网络110。〈功能结构以及动作〉图4是表示第1实施例的发配服务器的功能结构的图。
发配服务器100具备输入部401、总线传输部402、片段处理部403以及平滑处理 部404作为与数据发送相关的功能部。此外,服务器主体侧的CPU201执行各种程序,由此 实现输入部401以及总线传输部402的各功能部。另一方面,通过NW板侧的硬件来实现片 段处理部403以及平滑处理部404的各功能部。以下,对各功能部进行说明。此外,以下为了简化说明,仅就各处理部对RTP/UDP/IP形式的流数据进行的处理 进行说明。在其它的数据方面,则采用与以往相同的处理。此外,包的区分可以根据IP标 头(header)所记载的端口号码来进行,也可以仅根据包的数据长度来进行。输入部401是输入经由网络板200发送的流文件的功能部。具体而言,CPU201执 行流发配软件,由此将存储在HDD204等的流数据读入至RAM202,从而实现输入部401。此 外,输入部401的功能在于作为输入单元。总线传输部402是将由输入部401输入至RAM202上的流数据分割成预定的固定 长数据以后,存储为RTP/UDP/IP形式并经由总线210传输至NW板侧的功能部。具体而言, 由CPU201执行IP堆栈程序以及NW板200的设备驱动程序来实现总线传输部402。此外, 总线传输部402的功能在于作为总线传输单元。但是,与背景技术所说明的情况不同,被传输的流数据包比可发送至网络101的 数据长度大。例如即使网络101是以太网络(注册商标)的情况下,换言之,最大的数据长 度(MTU)(第1大小)为约1. 5k字节时,也会以例如32k字节等大数据块(第2大小)传输。此外,一般在应用程序和IP堆栈程序之间,以及在IP堆栈程序和设备驱动程序之 间的数据形式方面,因为确定了规格,所以在进行变更时会伴随着很大的设计变更。不过, 应注意到如同上述,设备驱动程序和硬件之间的数据形式可较自由地进行设计。后述详细情况,在数据(数据块)中,优选的是,将除去IP、UDP、RTP的各标头的有 效负载部设定为与流数据的最小处理单位的整数倍(或2的幂乘倍)相当的数据长度。片段处理部403是将经由总线210 (总线连接器)从总线传输部402所传输的数 据(数据块)分割成可发送至网络101的数据长度的功能部。具体而言,经由未图示的主 机连接器(Host connector)将存储于存储器302的数据块分割成网络101的MTU以下的 数据长度,并再生成与被分割的数据对应的IP、UDP、RTP的各标头。然后,将可直接发送至 网络101的数据长度的IP包存储在包缓存器302a。此外,总线I/F 310的功能在于作为接 收单元,存储器302的功能在于作为缓冲存储器或者存储单元。另外,片段处理部403构成 发送单元的一部分,包处理器301的功能在于作为发送单元。此外,所谓再生成IP、UDP、RTP的各标头,具体而言就是以下的处理。在IP包中, 记载有该IP包所包含的数据的数据长度(有效负载长度)。另外,在UDP标头中,记载有 该UDP包所包含的数据的数据长度以及该数据的校验和。此外,在RTP包中,记载有该RTP 包所包含的数据的序列号码以及时间戳。因此,片段处理部403进行片段处理的结果,因为 RTP包被分割,所以与被分割的包对应地,算出被记载于这些各标头内的信息,并更新标头 信息。此外,在从总线传输部402传输的数据(数据块)中,将除去IP、UDP、RTP的各标头 的有效负载部进行等分割,所以标头信息的计算变得简单。因此,如同前述,优选的是,将数 据块的有效负载部设定为与流数据的最小处理单位的整数倍(或2的幂乘倍)相当的数据 长度。
7
平滑处理部404是如下功能部,其将通过片段处理部403存储在包缓存器302a的 固定长度的IP包以相等间隔发送至网络101。具体而言,根据存储在包缓存器302a的固定 长度的IP包内的标头信息来算出发送间隔,按所存储的顺序发送IP包。可通过例如IP标 头或UDP标头的数据长度的信息和RTP标头的时间戳的信息来算出发送间隔。另外,也能 以推测不会成为突发性通信(burst traffic)特性的预先设定的发送间隔依次发送IP数 据。此外,平滑处理部404的功能在于作为发送间隔控制单元。此外,在上述的说明中,以片段处理后的IP(RTP)包在时间方向上成为均等间隔 的方式进行发送控制。不过,一般而言,从NW板200,不仅是可以发送RTP包,还可发送被利 用于控制该RTP包流的RTCP包或其它包。因此,优选的是,能预先确保可使用于RTP包以 外的时隙(time slot),以除了该时隙以外的期间为均等间隔的方式进行发送控制。<动作流程>图5是第1实施例的发配服务器的数据处理流程图。此外,以下的步骤是通过例 如接收来自接收装置IlOa(或者IlOb)的流数据发送请求而开始。此外,在此,假设流数据 的最小处理单位是64字节。在步骤S501中,输入部401从HDD204等读入从接收装置IlOa请求的流数据,并 存储于RAM202。在步骤S502中,总线传输部402将在步骤S501中存储在RAM202的数据分割成例 如16k字节(=64字节X28)的数据长的数据块。然后,对该数据块生成IP、UDP、RTP的 各标头,并以RTP/UDP/IP的形式存储,经由总线210传输至NW板侧。在步骤S503中,片段处理部403将在步骤S502中经由总线210从总线传输部402 传输的数据块内的有效负载数据分割成例如512字节(=64字节X 23)的数据长度的数 据。换言之,将数据块分割成网络101的MTU以下的数据长度。然后,对被分割生成的512 字节长的各数据再生成IP、UDP、RTP的各标头,并以RTP/UDP/IP的形式存储。然后,将再生 成的IP包存储于包缓存器302a。步骤S504中,平滑处理部404将在步骤S503中存储于包缓存器302a的IP包,以 相等间隔发送至网络101。此外,在上述的流程图中,为了简化说明,说明了从发配服务器100发送单一流数 据的情况。不过,当然能对每个流数据执行上述的处理。特别是,通过对每个流数据执行上 述平滑处理部404的处理,到达各接收装置IlOaUlOb所属的网段IllaUllb的流数据分 别为突发性被抑制的通信量,所以有不易发生数据丢失的优点。如同以上所说明,通过第1实施例的发配服务器,能够大幅度降低由于片段处理 所造成的总线210的负荷(拥塞)以及执行片段处理所造成的CPU201的负荷。因此,大幅 缓和了因总线210的传输能力或者CPU201的处理能力所引起的瓶颈。其结果,能够更有效 率地发送流数据。(第2实施例)〈概要〉在第2实施例中,除了第1实施例的结构以外,在NW板上配置前向纠错码(FEC)的 编码器。此外,在此所谓的前向纠错码包含缺损补偿码。通过这种结构,能够大幅降低FEC 编码处理所消耗的CPU功率。另外,能够降低总线使用率(通信量)。
此外,在流发配系统的整体结构(图1)以及发配服务器的内部结构(图2)方面, 因为和第1实施例相同,所以省略说明。<FEC 码 >在本发明中,作为FEC码,使用缺损补偿码特别有效。因此,在第2实施例中,作为 FEC码,假设使用由美国Digital Fountain公司所开发的FEC码即Raptor码(预编码)。 不过,当然也可以使用一般的里德-所罗门(RS=Reed-Solomon)架构的码。以下简单地说 明Raptor码,细节请参照背景技术中所述的专利文献1。在Raptor码中,以特定的数据长度(sXk字节)的每个区间来划分流文件,将各 区间的数据分割成被称为“输入记号”的相同数据长度(s字节)的k个数据。然后,根据 被称为金钥(key)的索引(index)值,从被分割的k个输入记号中选择1个以上的输入记 号,以每个位对被选择的输入记号之间进行XOR运算,并生成被称为“输出记号”的s字节 的数据长度的数据。对不同的金钥连续生成这种输出记号。另一方面,在接收侧随机地接收k+α个(α小于k)输出记号,对输出记号之间进 行XOR运算,从而使输入记号复原。此时,因为能任意地选择k+α个输出记号,所以有即使 在传输中有某个包丢失的情况下也能复原的优越特性。<装置结构>图6是表示第2实施例的发配服务器内的网络板的内部结构的图。如图所示,网 络板600除了具备包处理器601、存储器602、存储控制器603、总线I/F 610以外,还具备 编码引擎604以及编码控制部605。以下,对与第1实施例不同的部分即FEC编码引擎604 以及编码控制部605进行说明。FEC编码引擎604是以硬件执行XOR运算的电路。本领域技术人员很熟悉包括XOR 运算的逻辑运算能容易地以硬件实现。编码控制部605是如下功能部,其通过控制FEC编码引擎604来实现前述的 Raptor码的编码动作。此外,优选的是,通过将编码控制部605构成为未图标的CPU以及 存储控制程序的闪存,由此可轻易地变更为其它的FEC码算法。此外,编码控制部605以及 FEC编码引擎604相当于实施例的编码单元。具体而言,编码控制部605从暂时存储于存储器602的数据(输入记号)中,选择 1以上的输入记号并输入至FEC编码引擎604,由此依次生成输出记号。然后,将所生成的 输出记号暂时存储在存储器602。不过,如在前述的对Raptor码进行的说明,应注意输出记号和输入记号的数据长 度相同,但数量至少增加α个以上。包处理器601是如下电路部,其以适合网络110的数据形式,发送由暂时存储于存 储器602的输出记号所构成的数据。具体而言,对暂时存储于存储器602的数据进行片段 处理和平滑处理之后,输出至网络110。〈功能结构以及动作〉图7是表示第2实施例的发配服务器的功能结构的图。发配服务器100作为与数据发送相关的功能部,除了具备输入部701、总线传输部 702、片段处理部703、平滑处理部704以外,还具备编码处理部705。以下,对与第1实施例 不同的部分即编码处理部705所相关的部分进行说明。
编码处理部705是如下功能部,对经由总线210从总线传输部702传输的数据(数 据块)执行FEC编码处理。具体而言,将由编码引擎604以及编码控制部605所实现且被 存储于存储器302的数据块认定为前述的输入记号,并生成输出记号。片段处理部703是如下功能部,其将由编码处理部705所编码的输出记号(数据 块)分割为可发送至网络101的数据长度。具体而言,将存储于存储器602的数据块分割 成网络101的MTU以下的数据长度,再生成与被分割的数据对应的IP、UDP、RTP的各标头。 然后,将可直接发送于网络101的数据长度的IP包存储于包缓存器602a。不过,如同前述,通过编码处理部705的编码处理,增加了冗余数据,其结果,与编 码处理部705的输入率(Input rate)相比,输出率(Output rate)较大。具体而言,从k 个输入记号生成k+α个输出记号的情况下,因为是相同的数据长度,所以输出率是输入率 的(k+a)/k倍。这时候,编码率是被表示成k/(k+α),例如根据编码率再设定RTP标头的 时间戳。换言之,与非编码时相比,将时间间隔设定为缩短约k/(k+a)倍。在此,输入记号 以及输出记号的1个数据量相当于实施例的第1数据量。另外,相当于k个输入记号的数 据量相当于实施例的第2数据量。 平滑处理部704是如下功能部,其将通过片段处理部703存储在包缓存器602a的 固定长度的IP包以相等间隔发送至网络101。具体而言,根据包缓存器602a中所存储的 固定长度的IP包内的标头信息来算出发送间隔,按存储的顺序发送IP包。如同前述,因为 RTP标头的时间戳被设定得短,结果发送间隔也被设定为缩短约k/ (k+ α )倍。如以上所说明,通过第2实施例的发配服务器,除了第1实施例说明的片段处理以 外,在NW板600上执行FEC编码处理,因此能够大幅降低CPU201的负荷。另外,由于FEC 编码所引起的冗余数据不会在总线210上流动,所以能够降低总线使用率(通信量)。其结 果,能够更有效地发送流数据。(变形例)此外,在上述的说明中,将比网络板直接连接的网络(在此为以太网络(注册商 标))的最大传输大小(约1.5k字节)要小的固定长度包(512字节)设定为传输大小。 不过,当然也可以设定成与MTU大致相等。此外,一般而言,从发配服务器到接收终端为 止会混杂着多种网络,可能各MTU会不同。此外,因为每个接收终端路径不同,所以有可 能在每个接收终端“路径MTU”会有所不同。因此,也可以在使用路径MTU探索(Path MTU Discovery)等以前,检测出路径MTU,在流发配开始时,将包大小动态地设定为与各终端对 应的总线MTU以下。
10
权利要求
一种网卡,具备主机连接器,用于与设置在主机装置上的总线连接器连接;和网络连接器,用于与网络连接,所述网卡的特征在于,还具备接收单元,将能够经由所述网络连接器发送的数据帧的最大大小设为第1大小时,以比所述第1大小大的第2大小的块数据为单位,经由所述主机连接器接收经由所述网络连接器发送的数据;缓冲存储器,用于暂时存储所述接收单元所接收的块数据;以及发送单元,从所述缓冲存储器读入用于包含到发送的数据帧中的数据,生成所述第1大小以下的数据帧,将该数据帧发送至与所述网络连接器连接的网络上。
2.如权利要求1所述的网卡,其特征在于,所述发送单元还具备发送间隔控制单元,以时间轴方向上大致均勻的间隔将1个以上 的所述数据帧发送至所述网络。
3.如权利要求2所述的网卡,其特征在于,所述网卡还具备编码单元,对所述块数据中所包含的数据进行前向纠错码的编码处理。
4.如权利要求3所述的网卡,其特征在于,所述发送单元根据由所述编码单元所编码的数据生成所述第2大小以下的数据帧, 所述发送间隔控制单元根据所述编码单元所使用的编码率决定发送所述数据帧的所 述间隔。
5.如权利要求4所述的网卡,其特征在于,所述编码单元反复执行以预定的第1数据量为单位的逻辑运算,从而进行所述编码处理,所述发送单元将所述第1数据量的整数倍大小的数据包含到所述数据帧中。
6.如权利要求4或5所述的网卡,其特征在于,所述编码单元以预定的第2数据量为单位进行所述编码处理,所述接收单元接收被设定为所述第2数据量的整数倍大小的所述块数据。
7.一种信息处理装置,具备通过总线连接的主机处理部和网络处理部,将流数据发送 至网络,所述信息处理装置的特征在于,所述主机处理部具备 数据输入单元,输入流数据;和总线传输单元,将能够在所述网络中传输的数据帧的最大大小设为第1大小时,以比 该第1大小大的第2大小的块数据为单位,经由所述总线将至少所述流数据传输至所述网 络处理部,所述网络处理部具备接收单元,接收从所述总线传输单元经由所述总线所发送的块数据; 存储单元,用于暂时存储所述接收单元所接收的块数据;以及 发送单元,从所述存储单元读入用于包含到发送的数据帧中的数据,生成所述第1大 小以下的数据帧,将该数据帧发送至与所述网络连接器连接的网络上。
8.一种信息处理装置,具备通过总线连接的主机处理部和网络处理部,将流数据发送 至网络,所述信息处理装置的特征在于,所述主机处理部具备 数据输入部,输入流数据;和总线传输,将能够在所述网络中传输的数据帧的最大大小设为第1大小时,以比该第1 大小大的第2大小的块数据为单位,经由所述总线将至少所述流数据传输至所述网络处理 部,所述网络处理部具备接收部,接收从所述总线传输部所发送的块数据; 缓冲存储器,用于暂时存储所述接收部所接收的块数据;以及 发送部,从所述缓冲存储器读入用于包含到发送的数据帧中的数据,生成所述第1大 小以下的数据帧,将该数据帧发送至与所述网络连接器连接的网络上。
全文摘要
一种网卡,具备主机连接器(Host connector)和网络连接器,该网卡还具备接收单元,经由主机连接器,以比第1大小大的第2大小的块数据为单位,接收经由网络连接器发送的数据;缓冲存储器,用于暂时存储所接收的块数据;以及发送单元,生成第1大小以下的数据帧,将该数据帧发送至与网络连接器连接的网络上。
文档编号H04L12/56GK101911613SQ20088012447
公开日2010年12月8日 申请日期2008年1月10日 优先权日2008年1月10日
发明者永井正大, 西本裕明 申请人:住友电工网络株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1