CN103858404B - 通信装置 - Google Patents

通信装置 Download PDF

Info

Publication number
CN103858404B
CN103858404B CN201280042248.3A CN201280042248A CN103858404B CN 103858404 B CN103858404 B CN 103858404B CN 201280042248 A CN201280042248 A CN 201280042248A CN 103858404 B CN103858404 B CN 103858404B
Authority
CN
China
Prior art keywords
frequency band
tcp
bag
control
communicator
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
Application number
CN201280042248.3A
Other languages
English (en)
Other versions
CN103858404A (zh
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of CN103858404A publication Critical patent/CN103858404A/zh
Application granted granted Critical
Publication of CN103858404B publication Critical patent/CN103858404B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/127Avoiding congestion; Recovering from congestion by using congestion prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

在WAN那样RTT大、跳(hop)数大、废弃发生处多的环境下,能得到大的吞吐量的专有TCP通信即使与通常TCP通信之间冲突,也能防止占有线路频带。对TCP通信的发送频带进行控制的通信装置具备:在上述TCP通信中没有检测到拥塞,且从接收确认完成的数据部分成为更新中的状态开始一定的期间,使上述TCP通信的发送频带线性地增加的机构;在经过上述一定的期间后,使发送频带非线性地增加的机构;在上述TCP通信中利用废弃率和重发率的变化率来检测拥塞的机构;利用发送频带和重发频带的过去的履历推定重发率及其变化率的机构;利用发送频带和ACK接收数量的过去的履历推定废弃率及其变化率的机构。

Description

通信装置
技术领域
本发明涉及通信装置、频带(日语:帯域)控制方法及通信***,尤其涉及对计算机间的通信频带进行控制的通信装置。
背景技术
作为在云等中所用的据点间的通信网络,一般使用应用了IP-VPN(InternetProtocol–Virtual Private Network,网络协议-虚拟专用网)等技术的WAN(Wide AreaNetwork,广域网)。
在某据点所存在的终端等的计算机与其他据点所存在的终端进行通信的情况下,经由连接自身据点LAN(Local Area Network,局域网)与WAN的线路以及连接WAN与其他据点LAN的线路进行通信。这些线路由于协议频带,限制了可使用的带宽。
在终端间的通信中一般使用TCP(传输控制协议,Transmission ControlProtocol)。TCP通信中,针对发送终端发送的数据,接收终端将接收完成数据的位置向发送终端进行反馈通知。发送终端在反馈通知的接收完成数据的位置不再增加时,判断为检测出废弃。
进而,发送终端管理着被称为拥塞窗口大小(即使没有从接收终端通知已经接收,也可以发送的数据大小)的参数,并相应于RTT(Round Trip Time,往返时间)、有无检测出废弃,使拥塞窗口大小变化。
在检测出废弃时或RTT增加时判断为网络拥挤,并使窗口大小减少,从而间接地使发送频带减少,避免网络拥挤。此外,在没有废弃时或RTT减少时判断为网络空闲,并使窗口大小增加,从而使发送频带间接地增加,有效利用网络的线路频带。
RTT越大、废弃率越大,窗口大小越不容易增加,频带变小。
如以上那样,在利用了WAN中的TCP的通信中,发送频带很大程度上被RTT和废弃率所左右。
作为使窗口大小增加的方法,有最初使之非线性地增加,当超过某阈值后,使之线性地增加的技术(专利文献1)。
另一方面,在专利文献2中,在使用了WAN中的TCP的通信***中,与接收侧终端连接的装置具有:针对连接于发送侧终端的装置将废弃部分全部反馈通知的机构;连接于发送侧终端的装置将反馈通知的废弃部分重发的机构;以及连接于发送侧终端的装置基于重发频带·废弃频带对发送频带进行控制的机构。
现有技术文献
专利文献:
专利文献1:WO2007/092901号
专利文献2:WO2011/033894号
发明内容
发明要解决的课题
在使用TCP的通信中,由于发送频带很大程度上被RTT和废弃率所左右,在WAN那样RTT大、跳(hop)数大、废弃发生处多的环境下,存在只能得到将协议频带大幅降低的通信频带的情况。
此外,专利文献2中,在RTT和废弃率大的WAN那样的线路中,能够确保大的通信频带。
然而,使用通常的TCP的通信及专利文献2那样进行频带控制的通信,在共享相同的通信线路时,存在如专利文献2的通信那样,占有线路频带,使用通常的TCP通信不能确保通信频带的例子。
本发明鉴于上述的点,目的在于提供一种使用通常的TCP的其他的通信能够确保通信频带,并且对发送频带进行控制的通信装置。
用于解决课题的手段
为了解决上述至少一个课题,在本发明的一方式中,与网络连接的第一通信装置,按照每个间隔管理有关被发送的包的频带,该被发送的包从第一通信装置被发送至第二通信装置。该第一通信装置具有:在基于被管理的当前的间隔的频带以及过去的间隔的频带使控制频带增加的情况下,在规定的期间,以第一增加率使控制频带增加,在经过规定的期间后,以比第一增加率高的第二增加率使所述控制频带增加,该控制频带用于将比所述现在的间隔靠后的间隔的包送出;以及发送部,根据该控制频带,将包送出至网络。
发明的效果
根据本发明,即使在多个通信共享相同的通信线路的情况下,也能够防止占有一个通信的频带控制的线路中的线路频带,确保多个通信的通信频带,实现公平的频带利用。
附图说明
图1是包含本实施方式中的通信装置的网络***的构成图。
图2是本实施方式中的通信装置200的框图。
图3是缓存器的指针的说明图。
图4是包的格式图。
图5是状态表212的格式图。
图6是代理部206的框图。
图7A是TCP部209的框图。
图7B是TCP部203的框图。
图8是频带表213的格式图。
图9是通常TCP与专有(日语:独自)TCP比较的说明图。
图10是使用了废弃率的变化率的拥塞控制的说明图。
图11是说明按每个整形(shaper)的频带表213保存的值的含义的示意图。
图12A是表示利用重发率的变化率、连接数量及接入频带对控制频带进行更新的流程图A。
图12B是表示利用重发率的变化率、连接数量及接入频带对控制频带进行更新的流程图B。
图13是对控制频带进行更新的上级的流程图。
图14是按每个RTT对控制频带进行定期更新的部分的流程图。
图15是对控制频带进行不定期更新的部分的流程图。
图16A是表示使控制频带增加部分的流程图A。
图16B是表示使控制频带增加部分的流程图B。
图16C是表示使控制频带增加部分的流程图C。
图17是说明控制频带的变化的4种阶段的示意图。
图18是表示相应于对象装置有无对应于专有TCP而切换模式的示意图。
图19是表示相应于对象装置有无对应于专有TCP而切换模式的流程图。
图20是表示相应于对象装置有无对应于专有TCP而切换模式的流程图。
图21是表示相应于对象装置的有无变更废弃率/重发率及重发频带的计算方法的流程图。
图22专有TCP与通常TCP的重发方法的差异。
图23是模式/最低频带指定表的格式图。
具体实施方式
用于实施本发明的代表性的方式如下所述。实施例1中记载了基本的一方式。
实施例1
首先,使用图1对本发明所要解决的课题进行说明。
图1表示包含通信装置的网络***的构成图。
通信装置(也称为中继装置。以下,略记为装置)101、102以及路由器186设置在连接多个据点内的LAN110、120、130和WAN140的通信线路上。此外,多个计算机111、112、113经由LAN110与通信装置101连接。多个计算机121、122、123经由LAN120与通信装置102连接。
此外,通信装置101、102与WAN140通过接入线路191、192连接。
通信装置101,例如具有发送频带控制部150,该发送频带控制部150选择执行专利文献2中所公开的那样的专有TCP(日语:独自TCP)的发送频带控制的模式,并根据所选择的模式进行频带控制。通信装置102具有经由与通信装置101的WAN140而用于使通信高速化所必要的ACK发送部155。在图1所示的通信装置101以及通信装置102中,表示了建立用于进行计算机间的数据通信的2种连接的例子。第一连接是由发送频带控制部150进行频带控制的、计算机111以及121间的连接160(专有TCP)。第二连接是不经由发送频带控制部的、计算机113以及123之间的通常TCP的连接163。此外,通信装置101和102中也可以具备发送频带控制部150以及ACK发送部155两者。
路由器185经由LAN(未图示)与计算机134连接。路由器185经由WAN140与路由器186和通信装置102连接。路由器186经由LAN130与多个计算机131、132、133连接。从图1中所示的计算机131开始的连接165为通常TCP的连接,经由WAN路由器185进行计算机134与计算机131之间的依据TCP协议的数据通信。
在图1那样的专有TCP的连接160、通常TCP的连接163及165的通信中,发生共享线路192的情况。在专有TCP的连接中,存在通信装置101在进行使发送频带急剧地增加的控制时,占有线路频带,使用通常的TCP连接的通信不能确保充分的通信频带这样的情况。此外,在通信装置101中,专有TCP的连接160和通常TCP的连接163不仅共享线路192,也共享线路191。连接160和163之间也同样,使用通常TCP的连接163的通信不能确保充分的通信频带。因此,以下,说明在通信装置101和102中,有关能确保其他的连接的频带的专有TCP的连接中的发送频带的控制的例子。
此外,计算机、通信装置及网络的数量也可以为图中所示的数量以外的适当的数量。计算机包括服务器及信息处理装置、终端、便携型信息处理终端、智能手机等。计算机间的通信包括客户端服务器间的数据传送、信息处理装置间的文件传送等。此外,计算机间的通信,传输控制协议(Transmission Control Protocol,TCP)以基于OSI参考模型的传输层的传输控制协议的通信为例进行说明。此外,WAN140包括连接比LAN长的据点间的网络、据点间的通信的延迟大的网络。
图2示出了本实施方式的通信装置200的框图。对应于图1的通信装置101、102。
通信装置200例如具备:进行与外部的WAN/LAN网络之间的包的收发的WAN侧及LAN侧的网络接口(201/211);用于使高速化非对象的TCP包及TCP以外的UDP包和ARP包等通过的过滤器(202/210);进行用于TCP通信的控制的WAN侧及LAN侧的TCP处理部203/209;用于WAN侧的TCP209的管理的N个发送缓存器207及N个接收缓存器208;用于LAN侧的TCP203的管理的N个发送缓存器205及N个接收缓存器204;在收发缓存器之间进行数据的更换(日语:乗せ換え)的代理206。通信装置200具备存储器(未图示),在存储器中保存有具有N个条目的状态表(状态存储区域)212、具有N个条目的频带表213、以及用于指定各TCP通信的通信模式和最低频带的模式/最低频带指定表740。此外,上述的N个也可以分别是不同的数量。
过滤器202/210判别从外部输入的包是否是专有TCP对象包,并使高速化非对象的TCP包、TCP以外的UDP包(IP协议号)及ARP包等通过。TCP包的情况下,利用IP地址和端口号的组合或者IP地址和端口号中的任一个判别TCP包是否是非对象包。图1中的连接163中的包就是该例。另一方面,用IP协议号判别输入包是否符合TCP以外的UDP包。对于输入包是ARP包的判断,利用以太网类型不符合IPv、IPv6中任何一个,以太网类型是否是ARP来判断。对于符合的包不进行专有TCP的处理,利用过滤器将从LAN侧来的输入包传送至WAN,将从WAN侧来的输入包传送至LAN。
对于TCP处理部203、209及代理206,后面将详细叙述,在这里将略叙。
LAN侧的TCP处理部203具备发送履历更新部725、包重发部724、接收履历更新部726、分配部728、以及集成部732。接收履历更新部726将接收的包数据储存在LAN侧接收缓存器204中。进而,接收履历更新部726相应于存储的数据对状态表212的缓存器管理指针(508~510、515~517、521~527)的信息进行更新。进而,接收履历更新部726将记载了接收数据的位置的ACK包经由集成部732发送。发送履历更新部725将从LAN侧发送缓存器205读取的发送数据打包发送,并且相应于读取的数据对状态表212的缓存器管理指针(508~510、515~517、521~527)的信息进行更新。详细参照图7B说明。
WAN侧的TCP处理部209具备发送频带控制部715、发送履历更新部705、包重发部704、接收履历更新部706、分配部708、以及集成部712。接收履历更新部706将接收的包数据存储在WAN侧接收缓存器208中。进而,接收履历更新部706相应于存储的数据对状态表212的缓存器管理指针(508~510、515~517、521~527)的信息进行更新。进而,接收履历更新部706将记载了接收的数据的位置的ACK包经由集成部712,通过WAN140,发送至其他的通信装置200。详细参照图7A说明。
发送频带控制部715将发送频带、重发频带及ACK接收数量(经由WAN140接收的ACK的数量)的信息存储至频带表213中。发送履历更新部705将从WAN侧发送缓存器207读取的发送数据打包发送,并且,相应于读取的发送数据大小,对状态表212的缓存器管理指针(508~510、515~517、521~527)的信息进行更新。
代理206具备数据读取部(601、606)、数据加工部(602、605)、以及数据写入部(603、604)。数据读取部(601、606)相应于从接收缓存器(204、208)读取的数据大小,对状态表212的缓存器管理指针(508~510、515~517、521~527)的信息进行更新。数据写入部(603、604)相应于发送缓存器(207、205)中写入的数据大小,对状态表212的缓存器管理指针(508~510、515~517、521~527)的信息进行更新。详细参照图6说明。
图3是表示收发缓存器管理用的指针的说明图。在本图中,数据由左至右写入,由左至右读取。
接收缓存器对指示接收的数据的结尾的指针right_recv303、指示已编队数据和未编队数据的边界的指针left_recv302以及指示代理206已经读取完成的数据和尚未读取的数据的边界的指针left_rbuf301进行管理。
若不发生损耗地从前开始按顺序接收数据,则指示接收的数据的结尾的指针right_recv303增加相当于接收的数据大小的量,向右移动。在不能接收而为缺齿(日语:歯抜け)的数据部分(损耗段)存在的状态下,接收重发包,损耗段消失,则指示已编队数据和未编队数据的边界的指针left_recv302移动至最小的损耗段的左端。代理206从指示已经读取完成的数据和尚未读取的数据的边界的指针left_rbuf301处向右按顺序读取数据,使left_rbuf301向右移动相当于已读取的数据的量。已读取的数据大小的最大值是left_recv302和left_rbuf301之差。
发送缓存器对指示代理206已写入且为能发送状态的数据的结尾的指针right_sbuf306、指示已发送完成的数据的结尾的指针right_send305、以及指示从接收侧已接收确认相应的数据的结尾的指针left_send304进行管理。
指示代理206已写入且为能发送状态的数据的结尾的指针right_sbuf306,按代理206每写入数据增加相当于写入的数据大小的量,并向右移动。以指示已发送数据的结尾的指针right_send305为始点向右发送新的数据,right_send305增加相当于被发送的数据大小的量,并向右移动。若从接收侧接收具有比left_send304更大的接收序列号的确认响应包,则left_send304向确认相应(ACK)包中记载的接收序列号增加,并向右移动。
图4表示通信装置收发的包的格式图。包包含MAC头400、IP头410、TCP头420、TCP选项头430、以及有效载荷(payload)450。MAC头400包含表示发送目的地MAC地址的DMAC401、表示发送源MAC地址的SMAC402、以及表示MAC帧类型的类型(Type)403。IP头410包含表示除去MAC头后的包长度的IP长度(length)411、表示协议号的协议(protocol)412、表示发送源IP地址的SIP413、以及表示发送目的地IP地址的DIP414。TCP头420包含表示发送源端口号的src.port421、表示发送目的地端口号的dst.port422、表示发送序列号的SEQ423、表示接收序列号的ACK424、表示TCP标志号的标志(flag)425、以及表示TCP的头长度的tcphlen426。TCP选项头430包含表示选项类别的选项类别(option kind)431、表示选项长度的选项长度(option length)432、以及用于将从哪里到哪里能够部分地接收的数据部分的位置向计算机通知的left_edge_1~4(433、435、437、439)和right_edge_1~4(434、436、438、440)。left_edge_1~4(433、435、437、439)和right_edge_1~4(434、436、438、440)也存在被用于对部分地不能接收的数据部分的位置进行通知的情况。进而,TCP选项头430也存在用于在TCP通信开始时装置间的信息交换等情况。
例如,MSS选项在开始TCP通信时被用于将本装置的能够接收的MSS的大小通知给对象(日语:対向)装置。SACK选项在图1的通信装置101以及102之间开始TCP通信时,不仅被用于将本装置能够对应于SACK选项通知给对象装置,也被用于将在通信中检测出废弃时部分地能够接收的部分通知给对象装置。时间戳选项被用于将通信中本装置的接收时刻通知给对象装置。如此这样,TCP选项在通信开始时以及通信中被用于将本装置的能够对应的功能和信息通知给对象装置。
图5是表示状态表212的格式图。
通信装置200的状态表212具有例如用于记录按每个TCP连接的状态的n个条目520。
各条目520具有:例如、VLD501,记载条目是否在使用中;connect_state502,记载LAN或WAN侧的连接是否正在建立中;LIP503,表示LAN侧的计算机的IP地址;WIP504,表示WAN侧的计算机的IP地址;Lporrt505,表示LAN侧的计算机的TCP端口号;Wport506,表示WAN侧的计算机的TCP端口号;lan_state507,表示LAN侧的TCP通信状态;lan_left_rbuf508、lan_left_recv509、lan_right_recv510,表示LAN侧的接收缓存器管理用的指针;lan_ws511,表示LAN侧的窗口尺度选项的值;lan_rtt512,表示LAN侧的平均RTT;cwnd513,表示LAN侧的拥塞窗口大小;lan_wan529,表示从LAN侧的接收缓存器读取的加工中的数据大小;lan_left_send521、lan_right_send522、lan_right_sbuf523,表示LAN侧的发送缓存器管理用的指针;wan_state514,表示WAN侧的TCP通信状态;wan_left_rbuf515、wan_left_recv516、wan_right_recv517,表示WAN侧的接收缓存器管理用的指针;wan_ws518,表示WAN侧的窗口尺度选项的值;wan_rtt519,表示WAN侧的平均/初始RTT;wan_mss536,表示WAN侧的最大段大小MSS;wan_lan530,表示从WAN侧的接收缓存器读取的在加工中的数据的大小;wan_left_send524、wan_right_send525、wan_right_sbuf526,表示WAN侧的发送缓存器管理用的指针;old_wan_left_send527,表示RTT前的ACK接收完成的部分;friendly_mode532,用于决定针对通常的TCP是否以友好模式通信;one-way_mode533,用于决定在对象装置不对应于专有TCP的通信时是否进行专有TCP的通信;min_token534,表示最小频带;t_token535,表示变为拥塞未被检测出的状态时的最新的控制频带;c_token537,表示最新的定期更新时的控制频带;以及inc_time538,表示频带开始增加的时刻。
图6表示代理206的框图。
代理206具有:从LAN侧的接收缓存器rbuf204读取数据的数据读取部601;针对读取的数据进行压缩·解压·加密·解密·删除·复制·补写等的加工的数据加工部602;将已加工完成的数据写入WAN侧的发送缓存器sbuf207的数据写入部603;从WAN侧的接收缓存器rbuf208读取数据的数据读取部606;针对已读取的数据进行压缩·解压·加密·解密·删除·复制·补写等加工的数据加工部605;以及将已加工完成的数据写入LAN侧的发送缓存器sbuf205的数据写入部604。也可以在数据加工部602和数据加工部605之间进行数据的交换。数据的加工也可以是上述的例子以外。
数据读取部601根据从在从lan_left_rbuf508到lan_left_recv509为止的之间所存储的编队完成的数据中读取的开头数据,推断应读取的数据的大小和数据加工后的数据大小。可以使用TLS(Transport Layer Security,传输层安全)/SSL(Secure SocketLayer,安全套接层)头、SMB(server Message Block,服务器信息块)头等作为开头数据。根据TLS/SSL头所记载的值能够推断解密后的除了校验头以外的普通文件(平文)数据大小。根据SMB头能够推断进行了预取等后的指令数据大小。推断出的加工后的数据大小在wan_right_sbuf526与wan_left_send524的差即未发送数据与ACK确认等待数据的合计值未超过WAN侧的发送缓存器大小wan_sbuf_size的情况下,读取数据,并向数据加工部602转送。进而,将推断出的应读取的数据大小和数据加工后的数据大小中较大的一方记载入状态表212的lan_wan528中。
数据读取部606根据从在从wan_left_rbuf515开始到wan_left_recv516为止的之间所存储的已编队数据中读取的开头数据,推断应读取的数据大小和数据加工后的数据大小。可以使用TLS(TransportLayer Security)/SSL(Secure Socket Layer)头、SMB(serverMessage Block)头等作为开头数据。推断出的加工后的数据大小在lan_right_sbuf523与lan_left_send521的差即未发送数据与ACK确认等待数据的合计值未超过LAN侧的发送缓存器大小lan_sbuf_size的情况下,读取数据,并向数据加工部605转送。进而,将推断出的应读取的数据大小和数据加工后的数据大小中较大的一方记载入状态表212的wan_lan529中。
图7A是表示图2的通信装置200的WAN侧的TCP处理部209的框图。
实现TCP通信的TCP处理部209具有进行接收处理的RX部(接收部)702及进行发送处理的TX部(发送部)701。
RX部702具有:包分配部708,用于将接收包分离为带有SYN、FIN等的标志的TCP控制包、带数据的包和ACK包;TCP控制部707,基于TCP控制包中所记载的标志号变更状态表212内的TCP状态(lan_state507、wan_state514),并且基于TCP控制包中所记载的选项号的有无、模式/最低频带指定表740的指定的模式和最低频带,变更状态表212内的通信模式(friendly_mode532、one-way_mode533)和最低频带min_token534;接收履历更新部706,基于接收到的数据包的发送序列号SEQ423和接收序列号ACK424,变更状态表212内的缓存器管理指针,并返回ACK包。
TCP控制部707基于TCP控制包中所记载的选项号的有无,在通信开始时变更通信模式(friendly_mode532、one-way_mode533)的方法,将利用图18进行描述。
TCP控制部707基于模式/最低频带指定表740的指定的模式和最低频带,在通信开始时变更通信模式(friendly_mode532)和最低频带min_token534的方法,将利用图20进行描述。
TX部701具有:TCP控制部703,利用状态表212内的TCP状态lan_state507、wan_state514发送TCP控制包;包重发部704,基于接收到的ACK包,变更状态表212内的缓存器管理指针,利用接收到的ACK包记载的部分确认响应left_edge_1~4(433、435、436、439)、right_edge_1~4(434、436、438、440)从发送缓存器sbuf207读取数据且将包重发,并且将重发比特长和ACK接收数量通知给发送频带控制部715;发送履历更新部705,将载有从发送缓存器sbuf207读取出的数据的包发送,且变更状态表212内的缓存器管理指针,并且,将发送比特长通知给发送频带控制部715;分配部708,接受重发包和数据包,分配至缓存器1~n(709-1~n);计时器713,生成当前时刻,并通知给发送频带控制部715;间隔保存部714,保存间隔时间(预先确定的固定值或者测量出的平均RTT等)并通知给发送频带控制部715;发送频带控制部715,控制频带表213,并将各TCP连接的令牌大小通知给令牌更新部717;令牌更新部717,按每个TCP连接管理令牌桶,并将能发送的连接通知给多路转换器712;多路转换器712,以FIFO将ACK包、TCP控制包、重发包、数据包汇总并输出;以及缓存器709~711。模式/最低频带指定表740的记载内容能够从外部的用户端741变更。
在本实施例中,对TX部701的各块中按各TCP通信的控制频带(最大发送频带)发送数据的块(例如,令牌更新部717、多路转换器712、缓存器709等)进行归纳并称为发送控制部的情况也存在。
图7B表示图2中的LAN侧的TCP处理部203的框图。
实现TCP通信的TCP处理部203具有进行接收处理的RX部(接收部)722及进行发送处理的TX部(发送部)721。
RX部722具有:包分配部728,将接收包分离为TCP控制包、带数据的包及ACK包;TCP控制部727,基于接收到的TCP控制包变更状态表212内的TCP状态lan_state507、wan_state514;接收履历更新部726,基于接收到的数据包的发送序列号SEQ423和接收序列号ACK424变更状态表212内的缓存器管理指针并返回ACK包。
TX部721具有:TCP控制部723,利用状态表212内的TCP状态lan_state507、wan_state514发送TCP控制包;包重发部724,基于接收到的ACK包变更状态表212内的缓存器管理指针,利用接收到的ACK包记载的部分确认响应left_edge_1~4(433、435、436、439)、right_edge_1~4(434、436、438、440)从发送缓存器sbuf205读取数据且将包重发;发送履历更新部725,将载有从发送缓存器sbuf205读取出的数据的包发送,且变更状态表212内的缓存器管理指针;多路转换器732,以FIFO将ACK包、TCP控制包、重发包、数据包汇总并输出;以及缓存器729~731。
WAN侧TCP处理部209的发送频带控制部715管理着频带表213内被称为基准时刻的内部变数。在基准时刻与计时器713的当前时刻之差变得比间隔保存部714的间隔时间大的情况下,在基准时刻上加上间隔时间作为新的基准时刻。加法运算前的基准时刻成为旧基准时刻。即、当前在使用的基准时刻之前的一个使用的基准时刻成为旧基准时刻。间隔时间也可以利用测量出的平均RTT和初始RTT(wan_rtt519),也可以使用固定值。
利用图2对从LAN侧接收到带数据的包时通信装置200中的包的流程进行说明。
从LAN侧收到的带数据的包进入LAN侧TCP处理部203,并到达接收履历更新部726。接收履历更新部726将针对带数据的包的ACK包经由集成部732向LAN侧返送,并将包中记载的数据向LAN侧接收缓存器rbuf204储存。进而,接收履历更新部726基于储存数据大小更新状态表212的指针。数据读取部601将LAN侧接收缓存器rbuf204中所储存的已编队完成的数据读出,并转送至数据加工部602。进而,基于已读取的数据大小更新状态表212的指针。
数据加工部602加工数据并向数据写入部603转送。进而,基于加工中的数据大小,更新状态表212的加工中的数据大小。数据写入部603将已加工完成的数据向WAN侧发送缓存器sbuf207写入。进而,基于已写入的数据大小更新状态表212的指针。WAN侧发送缓存器sbuf207中所写入的数据被从发送履历更新部705读出。发送频带控制部715进行将已读出的数据作为带数据的包向WAN侧发送的控制。
若针对接收履历更新部726进行进一步的说明,则通过从LAN侧的接收缓存器的最大值减去lan_right_recv510和lan_left_rbuf508的差分,从而计算接收缓存器的剩余量。在有效负载450的大小为接收缓存器的剩余量以下时,将有效负载450中所记载的数据全部保存至接收缓存器。在有效负载450的大小比接收缓存器的剩余量大的情况下,将从有效负载450的开头起相当于大小与接收缓存器的剩余量相当的数据保存至接收缓存器。在保存数据大小比0大时,基于带数据的包的TCP头420中所记载的SEQ423的值和保存数据大小,进行接收缓存器管理用指针的更新。例如,在包头记载的SEQ423加上保存数据大小后而得的值比lan_right_recv510大的情况下,将lan_right_recv510变更为SEQ423加上保存数据大小后而得的值。进而,以使接收数据的最后尾成为lan_right_recv510的方式将接收数据记载于LAN侧的接收缓存器。然后,将ACK包向LAN侧返送,该ACK包为将接收缓存器管理指针之一的lan_left_recv509记载于TCP头420的ACK424的ACK包。
此外,对发送履历更新部705进一步说明,从WAN侧发送缓存器sbuf207读取从wan_right_send525开始向右方直到最大wan_right_sbuf526为止的数据。wan_right_send525增加相当于读取的数据大小的量,并向右移动。进而,将已读取的数据记载至有效负载450,并将追加了SEQ423中记载有wan_right_send525的TCP头420的带数据的包向WAN侧发送。
(用于WAN侧出去的数据的发送频带的控制的变量)
发送频带控制部715利用频带表213管理的变量对各TCP通信的从WAN侧出去的数据的发送频带进行控制。
图8中表示发送频带715管理的频带表213的格式。
频带表213按每个连接记录基准时刻、基准时刻以后的发送比特累计值·重发比特累计值·ACK接收数量·控制频带、基准时刻以前的发送频带·重发频带·接收频带·控制频带、以及旧基准时刻以前的发送频带·控制频带。
基准时刻以后的控制频带表示当前时刻的控制频带(在本实施例中表示为token或令牌)。基准时刻以后的发送频带表示当前时刻的发送频带(在本实施例中表示为snd),通过基准时刻以后的发送比特累计值除以当前时刻与基准时刻的差分来求出。基准时刻的重发频带表示当前时刻的重发频带(在本实施例中表示为rts),通过基准时刻以后的重发比特累计值除以当前时刻与基准时刻的差分来求出。基准时刻以后的接收频带表示当前时刻的接收频带(在本实施例中表示为rcv),通过用基准时刻以后的ACK接收数量乘以WAN侧的MSS和8所得的值除以当前时刻与基准时刻的差分来求出。基准时刻以前的控制频带·发送频带·接收频带·重发频带表示从旧基准时刻开始到基准时刻为止的控制频带·发送频带·接收频带·重发频带的平均值(在本实施例中表示为old_token、old_snd、old_rcv、old_rts)。旧基准时刻以前的控制频带·发送频带表示直到旧基准时刻之前为止的控制频带·发送频带(在本实施例中表示为old_old_token、old_old_snd)。基准时刻以前的重发率/废弃率old_rts_ratio通过old_rts/old_old_snd或者1-old_rcv/old_old_snd求出。此外,基准时刻以后的当前的重发率/废弃率rts_ratio通过rts/old_snd或者1-rcv/old_snd求出。若使用固定值作为间隔时间,则也存在使用状态表212记载的wan_rtt519的情况。
图11表示旧基准时刻·基准时刻·当前时刻与其前后的控制频带·发送频带·接收频带·重发频带·重发率/废弃率的关系。
基准时刻与旧基准时刻之差是间隔时间。旧基准时刻以前的间隔时间的控制频带·发送频带的平均值表示为old_old_token、old_old_snd(1103)。从旧基准时刻开始到基准时刻为止之间的控制频带·发送频带·接收频带·重发频带·重发率/废弃率的平均值表示为old_token、old_snd、old_rcv、old_rts、old_rts_ratio(1102)。从基准时刻开始到当前时刻为止的控制频带·发送频带·接收频带·重发频带·重发率/废弃率的平均值表示为token、snd、rcv、rts、rts_ratio(1101)。
发送频带控制部715利用频带表213中所记载的上述的值计算废弃率/重发率(rts_ratio530和old_rts_ratio531)。当前时刻的废弃率/重发率rts_ratio530通过rts/old_token或者rts/old_snd或者1-rcv/old_token或者1-rcv/old_snd来计算。过去的废弃率/重发率old_rts_ratio531通过old_rts/old_old_token或者old_rts/old_old_snd或者1-old_rcv/old_old_token或者1-old_rcv/old_old_snd来计算。进而基于废弃率/重发率的变化(old_rts_ratio531与rts_ratio530的比率)确定控制频带(token或令牌),并向令牌更新部717传达。进而,更新状态表212。控制频带(token或令牌)的更新方法的详细将在图12~图16中描述。
令牌更新部717基于从发送频带控制部715传达来的控制频带(token或令牌)的值按每个TCP连接管理令牌桶,并将能发送的连接通知给多路转换器712。
(控制频带token的更新处理)
利用图9、图10和图17的说明图以及图12~图16的流程图,对发送频带控制部715更新控制频带(token或令牌)的方法详细说明。
图9表示通常TCP通信与专有TCP通信的差异以及专有TCP的发送频带的控制方法的说明图。
在通常TCP通信中,废弃产生1次就判断为检测到拥塞,并使发送频带以一定的比率减少(906)。在网络中即使瓶颈频带不被100%使用,基于排队理论的概率性的废弃也以一定的比率发生。因此,发送频带到达瓶颈频带在成为最高速度之前减少,不能100%用完瓶颈频带。
在专有TCP中,通过利用最近的重发频带除以RTT前的发送频带求得废弃率,当废弃率的变化率超过了预先确定的阈值k时,判断为发生拥塞,并基于RTT前的发送频带与最近的重发频带使发送频带减少(902)。通过废弃率的变化率的增加判断发送频带达到瓶颈频带。因此,不受概率性的废弃的影响,直到发送频带达到瓶颈频带而成为最高速度为止,能够使发送频带持续增加。
在专有TCP中,使发送频带减少后(902),直到ACK接收完成部分的位置变化为止,相应于ACK接收数量使发送频带为一定(903)。若ACK接收完成部分的位置开始更新,则使发送频带一定时间T之间平稳地、例如线性地增加(904)。使发送频带平稳地、例如线性地持续增加而经过一定时间T后,变更为急剧地增加方法(例如,呈指数性等的非线性的增加方法)(905)。期间T可以根据RTT和令牌(token:控制频带)来确定,也可以使它们的积成比例。由此,实现了使发送频带线性地增加的期间由RTT与发送频带的过去的履历来确定的通信装置。即、发送频带715具备第一控制模式与第二控制模式,并进行这样的控制:在第一控制模式的频带控制经过规定的期间后,切换为第二控制模式的频带控制。进行第二控制模式的发送频带的增加率也可以比以第一控制模式的增加率高。此外,一定的期间T是根据与通信装置200连接的管理终端等能够变更的规定的期间。
根据上述的发送频带的控制方法,实现了这样的通信装置:在未检测到网络的拥塞、并且从完成接收确认的数据部分成为更新中的状态开始一定的期间,使上述TCP通信的发送频带线性地增加,然后使发送频带非线性地增加。进而实现了使用废弃率和重发率的变化率检测网络的拥塞的通信装置、使用发送频带和重发频带和ACK接收数量的过去的履历推断废弃率或重发率及其变化率的通信装置、在检测到拥塞时,使用发送频带和重发频带和ACK接收数量的过去的履历使发送频带减少的通信装置。
通过在未检测到网络的拥塞、并且从完成接收确认的数据部分成为更新中的状态开始一定的期间,相比通常TCP通信使发送频带平稳地(例如线性地)增加,从而即使在与通常的TCP通信冲突时也能防止压缩通常的TCP通信的频带,容易确保通常的TCP通信频带。此外,在经过一定的时间后,使发送频带急剧地(例如指数性地)增加,从而在没有与通常TCP通信的冲突时,能够使发送频带达到瓶颈频带而成为最高速度的时间缩短。进而,使用废弃率和重发率的变化率检测网络的拥塞,从而能够不被概率性的废弃影响地使发送频带持续增加直到发送频带达到瓶颈频带而成为最高速度为止。
图10表示出了表示进行专有TCP通信的装置发送侧的发送频带1001、废弃率1002、废弃率的变化率1003的时间转移的图。
在专有TCP通信的发送频带的增减中,最大存在有4个阶段。阶段1为使发送频带增加的步骤,阶段2为使发送频带减少的步骤,阶段3为使发送频带返回过去的发送频带的步骤,阶段4为使发送频带一定的步骤。
首先,在阶段1中发送频带增加(1004),且在某时间超过瓶颈频带(1013)。若发送频带超过瓶颈频带,则发生包废弃,从接收侧向发送侧通知废弃部分需要花RTT以上时间。因此,发送频带超过瓶颈频带呈现在RTT以上后废弃率的增加。废弃率通过最近的重发频带除以RTT前的发送频带来求得。在发送频带比瓶颈频带还小的期间由于只有概率性的废弃率,废弃率为一定(1010)。从发送频带超过瓶颈频带开始经过RTT以上,除了概率性的废弃,还加上过度使用所产生的废弃(1011),从而废弃率开始增加(1012)。若废弃率开始增加,废弃率的变化率从1开始急剧地增加,并超过阈值k(1009)。
在专有TCP通行中,如上所述废弃率的变化率急剧地增加,在超过阈值k时,判断为网络中发生拥塞。
若判断为网络中发生拥塞,则将RTT前的发送频带减去当前的重发频带所得的值作为新的发送频带(1018)。使用RTT前的发送频带来计算新的发送频带是因为发送频带超过瓶颈频带的时间为RTT以上之前。由于废弃率的增加将会持续一段时间(1012),在这期间发送频带持续减少。使该发送频带减少的步骤即为阶段2(1005)。
发送频带减少到比瓶颈频带还小时,废弃率开始减少(1019)。当废弃率的变化率比1还小,且低于阈值k(1020)时,判断为网络中不在发生拥塞。
在判断为网络中不在发生拥塞之后,废弃包的重发处理还在继续。在完成接收确认的数据部分与RTT前相比较没有增加的情况下,判断为废弃包的重发处理在继续,并相应于ACK接收数量使发送频带一定。使该发送频带一定的步骤即为阶段4(1006)。
在完成接收确认的数据部分与RTT前相比较有增加的情况下,判断为废弃包的重发处理已经完成,并再次使发送频带增加(阶段1)。
最初,发送频带控制部715例如以第一控制模式使发送频带缓慢地、线性地增加(1007)。若在一定的期间T没有检测到拥塞,则其后发送频带控制部715以第二控制模式使发送频带急剧地(例如非线性地)增加(1008)。在使发送频带非线性地增加时,也可以按每个RTT使αE倍等呈指数性地增加(1016)。在使最初的发送频带缓慢地(例如线性地)增加的期间T可以根据RTT和令牌(token:控制频带)来决定,也可以使与它们的积成比例(1021)。此外,在使最初的发送频带缓慢地(例如线性地)增加的期间可以使发送频带按每个RTT以与MSS/RTT成比例的速度线性地增加,也可以将使发送频带按每个RTT以与MSS/RTT成比例的速度线性地增加的情况下的比例系数αL设为比1还小的值(1017)。由此,实现了这样的通信装置:根据RTT和发送频带的过去的履历决定使发送频带速度线性地增加的期间。
根据上述发送频带的控制方法,实现了这样的通信装置:在未检测到网络的拥塞、且从完成接收确认的数据部分处于更新中的状态开始的一定的期间,使所述TCP通信的发送频带线性地增加,然后,使发送频带非线性地增加。进而,实现了使用废弃率和重发率的变化率检测网络的拥塞的通信装置、使用发送频带和重发频带和ACK接收数量的过去的履历推断废弃率或重发率及其变化率的通信装置、在检测到拥塞时,使用发送频带和重发频带和ACK接收数量的过去的履历使发送频带减少的通信装置。
通过在未检测到网络的拥塞、并且从完成接收确认的数据部分成为更新中的状态开始的一定的期间,相比通常TCP通信使发送频带平稳地(例如线性地)增加,从而即使在与通常的TCP通信冲突时也能防止压缩通常的TCP通信的频带,容易确保通常的TCP通信频带。此外,在经过一定的时间后,使发送频带急剧地(例如指数性地)增加,从而在没有与通常TCP通信的冲突时,能够使发送频带达到瓶颈频带而成为最高速度的时间缩短。进而,使用废弃率和重发率的变化率检测网络的拥塞,从而能够不被概率性的废弃影响地使发送频带持续增加直到发送频带达到瓶颈频带而成为最高速度为止,以用完线路频带。
图12~图16中示出了用于说明发送频带控制部715更新控制频带(token或令牌)的详细方法的流程图。
图12~图15中显示了专有TCP的频带控制的详情,图16中显示了专有TCP通信不占有线路频带,且用于保护通常TCP通信的频带增加方法的详情。
图12A表示发送频带控制部715更新控制频带(token或令牌)时的概念性的流程图。在专有TCP中,发送频带控制部715按照该流程图进行处理,从而能够实现基于重发率的频带控制,且不依赖于RTT和废弃率而用完线路频带。图12A的各步骤由发送频带控制部715执行。
发送频带控制部715若开始控制频带的更新处理(步骤1201),则发送频带控制部715判断包重发率(=利用rts/old_token或rts/old_snd或1-rcv/old_token或1-rcv/old_snd计算所得到的值)的增加率是否超过预先确定的阈值(步骤1202)。在包重发率的增加率超过预先确定的阈值的情况下,利用当前的重发频带(rts)和过去的(比基准时刻更靠前的)控制频带(old_token)或和过去的(比基准时刻更靠前的)发送频带(old_snd),更新控制频带(token)(步骤1203)。例如,将过去的(比基准时刻更靠前的)控制频带减去相应于当前的重发频带的量成为当前时刻的控制频带。另一方面,在步骤1202中,包重发率的增加率没有超过预先确定的阈值的情况下,发送频带控制部715使控制频带增加(步骤1204)。在步骤1203或步骤1204之后,发送频带控制部715基于各连接的最小频带(min_token534)更新控制频带(token)(步骤1206)。通过变更控制频带(token),令牌桶中所存储的令牌的量变化,由此能够变更包的发送速率。
图12B表示发送频带控制部715利用频带表213记载的值变更控制频带(token)的流程图。显示了比图12A更详细的例子。图12B的各步骤由发送频带控制部715执行。在专有TCP中,发送频带控制部715按照该流程图进行处理,从而能够实现基于重发率的频带控制,且不依赖于RTT和废弃率而用完线路频带。
若开始控制频带(token)的更新处理(步骤1207),则发送频带控制部715判断计时器713输出的当前时刻与频带表213记载的基准时刻之差是否为间隔保存部714输出的间隔时间以上(步骤1208)。也可以使用记录有计量的RTT的平均值和初始值等的状态表212的wan_rtt519等作为间隔时间。在步骤1208中判断为是的情况下,使基准时刻以后的当前的控制频带token的值为tmp(步骤1209)。进而,例如,判断频带表213中所存储的利用重发比特累计值(基准时刻以后)/(当前时刻-基准时刻)/发送频带(基准时刻以前)计算所得到的重发率(基准时刻以后)rts_ratio是否比利用重发频带(基准时刻以前)/发送频带(旧基准时刻以前)计算所得到的旧重发率(基准时刻以前)old_rts_ratio的K倍(K:预先确定的1以上的系数)还大(步骤1210)。步骤1210相当于上述步骤1202。K的值可以为固定值,也可以相应于token的值变化。在步骤1210中,判断为大的情况下,判断为网络中发生拥塞,例如,利用重发频带rts使控制频带减少以使得控制频带(基准时刻以后)token的值变得比控制频带(基准时刻以前)old_token的值更小。例如,成为控制频带(基准时刻以后)token=控制频带(基准时刻以前)old_token-重发频带(基准时刻以后)rts等(步骤1212)。步骤1212相当于上述步骤1203。在步骤1210中,判断为否的情况下,使控制频带(基准时刻以后)token增加(步骤1211)。控制频带(基准时刻以后)token的增加方法可以是线性地增加,也可以是指数性地增加,也可以是线性增加与指数增加的组合,也可以是最初线性增加然后指数增加,也可以是相应于控制频带(基准时刻以后)token是增加率变化。步骤1211相当于上述步骤1204。
步骤1212或步骤1211完成后,例如,更新为发送频带(旧基准时刻以前)old_old_snd=发送频带(基准时刻以前)old_snd、发送频带(基准时刻以前)old_snd=发送频带(基准时刻以后)snd、重发频带(基准时刻以前)old_rts=重发频带(基准时刻以后)rts、基准时刻=基准时刻+间隔、发送比特累计值(基准时刻以后)=0、重发比特累计值(基准时刻以后)=0、控制频带(旧基准时刻以前)old_old_token=控制频带(基准时刻以前)old_token、控制频带(基准时刻以前)old_token=tmp、定期更新时的控制频带c_token=新的控制频带token等,将各个值记录于频带表213和状态表212中(步骤1213)。然后转移至步骤1217。
另一方面,在步骤1208中,判断为否的情况下,与步骤1210同样地判断利用重发比特累计值(基准时刻以后)/(当前时刻-基准时刻)/发送频带(基准时刻以前)计算所得到的重发率(基准时刻以后)rts_ratio是否比利用重发频带(基准时刻以前)/发送频带(旧基准时刻以前)计算所得到的旧重发率(基准时刻以前)old_rts_ratio的K倍(K:预先确定的1以上的系数)还大(步骤1214)。K的值可以为固定值,也可以相应于token的值变化。步骤1214相当于上述步骤1202。在步骤1214中,判断为大的情况下,判断为网络中发生拥塞,与步骤1212同样地例如利用重发频带rts使控制频带减少以使得控制频带(基准时刻以后)token的值变得比控制频带(基准时刻以前)old_token的值更小。例如,成为控制频带(基准时刻以后)token=控制频带(基准时刻以前)old_token-重发频带(基准时刻以后)rts等(步骤1215)。在步骤1214中判断为小或者等同的情况下,不做处理。根据这些步骤,即使不经过间隔时间,因为重发率的增加也能够立即检测到网络的拥塞,并更新控制频带。在这些步骤之后,转移至步骤1217。
在步骤1217中,控制频带(基准时刻以后)token比各TCP通信的最小频带min_token还小的情况下,将控制频带(基准时刻以后)token变更为各TCP通信的最小频带min_token534(步骤1217)。即、成为由图12B中步骤1217所示的2个数式所确定的token中的任一个小的值。并且,步骤1217中的token和min_token534等的数据可以参照状态表212和频带表213读出。通过变更控制频带(token),令牌桶中所存储的令牌的量变化,由此能够变更包的发送速率。
如上述那样,在专有TCP中,如用图12说明的流程图那样,通过进行基于废弃率和重发率的频带控制,从而不受概率性的废弃的影响地直到发送频带达到瓶颈频带成为最高速度为止使发送频带增加。由此,专有TCP能够不依赖于RTT和废弃率地使用完线路频带。
图13、图14、图15表示表示发送频带控制部715利用频带表213记载的值变更控制频带(token)的流程图。显示了比图12B的一部分更加详细的例子。图13为主要流程图,图14和图15是将图13中处理的一部分详细化的流程图。图13、图14、图15的各步骤由发送频带控制部715执行。在专有TCP中,发送频带控制部715按照本流程图进行处理,从而能够实现基于重发率的频带控制,且不依赖于RTT和废弃率而用完线路频带。
图13表示发送频带控制部715利用频带表213记载的值变更控制频带(token)的主要的流程图。
发送频带控制部715开始进行废弃率的计算(步骤1301)。如上述利用图11说明的那样,废弃率是利用rts/old_token或rts/old_snd或1-rcv/old_token或1-rcv/old_snd计算所得到的值。也存在利用重发率作为废弃率的情况。接下来,相应于token的值进行阈值k的调整(1302)。Token的值大的时候,使阈值k小,从而即使废弃率只是稍微增加,废弃率的变化率也变得容易超过阈值k,使得容易检测出网络的拥塞。接下来,判断从上次的定期更新开始是否经过RTT(步骤1303)。这是与判断当前时刻与基准时刻之差是否为间隔以上的步骤1208相当。经过RTT的情况下,进行按每个RTT进行的定期更新处理(1304)。没有经过RTT的情况下,进行不定期的更新处理(1305)。定期更新1304和不定期更新1305的详情将分别利用图14和图15在后面描述。在定期更新1304和不定期更新1305之后,基于主动连接数量和接入频带进行更新控制频带(token)的处理(1306)。根据该处理,确保连接间的公平性。进而,基于各TCP连接通信的最小频带min_token534更新控制频带(token)(步骤1307)。
图14表示发送频带控制部715进行的控制频带(token)的定期更新处理1304的详细的流程图。
在发送频带控制部715进行的定期更新处理1304中,开始,判断废弃率(rts_ratio)的增加率是否超过阈值k(步骤1401)。在废弃率(rts_ratio)的增加率超过阈值k的情况下,发送频带控制部715基于0~RTT之前的重发频带和RTT~2RTT之前的发送频带old_snd或者控制频带old_token确定新的控制频带(步骤1402)。例如,为新的控制频带token=控制频带(基准时刻以前:RTT~2RTT之前)old_token-重发频带(基准时刻以后:0~RTT之前)rts等(步骤1402)。在本发明中将步骤1402称之为阶段2。接下来,比较当前的ACK接收完成部分wan_left_send524和表示RTT之前的ACK接收完成部分的old_wan_left_send527的值(步骤1403),如果有变化则结束按每个RTT的定期更新1304。若没有变化,则进入步骤1405。
在步骤1401中,废弃率(rts_ratio)的增加率没有超过阈值k的情况下,发送频带控制部715比较当前的ACK接收完成部分wan_left_send524和表示RTT之前的ACK接收完成部分的old_wan_left_send527的值(步骤1404)。在没有变化的情况下,进入到步骤1405。在步骤1405中,发送频带控制部715参照WAN侧的发送缓存器207,判断是否存在未发送数据(步骤1405)。发送缓存器207中存在未发送数据时,发送频带控制部715基于0~RTT之前的ACK接收数量调整控制频带(步骤1406)。例如,为新的控制频带=接收频带(基准时刻以后:0~RTT之前)rcv等(步骤1406)。步骤1406结束后,发送频带控制部715结束按每个RTT的定期更新1304。此外,在步骤1404中,当前的ACK接收完成部分wan_left_send524比表示RTT之前的ACK接收完成部分的old_wan_left_send527的值更大的情况下,使控制频带(token)增加(步骤1407)。在本发明中,步骤1407的处理被称之为阶段1。若步骤1407结束,则结束按每个RTT的定期更新1304。此外,使控制频带(token)增加的步骤1407的详情将利用图16后述。
图15表示发送频带控制部715进行的控制频带(token)的不定期更新处理1305的详细的流程图。
图13的步骤1303中,在当前时刻从上次的步骤1304中按每个RTT的控制频带更新处理开始没有经过RTT的情况下,在发送频带控制部715进行的不定期更新处理1305中,开始判断废弃率(rts_ratio)的增加率是否超过阈值k(步骤1501)。在废弃率(rts_ratio)的增加率超过阈值k的情况下,基于0~RTT之前的重发频带rts和RTT~2RTT之前的发送频带old_snd或者控制频带old_token确定新的控制频带(步骤1502)。例如,为新的控制频带token=控制频带(基准时刻以前:RTT~2RTT之前)old_token-重发频带(基准时刻以后:0~RTT之前)rts等(步骤1502)。在本发明中将步骤1502与步骤1402同样地称之为阶段2。若步骤1502结束,则结束不定期更新处理1305。另一方面,在步骤1501中,废弃率(rts_ratio)的增加率没有超过阈值k的情况下,使用最近的定期更新时的控制频带(c_token)更新控制频带(token)(步骤1503)。例如,使token=c_token等(步骤1503)。在本发明中将步骤1503称为阶段3。
如利用图13~图15所述的那样,发送频带控制部715所进行的控制频带(token)的更新处理大致分为:使频带增加的阶段1(步骤1407)、使频带减少的阶段2(步骤1402、步骤1502)、使频带返回原来值的阶段3(步骤1503)、相应于ACK接收数量使频带一定的阶段4(步骤1406)这4种处理而构成。
图17是表示根据发送频带控制部715所进行的控制频带(token)的更新处理、控制频带(token)如何在时间上按顺序进行变化的图。
首先最初是频带增加的阶段1(步骤1407),接着是使频带减少的阶段2(步骤1402、步骤1502),最后是相应于ACK接收数量使频带一定的阶段4(步骤1406)。使频带返回原来值的阶段3(步骤1503)是直到按每个RTT的定期更新为止的之间、控制频带(token)成为一定时的阶段。
发送频带控制部715在阶段2和阶段4的时候,用当前时刻更新状态表212的频带增加开始时刻inc_time538。进而,在阶段4时,用当前的控制频带(token)更新状态表212的t_token535。t_token535相当于专有TCP检测到的瓶颈频带。
图16A表示步骤1407中的频带增加处理的流程图。
在发送频带控制部715进行的频带增加处理1407中,最初,检查状态表212中所记载的friendly_mode532的值,并判断针对通常的TCP以友好模式即第一控制模式的通信是否有效。除此之外,判断当前时刻与频带增加开始时刻inc_time538之差是否超过时间T(步骤1601)。在友好模式friendly_mode532有效、且当前时刻与频带增加开始时刻inc_time538之差没有超过时间T的情况下,发送频带控制部715以第一控制模式缓慢地使频带增加(步骤1603)。例如,使新的控制频带(token)=原来的控制频带(token)+系数αLx最大段大小MSSx8/RTT等(步骤1603)。例如使系数αL小于1。在友好模式friendly_mode532无效、或者当前时刻与频带增加开始时刻inc_time538之差超过时间T的情况下,发送频带控制部715以发送频带的增加率比第一控制模式更高的第二控制模式使频带急剧地增加(步骤1602)。例如,使新的控制频带(token)=系数αEx原来的控制频带(token)等(步骤1602)。
如上述那样,在废弃率的增加率不再超过阈值k等、网络的拥塞不再被检测到(步骤1401)、且从接收确认完成的数据部分成为持续更新中(步骤1404)的状态开始一定的期间T,使发送频带缓慢地例如线性地增加(步骤1603),然后,使发送频带急剧地例如非线性地增加(步骤1602),从而能够防止使用专有TCP的通信占有线路频带,使利用通常TCP的通信确保通信频带。
图16B表示步骤1407中的频带增加处理的其他的流程图。表示了图16A中加上一处分支处理的例子。
在使用图16A说明的步骤1601和步骤1602之间,加上新的分支处理(步骤1604),加上实施区别于步骤1602的其他的处理(步骤1605)的流程。除此以外,与图16A相同。
在步骤1601中,友好模式friendly_mode532有效、且当前时刻与频带增加开始时刻inc_time538之差没有超过时间T的情况下,接着判断计量的RTT是否超过初始RTT的一定倍(例如,2倍)(步骤1604)。在没有超过初始RTT的一定倍的情况下,实施步骤1602的处理。在超过初始RTT的一定倍的情况下,发送频带控制部715以作为第三控制模式的与通常TCP等同的速度使频带增加(步骤1605)。例如,使新的控制频带(token)=原来的控制频带(token)+最大段大小MSSx8/RTT等(步骤1605)。由此,实现这样的通信装置,基于平均RTT和初始RTT的比率决定增加速度,将决定的增加速度作为第一控制模式和第二控制模式中间的第三控制模式来进行发送频带控制。
如上述那样,在计量RTT超过初始RTT的一定倍(例如,2倍)时,加上将频带增加速度等同于通常TCP的处理。即使不能检测到网络的拥塞,从RTT开始增加的早期,使频带增加速度降低,从而能够防止线路频带的过度使用,实现频带的公平利用。
图16C是表示步骤1407中的频带增加处理的其他的流程图。表示在图16B中加上一处分支处理的例子。
在使用图16B说明的步骤1604和步骤1602之间,加上新的分支处理(步骤1615),加上实施区别于步骤1602的其他的处理(步骤1616)的流程。除此以外,与图16B相同。
在步骤1604中,计量RTT没有超过初始RTT的一定倍(例如,2倍)的情况下,接着判断当前的控制频带(token)是否超过靠近成为未检测到拥塞的状态最近的控制频带t_token535(步骤1615)。在没有超过的情况下,实施步骤1602(第二控制模式)的处理。在超过的情况下,以比步骤1602(第二控制模式)平缓的控制模式、比第三控制模式急剧的第四控制模式来使频带急速增加(步骤1616)。例如,使新的控制频带(token)=系数βEx原来的控制频带(token)等(步骤1616)。由此,实现这样的通信装置,基于靠近成为未检测到拥塞的状态最近的发送频带决定增加速度。
如上述那样,在当前的控制频带(token)超过靠近成为未检测到拥塞的状态最近的控制频带t_token535时,加上使频带的增加速度缓慢的处理。即使不能检测到网络的拥塞,从网络的拥塞发生可能性高的阶段起,使频带增加速度降低,从而能够防止线路频带的过度使用。此外,也可以在通信装置101的发送频带控制部150和与图1的通信装置101相对应的通信装置200的发送频带控制部715中,搭载第一至第四控制模式,执行图16A-C的处理中任一处理。此外,也可以是以能够搭载或执行第一至第四控制模式中的至少2种的控制模式的状态来设定的通信装置。但是,在没有设定为能够执行第一控制模式的状态的情况下,执行增加率小的控制模式的期间经过规定的期间后(例如,当期时刻与频带增加开始时刻之差>T),发送频带控制部715(图1的150)也可以以图16的条件变更为其他的控制模式。此外,各控制模式可以作为程序分别保存在通信装置200的非易失性存储介质中。也可以将在图16A-C中所说明的4种控制模式中2个以上的控制模式的设定设定为从管理终端等通信装置能够执行的状态。利用2个以上的控制模式,相应于规定的条件进行增减增加率的发送频带控制,实现与其他的通信之间频带的公平利用。此外,也可以省略图16A-C的1601的是否“友好模式有效”的判断。
以上对用于发送频带控制部715所进行的发送频带的增加的控制模式进行了说明。
实施例2
(变更通信模式的处理)
以下,说明对应于专有TCP的通信装置在开始数据通信的情况下,根据对象装置是否对应于专有TCP变更通信模式的例子,除非另有说明,除图1的通信装置100和图2的通信装置与上述实施例的构成相同。
利用图18的序列图和图19~图20的流程图及图23的表格式图,对TCP控制部707/703确定状态表212中记载的通信模式(友好模式friendly_mode532或单向模式one-way_mode533)的方法的详情进行说明。
最初,利用图23对模式/最低频带指定表740的格式进行说明。
模式/最低频带指定表740按每个发送IP/子网掩码、目的地IP/子网掩码、发送端口、目的地端口的组合,具备指定友好模式的有效或无效以及最小频带的多个条目。
图7A中所示的用户终端741按每个发送IP/子网掩码、目的地IP/子网掩码、发送端口、目的地端口的组合,指定友好模式的有效或无效以及最小频带。对于发送IP/子网掩码、目的地IP/子网掩码、发送端口及目的地端口中成为任意的值的项目,指定为任意(Any)。在指定对于任意的组合的默认动作的情况下,将发送IP/子网掩码、目的地IP/子网掩码、发送端口及目的地端口的全部指定为任意(Any)等之后,指定友好模式的有效或无效以及最小频带即可。对于特定的网络目的地的通信,在希望指定友好模式的有效或无效以及最小频带的情况下,将其他的发送IP/子网掩码、发送端口及目的地端口设为任意(Any)等之后,指定目的地IP/子网掩码、友好模式的有效或无效以及最小频带。对于特定的网络源的特定的发送端口号,在希望指定友好模式的有效或无效以及最小频带的情况下,将目的地IP/子网掩码及目的地端口设为任意(Any)等之后,指定发送IP/子网掩码、发送端口、友好模式的有效或无效以及最小频带。
TCP控制部707/703在接收SYN包或SYNACK包并建立连接时,从模式/最低频带指定表740开始对一致的条目从上开始检索,有一致的条目时,将条目指定的最小频带记载于状态表212的min_token535。进而,发送频带控制部715基于状态表212的min_token535对控制频带(token)进行控制以使得不低于min_token535。由此,使各TCP通信的最低频带能够从外部预先确定。
图18A表示自主地开始通信的通信装置(对应于专有TCP)在对象装置对应于专有TCP时决定通信模式的序列图。
通信装置1801(对应于专有TCP)针对对象的通信装置(对应于专有TCP)1802发送具有专有的选项号的SYN包1803。对象的通信装置(对应于专有TCP)1802接受了具有专有的选项号的SYN包1803后,返回具有专有的选项号的SYNACK包1804。通信装置1801(对应于专有TCP)从对象的通信装置(对应于专有TCP)1802接受了具有专有的选项号的SYNACK包1804后,利用SYNACK包1804的IP头410及TCP头420中记载的发送IP地址413、目的地IP地址414、发送端口号421以及接收端口号422,从模式/最低频带指定表740开始从上开始检索一致的条目。在存在一致的友好模式有效的条目的情况下,使状态表212的友好模式532有效(1805)。
图18B表示自主地开始通信的通信装置(对应于专有TCP)在对象装置不对应于专有TCP时决定通信模式的序列图。
通信装置1801(对应于专有TCP)针对对象的装置(不对应于专有TCP)1806发送具有专有的选项号的SYN包1803。对象的装置(不对应于专有TCP)1806接受了具有专有的选项号的SYN包1803后,返回不具有专有的选项号的SYNACK包1807。通信装置1801(对应于专有TCP)从对象的装置(不对应于专有TCP)1806接受了不具有专有的选项号的SYNACK包1807后,使状态表212的one-way_mode533及友好模式532有效(1808)。
图18C表示被动地开始通信的通信装置(对应于专有TCP)在对象装置对应于专有TCP时决定通信模式的序列图。
通信装置1801(对应于专有TCP)从对象的通信装置(对应于专有TCP)1802接受了具有专有的选项号的SYN包1809后,返回具有专有的选项号的SYNACK包1810。进而,利用SYN包1809的IP头410及TCP头420中记载的发送IP地址413、目的地IP地址414、发送端口号421以及接收端口号422,从模式/最低频带指定表740开始从上开始检索一致的条目。在存在一致的友好模式有效的条目的情况下,使状态表212的友好模式532有效(1811)。
图18D表示被动地开始通信的通信装置(对应于专有TCP)在对象装置不对应于专有TCP时决定通信模式的序列图。
通信装置1801(对应于专有TCP)从对象的装置(不对应于专有TCP)1806接受了不具有专有的选项号的SYN包1812后,返回不具有专有的选项号的SYNACK包1813。进而,使状态表212的one-way_mode533及友好模式532有效(1814)。
以上,说明了用于根据对象装置对应于专有TCP还是不对应于专有TCP来决定通信模式的序列图。此外,作为不对应于专有TCP的对象装置例如是图1的路由器186等的通信装置、计算机131和123。
图19表示与图18A-D对应的开始自主地通信的通信装置决定通信模式的流程图。
通信装置1801(对应于专有TCP)开始自主地通信(步骤1901)后,TCP控制部703最初发送具有特定的选项号的SYN包(步骤1902)。从对象装置接收了SYNACK包(步骤1903)后,接着TCP控制部703/707判断SYNACK包是否具有特定的选项号(步骤1904)。在有特定的选项号的情况下,利用SYNACK包的IP头410及TCP头420中记载的发送IP地址413、目的地IP地址414、发送端口号421以及接收端口号422,从模式/最低频带指定表740开始从上开始检索一致的条目,并判断是否存在一致的友好模式有效的条目(步骤1906)。在没有一致的友好模式有效的条目的情况下,TCP控制部703/707原样地建立通信(步骤1908)。在存在一致的友好模式有效的条目的情况下,使状态表212的友好模式532有效(步骤1907)。此外,在步骤1904中不具有特定的选项号的情况下,使状态表212的one-way_mode533有效(步骤1905)。然后,也可以强制性地使友好模式有效(步骤1907),也可以实施步骤1906,并基于模式/最低频带指定表740的检索结果,决定状态表212的友好模式532的有效/无效。此外,状态表212的友好模式532和one-way_mode533默认值是无效。由此,实现了从外部预先决定适用发送频带的增加方法的TCP通信的通信装置。
图20表示被动地开始通信的装置决定通信模式的流程图。
通信装置1801(对应于专有TCP)开始被动地通信(步骤2001)后,最初接收SYN包(步骤2002),并开始通信(步骤2003)。接着判断SYN包是否具有特定的选项号(步骤2004)。在具有特定的选项号的情况下,利用SYN包的IP头410及TCP头420中记载的发送IP地址413、目的地IP地址414、发送端口号421以及接收端口号422,从模式/最低频带指定表740开始从上开始检索一致的条目,并判断是否存在一致的友好模式有效的条目(步骤2006)。在存在一致的友好模式有效的条目的情况下,使状态表212的友好模式532有效(步骤2007)。此外,步骤2004中,在不具有特定的选项号的情况下,使状态表212的one-way_mode533有效(步骤2005)。然后,也可以强制性地使友好模式有效(步骤2007),也可以实施步骤2006,并基于模式/最低频带指定表740的检索结果,决定状态表212的友好模式532的有效/无效。此外,状态表212的友好模式532和one-way_mode533默认值是无效。决定通信模式之后,接着判断one-way_mode533是否有效(步骤2008)。在one-way_mode533有效的情况下,向对象装置发送具有特定的选项号的SYNACK包(步骤2009)。在one-way_mode533无效的情况下,向对象装置发送不具有特定的选项号的SYNACK包(步骤2010)。发送SYNACK包后,通信建立(步骤2011)。由此,实现了从外部预先决定适用发送频带的增加方法的TCP通信的通信装置。
利用上述图23的表格式、图18所示的时序及图19~图20所示的流程图决定通信模式,从而用户能够从外部按每个预先连接指定友好模式通信。进而,在TCP通信开始时从对象装置没有发送具有特定的值的选项信息时,能够强制性地适用友好模式。
(相应于通信模式改变废弃率的计算方法)
以下,在实施例2中,利用图21的流程图及图22的序列图,说明发送频带控制部715相应于通信模式进行废弃率的计算处理的详情。
图22表示用于说明发生专有TCP与通常TCP的包废弃时的重发方法的差异的序列图。左侧表示通常TCP的重发控制方式,右侧表示专有TCP的重发控制方式。
在通常TCP中,ACK包的TCP选项头430内的left_edge_1~4(433、435、437、439)及right_edge_1~4(434、436、438、440)中,对从哪里开始到哪里为止是部分性地接收完成进行最大4处记载,并用于部分性地确认响应(Selective ACK(SACK)用。另一方面,在专有TCP中,TCP选项头430内的left_edge_1~4(433、435、437、439)及right_edge_1~4(434、436、438、440)中,对从哪里开始到哪里为止是希望部分性地重发进行最大4处记载,并用于部分性地未确认响应(Negative ACK(NACK)用。
在通常TCP中,从发送计算机2201向接收计算机2202送出的12个数据包A~L(2205)中,若B、D、F、H、J在途中被废弃,则由于TCP选项头430中写入的接收完成部分限制为最大4处,对于1以后送出的包的确认响应在该时刻不能送至发送计算机2201(2209)。发送计算机利用记载有A~I的部分性地确认响应的确认响应包(2209),重发包A~I中被废弃的包B、D、F、H、J(2206)。接收计算机2202接收重发包(2206)后,返回包I以后的记载有部分性地确认响应的确认响应(2212)。发送计算机2201接收包I以后的记载有部分性地确认响应的确认响应(2212)后,能够重发在包I以后被废弃的包J(2207)。另一方面,在专有TCP中,从发送计算机2203向接收计算机2204送出的12个数据包A~L(2208)中,即使B、D、F、H、J在途中被废弃,由于将A~J的希望重发的部分逐一写入TCP选项头430内的left_edge_1(433)和right_edge_1(434),所以返回部分性地未确认响应用(NACK)的ACK包(2211)。各重发请求部分被写入相当于1个NACK包的量。发送计算机2203接收部分性地未确认响应用(NACK)的ACK包(2211)后,重发TCP选项头430中所记载的重发请求部分B、D、F、H、J(2210)。即使在损耗大量地发生时,由于一次完成重发,因此通信时间缩短且提高频带。即、在发送计算机和接收计算机之间设置2台通信中继装置(代理装置),接收计算机侧的代理装置针对发送计算机侧的代理装置将废弃废弃部分全部逐一反馈通知。例如,发送计算机侧的代理装置重发被接收计算机侧的代理装置反馈通知的废弃部分,并且基于基准时刻以后的重发频带和废弃频带以及基准时刻以前的发送频带,使针对特定的目的地的数据发送频带和数据重发频带的总和增减。由此,能够实现不依赖于废弃率的通信。
如上述那样,在通常TCP中,由于使用SACK,因此在对象装置是通常TCP的情况下,有必要使用SACK。进而,由于废弃部分最大只能通知4个,因此,如利用重发频带计算废弃率,则在废弃部分多的时候,误差会变大。因此,在对象装置是通常TCP的情况下,有必要改变废弃率的计算方法,控制发送频带。
图21表示相应于通信模式改变废弃率的计算方法的流程图。
首先,判断状态表212的one-way_mode533是否有效(步骤2101)。在one-way_mode533无效的情况下,由于对象装置对应于专有TCP,因此利用最近的重发数量和RTT之前的发送数量、或者最近的重发频带rts和RTT之前的控制频带old_token,计算重发率,并作为废弃率利用(步骤2105)。另一方面,在one-way_mode533有效的情况下,判断是否在接收重迭ACK中(步骤2102)。在没有接收重迭ACK的情况下,使废弃率为0(步骤2103)。在接收重迭ACK的情况下,利用最近的ACK接收数量和RTT之前的发送数量、或者最近的接收频带rcv和RTT之前的控制频带old_token,计算废弃率(步骤2104)。由此,实现了这样的具备发送频带控制部的通信装置200,该发送频带控制部仅在没有从对象装置送出具有特定的值的选项信息时,利用发送频带和ACK接收数量的履历来推定废弃率,并基于推定结果进行频带控制。
如上述那样,本实施例中的通信装置在开始TCP通信时,从对象装置没有送出具有特定的值的选项信息时,即、对象装置不对应于专有TCP时,利用发送频带和ACK接收数量的履历来推定废弃率,从而即使不使用NACK也可以推定废弃率。由此,能够使专有TCP用于频带控制的废弃率的误差减少,使上述瓶颈频带的推定变得容易。
此外,实施例2的专有TCP对应的通信装置也可以是以实施例1的构成为前提的通信装置。此外,也可以是搭载有图16的第一至第4控制模式中的至少一个的通信装置。
如上述的实施例那样,本发明说明书中所公开的其他的方式如下所述。
控制TCP通信的发送频带的通信装置具备:在上述TCP通信中没有检测到拥塞,且从接收确认完成的数据部分成为更新中的状态开始一定的期间,使上述TCP通信的发送频带线性地增加的机构;在经过上述一定的期间后,使发送频带非线性地增加的机构;在上述TCP通信中利用废弃率和重发率的变化率来检测拥塞的机构;利用发送频带和重发频带的过去的履历推定重发率及其变化率的机构;利用发送频带和ACK接收数量的过去的履历推定废弃率及其变化率的机构;以及在检测到拥塞时,利用发送频带、重发频带及ACK接收数量的过去的履历使发送频带减少的机构。
根据上述方式,使用通常TCP的通信和使用专有TCP的通信即使在共享相同的通信线路的情况下,也能够防止使用专有TCP的通信占有线路频带,使用通常TCP的通信能够确保通信频带。
此外,根据本发明其他的方式,提供这样的通信装置:对LAN侧和WAN侧的多个TCP通信进行中继的通信装置具备:频带控制部,对各TCP通信的发送频带进行控制;状态表,用于记录各TCP通信的完成接收确认的数据部分的履历;频带表,用于记录各TCP通信中的发送频带、控制频带、接收频带及重发频带的过去的履历。所述频带控制部基于状态表中记载的发送频带、控制频带、接收频带及重新发送频带的过去的履历,以及状态表中记载的接收确认完成的数据部分的履历,判断TCP通信的拥塞的有无、和接收确认完成的数据部分是否在更新中,在未检测到拥塞,且从接收确认完成的数据部分为更新中的状态开始的一定的期间,使TCP通信的发送频带线性地增加,在经过所述一定的期间后,使TCP通信的发送频带非线性地增加。
符号的说明
101、102 通信装置;
110、120、130 网络;
111、121、131 计算机;
190、191、192 线路;
200 通信装置;
715 发送频带控制部。

Claims (14)

1.一种与网络连接的第一通信装置,其特征在于,
按照每个间隔管理有关被发送的包的频带,该被发送的包从所述第一通信装置经由所述网络被发送至第二通信装置,
该第一通信装置具有:
发送频带控制部,该发送频带控制部在基于被管理的当前的间隔的频带以及过去的间隔的频带使控制频带增加的情况下,在规定的期间,以第一增加率使控制频带增加,在经过所述规定的期间后,以比第一增加率高的第二增加率使所述控制频带增加,该控制频带用于将比所述当前的间隔靠后的间隔的包送出;以及
发送部,根据所述控制频带,将包送出至所述网络;
在所述被发送的包的废弃状况不满足规定的条件的情况下,所述发送频带控制部,使所述控制频带直到经过所述规定的期间为止线性地增加,在经过所述规定的期间后非线性地增加。
2.如权利要求1所述的通信装置,其特征在于,
所述规定的条件是指废弃率达到规定的阈值的情况,
在不满足所述规定的条件的情况下判断为未检测到拥塞,在未检测到所述拥塞的情况下,所述发送频带控制部,相应于通知的领受,使控制频带增加,该通知包含表示所述被发送的包中未接收的部分的信息、和所述被发送的包的领受确认响应。
3.如权利要求1或2所述的通信装置,其特征在于,
所述通信装置基于各间隔间的发送频带以及重发频带各自的比较结果,检测是否拥塞。
4.如权利要求1或2所述的通信装置,其特征在于,
所述发送频带控制部利用发送频带、重发频带和所述领受确认响应的接收数量的过去的履历,推断废弃率或重发率以及它们的变化率,
在检测出拥塞时,利用发送频带、重发频带和所述接收数量的过去的履历,使发送频带减少。
5.如权利要求1或2所述的通信装置,其特征在于,
所述通信装置利用传输控制协议通信即TCP通信发送所述包,
所述规定的期间根据所述TCP通信的往返时间即RTT和发送频带的过去的履历被确定。
6.如权利要求1或2所述的通信装置,其特征在于,
所述发送频带控制部根据是否超过未检测到拥塞时的比当前时刻更靠过去的间隔的发送频带的最大值,决定增加速度。
7.如权利要求1或2所述的通信装置,其特征在于,
所述发送频带控制部在经过所述规定的期间后使所述控制频带指数性地增加。
8.如权利要求1或2所述的通信装置,其特征在于,
所述通信装置利用计算机间的TCP通信发送所述包,
基于所述TCP通信的平均RTT和初始RTT的比率,决定增加速度。
9.如权利要求1或2所述的通信装置,其特征在于,
所述通信装置对基于TCP通信的计算机间的数据转发进行中继,在进行所述数据转发的TCP通信中,针对规定的TCP通信适用由所述发送频带控制部进行的发送频带控制,对于其他的TCP通信不适用发送频带控制。
10.如权利要求9所述的通信装置,其特征在于,
通信装置中继的用户数据包协议包即UDP包以及地址解析协议包即ARP包,不适用所述发送频带控制部进行的发送频带控制。
11.如权利要求1所述的通信装置,其特征在于,
所述发送部发送确立用于发送所述被发送的包的通信的确立请求包,
基于针对确立请求包的接收到的响应包,针对所述被发送的包,决定是否适用由所述发送频带控制部进行的频带控制。
12.如权利要求11所述的通信装置,其特征在于,
所述确立请求包在TCP通信的开始时被发送,在所述响应包中不包含来自对方装置的具有特定值的选项信息的情况下,适用由所述发送频带控制部进行的频带控制。
13.如权利要求12所述的通信装置,其特征在于,
所述通信装置仅限于在所述TCP通信的开始时来自对方装置的具有特定值的选项信息未被发送时,利用发送频带和ACK接收数量的履历推断废弃率。
14.一种通信装置,与连接于多个计算机的第一网络和作为广域网的第二网络连接,对多个TCP通信进行中继,该通信装置的特征在于,
具有:
频带控制部,控制各TCP通信的发送频带;
状态表,用于记录各TCP通信的接收确认完成的数据部分的履历;
频带表,用于记录各TCP通信的发送频带、控制频带、接收频带和重发频带的过去的履历;
所述频带控制部基于频带表中记载的发送频带、控制频带、接收频带和重发频带的过去的履历,以及状态表中记载的接收确认完成的数据部分的履历,判断TCP通信的拥塞的有无、和接收确认完成的数据部分是否在更新中,在未检测到拥塞,且从接收确认完成的数据部分为更新中的状态开始的一定的期间,使TCP通信的发送频带线性地增加,在经过所述一定的期间后,使TCP通信的发送频带非线性地增加。
CN201280042248.3A 2012-02-24 2012-10-26 通信装置 Expired - Fee Related CN103858404B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012038157 2012-02-24
JP2012-038157 2012-02-24
PCT/JP2012/077755 WO2013125096A1 (ja) 2012-02-24 2012-10-26 通信装置

Publications (2)

Publication Number Publication Date
CN103858404A CN103858404A (zh) 2014-06-11
CN103858404B true CN103858404B (zh) 2016-11-09

Family

ID=49005297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280042248.3A Expired - Fee Related CN103858404B (zh) 2012-02-24 2012-10-26 通信装置

Country Status (5)

Country Link
US (1) US9231829B2 (zh)
EP (1) EP2819353A4 (zh)
JP (1) JP5651805B2 (zh)
CN (1) CN103858404B (zh)
WO (1) WO2013125096A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015037080A1 (ja) * 2013-09-11 2015-03-19 株式会社日立製作所 通信装置および方法、通信処理プログラム
KR20150072512A (ko) * 2013-12-19 2015-06-30 한국전자통신연구원 단방향 지연을 제어하는 프레임 전송 방법 및 장치
CN104754003B (zh) * 2013-12-30 2019-01-08 腾讯科技(深圳)有限公司 传输数据的方法及***
JP6248638B2 (ja) * 2014-01-06 2017-12-20 富士通株式会社 通信端末、プログラム、及び通信方法
JP6234236B2 (ja) 2014-01-15 2017-11-22 株式会社日立製作所 通信装置
JP2015195511A (ja) * 2014-03-31 2015-11-05 富士通株式会社 パケット解析プログラム、パケット解析装置およびパケット解析方法
JP6418660B2 (ja) 2014-06-25 2018-11-07 ホアウェイ・テクノロジーズ・カンパニー・リミテッド データ送信方法及びデバイス
US10080231B2 (en) * 2015-06-16 2018-09-18 Avaya Inc. Channel bandwidth optimization for dynamic network conditions
US10812383B2 (en) * 2015-11-05 2020-10-20 Mitsubishi Electric Corporation Communication apparatus and communication method
US9813299B2 (en) * 2016-02-24 2017-11-07 Ciena Corporation Systems and methods for bandwidth management in software defined networking controlled multi-layer networks
US10587526B2 (en) * 2016-05-30 2020-03-10 Walmart Apollo, Llc Federated scheme for coordinating throttled network data transfer in a multi-host scenario
CN109905327B (zh) * 2017-12-11 2021-05-07 网宿科技股份有限公司 一种无线网络数据传输方法、发送端及接收端
JPWO2019244966A1 (ja) * 2018-06-22 2021-06-24 日本電気株式会社 通信装置、通信方法及びプログラム
CN109039932B (zh) * 2018-08-03 2022-07-15 网宿科技股份有限公司 服务器及其过载控制方法
US11599644B2 (en) 2019-05-17 2023-03-07 Walmart Apollo, Llc Blocking insecure code with locking
CN111935025B (zh) * 2020-07-08 2023-10-17 腾讯科技(深圳)有限公司 一种tcp传输性能的控制方法、装置、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101056259A (zh) * 2007-05-21 2007-10-17 中南大学 一种用于高速网络中的协同工作式拥塞控制方法
CN101123557A (zh) * 2006-08-10 2008-02-13 富士通株式会社 中继装置、中继方法以及存储有中继程序的记录介质
CN101557607A (zh) * 2009-05-15 2009-10-14 东南大学 无线传感器网络中汇聚节点的传输控制方法
CN101860895A (zh) * 2010-06-11 2010-10-13 上海海维工业控制有限公司 一种改进的aimd拥塞控制方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7839783B2 (en) 2006-02-07 2010-11-23 Asankya Networks, Inc. Systems and methods of improving performance of transport protocols
JP4942040B2 (ja) 2007-07-18 2012-05-30 国立大学法人電気通信大学 通信装置および通信方法
JP5146725B2 (ja) 2007-09-19 2013-02-20 日本電気株式会社 通信装置および通信方法
US8605745B2 (en) 2009-09-16 2013-12-10 Hitachi, Ltd. Communication apparatus and communication system for enhancing speed of communications between terminals

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101123557A (zh) * 2006-08-10 2008-02-13 富士通株式会社 中继装置、中继方法以及存储有中继程序的记录介质
CN101056259A (zh) * 2007-05-21 2007-10-17 中南大学 一种用于高速网络中的协同工作式拥塞控制方法
CN101557607A (zh) * 2009-05-15 2009-10-14 东南大学 无线传感器网络中汇聚节点的传输控制方法
CN101860895A (zh) * 2010-06-11 2010-10-13 上海海维工业控制有限公司 一种改进的aimd拥塞控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Host-to-Host Congestion Control for TCP;Alexander Afanasyev et al;《IEEE COMMUNICATIONS SURVEYS & TUTORIALS》;20100701;第12卷(第3期);第306页第1行-第309页,第329页-第330页 *

Also Published As

Publication number Publication date
EP2819353A1 (en) 2014-12-31
CN103858404A (zh) 2014-06-11
US20140355442A1 (en) 2014-12-04
US9231829B2 (en) 2016-01-05
WO2013125096A1 (ja) 2013-08-29
JPWO2013125096A1 (ja) 2015-07-30
EP2819353A4 (en) 2015-05-20
JP5651805B2 (ja) 2015-01-14

Similar Documents

Publication Publication Date Title
CN103858404B (zh) 通信装置
US9118609B2 (en) Communication apparatus and communication system for enhancing speed of communication between terminals
CN103329491B (zh) 通信装置和通信***
CN102201977B (zh) 批量数据传输
WO2013014963A1 (ja) 通信装置
CN105376173B (zh) 一种发送窗口流量控制方法和终端
CN102771103B (zh) 高速通信***以及高速通信方法
CN101101699A (zh) 数据采集和发送的装置和方法
EP1638276A2 (en) Data packet transmission
CN109714267A (zh) 管理反向队列的传输控制方法及***
JP5832335B2 (ja) 通信装置および通信システム
CN103098422A (zh) 通信装置
EP1059774A3 (en) Method and apparatus for queue modeling
CN103718509B (zh) 采用自适应的传输队列长度来降低数据分组损失的***和方法
CN108023968A (zh) 一种会话信息同步方法、装置及设备
CN108512708A (zh) 一种缓存计算的方法及装置
CN1692609B (zh) 以太网(r)中的帧转发方法及节点
JP3893247B2 (ja) データ配信管理装置
Gavaletz et al. Decomposing RTT-unfairness in transport protocols
CA2940077C (en) Buffer bloat control
CN114401230B (zh) 基于跨数据中心网络通信的发送速率控制方法和装置
WO2015022809A1 (ja) 通信装置及び送信帯域制御方法
JP5539161B2 (ja) データ伝送方式、及び、複数拠点データ配信方式
CN110650491B (zh) 一种用于车载自组网通信的前向纠错fec参数分析方法
CN116266826A (zh) 一种分布式机器学习的网络优化***、方法及电子设备

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161109

Termination date: 20171026