会话中继设备和会话中继方法

文档序号:7640730阅读:181来源:国知局
专利名称:会话中继设备和会话中继方法
技术领域
本发明涉及适于布置在用于发送以及用于接收作为分组的数据的终端 之间的、用于中继在会话中继设备和发送侧的终端之间开启的第一会话与 在会话中继设备和接收侧的终端之间开启的第二会话之间作为分组来传送 的数据的会话中继设备,其中,所述分组被指派了表示将被发送的片断的 顺序的序列号,该会话中继设备包括用于保持第一和第二会话的信息的会话状态保持器,其中,当通过第一会话接收到分组时,会话中继设备通过 参考由会话状态保持器保持的会话信息来判断所接收的分组的片断是否为 序列号与已经通过第一片断接收的分组的片断相同且片断大小与该已经通
过第一片断接收的分组的片断不同的重传片断(retransmitted segment), 并且,如果判定所接收的分组的片断是重传片断,则会话中继设备改变第 二会话的最大片断大小,并通过第二会话来发送该重传片断。
发送侧的终端可以是发送终端、路由器、或者会话中继设备。接收侧 的终端可以是接收终端、路由器、或者会话中继设备。会话状态保持器能 够分别保持在互连发送终端和接收终端的多个网络中的会话信息。第二会 话的最大片断大小可以利用重传片断的片断大小来更新,或者可以基于在 分段请求消息中的"下一跳的最大传输单元"来更新。
以下将针对第一示例性实施例以及第二和第三示例性实施例来描述本 发明的具体配置细节,其中,在第一示例性实施例中,利用重传片断的片 断大小来更新会话的最大片断大小,并且在第二和第三实施例中,基于分 段请求信息中的"下一跳的最大传输单元"来更新会话的最大片断大小。 (第一示例性实施例)
图8是示出根据本发明第一示例性实施例的会话中继设备的配置的框 图。图9是示出包括图8所示的会话中继设备的网络配置的框图。
在图9所示的网络配置中,中继设备40被布置在发送终端10和接收 终端20之间,并且会话中继设备IIQ被布置在发送终端IO和中继设备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中,从发送终端IO传递而来的分组通 过分组输入部分110-1而被提供给会话中继部分110-3。当分组被从分组输 入部分110-1输入到会话中继部分110-3时,会话中继部分110-3对该输入 分组执行会话中继处理。
图IO示出了会话中继部分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中,如果所缓冲的片断是具有变化了的片断大 小的重传片断,贝U 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倍之 前,传输确认分组传送部分11Q-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向发送终端IO传递错 误报告协议的分段请求消息。错误报告协议的分段请求消息被会话中继设 备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被传输并被会话中继 设备IIO接收。
以下将参考图13来描述在接收到来自接收终端20的传输确认分组时 的会话中继设备110的操作。
来自接收终端20侧的分组被输入到分组输入部分110-5 (步骤 A201)。输入到分组输入部分110-5的分组被提供给会话分组判断部分 110-6,会话分组判断部分110-6判断该输入分组是否为会话分组(步骤 A202)。因为来自接收终端20侧的分组是传输确认分组,所以步骤A202 判定为"是"。
当步骤A202判定为"是"时,传输确认接收器110-7执行传输确认 接收处理(步骤A206)。然后,传输确认分组终止判断部分110-9-l计算 所确认用于传输的最大片断大小(步骤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被布置在发送终端IO和接收 终端20之间,并且会话中继设备120被布置在发送终端IO和中继设备40 之间。发送终端10、接收终端20和中继设备40类似于图9所示的网络配 置的那些。像在第一示例性实施例的情况下一样,以下将描述会话中继设 备120中继从发送终端IO发送到接收终端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、用于向发送终端IO发送传输确认分组的 传输确认发送器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-l) 发送地址和(A-2)目的地端口的信息,并且源的信息包括表示(A-3)源 地址和(A-4)源端口的信息。目的地或更多信息至少包括信息(A-l), 并且可以是如下所示的9个组合中的任意一个。 (1)仅信息(A-l)(2) 信息(A-l) + (A-2)
(3) 信息(A-l) + (A-2) + (A誦3)
(4) 信息(A-l) + (A-2) + (A-3) + (A誦4)
(5) 信息(A-l) + (A-3)
(7) 信息(A-l) + (A-4)
(8) 信息(A-l) + (A-2) + (A-4)
(9) 信息(A-l) + (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 的传输确认分组的传输的最大序列号Nl是否等于或大于与最大传递片断 相对应的最小序列号N2 (是否N1^N2)。因为紧随会话被开启之后最大 序列号N1尚未达到最小序列号N2 (NKN2),所以传输确认分组传送部 分120-9-2将来自传输确认接收器120-7的传输确认分组传送到分组输出 部分120-11,并且传输确认发送器120-10并不传递该传输确认分组。在最 大序列号Nl已经达到最小序列号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 +64 bits of Original Data Datagram"中的信息,并且指的是图5所示的至少 包括"Destination Address"的"Source Address" 、 "Source Port"禾口 "Destination Port "的信息。
会话中继部分120-3使用正在被中继的会话的"目的地或更多信息" 作为索引(key)来搜索最大传输单元存储部分120-14,并判断在最大传 输单元存储部分120-14中的最大传输单元是否已经被更新。如果最大传输 单元已经被更新,则会话中继部分120-3基于更新后的最大传输单元来更 新SMSS。具体而言,如果利用"SrcAddr: 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字节,发送终端IO侧的接收头部大小具有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表示正常分组的最大大小。
从发送终端IO传递而来的分组通过分组输入部分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)。
在步骤B107中的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向发送终端IO传递错 误报告协议的分段请求消息。该错误报告协议的分段请求消息被会话中继 设备120接收。
以下将参考图21来描述在接收到来自中继设备40的错误报告协议的 分段请求消息时的会话中继设备120的操作。
来自接收终端20侧的分组被输入到分组输入部分120-5 (步骤 B401)。输入到分组输入部分120-5的分组被提供给会话分组判断部分 120-6,会话分组判断部分120-6判断该输入分组是否为会话分组(步骤 B402)。因为此时来自接收终端20侧的分组是从中继设备40向发送终端 IO传递的错误报告协议的分段请求消息,所以步骤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时,MTTJ检验部分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)。之后,所述传输确认分组没有被发送 到发送终端IO。结果,该传输确认分组被会话中继设备120终止。
利用上述根据第二示例性实施例的会话中继设备,与在第一示例性实 施例的情况下一样,来自发送终端10的重传片断必然被发送到中继设备 40。因此,该会话中继设备可以维持发送终端IO与接收终端20之间的稳 定通信,而不会导致通信故障。
此外,因为紧随会话被开启之后来自接收侧的传输确认分组直接被传 送到发送终端,所以所述会话中继设备可以避免由来自发送终端的分组的 溢出导致的死锁。 (第三示例性实施例)
图22是示出根据本发明第三示例性实施例的会话中继设备的配置的 框图。图23是示出包括图22所示的会话中继设备的网络配置的框图。
在图22所示的网络配置中,中继设备40被布置在发送终端IO和接收 终端20之间,并且会话中继设备130被布置在发送终端10和中继设备40 之间。发送终端IO、接收终端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、用于向发送终端IO发送传输确认分组的 传输确认发送器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。 如果发送终端IO侧和接收终端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
的传输确认分组的传输的最大序列号Nl是否达到与最大传递片断相对应 的最小序列号。紧随会话被开启之后,传输确认分组传送部分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)。当分组被从发送终端IO输入到会话中继部分 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向发送终端IO传递错 误报告协议的分段请求消息。该错误报告协议的分段请求消息被会话中继 设备130接收。
以下将参考图29来描述在接收到来自中继设备40的错误报告协议的 分段请求消息时的会话中继设备130的操作。
来自接收终端20侧的分组被输入到分组输入部分130-5 (步骤 C401)。输入到分组输入部分130-5的分组被提供给会话分组判断部分 130-6,会话分组判断部分130-6判断该输入分组是否为会话分组(步骤 C402)。因为此时来自接收终端20侧的分组是从中继设备40向发送终端 IO传递的错误报告协议的分段请求消息,所以步骤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将所取下的分段请求消 息传递到发送终端IO (步骤C406)。
在已经从会话中继设备130接收到分段请求消息之后,发送终端10 根据所接收的分段请求消息向接收终端20重传具有减小了的片断大小的 分组。
以下将参考图27来描述在来自发送终端10的具有减小了的片断大小 的分组到达时的会话中继设备130的操作。
从发送终端IO传递而来的分组被从分组输入部分130-1提供给会话中 继部分130-3 (步骤CIOI)。在会话中继部分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向发送终端IO发送 作为针对其的响应分组的传输确认分组。传输确认分组通过中继设备40 而被传送并被会话中继设备130接收。
以下将参考图29来描述在接收到来自接收终端20的传输确认分组时 的会话中继设备130的操作。
来自接收终端20侧的分组被输入到分组输入部分130-5 (步骤 C401)。输入到分组输入部分130-5的分组被提供给会话分组判断部分 130-6,会话分组判断部分130-6判断该输入分组是否为会话分组(步骤 C402)。因为此时来自接收终端20侧的分组是从接收终端20向发送终端 IO发送的传输确认分组(会话分组),所以步骤C402判定为"是"。
当步骤C402判定为"是"时,会话分组判断部分130-6将来自分组 输入部分130-5的输入分组传送到传输确认接收器130-7,传输确认接收器 130-7执行传输确认接收处理(步骤C407)。
然后,传输确认分组终止判断部分130-9-1判断是否满足"所确认用 于传输的最大序列号" > "与最大传递片断相对应的最小序列号"的条件 (步骤C408)。因为此时满足该条件,所以传输确认分组传送部分130-9-2指示传输确认发送器130-10开始传输确认处理(步骤C409)。之后, 所述来自接收侧的传输确认分组不被发送到发送终端10。结果,该来自接收侧的传输确认分组被会话中继设备130终止,并且传输确认发送器UO-lO 开始发送传输确认分组。
利用上述根据第三示例性实施例的会话中继设备,与在第一示例性实 施例的情况下一样,来自发送终端10的重传片断必然被发送到中继设备
40。因此,该会话中继设备可以维持发送终端IO与接收终端20之间的稳
定通信,而不会导致通信故障。
此外,因为紧随会话被开启之后来自接收侧的传输确认分组直接被传 送到发送终端,所以所述会话中继设备可以避免由来自发送终端的分组的 溢出导致的死锁。
上述第一到第三示例性实施例的配置细节和操作细节仅仅以示例的方 式被给出,并且可以按需进行改变。例如,根据第一示例性实施例的传输 确认分组传送/终止判断部分可以按与根据第二和第二示例性实施例的传输 确认分组传送/终止判断部分相同的方式来确定传输确认分组的传送和终 止。反过来,根据第二和第三实施例的传输确认分组传送/终止判断部分可 以按与根据第一示例性实施例的传输确认分组传送/终止判断部分相同的方 式来确定传输确认分组的传送和终止。
在第二和第三示例性实施例中,会话中继部分可以检验片断大小是否
大于SMSS,并且如果片断大小大于SMSS则可以丢弃该片断。图30示出 了用于丢弃片断的处理,并且图31示出了用于将片断发送到发送终端而 没有丢弃它的处理。
根据用于丢弃片断的处理,如图30所示,当发送终端10向接收终端 20发送具有1500字节的分组大小的数据时,该数据通过会话中继设备 130而传递到中继设备40。因为所接收的片断的大小大于MTU (= 500),所以中继设备40向发送终端10传递错误报告协议的分段请求消 息(包括表示下一跳的最大传输单元为500的信息)。该错误报告协议的 分段请求消息被会话中继设备130接收。在会话中继设备130已经接收到 该分段请求消息之后,如果其接收到从发送终端10向接收终端20发送的 具有1500字节的分组大小的数据,则会话中继设备130丢弃所接收的数 据。因此,中继设备40'仅向发送终端IO发送一次错误报告协议的分段请求消息。
根据向发送终端发送片断而没有将其丢弃的处理,如图31所示,在 会话中继设备130已经接收到分段请求消息之后,如果其接收到从发送终
端10向接收终端20发送的具有1500字节的分组大小的数据,则为了将所 接收的数据传递到接收终端20侧的网络,错误报告协议的分段请求消息 被从中继设备40向发送终端10发送多次。因此,分段请求消息被无益地 发送。
在第一到第三示例性实施例中,来自接收终端侧的错误报告协议被终 止。但是,在网络层或更低层被中继的分组中取下来自接收终端侧的错误 报告协议的分段请求消息不会导致任何问题。
虽然在第一到第三示例性实施例中已经描述了单向通信的示例,但是 双向通信不会导致任何为问题。
在第一到第三示例性实施例中,已经描述了包括一个发送终端、 一个 接收终端、 一个中继设备、和一个会话中继终端设备的网络配置。但是, 发送终端、接收终端、中继设备、和会话中继终端设备的数目并不限于各 自一个。
以上已经例如针对会话中继设备描述了本发明的特征。但是,本发明 也适用于其它通信系统,只要它们具有本发明的特征即可。例如,通过根 据TCP来建立会话、利用ICMP目的地不可达消息的分段请求来取代用于 报告错误报告协议的ICMP和分段请求消息、利用根据TCP的ACK分组 来取代传输确认分组、利用根据TCP的序列号来取代传输序列号、利用根 据IPTCP的头部大小的总和来取代头部大小、以及利用根据IP的Don't Fragment标记来取代片断分割禁止标记,可以在TCP/IP上实现本发明。
除了 TCP中继设备之外,本发明还适用于诸如代理或加密设备之类的 会话中继设备。
权利要求
1. 一种会话中继设备,适合布置在用于发送和接收作为分组的数据的终端之间,所述分组被指派了表示将被发送的片断的顺序的序列号,所述会话中继设备用于中继在所述会话中继设备和发送侧的终端之间开启的第一会话与在所述会话中继设备和接收侧的终端之间开启的第二会话之间作为分组来传输的数据,所述会话中继设备包括会话状态保持器,用于保持所述第一会话和第二会话的信息;片断重传判断部分,用于当分组通过所述第一会话被接收时,通过参考所述会话状态保持器所保持的会话信息来判断所接收的分组的片断是否为下述重传片断,即,序列号与已经通过所述第一片断接收的分组的片断相同并且片断大小与所述已经通过所述第一片断接收的分组的片断不同的重传片断;以及片断重传器,用于如果所述片断重传判断部分判定所接收的分组的片断是所述重传片断,则通过所述第二会话发送所述重传片断。
2. 如权利要求1所述的会话中继设备,还包括会话最大片断大小更新器,用于如果所述片断重传判断部分判定所述 所接收的分组的片断是所述重传片断,则利用所述重传片断的片断大小来 更新所述第二会话的最大片断大小。
3. 如权利要求l所述的会话中继设备,还包括分段请求消息传送部分,用于当指示出向所述接收侧的终端中继的所 述分组的数据的片断将被分割的分段请求消息通过所述第二会话而被接收 时,通过所述第一会话向所述发送侧的终端发送所接收的分段请求消息, 并且读取在所接收的分段请求消息中包括的下一跳的最大传输单元;最大传输单元存储部分,用于存储由所述分段请求消息传送部分读取 的下一跳的最大传输单元;以及最大传输单元检验部分,用于当存储在所述最大传输单元存储部分中 的最大传输单元被更新为小于所述最大传输单元的最大传输单元时,基于 所述更新后的最大传输单元来更新所述第二会话的最大片断大小。
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中的任意一项所述的会话中继方法,还包括通过所述第二会话接收传输确认分组的第四步骤,该传输确认分组是 对所述第一会话的起始分组的响应,向所述接收侧的终端中继所述第一会 话的起始分组;从所述会话状态保持器所保持的会话状态信息中获取所述起始分组的 传输序列号和从所述接收侧的终端接收的传输确认分组的传输确认序列号,并确定所获取的序列号之间的差值的第五步骤;当向所述接收侧的终端中继的分组的传递片断大小达到了所述第二会 话的最大片断大小时计算序列号的第六步骤;以及第七步骤如果用在所述第五步骤中确定的所述序列号之间的差值表 示的所确认用于传输的最大片断大小小于在所述第六步骤中计算得到的序 列号,则向所述发送侧的终端传送在所述第四步骤中接收的所述传输确认 分组,并且如果所述所确认用于传输的最大片断大小等于或大于所述计算 得到的序列号,则终止在所述第四步骤中接收的所述传输确认分组,生成 针对所述起始分组的新的传输确认分组,并将该新的传输确认分组发送到 所述发送侧的终端。
全文摘要
一种会话中继设备可以可靠地将从发送源重传的数据分组发送到目的地,而无需执行片断重构或分割。会话中继设备(110)被布置在通过分组发送/接收数据的终端之间,所述分组被指派了指示出将被发送的片断的顺序的序列号。会话中继设备(110)包括中继单元(110-3),用于在与发送侧的终端建立的第一会话和与接收侧的终端建立的第二会话之间执行分组数据中继。在从发送侧的终端接收到重传片断时,会话中继单元(110-3)利用所接收的重传片断的片断大小来更新第二会话的最大片断大小,并将所接收的重传片断发送到接收侧的终端。
文档编号H04L29/08GK101305583SQ200680041500
公开日2008年11月12日 申请日期2006年11月2日 优先权日2005年11月7日
发明者浜崇之 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1