CN100593305C - 接收装置和方法、以及程序 - Google Patents
接收装置和方法、以及程序 Download PDFInfo
- Publication number
- CN100593305C CN100593305C CN200710008152A CN200710008152A CN100593305C CN 100593305 C CN100593305 C CN 100593305C CN 200710008152 A CN200710008152 A CN 200710008152A CN 200710008152 A CN200710008152 A CN 200710008152A CN 100593305 C CN100593305 C CN 100593305C
- Authority
- CN
- China
- Prior art keywords
- mentioned
- grouping
- packet
- judging
- situation
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明的接收装置能够更高速地进行分组的接收。分组组合数判断部件(121)判断与来自应用程序层的请求对应地接收到的第一分组的个数是否超过了生成第二分组时的作为第一分组个数的第一阈值,超时时间判断部件(122)在判断出没有超过第一阈值的情况下,判断是否经过了规定的时间,超时次数判断部件(123)在判断出经过了规定的时间的情况下,判断连续经过了规定的时间的次数是否超过第二阈值。分组组合数设置部件(124)在判断出超过第二阈值的情况下,通过设置第一阈值使得生成第二分组时的第一分组的个数减少,而能够更高速地进行分组的接收。本发明能够适用于个人计算机。
Description
技术领域
本发明涉及接收装置和方法、以及程序,特别涉及通过TOE(TCPOffload Engine)进行通信的接收装置和方法、以及程序。
背景技术
现在,作为在因特网等网络中使用的协议,有TCP/IP(Transmission Control Protocol/Internet Protocol)。TCP/IP原来在UNIX(注册商标)中通过软件(软件程序)来实现,现在其处理的大部分也是通过软件进行的。但是,随着对大容量数据的网络传送要求的提高,要求TCP/IP处理的高速化的呼声也变大了。
对于这样的要求,例如有被称为TOE(TCP Offload-Engine)的技术,即由其他芯片(专用硬件)来代替执行耗费主机侧的CPU(中央处理单元)资源的TCP/IP的处理。如此,能够只向应用程序的处理分配主机侧的CPU资源,能够在减少了主机侧的CPU的负荷的同时,使TCP/IP的处理高速化。
另外,本申请人首先提出了以下的方案:在发送分组的发送装置中,在将输入的AV(Audio Visual)数据存储到AV缓存电路中后,在分组处理部件中,能够生成32k字节的巨型分组(jumbo packet,以下,将所存储的数据的大小比以太网(注册商标)分组(分组)还大的分组称为巨型分组来进行说明),根据CPU生成的头(head)分割所生成的巨型分组,生成并发送最大1518字节的分组(例如专利文献1)。
专利文献1:特开2003-229905号公报
但是,在以前的提案中,在发送装置中,在巨型分组的大小比缓存器的大小还大的情况下,无法发送缓存器大小以上的分组,因此将一次发送的分组的大小设置为比缓存器的大小小,在接收装置中,进行超时处理,而等待某种程度的分组接收,从而进行将某种程度大小的分组传送到应用程序层的处理,但有可能频繁发生超时,转送速度变慢。
例如,在巨型分组的大小为32k字节,发送装置的缓存器的大小为8k字节那样,巨型分组的大小比缓存器的大小大的情况下,从发送装置一次无法发送8k字节以上的分组,因此接收装置进行处理,在等待某种程度的分组接收的基础上通过超时处理,将该时刻的大小的分组传送到应用程序层,但这时,因为每次都产生超时,所以有转送速度变慢的问题。
发明内容
本发明就是鉴于这样的状况而提出的,能够更高速地进行分组的接收。
本发明的一个方面是一种接收装置,在接收第一分组的接收装置中,具备:判断与来自应用程序层的要求对应地接收到的上述第一分组的个数是否超过了第一阈值的第一判断单元,其中,上述第一阈值是在根据上述第一分组生成第二分组时的上述第一分组的个数,上述第二分组所存储的数据的大小比上述第一分组大;在判断出没有超过上述第一阈值的情况下,判断从接收到前一个的上述第一分组后是否经过了到超时为止的规定时间的第二判断单元;在判断出经过了上述规定时间的情况下,判断连续经过了上述规定时间的次数是否超过允许的作为上述超时的次数的第二阈值的第三判断单元;在判断出超过了上述第二阈值的情况下,设置上述第一阈值使得在生成上述第二分组时的上述第一分组的个数减少的第一设置单元。
可以具备处理单元,该处理单元进行如下处理:在判断出没有超过上述第二阈值的情况下,根据接收到的上述第一分组生成上述第二分组,并将处理交接到上述应用程序层。
上述第一设置单元可以在判断出超过上述第二阈值的情况下,设置上述第一阈值使得生成上述第二分组时的上述第一分组的个数减少1。
可以具备:与上述要求对应地设置上述第一阈值、上述第二阈值、上述规定时间的初始值的第二设置单元,其中上述第一判断单元判断与来自应用程序层的要求对应地接收到的上述第一分组的个数是否超过所设置的上述第一阈值,在判断出没有超过上述第一阈值的情况下,上述第二判断单元判断在接收到前1个上述第一分组后是否经过了设置的上述规定时间,在判断出经过了上述规定时间的情况下,上述第三判断单元判断连续经过了上述规定时间的次数是否超过所设置的上述第二阈值。
本发明的一个方面是一种接收方法,在接收第一分组的接收装置的接收方法中,包括:判断与来自应用程序层的要求对应地接收到的上述第一分组的个数是否超过了第一阈值的第一判断步骤,其中,上述第一阈值是在根据上述第一分组生成第二分组时的上述第一分组的个数,上述第二分组所存储的数据的大小比上述第一分组大;在判断出没有超过上述第一阈值的情况下,判断从接收到前一个上述第一分组后是否经过了到超时为止的规定时间的第二判断步骤;在判断出经过了上述规定时间的情况下,判断连续经过了上述规定时间的次数是否超过允许的作为上述超时的次数的第二阈值的第三判断步骤;在判断出超过了上述第二阈值的情况下,设置上述第一阈值使得在生成上述第二分组时的上述第一分组的个数减少的设置步骤。
本发明的一个方面是一种程序,在使计算机执行接收第一分组的接收装置的处理的程序中,包含:判断与来自应用程序层的要求对应地接收到的上述第一分组的个数是否超过了在根据上述第一分组生成所存储的数据的大小比上述第一分组还大的第二分组时的作为上述第一分组的个数的第一阈值的第一判断步骤;在判断出没有超过上述第一阈值的情况下,判断是否经过了从接收到前一个上述第一分组到超时为止的规定时间的第二判断步骤;在判断出经过了上述规定时间的情况下,判断连续经过了上述规定时间的次数是否超过允许的作为上述超时的次数的第二阈值的第三判断步骤;在判断出超过了上述第二阈值的情况下,设置上述第一阈值使得在生成上述第二分组时的上述第一分组的个数减少的设置步骤。
在本发明的一个方面中,判断与来自应用程序层的要求对应地接收到的上述第一分组的个数是否超过了在根据上述第一分组生成所存储的数据的大小比上述第一分组还大的第二分组时的作为上述第一分组的个数的第一阈值,在判断出没有超过上述第一阈值的情况下,判断是否经过了从接收到前一个上述第一分组到超时为止的规定时间,在判断出经过了上述规定时间的情况下,判断连续经过了上述规定时间的次数是否超过允许的作为上述超时的次数的第二阈值,在判断出超过了上述第二阈值的情况下,设置上述第一阈值使得在生成上述第二分组时的上述第一分组的个数减少。
如上所述,根据本发明的一个方面,能够更高速地进行分组的接收。
附图说明
图1是表示适用了本发明的个人计算机的硬件结构的例子的框图。
图2是说明图1的个人计算机的分组发送的处理的流程图。
图3是说明巨型分组和分组的关系的图。
图4是说明生成IP头的处理的图。
图5是说明生成TCP头的处理的图。
图6是说明图1的个人计算机的分组接收的处理的流程图。
图7是表示图1的个人计算机的功能结构例子的框图。
图8是说明数据接收的处理的流程图。
图9是说明巨型分组功能的初始化处理的流程图。
图10是说明巨型分组寄存器的图。
图11是说明巨型分组寄存器设置的处理的流程图。
图12是说明巨型分组接收的处理的流程图。
图13是表示个人计算机的结构的框图。
具体实施方式
以下,说明本发明的实施例,如果示例本发明的结构要素与说明书或附图记载的实施例的对应关系,则如下。该记载是为了确认支持本发明的实施例被记载在说明书或附图中。因此,虽然在说明书或附图中进行了记载,但作为与本发明的构成要素对应的实施例,有在此没有记载的实施例,也并不意味着该实施例不与该构成要素对应。相反,即使在此记载为与构成要素对应的实施例,也并不意味着该实施例不与该构成要素以外的构成要素对应。
本发明的一个方面的接收装置(例如图7的个人计算机1)具备:判断与来自应用程序层的要求对应地接收到的第一分组(例如分组)的个数是否超过了在根据第一分组生成所存储的数据的大小比第一分组还大的第二分组(例如巨型分组)时的作为第一分组的个数的第一阈值(例如分组组合数)的第一判断单元(例如图7的分组组合数判断部件121);在判断出没有超过第一阈值的情况下,判断是否经过了从接收到前一个第一分组到超时为止的规定时间(例如超时时间)的第二判断单元(例如图7的超时时间判断部件122);在判断出经过了规定时间的情况下,判断连续经过了规定时间的次数是否超过允许的作为超时次数的第二阈值(例如超时次数)的第三判断单元(例如图7的超时次数判断部件123);在判断出超过了第二阈值的情况下,设置第一阈值使得在生成第二分组时的第一分组的个数减少的第一设置单元(例如图7的分组组合数设置部件124)。
可以具备:在判断出没有超过第二阈值的情况下,进行处理而根据接收到的第一分组生成第二分组,并将处理交接到应用程序层的处理单元(例如图7的分组处理部件125)。
第一设置单元可以在判断出超过第二阈值的情况下,设置第一阈值使得从生成第二分组时的上述第一分组的个数减去1。
可以具备:与要求对应地设置第一阈值、第二阈值、规定时间的初始值的第二设置单元(例如图7的初始值设置部件111),其中第一判断单元判断与来自应用程序层的要求对应地接收到的第一分组的个数是否超过所设置的第一阈值,第二判断单元在判断出没有超过第一阈值的情况下,判断在接收到1个之前的第一分组后是否经过了设置的规定时间,第三判断单元在判断出经过了规定时间的情况下,判断连续经过了规定时间的次数是否超过所设置的第二阈值。
本发明的一个方面的接收方法或程序包括:判断与来自应用程序层的要求对应地接收到的第一分组(例如分组)的个数是否超过了在根据第一分组生成所存储的数据的大小比第一分组还大的第二分组(例如巨型分组)时的作为第一分组的个数的第一阈值(例如分组组合数)的第一判断步骤(例如图12的步骤S133的处理);在判断出没有超过第一阈值的情况下,判断是否经过了从接收到前一个第一分组到超时为止的规定时间(例如超时时间)的第二判断步骤(例如图12的步骤S137的处理);在判断出经过了规定时间的情况下,判断连续经过了规定时间的次数是否超过允许的作为超时次数的第二阈值(例如超时次数)的第三判断步骤(例如图12的步骤S138的处理);在判断出超过了第二阈值的情况下,设置第一阈值使得在生成第二分组时的第一分组的个数减少的设置步骤(例如图12的步骤S140的处理)。
本发明的一个方面的程序可以记录在记录介质(例如图13的可移动介质221)中。
以下,参照附图说明本发明的实施例。
图1是表示适用了本发明的个人计算机1的硬件结构的例子的框图。
该个人计算机1与网络2连接。个人计算机1是本发明的接收装置的一个例子,它例如依照TCP/IP等协议,接收从与网络2连接的其他设备发送来的AV数据等数据。另外,个人计算机1不只是接收数据,也可以发送数据,因此以下说明数据的发送和接收的双方的情况。
个人计算机1构成为包含CPU11、PCI(Peripheral ComponentInterconnect)总线控制器12、RAM(随机访问存储器)13、数据处理部件14、AV数据缓存器15、发送接收缓冲器16、PHY17(以下称为物理层电路17)、MAG18(以下称为脉冲转换器18)、RJ-4519(以下称为连接器19)。
CPU11控制个人计算机1的各部件。另外,CPU11执行记录在后述的ROM(只读存储器)212或记录部件218等中的应用程序(软件程序),同时基于规定的通信程序(软件程序),进行与分组的发送接收有关的TCP/IP处理。例如,在个人计算机1发送接收分组的情况下,CPU11不进行包含在分组中的AV数据自身的处理,而进行与包含在分组中的头(控制数据)有关的处理。
具体地说,CPU11依照记录在后述的ROM212或记录部件218等中的软件程序,经由网络2针对与网络2连接的其他设备进行以下处理:用于发送分组的IP处理;在分组传送中发生了异常的情况下,通知异常的ICMP(Internet Control Message Protocol)的处理;进行IP地址和MAC(Media Access Control)地址的变换的ARP(AddressResolution Protocol)的处理;识别进行通信的程序,分配端口的连接型的TCP处理等。
换一种说法,CPU11例如不对存储在AV数据缓存器15中的AV数据、存储在发送接收缓冲器16中的分组等数据自身进行处理,而是基于例如存储在RAM13中的AV数据和分组等的数据的例如先头地址、长度等信息进行处理(进行头的处理)。即,这时,在RAM13中不存储AV数据等数据自身。
进而,CPU11经由PCI总线控制器12控制数据处理部件14。数据处理部件14是进行以下处理的硬件:对通过个人计算机1发送接收的数据(分组)的合成和分割处理;在通过个人计算机1进行数据的发送接收处理中,进行CPU11执行的上述IP处理等处理以外的处理。
数据处理部件14构成为包含PCI总线接口31、寄存器32、巨型分组处理部件33、千兆(Giga)比特MAC(Media Access Control)34、SD-RAM(Synchronous Dynamic Random Access Memory)控制器315。
PCI总线接口31是在寄存器32和巨型分组处理部件33与PCI总线控制器12之间输入输出的数据的接口。寄存器32存储经由PCI总线接口31输入输出的数据、以及在巨型分组处理部件33和千兆比特MAC34中处理的数据或处理的结果数据。
SD-RAM控制器35控制在AV数据缓存器15或发送接收缓冲器16与巨型分组处理部件33或千兆比特MAC34之间进行的数据转送。SD-RAM控制器35在发送数据的情况下,例如将从对AV数据进行各种处理的图像声音处理装置(未图示)供给的AV数据存储到AV数据缓存器15中。
巨型分组处理部件33在发送数据的情况下,读出存储在AV数据缓存器15中的AV数据,对读出的AV数据实施各种处理,从而生成存储了AV数据的例如32k字节大小的巨型分组。另外,巨型分组处理部件33根据从PCI总线控制器12经由PCI总线接口31从CPU11供给的头,生成用于分组发送的头。另外,巨型分组处理部件33对包含在巨型分组中的AV数据进行分割,生成包含通过分割得到的AV数据、用于分组发送的头的分组。巨型分组处理部件33基于SD-RAM控制器35的控制,将生成的分组存储到发送接收缓冲器16中。
千兆比特MAC34对在与物理层电路17之间输入输出的数据进行MAC处理。千兆比特MAC34在发送数据的情况下,基于SD-RAM控制器35的控制,对存储在发送接收缓冲器16中的分组实施MAC处理,并提供给物理层电路17。
物理层电路17例如根据以太网规格,对个人计算机1经由网络2发送接收的分组进行调制或解调等物理层的处理。物理层电路17在发送数据的情况下,针对从千兆比特MAC34供给的分组,例如实施调制等物理层的处理,并经由脉冲转换器18提供给连接器19。
连接器19例如由RJ-45型等构成,经由通信线与网络2连接。连接器19在发送数据的情况下,经由网络2将经由脉冲转换器18从物理层电路17供给的分组发送到与网络2连接的其他设备。
另外,连接器19在接收数据的情况下,经由网络2接收从与网络2连接的其他设备发送来的分组,并经由脉冲转换器18提供给物理层电路17。物理层电路17针对经由脉冲转换器18从连接器19提供的分组,例如实施解调等物理层的处理,并提供给千兆比特MAC34。
千兆比特MAC34在接收数据的情况下,对从物理层电路17提供的分组实施MAC处理,并提供给SD-RAM控制器35。SD-RAM控制器35将从千兆比特MAC34提供的分组存储到发送接收缓冲器16中。
巨型分组处理部件33在接收数据的情况下,对SD-RAM控制器35从发送接收缓冲器16读出的分组,即从SD-RAM控制器35提供的多个分组进行合成而生成巨型分组。巨型分组处理部件33经由PCI总线控制器12和PCI总线接口31,基于从CPU11提供的TCP/IP的处理结果,对巨型分组进行分割而生成分组。
然后,巨型分组处理部件33基于SD-RAM控制器35的控制,将生成的分组提供给AV数据缓存器15进行存储。SD-RAM控制器35将存储在AV数据缓存器15中的分组输出到对AV数据进行各种处理的图像声音处理装置(未图示)。
接着,参考图2和图6的流程图,说明图1的个人计算机1的分组发送接收处理。
首先,参考图2的流程图,说明个人计算机1经由网络2将分组发送到与网络2连接的其他设备的处理。
在步骤S11中,AV缓存器15基于SD-RAM控制器35的控制,存储从对AV数据进行各种处理的图像声音处理装置(未图示)输出的AV数据。
在步骤S21中,巨型分组处理部件33基于SD-RAM控制器35的控制,读出存储在AV缓存器15中的AV数据,生成存储有读出的AV数据的巨型分组。例如巨型分组处理部件33如图3的上侧所示那样,生成存储有AV数据的32k字节大小的巨型分组。
返回到图2的流程图,在步骤S22中,巨型分组处理部件33将生成的巨型分组的发送处理所必需的数据从PCI总线接口31经由PCI总线控制器12提供给CPU11。另外,这时,巨型分组处理部件33根据需要,还将存储在寄存器32中的数据从PCI总线接口31经由PCI总线控制器12提供给CPU11。
在步骤S41中,CPU11基于经由PCI总线接口31和PCI总线控制器12从巨型分组处理部件33提供的数据,进行用于发送巨型分组的TCP/IP处理,生成由IP头和TCP头构成的头HD1。CPU11从PCI总线控制器12经由PCI总线接口31,将头HD1提供给巨型分组处理部件33。
这时,巨型分组处理部件33基于SD-RAM控制器35的控制,将图3的上侧所示的对数据(AV数据)附加了由IP头和TCP头构成的头HD1的32k字节大小的巨型分组存储到发送接收缓冲器16中。
返回到图2的流程图,在步骤S23中,巨型分组处理部件33根据从CPU11提供的头HD1,生成用于分组发送的头HD2。然后,巨型分组处理部件33基于SD-RAM控制器35的控制,对存储在发送接收缓冲器16中的巨型分组所包含的AV数据进行分割,生成包含通过分割所得到的AV数据和头HD2的分组。
具体地说,巨型分组处理部件33例如如图4的头HD2的IP头所示那样,原样地使用(复制)头HD1的IP头的服务类型、识别、生存时间、发送方地址、发送目的地址作为服务类型(Service Type)、识别(Indentification)、生存时间(Time to Live)、发送方地址(Source IPAddress)、发送目的地址(Destination IP Address),生成头HD2的IP头。
另外,对于其他的头HD2的IP头,例如如图4所示那样生成头HD2的IP头,使得在版本(Version)中设置“4h”,在头长度(HLEN)中设置“5”或“F”,在全长(Total Length)中设置“0000h”,在标志(Flags)中设置“0000h”,在片段位移量(Fragment Offset)中设置“0000h”,在协议(Protocol)中设置“TCP=06h”,通过硬件计算头校验(Header Checksum),不生成选项(IP Options)和补充(Padding)。
另外,巨型分组处理部件33例如如图5的头HD2的TCP头所示那样,原样地使用(复制)头HD1的TCP头的发送方端口编号数据、发送目的端口编号数据、窗口数据作为发送方端口编号(SourcePort)、发送目的端口编号(Destination Port)、窗口(Window),生成头HD2的TCP头。
另外,对于其他头HD2的TCP头,例如如图5所示那样生成头HD2的TCP头,使得通过硬件计算序列号(Sequence Number),通过硬件计算确认应答编号(Acknowledgement Number),在数据偏移量/头长度(HLEN)中设置“5”或“F”,在预约(Reserved)中设置“0”,控制比特(Code Bit)为各分组的OR,通过硬件计算校验(Checksum),在紧急指针(Urgent Pointer)中设置“0”,不生成选项(Options)和补充(Padding)。
即,巨型分组处理部件33如图3的下侧所示那样,对包含在巨型分组中的AV数据进行分割,生成包含通过分割得到的AV数据(在图3中表示为数据)、基于头HD1生成的头HD2的分组最大长度为1518字节的多个分组。
返回图2的流程图,在步骤S24中,巨型分组处理部件33基于SD-RAM控制器35的控制,将生成的分组存储到发送接收缓冲器16中。
在步骤S31中,发送接收缓冲器16基于SD-RAM控制器35的控制,将存储的分组提供给千兆比特MAC34。另外,对提供给千兆比特MAC34的分组实施千兆比特MAC34的MAC处理和物理层电路17的物理层处理,并经由脉冲转换器18从连接器19发送到网络2。
如上所述,个人计算机1经由网络2将分组发送到与网络2连接的其他设备。
接着,参考图6的流程图,说明个人计算机1从与网络2连接的其他设备经由网络2接收分组的处理。
在个人计算机1经由网络2接收分组的情况下,由连接器19接收分组,经由脉冲转换器18由物理层电路17实施物理层处理,并提供给千兆比特MAC34。
在步骤S71中,千兆比特MAC34对经由网络2接收到的分组,即从物理层电路17提供的分组实施MAC处理,并提供给SD-RAM控制器35。SD-RAM控制器35将从千兆比特MAC34提供的分组存储到发送接收缓冲器16中。
在步骤S61中,发送接收缓冲器16基于SD-RAM控制器35的控制,将存储的分组提供给巨型分组处理部件33。
在步骤S51中,巨型分组处理部件33对SD-RAM控制器35从发送接收缓冲器16读出的分组,即从SD-RAM控制器35提供的多个分组进行合成,生成巨型分组。例如巨型分组处理部件33依照附加在分组中的头HD2的IP头(图4)和TCP头(图5)的处理,对从SD-RAM控制器35提供的多个分组进行合成,从而生成将图3的上侧所示的由IP头和TCP头构成的头HD1附加到数据(AV数据)上的32k字节大小的巨型分组。
具体地说,巨型分组处理部件33例如如图4的头HD2的IP头所示那样,原样地使用(复制)服务类型、识别、生存时间、发送方地址、发送目的地址,生成头HD1的IP头。另外,巨型分组处理部件33例如如图5的头HD2的TCP头所示那样,原样地使用(复制)发送方端口编号、发送目的端口编号、窗口,生成头HD1的TCP头。
另外,这时,巨型分组处理部件33生成头HD1的IP头的校验数据、TCP头的校验数据、序列号、确认应答编号。另外,巨型分组处理部件33使用包含在分组中的头HD2的IP头和TCP头的校验数据、AV数据,进行校验计算。
另外,巨型分组处理部件33从PCI总线接口31经由PCI总线控制器12,将巨型分组的接收处理所必需的数据,例如从分组的头HD2(例如图4的IP头和图5的TCP头)取得的发送方地址、发送目的地址、大小数据等提供给CPU11。另外,这时,巨型分组处理部件33根据需要还将存储在寄存器32中的数据从PCI总线接口31经由PCI总线控制器12提供给CPU11。
返回到图6的流程图,在步骤S81中,CPU11基于经由PCI总线接口31和PCI总线控制器12从巨型分组处理部件33提供的数据,进行用于接收巨型分组的TCP/IP处理。CPU11将TCP/IP处理的结果从PCI总线控制器12经由PCI总线接口31提供给巨型分组处理部件33。
在步骤S52中,巨型分组处理部件33基于从PCI总线控制器12经由PCI总线接口31从CPU11提供的TCP/IP的处理结果,对巨型分组进行分割,生成分组。例如,巨型分组处理部件33如图3的下侧所示那样,对包含在巨型分组中的AV数据进行分割,生成包含通过分割得到的AV数据(在图3中表示为数据)和头HD2的分组最大长度为1518字节的多个分组。
返回到图6的流程图,在步骤S53中,巨型分组处理部件33基于SD-RAM控制器35的控制,将生成的分组提供给AV数据缓存器15进行存储。然后,基于SD-RAM控制器35的控制,将存储在AV数据缓存器15中的分组输出到对AV数据进行各种处理的图像声音处理装置(未图示)。
如上所述,个人计算机1从与网络2连接的其他设备经由网络2接收分组。
这样,在个人计算机1中,数据处理部件14生成由多个分组构成的巨型分组,使CPU11执行巨型分组的发送接收处理(TCP/IP的处理)。因此,与CPU11进行多个分组的发送接收处理的情况相比,能够减轻CPU11的处理负担。
另外,这时,在CPU11和数据处理部件14之间,例如只传送头、寄存器数据等数据量小的数据,在数据处理部件14中,通过硬件高速地进行TCP/IP处理的一部分,由此在原样地使用现有的PCI总线的同时,不使CPU11高速化,就能够高速地进行TCP/IP处理。其结果是能够简单并且廉价地形成个人计算机1的结构。
但是,如上所述,在以前的提案中,例如巨型分组的大小为32k字节,发送装置的缓存器大小为8k字节,如此在巨型分组的大小比缓存器的大小大的情况下,从发送装置一次无法发送8k字节以上的分组,因此接收装置在等待某种程度的分组的接收的基础上,通过超时处理,而进行处理将这时的大小的分组发送到应用程序层。
在该情况下,频繁产生超时,转送速度有可能变慢。作为不只解决现有的问题,还同时解决新的问题的方法,本申请人发明了以下的方法:在持续产生了多次超时的情况下,动态变更根据分组生成巨型分组时的分组个数,一边改变巨型分组的大小,一边生成巨型分组。以下,参考图7~图12,说明一边动态地变更生成巨型分组时的分组个数,一边接收分组的处理。另外,例如在上述的图6的步骤S51的处理中,在生成巨型分组时,进行参考图7~图12说明的处理。
图7是表示图1的个人计算机1的功能结构例子的框图。
个人计算机1构成为包含软件程序101、初始化处理部件102、巨型分组寄存器103、套接字(socket)处理部件104。
另外,在本实施例中,个人计算机1具有上述图1的硬件结构,因此软件程序101例如构成为由CPU11(图1)执行的程序(软件),初始化处理部件102和套接字处理部件104例如构成为由巨型分组处理部件33(图1)执行的程序。其中,通过使个人计算机1的结构与图1的硬件结构不同,可以作为硬件单体构成软件程序101、初始化处理部件102、或套接字处理部件104,也可以构成为软件和硬件的组合。
软件程序101例如是由CPU11执行的能够重放AV数据的应用程序的规定的通信程序。软件程序101例如在从用户经由用户接口指示了规定的AV数据的重放时,将套接字生成请求或巨型分组功能使用请求提供给初始化处理部件102。
在此,套接字生成请求是指为了生成用于经由网络2与其他设备进行通信的套接字的请求。例如,套接字生成请求在接收AV数据的情况下,是生成用于与提供AV数据的个人计算机(或例如专用的服务器等)进行通信的套接字的请求。另外,巨型分组功能使用请求是指后述的为了使用用于对每个规定的个数动态地组合为巨型分组的功能(以下也称为巨型分组功能)的请求。
即,软件程序101将套接字生成请求与巨型分组功能使用请求一起提供给初始化处理部件102,由此使用巨型分组功能,例如接收AV数据。
初始化处理部件102在从软件程序101提供了套接字生成请求和巨型分组功能使用请求的情况下,进行巨型分组功能的初始化处理。
在此,巨型分组功能的初始化处理是指对存储在巨型分组寄存器103中的例如分组组合数、超时时间、或超时次数等数据进行初始化的处理。
另外,分组组合数(以下也将分组组合数称为N(N是自然数))是指指定接收到的分组的组合个数的值(阈值)。例如,如上述例子那样,在巨型分组的大小是32k字节,分组的大小是1518字节的情况下,将分组组合数设置为20(个),在接收到20(个)分组时,组合20(个)分组,而生成(1518×20字节的大小的)巨型分组。另外,同样例如在巨型分组的大小是9k字节,分组的大小是1.5k字节的情况下,将分组组合数设置为6(个),在接收到6(个)分组时,组合6(个)分组,而生成(1.5×6k字节的大小的)巨型分组。
另外,超时时间是指例如50毫秒等,在前次接收到分组后经过了某时间还没有接收到分组的情况下执行超时处理的时间。进而,超时次数是指例如3次等,用于指定可以连续产生超时的次数的值(阈值)。另外,以下也将分组组合数、超时时间、超时次数总称为巨型分组设置信息来进行说明。
初始化处理部件102构成为包含初始值设置部件111。
初始值设置部件111在从软件程序101提供了套接字生成请求和巨型分组功能使用请求的情况下,将巨型分组设置信息设置到巨型分组寄存器103,进行巨型分组功能的初始化处理。初始值设置部件111在进行巨型分组功能的初始化处理的情况下,将巨型分组寄存器编号提供给套接字处理部件104。
另外,将在后面详细说明,巨型分组寄存器编号是指由于针对每个会话(session)分别将巨型分组设置信息存储到巨型分组寄存器103中,所以为了区别它们而指定作为对象的会话的巨型分组设置信息的编号。巨型分组寄存器编号例如是1、2、3......M等编号。
巨型分组寄存器103由寄存器构成。例如巨型分组寄存器103基于来自初始化处理部件102或套接字处理部件104的指示,针对每个会话存储巨型分组设置信息或表示巨型分组功能的使用状况的信息(以下称为使用状况进行说明)。另外,使用状况例如是表示没有使用的“空状态”、或表示正在使用的“使用状态”的任意一个的信息。另外,巨型分组寄存器103也可以与寄存器32(图1)一样。
套接字处理部件104执行与套接字通信有关的各种处理。例如套接字处理部件104基于巨型分组处理部件33(数据处理部件14)的控制,执行与套接字通信有关的各种处理。
另外,套接字处理部件104根据从初始化处理部件102提供的巨型分组寄存器编号,从巨型分组寄存器103读出存储在与巨型分组寄存器编号对应的区域中的巨型分组设置信息进行设置。套接字处理部件104根据所设置的巨型分组设置信息,进行巨型分组接收处理,并将对根据接收到的分组生成的巨型分组的处理交接到软件程序101。
在此,巨型分组的接收处理是指例如一边根据超时时间和超时次数动态地变更分组组合数,一边接收分组的处理。
另外,套接字处理部件104在巨型分组接收处理结束了的情况下,将表示巨型分组接收处理结束了的通知(以下称为处理结束通知)提供给巨型分组寄存器103进行存储。巨型分组寄存器103根据从套接字处理部件104提供的处理结束通知,由于巨型分组接收处理结束了,所以例如将使用状况从“使用状态”变更为“空状态”进行存储。这样,使用状况成为“空状态”,由此能够针对不同的会话使用该成为了“空状态”的区域。
套接字处理部件104构成为包含分组组合数判断部件121、超时时间判断部件122、超时次数判断部件123、分组组合数设置部件124、分组处理部件125。
分组组合数判断部件121判断接收到的分组的个数是否为N(分组组合数)。分组组合数判断部件121将判断结果提供给超时时间判断部件122或分组处理部件125。
超时时间判断部件122根据从分组组合数判断部件121提供的判断结果,判断在前次接收到分组后是否经过了超时时间。超时时间判断部件122将判断结果提供给超时次数判断部件123。
超时次数判断部件123根据从超时时间判断部件122提供的判断结果,判断超时了的次数是否是连续产生了超时次数或以上。超时次数判断部件123将判断结果提供给分组组合数设置部件124或分组处理部件125。
分组组合数设置部件124根据从超时次数判断部件123提供的判断结果,进行计算而减少设置了的N(分组组合数),将减少了的N(分组组合数)存储到巨型分组寄存器103中进行设置。另外,这时,分组组合数设置部件124也可以不将N(分组组合数)存储到巨型分组寄存器103中,而例如存储到存储器(未图示)等中。
分组处理部件125根据从分组组合数判断部件121或超时次数判断部件123提供的判断结果,根据规定的分组组合数的分组生成巨型分组。分组处理部件125将对生成的巨型分组的处理交接到软件程序101。这时,软件程序101(即CPU11)由于从分组处理部件125接受了巨型分组的处理,所以例如进行上述的图6的步骤S81的处理。
接着,参考图8~图12,说明具有图7的功能结构例子的个人计算机1的动作。首先,参考图8的流程图,说明数据接收的处理。另外,例如在由用户经由用户接口指示了规定的AV数据的重放时,开始该处理。
在步骤S101中,初始化处理部件102根据从软件程序101提供的套接字生成请求或巨型分组功能使用请求,进行巨型分组功能的初始化处理。例如在步骤S101中,初始化处理部件102进行处理而对巨型分组设置信息进行初始化。
在此,参考图9的流程图,说明步骤S101中的初始化处理部件102的巨型分组功能的初始化处理的详细。
在步骤S111中,初始值设置部件111判断是否从软件程序101输入了套接字生成请求。
在步骤S111中,在判断出没有输入套接字生成请求的情况下,由于没有从软件程序101指示例如规定的AV数据的重放,所以返回步骤S111,重复进行上述处理。即,初始化处理部件102例如直到由用户经由用户接口指示了规定的AV数据的重放为止等待。
另一方面,在步骤S111中,在判断出从软件程序101输入了套接字生成请求的情况下,前进到步骤S112,初始值设置部件111判断是否输入了巨型分组功能使用请求。
在步骤S112中,在判断出没有输入巨型分组功能使用请求的情况下,例如指示了规定的AV数据的重放但不进行巨型分组的接收处理,因此返回到步骤S111,重复进行上述处理。即,初始化处理部件102例如直到由用户经由用户接口再次指示了规定的AV数据的重放为止等待。
另一方面,在步骤S112中判断出输入了巨型分组功能使用请求的情况下,前进到步骤S113,初始值设置部件111判断巨型分组功能是否有空。例如,在步骤S113中,初始值设置部件111判断与存储在巨型分组寄存器103中的巨型分组设置信息对应的使用状况是否有表示“空状态”的区域。
例如,巨型分组寄存器103如图10所示那样,与表示1~M的巨型分组寄存器编号对应地,分别存储有分组组合数、超时时间、超时次数。这些巨型分组寄存器编号是分配给每个会话的编号,因此向每个会话分配分组组合数、超时时间、超时次数。
即,初始值设置部件111如上所述那样,在使用状况中有“使用状态”和“空状态”,使用状况表示“使用状态”的情况下,由于该区域已经由其他会话使用,所以判断是否有使用状况表示“空状态”的区域。
返回到图9的流程图,在步骤S113中,在判断出巨型分组功能中没有空的情况下,由于无法使用巨型分组功能,所以返回到步骤S111,重复进行上述处理。即,初始化处理部件102例如直到由用户经由用户接口再次指示了规定的AV数据的重放为止等待。
另一方面,在步骤S113中,在判断出巨型分组功能有空的情况下,前进到步骤S114,初始值设置部件111进行巨型分组寄存器的设置处理。例如,在步骤S114中,初始值设置部件111在图10的巨型分组寄存器103的与1的巨型分组寄存器编号对应的使用状态表示“空状态”的情况下,进行巨型分组寄存器的设置处理,而设置与1的巨型分组寄存器编号对应的分组组合数、超时时间、超时次数。
在此,参考图11的流程图,说明步骤S114中的初始值设置部件111的巨型分组寄存器的设置处理的详细。
在步骤S121中,初始值设置部件111设置分组组合数。例如在步骤S121中,初始值设置部件111将20(个)存储设置为图10的巨型分组寄存器103的与1的巨型分组寄存器编号对应的分组组合数(N)。
在步骤S122中,初始值设置部件111设置超时时间。例如在步骤S122中,初始值设置部件111将50(毫秒)存储设置为图10的巨型分组寄存器103的与1的巨型分组寄存器编号对应的超时时间。
在步骤S123中,初始值设置部件111设置超时次数。例如在步骤S123中,初始值设置部件111将3(次)存储设置为图10的巨型分组寄存器103的与1的巨型分组寄存器编号对应的超时次数。
返回到图9的流程图,在步骤S115中,初始值设置部件111向套接字处理部件104通知巨型分组寄存器编号,结束巨型分组功能的初始化处理,处理返回到图8的步骤S101,执行步骤S102的处理。例如初始值设置部件111向套接字处理部件104通知1的巨型分组寄存器编号。
在步骤S102中,套接字处理部件104进行巨型分组接收处理。
在此,参考图12,说明步骤S102中的套接字处理部件104的巨型分组接收处理的详细。
在步骤S131中,套接字处理部件104根据从初始值设置部件111提供的巨型分组寄存器编号,从巨型分组寄存器103读出分组组合数、超时时间、超时次数(巨型分组设置信息)。例如在步骤S131中,套接字处理部件104如图10所示那样,根据从初始值设置部件111提供的1的巨型分组寄存器编号,分别读出20(个)的分组组合数、50(毫秒)的超时时间、3(次)的超时次数。
返回到图12的流程图,在步骤S132中,套接字处理部件104判断是否接收到分组。
在步骤S132中,在判断出没有接收到分组的情况下,返回到步骤S132,重复进行上述处理。即,套接字处理部件104直到接收到分组为止等待。
另一方面,在步骤S132中,在判断出接收到分组的情况下,前进到步骤S133,分组组合数判断部件121判断接收到的分组的个数(分组数)是否为N个(分组组合数)。例如,在步骤S133中,分组组合数判断部件121判断接收到的分组数是否为20个。
在步骤S133中,在判断出接收到的分组数是N个(例如20个)的情况下,由于接收到分组组合数的个数的分组,所以前进到步骤S134,分组处理部件125根据规定的分组组合数的分组生成巨型分组。分组处理部件125将生成的巨型分组的处理交接到软件程序101。
这时,软件程序101(即CPU11)由于从分组处理部件125接受了巨型分组的处理,所以例如进行上述的图6的步骤S81的处理。然后,软件程序101(即CPU11)针对接收到的巨型分组,进行TCP/IP处理并存储到AV数据缓存器15中,然后作为AV数据,例如输出到对AV数据进行各种处理的图像声音处理装置(未图示)。
在步骤S135中,套接字处理部件104判断分组接收是否结束了。
在步骤S135中,在判断出分组接收结束了的情况下,前进到步骤S136,套接字处理部件104向巨型分组寄存器103输出表示分组接收结束了的处理结束通知,处理返回到图8的步骤S102,个人计算机1的数据接收处理结束。
这时,例如巨型分组寄存器103根据从套接字处理部件104提供的处理结束通知,将图10的巨型分组寄存器103的与1的巨型分组寄存器编号对应的使用状况从“使用状态”变更为“空状态”进行存储。其结果是能够由其他会话使用与1的巨型分组寄存器编号对应的区域。
另一方面,在步骤S135中,在判断出分组接收没有结束的情况下,由于分组接收没有结束,所以返回到步骤S132,重复进行上述处理。
在步骤S133中,判断出接收到的分组数不是N个(例如20个)的情况下,前进到步骤S137,超时时间判断部件122判断在前次接收到分组后是否经过了50毫秒(规定的时间)或以上。
在步骤S137中,在判断出前次接收到分组后没有经过50毫秒或以上的情况下,由于还没有超时,所以返回到步骤S132,重复进行上述处理。
另一方面,在步骤S137中,在判断出前次接收到分组后经过了50毫秒或以上的情况下,前进到步骤S138,超时次数判断部件123判断超时是否连续产生了3次(规定的次数)或以上。
在步骤S138中,在判断出超时没有连续产生3次或以上的情况下,由于超时的产生次数在允许范围内,所以前进到步骤S134,重复进行上述处理。
另一方面,在步骤S138中,在判断出超时连续发生了3次或以上的情况下,由于超时的产生次数超过了允许的次数,所以前进到步骤S139,分组组合数设置部件124将N(分组组合数)减去1。例如,在步骤S139中,分组组合数设置部件124从作为20(个)的N(分组组合数)减去1,计算出作为19(个)的N。
在步骤S140中,分组组合数设置部件124设置减少了的分组组合数,返回到步骤S133,重复进行上述处理。例如在步骤S140中,分组组合数设置部件124将作为19(个)的N(分组组合数)存储设置到巨型分组寄存器103中。
另外,在步骤S133中,分组组合数判断部件121判断接收到的分组数是否是19个。这样,在超时连续产生了规定的次数的情况下,由于可以动态地对N(分组组合数)进行减少(例如从20减少到19),所以难以产生超时。其结果是能够抑制因超时处理产生的转送速度的恶化。
如上所述,根据本发明,能够更高速地进行分组的接收。
另外,根据本发明,在一定时间以上没有接收到分组的情况下,即使不满足分组组合数,也以该时刻的大小进行超时处理而将处理交接到CPU,进而,在连续进行超时处理时,能够动态地变更分组组合数。其结果是能够抑制因超时处理而产生的转送速度的恶化。进而,例如即使在没有发送来分组组合数或以上的分组的情况下,也动态地变更分组组合数,由此能够抑制因超时处理而产生的转送速度的恶化。
进而,根据本发明,通过动态地变更分组组合数,例如不会产生由于发送侧的缓存器的大小和接收侧的分组组合数等不适合而产生的转送延迟等,能够始终进行高速转送。
另外,在上述例子中,将个人计算机1作为一个例子进行了说明,但本发明并不只限于此,例如也可以是摄像机、AV服务器、或电影剪辑器等与网络连接而与其他与网络连接的设备进行通信的设备。
另外,在上述例子中,作为协议例子,以TCP/IP作为一个例子进行了说明,但本发明并不只限于此,例如也可以是UDP/IP(UserDatagram Protocol/Internet Protocol)等。
进而,在上述例子中,说明了在产生了规定次数的超时的情况下,减少分组组合数,但当然也可以根据超时状况动态地增加分组组合数。另外,在上述例子中,说明了在接收侧设置分组组合数,但是也可以在发送侧进行设置。
图13是表示通过程序执行上述一连串处理的个人计算机的结构例子的框图。CPU211依照存储在ROM212、或记录部件218中的程序,执行各种处理。在RAM213中,适当地存储CPU211执行的程序和数据等。这些CPU211、ROM212、RAM213相互通过总线214连接。
CPU211还经由总线214与输入输出接口215连接。输入输出接口215与由开关、麦克风等构成的输入部件216、由显示器、扬声器等构成的输出部件217连接。CPU211与从输入部件216输入的指令对应地执行各种处理。另外,CPU211将处理结果输出到输出部件217。
与输入输出接口215连接的记录部件218例如由硬盘构成,记录CPU211执行的程序和各种数据。通信部件219经由因特网、局域网等网络,与外部的装置通信。另外,也可以经由通信部件219取得程序,并记录到记录部件218中。
与输入输出接口215连接的驱动器220在安装了磁盘、光盘、光磁盘、或半导体存储器等可移动介质221时,对它们进行驱动,取得存储在其中的程序和数据等。根据需要将取得的程序和数据转送到记录部件218进行记录。
存储安装到计算机中成为能够由计算机执行的状态的程序的程序存储介质如图13所示,由磁盘(包含软件)、光盘(包含CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital VersatileDisc))、光磁盘、或半导体存储器等构成的作为打包介质的可移动介质221、或暂时或永久地存储程序的ROM212、构成记录部件218的硬盘等构成。根据需要,经由路由器、调制解调器等作为接口的通信部件219,利用局域网、因特网、数字卫星广播那样的有线或无线的通信介质,将程序存储到程序记录介质中。
另外,在本说明书中,按照所记载的顺序以时间顺序执行记述存储在程序记录介质中的程序的步骤的处理当然也包含不必须按照时间顺序进行处理、以及并列或分别执行的处理。
另外,本发明的实施例并不只限于上述的实施例,在不脱离本发明的宗旨的范围内,能够进行各种变更。
Claims (5)
1.一种接收装置,接收第一分组,其特征在于包括:
判断与来自应用程序层的要求对应地接收到的上述第一分组的个数是否超过了第一阈值的第一判断单元,其中,上述第一阈值是在根据上述第一分组生成第二分组时的上述第一分组的个数,上述第二分组所存储的数据的大小比上述第一分组大;
在判断出没有超过上述第一阈值的情况下,判断从接收到前一个上述第一分组后是否经过了到超时为止的规定时间的第二判断单元;
在判断出经过了上述规定时间的情况下,判断连续经过了上述规定时间的次数是否超过允许的作为上述超时的次数的第二阈值的第三判断单元;
在判断出超过了上述第二阈值的情况下,设置上述第一阈值使得在生成上述第二分组时的上述第一分组的个数减少的第一设置单元。
2.根据权利要求1所述的接收装置,其特征在于还包括处理单元,该处理单元进行如下处理:
在判断出没有超过上述第二阈值的情况下,根据接收到的上述第一分组生成上述第二分组,并将处理交接到上述应用程序层。
3.根据权利要求1所述的接收装置,其特征在于:
上述第一设置单元在判断出超过上述第二阈值的情况下,设置上述第一阈值使得生成上述第二分组时的上述第一分组的个数减少1。
4.根据权利要求1所述的接收装置,其特征在于还包括:
与上述要求对应地设置上述第一阈值、上述第二阈值、上述规定时间的初始值的第二设置单元,其中
上述第一判断单元判断与来自应用程序层的要求对应地接收到的上述第一分组的个数是否超过所设置的上述第一阈值,
在判断出没有超过上述第一阈值的情况下,上述第二判断单元判断在接收到前一个上述第一分组后是否经过了设置的上述规定时间,
在判断出经过了上述规定时间的情况下,上述第三判断单元判断连续经过了上述规定时间的次数是否超过所设置的上述第二阈值。
5.一种接收方法,是接收第一分组的接收装置的接收方法,其特征在于包括:
判断与来自应用程序层的要求对应地接收到的上述第一分组的个数是否超过了第一阈值的第一判断步骤,其中,上述第一阈值是在根据上述第一分组生成第二分组时的上述第一分组的个数,上述第二分组所存储的数据的大小比上述第一分组大;
在判断出没有超过上述第一阈值的情况下,判断从接收到前一个上述第一分组后是否经过了到超时为止的规定时间的第二判断步骤;
在判断出经过了上述规定时间的情况下,判断连续经过了上述规定时间的次数是否超过允许的作为上述超时的次数的第二阈值的第三判断步骤;
在判断出超过了上述第二阈值的情况下,设置上述第一阈值使得在生成上述第二分组时的上述第一分组的个数减少的设置步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006017207 | 2006-01-26 | ||
JP2006017207A JP4363404B2 (ja) | 2006-01-26 | 2006-01-26 | 受信装置および方法、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101009659A CN101009659A (zh) | 2007-08-01 |
CN100593305C true CN100593305C (zh) | 2010-03-03 |
Family
ID=38285454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200710008152A Expired - Fee Related CN100593305C (zh) | 2006-01-26 | 2007-01-26 | 接收装置和方法、以及程序 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8121151B2 (zh) |
JP (1) | JP4363404B2 (zh) |
CN (1) | CN100593305C (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047711B (zh) * | 2006-04-27 | 2010-08-18 | 华为技术有限公司 | Ip报文传输、协商带宽节省能力和节省网络带宽的方法 |
JP4986155B2 (ja) * | 2007-10-15 | 2012-07-25 | 横河電機株式会社 | 通信品質診断装置 |
US8023513B2 (en) * | 2009-02-24 | 2011-09-20 | Fujitsu Limited | System and method for reducing overhead in a wireless network |
CN104883335B (zh) * | 2014-02-27 | 2017-12-01 | 王磊 | 一种全硬件tcp协议栈实现系统 |
US10841833B2 (en) | 2016-10-12 | 2020-11-17 | Qualcomm Incorporated | Streamlined user plane headers for high data rates |
CN108901079B (zh) * | 2018-06-20 | 2021-03-09 | Oppo(重庆)智能科技有限公司 | 超时时间确定方法、装置、设备及存储介质 |
US20220368765A1 (en) * | 2021-05-13 | 2022-11-17 | Agora Lab, Inc. | Universal Transport Framework For Heterogeneous Data Streams |
US11811877B2 (en) | 2021-05-13 | 2023-11-07 | Agora Lab, Inc. | Universal transport framework for heterogeneous data streams |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1366750A (zh) * | 2000-04-11 | 2002-08-28 | 摩托罗拉公司 | 用于访问通信媒体的方法 |
CN1417991A (zh) * | 2001-11-08 | 2003-05-14 | 摩托罗拉公司 | 在执行tcp/ip的通信系统中动态调整重传输和否定应答数目的方法 |
CN1430345A (zh) * | 2002-01-03 | 2003-07-16 | 华硕电脑股份有限公司 | 用于高速无线通信系统中的防止延迟的窗口化机械装置 |
CN1713633A (zh) * | 2004-06-24 | 2005-12-28 | 华为技术有限公司 | 一种网络流量控制的方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732286A (en) * | 1995-08-10 | 1998-03-24 | Cirrus Logic, Inc. | FIFO based receive packet throttle for receiving long strings of short data packets |
JP3988475B2 (ja) | 2002-02-05 | 2007-10-10 | ソニー株式会社 | 送信装置、受信装置およびそれらの方法 |
US6940863B2 (en) * | 2003-01-13 | 2005-09-06 | The Regents Of The University Of California | Edge router for optical label switched network |
US7233573B2 (en) * | 2003-02-08 | 2007-06-19 | Hewlett-Packard Development Company, L.P. | Apparatus and method for receiving data from a network |
US7450599B2 (en) * | 2003-02-08 | 2008-11-11 | Hewlett-Packard Development Company, L.P. | Apparatus and method for communicating with a network |
US7310480B2 (en) * | 2003-06-18 | 2007-12-18 | Intel Corporation | Adaptive framework for closed-loop protocols over photonic burst switched networks |
-
2006
- 2006-01-26 JP JP2006017207A patent/JP4363404B2/ja not_active Expired - Fee Related
-
2007
- 2007-01-18 US US11/624,458 patent/US8121151B2/en not_active Expired - Fee Related
- 2007-01-26 CN CN200710008152A patent/CN100593305C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1366750A (zh) * | 2000-04-11 | 2002-08-28 | 摩托罗拉公司 | 用于访问通信媒体的方法 |
CN1417991A (zh) * | 2001-11-08 | 2003-05-14 | 摩托罗拉公司 | 在执行tcp/ip的通信系统中动态调整重传输和否定应答数目的方法 |
CN1430345A (zh) * | 2002-01-03 | 2003-07-16 | 华硕电脑股份有限公司 | 用于高速无线通信系统中的防止延迟的窗口化机械装置 |
CN1713633A (zh) * | 2004-06-24 | 2005-12-28 | 华为技术有限公司 | 一种网络流量控制的方法 |
Also Published As
Publication number | Publication date |
---|---|
US8121151B2 (en) | 2012-02-21 |
JP4363404B2 (ja) | 2009-11-11 |
US20070171829A1 (en) | 2007-07-26 |
CN101009659A (zh) | 2007-08-01 |
JP2007201758A (ja) | 2007-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100593305C (zh) | 接收装置和方法、以及程序 | |
US11991072B2 (en) | System and method for facilitating efficient event notification management for a network interface controller (NIC) | |
US5748613A (en) | Communication pacing method | |
CN102201977B (zh) | 批量数据传输 | |
US9674315B2 (en) | Methods for dynamically binding header field identifiers in a network control protocol | |
CN100552626C (zh) | 用网络栈同步和上载已卸载网络栈连接的方法 | |
US7660264B1 (en) | Method for traffic schedulign in intelligent network interface circuitry | |
US8149866B2 (en) | System and method for filtering communications at a network interface controller | |
CN108777646B (zh) | 流量监控方法及装置 | |
CN1832483B (zh) | 通信系统中控制数据传输的方法和系统 | |
US7613132B2 (en) | Method and system for controlling virtual machine bandwidth | |
US9699101B2 (en) | Switch device, information processing system, and method for controlling switch device | |
RU2006135633A (ru) | Устройство и способ для реализации интерфейса с высокой скоростью передачи данных | |
US20150281106A1 (en) | Switch device, information processing system, and method for controlling switch device | |
CA2655262A1 (en) | Method and system for network-independent qos | |
US20140105226A1 (en) | Communications over multiple protocol interfaces in a computing environment | |
JP2009003677A (ja) | Usbホスト、usbスレーブ、無線通信方式、及びデータ転送方法 | |
MXPA04009588A (es) | Mecanismo de control de velocidad en tiempo real para transmisiones de datos a multiples velocidades en redes inalambricas. | |
KR101039550B1 (ko) | 데이터 전송률 계산 방법 및 이를 이용한 대역폭 설정 방법 | |
US7991008B2 (en) | Method for identifying the transmission control protocol stack of a connection | |
US7783784B1 (en) | Method and apparatus for adaptive selection of algorithms to load and spread traffic on an aggregation of network interface cards | |
US6779054B2 (en) | Method and apparatus for operating a network controller | |
CN108885599B (zh) | 用于串行附连小型计算机系统接口链路的方法和设备 | |
TWI689820B (zh) | Usb傳輸系統、usb裝置與支援usb傳輸的主機 | |
JP2006203735A (ja) | 通信装置 |
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: 20100303 Termination date: 20160126 |
|
EXPY | Termination of patent right or utility model |