CN101305583A - 会话中继设备和会话中继方法 - Google Patents
会话中继设备和会话中继方法 Download PDFInfo
- Publication number
- CN101305583A CN101305583A CN200680041500.3A CN200680041500A CN101305583A CN 101305583 A CN101305583 A CN 101305583A CN 200680041500 A CN200680041500 A CN 200680041500A CN 101305583 A CN101305583 A CN 101305583A
- Authority
- CN
- China
- Prior art keywords
- session
- packet
- transmission
- segment
- terminal
- 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
Links
- 238000000034 method Methods 0.000 title claims description 52
- 230000005540 biological transmission Effects 0.000 claims abstract description 441
- 239000012634 fragment Substances 0.000 claims abstract description 147
- 238000012546 transfer Methods 0.000 claims abstract description 37
- 230000011218 segmentation Effects 0.000 claims abstract description 14
- 238000012790 confirmation Methods 0.000 claims description 158
- 238000013467 fragmentation Methods 0.000 claims description 19
- 238000006062 fragmentation reaction Methods 0.000 claims description 19
- 230000000977 initiatory effect Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 description 56
- 239000000872 buffer Substances 0.000 description 36
- 230000006854 communication Effects 0.000 description 30
- 238000004891 communication Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 30
- 238000012544 monitoring process Methods 0.000 description 12
- 230000003139 buffering effect Effects 0.000 description 5
- 238000005192 partition Methods 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 3
- 239000003999 initiator Substances 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003472 neutralizing effect Effects 0.000 description 1
- 235000002020 sage Nutrition 0.000 description 1
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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/40—Flow control; Congestion control using split connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- 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/166—IP fragmentation; TCP segmentation
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)
- Mobile Radio Communication Systems (AREA)
Abstract
一种会话中继设备可以可靠地将从发送源重传的数据分组发送到目的地,而无需执行片断重构或分割。会话中继设备(110)被布置在通过分组发送/接收数据的终端之间,所述分组被指派了指示出将被发送的片断的顺序的序列号。会话中继设备(110)包括中继单元(110-3),用于在与发送侧的终端建立的第一会话和与接收侧的终端建立的第二会话之间执行分组数据中继。在从发送侧的终端接收到重传片断时,会话中继单元(110-3)利用所接收的重传片断的片断大小来更新第二会话的最大片断大小,并将所接收的重传片断发送到接收侧的终端。
Description
技术领域
本发明涉及用于中继会话之间的数据的会话中继设备。
背景技术
一般而言,通信应用在通过网络相互连接的发送终端和接收终端之间建立通信会话,并在所建立的会话上执行通信。如果发送终端和接收终端之间的传播延迟时间很长,或者它们经由诸如有线和无线网络之类的具有不同属性的网络来相互通信,则发送终端和接收终端之间的通信吞吐量下降。
一种解决以上问题的已知方法不是在一个会话上执行发送终端和接收终端之间的通信,而是在发送终端和接收终端之间安装中继设备,并在两个会话(即,从发送终端向中继设备的会话和从中继设备向接收终端的会话)之间中继数据。这样的会话中继处理的示例包括在非专利文献1(Ajay Bakre and B.R.Badrinath“I-TCP;Indirect TCP for Mobile Host”,Department of Computer Science Rutgers University,DSC-TR-314,1994)中记载的“间接TCP”和在专利文献1(日本专利No.3448481)、专利文献2(日本专利No.3482091)和专利文献3(日本专利No.3494610)中记载的通信方法。
以下将描述根据TCP的会话通信的示例。在非专利文献2(Jon Postel,“Transmission Control Protocol”,IETF,RFC 793,1981)和非专利文献3(W.Richard Stevens,“TCP/IP Illustrated,Volume 1:The Protocols,Addison-Wesley”,1994,ISBN 0-201-63346-989)中记载了一种普通的TCP处理的细节。
图1示出了用于中继从发送终端和接收终端两者都可传输的会话的双侧传输会话中继设备。如图1所示,双侧传输会话中继设备32-0包括来自网络的分组被输入其中的分组输入部分32-1、将分组输出到网络的分组输出部分32-2、用于终止和中继会话的会话中继部分32-3、用于存储会话中继部分32-3的会话状态的会话状态存储部分32-4、用于判断一个分组是否为会话分组的会话判断部分32-5、用于判断会话中继处理是否将被执行的会话中继判断部分32-6、以及用于监视会话启动分组的会话启动处理监视部分32-7。
分组输入部分32-1执行从网络接收分组的处理。会话判断部分32-5判断来自分组输入部分32-1的输入分组是否为会话分组。如果输入分组是会话分组,则会话判断部分32-5将该输入分组传递到会话中继判断部分32-6。如果输入分组是除会话分组之外的分组,则会话判断部分32-5将该输入分组传递到分组输出部分32-2。
会话中继判断部分32-6判断来自会话判断部分32-5的会话分组是否为在登记在会话状态存储部分32-4中的会话中的分组,以及是否也是在会话开始确认分组之后发送的分组。如果满足这些条件,则会话中继判断部分32-6将来自会话判断部分32-5的会话分组传递到会话中继部分32-3。如果不满足这些条件,则会话中继判断部分32-6将来自会话判断部分32-5的会话分组传递到会话启动处理监视部分32-7。
当会话启动处理监视部分32-7接收到会话启动分组时,其登记表示临时生成的且尚未确定的接收序列号(将从接收终端接收的序列号)和发送序列号(将被发送到发送终端的序列号)的会话信息。当会话启动处理监视部分32-7接收到会话开始确认分组时,其确定所述会话信息中的已经临时生成的接收序列号和发送序列号。在会话启动处理监视部分32-7的处理结束之后,来自会话判断部分32-5的会话分组被传递到分组输出部分32-2。
会话中继部分32-3基于存储在会话状态存储部分32-4中的会话状态来执行会话中继处理,将更新后的会话状态存储在会话状态存储部分32-4中,并将来自会话中继判断部分32-6的分组传递到分组输出部分32-2。分组输出部分32-2将所提供的分组输出到所述网络。
以下将描述在图1所示的会话中继设备中的根据TCP的会话。在根据TCP的会话中,将会话启动分组和会话开始确认分组分别称作SYN分组和SYN·ACK分组。
图2是包括图1所示的会话中继设备32-0的网络配置的框图。图3是由在图2所示的网络配置中的会话中继设备32-0执行的TCP中继处理的序列图。图3所示的示例表示用于从具有IP地址A的发送终端10向具有IP地址B的接收终端20的端口号80传送数据的序列操作。
首先,发送终端10向接收终端20发送连接启动SYN分组。连接启动SYN分组包括表示源IP地址“A”、源端口号“x”、序列号“1”、目的地IP地址“B”、和目的地端口号“80”的信息。
在路径(route)上的会话中继设备32-0中,来自发送终端10的连接启动SYN分组被提供给分组输入部分32-1。分组输入部分32-1将所提供的SYN分组传递到会话判断部分32-5。会话判断部分32-5判定来自分组输入部分32-1的分组是会话分组,并将该分组传递到会话中继判断部分32-6。会话中继判断部分32-6判定从会话判断部分32-5接收的分组与登记在会话状态存储部分32-4中的会话不相对应,并将所接收的分组传递到会话启动处理监视部分32-7。
会话启动处理监视部分32-7判定从会话中继判断部分32-6接收的分组为会话启动(SYN)分组,将该会话登记在会话状态存储部分32-4中,并启动会话中继处理以将所接收的分组传递到分组输出部分32-2。在这个阶段,至少去往接收终端20的发送序列号和来自发送终端10的接收序列号被存储在会话状态存储部分32-4中。这两个序列号被会话启动(SYN)分组的序列号初始化。在这个阶段登记的会话的信息是总体上不完整的会话信息,因为去往接收终端20的发送序列号和来自发送终端10的接收序列号尚未确定。
在已经接收到来自会话启动处理监视部分32-7的分组之后,分组输出部分32-2将所接收的分组经由所述网络来发送到接收终端20。在被输入到会话中继设备32-0中的SYN分组中的分组信息和在被从会话中继设备32-0输出的SYN分组中的分组信息彼此相同。
当接收终端20从会话中继设备32-0接收到SYN分组时,其将SYN·ACK分组返回到发送终端10。
在路径上的会话中继设备32-0中,来自接收终端20的SYN·ACK分组被提供给分组输入部分32-1。分组输入部分32-1将该SYN·ACK分组传递到会话判断部分32-5。会话判断部分32-5判定从分组输入部分32-1接收的分组为会话分组,并将所接收的分组传递到会话中继判断部分32-6。会话中继判断部分32-6判定从会话判断部分32-5接收的分组与登记在会话状态存储部分32-4中的会话相对应并且不是在会话开始确认(SYN·ACK)分组之后的分组,并将所接收的分组传递到会话启动处理监视部分32-7。
会话启动处理监视部分32-7判定从会话中继判断部分32-6接收的分组不是会话启动(SYN)分组,而是会话开始确认(SYN·ACK)分组,更新会话状态存储部分32-4中的会话信息,并启动会话中继处理以将所接收的分组传递到分组输出部分32-2。在这个阶段,去往接收终端20的发送序列号和来自发送终端10的接收序列号被更新。这两个序列号被会话开始确认(SYN·ACK)分组的序列号初始化。
在已经接收到来自会话启动处理监视部分32-7的分组之后,分组输出部分32-2将所接收的分组经由所述网络来发送到发送终端10。被输入到会话中继设备32-0的SYN·ACK分组中的分组信息和被从会话中继设备32-0输出的SYN分组中的分组信息彼此相同。
之后,在会话中继设备32-0中,会话中继部分32-3向应于SYN·ACK分组而向接收终端20返回ACK分组。以这种方式,会话中继设备32-0开启发送终端10和接收终端20之间的会话。
当通信路径在会话已经被开启之后遭受某种故障时,根据ICMP(因特网控制消息协议)来执行状态通知。在非专利文献3和非专利文献4(Jon Postel,“INTERNET CONTROL MES SAGE PROTOCOL”,IETF,RFC792,1981)中记载了根据ICMP的操作的细节。
如果当路径包括不同MTU(最大传输单元)的分区(zone)时IP头部包含“不要分段(Don’t Fragment)”标记,则数据无法被分段并被传送。对于这个问题的一种解决方案是在非专利文献5(J.Mogul,S.Deering,“Path MTU discovery”,IETF,RFC 1191,1990)中提出的称为路径MTU发现(Path MTU discovery)的处理。
图4示出了ICMP目的地不可达/分段请求消息的分组配置。图5示出了已经导致在ICMP目的地不可达/分段请求消息中包括的错误的PET部分的配置。根据路径MTU发现处理,如果由于在包括不同MTU的分区的路由器中的“不要分段”标记而使得数据无法被分段和传送,则下一跳MTU被添加到图4所示的ICMP目的地不可达/分段请求消息中,并且该消息被发送到源,从而使得源终端将传送具有减小了的MSS(最大片断(segment)大小)的片断。在图4中,“因特网头部+64比特的原始数据报数据”包括图5所示的在已经导致所述错误的分组中包括的信息。
当通信路径包含多个不同MTU的分区时,根据ICMP将MTU通知给源以减小MSS的处理被重复直到检测到最小MTU为止。在检测到最小MTU时,使得可以在源和目的地之间进行通信。在专利文献4(JP-A No.2003-18216)中公开了类似的处理。
图6是图示出具有图1和2所示的双侧传输会话中继设备的网络装置的基于路径MTU发现的操作的示图。以下将参考图6来描述关于根据TCP的示例的基于路径MTU发现的操作。在这个示例中,IP和TCP头部大小的总和为40字节。
在SYN处理之后,发送终端421(地址:A,端口:x)向接收终端423(地址:B,端口:80)发送具有1460字节的片断大小和1500字节的分组大小的数据。从发送终端421输出的数据被提供给路由器422(地址:C)。由于下一跳处在“MTU=500”的分区中,所以已经从发送终端421接收到数据的路由器422将下一跳MTU添加到ICMP目的地不可达/分段请求消息中,并将该消息发送到发送终端421。来自路由器422的ICMP目的地不可达/分段请求消息被提供给发送终端421。
响应于分段请求消息,发送终端421向接收终端423再发送具有460字节的片断大小和500字节的分组大小的数据。由于从发送终端421再发送的数据的分组大小为500字节,所以路由器422将从发送终端421再发送的数据发送到接收终端423。结果,所述再发送数据的分组到达接收终端423,从而允许在发送终端421和接收终端423之间连续地交换数据。
发明内容
但是,当正在执行基于路径MTU发现的操作时,背景技术的双侧传输会话中继设备将遭受以下问题:
图7是图示出背景技术的双侧传输会话中继设备根据TCP所遭受的路径MTU发现问题的示图。在图7所示的示例中,会话中继设备432连接在发送终端431和接收终端434之间,并且路由器433连接在接收终端434和会话中继设备432之间。从发送终端431到路由器433的路径具有1500的MTU,并且从路由器433到接收终端434的路径具有500的MTU。IP和TCP头部大小的总和为40字节。
发送终端431向接收终端434发送具有序列号1-1460和1500字节的分组大小的数据。路径上的会话中继设备432终止ACK分组并将其返回到发送终端431。之后,会话中继设备432发送该具有序列号1-1460且去往接收终端434的数据。
从会话中继设备432发送的序列号1-1460被提供给布置在紧随MTU=500的分区之前的路由器433。因为路由器433无法发送具有1500字节的分组大小的数据,所以路由器433向发送终端431发送ICMP目的地不可达/分段请求消息(MTU=500)。
因为会话中继设备432允许ICMP分组在其间通过,所以来自路由器433的ICMP目的地不可达/分段请求消息(MTU=500)到达发送终端431而没有发生变化。根据ICMP目的地不可达/分段请求消息(MTU=500),发送终端431向接收终端434发送具有序列号1-1501-1960和500字节的减小了的分组大小的数据。
因为会话中继设备432尚未从接收侧接收到确认分组,所以其继续再发送具有1500字节的分组大小和序列号1-1460的分组。因此,来自发送终端431的序列号1-1501-1960的分组没有被发送,而是被存储在会话中继设备432中。序列号1-1501-1960的数据因而没有被发送到路由器433。每次路由器433接收到从会话中继设备432再发送的具有序列号1-1460的分组,路由器433就再次向发送终端431发送ICMP目的地不可达/分段请求消息(MTU=500)。
如上所述,会话中继设备432继续再发送具有序列号1-1460的分组而没有改变其1500字节的分组大小,直到其接收到来自接收侧的确认分组为止。因此,即使会话中继设备432接收到最大片断大小减小了的具有序列号1-1501-1960的数据,也不会将所接收的数据发送到路由器433。结果,会话中继设备432聚积来自发送终端431的数据,直到最后通信完全停止为止。
发送终端431可以具有下述功能:检验存在于头部信息中的会话信息的序列号失配,该序列号失配导致在ICMP目的地不可达/分段请求消息中包含的错误。但是,因为所指示的序列号是已经确认用于传输的序列号,所以发送终端431即使接收到ICMP目的地不可达/分段请求消息也不会减小用于传输的分组大小。
专利文献3公开了利用双侧传输TCP中继设备来终止根据ICMP的错误分组的处理。但是,因为TCP中继设备需要重新配置并分割片断,所以该处理因为处理成本较高而存有问题。
本发明的一个示例目的是提供一种会话中继设备,该会话中继设备将解决以上基于路径MTU发现的操作的问题,可以可靠地将从源再发送的数据分组发送到目的地而无需重新配置和分割片断,并且具有较低的处理成本。
为了实现以上目的,根据本发明提供了一种适合布置在用于发送和接收作为分组的数据的终端之间的会话中继设备,所述分组被指派了表示将被发送的片断的顺序的序列号,该会话中继设备用于中继在会话中继设备和发送侧的终端之间开启的第一会话与在会话中继设备和接收侧的终端之间开启的第二会话之间被作为分组来传输的数据,所述会话中继设备包括:会话状态保持器,用于保持所述第一和第二会话的信息;片断重传判断部分,用于当分组通过第一会话被接收时,通过参考会话状态保持器所保持的会话信息来判断所接收的分组的片断是否为下述重传片断,即,序列号与已经通过第一片断接收的分组的片断相同并且片断大小与该已经通过第一片断接收的分组的片断不同的重传片断;以及片断重传器,用于如果片断重传判断部分判定所接收的分组的片断是所述重传片断,则通过第二会话发送该重传片断。第二会话的最大片断大小可以利用从发送侧的终端接收的重传片断的片断大小来更新,或者可以基于通过第二会话接收的分段请求消息中的最大传输单元来更新。
因为来自源的重传片断被传递去向目的地,所以根据本发明的会话中继设备不存在背景技术的重传片断被聚积在会话中继设备中进而趋于停止通信的问题。
因为重传片断在源中被分割,所以无需重新配置和分割片断。
根据本发明,因为必然向已经传递分段请求消息的中继设备发送来自发送终端的重传片断,所以会话中继设备可以维持发送终端和接收终端之间的稳定通信,而不会导致通信故障。
即使发生路径MTU发现,发送终端也根据分段请求消息来毫无失配地将片断分割成根据路径MTU的分组,并传递分割后的分组,并且会话中继设备无需进行这样的片断分割。因此,会话中继设备可以以最小的处理成本来中继会话。
附图说明
图1是示出背景技术的双侧传输会话中继设备的配置的框图;
图2是示出包括图1所示的会话中继设备的网络配置的框图;
图3是图示出在图2所示的网络配置中的会话中继设备的TCP中继的序列操作的示图;
图4是图示出ICMP目的地不可达/分段请求消息的分组配置的示图;
图5是图示出在ICMP目的地不可达/分段请求消息中包括的导致错误的PET部分的配置的示图;
图6是图示出背景技术的双侧传输会话中继设备的基于路径MTU发现的操作的示图;
图7是图示出背景技术的双侧传输会话中继设备根据TCP所遭受的路径MTU发现问题的示图;
图8是示出根据本发明第一示例性实施例的会话中继设备的配置的框图;
图9是示出包括图8所示的会话中继设备的网络配置的框图;
图10是示出图8所示的会话中继部分的会话中继处理器的配置的框图;
图11是示出图8所示的传输确认分组传送/终止判断部分的配置的框图;
图12是图示出图8所示的会话中继部分的操作的流程图;
图13是图示出图8所示的传输确认分组传送/终止判断部分的操作的流程图;
图14是示出根据本发明第二示例性实施例的会话中继设备的配置的框图;
图15是示出包括图14所示的会话中继设备的网络配置的框图;
图16是示出图14所示的会话中继部分的会话中继处理器的配置的框图;
图17是示出图14所示的传输确认分组传送/终止判断部分的配置的框图;
图18是图示出图14所示的会话中继部分的操作的流程图;
图19是图示出图16所示的MSS传递序列号计算器的操作的流程图;
图20是图示出图16所示的MTU检验部分的操作的流程图;
图21是图示出图14所示的传输确认分组传送/终止判断部分的操作的流程图;
图22是示出根据本发明第三示例性实施例的会话中继设备的配置的框图;
图23是示出包括图22所示的会话中继设备的网络配置的框图;
图24是示出图22所示的会话中继设备的配置的框图;
图25是示出图22所示的分段请求消息传送部分的配置的框图;
图26是示出图22所示的传输确认分组传送/终止判断部分的配置的框图;
图27是图示出图22所示的会话中继部分的操作的流程图;
图28是图示出图24所示的MSS传递序列号计算器的操作的流程图;
图29是图示出图22所示的传输确认分组传送/终止判断部分的操作的流程图;
图30是用于丢弃片断的处理的流程图;以及
图31是用于将片断发送到发送终端而没有丢弃它的处理的流程图。
标号说明
110 会话中继设备
110-1 分组输入部分
110-3 会话中继部分
110-4 分组输出部分
110-5 分组输入部分
110-6 会话分组判断部分
110-7 传输确认接收器
110-8 会话状态保持器
110-9 传输确认分组传送/终止判断部分
110-10 传输确认发送器
110-11 分组输出部分
110-12 错误报告协议终止器
110-13 分段请求消息传送部分
具体实施方式
以下将参考附图来详细描述实现本发明的最佳模式。
本发明涉及适于布置在用于发送以及用于接收作为分组的数据的终端之间的、用于中继在会话中继设备和发送侧的终端之间开启的第一会话与在会话中继设备和接收侧的终端之间开启的第二会话之间作为分组来传送的数据的会话中继设备,其中,所述分组被指派了表示将被发送的片断的顺序的序列号,该会话中继设备包括用于保持第一和第二会话的信息的会话状态保持器,其中,当通过第一会话接收到分组时,会话中继设备通过参考由会话状态保持器保持的会话信息来判断所接收的分组的片断是否为序列号与已经通过第一片断接收的分组的片断相同且片断大小与该已经通过第一片断接收的分组的片断不同的重传片断(retransmitted segment),并且,如果判定所接收的分组的片断是重传片断,则会话中继设备改变第二会话的最大片断大小,并通过第二会话来发送该重传片断。
发送侧的终端可以是发送终端、路由器、或者会话中继设备。接收侧的终端可以是接收终端、路由器、或者会话中继设备。会话状态保持器能够分别保持在互连发送终端和接收终端的多个网络中的会话信息。第二会话的最大片断大小可以利用重传片断的片断大小来更新,或者可以基于在分段请求消息中的“下一跳的最大传输单元”来更新。
以下将针对第一示例性实施例以及第二和第三示例性实施例来描述本发明的具体配置细节,其中,在第一示例性实施例中,利用重传片断的片断大小来更新会话的最大片断大小,并且在第二和第三实施例中,基于分段请求信息中的“下一跳的最大传输单元”来更新会话的最大片断大小。
(第一示例性实施例)
图8是示出根据本发明第一示例性实施例的会话中继设备的配置的框图。图9是示出包括图8所示的会话中继设备的网络配置的框图。
在图9所示的网络配置中,中继设备40被布置在发送终端10和接收终端20之间,并且会话中继设备110被布置在发送终端10和中继设备40之间。中继设备40包括例如路由器。以下将描述会话中继设备110对从发送终端10发送到接收终端20的数据进行中继的具体处理。为了简化起见,将从图示中省略开启会话所需的处理和配置细节,并且假定会话数据在一个方向上流动。按以上针对图1所示的会话中继设备的操作来描述的方式执行会话开启处理。
如图8所示,会话中继设备110主要包括分组输入部分110-1、会话中继部分110-3、分组输出部分110-4、分组输入部分110-5、会话分组判断部分110-6、传输确认接收器110-7、会话状态保持器110-8、传输确认分组传送/终止判断部分110-9、传输确认发送器110-10、分组输出部分110-11、错误报告协议终止器110-12、以及分段请求消息传送部分110-13。
从发送终端10输入的分组被提供给分组输入部分110-1。会话中继部分110-3执行用于中继输入到分组输入部分110-1的分组的会话中继处理。分组输出部分110-4将来自会话中继部分110-3的分组输出到接收终端20。
从接收终端20输入的分组被提供给分组输入部分110-5。会话分组判断部分110-6判断输入到分组输入部分110-5的分组是否为会话分组。如果该分组被判定为会话分组,则其被从会话分组判断部分110-6提供到传输确认接收器110-7。如果该分组被判定为非会话分组,则其被从会话分组判断部分110-6提供给错误报告协议终止器110-12。
传输确认接收器110-7通过分组输入部分110-5和会话分组判断部分110-6来接收从接收终端20作为会话响应分组来传递的传输确认分组。会话状态保持器110-8保持通过会话中继部分110-3中继的会话的状态。
传输确认分组传送/终止判断部分110-9判断是传送由传输确认接收器110-7接收的传输确认分组还是终止该传输确认分组并执行正常的会话中继处理。传输确认发送器110-10将传输确认分组发送到发送终端10。分组输出部分将所提供的分组输出到发送终端10。错误报告协议终止器110-12终止错误报告协议。分段请求消息传送部分110-13从错误报告协议终止器110-12中取下(remove)错误报告协议的分段请求消息,并将该分段请求消息传递到发送终端10。
在图8所示的会话中继设备110中,从发送终端10传递而来的分组通过分组输入部分110-1而被提供给会话中继部分110-3。当分组被从分组输入部分110-1输入到会话中继部分110-3时,会话中继部分110-3对该输入分组执行会话中继处理。
图10示出了会话中继部分110-3的会话中继处理器的配置。如图10所示,会话中继处理器包括用于缓冲来自分组输入部分110-1的分组的缓冲部分110-3-1、用于判断所缓冲的片断是否为具有变化了的片断大小的重传片断的片断重传判断部分110-3-2、用于如果所缓冲的片断为具有变化了的片断大小的重传片断就更新会话的最大片断大小(以下称为SMSS)的SMSS更新器110-3-3、用于重传所述具有变化了的片断大小的重传片断的片断重传器110-3-4、以及用于对并非为具有变化了的片断大小的重传片断的片断执行正常的会话中继处理的正常会话中继部分110-3-5。
在会话中继部分110-3中,片断重传判断部分110-3-2判断来自发送终端10的片断是否为具有变化了的片断大小的重传片断。如果该片断是具有变化了的片断大小的重传片断,则片断重传器110-3-4无条件地或在包括重传的任意定时处将所述重传片断重传到接收终端20。术语“具有变化了的片断大小的重传片断”指的是具有相同的起始序列号和不同的片断大小的重传片断。术语“包括重传的任意定时”指的是被定义为固定时间或随机时间的定时。对于片断重传判断部分110-3-2的判断条件,可以添加重传片断尚未到达接收终端20的条件、或者重传片断大小为SMSS或更小的条件、或者满足以上两个条件的条件。
在会话中继部分110-3中,如果所缓冲的片断是具有变化了的片断大小的重传片断,则SMSS更新器110-3-3将SMSS更新为该重传片断大小。对于用于更新SMSS的条件,可以添加所确认用于传输的最大片断大小小于已经登记在会话状态保持器110-8中的会话被开启时进行了协商的最大片断大小的条件。
SMSS的初始值被选择为当会话被开启时对接收终端20指定的片断大小。所确认用于传输的最大片断大小是被具体给出为传输确认分组中的传输确认序列号的增长最大值。例如,如果当第一到第四传输确认分组被接收到时,在第一传输确认分组中的传输确认序列号为0,在第二传输确认分组中的传输确认序列号为500,在第三传输确认分组中的传输确认序列号为1500,并且在第四传输确认分组中的传输确认序列号为2250,则在第二、第三和第四传输确认分组中的传输确认序列号的增长分别是500、1000和750。在这种情况下,所确认用于传输的最大片断大小为1000。
在图8所示的会话中继设备110中,从接收终端20或中继设备40传递而来的分组通过分组输入部分110-5而被提供给会话分组判断部分110-6。当分组被从分组输入部分110-5输入到会话分组判断部分110-6时,会话分组判断部分110-6判断该输入分组是否为登记在会话状态保持器110-8中的会话分组。如果该输入分组是会话分组,则会话分组判断部分110-6将该输入分组(传输确认分组)传送到传输确认接收器110-7。如果所述输入分组不是会话分组,则会话分组判断部分110-6将该输入分组(错误报告协议)传送到错误报告协议终止器110-12。
当会话分组(传输确认分组)被从会话分组判断部分110-6提供给传输确认接收器110-7时,传输确认分组传送/终止判断部分110-9判断是将该传输确认分组传送到分组输出部分110-11还是终止该传输确认分组并执行正常的会话中继处理。
图11示出了传输确认分组传送/终止判断部分110-9的中心部分。如图11所示,传输确认分组传送/终止判断部分110-9包括用于基于SMSS来确定传输确认分组的终止开始的传输确认分组终止判断部分110-9-1、用于传送传输确认分组的传输确认分组传送部分110-9-2、以及用于启动正常的会话中继处理和停止传输确认分组的传送的传输确认分组终止启动器110-9-3。
传输确认分组终止判断部分110-9-1得到未经确认的传输序列号(对应于在会话中继设备和发送终端之间开启的会话的起始分组的序列号)和来自接收终端20的传输确认分组的传输确认序列号之间的差值(对应于所确认用于传输的最大片断大小),并判断该序列号差值是否达到了SMSS的n倍(给定为SMSS的倍数的设定值)。在作为会话协议的代表的TCP中,取决于设置,每接收一个分组发送一个传输确认分组,或者每接收两个分组发送两个传输确认分组(所谓的延迟响应)。根据某些所安装的设计,每接收n个分组(n是自然数)发送一个传输确认分组。因此,“SMSS的n倍”中的n取决于延迟响应而不同。
在紧随会话已经被开启之后并且在序列号差值达到SMSS的n倍之前,传输确认分组传送部分110-9-2将传输确认分组从传输确认接收器110-7传送到分组输出部分110-11,并且传输确认发送器110-10并不传递传输确认分组。在序列号差值已经达到SMSS的n倍之后,传输确认分组传送部分110-9-2不传送传输确认分组,并且传输确认分组终止启动器110-9-3终止来自传输确认接收器110-7的传输确认分组,从而致使传输确认发送器110-10开始发送传输确认分组。如果SMSS被与时间戳相关联地存储在会话状态保持器110-8中,则可以基于来自接收终端20的传输确认分组中的时间戳来从会话状态保持器110-8获取与时间戳相关联的SMSS的值,并且可以使用所获取的SMSS的值来取代序列号差值。
当所述分组(错误报告协议)被从会话分组判断部分110-6提供给错误报告协议终止器110-12时,错误报告协议终止器110-12终止错误报告协议。然后,分段请求消息传送部分110-13从错误报告协议终止器110-12取下错误报告协议的分段请求消息,并将分段请求消息传递到发送终端10。
以下将描述根据本示例性实施例的会话中继设备的具体操作细节。图12示出了根据本示例性实施例的会话中继设备的关于从发送终端10到接收终端20的通信方向的操作。图13示出了根据本示例性实施例的会话中继设备的关于从接收终端20到发送终端10的通信方向的操作。
首先,以下将参考图12来描述紧随会话开启处理结束之后、在来自发送终端10的数据分组到达时的会话中继设备110的操作。
紧随会话开启之后,传输确认分组传送部分110-9-2将来自传输确认接收器110-7的传输确认分组传送到分组输出部分110-11,并且传输确认发送器110-10不传递传输确认分组。
从分组输入部分110-1输入的数据分组被提供给会话中继部分110-3。在会话中继部分110-3中,缓冲部分110-3-1缓冲并保持所提供的分组(步骤A101)。然后,片断重传判断部分110-3-2判断缓冲部分110-3-1所保持的片断是否为具有不同的片断大小的重传片断。此时,由于缓冲部分110-3-1所保持的片断不是具有不同片断大小的重传片断,所以步骤A102判定为“否”。
当步骤A102判定为“否”时,正常会话中继部分110-3-5执行正常的会话中继处(A105)。在正常的会话中继处理中,缓冲部分110-3-1所保持的片断被从分组输出部分110-4向接收终端20输出。
从会话中继设备110向接收终端20传递的片断被中继设备40接收。如果所接收的片断的大小大于MTU,则中继设备40向发送终端10传递错误报告协议的分段请求消息。错误报告协议的分段请求消息被会话中继设备110接收。
以下将参考图13来描述在来自中继设备40的错误报告协议的分段请求消息到达时的会话中继设备110的操作。
来自接收终端20侧的分组被输入到分组输入部分110-5(步骤A201)。输入到分组输入部分110-5的分组被提供给会话分组判断部分110-6,会话分组判断部分110-6判断该输入分组是否为会话分组(步骤A202)。因为来自接收终端20侧的分组是从中继设备40向发送终端10传递的错误报告协议的分段请求消息,所以步骤A202判定为“否”。
当步骤A202判定为“否”时,会话分组判断部分110-6将来自分组输入部分110-5的输入分组传送到错误报告协议终止器110-12,错误报告协议终止器110-12判断该输入分组是否为错误报告协议(步骤A203)。因为该输入分组是从中继设备40向发送终端10传送的错误报告协议的分段请求消息,所以步骤A203判定为“是”。
当步骤A203判定为“是”时,错误报告协议终止器110-12将来自分组输入部分110-5的输入分组传送到分段请求消息传送部分110-13,分段请求消息传送部分110-13判断所提供的分组是否为分段请求消息(步骤A204)。因为提供给错误报告协议终止器110-12的分组是分段请求消息,所以步骤A204判定为“是”。
当步骤A204判定为“是”时,分段请求消息传送部分110-13从错误报告协议终止器110-12取下错误报告协议的分段请求消息,并将其传递到发送终端10(步骤A205)。
在已经从会话中继设备110接收到分段请求消息之后,发送终端10根据所接收的分段请求消息向接收终端20重传具有减小了的分段大小的分组。
以下将参考图12来描述来自发送终端10的具有减小了的分段大小的分组到达时的会话中继设备110的操作。
来自发送终端10的分组被从分组输入部分110-1提供给会话中继部分110-3。在会话中继部分110-3中,缓冲部分110-3-1缓冲并保持所提供的分组(步骤A101)。然后,片断重传判断部分110-3-2判断缓冲部分110-3-1所保持的片断是否为具有不同片断大小的重传片断。此时,因为缓冲部分110-3-1所保持的片断是具有不同片断大小的重传片断,所以步骤A102判定为“是”。
当步骤A102判定为“是”时,SMSS更新器110-3-3利用该重传片断大小来更新SMSS(步骤A103)。片断重传器110-3-4通过分组输出部分110-4无条件地或在包括重传的任意定时处向接收终端重传所述重传片断(步骤A104)。
由于片断重传器110-3-4所传输的重传片断的大小为根据中继设备40向源返回的分段请求消息的大小,所以该重传片断通过中继设备40并到达接收终端20。在接收到所述重传片断时,接收终端20向发送终端10发送传输确认分组。该传输确认分组通过中继设备40被传输并被会话中继设备110接收。
以下将参考图13来描述在接收到来自接收终端20的传输确认分组时的会话中继设备110的操作。
来自接收终端20侧的分组被输入到分组输入部分110-5(步骤A201)。输入到分组输入部分110-5的分组被提供给会话分组判断部分110-6,会话分组判断部分110-6判断该输入分组是否为会话分组(步骤A202)。因为来自接收终端20侧的分组是传输确认分组,所以步骤A202判定为“是”。
当步骤A202判定为“是”时,传输确认接收器110-7执行传输确认接收处理(步骤A206)。然后,传输确认分组终止判断部分110-9-1计算所确认用于传输的最大片断大小(步骤A207),并判断所确认用于传输的最大片断大小是否为SMSS的n倍(n是自然数)(步骤A208)。因为在这个流程中没有延迟响应,所以根据设置从接收侧每接收一个分组返回一个传输确认分组。因此,在步骤A208中,传输确认分组终止判断部分110-9-1判断所确认用于传输的最大片断大小是否为SMSS的一倍。因为所确认用于传输的最大片断大小是SMSS的一倍,所以步骤A208判定为“是”。
当步骤A208判定为“是”时,传输确认分组传送部分110-9-2指示传输确认发送器110-10开始传输确认处理以用于针对所接收的分组传递传输确认分组(步骤A209)。之后,来自接收侧的传输确认分组被终止并且将不被传送到发送终端10。来自接收侧的传输确认分组因而被会话中继设备110终止,并且传输确认发送器110-10开始向发送终端10发送传输确认分组。
利用上述根据本示例性实施例的会话中继设备,来自发送终端10的重传片断必然被发送到中继设备40。因此,该会话中继设备可以在发送终端10和接收终端20之间维持稳定的通信,而不会导致通信故障。
此外,利用根据本示例性实施例的会话中继设备,因为来自接收侧的传输确认分组在紧随会话已经开启之后直接被传送到发送终端,所以该会话中继设备可以避免由来自发送终端的分组的溢出导致的死锁。
(第二示例性实施例)
图14是示出根据本发明第二示例性实施例的会话中继设备的配置的框图。图15是示出包括图14所示的会话中继设备的网络配置的框图。
在图15所示的网络配置中,中继设备40被布置在发送终端10和接收终端20之间,并且会话中继设备120被布置在发送终端10和中继设备40之间。发送终端10、接收终端20和中继设备40类似于图9所示的网络配置的那些。像在第一示例性实施例的情况下一样,以下将描述会话中继设备120中继从发送终端10发送到接收终端20的数据的具体处理。为了简化起见,将从图示中省略开启会话所需的处理细节和配置细节,并且假定会话数据在一个方向流动。按以上针对图1所示的会话中继设备的操作所描述的方式来执行会话开启处理。
如图14所示,根据本示例性实施例的会话中继设备120包括用于被提供以从发送终端10输入的分组的分组输入部分120-1、用于执行会话中继处理以用于中继来自分组输入部分120-1的分组的会话中继部分120-3、用于向接收终端20输出来自会话中继部分120-3的分组的分组输出部分120-4、用于被提供以来自接收终端20侧的分组的分组输入部分120-5、用于判断来自分组输入部分120-5的分组是否为会话分组的会话分组判断部分120-6、用于接收作为会话的响应分组的传输确认分组的传输确认接收器120-7、用于保持会话的状态的会话状态保持器120-8、用于判断是传送传输确认分组还是终止传输确认分组并执行正常的会话中继处理的传输确认分组传送/终止判断部分120-9、用于向发送终端10发送传输确认分组的传输确认发送器120-10、用于向发送终端10输出分组的分组输出部分120-11、用于终止错误报告协议的错误报告协议终止器120-12、用于从错误报告协议终止器120-12取下错误报告协议的分段请求消息并将分段请求消息传递到发送终端10的分段请求消息传送部分120-13、以及用于存储由分段请求消息传送部分120-13指示的最大传输单元的最大传输单元存储部分120-14。
在会话中继设备120中,从发送终端10传递而来的分组通过分组输入部分120-1而被提供给会话中继部分120-3。当分组被从分组输入部分120-1输入到会话中继部分120-3时,会话中继部分120-3对该输入分组执行会话中继处理。
图16示出了会话中继部分120-3的会话中继处理器的配置。如图16所示,会话中继部分120-3包括MTU检验部分120-3-0、缓冲部分120-3-1、片断重传判断部分120-3-2、片断重传器120-3-3、正常会话中继部分120-3-4、以及SMSS传递序列号计算器120-3-5。
MTU检验部分120-3-0通过参考保存在会话状态保持器120-8中的关于通过分组输入部分120-1输入的分组的会话信息以及存储在最大传输单元存储部分120-14中的与目的地或更多信息相对应的MTU来更新SMSS。术语“目的地或更多信息”指的是目的地的信息或目的地和源的信息。在作为会话协议的代表的TCP中,目的地的信息包括表示(A-1)发送地址和(A-2)目的地端口的信息,并且源的信息包括表示(A-3)源地址和(A-4)源端口的信息。目的地或更多信息至少包括信息(A-1),并且可以是如下所示的9个组合中的任意一个。
(1)仅信息(A-1)
(2)信息(A-1)+(A-2)
(3)信息(A-1)+(A-2)+(A-3)
(4)信息(A-1)+(A-2)+(A-3)+(A-4)
(5)信息(A-1)+(A-3)
(7)信息(A-1)+(A-4)
(8)信息(A-1)+(A-2)+(A-4)
(9)信息(A-1)+(A-3)+(A-4)
缓冲部分120-3-1缓冲来自分组输入部分120-1的分组。片断重传判断部分120-3-2判断所缓冲的片断是否为具有变化了的片断大小的重传片断。片断重传器120-3-3重传具有变化了的片断大小的重传片断。正常会话中继部分120-3-4中继并非为具有变化了的片断大小的重传片断的片断。SMSS传递序列号计算器120-3-5计算并更新与SMSS相等的最小序列号。术语“与SMSS相等的最小序列号”指的是根据TCP的片断大小首次达到SMSS时的序列号。具体而言,如果SMSS为1400字节,并且以下片断被交换:
·序列号=1,片断大小=500
·序列号=101,片断大小=500
·序列号=601,片断大小=1000
·序列号=1601,片断大小=1400
·序列号=3001,片断大小=4401
则与SMSS相等的最小序列号为“序列号=1601”。
在这样构造的会话中继部分120-3中,片断重传判断部分120-3-2判断来自发送终端10的片断是否为具有变化了的片断大小的重传片断。如果该片断是具有变化了的大小的重传片断,则片断重传器120-3-3无条件地或在包括重传的任意定时处向接收终端20传递该重传片断。术语“具有变化了的片断大小的重传片断”指的是具有相同的起始序列号和不同的片断大小的重传片断。对于片断重传判断部分120-3-2的判断条件,可以添加重传片断尚未到达接收终端20的条件、或者重传片断大小为SMSS或更小的条件、或者以上两个条件都满足的条件。
在会话中继部分120-3中,SMSS传递序列号计算器120-3-5将传递片断大小等于SMSS的最小传输序列号(下文中,与最大传递片断相对应的最小序列号)存储在会话状态保持器120-8中。可以添加下述条件作为更新条件:所确认用于传输的最大片断大小小于已经登记在会话状态保持器120-8中的会话开启时协商的最大片断大小。
以下将简要描述存储其传递片断大小等于SMSS的最小传输序列号的操作序列。
如果中继设备40之前的路径的MTU为1000,并且发送终端10发送作为两个片断(即,960字节的片断以及540字节的片断)的1500字节的数据(40字节的头部大小),则发送终端10连续地传递包括960字节的片断的分组(序列号“1”)和包括540字节的片断的分组(序列号“2”)。当会话中继部分120-3接收到第一分组(序列号“1”)时,其缓冲960字节的片断,并将SMSS更新为960字节。然后,所缓冲的960字节的片断被向接收终端传递。在这个操作中,传递片断大小变为等于SMSS。
当会话中继部分120-3接收到第二分组(序列号“2”)时,其缓冲540字节的片断,但让SMSS维持为960。这是因为更新SMSS的定时与更新MTU的定时相同。所缓冲的540字节的片断被向接收终端20传递。
在接收以上两个分组的操作中,其传递片断大小等于SMSS的最小传输序列号被设置为第一分组(序列号“1”)被接收时的传输序列号“1”,并且传输序列号“1”被存储在会话状态保持器120-8中。
在图14所示的会话中继设备120中,从接收终端20或中继设备40传递而来的分组通过分组输入部分120-5而被提供给会话分组判断部分120-6。当分组被从分组输入部分120-5输入到会话分组判断部分120-6时,会话分组判断部分120-6判断该输入分组是否为登记在会话状态保持器120-8中的会话分组。如果输入分组是会话分组,则会话分组判断部分120-6将该输入分组(传输确认分组)传送到传输确认接收器120-7。如果输入分组不是会话分组,则会话分组判断部分120-6将该输入分组(错误报告协议)传送到错误报告协议终止器120-12。
当会话分组(传输确认分组)被从会话分组判断部分120-6提供给传输确认接收器120-7时,传输确认分组传送/终止判断部分120-9判断是将传输确认分组传送到分组输出部分120-11还是终止该传输确认分组并执行正常的会话中继处理。
图17示出了传输确认分组传送/终止判断部分120-9的中心部分。如图17所示,传输确认分组传送/终止判断部分120-9包括用于基于SMSS来确定传输确认分组的终止开始的传输确认分组终止判断部分120-9-1、用于传送传输确认分组的传输确认分组传送部分120-9-2、以及用于启动正常的会话中继处理和停止传输确认分组的传送的传输确认分组终止启动器120-9-3。
传输确认分组终止判断部分120-9-1判断所确认用于来自接收终端20的传输确认分组的传输的最大序列号N1是否等于或大于与最大传递片断相对应的最小序列号N2(是否N1≥N2)。因为紧随会话被开启之后最大序列号N1尚未达到最小序列号N2(N1<N2),所以传输确认分组传送部分120-9-2将来自传输确认接收器120-7的传输确认分组传送到分组输出部分120-11,并且传输确认发送器120-10并不传递该传输确认分组。在最大序列号N1已经达到最小序列号N2(N1≥N2)时,传输确认分组传送部分120-9-2不传送传输确认分组,并且传输确认分组终止启动器120-9-3终止来自接收侧的传输确认分组,从而致使传输确认发送器120-10开始发送传输确认分组。
当分组(错误报告协议)被从会话分组判断部分120-6提供给错误报告协议终止器120-12时,错误报告协议终止器120-12终止错误报告协议。然后,分段请求消息传送部分120-13从错误报告协议终止器120-12取下错误报告协议的分段请求消息,并将该分段请求消息传递到发送终端10,读取在所取下的分段请求消息中的“下一跳的最大传输单元”,并利用所读取的“下一跳的最大传输单元”来更新存储在最大传输单元存储部分120-14中的按照目的地或更多信息的最大传输单元信息。例如,如果根据TCP/IP,则“分段请求消息中的最大传输单元”指的是图4所示的“Next-HOP MTU”。“目的地或更多信息”是在图4所示的“Internet+64bits of Original Data Datagram”中的信息,并且指的是图5所示的至少包括“Destination Address”的“Source Address”、“Source Port”和“Destination Port”的信息。
会话中继部分120-3使用正在被中继的会话的“目的地或更多信息”作为索引(key)来搜索最大传输单元存储部分120-14,并判断在最大传输单元存储部分120-14中的最大传输单元是否已经被更新。如果最大传输单元已经被更新,则会话中继部分120-3基于更新后的最大传输单元来更新SMSS。具体而言,如果利用“Src Addr:192.168.11”、“Src Port:1234”、“Dst Addr:192.168.2.1”和“Dst Port:5001”来表示某个会话,并仅利用“Dst Addr”来表示目的地或更多的信息,则会话中继部分120-3使用“192.168.2.1”作为索引来搜索最大传输单元存储部分120-14以得到最大传输单元。如果最大传输单元存储部分120-14中的“192.168.2.1”的最大传输单元已经改变,则会话中继部分120-3基于变化后的信息来更新SMSS。会话中继部分120-3例如利用“最大传输单元”-“头部大小”来更新SMSS。会话中继部分120-3改变头部,并且如果在发送终端10侧的接收头部大小和在接收终端20侧的发送头部大小彼此不同,则“头部大小”被设置为接收头部大小和发送头部大小的最大值。
MTU和片断大小彼此相关以使得MTU≤“头部大小”+“片断大小”。头部大小用通信被开启时的头部大小来确定。如果整个路径的MTU具有1000字节,发送终端10侧的接收头部大小具有50字节,并且接收终端20侧的发送头部大小具有60字节,则来自发送终端10侧的SMSS具有940字节。如果来自发送终端10侧的片断具有950字节,则因为会话中继部分120-3改变了头部,所以向接收终端20侧的分组大小具有1010字节,这超过了整个路径的MTU。因为不能进行通信,所以SMSS没有被设置成950字节。相反,如果整个路径的MTU具有1000字节,发送终端10侧的接收头部大小具有60字节,并且接收终端20侧的发送头部大小具有50字节,则来自发送终端10侧的SMSS具有940字节。如果来自发送终端10侧的片断具有950字节,则分组大小具有1010字节,超过了整个路径的MTU。其结果是,因为分组没有到达中继设备,所以SMSS没有被设置为950字节。
以下将描述根据本示例性实施例的会话中继设备的具体操作细节。图18示出了根据本示例性实施例的会话中继设备关于从发送终端10到接收终端20的通信方向的操作。图19示出了MSS传递序列号计算处理的操作。图20示出了MTU检验处理的操作。图21示出了根据本示例性实施例的会话中继设备关于从接收终端20到发送终端10的通信方向的操作。
首先,以下将参考图18来描述在紧随会话开启处理结束之后在来自发送终端10的数据分组到达时的会话中继设备120的操作。
紧随会话被开启之后,传输确认分组传送部分120-9-2将传输确认分组从传输确认接收器120-7传送到分组输出部分120-11,并且传输确认发送器120-10不传递传输确认分组。此时,SMSS表示在会话被开启时进行了协商的最大片断大小。按照目的地信息的MTU表示正常分组的最大大小。
从发送终端10传递而来的分组通过分组输入部分120-1而被提供给会话中继部分120-3(步骤B101)。当分组被从发送终端10输入到会话中继部分120-3时,MTU检验部分120-3-0执行MTU检验处理(步骤B102),并且所提供的分组被缓冲部分120-3-1缓冲并保持(步骤B103)。
根据MTU检验部分120-3-0所执行的MTU检验处理,如图20所示,首先判断按照目的地信息的MTU是否已经被减小了(步骤B301)。因为此时MTU尚未被减小,所以步骤B301判定为“否”,并且MTU检验处理结束。
在来自发送终端10的分组被缓冲部分120-3-1缓冲并保持之后,片断重传判断部分120-3-2判断缓冲部分120-3-1所保持的片断是否为具有不同片断大小的重传片断(步骤B104)。此时,因为缓冲部分120-3-1所保持的片断不是具有不同片断大小的重传片断,所以步骤B104判断为“否”。
当步骤B104判定为“否”时,正常会话中继部分120-3-4执行正常的会话中继处(B109)。在正常的会话中继处理中,缓冲部分120-3-1所保持的分组片断被输出到分组输出部分120-4。然后,SMSS传递序列号计算器120-3-5对输出到分组输出部分120-4的分组执行SMSS传递序列号计算处理(步骤B107)。
在步骤B 107中的SMSS传递序列号计算处理中,如图19所示,首先判断传递片断大小是否等于SMSS(步骤B201)。因为此时的传递片断大小等于SMSS,所以步骤B201判定为“是”。当步骤B201判定为“是”时,随后判断序列号是否为与片断大小相对应的第一SMSS传递序列号(步骤B202)。因为此时序列号是第一SMSS传递序列号,所以步骤B202判定为“是”。当步骤B202判定为“是”时,利用传递序列号来更新该SMSS传递序列号(步骤B203)。
在步骤B107中的SMSS传递序列号计算处理已经被执行之后,分组输出部分120-4向接收终端20输出分组(步骤B108)。
从会话中继设备120向接收终端20传递的片断被中继设备40接收。如果所接收的片断的大小大于MTU,则中继设备40向发送终端10传递错误报告协议的分段请求消息。该错误报告协议的分段请求消息被会话中继设备120接收。
以下将参考图21来描述在接收到来自中继设备40的错误报告协议的分段请求消息时的会话中继设备120的操作。
来自接收终端20侧的分组被输入到分组输入部分120-5(步骤B401)。输入到分组输入部分120-5的分组被提供给会话分组判断部分120-6,会话分组判断部分120-6判断该输入分组是否为会话分组(步骤B402)。因为此时来自接收终端20侧的分组是从中继设备40向发送终端10传递的错误报告协议的分段请求消息,所以步骤B402判定为“否”。
当步骤B402判定为“否”时,会话分组判断部分120-6将来自分组输入部分120-5的输入分组传送到错误报告协议终止器120-12,错误报告协议终止器120-12判断输入分组是否为错误报告协议(步骤B403)。因为输入分组是从中继设备40向发送终端10传递的错误报告协议的分段请求消息,所以步骤B403判定为“是”。
当步骤B403判定为“是”时,错误报告协议终止器120-12将来自分组输入部分120-5的输入分组传送到分段请求消息传送部分120-13,分段请求消息传送部分120-13判断所提供的分组是否为分段请求消息(步骤B404)。因为此时提供给错误报告协议终止器120-12的分组是分段请求消息,所以步骤B404判定为“是”。
当步骤B404判定为“是”时,分段请求消息传送部分120-13从错误报告协议终止器120-12取下错误报告协议的分段请求消息,并基于在所取下的分段请求消息中的最大传输单元来更新存储在最大传输单元存储部分120-14中的按照目的地或更多信息的最大传输单元(步骤B410)。然后,分段请求消息传送部分120-13通过分组输出部分120-11将所取下的分段请求消息传递到发送终端10(步骤B405)。
在已经接收到来自会话中继设备120的分段请求消息之后,发送终端10根据所接收的分段请求消息来向接收终端20重传具有减小了的片断大小的分组。
以下将参考图18来描述在来自发送终端10的具有减小了的片断大小的分组到达时的会话中继设备120的操作。
来自发送终端10的分组通过分组输入部分120-1而被提供给会话中继部分120-3(步骤B101)。当分组被从发送终端10输入到会话中继部分120-3时,MTU检验部分120-3-0执行MTU检验处理(步骤B102)。并且所提供的分组被缓冲部分120-3-1缓冲并保持(步骤B103)。
根据MTU检验部分120-3-0所执行的MTU检验处理,如图20所示,首先判断按照目的地信息的MTU是否已经被减小(步骤B301)。因为此时MTU已经被减小,所以步骤B301判定为“是”。当步骤B301判定为“是”时,MTU检验部分120-3-0随后将SMSS设置为[“MTU”-“头部大小”]的值。之后,MTU检验处理结束。
在来自发送终端10的分组被缓冲部分120-3-1缓冲并保持之后,片断重传判断部分120-3-2判断缓冲部分120-3-1所保持的片断是否为具有不同片断大小的重传片断(步骤B104)。此时,因为缓冲部分120-3-1所保持的片断是具有不同片断大小的重传片断,所以步骤B104判定为“是”。
当步骤B104判定为“是”时,片断重传器120-3-3无条件地或在包括重传的任意定时处将缓冲部分120-3-1所保持的分组片断重传到分组输出部分120-4(步骤B106)。然后,SMSS传递序列号计算器120-3-5对输出到分组输出部分120-4的分组执行SMSS传递序列号计算处理(步骤B107)。
在步骤B107中的SMSS传递序列号计算处理中,如图19所示,首先判断传递片断大小是否等于SMSS(步骤B201)。因为此时传递片断大小等于SMSS,所以步骤B201判定为“是”。当步骤B201判定为“是”时,随后判断序列号是否为与片断大小相对应的第一SMSS传递序列号(步骤B202)。因为此时序列号是第一SMSS传递序列号,所以步骤B202判定为“是”。当步骤B202判定为“是”时,利用传递序列号来更新该SMSS传递序列号(步骤B203)。
在步骤B107中的SMSS传递序列号计算处理已经被执行之后,分组输出部分120-4向接收终端20输出分组(步骤B108)。
因为从分组输出部分120-4发送的重传片断的大小是根据中继设备40向源返回的分段请求消息的大小,所以该重传片断通过中继设备40并到达接收终端20。在接收到重传片断时,接收终端20向发送终端10发送作为针对其的响应分组的传输确认分组。该传输确认分组通过中继设备40被发送并被会话中继设备120接收。
以下将参考图21来描述在接收到来自接收终端20的传输确认分组时的会话中继设备120的操作。
来自接收终端20侧的分组被输入到分组输入部分120-5(步骤B401)。输入到分组输入部分120-5的分组被提供给会话分组判断部分120-6,会话分组判断部分120-6判断该输入分组是否为会话分组(步骤B402)。因为来自接收终端20侧的分组是从接收终端20向发送终端10发送的传输确认分组(会话分组),所以步骤B402判定为“是”。
当步骤B402判定为“是”时,会话分组判断部分120-6将来自分组输入部分120-5的输入分组传送到传输确认接收器120-7,传输确认接收器120-7执行传输确认接收处理(步骤B406)。然后,传输确认分组终止判断部分120-9-1判断是否满足“所确认用于传输的最大序列号”≥“与最大传递片断相对应的最小序列号”的条件(步骤B408)。因为此时满足该条件,所以传输确认分组传送部分120-9-2指示传输确认发送器120-10开始传输确认处理(步骤B409)。之后,所述传输确认分组没有被发送到发送终端10。结果,该传输确认分组被会话中继设备120终止。
利用上述根据第二示例性实施例的会话中继设备,与在第一示例性实施例的情况下一样,来自发送终端10的重传片断必然被发送到中继设备40。因此,该会话中继设备可以维持发送终端10与接收终端20之间的稳定通信,而不会导致通信故障。
此外,因为紧随会话被开启之后来自接收侧的传输确认分组直接被传送到发送终端,所以所述会话中继设备可以避免由来自发送终端的分组的溢出导致的死锁。
(第三示例性实施例)
图22是示出根据本发明第三示例性实施例的会话中继设备的配置的框图。图23是示出包括图22所示的会话中继设备的网络配置的框图。
在图22所示的网络配置中,中继设备40被布置在发送终端10和接收终端20之间,并且会话中继设备130被布置在发送终端10和中继设备40之间。发送终端10、接收终端20和中继设备40类似于上述根据第一和第二示例性实施例的网络配置的那些。以下将描述会话中继设备130中继从发送终端10发送到接收终端20的数据的具体处理。为了简化起见,将从图示中省略开启会话所需的处理细节和配置细节,并且假定会话数据在一个方向流动。按以上针对图1所示的会话中继设备的操作所描述的方式来执行会话开启处理。
如图22所示,根据本示例性实施例的会话中继设备130包括用于被提供以从发送终端10输入的分组的分组输入部分130-1、用于执行会话中继处理以用于中继来自分组输入部分130-1的分组的会话中继部分130-3、用于向接收终端20输出来自会话中继部分130-3的分组的分组输出部分130-4、用于被提供以来自接收终端20侧的分组的分组输入部分130-5、用于判断来自分组输入部分130-5的分组是否为会话分组的会话分组判断部分130-6、用于接收作为会话的响应分组的传输确认分组的传输确认接收器130-7、用于保持会话的状态的会话状态保持器130-8、用于判断是传送传输确认分组还是终止传输确认分组并执行正常的会话中继处理的传输确认分组传送/终止判断部分130-9、用于向发送终端10发送传输确认分组的传输确认发送器130-10、用于向发送终端10输出分组的分组输出部分130-11、用于终止错误报告协议的错误报告协议终止器130-12、用于从错误报告协议终止器130-12取下错误报告协议的分段请求消息并将分段请求消息传递到发送终端10的分段请求消息传送部分130-13、以及用于存储由分段请求消息传送部分130-13指示的最大传输单元的最大传输单元存储部分130-14。
除了会话中继部分130-3和分段请求消息传送部分130-13之外,根据本示例性实施例的会话中继设备130基本与第二示例性实施例相同。
图24示出了会话中继部分130-3的配置。如图24所示,会话中继部分130-3包括用于缓冲来自分组输入部分130-1的分组的缓冲部分130-3-1、用于判断缓冲部分130-3-1所缓冲的片断是否为具有变化了的片断大小的重传片断的片断重传判断部分130-3-2、用于重传具有变化了的大小的重传片断的片断重传器130-3-3、用于中继并非为具有变化了的片断大小的重传片断的片断的正常会话中继部分130-3-4、以及用于计算和更新等于SMSS的最小序列号的SMSS传递序列号计算处理130-3-5。
在会话中继部分130-3中,片断重传判断部分130-3-2判断来自发送终端10的片断是否为具有变化了的片断大小的重传片断。如果该片断是具有变化了的片断大小的重传片断,则片断重传器130-3-4无条件地或在包括重传的任意定时处向接收终端20重传所述重传片断的分组。术语“具有变化了的片断大小的重传片断”指的是具有相同的起始序列号和不同的片断大小的重传片断。对于片断重传判断部分130-3-2的判断条件,可以添加重传片断尚未到达接收终端20的条件、或者重传片断大小是SMSS或更小的条件、或者以上两个条件都满足的条件。
在会话中继部分130-3中,SMSS传递序列号计算器130-3-5将传递片断大小等于SMSS的最小传输序列号(下文中,与最大传递片断相对应的最小序列号)存储在会话状态保持器130-8中。可以添加下述条件作为更新条件:所确认用于传输的最大片断大小小于登记在会话状态保持器130-8中的在会话被开启时进行了协商的最大片断大小。
图25示出了分段请求消息传送部分130-13的配置。分段请求消息传送部分130-13包括分段请求消息判断部分130-13-1、会话搜索部分130-13-2、SMSS更新器130-13-3、和指示MTU更新器130-13-4。指示MTU更新器130-13-4可以免除。
分段请求消息判断部分130-13-1判断来自错误报告协议终止器130-12的错误报告协议是否为分段请求消息。如果该错误报告协议是分段请求消息,则会话搜索部分130-13-2基于在该消息的错误分组头部中的包括端口号在内的目的地/源信息来搜索会话状态保持器130-8中的信息。为了搜索会话信息,可以进行检验以查看是否满足“所确认用于来自接收终端20的传输确认分组的传输的最大序列号”≤“错误分组头部中的传输序列号”≤“所发送的传输序列号的最大值”的条件。
SMSS更新器130-13-3读取分段请求消息中的“下一跳的最大传输单元”,并通过将正在被中继的会话的SMSS设置为值[“下一跳的最大传输单元”-“头部大小”]来更新会话状态保持器130-8所保持的SMSS。如果发送终端10侧和接收终端20侧的头部大小彼此不同,则这个头部大小用这两个头部大小的最大值来表示。“最大传输单元”被存储在最大传输单元存储部分130-14中。如果指示MTU更新器130-13-4被免除,则SMSS更新器130-13-3将分段请求消息输出到分组输出部分130-11。
如果发送终端10侧和接收终端20侧的头部大小彼此不同,则指示MTU更新器130-13-4指示通过从将被指示给发送终端的分段请求消息中的最大传输单元减去头部大小而产生的值。
图26示出了传输确认分组传送/终止判断部分130-9的中心部分。如图26所示,传输确认分组传送/终止判断部分130-9包括用于基于SMSS来确定传输确认分组的终止开始的传输确认分组终止判断部分130-9-1、用于传送传输确认分组的传输确认分组传送部分130-9-2、以及用于启动正常的会话中继处理和停止传输确认分组的传送的传输确认分组终止启动器130-9-3。
传输确认分组终止判断部分130-9-1判断所确认用于来自接收终端20的传输确认分组的传输的最大序列号N1是否达到与最大传递片断相对应的最小序列号。紧随会话被开启之后,传输确认分组传送部分130-9-2将来自传输确认接收器130-7的传输确认分组传送到分组输出部分130-11,并且传输确认发送器130-10并不传递该传输确认分组。在所确认用于传输的最大序列号已经达到与最大传递片断相对应的最小序列号之后,传输确认分组传送部分130-9-2不传送传输确认分组,并且传输确认分组终止启动器130-9-3终止来自发送侧的传输确认分组,从而致使传输确认发送器130-10开始发送传输确认分组。
以下将描述根据本示例性实施例的会话中继设备的具体操作细节。图27示出了根据本示例性实施例的会话中继设备关于从发送终端10到接收终端20的通信方向的操作。图28示出了MSS传递序列号计算处理的操作。图29示出了根据本示例性实施例的会话中继设备关于从接收终端20到发送终端10的通信方向的操作。
首先,将参考图27来描述紧随会话开启处理结束之后在来自发送终端10的数据分组到达时的会话中继设备130的操作。
紧随会话被开启之后,传输确认分组传送部分130-9-2将来自传输确认接收器130-7的传输确认分组传送到分组输出部分130-11,并且传输确认发送器130-10不传递传输确认分组。此时,SMSS表示在会话被开启时所协商的最大片断大小。
来自发送终端10的分组通过分组输入部分130-1而被提供给会话中继部分130-3(步骤C101)。当分组被从发送终端10输入到会话中继部分130-3时,所提供的分组被缓冲部分130-3-1缓冲并保持(步骤C102)。
在来自发送终端10的分组被缓冲部分130-3-1缓冲并保持之后,片断重传判断部分130-3-2判断缓冲部分130-3-1所保持的片断是否为具有不同片断大小的重传片断(步骤C103)。此时,缓冲部分130-3-1所保持的片断不是具有不同片断大小的重传片断,所以步骤C103判定为“否”。
当步骤C103判定为“否”时,正常会话中继部分130-3-4执行正常的会话中继处(C107)。在正常的会话中继处理中,因为缓冲部分130-3-1所保持的分组片断是第一片断,所以所保持的分组片断被输出到分组输出部分130-4。然后,SMSS传递序列号计算器130-3-5对输出到分组输出部分130-4的分组执行SMSS传递序列号计算处理(步骤C105)。
在步骤C105的SMSS传递序列号计算处理中,如图28所示,首先判断传递片断大小是否等于SMSS(步骤C201)。因为此时传递片断大小等于SMSS,所以步骤C201判定为“是”。当步骤C201判定为“是”时,随后判断序列号是否为与片断大小相对应的第一SMSS传递序列号(步骤C202)。因为此时序列号是第一SMSS传递序列号,所以步骤C202判定为“是”。当步骤C202判定为“是”时,利用传递序列号来更新该SMSS传递序列号(步骤C203)。
在步骤C105的SMSS传递序列号计算处理已经被执行之后,分组输出部分130-4向接收终端20输出分组(步骤C106)。
从会话中继设备130向接收终端20传递的片断被中继设备40接收。如果所接收的片断的大小大于MTU,则中继设备40向发送终端10传递错误报告协议的分段请求消息。该错误报告协议的分段请求消息被会话中继设备130接收。
以下将参考图29来描述在接收到来自中继设备40的错误报告协议的分段请求消息时的会话中继设备130的操作。
来自接收终端20侧的分组被输入到分组输入部分130-5(步骤C401)。输入到分组输入部分130-5的分组被提供给会话分组判断部分130-6,会话分组判断部分130-6判断该输入分组是否为会话分组(步骤C402)。因为此时来自接收终端20侧的分组是从中继设备40向发送终端10传递的错误报告协议的分段请求消息,所以步骤C402判定为“否”。
当步骤C402判定为“否”时,会话分组判断部分130-6将来自分组输入部分130-5的输入分组传送到错误报告协议终止器130-12,错误报告协议终止器130-12判断该输入分组是否为错误报告协议(步骤C403)。因为输入分组是从中继设备40向发送终端10传递的错误报告协议的分段请求消息,所以步骤C403判定为“是”。
当步骤C403判定为“是”时,错误报告协议终止器130-12将来自分组输入部分130-5的输入分组传送到分段请求消息传送部分130-13,在分段请求消息传送部分130-13中,分段请求消息判断部分130-13-1判断提供给错误报告协议终止器130-12的分组是否为分段请求消息(步骤C404)。因为此时提供给错误报告协议终止器130-12的分组是分段请求消息,所以步骤C404判定为“是”。
当步骤C404判定为“是”时,分段请求消息传送部分130-13从错误报告协议终止器130-12取下错误报告协议的分段请求消息,并基于在所取下的分段请求消息中的最大传输单元和头部大小信息来更新保持在会话状态保持器130-8中的按照会话的SMSS(步骤C405)。SMSS被用值[“最大传输单元”-“头部大小”]来更新。在SMSS已经被更新之后,分段请求消息传送部分130-13通过分组输出部分130-11将所取下的分段请求消息传递到发送终端10(步骤C406)。
在已经从会话中继设备130接收到分段请求消息之后,发送终端10根据所接收的分段请求消息向接收终端20重传具有减小了的片断大小的分组。
以下将参考图27来描述在来自发送终端10的具有减小了的片断大小的分组到达时的会话中继设备130的操作。
从发送终端10传递而来的分组被从分组输入部分130-1提供给会话中继部分130-3(步骤C101)。在会话中继部分130-3中,从发送终端10提供的分组被缓冲部分130-3-1缓冲并保持(步骤C102)。
在来自发送终端10的分组被缓冲部分130-3-1缓冲并保持之后,片断重传判断部分130-3-2判断缓冲部分130-3-1所保持的片断是否为具有不同片断大小的重传片断(步骤C103)。此时,因为缓冲部分130-3-1所保持的片断是具有不同片断大小的重传片断,所以步骤C103判定为“是”。
当步骤C103判定为“是”时,片断重传器130-3-3无条件地或者在包括重传的任意定时处将缓冲部分130-3-1所保持的分组片断重传到分组输出部分130-4(步骤C104)。然后,SMSS传递序列号计算器130-3-5对输出到分组输出部分130-4的分组执行SMSS传递序列号计算处理(步骤C105)。
在步骤C105的SMSS传递序列号计算处理中,如图28所示,首先判断传递片断大小是否等于SMSS(步骤C201)。因为此时传递片断大小等于SMSS,所以步骤C201判定为“是”。当步骤C201判定为“是”时,随后判断序列号是否为与片断大小相对应的第一SMSS传递序列号(步骤C202)。因为此时序列号是第一SMSS传递序列号,所以步骤C202判定为“是”。当步骤C202判定为“是”时,利用传递序列号来更新该SMSS传递序列号(步骤C203)。
在步骤C105的SMSS传递序列号计算处理已经被执行之后,分组输出部分130-4向接收终端20输出分组(步骤C106)。
因为从分组输出部分130-4发送的重传片断的大小是根据中继设备40向源返回的分段请求消息的大小,所以该重传片断通过中继设备40并到达接收终端20。在接收到该重传片断时,接收终端20向发送终端10发送作为针对其的响应分组的传输确认分组。传输确认分组通过中继设备40而被传送并被会话中继设备130接收。
以下将参考图29来描述在接收到来自接收终端20的传输确认分组时的会话中继设备130的操作。
来自接收终端20侧的分组被输入到分组输入部分130-5(步骤C401)。输入到分组输入部分130-5的分组被提供给会话分组判断部分130-6,会话分组判断部分130-6判断该输入分组是否为会话分组(步骤C402)。因为此时来自接收终端20侧的分组是从接收终端20向发送终端10发送的传输确认分组(会话分组),所以步骤C402判定为“是”。
当步骤C402判定为“是”时,会话分组判断部分130-6将来自分组输入部分130-5的输入分组传送到传输确认接收器130-7,传输确认接收器130-7执行传输确认接收处理(步骤C407)。
然后,传输确认分组终止判断部分130-9-1判断是否满足“所确认用于传输的最大序列号”≥“与最大传递片断相对应的最小序列号”的条件(步骤C408)。因为此时满足该条件,所以传输确认分组传送部分130-9-2指示传输确认发送器130-10开始传输确认处理(步骤C409)。之后,所述来自接收侧的传输确认分组不被发送到发送终端10。结果,该来自接收侧的传输确认分组被会话中继设备130终止,并且传输确认发送器130-10开始发送传输确认分组。
利用上述根据第三示例性实施例的会话中继设备,与在第一示例性实施例的情况下一样,来自发送终端10的重传片断必然被发送到中继设备40。因此,该会话中继设备可以维持发送终端10与接收终端20之间的稳定通信,而不会导致通信故障。
此外,因为紧随会话被开启之后来自接收侧的传输确认分组直接被传送到发送终端,所以所述会话中继设备可以避免由来自发送终端的分组的溢出导致的死锁。
上述第一到第三示例性实施例的配置细节和操作细节仅仅以示例的方式被给出,并且可以按需进行改变。例如,根据第一示例性实施例的传输确认分组传送/终止判断部分可以按与根据第二和第二示例性实施例的传输确认分组传送/终止判断部分相同的方式来确定传输确认分组的传送和终止。反过来,根据第二和第三实施例的传输确认分组传送/终止判断部分可以按与根据第一示例性实施例的传输确认分组传送/终止判断部分相同的方式来确定传输确认分组的传送和终止。
在第二和第三示例性实施例中,会话中继部分可以检验片断大小是否大于SMSS,并且如果片断大小大于SMSS则可以丢弃该片断。图30示出了用于丢弃片断的处理,并且图31示出了用于将片断发送到发送终端而没有丢弃它的处理。
根据用于丢弃片断的处理,如图30所示,当发送终端10向接收终端20发送具有1500字节的分组大小的数据时,该数据通过会话中继设备130而传递到中继设备40。因为所接收的片断的大小大于MTU(=500),所以中继设备40向发送终端10传递错误报告协议的分段请求消息(包括表示下一跳的最大传输单元为500的信息)。该错误报告协议的分段请求消息被会话中继设备130接收。在会话中继设备130已经接收到该分段请求消息之后,如果其接收到从发送终端10向接收终端20发送的具有1500字节的分组大小的数据,则会话中继设备130丢弃所接收的数据。因此,中继设备40仅向发送终端10发送一次错误报告协议的分段请求消息。
根据向发送终端发送片断而没有将其丢弃的处理,如图31所示,在会话中继设备130已经接收到分段请求消息之后,如果其接收到从发送终端10向接收终端20发送的具有1500字节的分组大小的数据,则为了将所接收的数据传递到接收终端20侧的网络,错误报告协议的分段请求消息被从中继设备40向发送终端10发送多次。因此,分段请求消息被无益地发送。
在第一到第三示例性实施例中,来自接收终端侧的错误报告协议被终止。但是,在网络层或更低层被中继的分组中取下来自接收终端侧的错误报告协议的分段请求消息不会导致任何问题。
虽然在第一到第三示例性实施例中已经描述了单向通信的示例,但是双向通信不会导致任何为问题。
在第一到第三示例性实施例中,已经描述了包括一个发送终端、一个接收终端、一个中继设备、和一个会话中继终端设备的网络配置。但是,发送终端、接收终端、中继设备、和会话中继终端设备的数目并不限于各自一个。
以上已经例如针对会话中继设备描述了本发明的特征。但是,本发明也适用于其它通信系统,只要它们具有本发明的特征即可。例如,通过根据TCP来建立会话、利用ICMP目的地不可达消息的分段请求来取代用于报告错误报告协议的ICMP和分段请求消息、利用根据TCP的ACK分组来取代传输确认分组、利用根据TCP的序列号来取代传输序列号、利用根据IPTCP的头部大小的总和来取代头部大小、以及利用根据IP的Don’tFragment标记来取代片断分割禁止标记,可以在TCP/IP上实现本发明。
除了TCP中继设备之外,本发明还适用于诸如代理或加密设备之类的会话中继设备。
Claims (14)
1.一种会话中继设备,适合布置在用于发送和接收作为分组的数据的终端之间,所述分组被指派了表示将被发送的片断的顺序的序列号,所述会话中继设备用于中继在所述会话中继设备和发送侧的终端之间开启的第一会话与在所述会话中继设备和接收侧的终端之间开启的第二会话之间作为分组来传输的数据,所述会话中继设备包括:
会话状态保持器,用于保持所述第一会话和第二会话的信息;
片断重传判断部分,用于当分组通过所述第一会话被接收时,通过参考所述会话状态保持器所保持的会话信息来判断所接收的分组的片断是否为下述重传片断,即,序列号与已经通过所述第一片断接收的分组的片断相同并且片断大小与所述已经通过所述第一片断接收的分组的片断不同的重传片断;以及
片断重传器,用于如果所述片断重传判断部分判定所接收的分组的片断是所述重传片断,则通过所述第二会话发送所述重传片断。
2.如权利要求1所述的会话中继设备,还包括:
会话最大片断大小更新器,用于如果所述片断重传判断部分判定所述所接收的分组的片断是所述重传片断,则利用所述重传片断的片断大小来更新所述第二会话的最大片断大小。
3.如权利要求1所述的会话中继设备,还包括:
分段请求消息传送部分,用于当指示出向所述接收侧的终端中继的所述分组的数据的片断将被分割的分段请求消息通过所述第二会话而被接收时,通过所述第一会话向所述发送侧的终端发送所接收的分段请求消息,并且读取在所接收的分段请求消息中包括的下一跳的最大传输单元;
最大传输单元存储部分,用于存储由所述分段请求消息传送部分读取的下一跳的最大传输单元;以及
最大传输单元检验部分,用于当存储在所述最大传输单元存储部分中的最大传输单元被更新为小于所述最大传输单元的最大传输单元时,基于所述更新后的最大传输单元来更新所述第二会话的最大片断大小。
4.如权利要求1所述的会话中继设备,还包括:
分段请求消息传送部分,用于当指示出向所述接收侧的终端中继的所述分组的数据的片断将被分割的分段请求消息通过所述第二会话被接收时,通过所述第一会话向所述发送侧的终端发送所接收的分段请求消息,读取在所接收的分段请求消息中包括的下一跳的最大传输单元,并且基于所读取的最大传输单元来更新所述第二会话的最大片断大小。
5.如权利要求1到4中的任意一项所述的会话中继设备,还包括:
传输确认接收器,用于通过所述第二会话接收传输确认分组,该传输确认分组是对所述第一会话的起始分组的响应,向所述接收侧的终端中继所述第一会话的起始分组;
传输确认分组传送/终止判断部分,用于判断是传送还是终止由所述传输确认接收器接收的所述传输确认分组;以及
传输确认发送器,用于如果所述传输确认分组传送/终止判断部分判定要终止所述传输确认分组,则生成针对所述起始分组的新的传输确认分组并将该新的传输确认分组发送到所述发送侧的终端;
其中,所述会话状态保持器保持所述起始分组的传输序列号和从所述接收侧的终端接收的传输确认分组的传输确认序列号作为所述会话状态信息,并且
如果用所述传输序列号和所述传输确认序列号之间的差值表示的所确认用于传输的最大片断大小小于作为所述第二会话的最大片断大小的倍数而给出的预设值,则所述传输确认分组传送/终止判断部分通过所述第一会话向所述发送侧的终端传送所述传输确认分组,并且如果所述序列号之间的所述差值达到了所述预设值,则所述传输确认分组传送/终止判断部分终止所述传输确认分组。
6.如权利要求1到4中的任意一项所述的会话中继设备,还包括:
传输确认接收器,用于通过所述第二会话接收传输确认分组,该传输确认分组是对所述第一会话的起始分组的响应,向所述接收侧的终端中继所述第一会话的起始分组;
传输确认分组传送/终止判断部分,用于判断是传送还是终止由所述传输确认接收器接收的所述传输确认分组;
传输确认发送器,用于如果所述传输确认分组传送/终止判断部分判定要终止所述传输确认分组,则生成针对所述起始分组的新的传输确认分组并将该新的传输确认分组发送到所述发送侧的终端;以及
最小序列号计算器,用于当向所述接收侧的终端中继的分组的传递片断大小达到所述第二会话的最大片断大小时计算序列号;
其中,所述会话状态保持器保持所述起始分组的传输序列号和从所述接收侧的终端接收的传输确认分组的传输确认序列号作为所述会话状态信息,并且
如果用所述传输序列号和所述传输确认序列号之间的差值表示的所确认用于传输的最大片断大小小于由所述最小序列号计算器计算得到的所述序列号,则所述传输确认分组传送/终止判断部分通过所述第一会话向所述发送侧的终端传送所述传输确认分组,并且如果所述所确认用于传输的最大片断大小达到了所述计算得到的序列号,则所述传输确认分组传送/终止判断部分终止所述传输确认分组。
7.如权利要求1到6中的任意一项所述的会话中继设备,其中,所述第一会话和第二会话是根据TCP的。
8.如权利要求3或4所述的会话中继设备,其中,所述分段请求消息包括用于指示错误的ICMP消息。
9.如权利要求5或6所述的会话中继设备,其中,所述传输确认分组包括根据TCP的ACK分组。
10.一种会话中继方法,该会话中继方法将由适合布置在用于发送和接收作为分组的数据的终端之间的会话中继设备执行,所述分组被指派了表示将被发送的片断的顺序的序列号,所述会话中继方法用于中继在所述会话中继设备和发送侧的终端之间开启的第一会话与在所述会话中继设备和接收侧的终端之间开启的第二会话之间作为分组来传输的数据,所述会话中继方法包括:
在会话状态保持器中保持所述第一会话和第二会话的信息的第一步骤;
当分组通过所述第一会话被接收时,通过参考所述会话状态保持器所保持的会话信息来判断所接收的分组的片断是否为下述重传片断的第二步骤,即序列号与已经通过所述第一片断接收的分组的片断相同并且片断大小与所述已经通过所述第一片断接收的分组的片断不同的重传片断;以及
如果在所述第二步骤判定所接收的分组的片断是所述重传片断,则通过所述第二会话发送所述重传片断的第三步骤。
11.如权利要求10所述的会话中继方法,其中,所述第三步骤包括以下步骤:如果在所述第二步骤中判定所接收的分组的片断是所述重传片断,则利用所述重传片断的片断大小来更新所述第二会话的最大片断大小。
12.如权利要求10所述的会话中继方法,其中,所述第三步骤包括以下步骤:当指示出向所述接收侧的终端中继的所述分组的数据的片断将被分割的分段请求消息通过所述第二会话被接收时,读取在所接收的分段请求消息中包括的下一跳的最大传输单元,并基于所读取的最大传输单元来更新所述第二会话的最大片断大小。
13.如权利要求10到12中的任意一项所述的会话中继方法,还包括:
通过所述第二会话接收传输确认分组的第四步骤,该传输确认分组是对所述第一会话的起始分组的响应,向所述接收侧的终端中继所述第一会话的起始分组;
从所述会话状态保持器所保持的会话状态信息中获取所述起始分组的传输序列号和从所述接收侧的终端接收的传输确认分组的传输确认序列号,并确定所获取的序列号之间的差值的第五步骤;以及
第六步骤:如果用在所述第五步骤中确定的所述序列号之间的差值表示的所确认用于传输的最大片断大小小于作为所述第二会话的最大片断大小的倍数而给出的预设值,则向所述发送侧的终端传送在所述第四步骤中接收的所述传输确认分组,并且如果所确认用于传输的最大片断大小等于或大于所述预设值,则终止在所述第四步骤中接收的所述传输确认分组,生成针对所述起始分组的新的传输确认分组,并将该新的传输确认分组发送到所述发送侧的终端。
14.如权利要求10到12中的任意一项所述的会话中继方法,还包括:
通过所述第二会话接收传输确认分组的第四步骤,该传输确认分组是对所述第一会话的起始分组的响应,向所述接收侧的终端中继所述第一会话的起始分组;
从所述会话状态保持器所保持的会话状态信息中获取所述起始分组的传输序列号和从所述接收侧的终端接收的传输确认分组的传输确认序列号,并确定所获取的序列号之间的差值的第五步骤;
当向所述接收侧的终端中继的分组的传递片断大小达到了所述第二会话的最大片断大小时计算序列号的第六步骤;以及
第七步骤:如果用在所述第五步骤中确定的所述序列号之间的差值表示的所确认用于传输的最大片断大小小于在所述第六步骤中计算得到的序列号,则向所述发送侧的终端传送在所述第四步骤中接收的所述传输确认分组,并且如果所述所确认用于传输的最大片断大小等于或大于所述计算得到的序列号,则终止在所述第四步骤中接收的所述传输确认分组,生成针对所述起始分组的新的传输确认分组,并将该新的传输确认分组发送到所述发送侧的终端。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005322552 | 2005-11-07 | ||
JP322552/2005 | 2005-11-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101305583A true CN101305583A (zh) | 2008-11-12 |
Family
ID=38005916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680041500.3A Pending CN101305583A (zh) | 2005-11-07 | 2006-11-02 | 会话中继设备和会话中继方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8085669B2 (zh) |
JP (1) | JPWO2007052764A1 (zh) |
CN (1) | CN101305583A (zh) |
WO (1) | WO2007052764A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8009696B2 (en) * | 2004-08-06 | 2011-08-30 | Ipeak Networks Incorporated | System and method for achieving accelerated throughput |
US7953114B2 (en) * | 2004-08-06 | 2011-05-31 | Ipeak Networks Incorporated | System and method for achieving accelerated throughput |
US9647952B2 (en) | 2004-08-06 | 2017-05-09 | LiveQoS Inc. | Network quality as a service |
US9189307B2 (en) | 2004-08-06 | 2015-11-17 | LiveQoS Inc. | Method of improving the performance of an access network for coupling user devices to an application server |
GB2452991B (en) * | 2007-09-24 | 2012-12-26 | Plextek Ltd | Data ackmowledgement apparatus and method1 |
JP5241247B2 (ja) * | 2008-01-17 | 2013-07-17 | キヤノン株式会社 | 中継装置および情報通知方法、プログラム |
US8886793B2 (en) * | 2010-12-28 | 2014-11-11 | Sonus Networks, Inc. | Methods and systems for adjusting a traffic rate for a MSRP session |
US10951743B2 (en) | 2011-02-04 | 2021-03-16 | Adaptiv Networks Inc. | Methods for achieving target loss ratio |
US9590913B2 (en) | 2011-02-07 | 2017-03-07 | LiveQoS Inc. | System and method for reducing bandwidth usage of a network |
US8717900B2 (en) | 2011-02-07 | 2014-05-06 | LivQoS Inc. | Mechanisms to improve the transmission control protocol performance in wireless networks |
US20120287814A1 (en) * | 2011-05-12 | 2012-11-15 | Fluke Corporation | Method and apparatus to determine the amount of data outstanding throughout the life of a tcp flow (socket connection) |
US8831008B1 (en) * | 2013-04-19 | 2014-09-09 | Cubic Corporation | Reliable message delivery in mesh networks |
US9240939B2 (en) * | 2013-10-22 | 2016-01-19 | Cisco Technology, Inc. | Detecting packet loss and retransmission in a network environment |
US10122642B2 (en) * | 2016-09-29 | 2018-11-06 | Intel IP Corporation | Managing a data stream in a multicore system |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341129B1 (en) | 1998-04-03 | 2002-01-22 | Alteon Networks, Inc. | TCP resegmentation |
JP3602972B2 (ja) * | 1998-07-28 | 2004-12-15 | 富士通株式会社 | 通信性能測定装置及びその測定方法 |
US6327626B1 (en) | 1998-09-15 | 2001-12-04 | Alteon Networks, Inc. | Method and apparatus for MSS spoofing |
JP3511969B2 (ja) | 2000-03-07 | 2004-03-29 | 日本電気株式会社 | Ipネットワークにおけるpmtu見積もり値検出の方法およびそのシステム |
GB0018119D0 (en) * | 2000-07-24 | 2000-09-13 | Nokia Networks Oy | Flow control |
JP2002290459A (ja) | 2001-03-27 | 2002-10-04 | Nec Corp | パケット転送装置および方法 |
JP2003018216A (ja) | 2001-07-04 | 2003-01-17 | Toyo Commun Equip Co Ltd | Ipパケット送信手順 |
JP2003244194A (ja) | 2002-02-18 | 2003-08-29 | Mitsubishi Electric Corp | データ暗号装置及び暗号通信処理方法及びデータ中継装置 |
KR100453056B1 (ko) * | 2002-03-29 | 2004-10-15 | 삼성전자주식회사 | 동적 ip 네트워크 상에서의 pmtu 변경 방법 및 그장치 |
JP4043997B2 (ja) | 2003-05-21 | 2008-02-06 | 三菱電機インフォメーションシステムズ株式会社 | 暗号装置及びプログラム |
JP4251044B2 (ja) | 2003-09-05 | 2009-04-08 | 日本電気株式会社 | セッション中継装置、セッション中継方法 |
JP4561980B2 (ja) * | 2004-11-08 | 2010-10-13 | 日本電気株式会社 | セッション中継装置およびセッション中継方法 |
US8069250B2 (en) * | 2005-04-28 | 2011-11-29 | Vmware, Inc. | One-way proxy system |
-
2006
- 2006-11-02 CN CN200680041500.3A patent/CN101305583A/zh active Pending
- 2006-11-02 JP JP2007542814A patent/JPWO2007052764A1/ja active Pending
- 2006-11-02 WO PCT/JP2006/322007 patent/WO2007052764A1/ja active Application Filing
- 2006-11-02 US US12/092,037 patent/US8085669B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPWO2007052764A1 (ja) | 2009-04-30 |
WO2007052764A1 (ja) | 2007-05-10 |
US20090268742A1 (en) | 2009-10-29 |
US8085669B2 (en) | 2011-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101305583A (zh) | 会话中继设备和会话中继方法 | |
US10237153B2 (en) | Packet retransmission method and apparatus | |
CN100448224C (zh) | 探索路径最大传输单元的方法和设备 | |
US7042907B2 (en) | Packet transfer apparatus and method | |
JP4829896B2 (ja) | データ破壊を避けることによる改善されたネットワーク性能のための方法、システム及び物品 | |
US7471681B2 (en) | Determining network path transmission unit | |
KR100785293B1 (ko) | 다중 tcp확인응답을 이용한 tcp 혼잡 제어 시스템및 그 방법 | |
US7474619B2 (en) | Method and apparatus for providing fragmentation at a transport level along a transmission path | |
EP2273738B1 (en) | Discovering path maximum transmission unit size | |
WO2014037760A1 (zh) | 增加数据流传输的方法和系统 | |
US7480301B2 (en) | Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement | |
CN109218222A (zh) | 一种实现发送端调速的方法、装置和系统 | |
US6856599B1 (en) | System and method of reducing retransmission of messages in a TCP/IP environment | |
WO2018233376A1 (zh) | 传输报文的方法、代理服务器和计算机可读存储介质 | |
US6826153B1 (en) | System and method of increasing the message throughput in a radio network | |
JP2005520374A (ja) | Tcp/ipに対する変更 | |
EP2031806A1 (en) | Method and system for managing transmission of fragmented data packets | |
US6826152B1 (en) | System and method of conserving bandwidth in the transmission of message packets | |
US11470502B2 (en) | Congestion notification by data packet from intermediate node | |
CN107959947B (zh) | 一种数据传输方法、装置和基站 | |
EP1505759A2 (en) | Method and device for transmitting/receiving data using acknowledged transport layer protocols | |
US20140369189A1 (en) | Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent | |
JP2006279867A (ja) | Adsl通信装置、プログラム及び方法 | |
JP2007174293A (ja) | 通信装置 | |
Patel et al. | Reliable Connectionless Transport Protocol for Fast Message Delivery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20081112 |