CN105103500A - 通信方法、通信装置以及通信程序 - Google Patents

通信方法、通信装置以及通信程序 Download PDF

Info

Publication number
CN105103500A
CN105103500A CN201380073730.8A CN201380073730A CN105103500A CN 105103500 A CN105103500 A CN 105103500A CN 201380073730 A CN201380073730 A CN 201380073730A CN 105103500 A CN105103500 A CN 105103500A
Authority
CN
China
Prior art keywords
communicator
packet
data bag
value
threshold value
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.)
Pending
Application number
CN201380073730.8A
Other languages
English (en)
Inventor
佐沢真一
佐藤裕一
龟山裕亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN105103500A publication Critical patent/CN105103500A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/70Routing based on monitoring results
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • H04L43/0841Round trip packet loss

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Quality & Reliability (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

网络包括第1~第3通信装置。第2通信装置从由第1通信装置接收到的数据包中确定作为向第3通信装置转发的数据包的转发数据包,测量从第1通信装置接收转发数据包的间隔。第2通信装置将转发数据包向第3通信装置转发。第2通信装置从第3通信装置接收用于对转发数据包的接收状况进行通知的通知信息,并使用通知信息,在向第3通信装置转发了的数据包中,选择作为没有从第3通信装置通知接收成功的数据包的对象数据包。当从第1通信装置接收转发数据包的间隔超过阈值时,第2通信装置将对象数据包以能够纠错的形式再次发送给第3通信装置。

Description

通信方法、通信装置以及通信程序
技术领域
本发明涉及在多个通信装置之间进行的通信。
背景技术
随着云计算的普及而要求通信的高速化,但是由于企业的全球化等使得进行数据收发的通信装置彼此之间的距离变得越来越远。在使用传输控制协议(TCP)等对在通信中丢失的数据包进行重发的方式来进行通信时,发送侧的通信装置使用来自接收侧的通信装置的确认响应数据包来决定接下来发送的数据的大小、是否进行重发。发送侧的通信装置和接收侧的通信装置之间的线路的往返时延(RoundTripTime,RTT)随着发送侧的通信装置与接收侧的通信装置之间距离变大而变长。因此,在使用了TCP的通信中,当发送侧的通信装置与接收侧的通信装置之间的距离变长时,导致通信速度变慢。另一方面,在使用纠错的通信方式中,发送侧的通信装置除了发送包含所发送的数据的数据包之外还发送冗余数据包。当发生数据包丢包时,接收侧的通信装置使用冗余数据包来恢复丢失的数据包中包含的数据。因此,通过使用纠错的通信,能够防止因重发而产生的延迟,但由于发送冗余数据包,所以会产生吞吐量降低这样的问题。
作为相关技术,提出了一种如下所述的通信装置:测量当使用冗余数据包时在通信中发生的抖动、以及使用重发丢失数据包的方式时在通信中发生的抖动,并使用抖动较小的通信方式来发送数据(例如,专利文献1)。并且,还提出了一种使用状态参数、连接参数来决定纠错机制的方法(例如,专利文献2)。这里,状态参数是指带宽、容许的延迟时间等根据使用数据的应用而被要求的质量信息。另外,连接参数是与指通信连接相关的信息。
专利文献1:国际公开第2007/061087号
专利文献2:日本特表2002-507369号公报
若在重发通信中丢失的数据包的方式中,发送侧的通信装置与接收侧的通信装置的距离变大,则由于往返时延增大,所以存在通信速度降低的问题。另一方面,在发送纠错所使用的冗余数据包的方式中,能够防止由于重发处理引起的通信速度降低,但由于发送冗余数据包,所以会产生吞吐量降低的问题。
在可能使用的通信方式中采用抖动小的方式进行通信的通信装置中,能够使发送各数据包所花费的时间的变动变小,但是通信不能够高速化。另外,在使用状态参数等来决定纠错机制的方法中,使用根据应用而被要求的质量信息来决定通信方式。因此,存在当不清楚质量信息时不能恰当选择通信方式的问题。因此,使用质量信息来决定通信方式的方法不能应用于对非特定的应用所使用的数据进行转发的通信装置。
发明内容
本发明的目的在于,在一个方式中提供一种防止吞吐量降低并抑制延迟的方法。
使用实施方式涉及的通信方法的网络包括:第1通信装置、第2通信装置以及第3通信装置。所述第2通信装置从由所述第1通信装置接收到的数据包中确定作为向所述第3通信装置转发的数据包的转发数据包。所述第2通信装置测量从所述第1通信装置接收所述转发数据包的间隔。所述第2通信装置将所述转发数据包转发给所述第3通信装置。所述第2通信装置从所述第3通信装置接收对所述转发数据包的接收状况进行通知的通知信息。所述第2通信装置使用所述通知信息,在向所述第3通信装置转发的数据包中,选择作为没有从所述第3通信装置通知接收成功的数据包的对象数据包。当从所述第1通信装置接收所述转发数据包的间隔超过阈值时,所述第2通信装置将所述对象数据包以能够纠错的形式再次发送给所述第3通信装置。
本发明能够防止吞吐量降低,也能够抑制延迟。
附图说明
图1是表示实施方式涉及的通信方法的例子的图。
图2是表示网络的例子的图。
图3是表示通信装置的构成的例子的图。
图4是表示通信装置的硬件结构的例子的图。
图5是表示通信方法的例子的时序图。
图6是表示发送表的例子的图。
图7是表示数据包的格式的例子的图。
图8是表示TCP报头和UDP报头的格式的例子的图。
图9是表示通信装置间的数据包的收发的例子的图。
图10是表示控制响应数据包中包含的信息的例子的图。
图11是表示发送表的更新例的图。
图12是表示基于发送数据的种类的数据包的发送模式的例子的图。
图13是表示通信装置的处理的例子的图。
图14是说明通信装置的处理的例子的流程图。
图15是说明数据包的接收的定时例的图。
图16是表示发送表的变形例的图。
图17是表示网络的例子的图。
具体实施方式
图1表示实施方式涉及的通信方法的例子。在图1的例子中,终端向通信装置B发送数据包。通信装置A将从终端接收到的数据包转发给通信装置B。图1中的粗箭头表示多个数据包。在图1中,“P”字母与数字的组合表示从终端发送来的数据包,P后面跟着的数字用于表示数据包的序列编号。白箭头表示接收侧接收失败的数据包以在发送侧再次发送的通信方式进行的通信。以下,有时将在接收侧接收失败的数据包从发送侧再次发送的通信方式记载为“重发机制”的通信方式。另一方面,包含绘点的箭头用于表示以发送纠错中使用的冗余数据包的方式进行的通信。在以下的说明中,将发送纠错中使用的冗余数据包的方式记载为“纠错机制”的通信方式。
(1)终端以重发机制的通信方式向通信装置B发送P0~P9999的数据包。这里,通信装置A能够接收从终端发送来的全部数据包。
(2)通信装置A以重发机制的方式将从终端接收到的数据包转发到通信装置B。此时,通信装置B针对从通信装置A发送来的数据包中的P100数据包的接收失败。
(3)终端以重发机制的通信方式向通信装置B发送P10000~P19999的数据包。
(4)通信装置B以规定的时间间隔向通信装置A发送用于通知数据包的接收状况的控制响应数据包(Ack)。控制响应数据包记录有生成控制响应数据包的时刻的接收状况。在图1的例子中,通信装置B将通知针对P100的接收失败的控制响应数据包发送到通信装置A。通信装置A识别为P0~P99和P101~P9999成功发送到通信装置B、P100向通信装置B的发送失败。
(5)在从通信装置B发送控制响应数据包起到结束控制响应数据包的处理的期间,通信装置A再以重发机制的方式将从终端接收到的数据包P10000~P19999转发给通信装置B。
(6)设从终端向通信装置B的数据包的发送被中断。在从终端向通信装置B的数据包的发送被中断的期间,由于通信装置A不从终端接收数据包,因此从通信装置A向通信装置B的新数据包的转发也被中断。当不从终端接收数据包的期间超过规定阈值Th时,通信装置A判定为新数据包向通信装置B的转发处理中断的期间超过阈值Th。这里,阈值Th被设定为比往返时延(RTT)短的时间。当新数据包的转发处理中断的期间超过阈值Th时,通信装置A将无法确认转发成功的数据包使用纠错机制的发送方法重发给通信装置B。在该时刻,由于通信装置A不从通信装置B接收新的控制响应数据包,因此不知道P10000~P19999是否发送成功。进而,通信装置A认识到在步骤(4)中P100的数据包转发失败。鉴于此,通信装置A以纠错机制方式将P100和P10000~P19999的数据包重发给通信装置B。
通信装置B利用从通信装置A重发来的数据包,能够接收P100和P10000~P19999。由于在步骤(6),以纠错机制方式从通信装置A发送数据包,因此通信装置B能够使用冗余数据包等来恢复接收失败的数据包。
(7)终端新将数据包P20000~P29999发送给通信装置A。于是,通信装置A利用重发机制的通信方法将P20000~P29999转发给通信装置B。
这样,当不接收新的转发对象的数据包的期间超过阈值时,通信装置A判定为数据包的转发能够使用的空闲频带增加。鉴于此,在进行新的数据包转发的空闲期间,将无法确认转发成功的数据包以纠错机制的通信方法再次转发。因此,对于正在等待控制响应数据包的数据包而言,可以不必等待控制响应数据包的达到而进行重发处理。因此,对于正在等待控制响应数据包的数据包并且第1次发送失败的数据包而言,可在经过往返时延(RTT)之前进行重发。因此,使用本实施方式涉及的通信方法时,即便RTT变长,也能够抑制延迟。
其中,在以下的说明中,设通信装置A和通信装置B之间的往返时延是从测量通信所花费的时间而使用的数据包(测量数据包)的发送时刻到测量数据包的响应数据包的接收时刻为止的时间。例如,从由通信装置A向通信装置B发送了第1测量数据包到作为第1测量数据包的响应通信装置A接收到从通信装置B发送来的第2测量数据包的时刻为止的时间是通信装置A和通信装置B之间的RTT。
可是,本实施方式涉及的通信装置通过在进行新的数据包的转发的空闲期间进行的重发来发送冗余数据包,但在以重发机制方式通信的期间不发送冗余数据包。因此,在本实施方式涉及的通信方法中,能够将由于冗余数据包的发送而引起的吞吐量的降低抑制到很小。
此外,在图1的例子中,为了易于理解,示例性说明了从终端向通信装置B发送数据包的情形,但来自终端的数据包也可以经过通信装置B转发到其他装置。
<网络的例子和装置构成>
图2表示使用本实施方式涉及的通信装置10的网络的例子。图2表示终端1和数据中心3中的服务器4通过广域网(WAN)2进行通信的情形的网络的例子。数据中心3中包含有通信装置10b和服务器4。另外,终端1经过通信装置10a访问WAN2。这里,通信装置10a以及通信装置10b能够作为WAN高速化装置进行工作。其中,终端1的数量和数据中心3中包含的服务器4的数量是任意的。
图3表示通信装置10的构成的例子。通信装置10具有:发送部11、接收部12、收发部13、转发处理部14、重发处理部15、数据包处理部16、接收数据包管理部17、频带算出部18和转换部20。转换部20具有测量部21、选择部22和阈值计算部23。
当通信装置10将数据包向WAN2中含有的装置或其他通信装置10发送时使用发送部11。发送部11将从转发处理部14、重发处理部15和接收数据包管理部17等输入的数据包向目的地发送。接收部12从WAN2中含有的装置或其他通信装置10接收数据包。接收部12将接收到的数据包输出给数据包处理部16。当通信装置10与终端1、服务器4之间收发数据包时使用收发部13。收发部13将从终端1接收到的数据包输出到选择部22。
转发处理部14使用重发机制的通信方法将从选择部22输入的数据包转换为用于向WAN2发送的数据包并输出给发送部11。重发处理部15使用纠错机制的通信方法将从选择部22输入的数据包转换为用于向WAN2发送的数据包并输出到发送部11。关于数据包的格式将后述。
当通信装置10从通过WAN2而连接的其他通信装置10接收到数据包时,数据包处理部16、接收数据包管理部17和频带算出部18对其进行处理。数据包处理部16将从其他通信装置10接收到的数据包转换为能够向终端1、服务器4发送的形式。数据包处理部16将处理完毕的数据包输出至收发部13。于是,收发部13将目的地为终端1、服务器4的数据包发送给终端1、服务器4。
接收数据包管理部17监控数据包处理部16中的接收状况。例如,接收数据包管理部17确定当前正在接收的数据包的序列ID的最大值和已经接收到的数据包的序列ID。关于序列ID将后述。接收数据包管理部17使用所确定的信息来生成目的地为发送侧的通信装置10的控制响应数据包。接收数据包管理部17将控制响应数据包输出到发送部11。
当通信装置10从通过WAN2而连接的其他通信装置10接收数据包时,频带算出部18计算出数据包的接收所使用的带宽。频带算出部18将得到的带宽通知给接收数据包管理部17。
测量部21测量通信装置10未从终端1接收数据包的期间的长度。当通信装置10从终端1接收数据包时,测量部21将测量值复位为0。
选择部22将从收发部13输入的数据包输出到转发处理部14。并且,选择部22通过确定通信装置10转发到其他通信装置10的数据包和从发送目的地的通信装置10接收了控制响应(Ack)的数据包,来监控数据包的发送状况。当通信装置10未从终端1接收数据包的期间T超过阈值Th时,选择部22在发送完毕的数据包中选择未接收Ack的数据包。换言之,选择部22选择作为纠错机制的重发处理对象的数据包。选择部22将选择出的数据包输出到重发处理部15。阈值计算部23计算出选择部22在判定中使用的阈值Th,并将得到的阈值输出到选择部22。并且,选择部22监控从发送部11发送数据包的最新的时刻。
图4表示通信装置10的硬件结构的例子。通信装置10具有处理器31、存储器32、总线35、外部存储装置36和网络连接装置39。并且,作为选项,通信装置10也可以具有:输入装置33、输出装置34、介质驱动装置37。通信装置10可以通过例如计算机等实现。
处理器31可以是包含中央处理单元(CPU)的任意处理电路。处理器31作为转发处理部14、重发处理部15、数据包处理部16、接收数据包管理部17、频带算出部18和转换部20进行工作。其中,处理器31例如可执行存储在外部存储装置36的程序。存储器32适当地存储通过处理器31的工作而得到的数据、处理器31的处理所采用的数据。网络连接装置39被用于与其他装置通信,作为发送部11、接收部12和收发部13进行动作。
例如,输入装置33被实现为按钮、键盘或鼠标,输出装置34被实现为显示器等。总线35将处理器31、存储器32、输入装置33、输出装置34、外部存储装置36、介质驱动装置37和网络连接装置39之间连接成能够相互进行数据的收发。外部存储装置36存储程序、数据等,将存储的信息恰当地提供给处理器31等。介质驱动装置37能够将存储器32、外部存储装置36的数据输出到便携式存储介质38,另外,能够从便携式存储介质38读取程序、数据等。这里,便携式存储介质38可以是包括软盘、光盘(MO)、可读写光盘(CD-R)或可读写数字多功能光盘(DVD-R)的能够携带的任意存储介质。
<第1实施方式>
以下,说明在图2所示的网络中终端1和服务器4之间进行通信的情况下的通信装置10的处理。图5是表示通信方法的例子的时序图,分为图5的(A)~(E)来说明通信装置10a以及通信装置10b中进行的处理。在以下的例子中,通信装置10a与终端1之间收发TCP数据包,通信装置10b与服务器4之间收发TCP数据包。另外,以通信装置10a向通信装置10b发送数据的情况为例。并且,在第1实施方式中,为了易于理解,通信装置10a和通信装置10b使用WAN2中设置的专用线来进行通信。并且,为了易于区分是通信装置10a和通信装置10b哪一个的动作,在通信装置10中的部分的编号之后记录进行该处理的通信装置10的编号所含的字母。例如,测量部21a是通信装置10a所含的测量部21,接收数据包管理部17b是通信装置10b所含的接收数据包管理部17。
(A)从终端1接收到的数据包的转发处理
首先,终端1将目的地为服务器4的数据发送到通信装置10a。在终端1和通信装置10a之间的通信中,如图5的(a1)所示,使用TCP协议来进行,适当地进行确认响应、重发处理。当开始与终端1通信时,通信装置10a将用于唯一识别正进行TCP通信的终端1的识别编号(TCP应用识别符)分配给在与终端1之间的通信所使用的连接(connection)。
这里,设数据包P0~P19999被连续地向通信装置10a发送。通信装置10a的测量部21a在每次通信装置10a从终端1接收数据包时将未接收数据包的期间的长度复位为0。发送侧的通信装置10a的选择部22a从收发部13a取得数据包P0并制成发送表(图5的(a2)、(a3))。
图6(a)表示发送表的例子。发送表保持从终端1接收到的数据包。收发部13a将数据包P0输出给选择部22a。此时,由于数据包P0是从终端1转发给服务器4的对象数据包,所以选择部22a对数据包P0附加表示为发送中的标志。以下,有时将表示为发送中的标志记载为“发送中标志”。并且,选择部22a针对从终端1接收到的各数据包,按每个TCP应用识别符将序列ID分配为表示经过相同的连接而接收到的数据包的顺序的识别符。选择部22a将经过以TCP应用识别符识别的连接而最初接收到的数据包的序列ID设为0,按成为接收到的数据包的顺序的方式分配序列ID。在以下的说明中,为了易于理解,以从终端1发送来的最初的数据包的序列编号为0的情况为例来进行说明。因此,在以下的例子中,数据包的TCP报头中的序列编号与分配给数据包的序列ID是相同的值。选择部22a生成以分配给数据包P0的序列ID作为键值的哈希表来存储数据包P0。并且,选择部22a将从收发部13a输入的数据包P0与TCP应用识别符以及序列ID建立对应并输出到转发处理部14a。
当接收到P1~P9999的数据包时,也与P0时相同地进行处理。因此,选择部22a通过处理数据包P0~P9999,而具有存储了图6(a)所示的信息的哈希表。并且,选择部22a将数据包P0~P9999输出给转发处理部14a。转发处理部14a将从选择部22a输入的数据包转换为转发数据包(图5的(a4))。
图7是表示数据包的格式的例子的图。图7是表示通信装置10a与通信装置10b之间收发的数据包的例子。以下,有时将通信装置10a与通信装置10b之间数据收发所使用的数据包记录为“转发数据包”。图7(a)是数据的转发中所使用的数据包的格式的例子。数据的转发中所使用的转发数据包包括:互联网协议(IP)报头、用户数据协议(UDP)报头、协议ID信息、数据报头和数据。IP报头和UDP报头的格式如各自的协议规定那样。协议ID存储用于判定转发数据包是用于数据的转发还是用于数据的重发的信息。如图7(c)所示,数据报头包括:TCP应用识别符、序列ID和数据包ID。数据是通过转发数据包发送的数据。
图7(d)是表示从选择部22a输入到转发处理部14a的数据包的例子的图。从选择部22a输入到转发处理部14a的数据包包括:IP报头、TCP报头以及数据。转发处理部14a不变更从选择部22a输入的数据包的IP报头。
TCP报头中包含的信息要素的例子在图8(a)中示出。TCP报头包括:发送源端口号、目的地端口号、序列编号、确认响应编号、数据偏移、保留区域、控制位、窗口大小、校验和、紧急指针和选项。另一方面,如图8(b)所示,UDP报头包括:发送源端口号、目的地端口号、数据段大小和校验和。
鉴于此,当数据包P0被从选择部22a输入时,转发处理部14a从数据包P0的TCP报头取得发送源端口号、目的地端口号和序列编号。转发处理部14a将取得的发送源端口号和目的地端口号设定为转发数据包的UDP报头的发送源端口号和目的地端口号。转发处理部14a使由选择部22a通知的TCP应用的识别符和序列ID包含在数据报头。转发处理部14将从终端1接收到的数据包的TCP报头中所含的序列编号作为数据包ID记录在数据报头。
并且,转发处理部14a将协议ID设定为表示数据的转发的值。转发处理部14a将数据包P0的数据作为转发数据包的数据,来设定数据段大小与校验和。通过以上的处理,转发处理部14a将数据包P0转换为包含有由数据包P0发送来的数据的转发数据包。转发处理部14a将生成的转发数据包输出给发送部11a(图5的(a5))。
图9表示通信装置10a与通信装置10b之间的数据包的收发的例子。发送部11a将从转发处理部14a输入的转发数据包发送给通信装置10b(图5的(a6))。选择部22a将发送部11a发送了转发数据包的时刻存储为最终发送时刻。图9的转发数据包(U0)表示从数据包P0转换后的转发数据包。此外,对于通信装置10a转发给通信装置10b的数据包,也与数据包P0相同,进行转发处理部14a中的转换处理以及由发送部11a进行发送的发送处理。设图9中从通信装置10a发送给通信装置10b的各数据包是附带有与紧接在U之后的数字相同的值的序列ID的转发数据包。其中,每当从通信装置10a发送转发数据包时,选择部22a便将最终发送时刻更新为新的发送时刻。
(B)在通信装置10b中进行的接收处理以及向服务器4的转发处理
通信装置10b从通信装置10a接收转发数据包(图5的(b1))。通信装置10b的接收部12b将接收到的数据包输出给数据包处理部16b(图5的(b2))。数据包处理部16b从被输入的转发数据包中的数据报头提取出序列ID和TCP应用识别符,将得到的值输出给接收数据包管理部17b。接收数据包管理部17b将从数据包处理部16b输入的值作为从通信装置10a接收到的数据包的序列ID并与TCP应用识别符对应存储。由于从转发数据包U0开始,得到序列ID=0,因此接收数据包管理部17b识别为序列ID=0的数据包接收成功。
接着,数据包处理部16b生成包含转发数据包的UDP报头中的信息和数据报头中的数据包ID的TCP报头。这里,数据包处理部16b将数据包ID设为TCP报头中的序列编号。并且,数据包处理部16b将UDP报头的发送源端口号和目的地端口号设定为TCP报头的发送源端口号和目的地端口号。数据包处理部16b从转发数据包中除去UDP报头、协议ID和数据报头,使其包含代替这些信息而生成的TCP报头,由此生成包含从终端1发送来的信息的TCP数据包(图5的(b4))。例如,从转发数据包U0生成包含由数据包P0发送来的信息的TCP数据包。数据包处理部16b将生成的数据包输出给收发部13b。收发部13b将从数据包处理部16b输入的数据包发送给服务器4(图5的(b5))。
通信装置10b也同样地处理另外接收到的转发数据包。因此,通信装置10b从通信装置10a接收到的转发数据包中含有的信息被发送给服务器4。并且,频带算出部18b计算出在数据包的接收中使用的带宽。接收数据包管理部17b对通信装置10b从通信装置10a接收到的数据包中含有的序列ID进行存储。例如,通信装置10b能够保持对接收到的数据包的序列ID进行记录的表(接收表)(图5的(b3))。这里,设通信装置10b成功接收到序列ID为0~8019、8024~8699、8701~9009以及9022~9999的数据包。接收数据包管理部17b存储成功接收到的数据包的序列ID。
(C)来自通信装置10b的控制响应数据包的发送
通信装置10b通过按每个预先决定的周期将控制响应数据包(Ack)发送给通信装置10a,来通知接收状况。图7(b)表示在控制信息的通知中使用的数据包的格式。控制信息的通知中使用的数据包包括:IP报头、UDP报头、协议ID信息、数据报头和控制信息。在控制响应数据包的情况下,协议ID信息被设定为Ack,控制信息中记录有对接收成功的数据包进行确定的信息。
图10是表示控制响应数据包的控制信息中包含的信息的例子。控制响应数据包中的控制信息包括:控制信息识别符、接收大小、最大接收大小、接收频带、响应请求信息、重发开始ID和重发开始序列长度。控制信息识别符是成为报告接收状况的对象的数据包所含的TCP应用识别符。接收大小是将TCP应用识别符相等的数据包中的连续接收成功的数据包到终端为止得到的数据总量以字节为单位表示的值。若将接收大小按1个转发数据包中的有效载荷的大小分割,则得到连续接收的序列ID的最大值。其中,转发数据包中的有效载荷的大小被预先在通信装置10a和通信装置10b中设定。最大接收大小是接收成功的数据包被赋予的序列ID的最大值与转发数据包的有效载荷的字节数之积。接收频带是通信装置10b从通信装置10a接收转发数据包所使用的带宽。通信装置10b的接收频带由频带算出部18b算出。
重发开始ID与重发开始序列长度被组合使用。重发开始ID是当将通信装置10b接收失败的数据包按序列ID为连续的每一组划分时,各组中的最小的序列ID的值。重发开始序列长度是属于重发开始ID为最小值的组的接收失败的数据包的数目。响应请求信息是表示是否对数据包请求Ack的值。在重发机制的发送方法的情况下,响应请求信息被设定为表示请求Ack的值。另一方面,在纠错机制的重发、用于通知Ack的控制数据包等中,响应请求信息被设定为表示不请求Ack的值。
图10是通信装置10b生成的控制响应数据包中的控制信息的例子。通信装置10b成功接收到序列ID为0~8019、8024~8699、8701~9009以及9022~9999的数据包。因此,通信装置10b的接收数据包管理部17b生成用于请求通信装置10a重发被分配了8020~8023、8700、9010~9021的序列ID的数据包的控制响应数据包。接收数据包管理部17b将接收大小设定为8019×U,将最大接收大小设定为10000×U。这里,U是转发数据包的有效载荷长度。并且,接收数据包管理部17b指定8020、8700和9010作为重发开始ID。进而,通过将与重发开始ID=8020对应的重发开始序列长度指定为4,接收数据包管理部17b请求重发被分配了8020~8023的序列ID的数据包。同样,接收数据包管理部17b将与重发开始ID=8700对应的重发开始序列长度指定为1,将与重发开始ID=9010对应的重发开始序列长度指定为11。并且,接收数据包管理部17b使由频带算出部18b得到的接收频带包含于控制响应数据包(图5的(c1))。
接收数据包管理部17b将把目的地指定为通信装置10a、把发送源指定为通信装置10b的IP报头附加于控制响应数据包。并且,接收数据包管理部17b还适当地设定UDP报头和数据报头等,使协议ID包含表示是控制响应数据包的信息。接收数据包管理部17b将生成的控制响应数据包输出给发送部11b。发送部11b将被输入的控制响应数据包发送给通信装置10a(图5的(c2))。
(D)使用了控制响应数据包的发送历史记录管理
在序列ID=9999的数据包的发送之后、从通信装置10b接收控制响应数据包之前,通信装置10a将序列ID为10000~19999的数据包发送到通信装置10b。于是,在从通信装置10b接收控制响应数据包之前,选择部22a保持图6(b)所示的信息作为发送中的数据包的信息。
然后,通信装置10a的接收部12a接收包含参照图10说明了的信息的控制响应数据包。接收部12a将控制响应数据包输送给数据包处理部16a(图5的(d1))。当协议ID的值为表示是控制响应数据包的信息时,数据包处理部16a将被输入的数据包输出给选择部22a。当被输入控制响应数据包时,选择部22a根据通信装置10b中的接收状况来更新发送中的数据包的信息。
图11表示发送表的更新例。选择部22a从控制响应数据包中删除确认为发送成功的数据包的信息。例如,当接收到包含图10所示的信息的控制响应数据包时,选择部22a判定为序列ID为0~8019、8024~8699、8701~9009以及9022~9999的数据包发送成功。另一方面,选择部22a判定为被分配了8020~8023、8700、9010~9021的序列ID的数据包发送失败。并且,对于序列ID为10000~19999的数据包,由于未接收到控制响应数据包,因此判定为不清楚发送的成功状况。鉴于此,通过删除判定为发送成功的数据包的信息,由此将发送中的数据包的信息从图6(b)所示的信息更新为图11所示的信息(图5的(d2))。
(E)新的数据包在转发的中断中进行的纠错机制的重发
图12表示基于发送数据的种类的数据包的发送模式的例子。当进行文件转发时,从终端1进行连续的数据发送。因此,如图12(a)所示,通信装置10a未从终端1接收数据包的时间间隔相对较短。换言之,通信装置10a从终端1连续接收数据包。另一方面,当发送数据是动画等时,如图12(b)所示,根据动画帧率,产生数据包未从终端1发送的期间。因此,当动画从终端1转发时,通信装置10a未从终端1接收数据包的期间比进行文件转发的期间长。
当通信装置10a未从终端1接收数据包时,由于通信装置10a不向通信装置10b转发新的数据包,所以有可能在通信装置10a和通信装置10b之间的通信线路产生空闲容量。鉴于此,通信装置10a利用因未进行新的数据包的转发而产生的空闲容量以纠错机制重发无法确认发送成功的数据包。以下,对从判定是否进行纠错机制的重发的方法开始到重发处理为止进行详细说明。
通信装置10a的阈值计算部23a计算用于判定是否进行纠错机制的重发所使用的阈值。选择部22a选择成为重发的对象的数据包,并将选择的数据包的数据量通知给阈值计算部23a。这里,选择部22a除了将通知发送失败的数据包作为重发对象,还将未通过控制响应数据包通知接收状况的数据包也作为重发对象。因此,在使用图11说明的例子中,选择部22a将序列ID为8020~8023、8700、9010~9021以及10000~19999的数据包作为重发对象。
阈值计算部23a求出能够以未使用的带宽发送将不能取得接收的确认的数据以纠错机制重发时所发送的冗余量的信息量的时间作为阈值,并将得到的值通知给选择部22a。阈值计算部23a利用下面的公式计算阈值Th。这里,说明阈值Th是比往返时延(RTT)小的值的情况。
Th=X×A/(B-Bused)
这里,X是以字节为单位表示将要重发的数据的总量的值。A是为了进行纠错机制的重发而发送的冗余量的数据包中含有的数据量相对作为重发的对象的数据的总量所占的比例。A根据重发方式被任意地设定,例如可以设定为0.1~0.2左右的值。B是将通信装置10a和通信装置10b之间连接的线路的带宽。其中,阈值计算部23a预先存储A的值以及带宽(B),或者从存储器32a进行读出。Bused是通信装置10a与通信装置10b之间的通信所使用的带宽,由控制响应数据包使用从通信装置10b通知的值。因此,(B-Bused)是通信装置10a和通信装置10b之间的通信未使用的空闲频带的带宽。
选择部22a从测量部21a取得通信装置10a未从终端1接收数据包的期间的值并将其与阈值Th比较。这里,通信装置10a未从终端1接收数据包的期间超过阈值Th。于是,选择部22a判定为能够进行纠错机制的重发处理(图5的(e1))。
选择部22a将作为重发处理的对象的数据包输出给重发处理部15a。重发处理部15a为了能够对从选择部22a输入的数据包所含的数据进行纠错而进行冗余化。例如,重发处理部15a通过使从选择部22a输入的数据包的数据前向纠错(FEC)编码而生成纠错所使用的冗余数据包。并且,重发处理部15a对各数据包和冗余数据包分别添加报头信息。重发处理部15a以与转发处理部14a生成转发数据包时相同的顺序添加报头信息。其中,重发处理部15a将表示是纠错机制的重发数据包的信息记录在协议ID信息中。重发处理部15a将生成的数据包输出给发送部11a(图5的(e2))。发送部11a将从重发处理部15a输入的数据包发送给通信装置10b(图5的(e3))。选择部22a从发送表中删除由重发处理部15a以纠错机制发送来的数据包。
图13表示实施方式涉及的通信装置的处理的例子。在从终端1接收TCP数据包的期间,通信装置10a将接收到的数据包转换为UDP数据包并发送到通信装置10b。通信装置10a在规定的周期接收包含由通信装置10b的接收数据包管理部17b生成的接收表的信息的控制响应数据包(Ack),进行与控制响应数据包对应的重发处理。其中,在从终端1接收TCP数据包的期间进行重发时,通信装置10a以重发机制重发发送失败的数据包。
另一方面,当从终端1未接收TCP数据包的期间超过规定的期间时,由于在通信装置10a和通信装置10b之间没有转发新的数据包,所以通信装置10a的选择部22a判定为线路空闲。因此,选择部22a选择不能取得接收的确认的数据包并将其输出到重发处理部15a。重发处理部15a使用FEC编码对从选择部22a输入的数据包以能够纠错的形式执行重发处理。当重新开始从终端1发送TCP数据包时,通信装置10a再次以不使用冗余化数据包的通信方法转发数据包。
图14是说明通信装置的处理的例子的流程图。在图14的处理例中,将TCP数据包转换为转发数据包并转发的处理所花费的时间不根据数据包而变动。因此,测量部21将发送部11最后执行发送的时刻(最终发送时刻)与当前时刻之差处理为通信装置10不从终端1接收数据包的期间的近似值。另外,测量部21保持有设定为比阈值Th足够短的值的定时器,每当定时器超时,便请求选择部22判定是否进行纠错机制的重发。
作为转换部20、数据包处理部16进行工作的处理器31一直等待到有中断请求(步骤S1)。当有中断时,处理器31判定中断请求的内容(步骤S2)。当中断表示接收TCP数据包时,来自终端1的数据包被输入到选择部22a(步骤S3)。鉴于此,选择部22将TCP数据包输出到转发处理部14,转发处理部14将TCP数据包转换为转发数据包(步骤S4)。转发处理部14以重发机制的转发方法将转发数据包经过发送部11转发到接收侧的通信装置10(步骤S5)。选择部22将最终发送时刻更新为当前时刻(步骤S6)。
在步骤S2中,当中断表示接收UDP数据包时,来自接收侧的通信装置10的控制响应数据包被输入到选择部22(步骤S7)。选择部22使用控制响应数据包来更新发送表(步骤S8)。选择部22还更新由于未接收Ack而成为重发的对象的数据包的量和空闲频带的推定值(步骤S9)。阈值计算部23利用空闲频带的值来计算出阈值Th(步骤S10)。
在步骤S2中,当判定为测量部21保持的定时器超时而产生中断时,测量部21请求选择部22判定是否进行纠错机制的重发处理(步骤S11)。鉴于此,选择部22取得当前时刻(步骤S12)。选择部22将通过对最终发送时刻加上阈值而得到的时刻与当前时刻进行比较(步骤S13)。在通过对最终发送时刻加上阈值而得到的时刻是晚于当前时刻的时刻时,从将数据包最后转发到接收侧的通信装置10起所经过的时间比阈值短。该情况下,选择部22判定为与接收侧的通信装置10之间的频带尚未空闲到能够进行纠错机制的重发的程度,而返回到步骤S1(在步骤S13为否)。当对最终发送时刻加上阈值而得到的时刻是当前时刻以后的时刻时,从将数据包最后转发到接收侧的通信装置10起所经过的时间为阈值以上。该情况下,选择部22判定为与接收侧的通信装置10之间的频带空闲到能够进行纠错机制的重发的程度,请求重发处理部15执行纠错机制的重发(在步骤S13为是)。重发处理部15根据选择部22的请求来执行纠错机制的重发处理。另外,选择部22将最终发送时刻更新为当前时刻(步骤S14)。
图15是说明数据包的接收的定时例的图。设通信装置10a以重发机制的发送方法将转发数据包U0~Un发送到通信装置10b。并且,设通信装置10b接收到数据包Ux-1时生成的控制响应数据包从通信装置10b发送到通信装置10a。这里,若设所有数据包U0~Ux-1由通信装置10b接收到,则通信装置10a的选择部22a判定为Ux~Un是Ack等待,将Ux~Un残留在发送表中。
另一方面,设通信装置10b未接收到Ux~Un-1,但接收到数据包Un。于是,通信装置10b生成用于通知虽然接收到数据包Un但Ux~Un-1的接收失败的控制响应数据包,并将控制响应数据包向通信装置10a发送。
这里,设在数据包Un到达通信装置10b之前的期间,通信装置10a未从终端1接收数据包的期间超过阈值Th。于是,选择部22a请求重发处理部15a在纠错机制下重发Ux~Un。因此,通信装置10a在接收关于Ux~Un的控制响应数据包之前,以纠错机制将Ux~Un重发到通信装置10b。因此,通信装置10b能够在时刻T1接收Ux~Un。在从通信装置10a发送了Ux~Un的时刻开始经过了往返时延(RTT)的时刻,关于Ux~Un的控制响应数据包到达通信装置10a。因此,通信装置10a在控制响应数据包的接收等待的期间,将等待来自通信装置10b的Ack的数据包且第一次发送失败的数据包在经过该数据包的RTT之前强制地再次发送。因此,由于与RTT无关地执行数据包的强制再次发送,所以在使用了通信装置10a的通信中,难以发生因RTT的长度变长而引起的延迟。
例如,如图15所示,在等待来自通信装置10b的第2个控制响应数据包之后重发了Ux~Un-1时,通信装置10b接收Ux~Un-1的时刻延迟到时刻T2。因此,若使用本实施方式涉及的通信方法,则能够将通信装置10a和通信装置10b之间发生的通信延迟缩短T2-T1的期间量。进而,当预计通信装置10a和通信装置10b之间的线路上存在规定以上的空闲时,执行纠错机制的重发。因此,能够防止由于冗余数据包的发送而产生吞吐量的降低。
例如,通信装置10a和通信装置10b之间的带宽为M(bps),因FEC引起的冗余度为A,通信装置10a和通信装置10b之间的RTT为r(sec),将数据包丢包率为d时的发送方法引起的吞吐量和延迟进行比较。其中,假定为冗余度A为0.1左右,数据包丢包率d为0.1~0.2左右的值。
在重发机制下执行所有的数据包的转发以及重发时,吞吐量是Mbps。可是,延迟(latency)的期望值是(r/2)×(1-d)+(r/2+r)×d。当所有数据包的转发以FEC执行时,吞吐量为M/(1+A)bps,但延迟的期望值是(r/2)。
另一方面,通过使用通信装置10来执行转发处理,若将重发机制的转发和纠错机制的重发组合来转发数据包,则吞吐量的期望值是Mbps,延迟的期望值是(r/2)。因此,通过使用通信装置10来执行重发机制的转发和纠错机制的重发,能够不使吞吐量降低地抑制由于重发产生的延迟。
<第2实施方式>
在第1实施方式中,说明了阈值Th比通信装置10a和通信装置10b之间的往返时延(RTT)短的例子,但也存在阈值Th的计算值超过RTT的情况。该情况下,通过将不能确认发送成功的数据包的重发处理拆分为多次,在经过发送侧和接收侧的通信装置10之间的RTT之前,通信装置10a能够强制性地重发不能确认接收侧的通信装置10中的接收状况的数据包。
在第2实施方式中,测量部21还能够使用测量数据包来测量通信装置10a和通信装置10b之间的通信所花费的时间。测量部21a生成第1测量数据包,并存储第1测量数据包从发送部11a发送到通信装置10b的时刻。第1测量数据包由通信装置10b的接收部12b接收,并输出到测量部21b。其中,接收部12b预先存储测量数据包的格式,还能够识别其他数据包和测量数据包。测量部21b生成响应于第1测量数据包的第2测量数据包并经过发送部11b将其发送到通信装置10a。通信装置10a的接收部12a若接收到第2测量数据包,则将第2测量数据包输出到测量部21a。测量部21a取得接收到第2测量数据包的时刻,并计算其与第1测量数据包的发送时刻之间的差。测量部21a将得到的差作为RTT输出到阈值计算部23a。
阈值计算部23a比较阈值Th与RTT的值。当阈值Th为RTT以上时,阈值计算部23a计算出阈值Thk以代替阈值Th。在计算出阈值Thk的情况下,当判定是否执行纠错机制的重发处理时,代替阈值Th而使用阈值Thk。阈值Thk通过以下的公式算出。
Thk=Y×A/(B-Bused)=X×A/K(B-Bused)=Th/K
这里,Y=X/K。Y是在一次纠错机制的重发处理中将要发送的数据的字节数。K是在纠错机制下执行的重发处理的次数。另外,X是将要重发的数据总量的字节数,A是为了执行纠错机制的重发而发送的冗余量的数据包中含有的数据量相对于重发的数据的量所占的比例。(B-Bused)是通信装置10a和通信装置10b之间的通信未使用的空闲频带的带宽。
阈值计算部23a能够根据阈值Th的值来决定重发处理的次数。例如,阈值计算部23a能够随着阈值Th越大而增大K的值,根据阈值Th的长度,能够将K设定为任意的2以上的整数。这样,通过将纠错机制的重发处理拆分为多次,即使重发处理时发送的冗余量的数据量变多,通信装置10也能够将在经过RTT之前未接收Ack的数据包强制地再发送。因此,即使由于发送侧的通信装置10与接收侧的通信装置10之间的距离变长,使得RTT变长,也能够抑制通信的延迟。
并且,在第2实施方式中,由于在1次的重发处理时发送数据量变少,因此还能够抑制1次重发处理中所使用的冗余数据包的数量。因此,能够容易地避免由于纠错机制的重发而使得吞吐量降低预期以上的情形。
<其他>
实施方式并不限定于以上所述的方式,也能够进行各种变形。以下,说明其他几个例子。
在上述的实施方式中,为了容易观看附图,说明了TCP报头的序列编号与数据报头的序列ID是相同值的情形的例子,但是两者也可是不同的。TCP报头是在使用TCP进行通信的装置之间决定的序列编号,而序列ID按每次连接从0开始逐一增加。因此,例如若从终端1发送到通信装置10a的数据包的序列编号从100开始,则序列编号100的TCP数据包中所包含的数据包含在序列ID=0的转发数据包。
在上述的实施方式中,说明了发送表是哈希表的情形的例子,但也可以将与序列ID建立关联地记录各数据包的发送状况和Ack的接收状况的表作为发送表。图16中表示发送表的变形例。在图16的例子中,发送中标志=0表示发送完成,发送中标志=1表示在发送后不能够取得Ack。Ack接收状况表示控制响应数据包的接收状况。因此,发送中标志=0且Ack接收状况=接收的数据包表示在该数据包发送之后,接收到包含对该数据包的发送成功进行表示的Ack的控制响应数据包的数据包。发送中标志=1且Ack接收状况=等待接收的数据包表示在该数据包发送之后,没有接收到含有对发送的结果进行表示的Ack的控制响应数据包的数据包。并且,发送中标志=1且Ack接收状况=接收的数据包表示在该数据包发送之后,接收了包含有对该数据包的发送失败进行表示的信息的控制响应数据包的数据包。因此,图16是序列ID为8020~8023、8700和9010~9021的数据包发送失败以及序列ID为10000~19999的数据包未收到控制响应数据包的情况的发送表。
图17表示网络的例子。如图17所示,通信装置10也可以在包含有3台以上通信装置10的网络中使用。该情况下,在选择部22的判定中使用阈值Thd。阈值Thd通过以下的公式求出。
Thd=X×A/Z
这里,Z的值是通过将从带宽减去通信所使用的频带的总和而得到的值除以能与发送源的通信装置10通信的通信装置10的数量而得到的值。另外,X是将要重发的数据的字节数,A是由于纠错而被附加的冗余度。
例如,在图17的例子中,由于通信装置10a~10c存在于网络中,所以与通信装置10a连接的线路有可能在通信装置10a与通信装置10b之间的通信以及通信装置10a与通信装置10c之间的通信双方中使用。鉴于此,将从与通信装置10a连接的线路的带宽减去通信装置10a和通信装置10b之间的通信所使用的带宽以及通信装置10a和通信装置10c之间的通信所使用的带宽得到的值除以2而得到的值被作为Z使用。通过如此变更选择部22所使用的阈值,在包括2个以上任意数量的通信装置10的网络中,能够组合重发机制和纠错机制这2种发送方法来进行通信。
并且,RTT的测量方法也可以根据安装而变更。在第2实施方式中,说明了阈值Th为RTT以上时判定是否使用阈值Thk来执行重发,在一次重发处理中,作为重发的对象而选择的数据包的1/K被重发的情况,但是即使阈值Th比RTT短,也可以进行同样的处理。
另外,在上述的例子中,举例说明了使用TCP、UDP的情形,但是根据实施也可以变更通信所使用的协议。并且,在纠错机制的重发时,也可以使用FEC以外的纠错。
附图标记说明
1-终端;2-WAN;3-数据中心;4-服务器;10-通信装置;11-发送部;12-接收部;13-收发部;14-转发处理部;15-重发处理部;16-数据包处理部;17-接收数据包管理部;18-频带算出部;20-转换部;21-测量部;22-选择部;23-阈值计算部;31-处理器;32-存储器;33-输入装置;34-输出装置;35-总线;36-外部存储装置;37-介质驱动装置;38-便携式存储介质;39-网络连接装置。

Claims (11)

1.一种通信方法,其特征在于,
在包括第1通信装置、第2通信装置以及第3通信装置的网络中,所述第2通信装置从由所述第1通信装置接收到的数据包确定作为向所述第3通信装置转发的数据包的转发数据包,并测量从所述第1通信装置接收所述转发数据包的间隔,将所述转发数据包向所述第3通信装置转发,
所述第2通信装置从所述第3通信装置接收对所述转发数据包的接收状况进行通知的通知信息,使用所述通知信息,在向所述第3通信装置转发了的数据包中,选择作为没有从所述第3通信装置通知接收成功的数据包的对象数据包,
当从所述第1通信装置接收所述转发数据包的间隔超过阈值时,所述第2通信装置将所述对象数据包以能够纠错的形式再次发送给所述第3通信装置。
2.根据权利要求1所述的通信方法,其特征在于,
所述对象数据包包括:没有从所述第3通信装置通知接收状况的数据包、以及从所述第3通信装置通知了数据包接收失败的数据包。
3.根据权利要求1或2所述的通信方法,其特征在于,
所述第2通信装置计算所述第2通信装置为了使用所述第2通信装置和所述第3通信装置之间的线路中的未被使用的带宽,将冗余量的数据向所述第3通信装置发送所花费的时间作为所述阈值,所述冗余量的数据为了以所述能够纠错的形式发送所述对象数据包而被使用。
4.根据权利要求3所述的通信方法,其特征在于,
所述第2通信装置求出从所述第2通信装置将第1数据包向所述第3通信装置发送的时刻开始到作为关于所述第1数据包的响应的第2数据包到达所述第2通信装置的时刻为止的时间即响应时间,
判定所述阈值是否超过所述响应时间,
当所述阈值超过所述响应时间时,以将所述阈值除以第1值得到的商比所述响应时间短的方式求出所述第1值,
求出将为了以所述能够纠错的形式发送所述对象数据包而使用的冗余量的数据的量除以所述第1值得到的数据量作为第2值,
将所述第2通信装置使用所述第2通信装置与所述第3通信装置之间线路中的未被使用的带宽将所述第2值的数据量向所述第3通信装置发送所花费的时间的长度设为第3值,
当从所述第1通信装置接收所述转发数据包的间隔超过所述第3值时,将所述对象数据包被分成与所述第1值相同数目的组而得到的1个组所含的数据包以能够纠错的形式再次发送给所述第3通信装置。
5.一种通信装置,其特征在于,具有:
接收部,其从终端接收数据包;
测量部,其测量接收转发数据包的间隔,所述转发数据包是向所述终端的通信目的地转发的数据包;
转发处理部,其将所述转发数据包向所述通信目的地转发;
选择部,其在向所述通信目的地转发了的数据包中选择作为没有从所述通信目的地通知接收成功的数据包的对象数据包;以及
重发处理部,当所述转发数据包的接收间隔超过阈值时,进行用于将所述对象数据包以能够纠错的形式再次发送给所述通信目的地的处理。
6.根据权利要求5所述的通信装置,其特征在于,
所述选择部选择没有接收到来自所述通信目的地的接收状况的通知的数据包、以及从所述通信目的地通知了数据包接收失败的数据包作为所述对象数据包。
7.根据权利要求5或6所述的通信装置,其特征在于,
还具有计算部,该计算部计算所述通信装置为了使用所述通信装置和所述通信目的地之间的线路中的未被使用的带宽,将冗余量的数据向所述通信目的地发送所花费的时间作为所述阈值,所述冗余量的数据为了以所述能够纠错的形式发送所述对象数据包而被使用。
8.一种通信程序,其特征在于,
使包括第1通信装置、第2通信装置以及第3通信装置的网络中的所述第2通信装置执行下述处理:
从所述第1通信装置接收到的数据包中确定作为向所述第3通信装置转发的数据包的转发数据包,
测量从所述第1通信装置接收所述转发数据包的间隔,
将所述转发数据包向所述第3通信装置转发,
从所述第3通信装置接收对所述转发数据包的接收状况进行通知的通知信息,
使用所述通知信息,在向所述第3通信装置转发了的数据包中,选择作为没有从所述第3通信装置通知接收成功的数据包的对象数据包,
当从所述第1通信装置接收所述转发数据包的间隔超过阈值时,将所述对象数据包以能够纠错的形式再次向所述第3通信装置发送。
9.根据权利要求8所述的通信程序,其特征在于,
所述对象数据包包括:没有从所述第3通信装置通知接收状况的数据包、以及从所述第3通信装置通知了数据包接收失败的数据包。
10.根据权利要求8或9所述的通信程序,其特征在于,
所述第2通信装置计算所述第2通信装置为了使用所述第2通信装置和所述第3通信装置之间的线路中的未被使用的带宽,将冗余量的数据向所述第3通信装置发送所花费的时间作为所述阈值,所述冗余量的数据为了以所述能够纠错的形式发送所述对象数据包而被使用。
11.根据权利要求10所述的通信程序,其特征在于,
使所述第2通信装置还执行下述处理:
求出从所述第2通信装置将第1数据包向所述第3通信装置发送的时刻开始到作为关于所述第1数据包的响应的第2数据包到达所述第2通信装置的时刻为止的时间作为响应时间,
判定所述阈值是否超过所述响应时间,
当所述阈值超过所述响应时间时,以将所述阈值除以第1值得到的商比所述响应时间短的方式求出所述第1值,
求出将为了以所述能够纠错的形式发送所述对象数据包而使用的冗余量的数据的量除以所述第1值得到的数据量作为第2值,
将所述第2通信装置使用所述第2通信装置与所述第3通信装置之间线路中的未被使用的带宽将所述第2值的数据量向所述第3通信装置发送所花费的时间的长度设为第3值,
当从所述第1通信装置接收所述转发数据包的间隔超过所述第3值时,将所述对象数据包被分成与所述第1值相同数目的组而得到的1个组所含的数据包以能够纠错的形式再次发送给所述第3通信装置。
CN201380073730.8A 2013-03-20 2013-03-20 通信方法、通信装置以及通信程序 Pending CN105103500A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/057920 WO2014147774A1 (ja) 2013-03-20 2013-03-20 通信方法、通信装置、および、通信プログラム

Publications (1)

Publication Number Publication Date
CN105103500A true CN105103500A (zh) 2015-11-25

Family

ID=51579506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380073730.8A Pending CN105103500A (zh) 2013-03-20 2013-03-20 通信方法、通信装置以及通信程序

Country Status (5)

Country Link
US (1) US9866351B2 (zh)
EP (1) EP2978171B1 (zh)
JP (1) JP5935940B2 (zh)
CN (1) CN105103500A (zh)
WO (1) WO2014147774A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108462707A (zh) * 2018-03-13 2018-08-28 中山大学 一种基于深度学习序列分析的移动应用识别方法
CN109804587A (zh) * 2016-10-12 2019-05-24 高通股份有限公司 用于高数据率的流线化的用户面报头
CN112181883A (zh) * 2020-09-24 2021-01-05 乐唯科技(深圳)有限公司 一种串口通讯的数据传输方法、系统及存储介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10104016B2 (en) * 2014-12-12 2018-10-16 Hitachi, Ltd. Communication device, communication device system, and communication method
US10165530B2 (en) * 2016-03-22 2018-12-25 Christoph RULAND Verification of time information transmitted by time signals or time telegrams
US10374762B2 (en) * 2017-02-28 2019-08-06 At&T Intellectual Property I, L.P. Use of underutilized bandwidth via radio access resource sharing
WO2019031820A1 (en) * 2017-08-08 2019-02-14 Lg Electronics Inc. METHOD AND APPARATUS FOR MANAGING FAILURE OF EARLY DATA TRANSMISSION IN A WIRELESS COMMUNICATION SYSTEM
US11057829B2 (en) * 2018-08-29 2021-07-06 Apple Inc. Power saving for non-trigger-based ranging
CN110971942B (zh) * 2018-09-28 2021-08-17 杭州海康威视数字技术股份有限公司 数据传输方法和装置
US10757166B2 (en) * 2018-11-20 2020-08-25 International Business Machines Corporation Passive re-assembly of HTTP2 fragmented segments
EP3909318A4 (en) * 2019-01-11 2022-04-13 ZTE Corporation TIMING ADJUSTMENTS FOR DATA TRANSMISSION IN WIRELESS SYSTEMS
JP7499035B2 (ja) * 2020-01-30 2024-06-13 株式会社Preferred Networks 通信装置及び通信方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101223759A (zh) * 2005-07-08 2008-07-16 富士通株式会社 发送装置、接收装置、信息通信方法
JP2010098766A (ja) * 2010-01-18 2010-04-30 Fujitsu Ltd 受信装置、受信方法、無線通信システム、及び通信方法
US20110314351A1 (en) * 2010-06-18 2011-12-22 Fujitsu Limited Data transfer device, method, and program

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19728469A1 (de) 1997-07-03 1999-01-07 Siemens Ag Verfahren und Anordnung zur Codierung digitaler Daten
JP3757857B2 (ja) * 2001-12-12 2006-03-22 ソニー株式会社 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
CN101061659B (zh) * 2004-12-02 2015-04-29 汤姆逊许可公司 自适应前向纠错的方法和设备
WO2007061087A1 (ja) 2005-11-28 2007-05-31 Nec Corporation 通信装置、通信システム、通信方法、および、通信プログラム
US7937640B2 (en) * 2006-12-18 2011-05-03 At&T Intellectual Property I, L.P. Video over IP network transmission system
WO2009089152A1 (en) * 2008-01-03 2009-07-16 Conexant Systems, Inc. Cognitive and universal impulse noise protection
US9185744B2 (en) * 2009-06-19 2015-11-10 Blackberry Limited Uplink transmissions for type 2 relay
KR20130029374A (ko) * 2010-03-29 2013-03-22 엘지전자 주식회사 상향링크 다중 안테나 전송을 지원하기 위한 효율적인 제어정보 전송 방법 및 장치
US8948252B2 (en) * 2010-03-30 2015-02-03 Sony Corporation Moving picture transmission apparatus, moving picture transmission system, moving picture transmission method, and program
US9215124B2 (en) * 2010-11-03 2015-12-15 Broadcom Corporation Unified vehicle network frame protocol
US9571178B2 (en) * 2011-04-19 2017-02-14 Lg Electronics Inc. Method and apparatus for transmitting and receiving data in a wireless communication system that supports a relay node
WO2014014165A1 (en) * 2012-07-15 2014-01-23 Lg Electronics Inc. Method for transmitting downlink signal at a relay node in a wireless communication system and appatatus therefor
WO2014139089A1 (en) * 2013-03-12 2014-09-18 Empire Technology Development Llc Self-adaptively improving system stability

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101223759A (zh) * 2005-07-08 2008-07-16 富士通株式会社 发送装置、接收装置、信息通信方法
JP2010098766A (ja) * 2010-01-18 2010-04-30 Fujitsu Ltd 受信装置、受信方法、無線通信システム、及び通信方法
US20110314351A1 (en) * 2010-06-18 2011-12-22 Fujitsu Limited Data transfer device, method, and program

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109804587A (zh) * 2016-10-12 2019-05-24 高通股份有限公司 用于高数据率的流线化的用户面报头
CN109804587B (zh) * 2016-10-12 2022-04-29 高通股份有限公司 用于高数据率的流线化的用户面报头
US11659438B2 (en) 2016-10-12 2023-05-23 Qualcomm Incorporated Streamlined user plane headers for high data rates
CN108462707A (zh) * 2018-03-13 2018-08-28 中山大学 一种基于深度学习序列分析的移动应用识别方法
CN112181883A (zh) * 2020-09-24 2021-01-05 乐唯科技(深圳)有限公司 一种串口通讯的数据传输方法、系统及存储介质
CN112181883B (zh) * 2020-09-24 2022-11-08 深圳市乐唯科技开发有限公司 一种串口通讯的数据传输方法、系统及存储介质

Also Published As

Publication number Publication date
JPWO2014147774A1 (ja) 2017-02-16
JP5935940B2 (ja) 2016-06-15
WO2014147774A1 (ja) 2014-09-25
US9866351B2 (en) 2018-01-09
EP2978171A4 (en) 2016-05-04
EP2978171B1 (en) 2017-09-20
EP2978171A1 (en) 2016-01-27
US20150349930A1 (en) 2015-12-03

Similar Documents

Publication Publication Date Title
CN105103500A (zh) 通信方法、通信装置以及通信程序
US8284669B2 (en) Data acknowledgement apparatus and method
US20070274324A1 (en) Local network coding for wireless networks
WO2007112667A1 (fr) procédé et appareil pour la transmission de message, procédé et appareil pour la notification de messages inter-systèmes
KR100842281B1 (ko) 무선 네트워크상에서 경로 회복 알림을 통하여 전송 제어 프로토콜의 성능을 관리하는 장치 및 그 방법
JP2014524092A (ja) 単一ソケットポイントツーマルチポイント性能による高信頼性仮想双方向データストリーム通信のためのシステムおよび方法
US9031076B2 (en) Processing requests
US8953484B2 (en) Communication device and communication method
JP2011072004A (ja) プロセス制御システムおよびアプリケーション情報を通信する方法
JP6148459B2 (ja) データを送信ノードから宛先ノードに移送する方法
CN107979449A (zh) 一种数据传输方法及装置
US20140122956A1 (en) Apparatus and method for retransmitting message in message transmission system
CN110413425B (zh) 第三方消息回调方法、装置、服务器和存储介质
CN103141050B (zh) 快速通道互联系统中数据包重传方法、节点
EP3461044B1 (en) Method and apparatus for data transmission
CN102035692A (zh) 一种链路质量检测方法及装置
JP2007053588A (ja) パケット再送方式、パケット再送システム、パケット再送プログラム及びプログラム記録媒体
CN107959555A (zh) 一种基于lwaap的数据传输方法、装置及存储介质
US7548972B2 (en) Method and apparatus for providing likely updates to views of group members in unstable group communication systems
JP2017092692A (ja) データ伝送制御システム及び方法、並びに、データ伝送制御プログラム
US10003470B2 (en) Method and terminal for transmitting and receiving data
CN101989896B (zh) 一种arq连接的反馈方法及装置
CN112187408B (zh) 数据处理方法、系统、装置、存储介质和处理器
CN115348336A (zh) 异构数据流的通用传输架构
JP5190498B2 (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
AD01 Patent right deemed abandoned
AD01 Patent right deemed abandoned

Effective date of abandoning: 20180608