通信装置、通信系统、通信方法以及程序的制作方法

文档序号:5102057阅读:300来源:国知局
专利名称:通信装置、通信系统、通信方法以及程序的制作方法
技术领域
本发明涉及通信技术,尤其涉及在Ether over SSL通信中用于进行数 据传输速度的提高和大规模收容的技术。
背景技术
首先,对现有技术l进行说明。以往,提出了通过Ether over SSL通信,来相连由互联网等彼此连接 的多个企业内部网(Intranet),并且能够作为同一 LAN网段(segment) 来利用的技术(非专利文献l)。图1是示出该现有技术中的网络构成的框图。互联网1是由会话中继装置10、防火墙23和防火墙33、或者其他设 备构成,并且在这些设备彼此之间进行通信的广域网(WAN)。在图1 中互联网1内的各设备经由HUB11彼此连接,并且还经防火墙23或防火 墙33与企业内部网2或企业内部网3连接。会话中继装置10是安装有SoftEther虚拟HUB软件的计算机。会话 中继装置10经由HUB11与互联网1内的各设备连接。会话中继装置10 进行如下动作将在网关装置20与会话中继装置10之间所设定的SSL会 话内流通的Ethernet帧向在网关装置30与会话中继装置10之间所设定的 SSL会话传输,或者,相反地将在网关装置30与会话中继装置10之间所 设定的SSL会话内流通的Ethernet帧向在网关装置20与会话中继装置10 之间所设定的SSL会话传输的会话中继动作。HUBU进行如下动作参照从会话中继装置IO、防火墙23、防火墙 33的各装置所输入的Ethernet帧的MAC DA报头(header),向适当的目 的地端口 (适当的装置)传输的网桥(bridge)动作。企业内部网2是由网关装置20、终端21、 HUB22和防火墙23构成、
并且在这些设备彼此之间进行通信的局域网(LAN)。企业内部网2经由 防火墙23与互联网1彼此连接,通过防火墙23的动作,互联网1与企业 内部网2之间的通信按照预定的设定而被限制。企业内部网2内的各装置经由HUB22彼此连接,企业内部网2内的 各装置间能够自由通信,而不会受到上述的防火墙.23等的限制。另外, 在图中由于通过网关装置20、网关装置30和会话中继装置10,将企业内 部网2和企业内部网3彼此连接以使其作为同一 LAN动作,因此企业内 部网2内的各装置和企业内部网3内的各装置间也能够自由通信,而不会 受到上述的防火墙23等的限制。网关装置20是安装有SoftEther客户端的计算机。网关装置20经由 HUB22与企业内部网2内的各设备连接。网关装置20进行如下动作将 流过企业内部网2内的Ethernet帧向在网关装置20与会话中继装置10之 间所设定的SSL会话内传输,或者,相反地将流过在网关装置20与会话 中继装置10之间所设定的SSL会话内的Ethernet帧向企业内部网2内传 输的网关动作。终端21是企业内部网的使用者通常利用的计算机,用于与企业内部 网内的各设备(例如服务器31)之间进行通信的软件(例如,互联网浏览 器和邮件程序(mailer)等)动作。终端21经由HUB22与企业内部网2 上的各设备连接。HUB22与HUB11同样地进行如下动作参照从网关装置20、终端 21、防火墙23的各装置所输入的Ethernet帧的MAC DA报头,向适当的 目的地端口 (适当的装置)传输的网桥动作。防火墙23是用于将企业内部网2与互联网1彼此连接的设备,经由 HUB22与企业内部网2上的各设备连接,并经由HUB11与互联网1上的 各设备连接。防火墙23进行按照预定的设定对互联网1与企业内部网2 之间的通信进行限制的动作。例如,当从企业内部网2内部的装置采用 TCP向互联网1的各装置进行了开始通信的请求时,以后的通信可在双方 向上自由地进行,相反地,当从互联网1的各装置采用TCP向企业内部网 2的各装置进行了开始通信的请求时,该请求被拦截,而且以后的通信也 在双方向上被拦截。
企业内部网3是由网关30、服务器31、 HUB32和防火墙33构成、 并且在这些设备彼此之间进行通信的局域网(LAN)。企业内部网3经由 互联网1和防火墙33彼此连接,通过防火墙33的动作,互联网1与企业 内部网3之间的通信按照预定的设定而被限定。企业内部网3内的各装置经由HUB32彼此连接,企业内部网3内的 各装置间能够自由通信,而不会受到上述的防火墙33等的限制。另外, 在图1中由于通过网关装置20、网关装置30和会话中继装置10,将企业 内部网2和企业内部网3彼此连接以使其作为同一 LAN来动作,因此企 业内部网3内的各装置和企业内部网2内的各装置间也能够自由通信,而 不会受到上述的防火墙33等的限制。网关装置30是具有与网关装置20同样的构成、并且进行同样的动作 的计算机。对于附图编号,网关装置30中的3000编号系列的部分直接与 网关装置20的2000编号系列的部分对应。例如,中间驱动部3006的构 成及动作、与中间驱动部2006的构成及动作相同。网关装置30,安装有 SoftEther客户端,并且经由HUB32与企业内部网3内的各设备连接。网 关装置30进行如下动作将流过企业内部网3内的Ethernet帧向在网关 装置30与会话中继装置10之间所设定的SSL会话内传输,或者,相反地 将流过在网关装置30与会话中继装置10之间所设定的SSL会话内的 Ethernet帧向企业内部网3内传输的网关动作。服务器31是接受来自企业内部网内的终端的访问的计算机,用来受 理来自企业内部网内的各终端(例如终端21)通信的软件(例如,WWW 服务器和POP服务器等)进行动作。服务器31经由HUB32与企业内部 网3上的各设备连接。HUB32与HUB11和HUB22同样地如下动作参照从网关装置30、 服务器31、防火墙33的各装置所输入的Ethernet帧的MAC DA报头,向 适当的目的地端口 (适当的装置)传输的网桥动作。防火墙33是用于将企业内部网3与互联网1彼此连接的设备,经由 HUB32与企业内部网3上的各设备连接,并经由HUB11与互联网1上的 各设备连接。防火墙33进行按照预定的设定对互联网1与企业内部网3 之间的通信进行限制的动作。例如,当从企业内部网3内部的装置采用TCP向互联网1的各装置进行了开始通信的请求时,以后的通信可在双方 向上自由地进行,相反地,当从互联网1的各装置采用TCP向企业内部网 3的各装置进行了开始通信的请求时,该请求被拦截,而且连以后的通信 也在双方向上被拦截。图2是示出在图1所示的网络中企业互联网2内(例如终端21与网 关20之间)及企业内部网3内(例如,在服务器31与网关装置30之间) 所收发的Ethernet帧F20的帧格式的框图。LAN MAC F21表示在企业内部网2或者企业内部网3上进行第二层 (以太网注册商标)中的通信所需的报头(MAC DA、 MAC SA、 Ethernet TYPE等正EE802所规定的报头)。 .LAN IP F22表示在企业内部网2或者企业内部网3上进行第三层(IP) 中的通信所需的报头(IPDA、 IPSA、 IP TYPE等IETF所规定的报头)。LAN TCP F23表示在企业内部网2或者企业内部网3内所存在的各设 备之间,进行基于TCP的通信所需的报头(端口号或序列号等的TCP报 头)。LAN DATA F24是在企业内部网2或者企业内部网3内所存在的各设 备中动作的软件之间进行交换的数据。图3是示出在图1所示的网络中在网关装置20与会话中继装置10之 间以及在网关装置30与会话中继装置10之间所收发的Ethernet over SSL 帧FIO的帧格式的框图。INETMACF11表示在企业内部网2或者企业内部网3与互联网1之 间进行的通信(例如,在网关装置20与会话中继装置IO之间的通信)中, 进行第二层(以太网)中的通信所需的报头(MAC DA、 MAC SA、 Ethernet TYPE等正EE802所规定的报头)。INET IP F12表示在企业内部网2或者企业内部网3与互联网1之间 进行的通信(例如,在网关装置20与会话中继装置10之间的通信)中, 进行第三层(IP)中的通信所需的报头(IPDA、 IPSA、 IPTYPE等正TF 所规定的报头)。INET TCP F13表示在企业内部网2或者企业内部网3与互联网1之 间进行的通信(例如,在网关装置20与会话中继装置IO之间的通信)中,
进行基于TCP的通信所需的报头(端口号或序列号等的TCP报头)。INET SSL Encrypted DATA F14,是在企业内部网2或者企业内部网3 与互联网1之间进行的il信(例如,在网关装置20与会话中继装置10之 间的通信)中,各设备(例如,网关装置20或会话中继装置10)中动作 的软件之间进行交换的数据。该数据被加密,而且位于途中路径的设备不 能以通常所使用的方法对加密进行解密来解读内容。在图1所示的构成中,在INETSSL Encrypted DATA F14中保存有在 企业内部网2或企业内部网3中流通的Ethernet帧F20。 (现有技术l的动作例)采用图1,以从终端21向服务器31进行通信(帧传输)的情况为例, 对现有技术1的动作进行说明。这里,假设在服务器31与终端21之间已进行过几次通信,并且HUB22 或HUB32已学习了终端21、服务器31、防火墙23的LAN侧、防火墙 33的LAN侦lj、网关装置20、网关装置30的MAC地址。另外,假设HUB11 学习了防火墙23的WAN侧、防火墙33的WAN侧、会话中继装置10 的各装置MAC地址。再有,假设从网关装置20向会话中继装置10的SSL 会话(安全TCP会话)己被设定,同样地从网关装置30向会话中继装置 IO的SSL会话(安全TCP会话)也己被设定。另夕卜,假设防火墙23及防 火墙33,当从企业内部网内部的装置(LAN侧)采用TCP向互联网的各 装置(WAN侦lj)进行了开始通信的请求时,以后的通信可在双方向上自 由地进行,相反地,当从互联网的各装置(WAN侧)采用TCP向企业内 部网的各装置(LAN侧)进行了开始通信的请求时,该请求被拦截,而且 连以后的通信也在双方向上被拦截。首先,由终端21对发给服务器31的帧进行发送。该帧具有Ethernet 帧F20格式,在LAN MAC F21内的MAC DA中设定服务器31的MAC 地址,在LAN MAC F21内的MAC SA中设定终端21的MAC地址。另 夕卜,在LAN IP F22内的IP DA中设定服务器31的IP地址,在LAN IP F22 内的IP SA中设定终端21的IP地址。HUB22如果接收到来自终端21的帧,则参照F21内的MACDA,由 于MACDA为服务器31的地址,因此根据过去的路由学习结果,将该帧
直接输出到网关装置20侧的端口 。网关装置20如果从HUB22接收到帧,则使该帧流过预先在与会话中 继装置10之间所设定的SSL会话。即,以F20格式输入到网关装置20 的帧在被加密的基础上保存到F14的区域,并且以Ether over SSL帧F10 格式从网关装置20向HUB22传输。此时,在INET MAC Fl 1内的MAC DA中设定防火墙23的LAN侧 的MAC地址,在Fll内的MAC SA中设定网关装置20的MAC地址。 另外,在INETIPF12内的IPDA中设定会话中继装置IO的IP地址,在 F12内的IP SA中设定网关装置20的IP地址。F21 F24的内容中没有变 化。HUB22如果接收到来自网关装置22的帧,则参照Fl 1内的MAC DA, 由于MAC DA为防火墙23的LAN侧的地址,因此根据过去的路由学习 结果,将该帧直接输出到防火墙23侧的端口。防火墙23如果接收到来自HUB22的帧,则参照F12内的IPDA,由 于IP DA为在互联网1侧存在的地址,因此将Fll内的MAC DA改写为 会话中继装置10的MAC地址,还将Fll内的MACSA改写为防火墙23 的WAN侧的MAC地址,在保持F10的帧格式的状态下向HUB11传输。 F21 F24的内容中没有变化。HUB11如果接收到来自防火墙23的帧,则参照Fll内的MACDA, 由于MACDA为会话中继装置IO的地址,因此根据过去的路由学习结果, 将该帧直接输出到会话中继装置IO侧的端口。会话中继装置lO如果从HUBll接收到帧,则暂时解除F14的加密, 参照F21内的MACDA,由于MACDA为服务器31的地址,因此根据过 去的路由学习结果,使该帧流过预先在与网关装置30之间设定的SSL会 话。即,以F10格式输入到会话中继装置10的帧被解除加密而成为F20 格式,并且再次被加密后保存到F10格式中的F14的区域,以F10格式从 会话中继装置10向HUB11传输。此时,在INET MAC Fl 1内的MAC DA中设定防火墙33的WAN侧 的MAC地址,在Fll内的MAC SA中设定会话中继装置10的MAC地 址。另外,在INETIPF12内的IPDA中设定网关装置30的IP地址,在
F12内的IP SA中设定会话中继装置10的IP地址。在F21 F24的内容中 没有变化。HUB11如果接收到来自会话中继装置lO的帧,则参照Fll内的MAC DA,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接输出到防火墙33侧的端口。防火墙33如果接收到来自HUB11的帧,则参照F12内的IPDA,由 于IP DA为在企业内部网3侧存在的地址,因此将Fll内的MAC DA改 写为网关装置30的MAC地址,还将Fll内的MACSA改写为防火墙33 的LAN侧的MAC地址,而保持F10的帧格式,向HUB32传输。在F21 F24的内容中没有变化。HUB32如果接收到来自防火墙33的帧,则参照Fll内的MACDA, 由于MACDA为网关装置30的地址,因此根据过去的路由学习结果,将 该帧直接输出到网关装置30侧的端口 。网关装置30如果从HUB32以F10格式接收到帧,则解除F14的加 密而取出F14所保存的Ethernet帧F20,并且将该帧以F20格式向HUB32 传输。该帧原样保持着从终端21发送时的状态,在LANMAC F21内的MAC DA中设定服务器31的MAC地址,在LANMACF21内的MAC SA中设 定终端21的MAC地址。另外,在LANIPF22内的IPDA中设定服务器 31的IP地址,在LANIPF22内的IP SA中设定终端21的IP地址。HUB32如果接收到来自网关装置30的帧,则参照F21内的MAC DA, 由于MACDA是服务器31的地址,因此根据过去的路由学习结果,将该 帧直接向服务器31侧的端口输出。服务器31接收从HUB32所发送的帧,并完成从终端21到服务器31 的一系列帧传输。从服务器31到终端21的帧传输也通过与上述相反的途径,同样地实现。通过以上方式,在采用现有技术1时,终端21和服务器31如同存在 于同一 LAN上那样不会受到防火墙等的限制而能够进行通信。 继续对现有技术2进行说明。 以往,在搭载于计算机内部的CPU (Central processing Unit:中央运算装置)中,附加有被称作安全引擎的加密/解密功能的技术(非专利文献2) 是公知的。图4是示出将现有技术2适用于计算机的例子的框图。现有技术2在图1所示的现有技术1中能够适用于网关装置20、网关装置30或会话中继装置10。在图4中,被称作安全引擎的用于进行加密/解密的硬件通过PCI总线等高速接口与CPU连接。利用该安全引擎由硬件来处理现有技术1中的加密及解密的动作,通过这样,能够实现与现有的软件处理相比更高速的加密及解密。非专利文献1: "SoftEther.com—SoftEther虚拟以太网系统一SoftEther VPN System""平成16年12月6日检索"、互联网<URL: http:〃www.softether.com/jp/>非专利文献2: "MPC875 Product Summary Page""平成16年12月6 日检索"、互联网〈URL: http:〃www.freescale.com/webapps/sps/site/prod—s ummary.jsp code=MPC875>在图1 图3所示的现有技术1中,由于在CPU中用软件来进行在网关 装置中所进行的、使Ethemet帧流过SSL会话内而根据Ethemet帧F20来制定 Ether over SSL帧F10的被称作封装的处理,因此存在无法进行帧的高速传 输的问题。而且,如果对上述处理直接进行单纯的硬件化,则由于需要T CP Offload Engine (TOE)等庞大的结构,因此还存在电路规模和成本一 起增大的问题。再有,在现有技术l中由于除了封装之外,在CPU中用软件来还进行S SL中的加密/解密处理,因此在这一点上也无法进行帧的高速传输。另外,在现有技术l中,当企业内部网内的帧流过SSL会话时,成为F 10所示的帧格式。在该格式中,由于在F13及F23双方中存在TCP报头,因 此可知在传输l帧时,TCP处理处于以双重的方式进行的"TCP over TCP" 的状态。而且,公知由于在TCP over TCP中将TCP的拥塞控制以双重的方 式进行,因此产生传输特性不良而无法进行高速传输的问题(非专利文献3) 。
非专利文献3: "Why TCP Over TCP Is A Bad Idea"(平成16年1 2月6日检索)、互联网〈URL:http:〃sites.inka.de/sites/bigred/devel/tcp—tcp. html>在图4所示的现有技术2中,虽然通过硬件能够高速处理现有技术l中 的SSL的加密处理,但是由于对封装处理无法实现硬件化,而还在CPU中 用软件来进行,因此依然存在无法实现帧的高速传输的问题。另外,在现有技术2中依然残留着现有技术1中所产生的TCP over TC P问题。而且,当将进行封装的硬件与安全引擎分开附加时,需要与安全引擎 分开准备封装用的硬件,从而与在同一硬件上进行加密/解密与封装的情况 相比,存在高速化所需的成本增大的问题。再有,这种进行加密/解密的硬件需要经由高速总线与CPU连接,但是 如果持有高速总线的接口,则与低速总线相比存在开发成本或硬件的部件 成本增大的问题。发明内容从而,本发明所要解决的课题是提供一种抑制成本的同时能够进行帧 的高速传输的隧道通信装置、隧道通信系统、隧道通信方法以及隧道通信 程序。用于解决上述课题的第一发明为一种通信系统,其特征在于,在建立 TCP会话进行通信的通信装置之间,设置使TCP会话终结的终结单元, 上述终结单元构成为接收从上述通信装置的发送侧所发送的TCP分组 (SYN),将该TCP分组的响应分组(SYN+ACK)向发送侧发送,将 独创的连接请求向上述通信装置的接收侧发送。用于解决上述课题的第二发明,在上述第一发明中,其特征在于,上 述终结单元构成为接收从上述通信装置的发送侧所发送的独创的连接请 求,并且向上述通信装置的接收侧发送TCP分组(SYN)。用于解决上述课题的第三发明,在上述第一或第二发明中,其特征在 于,上述终结单元构成为接收从上述通信装置的接收侧所发送的TCP 分组的响应分组(SYN+ACK),将该响应分组的接收确认分组向接收侧
发送,将独创的连接完成通知向上述通信装置的发送侧发送。用于解决上述课题的第四发明,在上述第一至第三发明中的任一项发 明中,其特征在于,上述终结单元构成为采用无拥塞控制的通信方法来 进行上述连接请求或上述连接完成通知的通信。用于解决上述课题的第五发明,在上述第一至第四发明中的任一项发 明中,其特征在于,在上述通信装置之间具有加密密钥取得单元,其取 得在上述通信装置之间进行加密通信时的加密密钥;和加密单元,其保存 上述取得到的加密密钥,如果接收到高速化处理开始命令,则使用该保存 的加密密钥进行在上述通信装置之间所收发的数据的加密及解密。用于解决上述课题的第六发明,在上述第一至第五发明中的任一项发 明中,其特征在于,上述通信装置的发送侧和接收侧构成在彼此不同的网 络上,当为经由防火墙进行通信的构成时,上述终结单元构成在各网络。用于解决上述课题的第七发明为一种通信系统,其特征在于,在进行 加密通信的通信装置之间具有加密密钥取得单元,其取得在上述通信装 置之间进行加密通信时的加密密钥;和加密单元,其保存上述取得到的加 密密钥,如果接收到高速化处理开始命令,则使用该保存的加密密钥进行 在上述通信装置之间所收发的数据的加密及解密。用于解决上述课题的第八发明,在上述第五至第七发明中,其特征在 于,上述加密单元构成为对碎片分割后的数据进行加密,对碎片解除前 的数据进行解密。用于解决上述课题的第九发明为一种通信装置,其特征在于,具有 TCP单元,其在建立TCP会话时发送TCP分组;和终结单元,其接收上述TCP分组(SYN),将该TCP分组的响应分组(SYN+ACK)向上述 TCP部发送,将独创的连接请求向连接目的地发送。用于解决上述课题的第十发明,在上述第九发明中,其特征在于,上 述终结单元构成为当接收到独创的连接请求时,向上述TCP单元发送 TCP分组(SYN)。用于解决上述课题的第十一发明,在上述第九或第十发明中,其特征 在于,上述终结单元构成为当从上述TCP单元接收到TCP分组的响应 分组(SYN+ACK)时,将该响应分组的接收确认分组向上述TCP单元
发送,将独创的连接完成通知向连接目的地发送。用于解决上述课题的第十二发明,在上述第九至第十一发明中的任一 项发明中,其特征在于,上述终结单元构成为采用无拥塞控制的通信方 法来收发上述连接请求或上述连接完成通知。用于解决上述课题的第十三发明,在上述第九至第十二发明中的任一 项发明中,其特征在于,具有加密密钥取得单元,其取得在进行加密通 信时的加密密钥;和加密单元,其保存上述取得到的加密密钥,如果接收 到高速化处理开始命令,则使用该保存的加密密钥进行在上述通信装置之 间所收发的数据的加密及解密。用于解决上述课题的第十四发明为进行加密通信的通信装置,其特征 在于,具有加密密钥取得单元,其取得加密密钥;和加密单元,其保存 上述取得到的加密密钥,如果接收到高速化处理开始命令,则使用该保存 的加密密钥进行上述数据的加密及解密。用于解决上述课题的第十五发明,在上述第十三或第十四发明中,上 述加密单元构成为对碎片分割后的数据进行加密,对碎片解除前的数据 进行解密。用于解决上述课题的第十六发明为一种通信方法,其特征在于,具有 接收TCP分组(SYN)的TCP接收步骤;发送上述接收到的TCP分组的 响应分组(SYN+ACK)的响应分组发送步骤;和发送独创的连接请求的 连接请求发送步骤。用于解决上述课题的第十七发明,在上述第十六发明中,其特征在于, 具有接收上述发送的连接请求的连接请求接收步骤;和在接收上述连接 请求后,发送TCP分组(SYN)的步骤。用于解决上述课题的第十八发明,在上述第十六或第十七发明中,其 特征在于,具有接收上述发送的TCP分组的响应分组(SYN+ACK) 的响应分组接收步骤;发送上述响应分组的接收确认分组的接收确认发送 步骤;和在发送上述接收确认分组后,发送独创的连接完成通知的连接完 成通知发送步骤。用于解决上述课题的第十九发明,在上述第十六至第十八发明中的任 一项发明中,其特征在于,上述连接请求发送步骤和上述连接完成通知发
送步骤,采用无拥塞控制的通信方法来发送上述连接请求或上述连接完成 通知。用于解决上述课题的第二十发明,在上述第十六至第十九发明中的任 一项发明中,其特征在于,具有取得在进行加密通信时的加密密钥的加 密密钥取得步骤;接收高速化处理开始命令的步骤;和保存上述取得到的 加密密钥,使用该保存的加密密钥来进行在上述通信装置之间所收发的数 据的加密或解密的加密步骤。用于解决上述课题的第二十一发明为采用加密通信来进行通信的方 法,其特征在于,具有取得在进行加密通信时的加密密钥的加密密钥取 得步骤;接收高速化处理开始命令的步骤;和保存上述取得到的加密密钥, 使用该保存的加密密钥来进行在上述通信装置之间所收发的数据的加密 或解密的加密步骤。用于解决上述课题的第二十二发明,在上述第二十一发明中,其特征 在于,上述加密步骤具有对碎片分割后的数据进行加密的步骤;和对碎 片解除前的数据进行解密的步骤。用于解决上述课题的第二十三发明为信息处理装置的程序,其特征在 于,上述程序使上述信息处理装置作为下述单元发挥功能TCP单元,其 在建立TCP会话时发送TCP分组;和终结单元,其接收上述TCP分组 (SYN),将该TCP分组的响应分组(SYN+ACK)向上述TCP部发送, 将独创的连接请求向连接目的地发送。用于解决上述课题的第二十四发明,在上述第二十三发明中,其特征 在于,使上述终结单元作为下述单元发挥功能当接收到独创的连接请求 时,向上述TCP单元发送TCP分组(SYN)的单元。用于解决上述课题的第二十五发明,在上述第二十三或第二十四发明 中,其特征在于,使上述终结单元作为下述单元发挥功能当从上述TCP 单元接收到TCP分组的响应分组(SYN+ACK)时,将该响应分组的接 收确认分组向上述TCP单元发送,将独创的连接完成通知向连接目的地发 送的单元。用于解决上述课题的第二十六发明,在上述第二十三至第二十五发明 中的任一项发明中,其特征在于,使上述终结单元作为下述单元发挥功能: 采用无拥塞控制的通信方法来收发上述连接请求或上述连接完成通知的 单元。本发明的网关装置及会话中继装置具备:高速化引擎控制,其进行SSL 会话的建立以及向高速化引擎的公开密钥、秘密密钥和预共享密钥的分发;中间驱动部,其使TCP的处理终结,并且生成用于进行高速化引擎的 控制的控制帧;和高速化引擎,其通过硬件进行加密、解密及封装处理, 从而按照用硬件来处理SSL会话建立后的帧传输的方式动作。采用这种构 成,通过用高速化引擎(硬件)来实现以CPU (硬件处理)执行的封装处 理及加密/解密处理,从而解决上述课题。本发明的网关装置具备网关应用程序,其进行SSL会话的建立以及 向中间驱动部通知会话信息;和中间驱动部,其使TCP终结并且制定不进 行拥塞控制的帧,从而按照在报头F13位置不会发生基于TCP的拥塞控 制和重传控制的方式动作。采用这种构成,通过避免TCP over TCP问题 的发生而实现高速化,从而解决上述课题。本发明的终端及服务器具备使TCP终结并且制定不进行拥塞控制的 帧的中间驱动部,从而按照在报头F23位置不会发生基于TCP的拥塞控 制和重传控制的方式动作。采用这种构成,通过避免TCP over TCP问题 的发生而实现高速化,从而解决上述课题。本发明的网关装置具备根据来自中间驱动部的请求进行TCP会话的 建立的封装处理,本发明的终端具备使TCP终结并且向上述封装处理进行 TCP会话建立的请求的中间驱动部,从而按照在报头F23位置不会发生基 于TCP的拥塞控制和重传控制的方式用中间驱动部来终结TCP,并且按 照由封装处理重建TCP会话的方式动作。采用这种构成,通过避免TCP over TCP问题的发生而实现高速化,从而解决上述课题。本发明的网关装置具备:根据来自中间驱动部的请求进行TCP会话的 建立的封装处理;和根据来自中间驱动部的请求改写IP地址及MAC地址 的IP栈,本发明的终端具备使TCP终结并且向上述封装处理进行建立TCP 会话请求的中间驱动部,从而按照在报头F23位置不会发生基于TCP的 拥塞控制和重传控制的方式用中间驱动部来终结TCP,并且按照由封装处 理重建TCP会话的方式动作。采用这种构成,通过避免TCP over TCP问
题的发生而实现高速化,从而解决上述课题。本发明的网关装置及会话中继装置具备网关应用程序,其进行SSL 会话的建立以及向高速化引擎的公开密钥、秘密密钥和预共享密钥的分 发;和高速化引擎,其通过硬件进行解密及封装处理,从而按照用硬件来 处理SSL会话建立后的加密及解密的方式动作。采用这种构成,通过用高 速化引擎(硬件)来实现并高速化以CPU (软件处理)执行的加密/解密 处理,从而解决上述课题。本发明的网关装置具备网关应用程序,其进行SSL会话的建立以及 向高速化引擎或中间驱动部的公开密钥、秘密密钥和预共享密钥的分发; 使TCP终结的中间驱动部;和高速化引擎,其通过硬件进行加密/解密处 理,从而按照用硬件来处理SSL会话建立后的加密及解密的方式动作。采 用这种构成,通过用高速化引擎(硬件)来实现并高速化以CPU (软件处理)执行的加密/解密处理,从而解决上述课题。


图1是示出现有技术1的网络构成例的框图。图2是示出现有技术1的Ethernet帧格式F20的构成的框图。图3是示出现有技术1的Ether over SSL帧格式F10的构成的框图。图4是示出将现有技术2适用于计算机的例子的框图。图5是示出本发明的第一实施方式的会话中继装置10的构成的框图。图6是示出本发明的第一实施方式中的CPU100内的软件构成的框图。图7是示出本发明的第一实施方式中的中间驱动部1008的构成的框图。图8是示出本发明的第一实施方式中的NIC101的构成的框图。 图9是示出本发明的第一实施方式中的HUB11的构成的框图。 图10是示出本发明的第一实施方式中的CPU200内的软件构成的框图。图U是示出本发明的第一实施方式中的NIC201的构成的框图。图12是示出本发明的第一实施方式中的高速化引擎2014的构成的框 图。图13是示出本发明的第一实施方式中的CPU210内的软件构成的框图。图14是示出本发明的第一实施方式中的防火墙23的构成的框图。 图15是示出本发明的第一实施方式中的CPU230内的软件构成的框图。图16是示出本发明的第一实施方式中的网络构成及通信路径的框图。 图17是示出本发明的第二实施方式中的网络构成例的框图。 图18是示出本发明的第二实施方式中的网络构成及通信路径的框图。 图19是示出本发明的第三实施方式中的网络构成及通信路径的框图。 图20是示出本发明的第四实施方式中的网络构成及通信路径的框图。 图21是示出本发明的第五实施方式中的网络构成及通信路径的框图。 图22是示出本发明的第六实施方式中的网络构成及通信路径的框图。 图23是示出本发明的第七实施方式中的网络构成及通信路径的框图。 图24是示出本发明的第八实施方式中的网络构成及通信路径的框图。 图25是示出本发明的第八实施方式中的高速化引擎X2014的构成的 框图。图26是示出本发明的第九实施方式中的网络构成及通信路径的框图。 图27是示出本发明的第九实施方式中的高速化引擎Y2014的构成的 框图。图28是示出本发明的第九实施方式中的中间驱动部Y3006的构成的 框图。图29是示出本发明的第十实施方式中的网络构成及通信路径的框图。 图30是示出本发明的第十一实施方式中的网络构成及通信路径的框图。图31是示出本发明的第十二实施方式中的中间驱动部1008的构成的 框图。图32是示出本发明的第十二实施方式中的高速化引擎2014的构成的 框图。图33是用于说明本发明特征的图。
具体实施方式
(第一实施方式)如图33所示,本发明的第一实施方式在建立SSL会话时,在会话中 继装置10内的CPU100的TCP与中间驱动部的TCP之间建立TCP会话, 还在网关装置20的TCP与中间驱动部的TCP之间建立TCP会话,以便 在会话中继装置10与网关装置20之间不会进行TCP中的拥塞控制。同样 地,在会话中继装置10内的CPU100的TCP与中间驱动部的TCP之间建 立TCP会话,还在网关装置30内的CPU200的TCP与中间驱动部的TCP 之间建立TCP会哮,以便在会话中继装置10与网关装置20之间不会进行 TCP中的拥塞控制。另外,同样地,在网关装置10内的CPU的TCP与 中间驱动部的TCP之间建立TCP会话,以便在会话中继装置IO与网关装 置IO之间不会进行TCP中的拥塞控制。此外,在本发明中将在CPU内的 TCP与中间驱动部的TCP之间建立TCP会话的动作称作使TCP会话终结 (terminating)。再有,在网关装置20内的NIC (Network Interface card) 201中具备 高速化引擎。由此,除了使网关装置20中的封装处理或加密/解密处理高 速化之外,还避免TCP over TCP问题,另外在同一处实现加密/解密处理 和封装处理,而且由于安装于NIC内的比较低廉的接口上,从而实现低价 格化。第一实施方式的网络构成与图1所示的现有技术1相同。 但是,网关装置20、会话中继装置10的内部构成与现有技术不同。 (构成说明)图5是详细地示出了第一实施方式中的会话中继装置10的构成的框图。会话中继装置10由CPUIOO、 NIC10K存储器102、 HDD103、键盘 104、鼠标105和图形部(graphics) 106构成。CPUIOO被称作中央运算装置,是读入HDD103中所记录的软件(程 序),并使用存储器102来执行程序中所记载的处理的硬件。当进行该处 理时,有时除了由键盘104、鼠标105来接受用户的命令之外,还将结果 输出到图形部106。另外,也有时由NIC101接收数据,或者向NIC101输出数据。NIC101被称作网络接口卡(NetworkInterface Card),是为了连接以 太网等的网络用电缆(cable)而插入到计算机的硬件。除了从网络(以太 网电缆等的电缆)接收帧(数据),经由总线等的接口向CPU100发送之 外,还相反地从CPU100经由总线等的接口收取帧(数据)并且将该帧(数 据)变换为适于网络的形式后向网络(以太网电缆等的电缆)送出。存储器102是CPU100处理执行软件时所利用的易失性存储装置。另 外,将与写入命令一起从CPU100所发送的数据保存到指定的地址。并且, 如果收到来自CPU100的读出命令,则从指定的地址读出数据,并交付给 CPU。通常,成为在电源断开时,失去存储内容的易失性。HDD103被称作硬盘,是用于存储软件(程序)的非易失性存储装置。 将与写入命令一起从CPU100所发送的数据保存到指定的地址。并且,如 果收到来自CPU100的读出命令,则从指定的地址读出数据,并交付给 CPU。非易失性存储装置是即使电源断开也不会失去存储内容的存储装 置,在本实施方式中采用HDD代表非易失性存储装置来进行说明。此外, 即使使用HDD以外的非易失性存储装置(闪存、软盘注册商标、磁带 等),也能够实现同样的动作。键盘104是将来自用户的基于按键的命令变换为电信号,并传递给 CPU100的输入装置。鼠标105是将来自用户的基于鼠标105的移动的命令变换为电信号, 并传递给CPU100的输入装置。图形部106是为了接收来自CPU100的绘画命令,并变换为适于阴极 射线管或液晶画面等显示装置的信号,而插入在计算机或安装在主板上的 硬件。图6是示出了在图5中的CPU100内动作的软件构成的框图。 在CPUIOO内动作的软件由中继应用程序1001、 SSL1002、 TCP1003、SSL画4、 TCP1005、 IP路由1006、 IP栈1007、中间驱动部1008、驱动部1009构成。在图6所举出的软件中的TCP1003、 TCP1005、 IP路由1006、 IP栈 1007是通常包含于Windows (注册商标)、Linux、 BSD等OS (操作系 统)中的软件。尤其,在Windows的情况下, 一般来说用户不能改写该软 件的程序。在CPU100内实际上除了图6所示的软件以外还有很多软件进行动 作,但是在图6中省略了与本发明无关的软件。中继应用程序1001是通过软件来实现与图9中的HUB11内的网桥 114同样的动作的帧传输软件。在现有技术1中被称作虚拟HUB。中继应用程序1001从SSL1002或SSL1004接收数据(帧),参照目 的地MAC地址(MAC DA)来选择传输目的地的SSL,向适当的SSL (SSL1002或SSL1004)直接传输所接收的帧。再有,具有在接收帧时, 参照发送源MAC地址(MAC SA),进行MAC地址的学习,并且记录 具有哪个MAC地址的终端连接于哪个SSL侧的功能。还具有假如,在 接收帧时,即使参照目的地MAC地址也没有学习MAC地址的情况下, 向输入了帧的SSL以外的所有的SSL广播帧的功能。中继应用程序1001还向中间驱动部1008内的设定管理部1008L通知 成为SSL会话的对象的设备的IP地址(在图1中为网关装置20和网关装 置30)或SSL会话的发送源端口号及目的地端口号。该通知除了在建立 会话时和断开会话时之外,还定期地进行。SSL1002具有从中继应用程序1001收取数据(帧)并且进行加密 后,将数据发送到TCP1003,或者从TCP1003收取数据并且进行解密后, 将数据发送到中继应用程序1001的功能;和交换用于加密的证书或公开 密钥(publickey)、秘密密钥(Secretkey)和予共享密钥(pre-sharedkey) 等信息的功能。还具有通过来自中继应用程序1001的设定来决定是否 使用SSL,当不使用SSL时,对来自中继应用程序1001的数据不进行加 密,而直接发送到TCP1003,而且,对来自TCP 1003的数据不进行解密, 而直接发送到中继应用程序1001的功能。在本实施方式中,通常设为进行加密的设定。TCP1003具有通过如下的(1) (4)所示的通常的TCP处理,将 数据整理成一定形式的格式而进行封装,或从分组中还原数据的功能。(1)从SSL1002、或者在不使用SSL1002时从中继应用程序1001收 取数据,并且对该数据附加用于检测分组的缺失或顺序逆转的TCP报头后,发送到IP路由1006。这里,当大数据的情况下,进行分割(也称作碎片)处理。(2) 从IP路由1006收取分组,参照TCP报头来检测顺序逆转或分 组的缺失。于是,当既没有发生顺序逆转也没有发生缺失时,从分组中去 掉TCP报头后发送到SSL1002,当不使用SSL1002时发送到中继应用程 序IOOI。此时,将分组的发送源设定为目的地,返回用于通知分组己到达 的情况的接收确认分组(ACK分组)。(3) 在(2)中,当发生分组的缺失时,发送重传请求分组。另外, 当发生顺序逆转或碎片时,等待后面到达的分组,来还原数据。(4) 在建立TCP会话时,发送TCP会话建立请求(SYN分组), 并收取响应该请求而所发送的ACK分组,调整(1)中的分组的发送速度 来进行拥塞控制。SSL1004进行与SSL1002同样的动作。 TCP1005进行与TCP1003同样的动作。IP路由1006路由具有从TCP1003、 TCP1005或IP栈1007收取分 组,参照目的地IP地址和目的地端口号,向IP栈1007、TCP1003或TCP1005 传输分组的功能。IP栈1007具有以下所示的功能。(1) 从IP路由1006收取分组,并对该分组附加MAC地址等的 Ethernet报头来生成帧后,交给中间驱动部1008。(2) 在从中间驱动部1008所接收的帧中去掉MAC报头后,交给IP 路由1006。(3) 为了决定(1)中所附加的MAC地址等,而收发ARP协议。(4) 通过DHCP协议或手动设定,接受IP地址、默认路由、子网掩 码等在IP通信中所需要的设定,并对它们进行管理。中间驱动部1008具有以下举出的四个功能。此外,对具体的构成将 后面叙述。(1)具有TCP处理功能,使与TCP1003或TCP1005之间的TCP处 理终结。此外,使TCP处理终结是指进行用于在TCP1003或TCP1005与
中间驱动部1008内的TCP之间建立TCP会话的一系列的处理。(2) 具有碎片处理功能(碎片分割处理、碎片组合处理),当流过 驱动部1009侧的帧的大小较大的情况下进行分割,而且当从驱动部1009 侧所到达的帧被预先分割的情况下,进行组合处理。(3) 具有封装及封装解除功能,对从IP栈1007侧发送来的分组附 加适当的报头、或者将报头修改为适当的值后,向驱动部1009侧传输。 另外,在从驱动部1009侧发送来的帧中去除报头、或者将报头修改为适 当的值后,向IP栈1007侧传输。(4) 从中继应用程序IOOI收取作为上述(1) (3)的处理对象的 帧的识别所需要的信息。(5) 根据来自应用程序的请求,制定控制帧并发送给驱动部1009。 而且,由驱动部1009接收所到达的控制帧后,通知给应用程序。驱动部1009是进行NICIOI与CPUIOO内动作的各种软件之间的中介 的软件,具有从NICIOI收取帧,并发送到中间驱动部1008或IP栈1007 的功能,还具有从中间驱动部1008或IP栈1007收取帧,并发送到NICIOI 的功能。图7是详细地描述了图6中的中间驱动部1008的内部构成的框图。中间驱动部1008由TCP1008A、碎片分割1008B、碎片组合1008C、 再封装1008D、再封装1008E、封装解除1008F、封装解除1008G、帧解 析1008H、帧解析10081、多路复用器1008J和多路复用器1008K构成。在中间驱动部1008的构成要素中的TCP1008A、碎片分割1008B、碎 片组合1008C、再封装1008D、再封装1008E、封装解除1008F、封装解 除1008G的各部分,有时与进行建立TCP会话的处理的高速化的TCP会 话的数目相同地设置多个。例如,当在会话中继装置10中进行TCP1003 与TCP1005双方的高速化时,需要准备两组中间驱动部1008的各构成要 素。例如,当只有TCP1003进行高速化、而TCP1005进行以往的传输时, 中间驱动部1008的各构成要素只要一组即可。TCP1008A具有与TCP1003同样的动作也就是以下举出的四个功能。 (1)从碎片组合1008C收取数据,并对该数据附加用于检测分组的 缺失或顺序逆转的TCP报头后,发送到再封装1008E。这里,当大数据的情况下,进行分割(也称作碎片分割处理)处理。(2) 从封装解除1008F收取分组,参照TCP报头来检测顺序逆转或 分组的缺失,当既没有发生顺序逆转也没有发生缺失时,从分组中去掉 TCP报头后发送到碎片分割1008B。此时,经由再封装1008E,将用于通 知分组已到达的情况的ACK分组返回给分组的发送源也就是TCP1003或 TCP1005。(3) 在(2)中,当发生分组的缺失时,向TCP1003或TCP1005发 送重传请求分组。另外,当发生顺序逆转或碎片分割时,等待后面到达的 分组,来还原数据(重传等待处理、碎片结合处理)后,向碎片分割1008B 传输。(4) 收取由TCP1003或TCP1005发送的遵守TCP标准的分组,并 调整(1)中的分组的发送速度。TCP1008A如果收取TCP会话建立请求(SYN分组),则生成连接请求分组。另夕卜,TCP1008A如果接收到针对 TCP会话建立请求的响应分组(SYN+ACK分组),则针对该响应分组 返回ACK分组,并生成连接完成通知分组。此外,该连接请求分组及连 接完成通知分组是本发明的通信系统中的独创的分组,而不是遵守TCP 标准的分组。碎片分割1008B从TCP1008A收取分组,并且向再封装1008D传输。 此时,假如分组的大小大于预先设定的大小时,对分组进行分割(碎片分 割处理)后,向再封装1008D传输。碎片组合1008C从封装解除1008G收取分组,并且向TCP1008A传 输。此时,假如对分组附加有表示分割的标志时,暂时保存分组,并且等 待后面到达的分组而结合分组后,向TCP1008A传输。将该处理称作碎片 组合处理。再封装1008D对由碎片分割1008B发送来的数据(图3中的F14)附 加INETMACFll、 INETIPF12、 INET TCP F13的各报头,向多路复用 器1008K传输。所附加的F11 F13的各报头的值由封装解除1008F来通 知。此外,通过设定还能够在INETTCPF13的位置设定UDP报头,而不 是TCP报头。在再封装1008D中附加TCP报头F13是为了防止因通信路径上存在的防火墙或NAT路由器等(在图1的例子中为防火墙23)而分组被拦截 的情况。在对F13设定了 UDP报头时,如果在通信路径上存在防火墙或 NAT路由器等,则有可能通信被拦截。在再封装1008D中所附加的TCP 报头在格式上具有TCP的形式,但是在实际上由于TCP不是所附加的报 头,因此不在拥塞控制或重传控制中使用。这里所附加的报头F13始终是 用来通过防火墙或NAT的,实际的拥塞控制或重传控制通过存在于终端 21或服务器31内的TCP (图3的帧格式F10中的F23的TCP报头部分) 进行。再封装1008E对由TCP1008A发送来的数据(F12、 FI3、 F14)附加 INETMAC报头Fll后交给多路复用器1008J。所附加的报头(F11)的值 由封装解除1008G来通知。封装解除1008F在从帧解析1008H发送来的分组(Ether over SSL帧 格式F10形式)中去除INET MAC Fl 1报头后,向TCP1008A传输。此时, 将所去除的报头Fll的内容和报头F12、报头13的各报头的内容通知给 再封装1008D。封装解除1008G在从帧解析10081发送来的分组(Ether over SSL帧 格式FIO形式)中去除INET MAC Fl 1报头、INETIPF12、 INET TCP F13 的各报头后,向碎片组合1008C传输。此时,将所去除的F11 F13的各 报头的内容通知给再封装1008E。此外,当通过设定在INET TCP F13的 位置设定有UDP报头而不是TCP报头时,将该UDP报头的内容通知给再 封装1008E。帧解析1008H从IP栈1007接收帧,并且根据MAC地址、IP地址、 TCP报头、UDP报头等,来判别帧是否为与高速化处理相关的帧,如果为 与TCP会话的建立处理的高速化相关的帧,则向封装解除1008F传输, 如果为其他帧,向多路复用器1008K传输。在帧的判定中所需的信息由中 继应用程序1001经设定管理部1008L来通知。帧解析10081从驱动部1009接收帧,并且根据MAC地址、IP地址、 TCP报头、UDP报头等,来判别帧是否为与高速化处理相关的帧,如果为 与高速化处理相关的帧,则向封装解除1008G传输,如果为其他帧,向多 路复用器1008J传输。在帧的判定中所需的信息由中继应用程序1001经 设定管理部1008L来通知。再有,帧解析10081从驱动部1009接收帧,当帧为与设备或高速化引 擎的控制相关的特殊帧(以后称作控制帧)时,将该控制帧向控制帧收发 部1008M传输。通常根据MAC DA和MAC SA来判断是否为特殊帧。当 在MAC DA或MAC SA的任一个中记载有预先规定的地址范围的MAC 地址(称作控制用MAC地址。例如00004C0000xx)时,判断该帧为控制 帧。多路复用器1008J从帧解析10081和再封装1008E接收帧,并且向IP 栈1007传输。此时,进行缓冲动作,以便防止因帧的同时到达而发生缺 失。多路复用器1008K从帧解析1008H和再封装1008D接收帧,并且向 驱动部1009传输。此时,进行缓冲动作,以便防止因帧的同时到达而发 生缺失。设定管理部1008M从中继应用程序1001收到与高速化处理相关联的 会话的信息(IP地址、端口号等)的通知,进行帧解析1008H及帧解析 10081的设定。控制帧收发部1008L将与设备或高速化引擎的控制相关的特殊帧(以 后称作控制帧)发送到多路复用器1008K,而且从帧解析10081接收控制 帧。控制帧因来自高速化引擎控制2001等的应用程序的请求而被发送。 而且,所接收的控制帧向适当的应用程序传输。综上所述,中间驱动部1008在两处进行与碎片相关联的处理。第一 次在TCP1008A中、这里在与TCP1003或TCP1005之间进行碎片处理。 第二次在碎片分割1008B和碎片组合1008C中、这里在与高速化引擎2014 之间进行碎片处理。这里,希望使中间驱动部1008、高速化引擎2014、 TCP1003、以及 TCP1004的碎片处理,尽量避免发生。尽可能的话,在终端21内的TCP2102 中将最大帧长较小地设定,通过这样,能够防止此处的碎片处理的发生。 尤其,高速化引擎2014中的碎片组合处理其硬件构成非常复杂,因此设 定终端21或服务器31内的TCP最大帧长,以便尽量不进行该碎片组合处 理。
图8是详细地示出了图5中的NIC101的构成的框图。 NIC101由MAC1011 、 PHY1012和端口 1013构成。 MAClOll,以PCI总线等的高速接口与CPU100连接,并且以Mil 等的接口与PHY1012连接,是进行这两个接口之间的中介的硬件。 MAC1011如果从CPU100侧收取数据(帧),则进行附加发送源MAC地 址(MAC SA)等的控制,并且将所收取的帧向PHY1012侧传输。相反地, 从PHY1012侧收取帧,并且根据目的地MAC地址(MACDA)来判断是 否为发给自节点的帧,如果为发给自节点或广播*组播的帧,则向CPU100 侧传输。PHY1012以Mil等接口与MAC1011连接,以IEEE802.3标准(10BASE 一T、 100BASE—TX、 1000BASE—T、 1000BASE—SX等)的接口与端口 1013连接,是进行这两个接口的中介的硬件。PHY1012如果从MAC1011 侧收取数据(帧),则变换为适于端口 1013侧的信号(电信号或光信号), 并且经端口 1013发送到电缆。另外,从端口 1013侧接收信号(电信号或 光信号),则变换为适于MAC1011侧的接口 (MII等)的信号,并且将 数据(帧)发送到MAC1011侧。端口 1013是连接以太网电缆(UTP或光纤等)的连接口。 图9是详细地示出了第一实施方式中的HUB11的构成的框图。 HUB11由端口 111、端口 112、端口 113和网桥114构成。 端口 111是与图8的NICIOI中的端口 1013同样地连接以太网电缆 (UTP或光纤等)的连接口。 端口 112与端口 111相同。 端口 113与端口 111相同。网桥114具有从端口 1U 端口 113收取帧,参照目的地MAC地 址,向端口 111 端口 113的任一个传输帧的功能。还具有,在接收帧时, 参照发送源MAC地址,进行MAC地址的学习,并且记录具有哪个MAC 地址的终端连接于哪个端口的功能。具有假如,在接收帧时,即使参照 目的地MAC地址也没有学习MAC地址的情况下,向输入了帧的端口以 外的端口广播帧的功能。网桥14存在由硬件构成的情况和由在CPU上进行动作的软件构成的
情况这两种。假如由软件构成的情况下,在CPU内除了网桥软件以外与 驱动部等相关联的软件也进行动作。在图9中省略记载了相当于图8所记载的NIC的部分。艮卩,图8中的 MAC作为网桥114的一部分功能而内置于网桥114、或者作为端口 111 113的一部分功能而内置于端口 111 113。同样地,PHY也作为网桥114 的一部分功能而内置于网桥114、或者作为端口 111 113的一部分功能而 内置于端口 111 113。图10是详细地示出了第一实施方式中的网关装置20内所存在的、在 CPU200内动作的软件构成的框图。在CPU200内动作的软件由高速化引擎控制2001、 SSL2002、 TCP2003、 IP路由2004、 IP栈2005、中间驱动部2006、驱动部2007构 成。此外,网关装置20具有与图5所示的会话中继装置10同样的硬件构 成,但是在标注符号上不同之处在于,在图5中CPU100变成CPU200, NIC101变成NIC201等。在图10中所举出的软件中的TCP2003、 IP路由2004、 IP栈2005是 通常包含于Windows、 Linux、 BSD等OS (操作系统)中的软件。尤其, 在Windows的情况下, 一般来说用户不能改写该软件的程序。在CPU200内实际上除了图10所示的软件以外还有很多软件进行动 作,但是在图IO中省略了与本发明无关的软件。高速化引擎控制2001进行以下所举出的动作。(1) 针对SSL2002进行与会话中继装置10内的中继应用程序1001 之间的SSL会话的连接及断开所需要的设定。(2) 将SSL会话的对象设备(会话中继装置10)的IP地址或目的 地端口、自节点(网关装置20)侧的SSL会话的发送源端口号或发送源 IP地址、以及针对SSL会话的对象设备(会话中继装置IO)的IP地址进 行ARP查询的结果所得到的目的地MAC地址和自节点的发送源MAC地 址,经由中间驱动部2006通知给高速化引擎2014。从中间驱动部2006 到高速化引擎2014之间使用控制帧传输地址等。(3) 如果从SSL2002收到SSL会话的对象(会话1001内的SSL1002)
的认证完成通知,则将高速化处理幵始命令、对象的公开密钥、自身的秘密密钥和予共享密钥,经由中间驱动部2006向高速化引擎2014传输。从 中间驱动部2006到高速化引擎2014之间,使用控制帧来传输公开密钥、 秘密密钥和予共享密钥。此外,在本实施方式中的高速化处理开始命令, 采用经由中间驱动部2006向高速化引擎2014传输对象的公开密钥、自身 的秘密密钥和予共享密钥的构成进行说明,但是也可综合对象的公开密 钥、自身的秘密密钥和予共享密钥作为高速化处理开始命令。(4) 在SSL会话的设定完成时以及切断时,经由中间驱动部2006命 令高速化引擎2014开始以及结束加密处理。此时,从中间驱动部2006到 高速化引擎2014之间,使用控制帧来传输加密处理的开始以及结束的命 令。(5) 由高速化引擎2014接收经由中间驱动部2006所通知的SSL会 话的断开请求,对SSL2002进行断开请求。SSL2002具有交换用于加密的证书或公开密钥、秘密密钥和予共享 密钥(pre-shared key)等信息的功能。在本实施方式中,SSL2002与SSL1002 之间交换证书(公开密钥)。而且,按照PKI等方式进行证书的署名确认 等,当得到认证时,向高速化引擎控制2001通知认证完成。通常,SSL将加密和解密处理也一并进行,但是在本实施方式中,在 网关装置20中不进行加密和解密处理,在高速化引擎2014中进行加密和 解密。在本实施方式中,在会话中继装置10中由SSL1002和SSL1004进 行加密和解密。TCP2003具有通过如下的(1) (4)所示的通常的TCP处理,将 数据整理成一定形式的格式而进行封装,或从分组中还原数据的功能。(1) 从SSL2002、或者在不使用SSL2002时从高速化引擎控制2001 收取数据,并且对所收取的该数据附加用于检测分组的缺失或顺序逆转的 TCP报头后,发送到IP路由2004。这里,当大数据的情况下,进行分割(也称作碎片)处理。(2) 从IP路由2004收取分组,参照TCP报头来检测顺序逆转或分 组的缺失,当既没有发生顺序逆转也没有发生缺失时,从分组中去掉TCP 报头后发送到SSL2002,当不使用SSL2002时发送到封装应用程序2001 。
此时,将用于通知分组已到达的情况的ACK分组返回给分组的发送源。(3) 在(2)中,当发生分组的缺失时,发送重传请求分组。另外, 当发生顺序逆转或碎片时,等待后面到达的分组,来还原数据。(4) 在建立TCP会话时,发送TCP会话建立请求分组(SYN分组)。 收取ACK分组,调整(1)中的分组的发送速度来进行拥塞控制。IP路由2004具有从TCP2003或IP栈2005收取分组,参照目的地 IP地址和目的地端口号,向IP栈2005或TCP2003传输分组的功能。 IP栈2005具有以下所示的功能(1) 从IP路由2004收取分组,并对该分组附加MAC地址等的 Ethernet报头后,交给网桥2006。(2) 在从网桥2006所接收的帧中去掉MAC报头后,交给IP路由2004。(3) 为了决定(1)中所附加的MAC地址等,而收发ARP协议。(4) 通过DHCP协议或手动设定,接受IP地址、默认路由、子网掩 码等在IP通信中所需要的设定,并对它们进行管理。中间驱动部2006是与图7所示的中间驱动部1008同样的中间驱动部。 中间驱动部2006具有以下举出的五个功能。此外,由于对中间驱动部1008 的具体构成与中间驱动部1008同样,因此省略。(1) 具有TCP处理功能,使TCP1003终结。(2) 具有碎片处理功能(碎片分割处理、碎片组合处理),当流过 驱动部2007侧的帧的大小较大的情况下进行分割,而且当从驱动部2007 侧所到达的帧被预先分割的情况下,进行组合处理。(3) 具有封装及封装解除功能,对从IP栈2005侧发送来的分组附 加、去除或者修改适当的报头后,向驱动部2007侧传输。另外,去除、 附加或修改从驱动部2007侧发送来的帧的报头后,向IP栈2005侧传输。(4) 从高速化引擎控制2001收取作为上述(1) (3)的处理对象 的帧的识别所需要的信息。(5) 根据来自高速化引擎控制2001的请求,制定控制帧并发送给驱 动部2007。而且,由驱动部2007接收所到达的控制帧后,通知给高速化 引擎2001。
驱动部2007是进行在NIC201和CPU200内进行动作的软件之间的中 介的软件,具有从NIC201收取分组后,发送到中间驱动部2006的功能, 还具有从中间驱动部2006收取帧后,发送到NIC201的功能。图11是详细地示出了第一实施方式中的网关装置20内所存在的 NIC201的构成的框图。NIC201由MAC2011、PHY2012、端口 2013和高速化引擎2014构成。MAC2011进行与图8中的MAClOll同样的动作。PHY2012进行与图8中的PHY1012同样的动作。端口2013是连接以太网电缆(UTP或光纤等)的连接口。高速化引擎2014是以嵌入到MAC2011与PHY2012之间的接口(MII 等)中的形式被安装,并且进行采用SSL会话进行通信时的加密、解密、 封装、封装解除、碎片分割、碎片组合的各处理的硬件。另外,为了收发 高速化引擎2014的动作所需要的设定信息,而进行控制帧的收发。通常 由FPGA或ASIC等集成电路来实现高速化引擎2014。对高速化引擎2014进行详细的说明。图12是详细地示出了图11中的高速化引擎2014的构成的框齒。高速化引擎2014由接口 2014A、帧解析2014B、接口 2014C、控制帧 解析2014D、多路复用器2014E、多路复用器2014F、加密2014G、碎片 分割2014H、封装20141、封装解除2014J、封装解除2014K、解密2014L 和控制帧收发部2014M构成。接口 2014A是进行连接PHY2012的总线(Mil)等与高速化引擎之间 的中介的部分。将从PHY2012侧所到达的帧变换为适于高速化引擎的动 作的信号,并且向帧解析2014B传输。另外,将从高速化引擎侧也就是多 路复用器2014F向PHY2012侧发送的帧,变换为适于与PHY2012连接的 总线(Mil)等的信号。帧解析2014B从接口 2014A接收帧,按以下所示的(1) (4)的 顺序来决定目的地后进行传输。(1) 如果为发给自节点并且为预先设定的SSL会话的帧(如果为由 会话中继装置IO加密后的帧),则将该帧向封装解除2014J传输。(2) 如果为(O以外的自节点的帧,则将所接收的帧向多路复用器2014E传输。(3) 如果为对MAC DA附加了广播MAC或广播MAC的广播帧、 或者组播帧,则复制该帧而向多路复用器2014E和加密2014G传输。(4) 如果为(1) (3)以外的帧,则向加密2014G传输。接口 2014C是进行连接MAC2011的总线(Mil)等与高速化引擎之 间的中介的部分。将从MAC2011侧所到达的帧变换为适于高速化引擎的 动作的信号,并且向帧解析2014D传输。另外,将从高速化引擎侧也就是 多路复用器2014E向MAC2011侧发送的帧,变换为适于与MAC2011连 接的总线(Mil)等的信号。控制帧解析2014D从接口 2014C接收帧,当帧为与高速化引擎的控 制相关的特殊帧(以后称作控制帧)时,将该控制帧向控制帧收发部2014M 传输。当不是特殊帧时向多路复用器2014F传输。通常根据MAC DA和 MAC SA来判断是否为特殊帧。当在MAC DA或MAC SA的任一个中记 载有预先规定的地址范围的MAC地址(称作控制用MAC地址。例如 00004C000000 FF)时,判断该帧为控制帧。多路复用器2014E从帧解析2014B和控制帧收发部2014M接收帧, 如果有必要,则在队列中保存并调整发送定时后,向接口2014C发送。在 队列中进行保存是为了避免从帧解析2014B侧所到达的帧与从控制帧收 发部2014M侧所到达的帧之间的冲突。多路复用器2014F从控制帧解析2014D、封装20141以及解密2014L 接收帧,如果有必要,则在队列中保存并调整发送定时后,向接口2014A 发送。在队列中进行保存是为了避免从控制帧解析2014D、封装20141以 及解密2014L的各部分所到达的帧之间的冲突。加密2014G从帧解析2014B接收帧,以3DES等方法进行加密后,向 碎片分割2014H传输。用于加密的公开密钥和予共享密钥利用由控制帧收 发部2014M所通知的公开密钥的予共享密钥。碎片分割2014H进行与图7所示的中间驱动部1008内的碎片分割 1008B同样的动作。g卩,从加密2014G收取分组,并且向封装2014I传输。 此时,假如分组的大小大于预先设定的大小时,对分组进行分割(碎片分 割处理)之后,向封装20141传输。
封装20141进行与图7所示的中间驱动部1008内的再封装1008D同 样的动作。即,对从碎片分割2014H发送来的数据(图3中的F14)附加 INETMACFll、 INETIPF12、 INET TCP F13的各报头,向多路复用器 2014F传输。所附加的F11 F13的各报头的值由控制帧收发部2014M来 通知。此外,通过设定还能够在INETTCPF13的位置设定UDP报头,而 不是TCP报头。在封装20141中附加TCP报头F13是为了防止因通信路径上存在的防 火墙或NAT路由器等(在图1的例子中为防火墙23)而分组被拦截的情 况。在对F13设定了UDP报头时,如果在通信路径上存在防火墙或NAT 路由器等,则有可能通信被拦截。在封装20141中所附加的TCP报头在格 式上具有TCP的形式,但是在实际上由于TCP不是所附加的报头,因此 不在拥塞控制或重传控制中使用。这里所附加的报头F13始终是用来通过 防火墙或NAT的,实际的拥塞控制或重传控制通过存在于终端21或服务 器31内的TCP (图3的帧格式F10中的F23的TCP报头部分)而进行。封装解除2014J进行与图7所示的中间驱动部1008内的封装解除 1008G同样的动作。封装解除2014J在从帧解析2014B发送来的分组(Ether over SSL帧格式F10形式)中去除INET MAC Fl 1、INET IP F12、INET TCP F13的各报头,向碎片解除2014K传输。此外,当通过设定在INET TCP F13 的位置设定有UDP报头而不是TCP报头时,进行与TCP报头时同样的处 理。碎片解除2014K进行与图7所示的中间驱动部1008内的碎片组合 1008C同样的动作。碎片解除2014K从封装解除2014J收取分组,并且向 解密2014L传输。此时,假如对分组附加有表示分割的标志时,暂时保存 分组,并且等待后面到达的分组而结合分组后,向解密2014L传输。将该 处理称作碎片组合处理。解密2014L从碎片解除2014K接收帧,通过3DES等方法迸行解密后, 向多路复用器104F传输。用于解密的秘密密钥和予共享密钥利用由控制 帧收发部2014M所通知的公开密钥的予共享密钥。控制帧收发部2014M,与图7所示的中间驱动部1008内的控制帧收 发部1008M之间,进行控制帧的收发。控制帧收发部2014M向多路复用
器2014E发送与高速化引擎的控制相关的特殊帧(以后称作控制帧),而 且从控制帧解析2014D接收控制帧。当用控制帧收取到公开密钥时,通知 给加密2014G。当用控制帧收取到秘密密钥时,通知给解密2014L。当用 控制帧收取到予共享密钥时,通知给加密2014G和解密2014L。当用控制 帧收取到SSL会话的对象设备(会话中继装置IO)的IP地址或目的地端 口、自节点(网关装置20)侧的SSL会话的发送源端口号或发送源IP地 址、以及目的地MAC地址与自节点的发送源MAC地址时,通知给帧解 析2014B。再有,当用控制帧收取开始及结束加密处理的命令时,通知给 帧解析2014B。如上所述,高速化引擎2014,与中间驱动部2006或中间驱动部1008 成对而进行处理。图13是详细地示出了第一实施方式中的终端21内所存在的、在 CPU210内动作的软件构成的框图。在CPU内动作的软件由应用程序2101、 TCP2102、 IP路由2103、 IP 栈2104和驱动部2105构成。此外,终端21具有与图5所示的会话中继装置10同样的硬件构成, 但是不同之处在于,图5中的CPUIOO变成CPU210,NIC101变成NIC2U。在图13所举出的软件中的TCP2102、 IP路由2103、 IP栈2104是通 常包含于Windows、 Linux、 BSD等OS (操作系统)中的软件。尤其,在 Windows的情况下, 一般来说用户不能改写程序。在CPU210内实际上除了图13所示的软件以外还有很多软件进行动 作,但是在图13中省略了与本发明无关的软件。应用程序2101是与服务器31内的应用程序3101进行双方向通信的 应用程序。应用程序2101采用了 WEB浏览器作为代表,在该情况下,服 务器31内的应用程序3101采用WEB服务器应用程序。应用程序2101除 了 WEB浏览器软件之外还能够采用TELNET客户端软件、FTP客户端软 件、会计客户端软件、文件共享客户端软件、数据库客户端软件等各种应 用程序。在该情况下,服务器31内的应用程序3101也与应用程序2101对应 而采用TELNET服务器软件、FTP服务器软件、会计服务器软件、文件共享服务器软件、数据库服务器软件等。TCP2102进行与图10所示的TCP2003或图6所示的TCP1003和 TCP1005同样的动作。即,TCP2102具有通过以下的(1) (4)的处理, 将数据整理成一定形式的格式而进行封装,或从分组中还原数据的功能。(1) 从应用程序2101收取数据,并且对该数据附加用于检测分组的 缺失或顺序逆转的TCP报头后,发送到IP路由2103。这里,当大数据的 情况下,进行分割(也称作碎片)处理。(2) 从IP路由2103收取分组,参照TCP报头来检测顺序逆转或分 组的缺失,当既没有发生顺序逆转也没有发生缺失时,从分组中去掉TCP 报头后发送到应用程序2101。此时,将用于通知分组已到达的情况的ACK 分组返回给分组的发送源。(3) 在(2)中,当发生分组的缺失时,发送重传请求分组。另外, 当发生顺序逆转或碎片时,等待后面到达的分组,来还原数据。(4) 收取ACK分组,调整(1)中的分组的发送速度。这里,在TCP2102中将最大帧长较小地设定。这是为了防止中间驱动 部1008、高速化引擎2014、 TCP1003以及TCP1004的碎片处理。IP路由2103进行与图10所示的IP路由2004或图6所示的IP路由 1006同样的动作。即,IP路由2103具有从TCP2102或IP栈2104收 取分组,参照目的地IP地址和目的地端口号,向IP栈2104或TCP2102 传输分组的功能。IP栈2104进行与图10所示的IP栈2005或图6所示的IP栈1007同 样的动作。即,IP栈2104具有以下所示的功能。(1) 从IP路由2103收取分组,并对该分组附加MAC地址等的 Ethernet报头后,交给驱动部2105 。(2) 在从驱动部2105所接收的帧中去掉MAC报头后,交给IP路由2103。(3) 为了决定(1)中所附加的MAC地址等,而收发ARP协议。(4) 通过DHCP协议或手动设定,接受IP地址、默认路由、子网掩 码等在IP通信中所需要的设定,并对它们进行管理。驱动部2105进行与图10所示的驱动部2007或图6所示的IP栈1007
同样的动作。即,驱动部2105是进行NIC211与CPU210内动作的软件之 间的中介的软件,具有从NIC211收取分组,发送到IP栈2104的功能, 还具有从IP栈2104收取分组,发送到NIC211的功能。
图14是详细地示出了第一实施方式中的防火墙23的构成的框图。
防火墙23是在图5所示的会话中继装置10上追加了 NIC232的构成 的计算机。防火墙23由CPU230、 NIC231、 NIC232、存储器233、 HDD234、 键盘235、鼠标236和图形部237构成,但是也有未连接有键盘、鼠标、 图形部的情况。
CPU230与图5中的CPUIOO相同。NIC231与图5中的NICIOI相同。NIC232与图5中的NICIOI相同。对存储器233、 HDD234、键盘235、鼠标236、图形部237而言,分 别与图5中的存储器102、 HDD103、键盘104、鼠标105、图形部106相同。
图15是详细地示出了第一实施方式中的防火墙23内存在的、在 CPU230内动作的软件构成的框图。
在CPU230内动作的软件由IP路由2301、 IP栈2302、 IP栈2303、 驱动部2304和驱动部2305构成。在图15所举出的软件中的IP路由2301、 IP栈2302和IP栈2303是 通常包含于Windows、 Linux、 BSD等OS (操作系统)中的软件。尤其, 在Windows的情况下, 一般来说用户不能改写该软件的程序。
在CPU230内实际上除了图15所示的软件以外还有很多软件进行动 作,但是在图15中省略了与本发明无关的软件。
IP路由2301具有从IP栈2302或IP栈2303收取分组,参照目的 地IP地址和目的地端口号,向IP栈2303或IP栈2302传输分组的功能。 此时,IP路由2301进行按照预定的设定,对互联网l (IP栈2303侧)与 企业内部网2 (IP栈2302侧)之间的通信进行限制的动作。例如,从企 业内部网2内部的装置采用TCP向互联网1的各装置进行了开始通信的请 求时,以后的通信可在双方向上自由地进行,相反地,当从互联网l的各 装置采用TCP向企业内部网2的各装置进行了开始通信的请求时,该请求
被拦截,而且连以后的通信也在双方向上被拦截。在拦截时,进行丢弃分 组的处理。IP栈2382进行与图13所示的IP栈2104、图10所示的IP栈2005或 图6所示的IP栈1007相同的动作。即,IP桟2302具有以下所示的功能。(1) 从IP路由2301收取分组,并对该分组附加MAC地址等的 Ethernet报头后,交给驱动部2304。(2) 在从驱动部2304所接收的帧中去除MAC报头后,交给IP路由2301。(3) 为了决定(1)中所附加的MAC地址等,而收发ARP协议。(4) 通过DHCP协议或手动设定,接受IP地址、默认路由、子网掩 码等在IP通信中所需要的设定,并对它们进行管理。IP栈2303进行与IP栈2302同样的动作。驱动部2302进行与图10所示的驱动部2007或图6所示的IP栈1007 相同的动作。即,驱动部2302是进行NIC231与CPU230内动作的软件之 间的中介的软件,具有从NIC231收取分组,并且发送到IP栈2302的功 能,还具有从IP栈2302收取分组,并且发送到NIC231的功能。驱动部2305进行与驱动部2302同样的动作。 (动作说明)(SSL会话的建立动作)采用图16,以在第一实施方式中从网关装置20向会话中继装置10 建立SSL会话(安全TCP会话)时为例,进行动作说明。此时,假设HUB22或HUB32已学习了终端2K服务器31、防火墙 23的LAN侧、防火墙33的LAN侧、网关装置20、网关装置30的MAC 地址。另外,假设HUB11学习了防火墙23的WAN侦lj、防火墙33的WAN 侧、会话中继装置10的各装置的MAC地址。另外,假设防火墙23及防 火墙33,当从企业内部网内部的装置(LAN侧)采用TCP向互联网的各 装置(WAN侧)进行了开始通信的请求时,开始通信的请求以后的通信 可在双方向上自由地进行,相反地,当从互联网的各装置(WAN侧)采 用TCP向企业内部网的各装置(LAN顶D进行了开始通信的请求时,该 请求被拦截,而且连以后的通信也在双方向上被拦截。
会话中继装置10内的中继应用程序1001如果起动后处于等待来自网关装置20的连接的状态,则向中间驱动部1008通知开始等待。在该通知 中包含会话中继装置10的P地址、中继应用程序1001的等待端口号。中间驱动部1008如果收到来自中继应用程序1001的通知,则按照在 帧解析处理中发给中继应用程序1001的分组所到达时,能够进行TCP连 接/终结等处理的方式进行设定。网关装置20内的高速化引擎控制2001接收来自用户的向会话中继装 置10内的中继应用程序1001的连接请求,向SSL2002指示与会话中继装 置10内的中继应用程序1001开始通信。同时,向中间驱动部2006通知 与会话中继装置10内的中继应用程序IOOI.开始通信。在该通知中包含会 话中继装置10的IP地址、中继应用程序1001的端口号、高速化引擎控 制2001的发送源端口号、以及网关装置20的IP地址。SSL2002收到来自高速化引擎控制2001的开始通信指示,为了与 SSL1002之间建立SSL会话,向TCP2003指示与会话中继装置10内的中 继应用程序1001开始通信。TCP2003收到来自SSL2002的开始通信指示,为了与TCP1003之间 建立TCP会话,向IP路由2004发送与TCP1003的TCP会话建立请求分 组(SYN)。该分组是遵守TCP标准的分组,在目的地IP地址中设定以 会话中继装置IO为目的地,在目的地端口号中设定TCP1003。该TCP会 话建立请求分组是指,在建立TCP会话时,为了三路握手(three way handshake)而所发送的SYN分组。在本说明书中,为了简化TCP会话建 立动作的说明,在三路握手中所收发的分组中,将SYN分组称作TCP会 话建立请求分组,将SYN分组+ACK分组称作响应分组。另外,在实际 上还发送ACK分组,但是由于对ACK分组而言与SYN分组同样地传输, 因此在本动作说明中省略说明。IP路由2004参照从TCP2003所接收的分组的目的地IP地址和目的 地端口号,向IP栈2005传输分组。IP栈2005对从IP路由2004所接收的分组附加防火墙23内的企业内 部网2侧的MAC地址作为目的地MAC地址,而且在发送源MAC地址中 设定自节点的MAC地址来制定帧后,向中间驱动部2006传输。 中间驱动部2006从IP栈2005接收帧,并且进行帧解析。解析的结 果,由于帧为附加有由高速化引擎控制2001所通知的目的地IP、目的地 端口、发送源IP、发送源端口的帧,因此在封装解除中去掉MAC报头, 使之成为分组。并且,用中间驱动部2006的TCP使从TCP2003到TCP 1003 的TCP处理终结。g卩,TCP2003本来向TCP1003发送了 TCP会话建立请 求,但是在实际上针对该请求由中间驱动部2006内的TCP进行接收而保 留,在TCP2003与中间驱动部2006内的TCP之间,使TCP会话建立终 结。中间驱动部2006,在使上述建立请求的处理终结时,为了向中间驱动 部1008请求与TCP1003之间进行会话(UDP等的无拥塞控制的会话)的 连接,而向驱动部2007发送连接请求的分组。此外,该连接请求分组是 本发明的通信系统中的独创的分组,而不是遵守TCP标准的分组。在该连 接请求分组中将会话中继装置10设定为目的地IP地址,将TCP1003设定 为目的地端口号。并且,对该分组附加防火墙23内的企业内部网2侧的 MAC地址作为目的地MAC地址,而且在发送源MAC地址中设定自节点 的MAC地址,来生成连接请求帧。驱动部2007从中间驱动部2006接收连接请求帧,并且向MAC2001 传输。MAC2011从驱动部2007接收连接请求帧,并且向高速化引擎2014 传输。高速化引擎2014从MAC2011接收连接请求帧,并且直接向PHY2012 传输。PHY2012从高速化引擎2014接收连接请求帧,并且向端口2013传输。 端口 2013从PHY2012接收连接请求帧,并且经由以太网电缆向端口 222传输。端口 222从端口 2013接收连接请求帧,并且向网桥224传输。 网桥224如果接收到来自端口 222的连接请求帧,则参照MACDA, 由于MAC DA为防火墙23的LAN侧的地址,因此根据过去的路由学习 结果,将该帧直接向防火墙23侧的端口 (端口 223)输出。端口 223从网桥224接收连接请求帧,并且经由以太网电缆向防火墙
23内的端口 2313传输。防火墙23从HUB22内的端口 223接收连接请求帧,以端口 2313、 PHY2312、 MAC2311、驱动部2304、 IP栈2302、 IP路由2301、 IP栈2304、 驱动部2305、 MAC2321、 PHY2322、端口 2323的路径,传输帧,并且向 HUB11内的端口 11传输。HUB11内的端口 111从端口 2323接收连接请求帧,并且向网桥114 传输。网桥114如果接收到来自端口 111的连接请求帧,则参照MACDA, 由于MACDA为会话中继装置IO侧的地址,因此根据过去的路由学习结 果,将该帧直接向会话中继装置10侧的端口 (端口 112)输出。端口 112从网桥114接收连接请求帧,并且经由以太网电缆向会话中 继装置10内的端口 1013传输。会话中继装置10从HUB22内的端口 112接收连接请求帧,以端口 1013、 PHY1012、 MAClOll、驱动部1009的路径传输帧,传输到中间驱 动部1008。中间驱动部1008从驱动部1009接收连接请求帧,进行帧的解析。解 析的结果,由于帧为附加有预先由中继应用程序1001所通知的指向中继 应用程序IOOI的目的地IP及目的地端口的帧,因此接收该帧,在封装解 除中去掉MAC报头,使之成为分组。由于该分组为从中间驱动部2006 向中间驱动部1008所发送的、指向TCP1003的连接请求分组,因此中间 驱动部1008内的TCP为了与TCP1003之间建立TCP会话,而发送与 TCP1003建立会话所需要的分组。该分组为遵守TCP标准的分组,在目 的地IP地址中设定以会话中继装置10为目的地,在目的地端口号中设定 TCP1003,而且在发送源IP地址中设定网关装置20的IP地址,在发送源 端口号中设定TCP2003的端口号。而且,在该分组中由中间驱动部1008 内的再封装1008E附加MAC地址,从而以帧的形式向IP栈1007传输。 会话建立所需要的分组是指,在建立TCP会话时,为了三路握手(three way handshake)而所发送的SYN分组分组。在本说明书中,为了简化TCP会 话建立动作的说明,在三路握手中所收发的分组中,将SYN分组称作TCP 会话建立请求分组,将SYN+ACK分组称作响应分组。另外,在实际上
还发送ACK分组,但是由于对ACK分组而言与SYN分组同样地传输, 因此省略说明。中间驱动部1008内的TCP冒充TCP2003的名称向TCP1003发送连 接请求。从而,TCP1003识别成如同与TCP2003通信,而且TCP2003也 识别成如同与TCP1003通信。但是,在实际的TCP的建立处理在TCP2003 与中间驱动部2006内的TCP之间、以及在中间驱动部1008与TCP1003 之间进行,再有,在中间驱动部2006与中间驱动部1008之间,以UDP 等的无拥塞控制的方法(本发明的通信系统中的独创分组)另行进行通信。 而且,TCP2003与中间驱动部2006之间的TCP会话、中间驱动部2006 与中间驱动部1008之间的UDP等一些通信会话、以及中间驱动部1008 与TCP1003之间的TCP会话,由中间驱动部2006和中间驱动部1008彼 此连接 中继,通过这样,如同在TCP2003与TCP1003之间建立TCP会 话那样进行通信。IP栈1007从中间驱动部接收帧,并且在该帧中去掉MAC报头而使 之成为分组后向IP路由1006传输。IP路由1006参照从IP栈1007所接收的分组的目的地端口号,由于 附加有TCP1003侧的端口号,因此向TCP1003传输该分组。TCP 1003从IP路由1006接收分组。由于该分组为TCP会话建立请求 分组(SYN),因此按照TCP协议,针对会话的建立请求返回响应分组(SYN +ACK)。此时,TCP1003将TCP会话建立请求识别成从TCP2003所送 到的TCP会话建立请求。这是,实际的建立请求是从中间驱动部1008内 的TCP所发送的建立请求,但是由于中间驱动部1008内的TCP冒充 TCP2003而向TCP1003进行了 TCP会话建立请求,因此TCP1003识别成 如同与TCP2003建立会话。从而,TCP1003以TCP2003为目的地发送响应分组(SYN+ACK)。 即,将网关装置20的IP地址设定为响应分组的目的地IP,将TCP2003 的端口号设定为响应分组的目的地端口。响应分组经由IP路由1006发送到IP栈1007,这里被附加MAC报头 而成为响应帧,并且到达中间驱动部1008。中间驱动部1008如果接收到响应帧,则在中间驱动部1008内的封装 解除中去掉响应帧的MAC报头来取出响应分组,用TCP接收该响应分组 (SYN+ACK)并返回ACK分组,从而使TCP处理终结。并且,向中间 驱动部2006发送用于会话(UDP等的无拥塞控制的会话)的连接完成通 知的连接完成通知分组。该连接完成通知分组是本发明的通信系统中的独 创的分组,而不是遵守TCP标准的分组,将网关装置20设定为目的地IP 地址,将TCP2003设定为目的地端口号,将会话中继装置IO设定为发送 源IP地址,将TCP1003设定为发送源端口号。并且,在中间驱动部1008 内的再封装1008D中对连接完成通知分组附加MAC报头,来生成连接完 成通知帧。连接完成通知帧经由与连接请求帧相反的路径也就是驱动部1009、 NICIOI、 HUBll、 NIC232、 CPU230、 NIC231、 HUB22、 NIC201,到达 CPU200内的中间驱动部2006。中间驱动部2006接收连接完成通知帧,并且进行帧解析。解析的结 果,由于所接收的帧为附加有预先由高速化引擎控制2001通知的指向高 速化引擎控制2001的目的地IP及目的地端口的帧,因此接收该分组,并 且在封装解除中去掉MAC报头,使之成为分组。由于分组是从中间驱动 部1008向中间驱动部2006所发送的、TCP1003与中间驱动部1008之间 的连接完成通知分组,因此中间驱动部2006内的TCP为了按照TCP协议 向TCP2003发送会话建立所需要的响应分组(SYN+ACK),而向IP栈 2005发送响应分组。响应分组经由IP栈2005、 IP路由2004,到达TCP2003。TCP2003从IP路由2004接收响应分组(SYN+ACK)。由于该分组 是针对TCP会话的建立请求的响应分组,因此向SSL2002通知与TCP1003 的TCP会话连接完成。此时,TCP2003将所接收的响应分组(SYN+ACK) 识别成从TCP1003所送到的响应分组。这是,实际的响应分组是从中间驱 动部2006内的TCP所发送的建立请求,但是由于中间驱动部2006内的 TCP冒充TCP1003而向TCP2003进行了 TCP会话建立的响应,因此 TCP2003识别成如同从TCP1003有了响应。TCP2003如果接收到响应分组(SYN+ACK),则针对该响应分组生 成ACK分组而以TCP1003为目的地进行发送。中间驱动部2006的TCP 经由IP路由2004和IP栈2005接收该ACK分组,使TCP处理终结。SSL2002收到来自TCP2003的连接完成通知,为了与SSL1002之间 建立SSL会话,按照SSL协议,发送用于SSL会话的建立请求用的分组 (SSL会话建立请求分组)。SSL会话建立请求分组如果由TCP2003所接收,则通过TCP2003与 中间驱动部2006内所设定的TCP会话,到达中间驱动部2006。中间驱动部2006,使SSL会话建立请求分组的TCP终结,并且附加 UDP等的不进行拥塞控制的报头后,向中间驱动部1008发送分组。分组 经由NIC201、 HUB22、 NIC231、 CPU230、 NIC232、 HUBll、 NICIOI, 到达中间驱动部1008。此时,NIC201内的高速化引擎2014将从MAC1011 所接收的分组直接向PHY2012传输。中间驱动部1008如果接收到SSL会话建立请求分组,则通过中间驱 动部1008内的TCP与TCP1003之间所设定的TCP会话,到达TCP1003。TCP1003向SSL1002传输分组。SSL1002验证SSL会话建立请求的内容,如果没有问题,则向中继应 用程序1001通知与SSL2002的会话建立,同时,按照SSL协议,向SSL2002 发送SSL会话建立响应分组。SSL会话建立响应分组经由与SSL会话建立请求分组相反的路径也就 是TCP1003与中间驱动部1008之间的TCP会话,到达中间驱动部1008, 并且经由中间驱动部1008与中间驱动部2006之间的UDP等的无拥塞控 制的会话,到达中间驱动部2006。再有,经由中间驱动部2006与TCP2003 之间的TCP会话,到达SSL2002。SSL2002按照SSL协议对SSL会话建立请求的内容进行验证,如果 没有问题,则向高速化引擎控制2001通知SSL2002与SSL1002之间的SSL 会话建立。高速化引擎控制2001如果收到SSL会话建立通知,则向中间驱动部 2006通知由SSL会话建立通知所接收的SSL1002的公开密钥、SSL2002 的秘密密钥以及SSL1002与SSL2002之间的预共享密钥。中间驱动部2006如果收到公开密钥、秘密密钥及预共享密钥的通知, 则在控制帧中承载公开密钥、秘密密钥、预共享密钥、SSL会话的对象设
备的IP地址(会话中继装置10的IP地址)、SSL会话的对象设备的目的 地端口 ( TCP 1003的端口 )、自节点侧的SSL会话的发送源端口号(TCP2003 的端口)、发送源IP地址(网关装置20的IP地:t止)和开始命令,并且通 知给高速化引擎2014。控制帧经驱动部2007、 MAC20U,到达高速化引擎2014。 高速化引擎2014根据MAC地址等来判别控制帧,用控制帧收发部进 行接收。并且,为了分别在解密及加密中使用而保存公开密钥、秘密密钥 和预共享密钥,为了进行帧解析而保存IP地址或端口号。并且,接收高 速化处理开始命令,开始帧解析、加密及解密的处理。高速化引擎2014,在高速化处理开始命令以前,将控制帧以外的从 MAC2011所接收的帧都直接向PHY2012发送,将从PHY2012所接收的 帧都直接向MAC2011发送。但是,在高速化处理开始命令以后,将控制 帧以外的从MAC2011所接收的帧都直接向PHY2012发送,对从PHY2012所接收的帧进行如下的处理。(1) 如果为发给网关装置20、并且用SSL1002加密后的帧,则解除 UDP等的封装,如果有必要,则解除碎片,对帧进行解密后,向PHY2012 侧发送。(2) 如果为(1)以外的发给自节点的帧,则向MAC2011传输。(3) 如果为广播帧或者组播帧,则复制帧后,将一方直接向MAC2011 传输,而对另一方进行加密和封装后,向SSL1002 (PHY2012侧)发送。 如果有必要,还对碎片进行分割。(4) 如果为(1) (3)以外的帧,则进行加密和封装后,向SSL1002 (PHY2012侧)发送。如果有必要,则还对碎片进行分割。通过如上所述的方式,在高速化引擎2014与中间驱动部1008之间, 建立帧传输用的UDP等的无拥塞控制的会话。另外,在高速化引擎2014 与SSL1002之间,建立SSL会话。艮口,会话中继装置10的SSL1002仅在SSL会话建立请求时,与网关 装置的SSL1002进行互换,但是如果SSL会话建立结束,则SSL会话建 立以后,与高速化引擎2014之间进行SSL的加密和解密的互换。另外,会话中继装置10的中间驱动部1008仅在SSL会话建立请求时,
与网关装置20的中间驱动部2006进行帧的互换,但是SSL会话建立后, 与高速化引擎2014之间进行帧的互换。通过以上方式,在第一实施方式中完成在建立从网关装置20到会话 中继装置10的SSL会话(安全TCP会话)时的动作。此外,在上述的实施例中,以建立从网关装置20到会话中继装置10 的SSL会话(安全TCP会话)的情况为例,进纟^f^J作的说明,但是建 立从网关装置30到会话中继装置10的SSL会话(安全TCP会话)的动 作,进行同样的动作。另外,在上述的实施例中,采用如下构成进行了说明,即中间驱动部 2006内的TCP来接收并保留针对TCP1003的TCP会话建立请求,接收到 连接完成通知后将响应分组(SYN+ACK)发送给TCP2003,但不限于此。 即,也可采用在中间驱动部2006内的TCP接收到TCP会话建立请求时, 将响应分组(SYN+ACK)发送给TCP2003的构成。 (从终端21到服务器31的帧传输动作)采用图16,以在第一实施方式中从终端21向服务器31发送帧的情况为例,进行动作说明。此时,假设HUB22或HUB32已学习了终端21、服务器31、防火墙 23的LAN侧、防火墙33的LAN侧、网关装置20、网关装置30的MAC 地址。另外,假设HUB11学习了防火墙23的WAN侦lj、防火墙33的WAN 侧、会话中继装置10的各装置MAC地址。另外,假设防火墙23及防火 墙33,当从企业内部网内部的装置(LAN侧)采用TCP向互联网的各装 置(WAN侧)进行了开始通信的请求时,以后的通信可在双方向上自由 地进行,相反地,当从互联网的各装置(WAN侧)釆用TCP向企业内部 网的各装置(LAN侧)进行了开始通信的请求时,该请求被拦截,而且连 以后的通信也在双方向上被拦截。再有,假设从网关装置20到会话中继装置10的SSL会话(安全TCP 会话)通过上述的动作例己被设定,同样地,从网关装置30到会话中继 装置10的SSL会话(安全TCP会话)也通过与从网关装置20到会话中 继装置10的SSL会话相同的方法已被设定。另外,假设终端21内的应用程序2101与服务器31内的应用程序(应 用程序3101)之间已建立了TCP会话。终端21内的应用程序2101将发给服务器31内的应用程序的数据(相 当于图2中的F24)交给TCP2102。TCP2102从应用程序2101收取数据,并按照TCP协议附加TCP报头 (图2中的F23)或IP报头(图2中的F22)而作为IP分组,交给IP路 由2103。此时,在LANIPF22内的IPDA中设定服务器31的IP地址, 在LAN IP F22内的IP SA中设定终端21的IP地址。IP路由2103参照从TCP2102所接收的分组的目的地IP地址(发给 服务器31)和目的地端口 (发给TCP3003),将数据直接向IP桟2104传 输。IP栈2104从IP路由2103接收分组,并附加MAC报头(图2中的 F21)来制定Ethernet帧,交给驱动部2105。该帧具有Ethernet帧F20格 式。此时,IP栈2104参照ARP的结果,在设定帧的LANMACF21内的 MAC DA中设定服务器31的MAC地址,在LAN MAC F21内的MAC SA 中设定终端21的MAC地址。驱动部2105从IP栈2105收取上述帧,并且向NIC211传输。NIC211从驱动部2105收取帧,并且经由MAC211K PHY2112、端 口 2113向HUB22传输帧。HUB22如果从终端21的NIC2U侧的端口 221接收到帧,则在网桥 224中参照F21内的MACDA,由于MAC DA为服务器31的地址,因此 根据过去的路由学习结果,将该帧直接向网关装置20侧的端口 222输出。网关装置20内的NIC201用端口 2013接收来自HUB22的帧,并且经 由PHY2012交给高速化引擎2014。高速化引擎2014,由于所到达的帧的目的地MAC以服务器31为目 的地,因此在高速化引擎2014内的加密2014G中对帧进行加密,来制定 图3中的数据F14,进一步在封装2014I中附加图3中的F11 F13的各报 头,使之成为Ether over SSL帧F10格式后,再次向PHY2012侧传输。 F12内的IP SA中设定网关装置20的IP地址。对于INETTCP F13而言, 为了通过防火墙23,而附加用于可看作如同与会话中继装置10内的 TCP1003进行通信那样的TCP报头。但是,该TCP报头实际上在中间驱 动部1008中暂且被去掉,因此不会给TCP1003的拥塞控制带来影响。从 而,这里所附加的F13具有TCP报头的形式,但是实际上只发挥UDP的 作用。假如不存在防火墙23,则F13也可为UDP报头。PHY2012如果从高速化引擎2014接收到帧,则经由端口 2013向 HUB22传输帧。HUB22如果从网关装置22侧的端口 222接收到帧,则在网桥224中 参照Fl 1内的MAC DA,由于MAC DA为防火墙23的LAN侧的地址, 因此根据过去的路由学习结果,将该帧直接从端口 223向防火墙23输出。防火墙23用NIC231接收来自HUB22的帧,并且以端口 2313、 PHY2312、 MAC2311、驱动部2304的顺序进行传输后,交给IP栈2302。IP栈2302去掉MAC报头Fl 1后,发送到IP路由2301 。IP路由2301参照所接收的帧的报头F12内的IP DA,由于IP DA为 互联网1侧的存在的地址,因此向IP栈2304传输帧。IP栈2304从IP路由2301收取帧,并且附加报头Fll。这里,在Fll 内的MACDA中设定会话中继装置lO的MAC地址,在Fll内的MAC SA 中设定防火墙23的WAN侧的MAC地址。这样,使接收帧成为帧格式 FIO,并且经由驱动部2305、 MAC2321、 PHY2322、端口 2323,向HUB11 传输。HUB11如果从端口 111接收到来自防火墙23的帧,则在网桥114中 参照Fll内的MACDA,由于MACDA为会话中继装置IO的地址,因此 根据过去的路由学习结果,将该帧直接向会话中继装置10侧的端口 112 输出。会话中继装置10如果从端口 1013接收到来自HUB11的帧,则经由 PHY1012、 MAClOll、驱动部1009,向中间驱动部1008传输。中间驱动部1008从驱动部1009接收帧,该帧在接收时具有帧格式FIO 的形式,但是在封装解除1008G中去除报头Fll、报头F12、报头F13, 而只留下被加密的数据F14。然后,将数据F14交给TCP1008A,使其流
过预先设定在TCP1003与中间驱动部内的TCP1008A之间的TCP会话。中间驱动部1008内的TCP1008A对所接收的数据F14附加与TCP1003 的TCP通信所需要的TCP报头F13、IP报头F12后,发送到再封装1008E。 在F12内的IPDA中设定会话中继装置10的IP地址,在F12内的IPSA 中设定网关装置20的IP地址。中间驱动部1008内的再封装1008E如果从TCP1008A接收到数据, 则对该数据附加报头Fll后,送到IP栈1007。这里,在Fll内的MACDA 中设定会话中继装置IO的MAC地址,在Fll内的MAC SA中设定防火 墙23的WAN侧的MAC地址。通过这样,将来自TCP1008A接收帧设为 帧格式F10的形式后,向IP栈1007传输。IP栈1007去掉从中间驱动部1008所接收的帧的MAC报头Fll后, 发送到IP路由1006。IP路由1006参照所接收的帧的报头F12内的IPDA和F13内的目的 地端口号,向TCP1003传输帧。TCP1003如果从IP路由1006接收到帧,则进行按照TCP协议返回 ACK分组等的处理。并且,从所接收的帧中去掉TCP报头F13和IP报头 F12,向SSL1002传输数据F14。SSL1002如果从TCP1003接收到数据F14,则通过解密处理来解除加 密,并且从数据F14中取出Ethernet帧F20也就是F21 F24,向中继应 用程序1001传输。中继应用程序1001如果从SSL1002接收帧F20,则参照F21内的MAC DA,由于MACDA为服务器31的地址,因此根据过去的路由学习结果, 使该帧流过与网关装置30之间预先设定的SSL会话。从而,将帧直接向 SSL1004侧传输。此后,F20格式的帧在会话中继装置10内再次被加密,而且在F10 格式的F14区域中存储,以F10格式,从会话中继装置10按HUB11、防 火墙33、 HUB32、网关装置30的路径向网关装置30传输。并且,网关装置30如果从HUB32以F10格式接收到帧,则解除F14 的加密,来取出F14中所存储的Ethernet帧F20,以F20格式经由HUB32 向服务器31传输该帧。 该帧原样保持着从终端21向HUB22发送时的状态,在LAN MAC F21 内的MACDA中设定服务器31的MAC地址,在LANMACF21内的MAC SA中设定终端21的MAC地址。另外,在.LAN IP F22内的IP DA中设 定服务器31的IP地址,在LANIPF22内的IP SA中设定终端21的IP地 址。服务器31接收从HUB32所发送的帧,从而完成从终端21内的应用 程序2101到服务器31内的应用程序3101的一系列的帧传输。通过经由与上述例子相反的路径,也可同样地实现从服务器31内的 应用程序3101到终端21内的应用程序2101的一系列的帧传输。此外,在本实施方式中,在会话中继装置内的软件中使中间驱动部与 TCP之间(例如,中间驱动部1008与TCP1003之间),暂时成为TCP over TCP形式的处理。但是,在中间驱动部与TCP之间由于缺失分组的可能 性几乎没有,所以因TCP over TCP而发生速度降低的可能性极小。这是 因为,TCP over TCP问题是指在发生分组丢失时发生显著的速度降低的问 题,假如没有发生分组丢失,则即使进行TCP over TCP形式的处理,报 头F13侧的TCP的窗口大小总是增大,从而也不会发生速度降低等问题。用上述的方法在事实上停止报头F13侧的TCP的拥塞控制和重传控 制,由于报头F23侧的TCP的拥塞控制和重传控制依然如通常那样发挥 功能,因此从终端21和服务器31的各个应用程序的角度来看,通过终端 21内的TCP和服务器31内的TCP的作用,拥塞控制、重传控制均顺利 地进行。(发明效果)接下来,对本实施方式的效果进行说明。如果利用本实施方式中所举出的发明,则在终端21与服务器31之间 能够进行帧的高速传输。这是因为,通过在SSL会话建立后利用高速化引擎2014,能够排除 网关装置20或网关装置30中的以CPU (软件处理)执行的封装处理及加 密/解密处理,并且用高速化引擎(硬件)来实现这些处理的全部。再有,这是因为,在网关装置20与会话中继装置10之间的通信中, 在会话中继装置10内的中间驱动部1008、或者网关装置20内的中间驱动 部2006中,使TCP会话的建立请求终结,以使在报头F13的位置不会发 生基于TCP的拥塞控制和重传控制,从而避免TCP over TCP问题的发生。另外,如果利用本实施方式中所举出的发明,则能够较低地抑制高速 化处理用的硬件(高速化引擎)的开发费用或部件费用。这是因为,能够用同一硬件(FPGA/ASIC)来进行SSL的加密及解密 以及封装。另夕卜,这是因为,能够在价格比较低廉的MAC与PHY间的接口中安 装上述硬件。另外,这是因为,能够将不易通过硬件来实现的TCP处理留给软件, 仅通过硬件对比较容易通过硬件实现、并且高速化处理的效果大的SSL的 加密/解密和封装进行处理。 (第二实施方式)本发明的第二实施方式相对于第一实施方式,其巧同之处在于,将企 业内部网2和企业内部网3直接连接而没有经由互联网1,而且在网关装 置20与网关装置30之间未经由会话中继装置10而直接设定SSL会话(安 全TCP会话)。第二实施方式中的终端21、服务器31、 HUB22、 HUB32、网关装置 20、网关层30、企业内部网2、企业内部网3的构成及动作,除了从网关 装置30向网关装置20、或者从网关装置30向网关装置20扩展会话的动 作以外,与第一实施方式相同。在第二实施方式中,企业内部网2不仅可以采用封闭域LAN,也可采 用互联网等开放的WAN。 (构成说明)图17是示出第二实施方式中的网络构成的框图。企业内部网2是由网关装置20、终端21、 HUB22和防火墙33构成、 并且在这些设备彼此之间进行通信的局域网(LAN)。企业内部网2经由 防火墙33的WAN侧而与企业内部网3彼此连接,通过防火墙33的动作, 按照预定的设定对企业内部网2与企业内部网3之间的通信进行限制。企业内部网2内的各装置经由HUB22彼此连接,企业内部网2内的 各装置间能够自由通信,而不会受到上述的防火墙33等的限制。另外,
在图17中由于通过网关装置20、网关装置30,将企业内部网2和企业内 部网3彼此连接以使其作为同一LAN来动作,因此企业内部网2内的各 装置和企业内部网3内的各装置间也能够自由通信,而不会受到上述的防 火墙33等的限制。企业内部网3是由网关30、服务器31、 HUB32和防火墙33构成、 并且在这些设备彼此之间进行通信的局域网(LAN)。企业内部网3经由 防火墙33而与企业内部网2彼此连接,通过防火墙33的动作,企业内部 网2与企业内部网3之间的通信按照预定的设定而被限制。企业内部网3内的各装置经由HUB32彼此连接,企业内部网3内的 各装置间能够自由通信,而不会受到上述的防火墙33等的限制。另外, 在图17中由于通过网关装置20、网关装置30,将企业内部网2和企业内 部网3彼此连接以使其作为同一LAN来动作,因此企业内部网3内的各 装置和企业内部网2内的各装置间也能够自由通信,而不会受到上述的防 火墙33等的限制。图18是示出第二实施方式中的各设备的构成和帧的传输路径的详细 内容的框图。网关装置20是与第一实施方式中网关装置20相同的构成。但是,对 于网关装置20内的高速化引擎控制2001的动作而言,除了第一实施方式 中的动作以外,还能够接收来自其他网关装置(网关装置30等)的会话 连接请求。网关装置30的构成与第一实施方式中的网关装置30的构成相同。即, 具有与网关装置20同样的构成,并且进行同样的动作。但是,对于网关 装置30内的高速化引擎控制3001的动作而言,除了第一实施方式中的动 作以外,还能够接收来自其他网关装置(网关装置20等)的会话连接请 求。对于终端21、服务器3K HUB22、 HUB32而言,具有与实施方式1 同样的构成,并且进行同样的动作。防火墙33是用于将企业内部网3和企业内部网2彼此连接的设备, 其LAN侧端口经由HUB32而与企业内部网3上的各设备连接,其WAN 侧端口经由HUB22而与企业内部网2上的各设备连接。
防火墙33按照预定的设定进行对企业内部网2与企业内部网3之间 的通信进行限制的动作。例如,允许网关装置20与网关装置30之间的通 信在双方向上进行,但是在双方向上对终端21与服务器31之间的不经由 网关装置20或网关装置30的直接通信进行拦截。从而,在第二实施方式中,只有在网关装置20与网关装置30之间预 先设定有SSL会话的情况下,能够由企业内部网2内的设备访问企业内部 网3内的设备。 (动作说明)(SSL会话的建立动作)采用图18,以建立从网关装置30到网关装置20的SSL会话(安全 TCP会话)的情况为例,进行动作说明。此时,假设HUB22或HUB32已学习了终端21、服务器31、防火墙 33的WAN侧、防火墙33的LAN侦lj、网关装置20、网关装置30的MAC 地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。网关装置20内的高速化引擎控制2001如果起动后处于等待来自网关 装置30的连接的状态,则向中间驱动部2006通知开始等待。在该通知中 包含网关装置20的IP地址、高速化引擎控制2001的等待端口号。中间驱动部2006如果收到来自高速化引擎控制2001的通知,则按照 在帧解析处理中发给高速化引擎控制2001的分组所到达时,能够进行TCP 会话的连接/终结等处理的方式进行设定。网关装置30内的高速化引擎控制3001收到来自用户的向网关装置20 内的高速化引擎控制2001的连接请求,向SSL3002指示与网关装置20内 的高速化引擎控制2001开始通信。同时,向中间驱动部3006通知与网关 装置20内的高速化引擎控制2001开始通信。在该通知中包含网关装置20 的IP地址、高速化引擎控制2001的端口号、高速化引擎控制3001的发 送源端口号、以及网关装置30的IP地址。SSL3002收到来自高速化引擎控制3001的开始通信指示,为了与
SSL2002之间建立SSL会话,向TCP3003指示与网关装置20内的高速化 引擎控制2001开始通信。TCP3003收到来自SSL3002的开始通信指示,为了与TCP2003之间 建立TCP会话,向IP路由3004发送与TCP2003的会话建立请求分组 (SYN)。该分组是遵守TCP标准的分组,在目的地IP地址中设定以网 关装置20为目的地,在目的地端口号中设定TCP2003。该TCP会话建立 请求分组是指,在建立TCP会话时,为了三路握手(three way handshake) 而所发送的SYN分组。在本说明书中,为了简化TCP会话建立动作的说 明,在三路握手中所收发的分组中,将SYN分组称作TCP会话建立请求 分组,将SYN+ACK分组称作响应分组。另夕卜,在实际上还发送ACK分 组,但是由于对ACK分组而言与SYN分组同样地传输,因此在本动作说 明中省略说明。IP路由3004参照从TCP3003所接收的分组的目的地IP地址和目的 地端口号,向IP栈3005传输分组。IP栈3005对从IP路由3004所接收的分组附加防火墙33内的企业内 部网3侧的MAC地址作为目的地MAC地址,而且在发送源MAC地址中 设定自节点的MAC地址来生成帧后,向中间驱动部3006传输。中间驱动部3006从IP栈3005接收帧,并且进行帧解析。解析的结 果,由于帧为附加有预先由高速化引擎控制3001所通知的目的地IP、目 的地端口、发送源IP、发送源端口的帧,因此在封装解除中去掉MAC报 头,使之成为分组。并且,在中间驱动部3006的TCP部中使从TCP3003 到TCP2003的TCP会话的建立请求的处理终结。即,TCP3003本来向 TCP2003发送了 TCP会话建立请求,但是在实际上针对该请求由中间驱 动部3006内的TCP进行接收而保留,在TCP3003与中间驱动部3006内 的TCP之间,使TCP会话的建立请求的处理终结。中间驱动部3006,在使上述建立请求的处理终结时,为了向中间驱动 部2006请求与TCP2003之间建立TCP会话,而向驱动部3007发送用于 请求与TCP2003连接的连接请求分组。在该连接请求分组中将网关装置 20设定为目的地IP地址,将TCP2003设定为目的地端口号。并且,在该 分组中设定目的地MAC地址和发送源MAC地址而成为连接请求分组。
此外,该连接请求分组是独创的分组,而不是遵守TCP标准的分组。驱动部3007从中间驱动部3006接收连接请求帧,并且向MAC3011 传输。MAC3011从驱动部3007接收帧,并且向高速化引擎3014传输。 高速化引擎3014从MAC3011接收帧,并且直接向PHY3012传输。 PHY3012从高速化引擎3014接收帧,并且向端口 3013传输。 端口 3013从PHY3012接收帧,并且经由以太网电缆向HUB32传输。 HUB32如果接收到帧,贝U参照MACDA,由于MAC DA为防火墙33的LAN侧的地址,因此根据过去的路由学习结果,将该帧直接向防火墙33侧的端口输出。防火墙33从HUB22接收分组,由于是从网关装置30到网关装置20的通信,因此允许该通信,向HUB22传输。HUB22从防火墙33接收帧,根据过去的路由学习结果,将该帧直接向网关装置20传输。网关装置20从HUB22内接收帧,并且以端口 2013、 PHY2012、高速化引擎2014、 MAC2011、驱动部2007的路径传输帧,并且传输到中间驱动部2006。此时,高速化引擎2014将从PHY所接收的帧直接向MAC2011传输。中间驱动部2006从驱动部2007接收连接请求帧,并且进行帧解析。 解析的结果,由于该帧为附加有预先由高速化引擎控制2001所通知的指 向高速化引擎控制2001的目的地IP及目的地端口的帧,因此接收该帧并 且在封装解除中去掉MAC报头,使之成为分组。由于分组为从中间驱动 部3006向中间驱动部2006所发送的、向TCP2003的连接请求分组,因此 中间驱动部2006内的TCP为了与TCP2003之间建立TCP会话,向IP栈 2005发送与TCP2003建立会话所需要的TCP会话建立请求分组。该分组 为遵守TCP标准的分组,在目的地IP地址中设定以网关装置20为目的地, 在目的地端口号中设定TCP2003,而且在发送源IP地址中设定网关装置 30的IP地址,在发送源端口号中设定TCP3003的端口号。而且,在该分 组中由中间驱动部2006内的再封装中附加MAC地址,从而以帧的形式向 IP栈2005传输。
艮P,中间驱动部2006内的TCP冒充TCP3003的名称向TCP2003进 行TCP会话的建立请求。从而,TCP2003识别成如同与TCP3003通信, 而且TCP3003也识别成如同与TCP2003通信。但是,实际的TCP的建立 处理在TCP3003与中间驱动部3006内的TCP之间、以及在中间驱动部 2006与TCP2003之间进行,再有,在中间驱动部3006与中间驱动部2006 之间进行,以UDP等的无拥塞控制的方法(本发明的通信系统中的独创 分组)另行进行通信。而且,TCP3003与中间驱动部3006之间的TCP会 话、中间驱动部3006与中间驱动部2006之间的UDP等一些通信会话、 以及中间驱动部2006与TCP2003之间的TCP会话,由中间驱动部3006 和中间驱动部2006彼此连接*中继,通过这样,如同在TCP3003与TCP2003 之间建立TCP会话那样进行通信。IP栈2005从中间驱动部2006接收帧,并且在该帧中去掉MAC报头 而使之成为分组后向IP路由2004传输。IP路由2004参照从IP栈2005所接收的分组的目的地端口号,由于 附加有TCP2003侧的端口号,因此向TCP2003传输该分组。TCP2003从IP路由2004接收分组。由于该分组为TCP会话建立请求 分组(SYN),因此按照TCP协议,返回TCP会话的建立所需的响应分 组(SYN+ACK)。此时,TCP2003将TCP会话建立请求识别成从TCP3003 所送到的TCP会话建立请求。这是,实际的建立请求是从中间驱动部2006 内的TCP所发送的建立请求,但是由于中间驱动部2006内的TCP冒充 TCP3003而向TCP2003进行了会话建立请求,因此TCP2003识别成如同 与TCP3003建立会话。从而,TCP2003以TCP3003为目的地发送响应分组(SYN+ACK)。 即,将网关装置30的EP地址设定为响应分组的目的地IP,将TCP3003 的端口号设定为响应分组的目的地端口 。来自TCP2003的响应分组经由IP路由2004被发送到IP栈2005,这 里被附加MAC报头而成为响应帧,并且到达中间驱动部2006。中间驱动部2006如果接收到响应帧,则在中间驱动部2006内的封装 解除中去掉响应帧的MAC报头来取出响应分组,用TCP接收该分组(SYN +ACK),将针对该响应分组的ACK分组发送到TCP2003,从而使TCP 处理终结。并且,向中间驱动部3006发送用于连接完成通知的连接完成 通知分组。该连接完成通知分组是本发明的通信系统中的独创的分组,而 不是遵守TCP标准的分组。在该分组的目的地IP地址中设定网关装置30, 在目的地端口号中设定TCP3003,在发送源IP地址中设定网关装置20, 在发送源端口号中设定TCP2003。并且,在中间驱动部内的再封装中对连 接完成通知分组附加MAC报头,来生成连接完成通知帧。连接完成通知帧经由与连接请求帧相反的路径也就是驱动部2007、 NIC201、 HUB22、防火墙33、 HUB32、 NIC301,到达CPU300内的中间 驱动部3006。中间驱动部3006接收连接完成通知帧,并且进行帧解析。解析的结 果,由于帧为附加有预先由高速化引擎控制3001通知的指向高速化引擎 控制3001的目的地IP及目的地端口的帧,因此接收该帧,并且在封装解 除中去掉MAC报头,使之成为分组。由于分组是从中间驱动部2006向中 间驱动部3006所发送的、TCP2003与中间驱动部2006之间的连接完成通 知分组,因此中间驱动部3006内的TCP为了按照TCP协议向TCP3003 发送会话建立所需要的响应分组(SYN+ACK),向IP栈3005发送响应 分组。响应分组(SYN+ACK)经由IP栈3005、IP路由3004,到达TCP3003。TCP3003从IP路由3004接收响应分组(SYN+ACK)。由于该分组 是针对TCP会话的建立请求的响应分组,因此向SSL3002通知与TCP2003 完成TCP会话连接。此时,TCP3003将所接收的响应分组(SYN+ACK) 识别成从TCP2003所送到的响应分组。这是,实际上,该响应分组是从中 间驱动部3006内的TCP所发送的建立请求,但是由于中间驱动部3006 内的TCP冒充TCP2003而向TCP3003发送了对于会话建立的响应分组, 因此TCP3003识别成如同从TCP2003有了响应分组。TCP3003如果接收到响应分组(SYN+ACK),则针对该响应分组生 成ACK分组而以TCP2003为目的地进行发送。中间驱动部3006的TCP 经由IP路由2004和IP栈2005接收该ACK分组,使TCP处理终结。SSL3002收到来自TCP3003的连接完成通知,为了与SSL2002之间 建立SSL会话,按照SSL协议,发送用于会话建立请求的分组(SSL会
话建立请求分组)。SSL会话建立请求分组如果被TCP3003所接收,则通过TCP3003与 中间驱动部30G6内所设定的TCP会话,到达中间驱动部3006。中间驱动部3006,使SSL会话建立请求分组的TCP处理终结,并且 附加UDP等的不进行拥塞控制的报头后,向中间驱动部2006发送分组。 分组经由NIC301、 HUB32、防火墙33、 HUB22、 NIC201,到达中间驱动 部2006。此时,NIC301内的高速化引擎3014将从MAC3011所接收的分 组直接向PHY3012传输,NIC201内的高速化引擎2014将从PHY2012所 接收的分组直接向MAC2011传输。中间驱动部2006如果接收到SSL会话建立请求分组,则从中间驱动 部2006内的TCP与TCP2003之间所设定的TCP会话通过,到达TCP2003。TCP2003向SSL2002传输分组。SSL2002验证SSL会话建立请求的内容,如果没有问题,则向高速化 引擎控制2001通知与SSL3002的会话建立,同时,按照SSL协议,向 SSL3002发送SSL会话建立响应分组。高速化引擎控制2001如果收到来自SSL2002的SSL会话建立通知, 则向中间驱动部2006通知由SSL会话建立通知所接收的SSL3002的公开 密钥、SSL2002的秘密密钥以及SSL2002与SSL3002之间的预共享密钥。中间驱动部2006如果收到公开密钥、秘密密钥及预共享密钥的通知, 则在控制帧中承载公开密钥、秘密密钥、预共享密钥、SSL会话的对象设 备的IP地址(网关装置30的IP地址)、SSL会话的对象设备的目的地端 口 (TCP3003的端口)、自节点侧的SSL会话的发送源端口号(TCP2003 的端口)、发送源IP地址(网关装置20的IP地址)和开始命令,并且通 知给高速化引擎2014。控制帧经驱动部2007、 MAC2011,到达高速化引擎2014。高速化引擎2014根据MAC地址等来判别控制帧,用控制帧收发部进 行接收。并且,为了分别在解密及加密中使用而保存公开密钥、秘密密钥 和预共享密钥,为了进行帧解析而保存IP地址或端口号。并且,收到高 速化处理开始命令,开始帧解析、加密及解密的处理。高速化引擎2014,在高速化处理开始命令以前,将控制帧以外的从MAC2011所接收的帧都直接向PHY2012发送,将从PHY2012所接收的 帧都直接向MAC2011发送。但是,在高速化处理开始命令以后,将控制 帧以外的从MAC2011所接收的帧都直接向PHY2012发送的动作上无变 化,但是对从PHY2012所接收的帧进行如下的处理。(1) 如果为发给网关装置20、并且用SSL3002加密过的帧,则解除 UDP等的封装,如果有必要,则解除碎片,对帧进行解密后,向PHY2012 侧发送。(2) 如果为(1)以外的发给自节点的帧,则向MAC2011传输。(3) 如果为广播帧或者组播帧,则复制帧后,将一方直接向MAC2011 传输,而对另一方进行加密和封装后,向SSL3002 (PHY2012侧)发送。 如果有必要,还对碎片进行分割。(4) 如果为(1) (3)以外的帧,则进行加密和封装后,向SSL3002 (PHY2012侧)发送。如果有必要,则还对碎片进行分割。由SSL2002所发送的SSL会话建立响应分组经由与SSL会话建立请 求分组相反的路径也就是TCP2003与中间驱动部2006之间的TCP会话, 到达中间驱动部2006,并且经由中间驱动部2006与中间驱动部3006之间 的UDP等的无拥塞控制的会话,到达中间驱动部3006。再有,经由中间 驱动部3006与TCP3003之间的TCP会话,到达SSL3002。SSL3002按照SSL协议对SSL会话建立响应的内容进行验证,如果 没有问题,则向高速化引擎控制3001通知SSL3002与SSL2002之间的SSL 会话建立。高速化引擎控制3001,采用与高速化引擎控制2001相同的方法也就 是经由中间驱动部3006向高速化引擎3014通知网关装置20的公开密钥、 网关装置30的秘密密钥、网关装置20与网关装置30之间的预共享密钥、 以及高速化处理开始命令等。高速化引擎3014收到来自高速化引擎控制3001的公开密钥等的通 知,与高速化引擎2014相同地动作。通过如上所述的方式,如果在SSL2002与SSL3002之间建立了 SSL 会话,则以后不会经由SSL2002或SSL3002,而在高速化引擎2014与高 速化引擎3014之间进行基于SSL的通信。 通过以上方式,在第二实施方式中完成在建立从网关装置30到网关装置20的SSL会话(安全TCP会话)时的动作。 (从终端21到服务器31的帧传输动作)采用图18,以在第二实施方式中从终端21向服务器31发送帧的情况 为例,进行动作说明。此时,假设HUB22或HUB32已学习了终端21、服务器31、防火墙 33、网关装置20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或阿关装置30的直接通信进行拦截。再有,假设从网关装置30到网关装置20的SSL会话(安全TCP会 话)通过上述的动作例已被设定。另外,假设终端21内的应用程序2101与服务器31内的应用程序(应 用程序3101)之间已建立了TCP会话。终端21内的应用程序2101将发给服务器31内的应用程序3101的数 据交给TCP2102。TCP2102从应用程序2101收取数据,并按照TCP协议附加TCP报头 (图2中的F23)或IP报头(图2中的F22)而作为IP分组,交给IP路 由2103。此时,在LANIPF22内的IPDA中设定服务器31的IP地址, 在LAN IP F22内的IP SA中设定终端21的IP地址。IP路由2103参照从TCP2102所接收的分组的目的地IP地址(发给 服务器31)和目的地端口 (发给TCP3102),将数据直接向IP栈2104传 输。IP栈2104从IP路由2103接收分组,并附加MAC报头(图2中的 F21)来制定Ethernet帧,交给驱动部2105。该帧具有Ethernet帧F20格 式。此时,IP栈2104参照ARP的结果,在帧的LANMACF21内的MAC DA中设定服务器31的MAC地址,在LAN MAC F21内的MAC SA中设 定终端21的MAC地址。驱动部2105从IP栈2105收取上述帧,并且向NIC211传输。 NIC211从驱动部2105收取帧,并且经由MAC211K PHY2112、端
口 2113向HUB22传输帧。
HUB22如果从终端21的NIC211侧的端口接收到帧,则参照F21内 的MACDA,由于MACDA为服务器31的地址,因此根据过去的路由学 习结果,将该帧直接向网关装置20侧的端口输出。
网关装置20内的NIC201用端口 2013接收来自HUB22的帧,并且经 由PHY2012交给高速化引擎2014。
高速化引擎2014,由于所到达的帧的目的地MAC以服务器31为目 的地,因此在高速化引擎2014内的加密2014G中对帧进行加密,来制定 图3中的数据F14,进一步在封装20141中附加图3中的F11 F13的各报 头,使之成为Ether over SSL帧F10格式后,再次向PHY2012侧传输。
此时,在INET MAC Fl 1内的MAC DA中设定防火墙33的WAN侧 的MAC地址,在Fll内的MAC SA中设定网关装置20的MAC地址。 另外,在INETIPF12内的IPDA中设定网关装置30的IP地址,在F12 内的IP SA中设定网关装置20的IP地址。对于INET TCP F13而言,为 了通过防火墙33,而附加用于可看作如同与网关装置30内的TCP3003进 行通信那样的TCP报头。但是,该TCP报头在实际上由中间驱动部3006 暂且被去掉,因此不会给TCP13003的拥塞控制带来影响。从而,这里所 附加的F13具有TCP报头的形式,但是实际上只发挥UDP的作用。假如 设置路由器来取代防火墙33,则F13也可为UDP报头。
PHY2012如果从高速化引擎2014接收到帧,则经由端口 2013向 HUB22传输帧。
HUB22如果从网关装置22侧的端口接收到帧,则参照Fll内的MAC DA,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接向防火墙33输出。
防火墙33接收来自HUB22的帧,参照IP DA来变更MAC报头Fl 1 , 并且以帧格式F10的形式向HUB32传输接收帧。
这里,在Fll内的MAC DA中设定网关装置30的MAC地址,在Fll 内的MAC SA中设定防火墙33的LAN侧的MAC地址。
HUB32如果接收到来自防火墙33的帧,则参照Fll内的MACDA, 由于MACDA为网关装置30的地址,因此根据过去的路由学习结果,将该帧直接向网关装置30侧的端口输出。网关装置30内的NIC301用端口 3013接收来自HUB32的帧,并且经 由PHY3012而交给高速化引擎3014。高速化引擎3014,由于所到达的帧的目的地MAC以网关装置30为 目的地、并且在网关装置20中己被加密,因此在高速化引擎3014内的封 装3014J中去除F11 F13的各报头而仅取出图3中的数据F14,并且在解 密3014L中对数据F14进行解密,来取出数据F14内所存储的F21 F24 的数据(Ethernet帧F20)后,再次向PHY3012侧传输。该帧原样保持着从终端21向HUB22发送时的状态,在LAN MAC F21 内的MACDA中设定服务器31的MAC地址,在LANMACF21内的MAC SA中设定终端21的MAC地址。另外,在LAN IP F22内的IP DA中设 定服务器31的IP地址,在LANIPF22内的IPSA中设定终端21的IP地 址。PHY3012如果从高速化引擎2014接收到帧,则经由端口 3013向 HUB32传输帧。HUB32如果从网关装置30侧的端口接收到帧,则参照F21内的MAC DA,由于MACDA为服务器31的地址,因此根据过去的路由学习结果, 将该帧直接向服务器31侧的端口输出。服务器31接收从HUB32所发送的帧,经由驱动部3105、 IP栈3104、 IP路由3103、 TCP3102,将帧内的数据F24交给应用程序3101。通过如上所述的方式,完成从终端21内的应用程序2101到服务器31 内的应用程序3101的一系列的帧传输。通过经由与上述例相反的路径,也可同样地实现从服务器31内的应 用程序3101到终端21内的应用程序2101的一系列的帧传输。用上述的方法在事实上停止报头F13侧的TCP的拥塞控制和重传控 制,由于报头F23侧的TCP的拥塞控制和重传控制依然通常那样发挥功 能,因此从终端21和服务器31的各个应用程序的角度来看,通过终端21 内的TCP和服务器31内的TCP的作用,拥塞控制、重传控制均顺利地进 行。此外,在本实施方式中还能够调换服务器31与终端21的设置场所。(发明效果) 接下来,对本实施方式的效果进行说明。如果利用本实施方式中所举出的发明,则在终端21与服务器31之间 能够进行帧的高速传输。这是因为,通过利用高速化引擎2014及3014,能够排除网关装置20 及网关装置30中的以CPU(软件处理)执行的封装处理及加密/解密处理, 而能够用高速化引擎(硬件)来实现这些处理的全部。再有,这是因为,在网关装置20与网关装置30之间的通信中,在网 关装置30内的中间驱动部和网关装置20内的中间驱动部中,使网关装置 20内的TCP和使网关装置30内的TCP终结,以使在报头F13的位置不 会发生基于TCP的拥塞控制和重传控制,从而避免TCP over TCP问题的 发生。另外,如果利用本实施方式中所举出的发明,则能够较低地抑制高速 化处理用的硬件(高速化引擎)的开发费用或部件费用。这是因为,能够用同一硬件(FPGA/ASIC)来进行加密及解密以及封装。另外,这是因为,能够在价格比较低廉的MAC与PHY间的接口安装 硬件。另外,这是因为,能够将不易通过硬件来实现的TCP处理留给软件, 而通过硬件仅对比较容易通过硬件实现、并且高速化处理的效果大的加密 /解密和封装进行处理。 (第三实施方式)本发明的第三实施方式相对于第二实施方式,其不同之处在于,在网 关装置30内不存在高速化引擎3014,而存在网关应用程序3001A来取代 高速化引擎控制3001。第三实施方式中的终端21、服务器31、 HUB22、 HUB32、网关装置 20、企业内部网2、企业内部网3的构成及动作,与第二实施方式相同。在第三实施方式中,企业内部网2不仅可以采用封闭域LAN,也可采 用互联网等开放的WAN。 (构成说明)
图19是详细地示出了第三实施方式中的各设备的构成和帧的传输路 径的框图。
网关装置30相对于第二实施方式中的网关装置30,其不同之处在于, 不存在高速化引擎3014,而存在网关应用程序3001A来取代高速化引擎 控制3001,而且还追加了网桥3008、驱动部3009、虚拟NIC3010。
网关应用程序3001A进行以下所举出的动作。
(1) 将从虚拟NIC3010所到达的帧,向SSL3002传输。即,在网关 应用程序3001A与高速化引擎控制2001之间所设定的SSL会话内,将从 虚拟NIC3010所到达的帧作为数据来承载,以高速化引擎控制2001为目 的地进行发送。此外,这里,从网关应用程序3001A的角度来看,通信对 象是高速化引擎控制2001,但是实际的通信对象是高速化引擎2014。
(2) 从SSL3002将通过网关应用程序3001A与高速化应用程序2001 之间所设定的SSL会话而所到达的数据作为帧,向虚拟NIC3010传输。
(3) 进行与高速化引擎控制2001之间的SSL会话的连接及断开所需 要的动作。对从网关应用程序3001A侧向高速化引擎控制2001侧进行连 接请求而言,当然也能够接收从高速化应用程序2001侧向网关应用程序 3001A侧的连接请求。
网桥3008具有从中间驱动部3006收取帧,参照目的地MAC地址, 向驱动部3009或驱动部3007传输帧的功能。通常作为OS的功能来实现。 另外,具有从驱动部3009收取帧,参照目的地MAC地址,向驱动部 3007或中间驱动部3006传输帧的功能。另外,具有从驱动部3007收取 帧,参照目的地MAC地址,向驱动部3009或者中间驱动部3006传输帧 的功能。
另外,网桥3008还具有在接收帧时,参照发送源MAC地址,进行 MAC地址的学习,并且记录具有哪个MAC地址的终端连接于哪个接口 (也就是中间驱动部3006、驱动部3009、驱动部3007)侧的功能。还具 有假如,在接收帧时,即使参照目的地MAC地址也没有学习MAC地 址的情况下,向输入了帧的中间驱动部或驱动部以外的驱动部或中间驱动 部广播帧的功能。
驱动部3009是进行虚拟NIC3010和OS的中介的软件,具有从虚拟
NIC101收取帧并发送到OS,而且从OS收取帧并发送到虚拟NIC的功能。 虚拟NIC3010是进行驱动部3009与网关应用程序3001A的中介的软 件。虚拟NIC3010具有从驱动部3009收取帧,并交给网关应用程序3001A 的功能。还具有从网关应用程序3001A收取帧,并发送到驱动部3010 的功能。本来,NIC由硬件来构成,但是虚拟NIC3010由软件来构成。 OS将虚拟NIC3010识别成如同硬件。虚拟NIC3010、驱动部3009、网桥3008还可将其功能绑定在中间驱 动部3006,进行一体化。此时,将从网关应用程序3001A所输出的帧经 由中间驱动部3006而交给驱动部3007,另外,从驱动部3007所输入的发 给自节点以外的单播帧或广播帧,从中间驱动部3006被发送到网关应用 程序3001A。在第三实施方式中在网关装置30内所存在的SSL3002、 TCP3003、 IP 路由3004、 IP栈3005、中间驱动部3006、驱动部3007分别具有与第二 实施方式中的SSL3002、 TCP3003、 IP路由3004、 IP栈3005、中间驱动 部3006、驱动部3007相同的构成,并且进行相同的动作。对于终端21、服务器31、网关装置20、防火墙33、 HUB22、 HUB32 而言,具有与第二实施方式相同的构成,并且进行同样的动作。从而,在第三实施方式中,只有在网关装置20与网关装置30之间预 先设定有SSL会话的情况下,能够由企业内部网2内的设备访问企业内部 网3内的设备。 (动作说明)(SSL会话的建立动作)采用图19,以在第三实施方式中建立从网关装置30到网关装置20 的SSL会话(安全TCP会话)的情况为例,进行动作说明。此时,假设网桥3008、 HUB22或HUB32已学习了终端21、服务器 31、防火墙33的WAN侧、防火墙33的LAN侧、网关装置20、网关装 置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。
网关装置20内的高速化引擎控制2001如果起动后处于等待来自网关 装置30的连接的状态,则向中间驱动部2006通知开始等待。在该通知中 包含网关装置20的IP地址、高速化引擎控制2001的等待端口号。中间驱动部2006如果收到来自高速化引擎控制2001的通知,则按照 在帧解析处理中发给高速化引擎控制2001的分组所到达时,能够进行TCP 会话的连接/终结等处理的方式进行设定。网关装置30内的网关应用程序3001A收到来自用户的向网关装置20 内的高速化引擎控制2001的连接请求,向SSL3002指示与网关装置20内 的高速化引擎控制2001开始通信。同时,向中间驱动部3006通知与网关 装置20内的高速化引擎控制2001开始通信。在该通知中包含网关装置20 的IP地址、高速化引擎控制2001的端口号、网关应用程序3001A的发送 源端口号、以及网关装置30的IP地址。SSL3002收到来自网关应用程序3001A的开始通信指示,为了与 SSL2002之间建立SSL会话,向TCP3003指示与网关装置20内的高速化 引擎控制2001开始通信。TCP3003收到来自SSL3002的开始通信指示,为了与TCP2003之间 建立TCP会话,向IP路由3004发送与TCP2003的TCP会话建立请求分 组(SYN)。该分组是遵守TCP标准的分组,在目的地IP地址中设定以 网关装置20为目的地,在目的地端口号中设定TCP2003。该TCP会话建 立请求分组是指,在建立TCP会话时,为了三路握手(three way handshake) 而所发送的SYN分组分组。在本说明书中,为了简化TCP会话建立动作 的说明,在三路握手中所收发的分组中,将SYN分组称作TCP会话建立 请求分组,将SYN+ACK分组称作响应分组。另外,在实际上还发送ACK 分组,但是由于对ACK分组而言与SYN分组同样地传输,因此在本动作 说明中省略说明。IP路由3004参照从TCP3003所接收的分组的目的地IP地址和目的 地端口号,向IP栈3005传输分组。IP栈3005对从IP路由3004所接收的分组附加防火墙33内的企业内 部网3侧的MAC地址作为目的地MAC地址,而且在发送源MAC地址中 设定自节点的MAC地址来生成帧后,向中间驱动部3006传输。
中间驱动部3006从IP栈3005接收TCP会话建立请求的帧,并且进 行帧解析。解析的结果,由于帧为附加有预先由网关应用程序3001所通 知的目的地IP、目的地端口、发送源IP、发送源端口的帧,因此在封装解 除中去掉MAC报头,使之成为分组。并且,在中间驱动部3006的TCP 部中使从TCP3003到TCP2003的TCP处理终结。即,TCP3003本来向 TCP2003发送了 TCP会话建立请求,但是在实际上针对该请求由中间驱 动部内的TCP保留,使TCP会话建立终结,并且在TCP3003与中间驱动 部3006内的TCP之间进行TCP会话的建立处理。
中间驱动部3006,在进行终结处理时,为了向中间驱动部2006请求 与TCP2003之间建立TCP会话,而生成用于向驱动部3007进行连接请求 的连接请求分组。在该连接请求分组的目的地IP地址中设定网关装置20, 在目的地端口号中设定TCP2003。并且,对该分组附加目的地MAC地址, 而且在发送源MAC地址中设定自节点的MAC地址,使之成为连接请求 帧。此外,该连接请求帧是本发明的通信系统中的独创的分组,而不是遵 守TCP标准的分组。
驱动部3007从中间驱动部3006接收连接请求帧,并且向MAC3011 传输。
MAC3011从驱动部3007接收帧,并且向PHY3012传输。 PHY3012从MAC3011接收帧,并且向端口 3013传输。 端口 3013从PHY3012接收帧,并且经由以太网电缆向HUB32传输。 HUB32如果接收到帧,则参照MACDA,由于MAC DA为防火墙33
的LAN侧的地址,因此根据过去的路由学习结果,将该帧直接向防火墙
33侧的端口输出。
防火墙33从HUB22接收分组,由于是从网关装置30到网关装置20
的通信,因此允许该通信,向HUB22传输。
HUB22从防火墙33接收帧,根据过去的路由学习结果,将该帧直接
向网关装置20传输。
网关装置20从HUB22内接收连接请求的帧,并且以端口 2013、
PHY2012、高速化引擎2014、 MAC2011、驱动部2007的路径传输帧,并
且传输到中间驱动部2006。此时,高速化引擎2014将从PHY所接收的帧
直接向MAC2011传输。中间驱动部2006从驱动部2007接收连接请求帧,并且进行帧解析。 解析的结果,由于该帧为附加有预先由高速化引擎控制2001所通知的指 向高速化引擎控制2001的目的地IP及目的地端口的连接请求帧,因此接 收该帧并且在封装解除中去掉MAC报头,使之成为分组。由于分组为从 中间驱动部3006向中间驱动部2006所发送的、指向TCP2003的连接请求 分组,因此中间驱动部2006内的TCP为了与TCP2003之间建立TCP会 话,向IP栈2005发送与TCP2003建立会话所需要的分组。该分组为遵守 TCP标准的分组,在目的地IP地址中设定以网关装置20为目的地,在目 的地端口号中设定TCP2003,而且在发送源IP地址中设定网关装置30的 IP地址,在发送源端口号中设定TCP3003的端口号。而且,在该分组中 通过中间驱动部2006内的再封装来附加MAC地址,从而以帧的形式向 IP栈2005传输。艮fl,中间驱动部2006内的TCP冒充TCP3003的名称向TCP2003进 行TCP会话的建立请求。从而,TCP2003识别成如同与TCP3003通信, 而且TCP3003也识别成如同与TCP2003通信。但是,实际的TCP处理在 TCP3003与中间驱动部3006内的TCP之间、以及在中间驱动部2006与 TCP2003之间进行,再有,在中间驱动部3006与中间驱动部2006之间, 以UDP等的无拥塞控制的方法(本发明的通信系统中的独创分组)另行 进行通信。而且,TCP3003与中间驱动部3006之间的TCP会话、中间驱 动部3006与中间驱动部2006之间的UDP等一些通信会话、以及中间驱 动部2006与TCP2003之间的TCP会话,由中间驱动部3006和中间驱动 部2006彼此连接 中继,通过这样,如同在TCP3003与TCP2003之间建 立TCP会话那样进行通信。IP桟2005从中间驱动部2006接收帧,并且在该帧中去掉MAC报头 而使之成为分组后向IP路由2004传输。IP路由2004参照从IP栈2005所接收的分组的目的地端口号,由于 附加有TCP2003侧的端口号,因此向TCP2003传输该分组。TCP2003从IP路由2004接收分组。由于该分组为TCP会话建立请求 分组(SYN),因此按照TCP协议,针对会话建立请求返回响应分组(SYN
+ACK)。此时,TCP2003将TCP会话建立请求识别成从TCP3003所送 到的TCP会话建立请求。这是,实际的建立请求是从中间驱动部2006内 的TCP所发送的建立请求,但是由于中间驱动部2006内的TCP冒充 TCP3003而向TCP2003进行了会话建立请求,因此TCP2003识别成如同 与TCP3003建立会话。
从而,TCP2003针对TCP会话建立请求以TCP3003为目的地发送响 应分组(SYN+ACK) 。 g卩,将网关装置30的IP地址设定为响应分组的 目的地IP,将TCP3003的端口号设定为响应分组的目的地端口。
响应分组经由IP路由2004被发送到IP栈2005,这里被附加MAC报 头而成为响应帧,并且到达中间驱动部2006。
中间驱动部2006如果接收到响应帧,则在中间驱动部2006内的封装 解除中去掉响应帧的MAC报头来取出响应分组,用TCP接收该响应分组 (SYN+ACK),针对该响应分组将ACK分组发送到TCP2003,从而使 TCP处理终结。并且,针对中间驱动部3006生成连接完成通知的分组。 上述连接完成通知分组是独创的分组,而不是遵守TCP标准的分组。该连 接完成通知分组,在目的地IP地址中设定网关装置30,在目的地端口号 中设定TCP3003,在发送源IP地址中设定网关装置20,在发送源端口号 中设定TCP2003。并且,在中间驱动部2006内的再封装中对连接完成通 知分组附加MAC报头,使之成为连接完成通知帧。
连接完成通知帧经由与连接请求帧相反的路径也就是驱动部2007、 NIC201、 HUB22、防火墙33、 HUB32、 NIC301,到达CPU300内的中间 驱动部3006。
中间驱动部3006接收连接完成通知帧,并且进行帧解析。解析的结 果,由于分组为附加有预先由网关应用程序3001A通知的指向网关应用程 序3001A的目的地IP及目的地端口的连接完成通知帧,因此接收该帧。 所接收的帧在封装解除中去掉MAC报头而成为分组。由于分组是从中间 驱动部2006向中间驱动部3006所发送的、TCP2003与中间驱动部2006 之间的连接完成通知分组,因此中间驱动部3006内的TCP为了按照TCP 协议向TCP3003发送TCP会话建立所需要的响应分组(SYN+ACK), 向IP栈3005发送按照TCP协议所生成的响应分组。
响应分组经由IP栈3005、 IP路由3004,到达TCP3003。 TCP3003从IP路由3004接收响应分组(SYN+ACK)。由于该分组 是针对TCP会话的建立请求的响应分组,因此向SSL3002通知与TCP2003 完成TCP会话连接。此时,TCP3003将响应分组(SYN+ACK)识别成 从TCP2003所到达的响应分组。这是,实际的响应从中间驱动部3006内 的TCP所发送,但是由于中间驱动部3006内的TCP冒充TCP2003而向 TCP3003进行了会话建立响应,因此TCP3003识别成如同从TCP2003有 了响应。
TCP3003如果接收到响应分组(SYN+ACK),则针对该响应分组生 成ACK分组而以TCP2003为目的地进行发送。中间驱动部3006的TCP 经由IP路由2004和IP栈2005接收该ACK分组,使TCP处理终结。
SSL3002收到来自TCP3003的连接完成通知,为了与SSL2002之间 建立SSL会话,按照SSL协议,发送用于会话建立请求的分组(SSL会 话建立请求分组)。
SSL会话建立请求分组如果被TCP3003所接收,则通过TCP3003与 中间驱动部3006内的TCP之间所设定的TCP会话,到达中间驱动部3006。
中间驱动部3006,接收SSL会话建立请求分组而使TCP终结,并且 附加UDP等的不进行拥塞控制的报头后,向中间驱动部2006发送SSL会 话建立请求分组。SSL会话建立请求分组经由NIC301、 HUB32、防火墙 33、 HUB22、 NIC201,到达中间驱动部2006。此时,NIC201内的高速化 引擎2014将从PHY2012所接收的分组直接向MAC2011传输。
中间驱动部2006如果接收到SSL会话建立请求分组,则通过中间驱 动部2006内的TCP与TCP2003之间所设定的TCP会话,到达TCP2003。
TCP2003向SSL2002传输分组。
SSL2002验证SSL会话建立请求的内容,如果没有问题,则向高速化 引擎控制2001通知与SSL3002的会话建立,同时,按照SSL协议,向 SSL3002发送SSL会话建立响应分组。
SSL会话建立响应分组经由与SSL会话建立请求分组相反的路径也就 是TCP2003与中间驱动部2006之间的TCP会话,到达中间驱动部2006, 并且经由中间驱动部2006与中间驱动部3006之间的UDP等的无拥塞控
制的会话,到达中间驱动部3006。再有,经由中间驱动部3006与TCP3003 之间的TCP会话,到达SSL3002。SSL3002按照SSL协议对SSL会话建立响应的内容进行验证,如果 没有问题,则向网关应用程序3001A通知SSL3002与SSL2002之间的SSL会话建立。高速化引擎控制2001如果收到来自SSL2002的SSL会话建立通知, 则向中间驱动部2006通知由SSL会话建立通知所接收的SSL3002的公开 密钥、SSL2002的秘密密钥以及SSL2002与SSL3002之间的预共享密钥。中间驱动部2006如果收到公开密钥、秘密密钥及预共享密钥的通知, 则在控制帧中承载公开密钥、秘密密钥、预共享密钥、SSL会话的对象设 备的IP地址(网关装置30的IP地址)、SSL会话的对象设备的目的地端 口 (TCP3003的端口)、自节点侧的SSL会话的发送源端口号(TCP2003 的端口)、发送源IP地址(网关装置20的IP地址)和开始命令,并且通 知给高速化引擎2014。控制帧经驱动部2007、 MAC2011,到达高速化引擎2014。高速化引擎2014根据MAC地址等来判别控制帧,用控制帧收发部进 行接收。并且,为了分别在解密及加密中使用而保存公开密钥、秘密密钥 和预共享密钥,为了进行帧解析而保存IP地址或端口号。并且,接收高 速化处理开始命令,开始帧解析、加密及解密的处理。高速化引擎2014,在高速化处理开始命令以前,将控制帧以外的从 MAC2011所接收的帧都直接向PHY2012发送,将从PHY2012所接收的 帧都直接向MAC2011发送。但是,在高速化处理开始命令以后,将控制 帧以外的从MAC2011所接收的帧都直接向PHY2012发送的动作上无变 化,但是对从PHY2012所接收的帧进行如下的处理。(1) 如果为发给网关装置20的、用SSL3002加密过的帧,则解除 UDP等的封装,如果有必要,则解除碎片,对帧进行解密后,向PHY2012 侧发送。(2) 如果为(1)以外的发给自节点的帧,则向MAC2011传输。(3) 如果为广播帧或者组播帧,则复制帧后,将一方直接向MAC2011 传输,而对另一方进行加密和封装后,向SSL3002 (PHY2012侧)发送。
如果有必要,还对碎片进行分割。(4)如果为(1) (3)以外的帧,则进行加密和封装后,向SSL3002 (PHY20I2侧)发送。如果有必要,则还对碎片进行分割。通过如上所述的方式,在高速化引擎2014与中间驱动部3006之间建 立用于帧传输的UDP等的无拥塞控制的会话。另外,在高速化引擎2014 与SSL3002之间建立SSL会话(SSL隧道)。艮卩,SSL2002仅在SSL会话建立请求时,与SSL3002进行互换,但 是如果SSL会话建立结束,则以后在高速化引擎2014与SSL3002之间进 行SSL的加密和解密的互换。另外,中间驱动部2006仅在SSL会话建立时,与中间驱动部3006进 行帧的互换,但是SSL会话建立后,在高速化引擎2014与中间驱动部3006 之间进行帧的互换。通过以上方式,在第三实施方式中完成在建立从网关装置30到网关 装置20的SSL会话(安全TCP会话)时的动作。 (从终端21到服务器31的帧传输动作)采用图19,以在第三实施方式中从终端21服务器31发送帧的情况 为例,进行动作说明。此时,假设网桥3008、 HUB22或HUB32己学习了终端21、服务器 31、防火墙33、网关装置20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。再有,假设从网关装置30到网关装置20的SSL会话(安全TCP会 话)通过上述的动作例已被设定。另外,假设终端21内的应用程序2101与服务器31内的应用程序(应 用程序3101)之间已建立了TCP会话。终端21内的应用程序2101将发给服务器31内的应用程序3101的数 据交给TCP2102。TCP2102从应用程序2101收取数据,并按照TCP协议附加TCP报头 (图2中的F23)或IP报头(图2中的F22)而作为IP分组,交给IP路 由2103。此时,在LANIPF22内的IPDA中设定服务器31的IP地址, 在LAN IP F22内的IP SA中设定终端21的IP地址。IP路由2103参照从TCP2102所接收的分组的目的地IP地址(发给 服务器31)和目的地端口 (发给TCP3102),将数据直接向IP栈2104传输。IP栈2104从IP路由2103接收分组,并附加MAC报头(图2中的 F21)来制定Ethernet帧,交给驱动部2105。该帧具有Ethernet帧F20格 式。此时,IP栈2104参照ARP的结果,在帧的LANMACF21内的MAC DA中设定服务器31的MAC地址,在LAN MAC F21内的MAC SA中设 定终端21的MAC地址。驱动部2105从IP栈2105收取上述帧,并且向NIC211传输。NIC211从驱动部2105收取帧,并且经由MAC211K PHY2112、端 口 2113向HUB22传输帧。HUB22如果从终端21的NIC211侧的端口接收到帧,则参照F21内 的MACDA,由于MACDA为服务器31的地址,因此根据过去的路由学 习结果,将该帧直接向网关装置20侧的端口输出。网关装置20内的N1C201用端口 2013接收来自HUB22的帧,并且经 由PHY2012交给高速化引擎2014。高速化引擎2014,由于所到达的帧的目的地MAC以服务器31为目 的地,因此在高速化引擎2014内的加密2014G中对帧进行加密,来制定 图3中的数据F14,进一步在封装2014I中附加图3中的F11 F13的各报 头,使之成为Ether over SSL帧F10格式后,再次向PHY2012侧传输。此时,在INET MAC Fl 1内的MAC DA中设定防火墙33的WAN侧 的MAC地址,在Fll内的MAC SA中设定网关装置20的MAC地址。 另外,在INETIPF12内的IPDA中设定网关装置30的IP地址,在F12 内的IP SA中设定网关装置20的IP地址。对于INET TCP F13而言,为 了通过防火墙33,而附加用于可看作如同与网关装置30内的TCP3003进 行通信那样的TCP报头。但是,该TCP报头在实际上由中间驱动部3006 暂且被去掉,因此不会给TCP13003的拥塞控制带来影响。从而,这里所 附加的F13具有TCP报头的形式,但是实际上只发挥UDP的作用。假如
设置路由器来取代防火墙33,则F13也可为UDP报头。PHY2012如果从高速化引擎2014接收到帧,则经由端口 2013向 HUB22传输帧。HUB22如果从网关装置22侧的端口接收到帧,则参照Fl 1内的MAC DA,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接向防火墙33输出。
防火墙33接收来自HUB22的帧,参照IP DA来变更MAC报头Fl 1 , 并且以帧格式F10的形式向HUB32传输接收帧。这里,在Fll内的MAC DA中设定网关装置30的MAC地址,在Fll 内的MAC SA中设定防火墙33的LAN侧的MAC地址。HUB32如果接收到来自防火墙33的帧,则参照Fll内的MACDA, 由于MACDA为网关装置30的地址,因此根据过去的路由学习结果,将 该帧直接向网关装置30侧的端口输出。
网关装置30如果从端口 3013接收到来自HUB32的帧,则经由 PHY3012、 MAC3011、驱动部3007、网桥3008,向中间驱动部3006传输。中间驱动部3006从网桥3008接收帧。该帧在接收时具有帧格式F10 的形式,但是在封装解除3006G中去除报头F11、报头F12、报头F13, 而只留下被加密的数据F14。然后,将数据F14交给TCP3006A,使其流 过预先设定在TCP3003与中间驱动部内的TCP3006A之间的TCP会话。中间驱动部3006内的TCP3006A对所接收的数据F14附加与TCP3003 的TCP通信所需要的TCP报头F13、IP报头F12后,发送到再封装3006E。 在F12内的IPDA中设定网关装置30的IP地址,在F12内的IPSA中设 定网关装置20的IP地址。
中间驱动部3008内的再封装3006E如果从TCP3006A接收数据,则 对该数据附加报头Fll后,发送到IP栈3005。这里,在Fll内的MAC DA 中设定网关装置30的MAC地址,在Fll内的MACSA中设定防火墙33 的WAN侧的MAC地址。通过这样,将来自TCP3006A的接收帧设为帧 格式F10的形式后,向IP栈3005传输。IP栈3005去掉从中间驱动部3006所接收的帧的MAC报头Fll后, 向IP路由3004发送。IP路由3004参照所接收的帧的报头F12内的IPDA和F13内的目的 地端口号,向TCP3003传输帧。TCP3003如果从IP路由3004接收到帧,则进行按照TCP协议返回 ACK分组等的处理。并且,从所接收的帧中去掉TCP报头F13和IP报头 F12,向SSL3002传输数据F14。SSL3002如果从TCP3003接收到数据F14,则通过解密处理来解除加 密,并且从数据F14中取出Ethernet帧F20也就是F21 F24,向网关应 用程序3001A传输。网关应用程序3001A如果从SSL3002接收到帧F20,则使该帧直接流 过虚拟NIC3010。该帧原样保持着从终端21向HUB22发送时的状态,在LAN MAC F21 内的MAC DA中设定服务器31的MAC地址,在LANMACF21内的MAC SA中设定终端21的MAC地址。另外,在LAN IP F22内的IP DA中设 定服务器31的IP地址,在LANIPF22内的IP SA中设定终端21的IP地 址。从网关应用程序3001A交给虚拟NIC3010的帧,经由驱动部3009、 网桥3008、 NIC301,向HUB32传输。HUB32如果从网关装置30侧的端口接收到帧,则参照F21内的MAC DA,由于MACDA是服务器31的地址,因此根据过去的路由学习结果, 将该帧直接向服务器31侧的端口输出。服务器31接收从HUB32所发送的帧,并且经由驱动部3105、 IP栈 3104、 IP路由3103、 TCP3102,将帧内的数据F24交给应用程序3101 。通过如上所述的方式,完成从终端21内的应用程序2101到服务器31 内的应用程序3101的一系列的帧传输。通过经由与上述例相反的路径,也可同样地实现从服务器31内的应 用程序3101到终端21内的应用程序2101的一系列的帧传输。此外,在本实施方式中,与第一实施方式中的会话中继装置10内的 软件处理相同,在网关装置30内的软件中,中间驱动部3006与TCP3003 之间,暂时成为TCP over TCP形式的处理。但是,在中间驱动部与TCP 之间由于缺失分组的可能性几乎没有,所以因TCP over TCP而发生速度
降低的可能性极小。这是因为,TCP over TCP问题是在发生分组丢失时发 生显著的速度降低的问题,假如没有发生分组丢失,则即使进行TCP over TCP形式的处理,报头F13侧的TCP的窗口大小总是增大,从而也不会 发生速度降低等问题。用上述的方法在事实上停止报头F13侧的TCP的拥塞控制和重传控 制,由于报头F23侧的TCP的拥塞控制和重传控制依然通常那样发挥功 能,因此从终端21和服务器31的各个应用程序的角度来看,通过终端21 内的TCP和服务器31内的TCP的作用,拥塞控制、重传控制均顺利地进 行。在本实施方式中示出了在网关装置30侧安装中间驱动部等,在网关 装置20侧安装中间驱动部及高速化引擎的例子,但是与此相反地,也可 在网关装置20侧安装中间驱动部等,在网关装置30侧安装中间驱动部及 高速化引擎。再有,在本实施方式中也能够调换服务器31与终端21的设 置场所。(发明效果)接下来,对本实施方式的效果进行说明。如果利用本实施方式中所举出的发明,则在终端21与服务器31之间 能够进行帧的高速传输。这是因为,通过利用高速化引擎2014,能够排除网关装置20的 CPU200 (软件处理)的封装处理及加密/解密处理,而能够用高速化引擎 (硬件)来实现这些处理的全部。再有,这是因为,在网关装置20与网关装置30之间的通信中,在网 关装置30内的中间驱动部和网关装置20内的中间驱动部中,使网关装置 20内的TCP或网关装置30内的TCP的处理终结,以使在报头F13的位 置不会发生基于TCP的拥塞控制和重传控制,从而避免TCP over TCP问 题的发生。另外,如果利用本实施方式中所举出的发明,则能够较低地抑制高速 化处理用的硬件(高速化引擎)的开发费用或部件费用。这是因为,能够在同一硬件(FPGA/ASIC)中进行加密/解密以及封装。
另夕卜,这是因为,能够在价格比较低廉的MAC与PHY间的接口中安 装硬件。另外,这是因为,能够将不易通过硬件来实现的TCP处理留给软件, 而仅通过硬件对比较容易通过硬件实现、并且高速化处理的效果大的加密 /解密和封装进行处理。 (第四实施方式)本发明的第四实施方式相对于第三实施方式,其不同之处在于,在网 关装置20内不存在高速化引擎2014,而存在网关应用程序2001A来取代 高速化引擎控制2001。即,网关装置20具有与第三实施方式中的网关装 置30同样的构成,并且进行同样的动作。第四实施方式中的终端21、服务器31、 HUB22、 HUB32、网关装置 30、企业内部网2、企业内部网3的构成及动作,与第三实施方式相同。在第四实施方式中,企业内部网2不仅可以釆用封闭域LAN,也可采 用互联网等开放的WAN。 (构成说明)图20是详细地示出了第四实施方式中的各设备的构成和帧的传输路 径的框图。网关装置20相对于第三实施方式中的网关装置20,其不同之处在于, 不存在高速化引擎2014,而存在网关应用程序2001A来取代高速化引擎 控制2001,而且还追加了网桥2008、驱动部2009、虚拟NIC2010。网关应用程序2001A、网桥200S、驱动部2009、虚拟NIC2010进行 分别与网关装置30内的网关应用程序3001A、网桥3008、驱动部3009、 虛拟NIC3010同样的动作。虚拟NIC3010、驱动部3009、网桥3008还可将其功能绑定在中间驱 动部3006,进行一体化。此时,将从网关应用程序3001A所输出的帧经 由中间驱动部3006而交给驱动部3007,另外,从驱动部3007所输入的发 给自节点以外的单播帧或广播帧,从中间驱动部3006被发送到网关应用 程序3001A。对于终端21、服务器31、网关装置20、防火墙33、 HUB22、 HUB32而言,具有与第三实施方式同样的构成,并且进行同样的动作。 从而,在第四实施方式中,只有在网关装置20与网关装置30之间预 先设定有SSL会话的情况下,能够由企业内部网2内的设备访问企业内部 网3内的设备。 (动作说明)(SSL会话的建立动作)采用图20,以在第四实施方式中建立从网关装置30到网关装置20 的SSL会话(安全TCP会话)的情况为例,进行动作说明。此时,假设网桥2008、网桥3008、 HUB22或HUB32已学习了终端 21、服务器31、防火墙33的WAN侧、防火墙33的LAN侧、网关装置 20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。网关装置20内的网关应用程序2001A如果起动后处于等待来自网关 装置30的连接的状态,则向中间驱动部2006通知开始等待。在该通知中 包含网关装置20的IP地址、网关应用程序2001A的等待端口号。中间驱动部2006如果收到来自网关应用程序2001A的通知,则按照 在帧解析处理中发给网关应用程序2001A的分组所到达时,能够进行TCP 连接/终结等处理的方式进行设定。网关装置30内的网关应用程序3001A收到来自用户的向网关装置20 内的网关应用程序2001A的连接请求,向SSL3002指示与网关装置20内 的网关应用程序2001A开始通信。同时,向中间驱动部3006通知与网关 装置20内的网关应用程序2001A开始通信。在该通知中包含网关装置20 的IP地址、网关应用程序2001A的端口号、网关应用程序3001A的发送 源端口号、以及网关装置30的IP地址。SSL3002收到来自网关应用程序3001A的开始通信指示,为了与 SSL2002之间建立SSL会话,向TCP3003指示与网关装置20内的网关应 用程序2001A开始通信。TCP3003收到来自SSL3002的开始通信指示,为了与TCP2003之间 建立TCP会话,向IP路由3004发送与TCP2003的TCP会话建立请求分
组(SYN)。该会话建立请求分组是遵守TCP标准的分组,在目的地IP 地址中设定以网关装置20为目的地,在目的地端口号中设定TCP2003 。 会话建立请求分组是指,在建立TCP会话时,为了三路握手(three way handshake)而所发送的SYN分组分组。在本说明书中,为了简化SSL会 话建立动作的说明,在三路握手中所收发的分组中,将SYN分组称作TCP 会话建立请求分组,将SYN+ACK分组称作响应分组。另外,在实际上 还发送ACK分组,但是由于对ACK分组而言与SYN分组同样地传输, 因此在本动作说明中省略说明。IP路由3004参照从TCP3003所接收的分组的目的地IP地址和目的 地端口号,向IP栈3005传输会话建立请求分组。IP栈3005对从IP路由3004所接收的分组附加防火墙33内的企业内 部网3侧的MAC地址作为目的地MAC地址,而且在发送源MAC地址中 设定自节点的MAC地址来生成会话建立请求的帧后,向中间驱动部3006 传输。中间驱动部3006从IP栈3005接收帧,并且进行帧解析。解析的结 果,由于帧为附加有预先由网关应用程序3001所通知的目的地IP、目的 地端口、发送源IP、发送源端口的帧,因此在封装解除中去掉MAC报头, 在中间驱动部3006的TCP部中使从TCP3003到TCP2003的TCP处理终 结。即,TCP3003本来向TCP2003发送了会话建立请求,但是在实际上 针对该请求由中间驱动部3006内的TCP进行接收而保留,并且在TCP3003 与中间驱动部3006内的TCP之间进行TCP会话的建立处理后,使之终结。中间驱动部3006,在进行TCP终结处理时,为了向中间驱动部2006 请求与TCP2003之间建立TCP会话,经由网桥3008向驱动部3007发送 连接请求分组。此外,该连接请求分组是本发明的通信系统中的独创的分 组,而不是遵守TCP标准的分组。该连接请求分组,在目的地IP地址中 设定网关装置20,在目的地端口号中设定TCP2003。并且,对该分组附加 目的地MAC地址,而且在发送源MAC地址中设定自节点,使之成为连 接请求帧。驱动部3007从中间驱动部3006接收帧,并且向MAC3011传输。 MAC3011从驱动部3007接收帧,并且向PHY3012传输。PHY3012从MAC3011接收帧,并且向端口 3013传输。端口 3013从PHY3012接收帧,并且经由以太网电缆向HUB32传输。HUB32如果接收到帧,则参照MACDA,由于MAC DA为防火墙33的LAN侧的地址,因此根据过去的路由学习结果,将该帧直接向防火墙33侧的端口输出。防火墙33从HUB22接收分组,由于是从网关装置30到网关装置20的通信,因此允许该通信,向HUB22传输。HUB22从防火墙33接收帧,根据过去的路由学习结果,将该帧直接向网关装置20传输。网关装置20 .从HUB22内接收帧,并且以端口 2013、 PHY2012、MAC2011、驱动部2007、网桥2008的路径传输帧,并且传输到中间驱动部2006。中间驱动部2006从驱动部2007接收帧,并且进行帧解析。解析的结 果,由于该帧为附加有预先由网关应用程序2001A所通知的指向网关应用 程序2001A的目的地IP及目的地端口的连接请求帧,因此接收该帧并且 在封装解除中去掉MAC报头,使之成为分组。由于该分组为从中间驱动 部3006向中间驱动部2006所发送的、指向TCP2003的连接请求分组,因 此中间驱动部2006内的TCP为了与TCP2003之间建立TCP会话,向IP 栈2005发送与TCP2003建立会话所需要的会话建立请求分组。该分组为 遵守TCP标准的分组,在目的地IP地址中设定以网关装置20为目的地, 在目的地端口号中设定TCP2003,而且在发送源IP地址中设定网关装置 30的IP地址,在发送源端口号中设定TCP3003的端口号。艮P,中间驱动部2006内的TCP冒充TCP3003的名称向TCP2003进 行TCP会话建立请求。从而,TCP2003识别成如同与TCP3003通信,而 且TCP3003也识别成如同与TCP2003通信。但是,在实际的TCP处理在 TCP3003与中间驱动部3006内的TCP之间、以及在中间驱动部2006与 TCP2003之间进行,再有,在中间驱动部3006与中间驱动部2006之间, 以UDP等的无拥塞控制的方法(本发明的通信系统中的独创分组)另行 进行通信。而且,TCP3003与中间驱动部3006之间的TCP会话、中间驱 动部3006与中间驱动部2006之间的UDP等一些通信会话、以及中间驱
动部2006与TCP2003之间的TCP会话,由中间驱动部3006和中间驱动 部2006彼此连接'中继,通过这样,如同在TCP3003与TCP2003之间建 立TCP会话那样进行通信。IP栈2005从中间驱动部2006接收帧,并且在该帧中去掉MAC报头 而使之成为分组后向IP路由2004传输。IP路由2004参照从IP栈2005所接收的分组的目的地端口号,由于 附加有TCP2003侧的端口号,因此向TCP2003传输该分组。TCP2003从IP路由2004接收分组。由于该分组为TCP会话建立请求 分组(SYN),因此为了建立TCP会话,按照TCP协议返回所需要的响 应分组(SYN+ACK)。此时,TCP2003将所接收的TCP会话建立请求 识别成从TCP3003所送到的TCP会话建立请求。这是,实际的建立请求 是从中间驱动部2006内的TCP所发送的建立请求,但是由于中间驱动部 2006内的TCP冒充TCP3003而向TCP2003进行了会话建立请求,因此 TCP2003识别成如同与TCP3003建立会话。从而,TCP2003以TCP3003为目的地发送按照TCP标准所生成的响 应分组(SYN+ACK) 。 g卩,将网关装置30的IP地址设定为响应分组的 目的地IP,将TCP3003的端口号设定为响应分组的目的地端口。响应分组经由IP路由2004被发送到IP栈2005,这里被附加MAC报 头而成为响应帧,并且到达中间驱动部2006。中间驱动部2006如果接收到响应帧,则在中间驱动部2006内的封装 解除中去掉响应帧的MAC报头来取出响应分组,并且用中间驱动部2006 的TCP进行接收后,将针对响应分组的ACK分组发送到TCP2003,从而 使TCP处理终结。并且,向中间驱动部3006发送用于连接完成通知的连 接完成通知分组。该连接完成通知分组是独创的分组,而不是遵守TCP 标准的分组。在该连接完成通知分组的目的地IP地址中设定网关装置30, 在目的地端口号中设定TCP3003,在发送源IP地址中设定网关装置20, 在发送源端口号中设定TCP2003。并且,在中间驱动部2006内的再封装 中对连接完成通知分组附加MAC报头,从而生成连接完成通知帧。连接完成通知帧经由与连接请求帧相反的路径也就是驱动部2007、 NIC201、 HUB22、防火墙33、 HUB32、 NIC301,到达CPU300内的中间 驱动部3006。中间驱动部3006接收连接完成通知帧,并且进行帧解析。解析的结 果,由于所接收的帧为附加有预先由网关应用程序3001A通知的向网关应 用程序3001A的目的地IP及目的地端口的帧,因此接收该帧并且在封装 解除中去掉MAC报头,从而使之成为分组。由于该分组是从中间驱动部 2006向中间驱动部3006所发送的、TCP2003与中间驱动部2006之间的连 接完成通知分组,因此中间驱动部3006内的TCP为了按照TCP协议向 TCP3003发送TCP会话建立所需要的响应分组(SYN+ACK),向IP栈 3005发送响应分组。响应分组经由IP栈3005、 IP路由3004,到达TCP3003。TCP3003从IP路由3004接收分组。由于该分组是针对TCP会话的建 立请求的响应分组,因此向SSL3002通知与TCP2003完成TCP会话连接。 此时,TCP3003将响应分组识别成从TCP2003所送到的响应分组。这是, 实际的响应从中间驱动部3006内的TCP所发送,但是由于中间驱动部 3006内的TCP冒充TCP2003而向TCP3003进行了针对会话建立的响应, 因此TCP3003识别成如同从TCP2003有了响应。TCP3003如果接收到响应分组,则针对该响应分组生成ACK分组而 以TCP2003为目的地进行发送。中间驱动部3006的TCP经由IP路由2004 和IP栈2005接收该ACK分组,使TCP处理终结。SSL3002收到来自TCP3003的连接完成通知,为了与SSL2002之间 建立SSL会话,按照SSL协议,发送用于会话建立请求的分组(SSL会 话建立请求分组)。SSL会话建立请求分组如果被TCP3003所接收,则通过TCP3003与 中间驱动部3006内的TCP之间所设定的TCP会话,到达中间驱动部3006。中间驱动部3006,接收SSL会话建立请求分组而使TCP会话终结, 并且附加UDP等的不进行拥塞控制的报头后,向中间驱动部2006发送分 组。分组经由NIC301、 HUB32、防火墙33、 HUB22、 NIC201,到达中间 驱动部2006。此时,NIC201内的高速化引擎2014将从PHY2012所接收 的分组直接向MAC2011传输。中间驱动部2006如果接收到SSL会话建立请求分组,则通过中间驱
动部2006内的TCP与TCP2003之间所设定的TCP会话,到达TCP2003。 TCP2003向SSL2002传输SSL会话建立请求分组。 SSL2002验证SSL会话建立请求的内容,如果没有问题,则向网关应用程序2001A通知与SSL3002的会话建立,同时,按照SSL协议,向SSL3002发送SSL会话建立响应分组。SSL会话建立响应分组经由与SSL会话建立请求分组相反的路径也就是TCP2003与中间驱动部2006之间的TCP会话,到达中间驱动部2006,并且经由中间驱动部2006与中间驱动部3006之间的UDP等的无拥塞控制的会话,到达中间驱动部3006。再有,经由中间驱动部3006与TCP3003之间的TCP会话,到达SSL3002。SSL3002按照SSL协议对SSL会话建立响应的内容进行验证,如果没有问题,则向网关应用程序3001A通知SSL3002与SSL2002之间的SSL会话建立。通过如上所述的方式,在中间驱动部2006与中间驱动部3006之间建 立用于帧传输的UDP等的无拥塞控制的会话。另外,在SSL2002与 SSL3002之间建立SSL会话。通过以上方式,在第四实施方式中完成在建立从网关装置30到网关 装置20的SSL会话(安全TCP会话)时的动作。 (从终端21到服务器31的帧传输动作)采用图20,以在第四实施方式中从终端21向服务器31发送帧的情况 为例,进行动作说明。此时,假设网桥2008、网桥3008、 HUB22或HUB32已学习了终端 21、服务器31、防火墙33、网关装置20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。再有,假设从网关装置30到网关装置20的SSL会话(安全TCP会 话)通过上述的动作例已被设定。另外,假设终端21内的应用程序2101与服务器31内的应用程序(应 用程序3101)之间已建立了TCP会话。
终端21内的应用程序2101将发给服务器31内的应用程序3101的数 据交给TCP2102。TCP2102从应用程序2101收取数据,并按照TCP协议附加TCP报头 (图2中的F23)或IP报头(图2中的F22)而作为IP分组,交给IP路 由2103。此时,在LANIPF22内的IPDA中设定服务器31的IP地址, 在LAN IP F22内的IP SA中设定终端21的IP地址。IP路由2103参照从TCP2102所接收的分组的目的地IP地址(发给 服务器31)和目的地端口 (发给TCP3102),将数据直接向IP栈2104传 输。IP栈2104从IP路由2103接收分组,并附加MAC报头(图2中的 F21)来制定Ethernet帧,交给驱动部2105。该帧具有Ethernet帧F20格 式。此时,IP栈2104参照ARP的结果,在帧的LAN MAC F21内的MAC DA中设定服务器31的MAC地址,在LAN MAC F21内的MAC SA中设 定终端21的MAC地址。驱动部2105从IP栈2105收取上述帧,并且向NIC211传输。NIC211从驱动部2105收取帧,并且经由MAC2111、 PHY2112、端 口 2113向HUB22传输帧。HUB22如果从终端21的NIC211侧的端口接收到帧,则参照F21内 的MACDA,由于MACDA为服务器31的地址,因此根据过去的路由学 习结果,将该帧直接向网关装置20侧的端口输出。网关装置20由端口 2013收取来自HUB22的帧,并且经由PHY2012、 MAC2011、驱动部2007,交给网桥2008。网桥2008参照从驱动部2007所接收的帧(帧格式F20形式)内的报 头F21内所存在的MACDA,由于MACDA为服务器31的MAC地址, 而不是网关装置20的MAC地址,因此向驱动部2009传输帧。从网桥2008所发送的帧经由驱动部2009、虚拟NIC2010,向网关应 用程序2001A传输。网关应用程序2001A使从虚拟NIC2010所接收的帧,流过网关应用 程序2001A与网关应用程序3001A之间所设定的SSL会话。即,网关应 用程序2001A将从虚拟NIC2010所接收的Ethernet帧(帧格式F20)作为
数据交给SSL2002。SSL2002如果从网关应用程序2001A收取数据(F21 F24),则对其 进行加密来生成数据F14后,交给TCP2003。TCP2003从SSL2002收取数据F14,并附加TCP报头F13以及IP报 头F12后,交给IP路由2004。这里,在F12内的IPDA中设定网关装置30的IP地址,在F12的IP SA中设定网关装置20的IP地址。另外,在目的地端口中设定TCP3003 的端口,在发送源端口中设定TCP2003的端口。IP路由2004参照从TCP2003所接收的数据的IP报头F12内的IP地 址等,并且将帧交给IP栈2005。IP栈2005从IP路由2004接收帧,并且对帧附加MAC报头Fll,使 之成为Ether over SSL帧格式FIO的形式后,交给中间驱动部2006。这里,根据ARP的结果在Fl 1内的MAC DA中设定防火墙33的WAN 侧的MAC地址,在Fll内的MAC SA中设定网关装置20的MAC地址。中间驱动部2006从IP栈2005接收帧,并且在帧解析2006H中进行 帧解析。于是,解析的结果,帧为预先由网关应用程序2001A所通知的、 与网关装置30之间的SSL会话的帧,因此在封装解除2006F中去除并保 存该帧的MAC报头Fll后,交给TCP2006A。中间驱动部2006内的TCP2006A使TCP2003A终结。即,去除帧的 IP报头F12和MAC报头F13而只留下数据F14,并且将数据F14发送到 碎片分割2006B。再有,向TCP2003发送ACK帧。中间驱动部2006内的碎片分割2006B确认从TCP2006A所接收的数 据F14的大小,由于没有碎片的必要,因此直接将数据发送到再封装 2006D。中间驱动部2006内的再封装2006D对从碎片分割2006B所接收的数 据F14附加MAC报头F11、 IP报头F12、 MAC报头F13,使之成为帧格 式F10的形式后,向网桥2008发送。此时,在Fll内的MACDA中设定 防火墙33的WAN侧的MAC地址,在Fll内的MAC SA中设定网关装 置20的MAC地址。另外,在F12内的IP DA中设定网关装置30的IP 地址,在F12内的IPSA中设定网关装置20的IP地址。另外,在目的地
端口中设定TCP3003的端口,将TCP2003的端口指定为发送源端口。这 些报头由封装解除2006F所保存。从中间驱动部所发送的帧经由网桥2008、驱动部2007、 NIC201,发 送到HUB22。HUB22如果从网关装置22侧的端口接收到帧,则参照Fl 1内的MAC DA,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接向防火墙33输出。
防火墙33接收来自HUB22的帧,参照IP DA来变更MAC报头Fl 1 , 并且以帧格式F10的形式向HUB32^I输接收帧。这里,在Fl 1内的MAC DA中设定网关装置30的MAC地址,在Fl 1 内的MAC SA中设定防火墙33的LAN侧的MAC地址。HUB32如果接收到来自防火墙33的帧,则参照Fll内的MACDA, 由于MACDA为网关装置30的地址,因此根据过去的路由学习结果,将 该帧直接向网关装置30侧的端口输出。
网关装置30如果从端口 3013接收到来自HUB32的帧,则经由 PHY3012、 MAC3011、驱动部3007、网桥3008'向中间驱动部3006传输。中间驱动部3006从网桥3008接收帧。该帧在接收时具有帧格式F10 的形式,但是在封装解除3006G中去除报头F11、报头F12、报头F13, 而只留下被加密的数据F14。然后,将数据F14交给TCP3006A,使其流 过预先设定在TCP3003与中间驱动部内的TCP3006A之间的TCP会话。 中间驱动部3006内的TCP3006A对所接收的数据F14附加与TCP3003的 TCP通信所需要的TCP报头F13、 IP报头F12后,发送到再封装3006E。 在F12内的IP DA中设定网关装置30的IP地址,在F12内的IP SA中设 定网关装置20的IP地址。
中间驱动部3006内的再封装3006E如果从TCP3006A接收数据,则 对该数据附加报头Fll后,发送到IP栈3005。这里,在Fll内的MAC DA 中设定网关装置30的MAC地址,在Fll内的MACSA中设定防火墙33 的WAN侧的MAC地址。通过这样,将来自TCP3006A接收帧设为帧格 式F10的形式后,向IP栈3005传输。IP栈3005去掉从中间驱动部3006所接收的帧的MAC报头Fll后,
向IP路由3004发送。IP路由3004参照所接收的帧的报头F12内的IPDA和F13内的目的 地端口号,向TCP3003传输帧。TCP3003如果从IP路由3004接收到帧,则进行按照TCP协议返回 ACK分组等的处理。并且,从所接收的帧中去掉TCP报头F13和IP报头 F12,向SSL3002传输数据F14。SSL3002如果从TCP3003接收到数据F14,则通过解密处理来解除加 密,并且从数据F14中取出Ethernet帧F20也就是F21 F24,向网关应 用程序3001A传输。网关应用程序3001A如果从SSL3002接收到帧F20,则使该帧直接流 过虚拟NIC3010。该帧原样保持着从终端21向HUB22发送时的状态,在LAN MAC F21 内的MACDA中设定服务器31的MAC地址,在LANMACF21内的MAC SA中设定终端21的MAC地址。另外,在LAN IP F22内的IP DA中设 定服务器31的IP地址,在LAN IP F22内的IP SA中设定终端21的IP地 址。从网关应用程序3001A交给虚拟NIC3010的帧,经由驱动部3009、 网桥300S、 NIC301,向HUB32传输。HUB32如果从网关装置30侧的端口接收到帧,则参照F21内的MAC DA,由于MACDA是服务器31的地址,因此根据过去的路由学习结果, 将该帧直接向服务器31侧的端口输出。服务器31接收从HUB32所发送的帧,并且经由驱动部3105、 IP栈 3104、 IP路由3103、 TCP3102,将帧内的数据F24交给应用程序3101 。通过如上所述的方式,完成从终端21内的应用程序2101到服务器31 内的应用程序3101的一系列的帧传输。通过经由与上述例相反的路径,也可同样地实现从服务器31内的应 用程序3101到终端21内的应用程序2101的一系列的帧传输。此外,在本实施方式中,与第一实施方式中的会话中继装置10内的 软件处理同样,在网关装置30内的软件和网关装置20内的软件中,中间 驱动部3006与TCP3003之间、以及中间驱动部2006与TCP2003之间暂
时成为TCP over TCP形式的处理。但是,在中间驱动部与TCP之间由于 缺失分组的可能性几乎没有,所以因TCP over TCP而发生速度降低的可 能性极小。这是因为,TCP over TCP问题是在发生分组丢失时发生显著的 速度降低的问题,假如没有发生分组丢失,则即使进行TCP over TCP形 式的处理,报头F13侧的TCP的窗口大小总是增大,从而也不会发生速 度降低等问题。用上述的方法在事实上停止报头F13侧的TCP的拥塞控制和重传控 制,由于报头F23侧的TCP的拥塞控制和重传控制依然通常那样发挥功 能,因此从终端21和服务器31的各个应用程序的角度来看,通过终端21 内的TCP和服务器31内的TCP的作用,拥塞控制、重传控制均顺利地进 行。再有,在本实施方式中还能够调换服务器31与终端21的设置场所。(发明效果) 接下来,对本实施方式的效果进行说明。如果利用本实施方式中所举出的发明,则在终端21与服务器31之间 能够进行帧的高速传输。这是因为,在网关装置20与网关装置30之间的通信中,在网关装置 30内的中间驱动部和网关装置20内的中间驱动部中,使网关装置20内的 TCP和使网关装置30内的TCP终结,以使在报头F13的位置不会发生基 于TCP的拥塞控制和重传控制,从而避免TCP over TCP问题的发生。 (第五实施方式)本发明的第五实施方式相对于第四实施方式,其不同之处在于,不存 在网关装置20内的中间驱动部2006、网关装置30内的中间驱动部3006, 而分别设置终端21内的中间驱动部2106、服务器31内的中间驱动部3106来代替。第五实施方式中的HUB22、 HUB32、企业内部网2、企业内部网3的 构成及动作,与第四实施方式相同。在第五实施方式中,企业内部网2不仅可以采用封闭域LAN,也可采 用互联网等开放的WAN。 (构成说明)图21是详细地示出了第五实施方式中的各设备的构成和帧的传输路 径的框图。网关装置20相对于第四实施方式中的网关装置20,其不同之处在于, 不存在中间驱动部2006,而且网关应用程序2001A没有向中间驱动部2006 传递与SSL会话相关的信息(网关应用程序的端口号等)。网关装置30相对于第四实施方式中的网关装置30,其不同之处在于, 不存在中间驱动部3006,而且网关应用程序3001A没有向中间驱动部3006 传递与SSL会话相关的信息(网关应用程序的端口号等)。终端21相对于第四实施方式中的终端21,其不同之处在于,设置有 中间驱动部2106。中间驱动部2106具有与第四实施方式中的中间驱动部2006或图7所 示的第一实施方式中的中间驱动部1008同样的构成,并且进行同样的动 作。但是,预先设定为使来自所有应用程序的TCP分组暂时终结。因此, 不需要进行如第四实施方式中的从网关应用程序2001A向中间驱动部 2006传递网关应用程序2001A的端口号这样的动作。服务器31相对于第四实施方式中的服务器31,其不同之处在于,设 置有中间驱动部3106。中间驱动部3106具有与第四实施方式中的中间驱动部3006或图7所 示的第一实施方式中的中间驱动部1008同样的构成,并且进行同样的动 作。但是,预先设定为使来自所有的应用程序的TCP分组暂时终结。因此, 不需要进行如第四实施方式中的从网关应用程序3001A向中间驱动部 3006传递网关应用程序3001A的端口号这样的动作。对于HUB22、 HUB33而言,具有与第四实施方式同样的构成,并且 进行同样的动作。防火墙33具有与第四实施方式的防火墙33同样的构成,并且进行同 样的动作。但是,在本实施方式中也可采用NAT路由器或proxy服务器 来取代防火墙33。第五实施方式也与其他实施方式同样,只有在网关装置20与网关装 置30之间预先设定有SSL会话的情况下,能够由企业内部网2内的设备 访问企业内部网3内的设备。(动作说明)(SSL会话的建立动作)采用图21,以在第五实施方式中建立从网关装置30到网关装置20 的SSL会话(安全TCP会话)的情况为例,进行动作说明。此时,假设网桥2008、网桥3008、 HUB22或HUB32已学习了终端 21、服务器31、防火墙33的LAN侧、防火墙33的WAN侧、网关装置 20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。网关装置30内的网关应用程序3001A收到来自用户的向网关装置20 内的网关应用程序2001A的连接请求,向SSL3002指示与网关装置20内 的网关应用程序2001A开始通信。SSL3002收到来自网关应用程序3001A的开始通信指示,为了与 SSL2002之间建立SSL会话,向TCP3003指示与网关装置20内的网关应 用程序2001A开始通信。TCP3003收到来自SSL3002的开始通信指示,为了与TCP2003之间 建立TCP会话,向IP路由3004发送与TCP2003的会话建立请求分组 (SYN)。该会话建立请求分组是遵守TCP标准的分组,在目的地IP地 址中设定以网关装置20为目的地,在目的地端口号中设定TCP2003。该 会话建立请求分组是遵守TCP标准的分组,在目的地IP地址中设定以会 话中继装置10为目的地,在目的地端口号中设定TCP1003。该TCP会话 建立请求分组是指,在建立TCP会话时,为了三路握手(three way handshake)而所发送的SYN分组。在本说明书中,为了简化TCP会话建 立动作的说明,在三路握手中所收发的分组中,将SYN分组称作TCP会 话建立请求分组,将SYN+ACK分组称作响应分组。另外,在实际上还 发送ACK分组,但是由于对ACK分组而言与SYN分组同样地传输,因 此在本动作说明中省略说明。IP路由3004参照从TCP3003所接收的分组的目的地IP地址和目的 地端口号,向IP栈3005传输分组。 IP桟3005对从IP路由3004所接收的分组附加防火墙33内的企业内部网3侧的MAC地址作为目的地MAC地址,而且在发送源MAC地址中设定自节点的MAC地址来生成帧后,经由网桥3008向驱动部3—007传输。 驱动部3007从IP栈3005接收帧,并且向MAC3011传输。 MAC3011从驱动部3007接收帧,并且向PHY3012传输。 PHY3012从MAC30U接收帧,并且向端口 3013传输。 端口 3013从PHY3012接收帧,并且经由以太网电缆向HUB32传输。 HUB32如果接收到帧,贝'J参照MACDA,由于MAC DA为防火墙33的LAN侧的地址,因此根据过去的路由学习结果,将该帧直接向防火墙33侧的端口输出。防火墙33从HUB22接收帧,由于是从网关装置30到网关装置20的通信,因此允许该通信,向HUB22传输。HUB22从防火墙33接收帧,根据过去的路由学习结果,将该帧直接向网关装置20传输。网关装置20从HUB22内接收帧,并且以端口 2013、 PHY2012、MAC2011、驱动部2007、网桥2008的路径传输帧,并且传输到IP栈2005。 IP栈2005从网桥2008接收帧,并且在该帧中去掉MAC报头而使之成为分组后向IP路由2004传输。IP路由2004参照从IP栈2005所接收的分组的目的地端口号,由于附加有TCP2003侧的端口号,因此向TCP2003传输。TCP2003从IP路由2004接收分组。由于该分组为TCP会话建立请求分组(SYN+ACK),因此按照TCP协议针对会话建立请求以TCP3003为目的地发送响应分组(SYN+ACK)。即,将网关装置30的IP地址设定为响应分组的目的地IP,将TCP3003的端口号设定为响应分组的目的地端口 。响应分组经由IP路由2004、 IP栈2005、网桥2008、驱动部2007、 NIC201、 HUB22、防火墙33、 HUB32、 NIC301,到达CPU300,进一步 经由驱动部3007、网桥3008、 IP栈3005、 IP路由3004,到达TCP3003。TCP3003如果从IP路由3004接收分组。由于该分组为针对TCP会话 建立请求的响应分组,因此向SSL3002通知与TCP2003完成TCP会话连 接。SSL3002收到来自TCP3003的连接完成通知,为了与SSL2002之间 建立SSL会话,按照SSL协议,发送用于会话建立请求的分组(SSL会话建立请求分组)。SSL会话建立请求分组如果被TCP3003所接收,则通过TCP3003与 TCP2003之间所设定的TCP会话,经由NIC301、 HUB32、防火墙33、 HUB22、 NIC201,到达TCP2003。TCP2003向SSL2002传输分组。SSL2002验证SSL会话建立请求的内容,如果没有问题,则向网关应 用程序2001A通知与SSL3002的会话建立,同时,按照SSL协议,向 SSL3002发送SSL会话建立响应分组。SSL会话建立响应分组经由与SSL会话建立请求分组相反的路径也就 是TCP2003与TCP3003之间的TCP会话,到达SSL3002。SSL3002按照SSL协议对SSL会话建立响应的内容进行验证,如果 没有问题,则向网关应用程序3001A通知SSL3002与SSL2002之间的SSL 会话建立。通过如上所述的方式,在SSL2002与SSL3002之间建立SSL会话。通过以上方式,在第四实施方式中完成在建立从网关装置30到网关 装置20的SSL会话(安全TCP会话)时的动作。(从应用程序2101到应用程序3101的会话建立动作)采用图21 ,对于在第五实施方式中终端21内的应用程序2101与服务 器31内的应用程序3101之间的会话建立动作进行说明。此时,假设网桥2008、网桥3008、 HUB22或HUB32已学习了终端 21、服务器31、防火墙33、网关装置20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。再有,假设从网关装置30到网关装置20的SSL会话(安全TCP会 话)通过上述的动作例已被设定。假设中间驱动部2106和中间驱动部3106预先设定为使自节点内的所
有应用程序的TCP终结。终端21内的应用程序2101收到来自用户的向服务器31内的应用程 序3101的连接请求,向TCP2102指示与服务器31内的应用程序3101开始通信。TCP2102收到来自应用程序2101的开始通信指示,为了与TCP3102 之间建立TCP会话,向IP路由2103发送与TCP3102的会话建立所需要 的分组。该分组是遵守TCP标准的分组,在目的地IP地址中设定以服务 器31为目的地,在目的地端口号中设定TCP3102。该TCP会话建立请求 分组是指,在建立TCP会话时,为了三路握手(three way handshake)而 所发送的SYN分组。在本说明书中,为了简化SSL会话建立动作的说明, 在三路握手中所收发的分组中,将SYN分组称作TCP会话建立请求分组, 将SYN分组+ACK分组称作响应分组。另外,在实际上还发送ACK分 组,但是由于对ACK分组而言与SYN分组同样地传输,因此在本动作说 明中省略说明。IP路由2104参照从TCP2102所接收的分组的目的地IP地址和目的 地端口号,向IP栈2104传输分组。IP栈2104对从IP路由2103所接收的分组附加服务器31的MAC地 址作为目的地MAC地址,而且在发送源MAC地址中设定终端21的MAC 地址,并且向中间驱动部2106传输。中间驱动部2106从IP栈2104接收分组,并且进行帧解析。解析的 结果,由于分组为TCP分组,因此去掉MAC报头,在中间驱动部2106 的TCP部中使向TCP3102的连接请求终结。即,TCP2102本来向TCP3102 进行了连接请求,但是在实际上针对该请求由中间驱动部2106内的TCP 进行接收而保留,并且在TCP2102与中间驱动部2106内的TCP之间进行 TCP会话的建立处理后,使之终结。中间驱动部2106,在进行终结处理时,为了向中间驱动部3106请求 与TCP3102之间建立TCP会话,向驱动部2105发送用于连接请求的分组。 此外,该连接请求分组是独创的分组,而不是遵守TCP标准的分组。该分 组,在目的地IP地址中设定服务器31,在目的地端口号中设定TCP3102, 来生成帧。
驱动部2105从中间驱动部2106接收连接请求帧,并且向MAC2111 传输。MAC2111从驱动部2105接收帧,并且向PHY2112传输。PHY2112从MAC2111接收帧,并且向端口 2113传输。端口 2113从PHY2112接收帧,并且经由以太网电缆向HUB22传输。HUB22如果从终端21的NIC211侧的端口接收到帧,则参照F21内 的MACDA,由于MACDA为服务器31的地址,因此根据过去的路由学 习结果,将该帧直接向网关装置20侧的端口输出。网关装置20由端口 2013收取来自HUB22的帧,并且经由PHY2012、 MAC2011、驱动部2007,交给网桥2008。网桥2008参照从驱动部2007所接收的帧(帧格式F20形式)内的报 头F21内所存在的MACDA,由于MACDA为服务器31的MAC地址, 而不是网关装置20的MAC地址,因此向驱动部2009传输帧。从网桥2008所发送的帧经由驱动部2009、虚拟NIC2010,向网关应 用程序2001A传输。网关应用程序2001A使从虚拟NIC2010所接收的帧,流过网关应用 程序2001A与网关应用程序3001A之间所设定的SSL会话。即,网关应 用程序2001A将从虚拟NIC2010所接收的Ethernet帧(帧格式F20)作为 数据交给SSL2002。SSL2002如果从网关应用程序2001A收取数据(F21 F24),则对其 进行加密来生成数据F14后,交给TCP2003。TCP2003从SSL2002收取数据F14,并附加TCP报头F13以及IP报 头F12后,交给IP路由2004。这里,在F12内的IPDA中设定网关装置30的IP地址,在F12的IP SA中设定网关装置20的IP地址。另外,在目的地端口中设定TCP3003 的端口,在发送源端口中设定TCP2003的端口。IP路由2004参照从TCP2003所接收的数据的IP报头F12内的IP地 址等,并且将帧交给IP栈2005。IP栈2005从IP路由2004接收帧,并且对帧附加MAC报头Fll,使 之成为Ether over SSL帧格式F10的形式后,交给网桥2008。
这里,根据ARP的结果在Fll内的MAC DA中设定防火墙33的WAN 侧的MAC地址,在Fll内的MAC SA中设定网关装置20的MAC地址。从IP栈2005所发送的帧经由网桥2008、驱动部2007、 NIC201,发 送到HUB22。HUB22如果从网关装置22侧的端口接收到帧,则参照Fll内的MAC DA,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接向防火墙33输出。防火墙33接收来自HUB22的帧,参照IP DA来变更MAC报头Fl 1 , 并且以帧格式F10的形式向HUB32传输接收帧。这里,在Fll内的MAC DA中设定网关装置30的MAC地址,在Fll 内的MAC SA中设定防火墙33的LAN侧的MAC地址。HUB32如果接收到来自防火墙33的帧,则参照Fl 1内的MAC DA, 由于MACDA为网关装置30的地址,因此根据过去的路由学习结果,将 该帧直接向网关装置30侧的端口输出。网关装置30如果从端口 3013接收到来自HUB32的帧,则经由 PHY3012、 MAC3011、驱动部3007、网桥3008,向IP栈3005传输。IP栈3005去掉从网桥3008所接收的巾i的MAC报头Fll后,向IP 路由3004发送。IP路由3004参照所接收的帧的报头F12内的IPDA和F13内的目的 地端口号,向TCP3003传输帧。TCP3003如果从IP路由3004接收到帧,则进行按照TCP协议向 TCP2003返回ACK分组等的处理。并且,从所接收的帧中去掉TCP报头 F13和IP报头F12,向SSL3002传输数据F14。SSL3002如果从TCP3003接收到数据F14,则通过解密处理来解除加 密,并且从数据F14中取出Ethernet帧F20也就是F21 F24,向网关应 用程序3001A传输。网关应用程序3001A如果从SSL3002接收到帧F20,则使该帧直接流 过虚拟NIC3010。该帧原样保持着从终端21向HUB22发送时的状态,在 LAN MAC F21内的MAC DA中设定服务器31的MAC地址,在LANMAC F21内的MAC SA中设定终端21的MAC地址。另外,在LAN IP F22内 的IP DA中设定服务器31的IP地址,在LAN IP F22内的IP SA中设定 终端21的IP地址。从网关应用程序3001A交给虚拟NIC3010的帧,经由驱动部3009、 网桥3008、 NIC301,向HUB32传输。HUB32如果从网关装置30侧的端口接收到帧,则参照F21内的MAC DA,由于MACDA是服务器31的地址,因此根据过去的路由学习结果, 将该帧直接向服务器31侧的端口输出。服务器31从HUB32接收分组,并且以端口 3113、 PHY3112、 MAC3111、驱动部3105的路径传输分组,并且传输到中间驱动部3106。中间驱动部3106从驱动部3105接收分组,并且进行帧解析。解析的 结果,由于分组为向自节点内的应用程序发来的TCP分组,因此接收该分 组。由于该分组为从中间驱动部2106向中间驱动部3106所发送的、指向 TCP3102的连接请求分组,因此中间驱动部3106内的TCP为了与TCP3102 之间建立TCP会话,向IP栈3104发送与TCP3102建立会话所需要的分 组。该分组为遵守TCP标准的分组,在目的地IP地址中设定以服务器31 为目的地,在目的地端口号中设定TCP3102,而且在发送源IP地址中设 定终端21的IP地址,在发送源端口号中设定TCP2102的端口号。艮口,中间驱动部3106内的TCP冒充TCP2102的名称向TCP3102进 行会话建立请求。从而,TCP3102识别成如同与TCP2102通信,而且 TCP2102也识别成如同与TCP3102通信。但是,在实际的TCP处理在 TCP2102与中间驱动部2106内的TCP之间、以及在中间驱动部3106与 TCP3102之间进行,再有,在中间驱动部2106与中间驱动部3106之间, 以UDP等的无拥塞控制的方法另行进行通信。而且,TCP2102与中间驱 动部2106之间的TCP会话、中间驱动部2106与中间驱动部3106之间的 UDP等一些通信会话、以及中间驱动部3106与TCP3102之间的TCP会 话,由中间驱动部2106和中间驱动部3106彼此连接 中继,通过这样, 如同在TCP3003与TCP2003之间建立TCP会话那样进行通信。IP栈3104从中间驱动部3106接收分组,并且在该分组中去掉MAC 报头后向IP路由3103传输。IP路由3103参照从IP栈3104所接收的分组的目的地端口号,由于 附加有TCP3102侧的端口号,因此向TCP3102传输该分组。TCP3102从IP路由3103接收分组。由于该分组为TCP会话建立请求 分组,因此按照TCP协议针对TCP会话建立请求返回响应分组。此时, TCP3102将TCP会话建立请求识别成从TCP2102所到达的TCP会话建立 请求。这是,实际的建立请求是从中间驱动部3106内的TCP所发送的建 立请求,但是由于中间驱动部3106内的TCP冒充TCP2102而向TCP3102 进行了会话建立请求,因此TCP3102识别成如同与TCP2102建立会话。从而,TCP3102以TCP2102为目的地发送响应分组。艮卩,将终端21 的IP地址设定为响应分组的目的地IP,将TCP2102的端口号设定为响应分组的目的地端口。响应分组经由IP路由3103、 IP栈3104,到达中间驱动部3106。 中间驱动部3106如果接收到响应分组,则用中间驱动部3106的TCP 进行接收后,针对该响应分组发送ACK分组,从而使TCP处理终结。并 且,向中间驱动部2106发送用于连接完成通知的分组。该连接完成通知 分组是独创的分组,而不是遵守TCP标准的分组。该分组,在目的地IP 地址中设定终端21,在目的地端口号中设定TCP2102,在发送源IP地址 中设定服务器31,在发送源端口号中设定TCP3102,从而生成帧。连接完成通知帧经由与连接请求帧相反的路径也就是驱动部3105、 NIC311、 HUB32、 NIC301、 CPU300、 NIC301、防火墙33、 HUB32、 NIC201、 CPU200、 NIC201、 HUB22、 NIC211,到达CPU210内的中间驱动部2106。 中间驱动部2106接收连接完成通知帧,并且进行帧解析。解析的结 果,由于所接收的帧为发给自节点内的应用程序的分组,因此进行接收。 由于所接收的分组是从中间驱动部3106向中间驱动部2106所发送的、 TCP3102与中间驱动部3106之间的连接完成通知,因此中间驱动部2106 内的TCP为了按照TCP协议向TCP2103发送针对会话建立请求的响应分 组,而按照TCP协议生成响应分组并且向IP栈2104发送。 响应分组经由IP栈2104、 IP路由2103,到达TCP2102。 TCP2102从IP路由2103接收分组。由于该分组是针对TCP会话的建 立请求的响应分组,因此向应用程序2101通知与TCP3102的TCP会话连 接完成。此时,TCP2102将响应分组识别成从TCP3102所到达的响应分
组。这是,实际的响应从中间驱动部2106内的TCP所发送,但是由于中 间驱动部2106内的TCP冒充TCP3102而向TCP2102进行了会话建立响 应,因此TCE2102识别成如同从TCP3102有了响应。TCP2102如果接收到响应分组,则针对该响应分组生成ACK分组并 且将TCP3102设定为目的地。中间驱动部2106的TCP经由IP路由2103 和IP栈2104接收该ACK分组,使TCP处理终结。通过以上方式,在第五实施方式中完成终端21内的应用程序2101与 服务器31内应用程序3101之间的会话建立动作。 (从终端21到服务器31的帧传输动作)采用图21,以在第五实施方式中从终端21向服务器31发送帧的情况 为例,进行动作说明。此时,假设网桥2008、网桥3008、 HUB22或HUB32已学习了终端 21、服务器31、防火墙33、网关装置20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置30或网关装置20的直接通信进行拦截。再有,假设从网关装置30到网关装置20的SSL会话(安全TCP会 话)通过上述的动作例己被设定。另外,假设终端21内的应用程序2101与服务器31内的应用程序(应 用程序3101)之间已建立了TCP会话。终端21内的应用程序2101将发给服务器31内的应用程序3101的数 据交给TCP2102。TCP2102从应用程序2101收取数据,并按照TCP协议附加TCP报头 (图2中的F23)或IP报头(图2中的F22)而作为IP分组,交给IP路 由2103。此时,在LANIPF22内的IPDA中设定服务器31的IP地址, 在LANIPF22内的IPSA中设定终端21的IP地址。IP路由2103参照从TCP2102所接收的分组的目的地IP地址(发给 服务器31)和目的地端口 (发给TCP3102),将数据直接向IP栈2104传 输。IP栈2104从IP路由2103接收分组,并附加MAC报头(图2中的F21)来制定Ethernet帧,交给中间驱动部2106。该帧具有Ethernet帧F20 格式。此时,IP栈2104参照ARP的结果,在帧的LAN MAC F21内的 MAC DA中设定服务器31的MAC地址,在LAN MAC F21内的MAC SA 中设定终端21的MAC地址。中间驱动部2106从IP栈2104接收帧,并且在帧解析2106H中进行 帧解析。解析的结果,由于帧为以前进行过会话建立的TCP2102与 TCP3102之间的会话的帧,因此在封装解除2106F中去除并保存该帧的 MAC报头F21后,交给TCP2106A。中间驱动部2106内的TCP2106A使TCP2103A终结。即,去除帧的 IP报头F22和MAC报头F23而只留下数据F24,并且将数据F24发送到 碎片分割2106B。再有,向TCP2102发送ACK帧。中间驱动部2106内的碎片分割2106B确认从TCP2106A所接收的数 据F24的大小,由于没有碎片的必要,因此直接将数据发送到再封装 2106D。中间驱动部2106内的再封装2106D对从碎片分割2106B所接收的数 据F24附加MAC报头F21、 IP报头F22、 MAC报头F23,使之成为帧格 式F20的形式后,向驱动部2105发送。此时,在F21内的MACDA中设 定服务器31的MAC地址,在F21内的MAC SA中设定终端21的MAC 地址。另外,在F22内的IPDA中设定服务器31的IP地址,在F22内的 IPSA中设定终端21的IP地址。另外,在目的地端口中设定TCP3102的 端口,将TCP2102的端口指定为发送源端口。这些报头由封装解除2106F 所保存。驱动部2105从中间驱动部2106收取上述帧,向NIC211传输。NIC211从驱动部2105收取帧,并且经由MAC2111、 PHY2U2、端 口 2113向HUB22传输帧。HUB22如果从终端21的NIC211侧的端口接收到帧,则参照F21内 的MACDA,由于MACDA为服务器31的地址,因此根据过去的路由学 习结果,将该帧直接向网关装置20侧的端口输出。网关装置20由端口 2013收取来自HUB22的帧,并且经由PHY2012、 MAC20U、驱动部2007,交给网桥2008。
网桥2008参照从驱动部2007所接收的帧(帧格式F20形式)内的报 头F21内所存在的MACDA,由于MACDA为服务器31的MAC地址, 而不是网关装置20的MAC地址,因此向驱动部2009传输帧。从网桥2008所发送的帧经由驱动部2009、虚拟NIC2010,向网关应 用程序2001A传输。网关应用程序2001A使从虚拟NIC2010所接收的帧,流过网关应用 程序2001A与网关应用程序3001A之间所设定的SSL会话。g卩,网关应 用程序2001A将从虚拟NIC2010所接收的Ethernet帧(帧格式F20)作为 数据交给SSL2002。SSL2002如果从网关应用程序2001A收取到数据(F21 F24),则对 其进行加密并生成数据F14,交给TCP2003。TCP2003从SSL2002收取数据F14,并附加TCP报头F13以及IP报 头F12后,交给IP路由2004。这里,在F12内的IPDA中设定网关装置 30的IP地址,在F12的IP SA中设定网关装置20的IP地址。另外,在 目的地端口中设定TCP3003的端口,将TCP2003的端口指定为发送源端 □。IP路由2004参照从TCP2003所接收的数据的IP报头F12内的IP地 址等,并且将帧交给IP栈2005。IP栈2005从IP路由2004接收帧,并且对帧附加MAC报头Fl 1 ,使 之成为Ether over SSL帧格式F10的形式后,交给网桥2008。这里,根据 ARP的结果在Fll内的MACDA中设定防火墙33的WAN侧的MAC地 址,在Fll内的MACSA中设定网关装置20的MAC地址。从IP栈2005所发送的帧经由网桥2008、驱动部2007、 NIC201,发 送到HUB22。HUB22如果从网关装置22侧的端口接收到帧,则参照Fl 1内的MAC DA,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接向防火墙33输出。防火墙33接收来自HUB22的帧,参照IP DA来变更MAC报头Fl 1 , 并且以帧格式F10的形式向HUB32传输接收帧。这里,在Fll内的MAC DA中设定网关装置30的MAC地址,在Fll 内的MAC SA中设定防火墙33的LAN侧的MAC地址。HUB32如果接收到来自防火墙33的帧,则参照Fl 1内的MAC DA,由于MACDA为网关装置30的地址,因此根据过去的路电学习结果,将该帧直接向网关装置30侧的端口输出。网关装置30如果从端口 3013接收到来自HUB32的帧,则经由PHY3012、 MAC3011、驱动部3007、网桥3008,向IP栈3005输出。 IP栈3005去掉从网桥3008所接收的帧的MAC报头Fll后,向IP路由3004发送。IP路由3004参照所接收的帧的报头F12内的IP DA和F13内的目的 地端口号,向TCP3003传输帧。TCP3003如果从IP路由3004接收到帧,则进行按照TCP协议返回 ACK分组等的处理。并且,从所接收的帧中去掉TCP报头F13和IP报头 F12,向SSL3002传输数据F14。SSL3002如果从TCP3003接收到数据F14,则通过解密处理来解除加 密,并且从数据F14中取出Ethernet帧F20也就是F21 F24,向网关应 用程序3001A传输。网关应用程序3001A如果从SSL3002接收到帧F20,则使该帧直接流 过虚拟NIC3010。该帧原样保持着从终端21向HUB22发送时的状态,在 LAN MAC F21内的MAC DA中设定服务器31的MAC地址,在LAN MAC F21内的MACSA中设定终端21的MAC地址。另外,在LANIPF22内 的IP DA中设定服务器31的IP地址,在LAN IP F22内的IP SA中设定 终端21的IP地址。从网关应用程序3001A交给虚拟NIC3010的帧,经由驱动部3009、 网桥3008、 NIC301,向HUB32传输。HUB32如果从网关装置30侧的端口接收到帧,则参照F21内的MAC DA,由于MACDA是服务器31的地址,因此根据过去的路由学习结果, 将该帧直接向服务器31侧的端口输出。从HUB32所发送的帧经由服务器31内的NIC311、驱动部3105,向 中间驱动部3106传输。中间驱动部3106从驱动部3105接收帧。该帧在接收时具有帧格式F20 的形式,但是在封装解除3106G中去除报头F2K报头F22、报头F23, 而只留下数据F24。然后,将数据F24交给TCP3106A,使其流过预先设 定在TCP3102与中间驱动部内的TCP3106A之间的TCP会话。中间驱动部3106内的TCP3106A对所接收的数据F24附加与TCP3102 的TCP通信所需要的TCP报头F23、IP报头F22后,发送到再封装3106E。 在F22内的IPDA中设定服务器31的IP地址,在F22内的IPSA中设定 终端21的IP地址。中间驱动部3106内的再封装3106E如果从TCP3106A接收到数据, 则对该数据附加报头F21后,发送到IP栈3104。这里,在F21内的MAC DA中设定服务器31的MAC地址,在F21内的MAC SA中设定终端21 的MAC地址。通过这样,将来自TCP3106A接收帧设为帧格式F20的形 式后,向IP栈3104传输。从中间驱动部3106输出的帧经由IP栈3104、IP路由3103、TCP3102, 将帧内的数据F24交给应用程序3101。通过如上所述的方式,完成从终端21内的应用程序2101到服务器31 内的应用程序3101的一系列的帧传输。通过经由与上述例相反的路径,也可同样地实现从服务器31内的应 用程序3101到终端21内的应用程序2101的一系列的帧传输。此外,在本实施方式中,在TCP2102与中间驱动部2106之间、TCP2003 与TCP3003之间、以及中间驱动部3106与TCP3102之间设定了 TCP会 话。因而,从中间驱动部2106到TCP2003之间、以及从TCP3003到中间 驱动部3106之间的传输中,TCP的拥塞控制及重传控制没有发挥功能。但是, 一般在企业内部网内很少发生分组的损失、或者拥塞,当跨过 防火墙的连接也就是经由WAN的连接时,需要应付损失或拥塞。由于在 本实施方式中网关装置20与网关装置30之间TCP发挥作用,因此如果有 该区间中的重传控制或拥塞控制,则几乎不给应用程序2101与应用程序 3101之间的通信带来影响。再有,在本实施方式中也能够调换服务器31与终端21的设置场所。 (发明效果)接下来,对本实施方式的效果进行说明。
如果利用本实施方式中所举出的发明,则在终端21与服务器31之间能够进行帧的高速传输。这是因为,在终端21与服务器31之间的通信中,在终端21内的中 间驱动部和服务器31内的中间驱动部中,使终端21内的TCP和使服务器 31内的TCP终结,以使在报头F23的位置不会发生基于TCP的拥塞控制 和重传控制,从而避免TCP over TCP问题的发生。 (第六实施方式)本发明的第六实施方式相对于第五实施方式,其不同之处在于,不存 在网关装置30内的网桥3008、驱动部3009、虚拟NIC3010、服务器31 内的中间驱动部3106,而在网关装置30内分别设置封装处理3001B、 TCP3003B来代替。第六实施方式中的HUB22、 HUB32、终端21、网关装置20、企业内 部网2、企业内部网3的构成及动作,与第五实施方式相同。在第六实施方式中,企业内部网2不仅可以采用封闭域LAN,也可采 用互联网等开放的WAN。 (构成说明)图22是详细地示出了第六实施方式中的各设备的构成和帧的传输路 径的框图。网关装置30相对于第五实施方式中的网关装置30,其不同之处在于, 不存在网桥3008、驱动部3009、虚拟NIC3010,而分别设置有封装处理 3001B、 TCP3003B来代替。封装处理3001B从网关应用程序3001A接收格式F20的帧,并且分 别去除报头F21、报头F22、报头F23而仅将数据F24交给TCP3003B。 另外,从TCP3003B接收数据F24,并分别附加报头F21、报头F22、报 头F23后交给网关应用程序3001A。另外,如果接收到连接请求,则向 TCP3003B进行TCP会话建立请求。再有,接收来自TCP3003B的TCP 会话建立响应,来制定连接完成通知帧后,交给网关应用程序3001A。TCP3003B具有与TCP2003或TCP3003同样的构成,并且进行同样 的动作。服务器31相对于第五实施方式中的服务器31,其不同之处在于,设
置有中间驱动部3106。即,具有与第一 第四实施方式中的服务器31同 样的构成,并且进行同样的动作。HUB22、 HUB32、终端21、网关装置20、企业内部网2、企业内部 网3的构成及动作,与第五实施方式相同。防火墙33具有与第五实施方式的防火墙33相同的构成,并且进行同 样的动作。但是,在本实施方式中也可采用NAT路由器或proxy服务器 来取代防火墙33。第六实施方式也与其他实施方式同样,只有在网关装置20与网关装 置30之间预先设定有SSL会话的情况下,能够由企业内部网2内的设备 访问企业内部网3内的设备。 (动作说明)(SSL会话的建立动作)由于第六实施方式中的从网关装置30到网关装置20的SSL会话(安 全TCP会话)的建立动作,与第五实施方式相同,因此在此省略。 (应用程序2101到应用程序3101的会话建立动作)采用图22,对于在第六实施方式中终端21内的应用程序2101与服务 器31内的应用程序3101之间的会话建立动作进行说明。此时,假设网桥2008、 HUB22、 HUB32已学习了终端21、服务器31、 防火墙33、网关装置20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。再有,假设从网关装置30到网关装置20的SSL会话(安全TCP会 话)通过上述的动作例己被设定。假设中间驱动部2106预先设定为使自节点内的所有应用程序中的 TCP处理终结。终端21内的应用程序2101收到来自用户的向服务器31内的应用程 序3101的连接请求,向TCP2102指示与服务器31内的应用程序3101开始通信。TCP2102收到来自应用程序2101的开始通信指示,为了与TCP3102 之间建立TCP会话,向IP路由2103发送与TCP3102的TCP会话建立请 求分组。该分组是遵守TCP标准的分组,在目的地IP地址中设定以服务 器31为目的地,在目的地端口号中设定TCP3102。会话建立所需的分组 是指,在建立TCP会话时,为了三路握手(three way handshake)而所发 送的SYN分组分组。在本说明书中,为了简化TCP会话建立动作的说明, 在三路握手中所收发的分组中,将SYN分组称作TCP会话建立请求分组, 将SYN+ACK分组称作响应分组。另夕卜,在实际上还发送ACK分组,但 是由于对ACK分组而言与SYN分组同样地传输,因此在本动作说明中省 略说明。IP路由2104参照从TCP2102所接收的分组的目的地IP地址和目的 地端口号,向IP栈2104传输分组。IP栈2104对从IP路由2103所接收的分组附加服务器31的MAC地 址作为目的地MAC地址,而且在发送源MAC地址中设定终端21的MAC 地址来生成帧,并且向中间驱动部2106传输。中间驱动部2106从IP桟2104接收TCP会话建立请求帧,并且进行 帧解析。解析的结果,由于所接收的帧为TCP帧,因此在封装解除中去掉 MAC报头,使之成为分组。并且在中间驱动部2106的TCP部中使从 TCP2102到TCP3102的TCP处理终结。艮P, TCP2102本来向TCP3102进 行了连接请求,但是在实际上针对该请求由中间驱动部2106内的TCP进 行接收而保留,并且在TCP2102与中间驱动部2106内的TCP之间进行 TCP会话的建立处理后,使之终结。中间驱动部2106,在进行终结处理时,为了向封装处理3001B请求 与TCP3102之间建立TCP会话,向驱动部2105发送用于连接请求的分组。 此外,该连接请求分组是独创的分组,而不是遵守TCP标准的分组。该分 组,在目的地IP地址中设定服务器31,在目的地端口号中设定TCP3102。 并且,对该分组附加目的地MAC地址,而且在发送源MAC地址中设定 自节点的MAC地址,从而生成连接请求帧。驱动部2105从中间驱动部2106接收连接请求帧,并且向MAC2111 传输。MAC2111从驱动部2105接收帧,并且向PHY2112传输。 PHY2112从MAC2111接收帧,并且向端口 2113传输。端口 2113从PHY2112接收帧,并且经由以太网电缆向HUB22传输。HUB22如果从终端21的NIC211侧的端口接收到帧,则参照F21内 的MACDA,由于MACDA为服务器31的地址,因此根据过去的路由学 习结果,将该帧直接向网关装置20侧的端口输出。网关装置20由端口 2013收取来自HUB22的帧,并且经由PHY2012、 MAC2011、驱动部2007,交给网桥2008。网桥2008参照从驱动部2007所接收的帧(帧格式F20形式)内的报 头F21内所存在的MACDA,由于MACDA为服务器31的MAC地址, 而不是网关装置20的MAC地址,因此向驱动部2009传输帧。从网桥2008所发送的帧经由驱动部2009、虚拟NIC2010,向网关应 用程序2001A传输。网关应用程序2001A使从虚拟NIC2010所接收到的帧,流过网关应 用程序2001A与网关应用程序3001A之间所设定的SSL会话。g卩,网关 应用程序2001A将从虚拟NIC2010所接收到的Ethernet帧(帧格式F20) 作为数据交给SSL2002。SSL2002如果从网关应用程序2001A收取到数据(F21 F24),则对 其进行加密来生成数据F14后,交给TCP2003。TCP2003从SSL2002收取数据F14,并附加TCP报头F13以及IP报 头F12后,交给IP路由2004。这里,在F12内的IPDA中设定网关装置 30的IP地址,在F12的IP SA中设定网关装置20的IP地址。另外,在 目的地端口中设定TCP3003的端口,将TCP2003的端口指定为发送源端 □。IP路由2004参照从TCP2003所接收的数据的IP报头F12内的IP地 址等,并且将帧交给IP栈2005。IP栈2005从IP路由2004接收帧,并且对帧附加MAC报头Fll,使 之成为Ether over SSL帧格式F10的形式后,交给网桥2008。这里,根据ARP的结果在Fl 1内的MAC DA中设定防火墙33的WAN 侧的MAC地址,在Fll内的MAC SA中设定网关装置20的MAC地址。从IP栈2005所发送的帧经由网桥2008、驱动部2007、 NIC201,发
送到HUB22。HUB22如果从网关装置22侧的端口接收到帧,则参照Fl 1内的MAC A,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接向防火墙33输出。防火墙33接收来自HUB22的帧,参照IPDA来变更MAC报头Fll, 并且以帧格式F10的形式向HUB32传输接收帧。这里,在Fll内的MACDA中设定网关装置30的MAC地址,在Fll 内的MAC SA中设定防火墙33的LAN侧的MAC地址。HUB32如果接收到来自防火墙33的帧,则参照Fl 1内的MAC DA, 由于MACDA为网关装置30的地址,因此根据过去的路由学习结果,将 该帧直接向网关装置30侧的端口输出。网关装置30如果从端口 3013接收到来自HUB32的帧,则经由 PHY3012、 MAC3011、驱动部3007,向IP栈3005传输。IP栈3005去掉从驱动部3007所接收的帧的MAC报头Fl 1 ,使之成 为分组后,向IP路由3004发送。IP路由3004参照来自IP栈3005的分组的报头F12内的IP DA和F13 内的目的地端口号,向TCP3003传输该分组。TCP3003如果从IP路由3004接收到分组,则进行按照TCP协议向 TCP2003返回ACK分组等的处理。并且,从所接收的分组中去掉TCP报 头F13和IP报头F12,向SSL3002传输数据F14。SSL3002如果从TCP3003接收到数据F14,则通过解密处理来解除加 密,并且从数据F14中取出Ethernet帧F20也就是F21 F24,向网关应 用程序3001A传输。网关应用程序3001A如果从SSL3002接收到帧F20,则使该帧直接流 过封装处理3001B。该帧原样保持着从终端21向HUB22发送时的状态, 在LANMACF21内的MAC DA中设定服务器31的MAC地址,在LAN MAC F21内的MAC SA中设定终端21的MAC地址。另外,在LAN IP F22 内的IP DA中设定服务器31的IP地址,在LAN IP F22内的IP SA中设 定终端21的IP地址。封装处理3001B从网关应用程序3001A接收帧,并且迸行帧解析。 解析的结果,由于该帧为从中间驱动部2106所发送的指向TCP3102的连 接请求,因此命令TCP3003B建立与TCP3102之间的TCP会话。TCP3003B为了建立与TCP3102之间的TCP会话,向IP路由3004 发送与TCP3102的TCP会话建立请求分组。该分组是遵守TCP标准的分 组,在目的地IP地址中设定以服务器31为目的地,在目的地端口号中设 定TCP3102,而且在发送源IP地址中设定网关装置30的IP地址,在发 送源端口号中设定TCP3003B的端口号。对于TCP3003B的端口号而言, 既可以设定为与TCP2102的端口号相同,也可以设定为与TCP2102的端 口号不同。此外,TCP会话建立请求分组是指,在建立TCP会话时,为 了三路握手(three way handshake)而所发送的SYN分组分组。在本说明 书中,为了简化SSL会话建立动作的说明,在三路握手中所收发的分组中, 将SYN分组称作TCP会话建立请求分组,将SYN+ACK分组称作响应 分组。另外,在实际上还发送ACK分组,但是由于对ACK分组而言与 SYN分组同样地传输,因此在本动作说明中省略说明。交给IP路由3004的分组,由IP栈3005被附加目的地MAC地址, 而且在发送源MAC地址中设定自节点的MAC地址来制定帧后,经由驱 动部3007、 NIC301向HUB32传输。HUB32如果从网关装置30侧的端口接收到帧,则参照F21内的MAC DA,由于MACDA为服务器31的地址,因此根据过去的路由学习结果, 将该帧直接向服务器31侧的端口输出。服务器31从HUB32内接收帧,并且以端口 3113、 PHY3U2、 MAC3111、驱动部3105的路径传输分组,并且传输到IP栈3104。IP栈3104从驱动部3105接收帧,并且去掉MAC报头,使之成为分 组后,向IP路由3103传输。IP路由3103参照从IP栈3104所接收的分组的目的地端口号,由于 附加有TCP3102侧的端口号,因此向TCP3102传输该分组。TCP3102从IP路由3103接收分组。由于该分组为TCP会话建立请求 分组(SYN),因此按照TCP协议针对该TCP会话建立请求返回响应分 组(SYN+ACK)。TCP3102以TCP3003B为目的地发送响应分组。即,将网关装置30
的IP地址设定为响应分组的目的地IP,将TCP3003B的端口号设定为响 应分组的目的地端口。响应分组经由与TCP建立请求分组相反的路径也就是IP路由3103、 IP栈3104,驱动部3105、 NIC311、 HUB32、 NIC301,到达TCP3003B。TCP3003B如果接收到响应分组,则将针对响应分组的ACK分组向 TCP3102发送,并且将响应分组交给封装处理3001B。封装处理3001B向终端21内的中间驱动部2106发送用于连接完成通 知的分组。该连接完成通知分组是独创的分组,而不是遵守TCP标准的分 组。该分组,在目的地IP地址中设定终端21,在目的地端口号中设定 TCP2102,在发送源IP地址中设定服务器31,在发送源端口号中设定 TCP3102,从而生成帧。连接完成通知帧经由与连接请求帧相反的路径也就是网关应用程序 3001A、 SSL3002、 TCP3003、 IP路由3004、 IP栈3005、驱动部3007、 NIC301、 HUB33、防火墙33、 HUB32、 NIC201、 CPU200、 NIC201 、 HUB22、 NIC211,达到CPU210内的中间驱动部2106。中间驱动部2106接收连接完成通知帧,并且进行帧解析。解析的结 果,由于为发给自节点内的应用程序的分组,因此对该帧进行接收,并且 在封装解除中去除MAC报头,使之成为分组。由于该分组是从封装处理 3001B向中间驱动部2106所发送的、封装处理3001B与TCP3102之间的 连接完成通知分组,因此中间驱动部2106内的TCP,为了向TCP2103发 送针对TCP会话建立请求的响应分组(SYN+ACK),按照TCP协议生 成响应分组(SYN+ACK),并且向IP栈2104发送响应分组。响应分组经由IP桟2104、 IP路由2103,到达TCP2102。TCP2102从IP路由2103接收分组。由于该分组是针对TCP会话的建 立请求的响应分组,因此向应用程序2101通知与TCP3102的TCP会话连 接完成。此时,TCP2102将响应分组识别成从TCP3102所送到的响应分 组。这是,实际的响应从中间驱动部2106内的TCP所发送,但是由于中 间驱动部2106内的TCP冒充TCP3102而向TCP2102进行了会话建立响 应,因此TCP2102识别成如同从TCP3102有了响应。TCP2102如果接收到响应分组,则针对该响应分组生成ACK分组并
且以TCP3102为目的地进行发送。中间驱动部2106的TCP经由IP路由 2103和IP栈2104接收该ACK分组,使TCP处理终结。通过以上方式,在第五实施方式中完成终—端21内的应用程序2101与 服务器31内应用程序3101之间的会话建立动作。 (从终端21到服务器31的帧传输动作)采用图22,以在第六实施方式中从终端21向服务器31发送帧的情况为例,进行动作说明。此时,假设网桥2008、 HUB22或HUB32已学习了终端21、服务器 31、防火墙33、网关装置20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置30或网关装置20的直接通信迸行拦截。再有,假设从网关装置30到网关装置20的SSL会话(安全TCP会 话)通过上述的动作例己被设定。另外,假设终端21内的应用程序2101与服务器31内的应用程序(应 用程序3101)之间已建立了TCP会话。终端21内的应用程序2101将发给服务器31内的应用程序3101的数 据交给TCP2102。TCP2102从应用程序2101收取数据,并按照TCP协议附加TCP报头 (图2中的F23)或IP报头(图2中的F22)而作为IP分组,交给IP路 由2103。此时,在LANIPF22内的IPDA中设定服务器31的IP地址, 在LAN IP F22内的IP SA中设定终端21的IP地址。IP路由2103参照从TCP2102所接收的分组的目的地IP地址(发给 服务器31)和目的地端口 (发给TCP3102),将数据直接向IP栈2104传 输。IP桟2104从IP路由2103接收分组,并附加MAC报头(图2中的 F21)来制定Ethernet帧,交给中间驱动部2106。该帧具有Ethernet帧F20 格式。此时,IP栈2104参照ARP的结果,在帧的LAN MAC F21内的 MACDA中设定服务器31的MAC地址,在LANMACF21内的MACSA 中设定终端21的MAC地址。
中间驱动部2106从IP栈2104接收帧,并且在帧解析2106H中进行 帧解析。解析的结果,由于帧为以前进行过会话建立的TCP2102与 TCP3102之间的会话的帧,因此在封装解除2106F中去除并保存该帧的 MAC报头F21后,交给TCP2106A。中间驱动部2106内的TCP2106A使TCP2103A终结。即,去除帧的 IP报头F22和MAC报头F23而只留下数据F24,并且将数据F24发送到 碎片分割2106B。再有,向TCP2102发送ACK帧。中间驱动部2106内的碎片分割2106B确认从TCP2106A所接收到的 数据F24的大小,由于没有碎片的必要,因此直接将数据发送到再封装 2106D。中间驱动部2106内的再封装2106D对从碎片分割2106B所接收的数 据F24附加MAC报头F21 、 IP报头F22、 MAC报头F23,使之成为帧格 式F20的形式后,向驱动部2105发送。此时,在F21内的MACDA中设 定服务器31的MAC地址,在F21内的MAC SA中设定终端21的MAC 地址。另外,在F22内的IPDA中设定服务器31的IP地址,在F22内的 IPSA中设定终端21的IP地址。另外,在目的地端口中设定TCP3102的 端口,将TCP2102的端口指定为发送源端口。这些报头由封装解除2106F 所保存。驱动部2105从中间驱动部2106收取上述帧,向NIC211传输。NIC211从驱动部2105收取帧,并且经由MAC2U1、 PHY2112、端 口 2113向HUB22传输帧。HUB22如果从终端21的NIC211侧的端口接收到帧,则参照F21内 的MACDA,由于MACDA为服务器31的地址,因此根据过去的路由学 习结果,将该帧直接向网关装置20侧的端口输出。网关装置20由端口 2013收取来自HUB22的帧,并且经由PHY2012、 MAC2011、驱动部2007,交给网桥2008。网桥2008参照从驱动部2007所接收的帧(帧格式F20形式)内的报 头F21内所存在的MACDA,由于MACDA为服务器31的MAC地址, 而不是网关装置20的MAC地址,因此向驱动部2009传输帧。从网桥2008所发送的帧经由驱动部2009、虚拟NIC2010,向网关应
用程序2001A传输。网关应用程序2001A使从虚拟NIC2010所接收到的帧,流过网关应 用程序2001A与网关应用程序3001A之间所设定的SSL会话。艮口,网关应用程序2001A将从虚拟NIC2010所接收的Ethernet帧(帧 格式F20)作为数据交给SSL2002。SSL2002如果从网关应用程序2001A收取到数据(F21 F24),则对 其进行加密来生成数据F14后,交给TCP2003。TCP2003从SSL2002收取数据F14,并附加TCP报头F13以及IP报 头F12后,交给IP路由2004。这里,在F12内的IPDA中设定网关装置 30的IP地址,在F12的IP SA中设定网关装置20的IP地址。另外,在 目的地端口中设定TCP3003的端口,将TCP2003的端口指定为发送源端 □。IP路由2004参照从TCP2003所接收的数据的IP报头F12内的IP地 址等,并且将帧交给IP栈2005。IP栈2005从IP路由2004接收帧,并且对帧附加MAC报头Fll,使 之成为Ether over SSL帧格式F10的形式后,交给网桥2008。这里,根据ARP的结果在Fl 1内的MAC DA中设定防火墙33的WAN 侧的MAC地址,在Fll内的MACSA中设定网关装置20的MAC地址。从IP栈2005所发送的帧经由网桥2008、驱动部2007、 NIC201,发 送到HUB22。HUB22如果从网关装置22侧的端口接收到帧,则参照Fll内的MAC DA,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接向防火墙33输出。防火墙33接收来自HUB22的帧,参照IP DA来变更MAC报头Fl 1 , 并且以帧格式F10的形式向HUB32传输接收帧。这里,在Fll内的MAC DA中设定网关装置30的MAC地址,在Fll 内的MAC SA中设定防火墙33的LAN侧的MAC地址。HUB32如果接收到来自防火墙33的帧,则参照Fll内的MACDA, 由于MACDA为网关装置30的地址,因此根据过去的路由学习结果,将 该帧直接向网关装置30侧的端口输出。
网关装置30如果从端口 3013接收到来自HUB32的帧,则经由 PHY3012、 MAC3011、驱动部3007,向IP栈3005输出。IP栈3005去掉从驱动部3007所接收的帧的MAC报头Fll后,向IP 路由3004发送。IP路由3004参照所接收的帧的报头F12内的IP DA和F13内的目的 地端口号,向TCP3003传输帧。TCP3003如果从IP路由3004接收到帧,则进行按照TCP协议返回 ACK分组等的处理。并且,从所接收的帧中去掉TCP报头F13和IP报头 F12,向SSL3002传输数据F14。SSL3002如果从TCP3003接收到数据F14,则通过解密处理来解除加 密,并且从数据F14中取出Ethernet帧F20也就是F21 F24,向网关应 用程序3001A传输。该帧原样保持着从终端21向HUB22发送时的状态,在LAN MAC F21 内的MAC DA中设定服务器31的MAC地址,在LAN MAC F21内的MAC SA中设定终端21的MAC地址。另外,在LAN IP F22内的IP DA中设 定服务器31的IP地址,在LAN IP F22内的IP SA中设定终端21的IP地 址。网关应用程序3001A如果从SSL3002接收到帧F20,则使该帧直接流 过封装处理3001B。封装处理3001B如果从网关应用程序3001A接收到帧,则去掉报头 F21、报头F22、报头F23,并且向这些报头中所记载的IP地址及端口 , 重新发送帧。即,按照向服务器31的IP地址的、TCP3102的端口发送数 据F24的方式传给TCP3003B。TCP3003B从封装3001B收取数据F24,并且使之流过在TCP3102与 TCP3003B之间预先设定的TCP会话。艮卩,TCP3003B在数据F24中配置 IP报头F22和TCP报头F23,并且向IP路由3004传输。这里,在IP报 头F22的IP DA中记载了服务器31的IP地址,在IP报头F22的IP SA 中记载了网关装置30的IP地址。另外,在目的地端口中记载了TCP3102 的端口,在发送源端口中记载了 TCP3030B端口。IP路由3004从TCP3003B收取分组,参照IPDA或端口等,向IP栈
3005B传输帧。IP栈3005B如果从IP路由3004接收到数据,则对该数据附加报头 F21后,发送到驱动部3007。这里,在F21内的MAC DA中设定服务器 31的MAC地址,在F21内的MACSA中设定网关装置30的MAC地址。 通过这样,将来自TCP3003B的接收帧设定为帧格式F20的形式后,向驱 动部3007传输。从IP栈3005B所输出的帧经由网桥3008、驱动部3007、 NIC301 ,向 HUB32传输。HUB32如果从网关装置30侧的端口接收到帧,则参照F21内的MAC DA,由于MACDA为服务器31的地址,因此根据过去的路由学习结果, 将该帧直接向服务器31侧的端口输出。从HUB32所发送的帧经由服务器31内的NIC311、驱动部3105、 IP 栈3104、 IP路由3103、 TCP3102而被传输,而帧内的数据F24被交给应 用程序3101。通过如上所述的方式,完成从终端21内的应用程序2101到服务器31 内的应用程序3101的一系列的帧传输。通过经由与上述例相反的路径,也可同样地实现从服务器31内的应 用程序3101到终端21内的应用程序2101的一系列的帧传输。此夕卜,本实施方式中,在TCP2102与中间驱动部2106之间、TCP2003 与TCP3003之间、以及TCP3003B与TCP3102之间设定了TCP会话。因 而,从中间驱动部2106到TCP2003之间、以及从TCP3003到TCP3003B 之间的传输中,TCP的拥塞控制及重传控制没有发挥功能。但是, 一般在企业内部网内很少发生分组的损失、或者拥塞,当跨过 防火墙的连接也就是经由WAN的连接时,需要应付损失或拥塞。由于在 本实施方式中网关装置20与网关装置30之间TCP发挥作用,因此如果有 该区间中的重传控制或拥塞控制,则几乎不给应用程序2101与应用程序 3101之间的通信带来影响。在本实施方式中示出了在网关装置30侧实现封装处理等,在终端21 侧实现中间驱动部的例子,但是与此相反地,也可在网关装置20侧实现 封装处理等,在服务器31侧实现中间驱动部。(发明效果) 接下来,对本实施方式的效果进行说明。如果利用本实施方式中所举出的发明,则在终端21与服务器31之间能够进行帧的高速传输。这是因为,在终端21与服务器31之间的通信中,在终端21内的中 间驱动部和网关装置30内的封装处理3001B中,使终端21内的TCP和 使服务器31内的TCP终结,以使在报头F23的位置不会发生基于TCP的 拥塞控制和重传控制,从而避免TCP over TCP问题的发生。 (第七实施方式)本发明的第七实施方式相对于第六实施方式,其不同之处在于,在网 关装置30内追加设置有网桥3008、 IP桟3005B。第七实施方式中的HUB22、 HUB32、终端21、网关装置20、企业内 部网2、企业内部网3的构成及动作,与第六实施方式相同。在第七实施方式中,企业内部网2不仅可以采用封闭域LAN,也可采 用互联网等开放的WAN。在第六实施方式中存在下述问题,即实际上从终端21内的应用程序 2101进行通信,但是服务器31侧的应用程序识别成从网关装置30接受访 问。在第七实施方式中通过在网关装置中追加设置IP栈,从而创建了服 务器31侧的应用程序识别成从终端21接受访问的环境。 (构成说明)图23是详细地示出了第七实施方式中的各设备的构成和帧的传输路 径的框图。网关装置30相对于第六实施方式中的网关装置30,其不同之处在于, 分别追加了网桥3008、 IP栈3005B。网桥3008与第三 第五实施方式中的网桥3008相同。g卩,基于MAC DA,来决定成为传输目的地的驱动部或IP栈。IP栈3005B具有与IP栈3005同样的构成,并且进行同样的动作。但 是,对所附加的MAC SA及IP SA而言,采用由封装解除3001B指定的 地址。HUB22、 HUB32、终端21、网关装置20、企业内部网2、企业内部 网3的构成及动作,与第六实施方式相同。防火墙33具有与第六实施方式的防火墙33同样的构成,并且进行同 样的动作。但是,在本实施方式中也可采用NAT路由器或proxy服务器 来取代防火墙33。第七实施方式也与其他实施方式同样,只有在网关装置20与网关装 置30之间预先设定有SSL会话的情况下,能够由企业内部网2内的设备 访问企业内部网3内的设备。 (动作说明)(SSL会话的建立动作)由于第六实施方式中的从网关装置30到网关装置20的SSL会话(安 全TCP会话)的建立动作,与第五实施方式以及第六实施方式相同,因此 在此省略。(应用程序2101到应用程序3101的会话建立动作)采用图23,对于在第七实施方式中终端21内的应用程序2101与服务 器31内的应用程序3101之间的会话建立动作进行说明。此时,假设网桥2008、 HUB22、 HUB32已学习了终端21、服务器31、 防火墙33、网关装置20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。再有,假设从网关装置30到网关装置20的SSL会话(安全TCP会 话)通过上述的动作例己被设定。假设中间驱动部2106预先设定为使自节点内的所有应用程序的TCP 的处理终结。终端21内的应用程序2101收到来自用户的向服务器31内的应用程 序3101的连接请求,向TCP2102指示与服务器31内的应用程序3101开始通信。TCP2102收到来自应用程序2101的开始通信指示,为了与TCP3102 之间建立TCP会话,向IP路由2103发送与TCP3102的TCP会话建立请
求分组(YN)。该分组是遵守TCP标准的分组,在目的地IP地址中设定 以服务器31为目的地,在目的地端口号中设定TCP3102。该TCP会话建 立请求分组是指,在建立TCP会话时,为了三路握手(three way handshake) 而所发送的SYN分组。在本说明书中,为了简化TCP会话建立动作的说 明,在三路握手中所收发的分组中,将SYN分组称作TCP会话建立请求 分组,将SYN分组+ACK分组称作响应分组。另外,在实际上还发送ACK 分组,但是由于对ACK分组而言与SYN分组同样地传输,因此在本动作 说明中省略说明。IP路由2104参照从TCP2102所接收的会话建立请求分组的目的地IP 地址和目的地端口号,向IP栈2104传输分组。IP桟2104对从IP路由2103所接收的分组附加服务器31的MAC地 址作为目的地MAC地址,而且在发送源MAC地址中设定终端21的MAC 地址来生成TCP会话建立帧,并且向中间驱动部2106传输。中间驱动部2106从IP樣2104接收帧,并且进行帧解析。解析的结 果,由于帧为TCP会话建立帧,因此在中间驱动部2106封装解除中去掉 MAC报头,并且在中间驱动部2106 TCP部中使从TCP2102到TCP3102 的TCP处理终结。即,TCP2102本来向TCP3102进行了 TCP会话建立请 求,但是在实际上针对该请求由中间驱动部2106内的TCP进行接收而保 留,并且在TCP2102与中间驱动部2106内的TCP之间进行TCP会话的 建立处理后,使TCP会话建立处理终结。中间驱动部2106,在进行终结处理时,为了向封装处理3001B请求 与TCP3102之间建立TCP会话,向驱动部2105发送连接请求的分组。此 外,该连接请求分组是独创的分组,而不是遵守TCP标准的分组。在该连 接请求分组中,在目的地IP地址中设定服务器31,在目的地端口号中设 定TCP3102。并且,对该分组附加目的地MAC地址,而且在发送源MAC 地址中设定自节点的MAC地址,从而生成帧。驱动部2105从中间驱动部2106接收连接请求帧,并且向MAC2111 传输。MAC2111从驱动部2105接收帧,并且向PHY2112传输。 PHY2112从MAC2111接收帧,并且向端口2113传输。 端口 2113从PHY2112接收帧,并且经由以太网电缆向HUB22传输。HUB22如果从终端21的NIC2U侧的端口接收到帧,则参照F21内 的MACDA,由于MACDA为服务器31的地址,因此根据过去的路由学 习结果,将该帧直接向网关装置20侧的端口输出。网关装置20由端口 2013收取来自HUB22的帧,并且经由PHY2012、 MAC2011、驱动部2007,交给网桥2008。网桥2008参照从驱动部2007所接收的帧(帧格式F20形式)内的报 头F21内所存在的MACDA,由于MACDA为服务器31的MAC地址, 而不是网关装置20的MAC地址,因此向驱动部2009传输帧。从网桥2008所发送的帧经由驱动部2009、虚拟NIC2010,向网关应 用程序2001A传输。网关应用程序2001A使从虚拟NIC2010所接收的帧,流过网关应用 程序2001A与网关应用程序3001A之间所设定的SSL会话。即,网关应用程序2001A将从虚拟NIC2010所接收到的Ethernet帧(帧 格式F20)作为数据交给SSL2002。SSL2002如果从网关应用程序2001A收取到数据(F21 F24),则对 其进行加密来生成数据F14后,交给TCP2003。TCP2003从SSL2002收取数据F14,并附加TCP报头F13以及IP报 头F12后,交给IP路由2004。这里,在F12内的IPDA中设定网关装置30的IP地址,在F12的IP SA中设定网关装置20的IP地址。另外,在目的地端口中设定TCP3003 的端口,在发送源端口中指定TCP2003的端口。IP路由2004参照从TCP2003所接收的数据的IP报头F12内的EP地 址等,并且将帧交给IP栈2005。IP栈2005从IP路由2004接收帧,并且对帧附加MAC报头Fll,使 之成为Ether over SSL帧格式F10的形式后,交给网桥2008。这里,根据ARP的结果在Fl 1内的MAC DA中设定防火墙33的WAN 侧的MAC地址,在Fll内的MAC SA中设定网关装置20的MAC地址。从IP栈2005所发送的帧经由网桥2008、驱动部2007、 NIC201,发 送到HUB22。
HUB22如果从网关装置22侧的端口接收到帧,则参照Fll内的MAC DA,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接向防火墙-33输出。防火墙33接收来自HUB22的帧,参照IP DA来变更MAC报头Fl 1 , 并且以帧格式F10的形式向HUB32传输接收帧。这里,在Fll内的MACDA中设定网关装置30的MAC地址,在Fll 内的MAC SA中设定防火墙33的LAN侧的MAC地址。HUB32如果接收到来自防火墙33的帧,则参照Fll内的MACDA, 由于MACDA为网关装置30的地址,因此根据过去的路由学习结果,将 该帧直接向网关装置30侧的端口输出。网关装置30如果从端口 3013接收到来自HUB32的帧,则经由 PHY3012、 MAC3011、驱动部3007、网桥3008,向IP栈3005传输。IP栈3005去掉从网桥3008所接收的帧的MAC报头Fll,使之成为 分组后,向IP路由3004发送。IP路由3004参照从IP栈3005所接收到的分组的报头F12内的IP DA 和F13内的目的地端口号,向TCP3003传输分组。TCP3003如果从IP路由3004接收到分组,则进行按照TCP协议向 TCP2003返回ACK分组等的处理。并且,从所接收的分组中去掉TCP报 头F13和IP报头F12,向SSL3002传输数据F14。SSL3002如果从TCP3003接收到数据F14,则通过解密处理来解除加 密,并且从数据F14中取出Ethernet帧F20也就是F21 F24,向网关应 用程序3001A传输。网关应用程序3001A如果从SSL3002接收到帧F20,则使该帧直接流 过封装之处理3001B。该帧原样保持着从终端21向HUB22发送时的状态, 在LAN MAC F21内的MAC DA中设定服务器31的MAC地址,在LAN MACF21内的MAC SA中设定终端21的MAC地址。另夕卜,在LAN IP F22 内的IP DA中设定服务器31的IP地址,在LAN IP F22内的IP SA中设 定终端21的IP地址。封装处理3001B从网关应用程序3001A接收帧,并且进行帧解析。 解析的结果,由于分组为从中间驱动部2106所发送的向TCP3102的连接
请求,因此命令TCP3003B建立与TCP3102之间的TCP会话。同时,针 对IP栈3005B设定为具有终端21的IP地址作为IP地址、并且具有终端 21的MAC地址作为MAC地址。TCP3003B为了建立与TCP3102之间的TCP会话,向IP路由3004 发送与TCP3102的TCP会话建立请求分组(SYN)。该分组是遵守TCP 标准的分组,在目的地IP地址中设定以服务器31为目的地,在目的地端 口号中设定TCP3102,而且在发送源IP地址中设定终端21的IP地址, 在发送源端口号中设定TCP2102的端口号,从而生成TCP会话建立请求 的帧。交给IP路由3005B的帧经由IP栈3005、驱动部3007、 NIC301向 H腦2传输。HUB32如果从网关装置30侧的端口接收到帧,则参照F21内的MAC DA,由于MACDA为服务器31的地址,因此根据过去的路由学习结果, 将该帧直接向服务器31侧的端口输出。服务器31从HUB32内接收帧,并且以端口 3113、 PHY3U2、 MAC3111、驱动部3105的路径进行传输,向IP栈3104传输。IP桟3104从驱动部3105接收帧,并且去掉MAC报头,使之成为TCP 会话建立请求分组后,向IP路由3103传输。IP路由3103参照从IP栈3104所接收的分组的目的地端口号,由于 附加有TCP3102侧的端口号,因此向TCP3102传输该分组。TCP3102从IP路由3103接收分组。由于该分组为TCP会话建立请求 分组,因此按照TCP协议针对该会话建立,返回响应分组。TCP3102以TCP2102为目的地发送响应分组。即,将终端21的IP 地址设定为响应分组的目的地IP,将TCP2102的端口号设定为响应分组 的目的地端口。这是因为,TCP3003B如同为TCP2102那样动作,IP栈 3005B如同为终端21的IP栈2104那样动作。响应分组经由与TCP建立请求分组相反的路径也就是IP路由3103、 IP栈3104,驱动部3105、 NIC311、 HUB32、 NIC301、网桥3008、 IP栈 3005B,到达TCP3003B。TCP3003B如果接收到响应分组,则发送针对该响应分组的ACK分组向TCP3102,使TCP的处理终结,并且将数据交给封装处理3001B。封装处理3001B向终端21内的中间驱动部2106发送用于连接完成通 知的分组。该连接完成通知分组是独创的分组,而不是遵守TCP标准的分 组。该分组,将终端21作为目的地IP地址,将TCP2102作为目的地端口 号,将服务器31作为发送源IP地址,将TCP3102作为发送源端口号,从 而生成帧。连接完成通知帧经由与连接请求帧相反的路径也就是网关应用程序 3001A、 SSL3002、 TCP3003、 IP路由3004、 IP栈3005、驱动部3007、 NIC301、 HUB33、防火墙33、 HUB32、 NIC201、 CPU200、 NIC201 、 HUB22、 NIC211,达到CPU210内的中间驱动部2106。中间驱动部2106接收连接完成通知帧,并且进行帧解析。解析的结 果,由于为发给自节点内的应用程序的分组,因此进行接收。由于所接收 的分组是从封装处理3001B向中间驱动部2106所发送的、封装处理3001B 与TCP3102之间的连接完成通知分组,因此中间驱动部2106内的TCP, 为了按照TCP协议向TCP2103发送针对TCP会话建立的响应分组,而向 IP栈2104发送响应分组。响应分组经由IP栈2104、 IP路由2103,到达TCP2102。TCP2102从IP路由2103接收分组。由于该分组是针对TCP会话的建 立请求的响应分组,因此向应用程序2101通知与TCP3102的TCP会话连 接完成。此时,TCP2102将响应分组识别成从TCP3102所送到的响应分 组。这是,实际的响应从中间驱动部2106内的TCP所发送,但是由于中 间驱动部2106内的TCP冒充TCP3102而向TCP2102进行了会话建立响 应,因此TCP2102识别成如同从TCP3102有了响应。TCP2102如果接收到响应分组,则针对该响应分组生成ACK分组并 且以TCP3102为目的地进行发送。中间驱动部2106的TCP经由IP路由 2004和IP栈2005接收该ACK分组,使TCP处理终结。通过以上方式,在第五实施方式中完成终端21内的应用程序2101与 服务器31内应用程序3101之间的会话建立动作。 (从终端21到服务器31的帧传输动作)采用图23,以在第七实施方式中从终端21向服务器31发送帧的情况
为例,进行动作说明。此时,假设网桥2008、网桥3008、 HUB22或HUB32己学习了终端 21、服务器31、防火墙33、网关装置20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置30或网关装置20的直接通信进行拦截。再有,假设从网关装置30到网关装置20的SSL会话(安全TCP会 话)通过上述的动作例已被设定。另外,假设终端21内的应用程序2101与服务器31内的应用程序(应 用程序3101)之间已建立了TCP会话。终端21内的应用程序'2101将发给服务器31内的应用程序3101的数 据交给TCP2102。TCP2102从应用程序2101收取数据,并按照TCP协议附加TCP报头 (图2中的F23)或IP报头(图2中的F22)而作为IP分组,交给IP路 由2103。此时,在LANIPF22内的IPDA中设定服务器31的IP地址, 在LAN IP F22内的IP SA中设定终端21的IP地址。IP路由2103参照从TCP2102所接收的分组的目的地IP地址(发给 服务器31)和目的地端口 (发给TCP3102),将数据直接向IP栈2104传 输。IP栈2104从IP路由2103接收分组,并附加MAC报头(图2中的 F21)来制定Ethernet帧,交给中间驱动部2106。该帧具有Ethernet帧F20 格式。此时,IP栈2104参照ARP的结果,在帧的LAN MAC F21内的 MACDA中设定服务器31的MAC地址,在LANMACF21内的MAC SA 中设定终端21的MAC地址。中间驱动部2106从IP栈2104接收帧,并且在帧解析2106H中进行 帧解析。解析的结果,由于帧为以前进行过会话建立的TCP2102与 TCP3102之间的会话的帧,因此在封装解除2106F中去除并保存该帧的 MAC报头F21后,交给TCP2106A。中间驱动部2106内的TCP2106A使TCP2103A终结。g卩,去除帧的 IP报头F22和MAC报头F23而只留下数据F24,并且将数据F24发送到
碎片分割2106B。再有,向TCP2102发送ACK帧。中间驱动部2106内的碎片分割2106B确认从TCP2106A所接收到的 数据F24的大小,由于没有碎片的必要,因此直接将数据发送到再封装 2賜D。中间驱动部2106内的再封装2106D对从碎片分割2106B所接收的数 据F24附加MAC报头F21、 IP报头F22、 MAC报头F23,使之成为帧格 式F20的形式后,向驱动部2105发送。此时,在F21内的MACDA中设 定服务器31的MAC地址,在F21内的MAC SA中设定终端21的MAC 地址。另外,在F22内的IPDA中设定服务器31的IP地址,在F22内的 IPSA中设定终端21的IP地址。另外,在目的地端口.中设定TCP3102的 端口,将TCP2102的端口指定为发送源端口。这些报头由封装解除2106F 所保存。驱动部2105从中间驱动部2106收取上述帧,向NIC211传输。NIC211从驱动部2105收取帧,并且经由MAC2111、 PHY2112、端 口 2113向HUB22传输帧。HUB22如果从终端21的NIC211侧的端口接收到帧,则参照F21内 的MACDA,由于MACDA为服务器31的地址,因此根据过去的路由学 习结果,将该帧直接向网关装置20侧的端口输出。网关装置20由端口 2013收取来自HUB22的帧,并且经由PHY2012、 MAC2011、驱动部2007,交给网桥2008。网桥2008参照从驱动部2007所接收的帧(帧格式F20形式)内的报 头F21内所存在的MACDA,由于MACDA为服务器31的MAC地址, 而不是网关装置20的MAC地址,因此向驱动部2009传输帧。从网桥2008所发送的帧经由驱动部2009、虚拟NIC2010,向网关应 用程序2001A传输。网关应用程序2001A使从虚拟NIC2010所接收的帧,流过网关应用 程序2001A与网关应用程序3001A之间所设定的SSL会话。即,网关应 用程序2001A将从虚拟NIC2010所接收的Ethernet帧(帧格式F20)作为 数据交给SSL2002。SSL2002如果从网关应用程序2001A收取到数据(F21 F24),则对
其进行加密来生成数据F14后,交给TCP2003。TCP2003从SSL2002收取数据F14,并附加TCP报头F13以及IP报 头F12后,交给IP路由2004。这里,在F12内的IPDA中设定网关装置30的IP地址,在F12的IP SA中设定网关装置20的IP地址。另外,在目的地端口中设定TCP3003 的端口,将TCP2003的端口指定为发送源端口。IP路由2004参照从TCP2003所接收的数据的IP报头F12内的IP地 址等,并且将帧交给IP栈2005。IP栈2005从IP路由2004接收帧,并且对帧附加MAC报头Fll,使 之成为Ether over SSL帧格式F10的形式后,交给网桥2008。这里,根据ARP的结果在Fl 1内的MAC DA中设定防火墙33的WAN 侧的MAC地址,在Fll内的MAC SA中设定网关装置20的MAC地址。从IP栈2005所发送的帧经由网桥2008、驱动部2007、 NIC201,发 送到HUB22。HUB22如果从网关装置22侧的端口接收到帧,则参照Fl 1内的MAC DA,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接向防火墙33输出。防火墙33接收来自HUB22的帧,参照IP DA来变更MAC报头Fl 1 , 并且以帧格式F10的形式向HUB32传输接收帧。这里,在Fll内的MACDA中设定网关装置30的MAC地址,在Fll 内的MAC SA中设定防火墙33的LAN侧的MAC地址。HUB32如果接收到来自防火墙33的帧,则参照Fll内的MACDA, 由于MACDA为网关装置30的地址,因此根据过去的路由学习结果,将 该帧直接向网关装置30侧的端口输出。网关装置30如果从端口 3013接收到来自HUB32的帧,则经由 PHY3012、 MAC3011、驱动部3007、网桥300S,向IP栈3005输出。IP栈3005去掉从网桥3008所接收的帧的MAC报头Fll后,向IP 路由3004发送。IP路由3004参照所接收的帧的报头F12内的IPDA和F13内的目的 地端口号,向TCP3003传输帧。
TCP3003如果从IP路由3004接收到帧,则进行按照TCP协议返回 ACK分组等的处理。并且,从所接收的帧中去掉TCP报头F13和IP报头 F12,向SSL3002传输数据F14。
SSL3002如果从TCP3003接收到数据F14,则通过解密处理来解除加 密,并且从数据F14中取出Ethernet帧F20也就是F21 F24,向网关应 用程序3001A传输。
该帧原样保持着从终端21向HUB22发送时的状态,在LAN MAC F21 内的MACDA中设定服务器31的MAC地址,在LANMACF21内的MAC SA中设定终端21的MAC地址。另外,在LAN IP F22内的IP DA中设 定服务器31的IP地址,在LAN IP F22内的IP SA中设定终端21的IP地 址。
网关应用程序3001A如果从SSL3002接收到帧F20,则使该帧直接流 过封装处理3001B。
封装处理3001B如果从网关应用程序3001A接收到帧,则去掉报头 F21、报头F22、报头F23,并且向这些报头中所记载的IP地址及端口 , 重新发送帧。即,按照向服务器31的IP地址的、TCP3102的端口发送数 据F24的方式传给TCP3003B。同时,按照在帧的报头F21的MAC SA中 设定终端21的MAC地址,在报头F22的IP SA中设定终端21的IP地址 的方式设定IP栈3005B。
TCP3003B从封装3001B收取数据F24,并且使之流过在TCP3102与 TCP3003B之间预先设定的TCP会话。即,TCP3003B在数据F24中配置 IP报头F22和TCP报头F23,并且向IP路由3004传输。这里,在IP报 头F22的IP DA中记载了服务器31的IP地址,在IP报头F22的IP SA 中记载了终端21的IP地址。另外,在目的地端口中记载了TCP3102的端 口,在发送源端口中记载了 TCP2102端口。
IP路由3004从TCP3003B收取分组,参照IPDA或端口等,向IP栈 3005B传输帧。
IP栈3005B如果从IP路由接收到数据,则对该数据附加报头F21后, 发送到驱动部3007。这里,在F21内的MACDA中设定服务器31的MAC 地址,在F21内的MAC SA中设定终端21的MAC地址。通过这样,将 来自TCP3003B的接收帧设定为帧格式F20的形式后,经由网桥3008向 驱动部3007传输。从IP栈3005B所输出的帧经由网桥3008、驱动部3007、 NIC301,向 HUB32传输。HUB32如果从网关装置30侧的端口接收到帧,则参照F21内的MAC DA,由于MACDA为服务器31的地址,因此根据过去的路由学习结果, 将该帧直接向服务器31侧的端口输出。从HUB32所发送的帧经由服务器31内的NIC311、驱动部3105、 IP 栈3104、 IP路由3103、 TCP3102而被传输,而帧内的数据F24被交给应 用程序3101。通过如上所述的方式,完成从终端21内的应用程序2101到服务器31 内的应用程序3101的一系列的帧传输。通过经由与上述例相反的路径,也可同样地实现从服务器31内的应 用程序3101到终端21内的应用程序2101的一系列的帧传输。此夕卜,在本实施方式中,在TCP2102与中间驱动部2106之间、TCP2003 与TCP3003之间、以及TCP3003B与TCP3102之间设定了 TCP会话。因 而,从中间驱动部2106到TCP2003之间、以及从TCP3003到TCP3003B 之间的传输中,TCP的拥塞控制及重传控制没有发挥功能。但是, 一般在企业内部网内很少发生分组的损失、或者拥塞,当跨过 防火墙的连接也就是经由WAN的连接时,需要应付损失或拥塞。由于在 本实施方式中网关装置20与网关装置30之间TCP发挥作用,因此如果有 该区间中的重传控制或拥塞控制,则几乎不给应用程序2101与应用程序 3101之间的通信带来影响。在本实施方式中示出了在网关装置30侧实现封装处理等,在终端21 侧实现中间驱动部的例子,但是与此相反地,也可在网关装置20侧实现 封装处理等,在服务器31侧实现中间驱动部。 (发明效果)接下来,对本实施方式的效果进行说明。如果利用本实施方式中所举出的发明,则在终端21与服务器31之间 能够进行帧的高速传输。
这是因为,在终端21与服务器31之间的通信中,在终端21内的中 间驱动部和网关装置30内的封装处理3001B中,使终端21内的TCP和 使服务器31内的TCP终结,以使在报头F23的位置不会发生基于TCP的 拥塞控制和重传控制,从而避免TCP over TCP问题的发生。
(第八实施方式)
本发明的第八实施方式相对于第五实施方式,其不同之处在于,终端 21内的中间驱动部2106、服务器31内的中间驱动部3106分别都不存在, 而在网关装置20内设置有高速化引擎X20M,并且在高速化引擎X2014 中进行SSL2002的加密及解密处理。
另外,本发明的第八实施方式不进行第五实施方式中的针对TCP over TCP的对策,而特殊处理SSL会话中的加密及解密处理的高速化。
第八实施方式中的HUB22、 HUB32、企业内部网2、企业内部网3、 网关装置30的构成及动作,与第五实施方式相同。
在第八实施方式中,企业内部网2不仅可以采用封闭域LAN,也可采 用互联网等开放的WAN。
(构成说明)
图24是详细地示出了第八实施方式中的各设备的构成和帧的传输路 径的框图。
网关装置20相对于第五实施方式中的网关装置20,其不同之处在于, 设置有高速化引擎X2014,并且在高速化引擎X2014中进行SSL2002的加密及解密处理。
终端21相对于第五实施方式中的终端21,其不同之处在于,不存在 中间驱动部2106。即,具有与第一 第四实施方式中的终端21同样的构 成,并且进行同样的动作。
服务器31相对于第五实施方式中的服务器31,其不同之处在于,不 存在中间驱动部3106。即,具有与第一 第四、第六、第七实施方式中的 服务器31同样的构成,并且进行同样的动作。
对HUB22、 HUB32、网关装置30而言,具有与第五实施方式同样的 构成,并且进行同样的动作。
防火墙33具有与第七实施方式的防火墙33同样的构成,并且进行同 样的动作。但是,在本实施方式中也可采用NAT路由器或proxy服务器 来取代防火墙33。第八实施方式也与其他实施方式同样,只有在网关装置20与网关装 置30之间预先设定有SSL会话的情况下,能够由企业内部网2内的设备 访问企业内部网3内的设备。图25是详细地示出了第八实施方式中的高速化引擎X2014的构成的 框图。第八实施方式中的高速化引擎X2014相对于图12所示的第一实施方 式中的高速化引擎2014,其不同之处在于,帧解析2014B及多路复用器 2014F的位置及动作不同,而且不存在碎片分割2014H、封装20141、封 装解除2014J、碎片解除2014K、控制帧解析2014D和多路复用器2014E。在第一实施方式中的高速化引擎2014中从接口 2014A输入了进行加 密及解密的帧,但是在第八实施方式中的高速化引擎X2014中从接口 2014C输入了进行加密及解密的帧。在第八实施方式中的高速化引擎X2014中,接口 2014A、接口 2014C、 加密2014G、解密2014L、控制帧收发部2014M分别具有与第一实施方式 中的高速化引擎2014的接口 2014A、接口 2014C、加密2014G、解密2014L、 控制帧收发部2014M同样的构成,并且进行同样的动作。帧解析2014B从接口 2014C接收帧,并且按以下所示的(1) (4) 的顺序来决定目的地,并进行传输。(1 )判断所接收的帧是否为与高速化引擎的控制相关的特殊的帧, 如果不是特殊帧,则向接口2014A传输。(2) 如果所接收的帧为特殊帧、且与高速化引擎X2014的控制设定 相关的帧(控制帧),则向控制帧收发部2014M传输。(3) 如果所接收的帧为特殊帧、且与加密相关的帧(被加密帧), 则向加密2014G传输。(4) 如果所接收的帧为特殊帧、且与解密相关的帧(被解密帧), 则向解密2014L传输。帧解析2014B通常根据MAC DA和MAC SA,来判断所接收的帧是 否为特殊帧。当在MAC DA或MAC SA的任一个中记载有预先规定的地 址范围的MAC地址(称作控制用MAC地址。例如00004C000000 FF) 时,判断该帧为控制帧。控制帧、被加密帧和被解密帧的判断也分别根据MAC地址来进行判 别。例如,被加密帧的MAC DA设定为00:00:4C:00力0:0A,被解密帧的 MACDA设定为00:00:4C:00:00:0B。多路复用器2014F从加密2014G、解密2014L、控制帧收发部2014M 以及接口 2014A接收帧,如果有必要,则在队列中保存并调整发送定时后, 向接口 2014C发送。在队列中进行保存是为了避免从加密2014G、解密 2014L、控制帧收发部2014M以及接口 2014A的各部分所到达的帧之间的 冲突。(动作说明)(SSL会话的建立动作)釆用图24,以在第八实施方式中建立从网关装置30到网关装置20 的SSL会话(安全TCP会话)的情况为例,进行动作说明。此时,假设网桥2008、网桥3008、 HUB22或HUB32己学习了终端 21、服务器31、防火墙33的LAN侧、防火墙33的WAN侧、网关装置 20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。网关装置30内的网关应用程序3001A收到来自用户的向网关装置20 内的网关应用程序2001A的连接请求,向SSL3002指示与网关装置20内 的网关应用程序2001A开始通信。SSL3002收到来自网关应用程序3001A的开始通信指示,为了与 SSL2002之间建立SSL会话,向TCP3003指示与网关装置20内的网关应 用程序2001A开始通信。TCP3003收到来自SSL3002的开始通信指示,为了与TCP2003之间 建立TCP会话,向IP路由3004发送与TCP2003的会话建立请求分组 (SYN)。该TCP会话建立请求分组是遵守TCP标准的分组,在目的地 IP地址中设定以网关装置20为目的地,在目的地端口号中设定TCP2003 。
IP路由3004参照从TCP3003所接收的分组的目的地IP地址和目的地端口号,向IP栈3005传输分组。IP栈3005对从IP路由3004所接收的分组附加防火墙33内的企业内部网3侧的MAC地址作为目的地MAC地址,而且在发送源MAC地址中设定自节点的MAC地址而使之成为TCP会话建立请求帧后,经由网桥3008向驱动部3007传输。驱动部3007从IP栈3005接收帧,并且向MAC3011传输。 MAC3011从驱动部3007接收帧,并且向PHY3012传输。 PHY3012从MAC3011接收帧,并且向端口 3013传输。 端口 3013从PHY3012接收帧,并且经由以太网电缆向HUB32传输。 HUB32如果接收到帧,则参照MACDA,由于MAC DA为防火墙33的LAN侧的地址,因此根据过去的路由学习结果,将该帧直接向防火墙33侧的端口输出。防火墙33从HUB22接收帧,由于是从网关装置30到网关装置20的通信,因此允许该通信,向HUB22传输。HUB22从防火墙33接收分组,根据过去的路由学习结果,将该帧直接向网关装置20传输。网关装置20从HUB22内接收分组,并且以端口 2013、 PHY2012、MAC2011、驱动部2007、网桥2008的路径传输分组,并且传输到IP栈2005。IP栈2005从网桥2008接收帧,并且在该帧中去掉MAC报头而使之 成为分组后向IP路由2004传输。IP路由2004参照从IP栈2005所接收的分组的目的地端口号,由于 附加有TCP2003侧的端口号,因此向TCP2003传输该分组。TCP2003从IP路由2004接收分组。由于该分组为TCP会话建立请求 分组(SYN),因此按照TCP协议针对会话建立请求以TCP3003为目的 地返回会话建立所需的响应分组(SYN+ACK)。即,将网关装置30的 IP地址设定为响应分组的目的地IP,将TCP3003的端口号设定为响应分 组的目的地端口。响应分组经由IP路由2004、 IP栈2005、网桥2008、驱动部2007、NIC201、 HUB22、防火墙33、 HUB32、 NIC301,到达CPU300,进一步 经由驱动部3007、网桥3008、 IP栈3005、 IP路由3004,到达TCP3003。TCP3003从IP路由3004接收响应分组。由于该分组为针对TCP会话 建立请求的响应分组,因此向TCP2003发送ACK分组。TCP2003接收到 ACK分组之后,向SSL3002通知与TCP3003的TCP会话连接完成。SSL3002收到来自TCP3003的连接完成通知,为了与SSL2002之间 建立SSL会话,按照SSL协议,发送用于会话建立请求的分组(SSL会 话建立请求分组)。SSL会话建立请求分组如果被TCP3003所接收,则通过TCP3003与 TCP2003之间所设定的TCP会话,经由NIC301、 HUB32、防火墙33、 HUB22、 NIC201,到达TCP2003。TCP2003向SSL2002传输SSL会话建立请求分组。SSL2002验证SSL会话建立请求的内容,如果没有问题,则向网关应 用程序2001A通知与SSL3002的会话建立,同时,按照SSL协议,向 SSL3002发送SSL会话建立响应分组。SSL会话建立响应分组经由与SSL会话建立请求分组相反的路径也就 是TCP2003与TCP3003之间的TCP会话,到达SSL3002。SSL2002在控制帧中承载SSL2002的秘密密钥、SSL3002的公开密钥、 SSL2002与SSL3002之间的预共享密钥、SSL会话的对象设备的IP地址 (网关装置30的IP地址)、SSL会话的对象设备的目的地端口 (TCP3003 的端口)、自节点侧的SSL会话的发送源端口号(TCP2003的端口)、发 送源IP地址(网关装置20的IP地址)和开始命令,并且向虚拟NIC2010 发送控制帧。控制帧从SSL2002输出后,经由虚拟NIC2010、驱动部2009、网桥 2008、驱动部2007、 MAC2111,到达高速化引擎X2014。高速化引擎X2014根据MAC地址等来判别所接收的帧为控制帧,用 控制帧收发部进行接收。并且,为了分别在解密及加密中使用而保存公开 密钥、秘密密钥和预共享密钥,为了进行帧解析而保存IP地址或端口号。 并且,收到高速化处理开始命令,开始帧解析、加密及解密的处理。SSL3002按照SSL协议对SSL会话建立响应的内容进行验证,如果
没有问题,则向网关应用程序3001A通知SSL3002与SSL2002之间的SSL会话建立。通过如上所述的方式,在SSL2002与SSL3002之间建立SSL会话。通过以上方式,在第八实施方式中完成在建立从网关装置30到网关 装置20的SSL会话(安全TCP会话)时的动作。 (从终端21到服务器31的帧传输动作)采用图24,以在第八实施方式中从终端21向服务器31发送帧的情况 为例,进行动作说明。此时,假设网桥2008、网桥3008、 HUB22或HUB32已学习了终端 21、服务器31、防火墙33、网关装置20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置30或网关装置20的直接通信进行拦截。再有,假设从网关装置30到网关装置20的SSL会话(安全TCP会 话)通过上述的动作例已被设定。另外,假设终端21内的应用程序2101与服务器31内的应用程序(应 用程序3101)之间己建立了TCP会话。终端21内的应用程序2101将发给服务器31内的应用程序3101的数 据交给TCP2102。TCP2102从应用程序2101收取数据,并按照TCP协议附加TCP报头 (图2中的F23)或IP报头(图2中的F22)而作为IP分组,交给IP路 由2103。此时,在LANIPF22内的IPDA中设定服务器31的IP地址, 在LAN IP F22内的IP SA中设定终端21的IP地址。IP路由2103参照从TCP2102所接收的分组的目的地IP地址(发给 服务器31)和目的地端口 (发给TCP3102),将数据直接向IP栈2104传 输。IP栈2104从IP路由2103接收分组,并附加MAC报头(图2中的 F21)来制定Ethernet帧,交给驱动部2105。该帧具有Ethernet帧F20格 式。此时,IP栈2104参照ARP的结果,在帧的LANMACF21内的MAC DA中设定服务器31的MAC地址,在LAN MAC F21内的MAC SA中设
定终端21的MAC地址。驱动部2105从IP栈2105接收上述帧,并且向NIC211传输。NIC211从驱动部2105收取帧,并且经由MAC2111、 PHY2112、端 口 2113向HUB22传输帧。HUB22如果从终端21的NIC211侧的端口接收到帧,则参照F21内 的MACDA,由于MACDA为服务器31的地址,因此根据过去的路由学 习结果,将该帧直接向网关装置20侧的端口输出。网关装置20由端口 2013收取来自HUB22的帧,并且经由PHY2012、 MAC2011、驱动部2007,交给网桥2008。网桥2008参照从驱动部2007所接收的帧(帧格式F20形式)内的报 头F21内所存在的MAC DA,由于MAC DA为服务器31的MAC地址, 而不是网关装置20的MAC地址,因此向驱动部2009传输帧。从网桥2008所发送的帧经由驱动部2009、虚拟NIC2010,向网关应 用程序2001A传输。网关应用程序2001A使从虚拟NIC2010所接收的帧,流过网关应用 程序2001A与网关应用程序3001A之间所设定的SSL会话。艮P,网关应用程序2001A将从虚拟NIC2010所接收的Ethernet帧(帧 格式F20)作为数据交给SSL2002。SSL2002如果从网关应用程序2001A收取未加密的数据F14 (F21 F24),则附加报头Fll来制定被加密帧后,交给虚拟NIC2010。这里, 在报头Fll内的MAC DA中设定用于命令加密的特殊MAC (例如 00:00:4C:00:00:0A等),在MAC SA中设定虚拟NIC2010的MAC地址等。 当然,将该帧从SSL2002直接交给虚拟NIC2010,也可经由网关应用程序 2001A交给虚拟NIC2010。被加密帧经由虚拟NIC2010、驱动部2009、网桥200S、驱动部2007、 MAC2011,到达高速化引擎X2014。高速化引擎X2014由接口 2014C收取被加密帧,并且用帧解析2014B 判断出接收帧为被加密帧,对报头FllMAC DA和MAC SA的值进行反转 后,向加密2014G发送。高速化2014G对所接收的帧的数据F14也就是 F21、 F22、 F23、 F24的部分进行加密,来制定加密后的数据F14后,交
给多路复用器2014F。如果有必要,多路复用器2014F将从加密所接收的 帧进行缓冲后,向接口2014C发送。从高速化引擎X2014所输出的帧经由MAC201K驱动部2007、网桥 2008、驱动部2009、虚拟NIC2010,返回到SSL2002。在该帧的MACDA 中设定虚拟NIC2010的MAC地址等,在MAC SA中设定用于命令加密的 特殊MAC (例如00:00:4C:00:00:0A等)。SSL2002去除从虚拟NIC所接收的帧的报头F11 (MAC报头)后, 仅将数据F14交给TCP2003。TCP2003从SSL2002收取数据F14,并附加TCP报头F13以及IP报 头F12后,交给IP路由2004。这里,在F12内的IPDA中设定网关装置30的IP地址,在F12的IP SA中设定网关装置20的IP地址。另外,在目的地端口中设定TCP3003 的端口,在发送源端口中设定TCP2003的端口。IP路由2004参照从TCP2003所接收的数据的IP报头F12内的IP地 址等,并且将帧交给IP桟2005。IP栈2005从IP路由2004接收帧,并且对帧附加MAC报头Fll,使 之成为Ether over SSL帧格式F10的形式后,交给网桥2008。这里,根据ARP的结果在Fl 1内的MAC DA中设定防火墙33的WAN 侧的MAC地址,在Fll内的MAC SA中设定网关装置20的MAC地址。从IP栈2005所发送的帧经由网桥2008、驱动部2007、 MAC20U、 高速化引擎X2014、 PYH2012、 MAC2013,发送到HUB22。此时,高速 化引擎X2014将从MAC所接收的帧直接向PHY2012传输。HUB22如果从网关装置22侧的端口接收到帧,则参照Fl 1内的MAC DA,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接向防火墙33输出。防火墙33接收来自HUB22的帧,参照EP DA来变更MAC报头Fl 1 , 并且以帧格式F10的形式向HUB32传输接收帧。这里,在Fll内的MAC DA中设定网关装置30的MAC地址,在Fll 内的MAC SA中设定防火墙33的LAN侧的MAC地址。HUB32如果接收到来自防火墙33的帧,则参照Fll内的MACDA,
由于MACDA为网关装置30的地址,因此根据过去的路由学习结果,将 该帧直接向网关装置30侧的端口输出。网关装置30如果从端口 3013接收到来自HUB32的帧,则经由 PHY3012、 MAC3011、驱动部3007、网桥3008,向IP栈3005传输。IP栈3005去掉从网桥3008所接收的帧的MAC报头Fll后,向IP 路由3004发送。IP路由3004参照所接收的帧的报头F12内的IP DA和F13内的目的 地端口号,向TCP3003传输帧。TCP3003如果从IP路由3004接收到帧,则进行按照TCP协议向 TCP2003返回ACK分组等的处理。并且,从所接收的帧中去掉TCP报头 F13和IP报头F12,向SSL3002传输数据F14。SSL3002如果从TCP3003接收到数据F14,则通过解密处理来解除加 密,并且从数据F14中取出Ethernet帧F20也就是F21 F24,向网关应 用程序3001A传输。网关应用程序3001A如果从SSL3002接收到帧F20,则使该帧直接流 过虚拟NIC3010。该帧原样保持着从终端21向HUB22发送时的状态,在LAN MAC F21 内的MACDA中设定服务器31的MAC地址,在LANMACF21内的MAC SA中设定终端21的MAC地址。另外,在LAN IP F22内的IP DA中设 定服务器31的IP地址,在LAN IP F22内的IP SA中设定终端21的IP地 址。从网关应用程序3001A交给虚拟NIC3010的帧,经由驱动部3009、 网桥3008、 NIC301,向HUB32传输。HUB32如果从网关装置30侧的端口接收到帧,则参照F21内的MAC DA,由于MACDA是服务器31的地址,因此根据过去的路由学习结果, 将该帧直接向服务器31侧的端口输出。服务器31接收从HUB32所发送的帧,经由驱动部3105、 IP栈3104、 IP路由3103、 TCP3102,将帧内的数据F24交给应用程序3101。通过如上所述的方式,完成从终端21内的应用程序2101到服务器31 内的应用程序3101的一系列的帧传输。 通过经由与上述例相反的路径,也可同样地实现从服务器31内的应用程序3101到终端21内的应用程序2101的一系列的帧传输。在本实施方式中示出了在网关装置20侧实现高速化引擎的例子,4旦是与此相反地,也可在网关装置30侧实现高速化引擎。另外,也可在网关装置20侧和网关装置30侧两方实现高速化引擎。再有,在本实施方式中也能够调换服务器31与终端21的设置场所。 (发明效果) 接下来,对本实施方式的效果进行说明。如果利用本实施方式中所举出的发明,则在终端21与服务器31之间 能够进行帧的高速传输。这是因为,在网关装置20中对加密及解密处理进行硬件化,从而使 SSL的处理高速化。 (第九实施方式)本发明的第九实施方式相对于第八实施方式,其不同之处在于,在网 关装置30内设置有中间驱动部3006,将网关装置20内的高速化引擎 X2014变更为高速化引擎Y2014,在网关装置20内的SSL2002和网关装 置30内的SSL3002中不进行加密及解密,而通过高速化引擎Y2014和中 间驱动部Y3006来进行这些处理。另外,第九实施方式也与第八实施方式同样,不进行针对TCP over TCP的对策,而特殊处理SSL会话中的加密及解密处理的高速化。第九实施方式中的HUB22、 HUB32、企业内部网2、企业内部网3、 网关装置30、终端21、服务器31的构成及动作,与第八实施方式相同。在第九实施方式中,企业内部网2不仅可以采用封闭域LAN,也可采 用互联网等开放的WAN。 (构成说明)图26是详细地示出了第九实施方式中的各设备的构成和帧的传输路 径的框图。网关装置20相对于第八实施方式中的网关装置20,其不同之处在于, 将高速化引擎X2014变更为高速化引擎Y2014, SSL2002不进行加密及解 密,而只参与证书的交换,即使在SSL会话的建立完成后,也不会对从网 关应用程序2001A所接收的数据进行加密而直接交给TCP2003,另外,不 会对从TCP2003所接收的数据进行解密而直接交给网关应用程序2001A。网关装置30相对于第八实施方式中的网关装置30,其不同之处在于, 设置有中间驱动部Y3006, SSL3002不进行加密及解密,而只参与证书的 交换,即使在SSL会话的建立完成后,也不会对从网关应用程序3001A 所接收的数据进行加密而直接交给TCP3003,另外,不会对从TCP3003 所接收的数据迸行解密而直接交给网关应用程序3001A。对于终端21、服务器31、 HUB22、 HUB32、网关装置30而言,具有 与第八实施方式同样的构成,并且进行同样的动作。防火墙33具有与第八实施方式的防火墙33同样的构成,并且进行同 样的动作。但是,在本实施方式中也可采用NAT路由器或proxy服务器 来取代防火墙33。第九实施方式也与其他实施方式同样,只有在网关装置20与网关装 置30之间预先设定有SSL会话的情况下,能够由企业内部网2内的设备 访问企业内部网3内的设备。图27是详细地示出了第九实施方式中的高速化引擎Y2014的构成的 框图。第九实施方式中的高速化引擎Y2014相对于图12所示的第一实施方 式中的高速化引擎2014,其不同之处在于,存在碎片分割2014H、封装 20141、封装解除2014J、碎片解除2014K。在第一实施方式中的高速化引擎2014中从接口 2014A输入进行加密 及解密的帧,在第八实施方式中的高速化引擎X2014中从接口 2014C输 入进行加密及解密的帧。但是,在第九实施方式中的高速化引擎Y2014中 从接口 2014C输入了进行加密的帧,并且从接口 2014A输入进行解密的 帧。在第九实施方式中的高速化引擎Y2014中,接口 2014A、接口 2014C、 加密2014G、解密2014L、控制帧收发部2014M分别具有与第一实施方式 中的高速化引擎2014的接口 2014A、接口 2014C、加密2014G、解密2014L、 控制帧收发部2014M同样的构成,并且进行同样的动作。帧解析2014B从接口 2014A接收帧,并且按以下所示的顺序来决定 目的地,并进行传输。(1) 如果为发给自节点、且预先设定的SSL会话的帧,则当该帧为在网关装置30中被加密的帧时,向解密2014L传输帧。(2) 如果为(1)以外的帧,则向多路复用器2014E传输帧。 帧解析2014D从接口 2014C接收帧,并且按以下所示的顺序来决定目的地,并进行传输。(1 )如果为与高速化引擎的控制相关的特殊的帧(以下称作控制帧), 则向控制帧收发部2014M传输帧。(2) 如果为附加有自节点的MAC SA、且预先设定的SSL会话的帧, 则向加密2014G传输帧。(3) 如果为(1) (2)以外的帧,则向多路复用器2014F传输。 帧解析2014D通常根据MAC DA和MAC SA,来判断所接收的帧是否为特殊帧。当在MAC DA或MAC SA的任一个中记载有预先规定的地 址范围的MAC地址(称作控制用MAC地址。例如00004C000000 FF) 时,判断该帧为控制帧。多路复用器2014E从帧解析2014B及控制帧收发部2014M、或解密 2014L接收帧,如果有必要,则在队列中保存并调整发送定时后,向接口 2014C发送。在队列中进行保存是为了避免从帧解析2014B、解密2014L、控制帧 收发部2014M的各部分所到达的帧之间的冲突。多路复用器2014F从帧解析2014D及加密2014G接收帧,如果有必 要,则在队列中保存并调整发送定时后,向接口2014A发送。在队列中进 行保存是为了避免从控制帧解析2014D以及加密2014G的各部分所到达 的帧之间的冲突。此外,高速化引擎Y2014也能够进行多个SSL会话的加密及解密。 因此,也能够具有上述IP地址、端口、公开密钥、秘密密钥及预共享密 钥等会话信息的多个。图28是详细地示出了第九实施方式中的中间驱动部Y3006的构成的框图。第九实施方式中的中间驱动部Y3006相对于图7所示的第一实施方式
中的中间驱动部1008,其不同之处在于,不存在控制帧收发部1008M、 碎片分割1008B、碎片组合1008C、再封装1008D、封装解除1008F、再 封装1008E、封装解除1008G,而设置加密Y3006A及解密Y306B来代替。第九实施方式中的中间驱动部3006包括加密Y3006A、解密Y3006B、 帧解析3006C、帧Y3006D、多路复用器Y3006E、多路复用器Y3006F、 设定管理部Y3006G。加密Y3006A从帧解析Y3006C接收帧,以3DES等方法进行加密后, 向多路复用器Y3006E传输。用于加密的公开密钥和予共享密钥利用由设 定管理部Y3006G所通知的公开密钥的予共享密钥。解密Y3006B从帧解析Y3006D接收帧,以3DES等方法进行解密后, 向多路复用器Y3006E传输。用于解密的秘密密钥和予共享密钥利用由设 定管理部Y3006G所通知的秘密密钥和予共享密钥。帧解析Y3006C从接口 IP栈3005接收帧,并且按以下所示的(1) (2)的顺序来决定目的地,并进行传输。(1) 如果为附加有自节点的MAC SA、且预先设定的SSL会话的帧, 则向加密Y3006A传输帧。(2) 如果为(1)以外的帧,则向多路复用器Y3006E传输。 帧解析Y3006D从网桥3008接收帧,并且按以下所示的顺序来决定目的地,并进行传输。(1) 如果为发给自节点、且预先设定的SSL会话的帧,则当向解密 Y3006B传输帧。(2) 如果为(1)以外的帧,则向多路复用器Y3006F传输帧。 多路复用器Y3006E从帧解析Y3006C、加密Y3006A接收帧,并且向网桥3008传输。此时,进行缓冲动作,以便防止因帧的同时到达而发 生缺失。多路复用器Y3006F从帧解析Y3006D及解密Y3006B接收帧,如果 有必要,则在队列中保存并调整发送定时后,向IP栈3005发送。在队列 中进行保存是为了避免从帧解析Y3006D及解密Y3006B侧的各部分所到 达的帧之间的冲突。设定管理部Y3006G从网关应用程序3001A收到与高速化处理相关联
的会话的信息(IP地址、端口号等)的通知,进行帧解析Y3006C及帧解 析Y3006D的设定,另外,从网关应用程序3001A或SSL3002收到加密 用的公开密钥和解密用的秘密密钥、以及预共享密钥的通知,进行加密 Y3006A及解密Y3006B的设定。
此外,中间驱动部Y3006也能够进行多个SSL会话的加密及解密。 因此,也能够具有多个上述IP地址、端口、公幵密钥、秘密密钥及预共 享密钥等会话信息。 (动作说明)
(SSL会话的建立动作)
采用图26,以在第九实施方式中建立从网关装置30到网关装置20 的SSL会话(安全TCP会话)的情况为例,进行动作说明。
此时,假设网桥2008、网桥3008、 HUB22或HUB32已学习了终端 21、服务器31、防火墙33的LAN侧、防火墙33的WAN侧、网关装置 20、网关装置30的MAC地址。
另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。
网关装置30内的网关应用程序3001A收到来自用户的向网关装置20 内的网关应用程序2001A的连接请求,向SSL3002指示与网关装置20内 的网关应用程序2001A开始通信。
SSL3002收到来自网关应用程序3001A的开始通信指示,为了与 SSL2002之间建立SSL会话,向TCP3003指示与网关装置20内的网关应 用程序2001A开始通信。
TCP3003收到来自SSL3002的开始通信指示,为了与TCP2003之间 建立TCP会话,向IP路由3004发送与TCP2003的TCP会话建立请求分 组(SYN)。该TCP会话建立请求分组是遵守TCP标准的分组,在目的 地IP地址中设定以网关装置20为目的地,在目的地端口号中设定 TCP2003。
IP路由3004参照从TCP3003所接收的分组的目的地IP地址和目的 地端口号,向IP栈3005传输分组。
IP栈3005对从IP路由3004所接收的分组附加防火墙33内的企业内 部网3侧的MAC地址作为目的地MAC地址,而且在发送源MAC地址中 设定自节点的MAC地址来生成帧后,向中间驱动部Y3006传输。
中间驱动部Y3006从IP栈接收TCP会话建立请求帧,并且进行报头 解析。解析的结果,不是需要加密的帧,因此经由网桥3008直接向驱动 部3007传输该帧。
驱动部3007从IP栈3005接收帧,并且向MAC3011传输。
MAC3011从驱动部3007接收帧,并且向PHY3012传输。
PHY3012从MAC3011接收帧,并且向端口 3013传输。
端口 3013从PHY3012接收帧,并且经由以太网电缆向HUB32传输。HUB32如果接收到帧,则参照MACDA,由于MAC DA为防火墙33 的LAN侧的地址,因此根据过去的路由学习结果,将该帧直接向防火墙 33侧的端口输出。
防火墙33从HUB22接收帧,由于是从网关装置30到网关装置20的 通信,因此允许该通信,向HUB22传输。
HUB22从防火墙33接收帧,根据过去的路由学习结果,将该帧直接 向网关装置20传输。
网关装置20从HUB22内接收帧,并且以端口 2013、 PHY2012、 MAC2011 、驱动部2007、网桥2008的路径传输帧,并且传输到IP栈2005。
IP桟2005从网桥2008接收帧,并且在该帧中去掉MAC报头而使之 成为分组后向IP路由2004传输。
IP路由2004参照从IP栈2005所接收的分组的目的地端口号,由于 附加有TCP2003侧的端口号,因此向TCP2003传输该分组。
TCP2003从IP路由2004接收分组。由于该分组为TCP会话建立请求 分组(SYN),因此按照TCP协议针对会话建立请求以TCP3003为目的 地返回会话建立所需的响应分组(SYN+ACK)。即,将网关装置30的 IP地址设定为响应分组的目的地IP,将TCP3003的端口号设定为响应分 组的目的地端口。
响应分组经由IP路由2004、 IP栈2005、网桥2008、驱动部2007、 NIC201、 HUB22、防火墙33、 HUB32、 NIC301,到达CPU300,进一步
经由驱动部3007、网桥3008、 IP栈3005、 IP路由3004,到达TCP3003。
TCP3003从IP路由3004接收响应分组。由于该分组为针对TCP会话 建立请求的响应分组,因此将TCP2003设定为目的地而发送针对该响应分 组的ACK分组。再有,向SSL3002通知与TCP2003完成TCP会话连接。
SSL3002收到来自TCP3003的连接完成通知,为了与SSL2002之间 建立SSL会话,按照SSL协议,发送用于会话建立请求的分组(SSL会 话建立请求分组)。
SSL会话建立请求分组如果被TCP3003所接收,则通过TCP3003与 TCP2003之间所设定的TCP会话,经由NIC301、 HUB32、防火墙33、 HUB22、 NIC201,到达TCP2003。
TCP2003向SSL2002传输分组。
SSL2002验证SSL会话建立请求的内容,如果没有问题,则向网关应 用程序2001A通知与SSL3002的会话建立,同时,按照SSL协议,向 SSL3002发送SSL会话建立响应分组。
SSL会话建立响应分组经由与SSL会话建立请求分组相反的路径也就 是TCP2003与TCP3003之间的TCP会话,到达SSL3002。
SSL2002在控制帧中承载SSL2002的秘密密钥、SSL3002的公开密钥、 SSL2002与SSL3002之间的预共享密钥、SSL会话的对象设备的IP地址 (网关装置30的IP地址)、SSL会话的对象设备的目的地端口 (TCP3003 的端口)、自节点侧的SSL会话的发送源端口号(TCP2003的端口)、发 送源IP地址(网关装置20的IP地址〉和开始命令,并且向虚拟NIC2010 发送控制帧。
控制帧从SSL2002输出后,经由虚拟NIC2010、驱动部2009、网桥 2008、驱动部2007、 MAC2111,到达高速化引擎Y2014。
高速化引擎Y2014根据MAC地址等来判别控制帧,用控制帧收发部 进行接收。并且,为了分别在解密及加密中使用而保存公开密钥、秘密密 钥和预共享密钥,为了进行帧解析而保存IP地址或端口号。并且,接收 高速化处理开始命令,开始帧解析、加密及解密的处理。
SSL3002按照SSL协议对SSL会话建立响应的内容进行验证,如果 没有问题,则向网关应用程序3001A通知SSL3002与SSL2002之间的SSL
会话建立。SSL3002在控制帧中承载SSL3002的秘密密钥、SSL2002的公开密钥、 SSL3002与SSL2002之间的预共享密钥、SSL会话的对象设备的IP地址 (网关装置20的IP地址)、SSL会话的对象设备的目的地端口 (TCP2003 的端口)、自节点侧的SSL会话的发送源端口号(TCP3003的端口)、发 送源IP地址(网关装置30的IP地址)和开始命令,并且通知给中间驱动 部Y3006。中间驱动部Y3006为了分别在解密及加密中使用而保存由SSL3002 所通知的公开密钥、秘密密钥和预共享密钥,为了进行帧解析而保存IP 地址或端口号。并且,接收高速化处理开始命令,开始帧解析、加密及解 密的处理。通过如上所述的方式,在SSL2002与SSL3002之间建立SSL会话。通过以上方式,在第九实施方式中完成在建立从网关装置30到网关 装置20的SSL会话(安全TCP会话)时的动作。 (从终端21到服务器31的帧传输动作)采用图26,以在第九实施方式中从终端21向服务器31发送帧的情况 为例,进行动作说明。此时,假设网桥2008、网桥3008、 HUB22或HUB32已学习了终端 21、服务器31、防火墙33、网关装置20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置30或网关装置20的直接通信进行拦截。再有,假设从网关装置30到网关装置20的SSL会话(安全TCP会 话)通过上述的动作例已被设定。另外,假设终端21内的应用程序2101与服务器31内的应用程序(应 用程序3101)之间己建立了TCP会话。终端21内的应用程序2101将发给服务器31内的应用程序3101的数 据交给TCP2102。TCP2102从应用程序2101收取数据,并按照TCP协议附加TCP报头 (图2中的F23)或IP报头(图2中的F22)而作为IP分组,交给IP路
由2103。此时,在LANIPF22内的IPDA中设定服务器31的IP地址, 在LAN IP F22内的IP SA中设定终端21的IP地址。IP路由2103参照从TCP2102所接收的分组的目的地IP地址(发给 服务器31)和目的地端口 (发给TCP3102),将数据直接向IP栈2104传输。IP栈2104从IP路由2103接收分组,并附加MAC报头(图2中的 F21)来制定Ethernet帧,交给驱动部2105。该帧具有Ethernet帧F20格 式。此时,IP栈2104参照ARP的结果,在帧的LAN MAC F21内的MAC DA中设定服务器31的MAC地址,在LANMACF21内的MACSA中设 定终端21的MAC地址。驱动部2105从IP栈2105接收上述帧,并且向NIC211传输。NIC211从驱动部2105收取帧,并且经由MAC2111、 PHY2112、端 口 2113向HUB22传输帧。HUB22如果从终端21的NIC211侧的端口接收到帧,则参照F21内 的MACDA,由于MACDA为服务器31的地址,因此根据过去的路由学 习结果,将该帧直接向网关装置20侧的端口输出。网关装置20由端口 2013收取来自HUB22的帧,并且经由PHY2012、 MAC2011、驱动部2007,交给网桥2008。网桥2008参照从驱动部2007所接收的帧(帧格式F20形式)内的报 头F21内所存在的MAC DA,由于MAC DA为服务器31的MAC地址, 而不是网关装置20的MAC地址,因此向驱动部2009传输帧。从网桥2008所发送的帧经由驱动部2009、虚拟NIC2010,向网关应 用程序2001A传输。网关应用程序2001A使从虚拟NIC2010所接收的帧,流过网关应用 程序2001A与网关应用程序3001A之间所设定的SSL会话。即,网关应用程序2001A将从虚拟NIC2010所接收的Ethernet帧(帧 格式F20)作为数据交给SSL2002。SSL2002如果从网关应用程序2001A收取到未加密的数据F14(F21 F24),则不进行加密处理而直接向TCP2003传输。TCP2003从SSL2002收取数据F14,并附加TCP报头F13以及IP报
头F12后,交给IP路由2004。这里,在F12内的EPDA中设定网关装置30的IP地址,在F12的IP SA中设定网关装置20的IP地址。另外,在目的地端口中设定TCP3003 的端口,在发送源端口中设定TCP2003的端口。IP路由2004参照从TCP2003所接收的数据的IP报头F12内的IP地 址等,并且将帧交给IP栈2005。IP栈2005从IP路由2004接收帧,并且对帧附加MAC报头Fll,使 之成为Ether over SSL帧格式F10的形式后,交给网桥2008。这里,根据ARP的结果在Fl 1内的MAC DA中设定防火墙33的WAN 侧的MAC地址,在FU内的MAC SA中设定网关装置20的MAC地址。从IP栈2005所发送的帧经由网桥2008、驱动部2007、 MAC2011, 向高速化引擎Y2014发送。高速化引擎Y2014由接口 2014C收取帧,并且用帧解析Y2014D判别 接收帧为预先由SSL2002所通知的SSL会话的帧后,进行数据F14的加 密。并且,经由多路复用器2014F向PHY2012传输。此时,不变更帧的 报头F11 F13。从高速化引擎Y2014所输出的帧经由PHY2012、端口 2013,向HUB22发送。HUB22如果从网关装置22侧的端口接收到帧,则参照Fll内的MAC DA,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接向防火墙33输出。防火墙33接收来自HUB22的帧,参照IP DA来变更MAC报头Fl 1 , 并且以帧格式F10的形式向HUB32传输接收帧。这里,在Fll内的MAC DA中设定网关装置30的MAC地址,在Fll 内的MAC SA中设定防火墙33的LAN侧的MAC地址。HUB32如果接收到来自防火墙33的帧,则参照Fll内的MACDA, 由于MACDA为网关装置30的地址,因此根据过去的路由学习结果,将 该帧直接向网关装置30侧的端口输出。网关装置30如果从端口 3013接收到来自HUB32的帧,则经由 PHY3012、 MAC3011、驱动部3007、网桥3008,向中间驱动部Y3006传 输。中间驱动部Y3006从网桥3008收取帧,并且用帧解析Y3006D判别 接收帧为预先由SSL2002所通知的SSL会话的帧后,进行数据F14的解 密。并且,通过解密处理来解除数据F14的加密后,经由多路复用器Y3006F 向IP栈3005传输。此时,不变更帧的报头F11 F13。IP栈3005去掉从中间驱动部Y3006所接收的帧的MAC报头Fl 1后, 向IP路由3004发送。IP路由3004参照所接收的帧的报头F12内的IPDA和F13内的目的 地端口号,向TCP3003传输帧。TCP3003如果从IP路由3004接收到帧,则进行按照TCP协议返回 ACK分组等的处理。并且,从所接收的帧中去掉TCP报头F13和IP报头 F12,向SSL3002传输数据F14。SSL3002如果从TCP3003接收到数据F14,则不进行解密等处理,而 直接向网关应用程序3001A传输。网关应用程序3001A如果从SSL3002接收到帧F20,则使该帧直接流 过虚拟NIC3010。该帧原样保持着从终端21向HUB22发送时的状态,在LAN MAC F21 内的MACDA中设定服务器31的MAC地址,在LANMAC F21内的MAC SA中设定终端21的MAC地址。另外,在LAN IP F22内的IP DA中设 定服务器31的IP地址,在LANIPF22内的IPSA中设定终端21的IP地 址。从网关应用程序3001A交给虚拟NIC3010的帧,经由驱动部3009、 网桥3008、 NIC301,向HUB32传输。HUB32如果从网关装置30侧的端口接收到帧,则参照F21内的MAC DA,由于MACDA是服务器31的地址,因此根据过去的路由学习结果, 将该帧直接向服务器31侧的端口输出。服务器31接收从HUB32所发送的帧,经由驱动部3105、 IP栈3104、 IP路由3103、 TCP3102,将帧内的数据F24交给应用程序3101。通过如上所述的方式,完成从终端21内的应用程序2101到服务器31 内的应用程序3101的一系列的帧传输。
通过经由与上述例相反的路径,也可同样地实现从服务器31内的应用程序3101到终端21内的应用程序2101的一系列的帧传输。在本实施方式中示出了在网关装置20侧安装高速化引擎,在网关装 置30侧安装中间驱动部的例子,但是与此相反地,也可在网关装置30侧 安装高速化引擎,在网关装置20侧安装中间驱动部。另外,也可在网关 装置20侧和网关装置30侧两方安装高速化引擎,而完全不使用中间驱动 部。再有,在本实施方式中也能够调换服务器31与终端21的设置场所。 (发明效果) 接下来,对本实施方式的效果进行说明。如果利用本实施方式中所举出的发明,则在终端21与服务器31之间 能够进行帧的高速传输。这是因为,在网关装置20中对采用SSL会话进行通信时的加密及解 密处理进行硬件化,从而使SSL的处理高速化。另外,如果利用本实施方式中所举出的发明,则能够较低地抑制高速 化处理用的硬件(高速化引擎)的开发费用或部件费用。这是因为,能够在价格比较低廉的MAC与PHY间的接口中安装高速 化处理用的硬件(高速化引擎)。另外,这是因为,能够将不易通过硬件实现的TCP处理留给软件,而 仅对容易通过硬件实现、并且高速化处理的效果大的SSL的加密/解密和 封装通过硬件来处理。 (第十实施方式)本发明的第十实施方式相对于第九实施方式,其不同之处在于,在设 置于终端21内的中间驱动部Z2106中进行网关装置20内的处理。另外,由于不存在网关装置20和网关装置30,因此废除HUB22和 HUB33,将终端21与防火墙33的WAN侧直接连接,并且将服务器31 与防火墙33的LAN侧也直接连接。另外,第十实施方式也与第九实施方式同样,构成为不进行针对TCP over TCP的对策,而特殊处理釆用SSL进行通信时的数据的加密及解密处 理的高速化。在第十实施方式中,企业内部网2不仅可以采用封闭域LAN,也可采
用互联网等开放的WAN。(构成说明)图29是详细地示出了第十实施方式中的各设备的构成和帧的传输路 径的框图。终端21相对于第九实施方式中的终端21,其不同之处在于,追加了 中间驱动部Z2106,在中间驱动部Z2106内进行与网关装置20同样的动 作。另外,将NIC211变更为在第九实施方式中的网关装置20内所存在的 NIC201。中间驱动部Z2106由网关应用程序2001A、 SSL2002、 TCP2003、 IP 路由2004、 IP栈2005构成。上述各部分分别具有与第九实施方式的网关 装置20内的网关应用程序2001A、 SSL2002、 TCP2003、 IP路由2004、 IP 栈2005同样的构成,并且进行同样的动作。NIC201具有与第九实施方式中的网关装置20内的NIC201同样的构 成,并且进行同样的动作。服务器31相对于第九实施方式中的服务器31,追加了中间驱动部 Z3106,在中间驱动部Z3106内进行与网关装置30同样的动作。中间驱动部Z3106由网关应用程序3001A、 SSL3002、 TCP3003、 IP 路由3004、 IP栈3005、中间驱动部Y3006构成。上述各部分分别具有与 第九实施方式的网关装置30内的网关应用程序3001A、 SSL3002、 TCP3003、 IP路由3004、 IP栈3005、中间驱动部Y3006同样的构成,并 且进行同样的动作。防火墙33具有与第九实施方式的防火墙33同样的构成,并且进行同 样的动作。但是,在本实施方式中也可采用NAT路由器或proxy服务器 来取代防火墙33。第十实施方式也与其他实施方式同样,只有在网关装置20与网关装 置30之间预先设定有SSL会话的情况下,能够由企业内部网2内的设备 访问企业内部网3内的设备。 (动作说明)(SSL会话的建立动作) 采用图29,以在第十实施方式中建立从服务器31到终端21的SSL
会话(安全TCP会话)的情况为例,进行动作说明。另外,假设防火墙33允许终端21的IP栈2005与服务器31的IP栈 3005之间的通信在双方向上进行,但是在双方向上对终端21与服务器31 之间的不经由IP栈2005或IP栈3005的直接通信进行拦截。服务器31内的网关应用程序3001A收到来自用户的终端21内的对网 关应用程序2001A的连接请求,向SSL3002指示与终端21内的网关应用 程序2001A开始通信。SSL3002收到来自网关应用程序3001A的开始通信指示,为了与 SSL2002之间建立SSL会话,向TCP3003指示与终端21内的网关应用程 序2001A开始通信。TCP3003收到来自SSL3002的开始通信指示,为了与TCP2003之间 建立TCP会话,生成与TCP2003的TCP会话建立请求分组(SYN)而向 IP路由3004发送,所生成的TCP会话建立请求分组是遵守TCP标准的分 组,该分组将终端—21的IP栈2004侧作为目的地IP地址,在目的地端口 号中设定TCP2003。IP路由3004参照从TCP3003所接收的分组的目的地IP地址和目的 地端口号,向IP栈3005传输分组。IP栈3005对从IP路由3004所接收的分组附加防火墙33内的企业内 部网3侧的MAC地址作为目的地MAC地址,而且在发送源MAC地址中 设定自节点的MAC地址来生成帧后,向中间驱动部Y3006传输。中间驱动部Y3006从IP栈3005接收TCP帧,并且进行报头解析。 解析的结果,不是需要加密的帧,因此直接向驱动部3105传输该帧。驱动部3105从中间驱动部Y3006接收帧,并且向MAC3111传输。MAC3111从驱动部3105接收帧,并且向PHY3112传输。PHY3112从MAC3111接收帧,并且向端口 3113传输。端口 3113从PHY3112接收帧,并且经由以太网电缆向防火墙33传输。防火墙33从服务器31接收帧,由于是从服务器31到终端21的通信, 因此允许该通信,向终端21传输。终端21从防火墙33接收帧,并且以端口2013、 PHY2012、高速化引
擎Y2014、 MAC2011、驱动部2105的路径进行传输,向IP栈2005传输。 此时,高速化引擎Y2014使从PHY所接收的帧直接流过MAC。IP栈2005从网桥2008接收帧,并且在该帧中去掉MAC报头而使之 成为分组后向IP路由2004传输。IP路由2004参照从IP栈2005所接收的分组的目的地端口号,由于 附加有TCP2003侧的端口号,因此向TCP2003传输该分组。TCP2003从IP路由2004接收分组。由于该分组为TCP会话建立请求 分组(SYN),因此按照TCP协议针对TCP会话建立请求以TCP3003为 目的地生成响应分组(SYN+ACK)并发送。g卩,将服务器31的IP栈3005 的IP地址设定为响应分组的目的地IP,将TCP3003的端口号设定为响应 分组的目的地端口。响应分组经由IP路由2004、 IP栈2005、驱动部2105、 NIC201、防 火墙33、 NIC311,到达CPU310,进一步经由驱动部3105、 IP栈3005、 IP路由3004,到达TCP3003 。TCP3003从IP路由3004接收响应分组。由于该分组为针对TCP会话 建立请求的响应分组,因此向TCP2003发送针对该响应分组的ACK分组。 再有,向SSL3102通知与TCP2003完成TCP会话连接。SSL3002收到来自TCP3003的连接完成通知,为了与SSL2002之间 建立SSL会话,按照SSL协议,发送用于会话建立请求的分组(SSL会 话建立请求分组)。SSL会话建立请求分组如果被TCP3003所接收,则通过TCP3003与 TCP2003之间所设定的TCP会话,经由NIC311、防火墙33、 NIC201, 到达TCP2003 。TCP2003向SSL2002传输SSL会话建立请求分组。SSL2002验证SSL会话建立请求的内容,如果没有问题,则向网关应 用程序2001A通知与SSL3002的会话建立,同时,按照SSL协议,向 SSL3002发送SSL会话建立响应分组。SSL会话建立响应分组经由与SSL会话建立请求分组相反的路径也就 是TCP2003与TCP3003之间的TCP会话,到达SSL3002。SSL2002在控制帧中承载SSL2002的秘密密钥、SSL3002的公开密钥、SSL2002与SSL3002之间的预共享密钥、SSL会话的对象设备的IP地址 (服务器31的IP路由3004侧的IP地址)、SSL会话的对象设备的目的 地端口(TCP3003的端口 )、自节点侧的SSL会话的发送源端口号(TCP2003 的端口 )、发送源IP地址(终端21的IP路由2004侧的IP地址)和开始 命令,并且向高速化引擎Y2014发送控制帧。控制帧从SSL2002输出后,经由驱动部2105、 MAC2011,到达高速 化引擎Y2014。高速化引擎Y2014根据MAC地址等来判别控制帧,用控制帧收发部 进行接收。并且,为了分别在解密及加密中而保存公开密钥、秘密密钥和 预共享密钥,为了进行帧解析而保存IP地址或端口号。并且,接收高速 化处理开始命令,开始帧解析、加密及解密的处理。SSL3002按照SSL协议对SSL会话建立响应的内容进行验证,如果 没有问题,则向网关应用程序3101A通知SSL3002与SSL2002之间的SSL 会话建立。另外,SSL3002将SSL3002的秘密密钥、SSL2002的公开密钥、 SSL2002与SSL3002之间的预共享密钥、SSL会话的对象设备的IP地址 (终端21的IP地址)、SSL会话的对象设备的目的地端口 (TCP2003的 端口)、自节点侧的SSL会话的发送源端口号(TCP3003的端口)、发送 源IP地址(服务器31的IP地址)和开始命令,通知给中间驱动部Y3006。中间驱动部Y3006为了分别在解密及加密中使用而保存由SSL3002 所通知的公开密钥、秘密密钥和预共享密钥,为了进行帧解析而保存IP 地址或端口号。并且,接收高速化处理开始命令,开始帧解析、加密及解 密的处理。通过如上所述的方式,在SSL2002与SSL3002之间建立SSL会话。通过以上方式,在第十实施方式中完成在建立从服务器31到终端21 的SSL会话(安全TCP会话)时的动作。(从终端21到服务器31的帧传输动作)采用图29,以在第十实施方式中从终端21向服务器31发送帧的情况 为例,进行动作说明。另外,假设防火墙33允许终端21的IP栈2005与服务器31的IP栈
3005之间的通信在双方向上进行,但是在双方向上对终端21与服务器31 之间的不经由IP栈2005或IP栈3005的直接通信进行拦截。再有,假设从服务器31到终端21的SSL会话(安全TCP会话)通 过上述的动作例已被设定。另外,假设终端21内的应用程序2101与服务器31内的应用程序3101 之间己建立了TCP会话。终端21内的应用程序2101将发给服务器31内的应用程序3101的数 据交给TCP2102。TCP2102从应用程序2101收取数据,并按照TCP协议附加TCP报头 (图2中的F23)或IP报头(图2中的F22)而作为IP分组,交给IP路 由2103。此时,在LANIPF22内的IPDA中设定服务器31的IP栈3104 的IP地址,在LAN IP F22内的IP SA中设定终端21的IP栈2104的IP地址。IP路由2103参照从TCP2102所接收的分组的目的地IP地址(发给 服务器31)和目的地端口 (发给TCP3102),将数据直接向IP栈2104传输。IP栈2104从IP路由2103接收分组,并附加MAC报头(图2中的 F21)来制定Ethernet帧,交给中间驱动部Z2106。该帧具有Ethernet帧 F20格式。此时,IP桟2104参照ARP的结果,在帧的LAN MAC F21内 的MAC DA中设定服务器31的MAC地址,在LAN MAC F21内的MAC SA中设定终端21的MAC地址。中间驱动部Z2106内的网关应用程序2001A使从IP栈2104所接收的 帧,流过网关应用程序2001A与网关应用程序3001A之间所设定的SSL 会话。艮P,网关应用程序2001A将从IP栈2104所接收的Ethernet帧(帧格 式F20)作为数据交给SSL2002。SSL2002如果从网关应用程序2001A收取未加密的数据F14 (F21 F24),则不进行加密处理而直接向TCP2003传输。TCP2003从SSL2002收取数据F14,并附加TCP报头F13以及IP报 头F12后,交给IP路由2004。
这里,在F12内的IPDA中设定服务器31的IP栈3005的IP地址, 在F12的IPSA中设定终端21的IP栈的IP地址。另外,在目的地端口中 设定TCP3003的端口,在发送源端口中设定TCP2003的端口。IP路由2004参照从TCP2003所接收的数据的IP报头F12内的IP地 址等,并且将帧交给IP栈2005。IP栈2005从IP路由2004接收帧,并且对帧附加MAC报头Fl 1 ,使 之成为Ether over SSL帧格式F10的形式后,交给驱动部2105。这里,根据ARP的结果在Fl 1内的MAC DA中设定防火墙33的WAN 侧的MAC地址,在Fll内的MAC SA中设定终端21的MAC地址。从IP栈2005所发送的帧经由驱动部2105、 MAC2011,向高速化引 擎Y2014发送。高速化引擎Y2014由接口 2014C收取帧,并且用帧解析Y2014D判别 接收帧为预先由SSL2002所通知的SSL会话的帧后,进行数据F14的加 密。并且,经由多路复用器2014F向PHY2012传输。此时,不变更帧的 报头F11 F13。从高速化引擎Y2014所输出的帧经由PHY2012、端口 2013,向防火 墙33发送。防火墙33接收来自终端21的帧,参照IPDA来变更MAC报头Fll, 并且以帧格式F10的形式向服务器31传输接收帧。这里,在F11内的MAC DA中设定服务器31的MAC地址,在Fll 内的MAC SA中设定防火墙33的LAN侧的MAC地址。服务器31如果从端口 3113接收到来自防火墙33的帧,则经由 PHY3U2、 MAC3111、驱动部3105,向中间驱动部Z3106内的中间驱动 部Y3006传输。中间驱动部Y3006从驱动部3105收取帧,并且用帧解析Y3006D判 别接收帧为预先由SSL3002所通知的SSL会话的帧后,进行数据F14的 解密。并且,通过解密处理来解除数据F14的加密后,经由多路复用器 Y3006F向IP栈3005传输。此时,不变更帧的报头F11 F13。IP栈3005去掉从中间驱动部Y3006所接收的帧的MAC报头Fl 1后, 向IP路由3004发送。IP路由3004参照所接收的帧的报头F12内的IPDA和F13内的目的 地端口号,向TCP3003传输帧。TCP3003如果从IP路由3004接收到帧,则进行按照TCP协议返回 ACK分组等的处理。并且,从所接收的帧中去掉TCP报头F13和IP报头 F12,向SSL3002传输数据F14。SSL3002如果从TCP3003接收到数据F14,则不进行解密等处理,而 直接向网关应用程序3001A传输。网关应用程序3001A如果从SSL3002接收到帧F20,则使该帧直接流 过IP栈3104。从网关应用程序3001A所发送的帧,经由IP栈3104、 IP路由3103、 TCP3102被传输,并且将帧内的数据F24交给应用程序3101。通过如上所述的方式,完成从终端21内的应用程序2101到服务器31 内的应用程序3101的一系列的帧传输。通过经由与上述例相反的路径,也可同样地实现从服务器31内的应 用程序3101到终端21内的应用程序2101的一系列的帧传输。在本实施方式中示出了在终端21侧安装中间驱动部和高速化引擎, 在服务器31侧安装中间驱动部的例子,但是与此相反地,也可在服务器 31侧安装高速化引擎和中间驱动部,在终端21侧安装中间驱动部。另外,也可在终端21侧和服务器31侧两方安装高速化引擎。再有, 也可在终端21侧和服务器31侧两方安装中间驱动部,而不使用高速化引 擎。另外,在本实施方式中也能够调换服务器31与终端21的设置场所。 (发明效果)接下来,对本实施方式的效果进行说明。如果利用本实施方式中所举出的发明,则在终端21与服务器31之间 能够进行帧的高速传输。这是因为,在终端21中对加密及解密处理进行硬件化,从而使SSL 的处理高速化。另外,如果利用本实施方式中所举出的发明,则能够较低地抑制高速 化处理用的硬件(高速化引擎)的开发费用或部件费用。这是因为,能够在价格比较低廉的MAC与PHY间的接口中安装高速
化处理用的硬件(高速化引擎)。另外,这是因为,能够将不易通过硬件实现的TCP处理留给软件,而仅对容易通过硬件实现、并且高速化处理的效果大的SSL的加密/解密和封装通过硬件来处理。 (第十一实施方式)本发明的第十一实施方式相对于图19所示的第三实施方式,其不同 之处在于,在网关装置20中设置UDP2003来取代TCP2003,并且废除中 间驱动部2006,而设置网桥2008、驱动部2009、虚拟NIC2010来代替。 另外,在网关装置30中也设置UDP3003来取代TCP3003,并且废除中间 驱动部3006。另外,用高速化引擎而不是中间驱动部来制定控制帧,并且 使用虚拟NIC和网桥进行发送。在第H^—实施方式中的终端21、服务器31、 HUB22、 HUB32、企业 内部网2、企业内部网3的构成及动作,与第三实施方式相同。在第十一实施方式中,企业内部网2不仅可以采用封闭域LAN,也可 采用互联网等开放的WAN。 (构成说明)图30是详细地示出了第十一实施方式中的各设备的构成和帧的传输 路径的框图。网关装置20相对于第三实施方式中的网关装置20,其不同之处在于, 设置UDP2003来取代TCP2003,并且废除中间驱动部2006,而设置网桥 2008、驱动部2009、虚拟NIC2010来代替。网桥2008、驱动部2009、虚拟NIC2010分别具有与第三实施方式中 的网桥308、驱动部3009、虚拟NIC3010同样的构成,并且进行同样的动 作。UDP2003是从TCP2003的功能中除去了拥塞控制和重传控制的部分。 高速化引擎控制2001除了第三实施方式中的高速化引擎控制2001的功能以外,还具有与第三实施方式中的中间驱动部2006内的控制帧收发相关的功能。网关装置30相对于第三实施方式中的网关装置30,其不同之处在于, 设置UDP3003来取代TCP3003,并且废除中间驱动部3006。UDP3003与本实施方式中的网关装置20内的UDP2003相同。 在第十一实施方式中,只有在网关装置20与网关装置30之间预先设定有SSL会话的情况下,能够由企业内部网2内的设备访问企业内部网3内的设备。(动作说明)(SSL会话的建立动作)采用图30,以在第十一实施方式中建立从网关装置30到网关装置20 的SSL会话(安全TCP会话)的情况为例,进行动作说明。此时,假设网桥2008、网桥3008、 HUB22或HUB32已学习了终端 21、服务器31、防火墙33的WAN侧、防火墙33的LAN侧、网关装置 20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。网关装置30内的网关应用程序3001A收到来自用户的向网关装置20 内的高速化引擎控制2001的连接请求,向SSL3002指示与网关装置20内 的高速化引擎控制2001开始通信。同时,向中间驱动部3006通知与网关 装置20内的高速化引擎控制2001开始通信。在该通知中包含网关装置20 的IP地址、高速化引擎控制2001的端口号、网关应用程序3001A的发送 源端口号、以及网关装置30的IP地址。SSL3002收到来自网关应用程序3001A的开始通信指示,为了与 SSL2002之间建立SSL会话,向UDP3003指示与网关装置20内的高速化 引擎控制2001开始通信。UDP3003收到来自SSL3002的开始通信指示,为了与UDP2003之间 建立TCP会话,向IP路由3004发送与UDP2003的会话建立所需的分组。 该分组是遵守UDP标准的分组,在目的地IP地址中设定以网关装置20 为目的地,在目的地端口号中设定UDP2003。IP路由3004参照从UDP3003所接收的分组的目的地IP地址和目的 地端口号,向IP栈3005传输分组。IP栈3005对从IP路由3004所接收的分组附加防火墙33内的企业内
部网3侧的MAC地址作为目的地MAC地址,而且在发送源MAC地址中设定自节点的MAC地址来生成帧后,经由网桥3008向驱动部3007传输。 驱动部3007从网桥3008接收帧,并且向MAC3011传输。 MAC3011从驱动部3007接收帧,并且向PHY3012传输。 PHY3012从MAC30U接收帧,并且向端口 3013传输。 端口 3013从PHY3012接收帧,并且经由以太网电缆向HUB32传输。 HUB32如果接收到帧,则参照MACDA,由于MAC DA为防火墙33的LAN侧的地址,因此根据过去的路由学习结果,将该帧直接向防火墙33侧的端口输出。防火墙33从HUB22接收分组,由于是从网关装置30到网关装置20的通信,因此允许该通信,向HUB22传输。HUB22从防火墙33接收帧,根据过去的路由学习结果,将该帧直接向网关装置20传输。网关装置20从HUB22内接收连接请求的帧,并且以端口 2013、PHY2012、高速化引擎2014、 MAC2011、驱动部2007、网桥2008的路径传输分组,并且传输到IP栈2005。此时,高速化引擎2014将从PHY所接收的帧直接向MAC2011传输。IP栈2005从网桥2008接收帧,并且去掉MAC报头向IP路由2004传输。IP路由2004参照从IP栈2005所接收的分组的目的地端口号,由于 附加有UDP2003侧的端口号,因此向UDP2003传输该分组。UDP2003从IP路由2004接收分组。并且,将接收到会话建立请求的 报告传递给SSL2002。其结果,SSL2002命令UDP2003使UDP2003建立会话。UDP2003以UDP3003为目的地发送会话建立所需的分组。即,将网 关装置30的IP地址设定为会话建立请求分组的目的地IP,将TCP3003 的端口号设定为分组的目的地端口。连接请求分组与会话建立请求分组相反的路径也就是IP路由2004、 IP栈2005、网桥2008、驱动部2007、 NIC201 、 HUB22、防火墙33、 HUB32、 NIC301、驱动部3007、网桥3008、IP栈3005、IP路由3004,到达UDP3003。收分组。由于该分组为UDP会话的建立 请求,因此向SSL3002通知与UDP2003的UDP会话连接完成。SSL3002收到来良UDP3003的连接完成通知,为了与SSL2002之间 建立SSL会话,按照SSL协议,发送用于会话建立请求的分组(SSL会 话建立请求分组)。SSL会话建立请求分组如果被UDP3003接收到,则通过UDP3003与 中间驱动部3006内的UDP之间所设定的UDP会话,经由NIC301、HUB32、 防火墙33、 HUB22、 NIC201,到达UDP2003。此时,NIC201内的高速化 引擎2014将从PHY2012所接收的分组直接向MAC2011传输。UDP2003向SSL2002传输分组。SSL2002验证SSL会话建立请求的内容,如果没有问题,则向高速化 引擎控制2001通知与SSL3002的会话建立的同时,按照SSL协议,向 SSL3002发送SSL会话建立响应分组。SSL会话建立响应分组经由与SSL会话建立请求分组相反的路径也就 是UDP2003与中间驱动部2006之间的UDP会话,到达SSL3002。SSL3002按照SSL协议对SSL会话建立响应的内容进行验证,如果 没有问题,则向网关应用程序3001A通知SSL3002与SSL2002之间的SSL 会话建立。高速化引擎控制2001如果收到来自SSL2002的SSL会话建立通知, 则制定控制帧,并且以虚拟NIC2010、驱动部2009、网桥2008、驱动部 2007、 MAC2011的路径对该帧进行传输,并且发送到高速化引擎2014。 在控制帧中包含公开密钥、秘密密钥、预共享密钥、SSL会话的对象设备 的IP地址(网关装置30的IP地址)、SSL会话的对象设备的目的地端口 (UDP3003的端口)、自节点侧的SSL会话的发送源端口号(UDP2003 的端口)、发送源IP地址(网关装置20的IP地址)和开始命令。高速化引擎2014根据MAC地址等来判别控制帧,用控制帧收发部进 行接收。并且,为了分别在解密及加密中使用而保存公开密钥、秘密密钥 和预共享密钥,为了进行帧解析而保存IP地址或端口号。并且,接收高 速化处理开始命令,开始帧解析、加密及解密的处理。高速化引擎2014,在高速化处理开始命令以前,将控制帧以外的从
MAC2011所接收的帧都直接向PHY2012发送,将从PHY2012所接收的 帧都直接向MAC2011发送。但是,在高速化处理开始命令以后,将控制 帧以外的从MAC2011所接收的帧都直接向PHY2012发送的动作上无变 化,但是对从PHY2012所接收的帧进行如下的处理。(1) 如果为发给网关装置20的、用SSL3002加密后的帧,则解除 UDP等的封装,如果有必要,则解除碎片,对帧进行解密后,向PHY2012 侧发送。(2) 如果为(1)以外的发给自节点的帧,则向MAC2011传输。(3) 如果为广播帧或者组播帧,则复制帧后,将一方直接向MAC2011 传输,而对另一方进行加密和封装后,向SSL3002 (PHY2012侧)发送。 如果有必要,还对碎片进行分割。(4) 如果为(1) (3)以外的帧,则进行加密和封装后,向SSL3002 (PHY2012侧)发送。如果有必要,则还对碎片进行分割。通过如上所述的方式,在高速化引擎2014与UDP3003之间建立用于 帧传输的UDP等的无拥塞控制的会话。另外,在高速化引擎2014与 SSL3002之间建立SSL会话(SSL隧道)。艮口, SSL2002仅在SSL会话建立请求时,与SSL3002进行互换,但 是如果SSL会话建立结束,则以后在高速化引擎2014与SSL3002之间进 行SSL的加密和解密的互换。另外,UDP3003仅在会话建立请求时,与UDP2003进行帧的互换, 但是SSL会话建立后,在高速化引擎2014与UDP3003之间进行帧的互换。通过以上方式,在第三实施方式中完成在建立从网关装置30到网关 装置20的SSL会话(安全TCP会话)时的动作。 (从终端21到服务器31的帧传输动作)采用图30,以在第十一实施方式中从终端21向服务器31发送帧的情 况为例,进行动作说明。此时,假设网桥2008、网桥3008、 HUB22或HUB32已学习了终端 21、服务器31、防火墙33、网关装置20、网关装置30的MAC地址。另外,假设防火墙33允许网关装置20与网关装置30之间的通信在 双方向上进行,但是在双方向上对终端21与服务器31之间的不经由网关 装置20或网关装置30的直接通信进行拦截。再有,假设从网关装置30到网关装置20的SSL会话(安全TCP会 话)通过上述的动作例已被设定。另外,假设终端21内的应用程序2101与服务器31内的应用程序(应 用程序3101)之间已建立了TCP会话。终端21内的应用程序2101将发给服务器31内的应用程序3101的数 据交给TCP2102。TCP2102从应用程序2101收取数据,并按照TCP协议附加TCP报头 (图2中的F23)或IP报头(图2中的F22)而作为IP分组,交给IP路 由2103。此时,在LANIPF22内的IPDA中设定服务器31的IP地址, 在LAN IP F22内的IP SA中设定终端21的IP地址。IP路由2103参照从TCP2102所接收的分组的目的地IP地址(发给 服务器31)和目的地端口 (发给TCP3102),将数据直接向IP栈2104传 输。IP栈2104从IP路由2103接收分组,并附加MAC报头(图2中的 F21)来制定Ethernet帧,交给驱动部2105。该帧具有Ethernet帧F20格 式。此时,IP栈2104参照ARP的结果,在帧的LANMACF21内的MAC DA中设定服务器31的MAC地址,在LAN MAC F21内的MAC SA中设 定终端21的MAC地址。驱动部2105从IP栈2105收取上述帧,并且向NIC211传输。NIC211从驱动部2105收取帧,并且经由MAC21U、 PHY2112、端 口 2113向HUB22传输帧。HUB22如果从终端21的NIC211侧的端口接收到帧,则参照F21内 的MACDA,由于MACDA为服务器31的地址,因此根据过去的路由学 习结果,将该帧直接向网关装置20侧的端口输出。网关装置20内的NIC201用端口 2013接收来自HUB22的帧,并且经 由PHY2012交给高速化引擎2014。高速化引擎2014,由于所到达的帧的目的地MAC为以服务器31为 目的地,因此在高速化引擎2014内的加密2014G中对帧进行加密,来制 定图3中的数据F14,进一步在封装2014I中附加图3中的F11 F13的各
报头,使之成为Ether over SSL帧F10格式后,再次向PHY2014侧传输。 此时,在INETMACFll内的MACDA中设定防火墙33的WAN侧 的MAC地址,在Fll内的MAC SA中设定网关装置20的MAC地址。 另外,在INETIPF12内的IPDA中设定网关装置30的IP地址,在F12 内的IP SA中设定网关装置20的IP地址。对于INETTCPF13而言,设 定了 UDP3003的目的地端口,在发送源端口中设定UDP2003 (在本实施 方式中,假设防火墙33允许进行UDP通信)。PHY2012如果从高速化引擎2014接收到帧,则经由端口 2013向 HUB22传输帧。HUB22如果从网关装置22侧的端口接收到帧,则参照Fl 1内的MAC DA,由于MACDA为防火墙33的WAN侧的地址,因此根据过去的路由 学习结果,将该帧直接向防火墙33输出。防火墙33接收来自HUB22的帧,参照IP DA来变更MAC报头Fl 1 , 并且以帧格式F10的形式向HUB32传输接收帧。这里,在Fll内的MAC DA中设定网关装置30的MAC地址,在Fll 内的MAC SA中设定防火墙33的LAN侧的MAC地址。HUB32如果接收到来自防火墙33的帧,则参照Fl 1内的MAC DA, 由于MACDA为网关装置30的地址,因此根据过去的路由学习结果,将 该帧直接向网关装置30侧的端口输出。网关装置30如果从端口 3013接收到来自HUB32的帧,则经由 PHY3012、 MAC3011、驱动部3007、网桥3008,向IP栈3005传输。IP栈3005去掉从网桥3008所接收的帧的MAC报头Fll后,向IP 路由3004发送。IP路由3004参照所接收的帧的报头F12内的IPDA和F13内的目的 地端口号,向TCP3003传输帧。UDP3003如果从IP路由3004接收到帧,则从所接收的帧中去掉UDP 报头F13和IP报头F12,向SSL3002传输数据F14。SSL3002如果从UDP3003接收到数据F14,则通过解密处理来解除加 密,并且从数据F14中取出Ethernet帧F20也就是F21 F24,向网关应 用程序3001A传输。 网关应用程序3001A如果从SSL3002接收到帧F20,则使该帧直接流 过虚拟NIC3010。该帧原样保持着从终端21向HUB22发送时的状态,在LAN MAC F21 内的MACDA中设定服务器31的MAC地址,在LANMAC F21内的MAC SA中设定终端21的MAC地址。另外,在LAN IP F22内的IP DA中设 定服务器31的IP地址,在LAN IP F22内的IP SA中设定终端21的IP地 址。从网关应用程序3001A交给虚拟NIC3010的帧,经由驱动部3009、 网桥3008、 NIC301,向HUB32传输。HUB32如果从网关装置30侧的端口接收到帧,则参照F21内的MAC DA,由于MACDA是服务器31的地址,因此根据过去的路由学习结果, 将该帧直接向服务器31侧的端口输出。服务器31接收从HUB32所发送的帧,并且经由驱动部3105、 IP栈 3104、 IP路由3103、 TCP3102,将帧内的数据F24交给应用程序3101 。通过如上所述的方式,完成从终端21内的应用程序2101到服务器31 内的应用程序3101的一系列的帧传输。通过经由与上述例相反的路径,也可同样地实现从服务器31内的应 用程序3101到终端21内的应用程序2101的一系列的帧传输。在本实施方式中示出了在网关装置20侧安装高速化引擎,但是与此 相反地,也可在网关装置30侧安装高速化引擎。再有,在本实施方式中 也能够调换服务器31与终端21的设置场所。 (发明效果)接下来,对本实施方式的效果进行说明。如果利用本实施方式中所举出的发明,则在终端21与服务器31之间 能够进行帧的高速传输。这是因为,通过利用高速化引擎,能够排除网关装置20的以CPU(软 件处理)执行的封装处理及加密/解密处理,而能够用高速化引擎(硬件) 来实现这些处理的全部。另外,如果利用本实施方式中所举出的发明,则能够较低地抑制高速 化处理用的硬件(高速化引擎)的开发费用或部件费用。
这是因为,能够用同一硬件(FPGA/ASIC)来进行加密及解密以及封装。另外,这是因为,能够在价格比较低廉的MAC与PHY间的接口安装硬件。另外,这是因为,能够将不易通过硬件实现的TCP处理留给软件,而 仅对比较容易通过硬件实现、并且高速化处理的效果大的加密/解密和封装 通过硬件来处理。(第十二实施方式) 本发明的第十二实施方式相对于第一实施方式,在高速化引擎2014 中处理多个会话。 (构成说明)图31是示出本实施方式中的中间驱动部1008的构成的框图。本实施 方式中的中间驱动部1008相对于图7所示的第一实施方式中的中间驱动 部1008,其不同之处在于,在设定管理部1008L内具有表格,能够保存 多个会话信息。再有,其不同之处在于,帧解析1008H和帧解析10081参照设定管理 部1008L内的表格,来决定所接收的帧的传输目的地。帧解析1008H从IP栈1007接收帧,并且按以下顺序以帧的报头信息 为关键字来检索设定管理部1008L内的表格。(1) 检索帧是否为与高速化处理相关的帧。如果帧为与高速化处理 相关的帧,则向封装解除1008F传输帧。根据MAC地址、IP地址、TCP 报头、UDP报头等,来判别帧是否为与高速化处理相关的帧。(2) 检索的结果,如果为其他帧,则向多路复用器1008K传输。 帧解析10081从驱动部1009接收帧,并且按以下顺序以帧的报头信息为关键字来检索设定管理部1008L内的表格。(1) 检索帧是否为与高速化处理相关的帧。 如果帧为与高速化处理相关的帧,则向封装解除1008G传输帧。根据MAC地址、IP地址、TCP报头、UDP报头等,来判别帧是否为与高速化 处理相关的帧。(2) 检索帧是否为与设备或高速化引擎的控制相关的特殊帧(以后 称作控制帧)。检索的结果,当帧为控制帧时,向控制帧收发部1008M传输帧。通常根据MAC DA和MAC SA来判断是否为特殊帧。以MAC DA或MAC SA为关键字,对表格进行检索,当记载有预先登记在表格中的地址范围 的MAC地址(称作控制用MAC地址。例如00004C0000xx)时,判断该帧为控制帧。(3)检索的结果,如果为其他帧,则向多路复用器1008J传输。 设定管理部1008L具有以下功能。(1) 从中继应用程序1001接收与高速化处理相关联的会话的信息 (MAC地址、IP地址、端口号等)的通知,并保存在表格中。(2) 从中继应用程序1001接收特殊帧的MAC地址的通知,并保存 在表格中。(3) 基于来自帧解析1008H和帧解析10081的请求,进行表格的检 索,并且通知检索结果。表格中存储有不仅对应一个会话而是对应多个会话的MAC地址、IP 地址、端口号等的信息。图32是示出本实施方式中的高速化引擎2014的构成的框图。本实施 方式中的高速化引擎2014相对于图12所示的第一实施方式中的高速化引 擎20M,其不同之处在于,具有设定管理部2014N,能够保存多个会话信 息。另外,除了帧解析2014B参照设定管理部2014N内的表格,来决定 所接收的帧的传输目的地之外,加密2014G、解密2014L、封装20141也 参照设定管理部2014N内的表格,得到适于会话的公幵密钥、秘密密钥和 预共享密钥、报头等信息。帧解析2014B从接口 2014A接收帧,按以下所示的(1) (4)的 顺序来决定目的地后进行传输。(1)检索设定管理部2014N内的表格,如果为发给自节点并且成功 检索时(当为预先设定的SSL会话的帧时也就是由会话中继装置10加密 过的帧时),则将该帧向封装解除2014J传输。此时,从设定管理部所收 取的会话IP信息也一起交付。
(2) 如果为(1)以外的发给自节点的帧(发给自节点并且在检索设 定管理部2014N内的表格中失败的情况),则向多路复用器2014E传输帧。(3) 如果为对MAC DA附加了广播MAC或广播MAC的广播帧、 或者组播帧,则复制该帧并向多路复用器2014E和加密2014G传输。假如 多个会话登记在设定管理部2014N时,以登记会话数目来复制帧后,与从 设定管理部2014N所得到的会话ID —起交给加密2014G。(4) 如果为(1) (3)以外的帧,则向加密2014G传输。假如多 个会话没有登记在设定管理部2014N时,以登记会话数目来复制帧后,与 从设定管理部2014N所得到的会话ID —起交给加密2014G。控制帧解析2014D从接口 2014C接收帧,当帧为与高速化引擎的控 制相关的特殊帧(以后称作控制帧)时,向控制帧收发部2014M传输帧。 当不是特殊帧时向多路复用器2014F传输。通常根据MAC DA和MAC SA 来判断是否为特殊帧。当在MAC DA或MAC SA的任一个中记载有预先 规定的地址范围的MAC地址(称作控制用MAC地址。例如 00004C000000 FF)时,判断帧为控制帧。加密2014G从帧解析2014B接收帧,以3DES等方法进行加密后,向 碎片分割2014H传输。用于加密的公开密钥,以由帧解析2014B所通知 的会话ID为关键字,来检索设定管理部2014N内的表格,从而利用检索 结果所得到的公开密钥和予共享密钥。封装20141进行与图7所示的中间驱动部1008内的再封装1008D同 样的动作。即,对从碎片分割2014H发送来的数据(图3中的F14)附加 INETMACFll、 INETIPF12、 INET TCP F13的各报头,向多路复用器 2014F传输。所附加的F11 F13的各报头的值,以会话ID为关键字来检 索设定管理部2014N内的表格,从而利用检索结果所得到的报头的值。此 夕卜,通过设定还能够在INETTCPF13的位置设定UDP报头,而不是TCP 报头。在封装20141中附加TCP报头F13是为了防止因通信路径上存在的防 火墙或NAT路由器等(在图1的例子中防火墙23)而分组被拦截的情况。 在对F13设定了 UDP报头时,如果在通信路径上存在防火墙或NAT路由 器等,则通信有可能被拦截。在封装20141中所附加的TCP报头在格式上 具有TCP的形式,但是在实际上由于TCP不是所附加的报头,因此在拥 塞控制或重传控制中使用。这里所附加的报头F13始终是用来通过防火墙 或NAT的,实际的拥塞控制或重传控制通过存在于终端21或服务器31 内的TCP (图3的帧格式F10中的F23的TCP报头部分)而进行。解密2014L从碎片解除2014K接收帧,通过3DES等方法进行解密后, 向多路复用器2014F传输。用于解密的公开密钥,以由会话ID为关键字, 来检索设定管理部2014N内的表格,从而利用检索结果所得到的秘密密钥 和予共享密钥。控制帧收发部2014M,与图7所示的中间驱动部1008内的控制帧收 发部1008M之间,进行控制帧的收发。控制帧收发部2014M向多路复用 器2014E发送与高速化引擎的控制相关的特殊帧(以后称作控制帧),而 且从控制帧解析2014D接收控制帧。并且,在设定管理部2014N内的表 格中保存以控制帧所接收的设定参数类。这里,假如通过控制帧收到高速 化处理的开始及结束的命令时,通知给帧解析2014B。在控制帧收发部中 收发以下的信息。(1) SSL会话的对象设备(会话中继装置10)的IP地址或目的地地 址、以及自节点(网关装置20)侧的SSL会话的发送源端口号或发送源 IP地址、以及目的地MAC地址、自节点的发送源MAC地址。(2) 公开密钥(3) 秘密密钥(4) 预共享密钥(5) 高速化处理的开始及结束设定管理部2014N获得来自控制帧收发部2014M的设定信息,并且 将该设定信息按每会话以表格形式进行保存。另外,针对来自加密2014G、 解密2014L、帧解析2014B的请求,用以下所示的(1) (3)的方法来 检索表格,并且返回结果。设定管理部2014N能够由表格来保持多个会话 量的信息,并且根据请求进行检索,返回适当的信息。(1) 针对来自加密2014G的检索请求,返回与检索关键字(会话ID) 对应的会话的公开密钥和予共享密钥。(2) 针对来自解密2014L的检索请求,返回与检索关键字(会话ID) 对应的会话的秘密密钥和予共享密钥。(3)针对来自帧解析2014B的检索请求,当成功时,返回与检索关 键字(MAC地址、IP地址、端口)对应的会话的ID。当失败时返回该旨思。(动作说明)由于第十二实施方式中的动作与第一实施方式中的动作大致相同,因 此省略内容。在本实施方式中由于能够设定多个会话,因此还能够动态地建立SSL 会话或者断开该SSL会话。在该情况下,通过训练(learning)或BGP等 方法来决定会话的建立目的地的IP地址。 (发明效果)接下来,对本实施方式的效果进行说明。如果利用本实施方式中所举出的发明,则在终端21与服务器31之间 能够进行帧的高速传输。这是因为,通过利用高速化引擎,能够排除网关装置20或网关装置 30中的以CPU的软件处理来执行的封装处理及加密/解密处理,并且用高 速化引擎(硬件)来实现这些处理的全部。再有,这是因为,在网关装置与会话中继装置之间的通信中,在会话 中继装置内的中间驱动部和网关装置内的中间驱动部中,使TCP终结,以 使在报头F13的位置不会发生基于TCP的拥塞控制和重传控制,从而避 免TCP over TCP问题的发生。另外,如果利用本实施方式中所举出的发明,则能够较低地抑制高速 化处理用的硬件(高速化引擎)的开发费用或部件费用。这是因为,能够在同一硬件(FPGA/ASIC)中进行加密及解密以及封装。另外,这是因为,能够在价格比较低廉的MAC与PHY间的接口中安 装上述硬件。另外,这是因为,将不易通过硬件实现的TCP处理留给软件,仅对容 易通过硬件实现、并且高速化处理的效果大的SSL的加密/解密和封装通 过硬件来处理。
以上举出优选实施方式及实施例来说明本发明,但是本发明未必被限 定于上述实施方式及实施例,在其技术思想范围内能够进行各种变形而加 以实施。此外,在上述的各实施方式的构成中,对由软件构成的部分和由硬件 构成的部分进行划分而说明,但是由软件及硬件构成的部分不会被限定于 上述实施方式。(产业上的可利用性)根据本发明,能够适用于经由互联网等WAN而能够进行企业的地点 LAN间的企业内部网层中的通信的互联网VPN装置或互联网VPN系统。另外,能够适用于能够从互联网等WAN上的终端在企业的地点LAN 内进行企业内部网层的通信的远程访问装置或远程访问系统。上述的本发明的第一效果能够实现帧的高速传输。这是因为,通过利用高速化引擎,能够排除网关装置中的以CPU(软 件处理)来执行的封装处理及加密/解密处理,并且用高速化引擎(硬件) 来实现这些处理的全部。再有,这是因为,在网关装置与会话中继装置之间的通信中,在会话 中继装置内的中间驱动部和网关装置内的中间驱动部中,使TCP终结,以 使在报头F13的位置不会发生基于TCP的拥塞控制和重传控制,从而避 免TCP over TCP问题的发生。另外,这是因为,在终端21与服务器31之间的通信中,在终端21 的中间驱动部与服务器31内的中间驱动部中使终端21内TCP和服务器 31内的TCP终结,以使在报头F23的位置不会发生基于TCP的拥塞控制 和重传控制,从而避免TCP over TCP问题的发生。另外,这是因为,在网关装置中对加密及解密处理进行硬件化,从而 使SSL处理高速化。本发明的第二效果是能够较低地抑制高速化处理用的硬件(高速化引 擎)的开发费用或部件费用。这是因为,能够用同一硬件(FPGA/ASIC)来进行加密及解密以及封装。另夕卜,这是因为,能够在价格比较低廉的MAC与PHY间的接口中安
装上述硬件。另外,这是因为,将不易通过硬件实现的TCP处理留给软件,仅对容 易通过硬件实现、并且高速化处理的效果大的SSL的加密/解密和封装通 过硬件来处理。
权利要求
1、一种通信系统,其特征在于,在建立TCP会话进行通信的通信装置之间,设置使TCP会话终结的终结单元,上述终结单元构成为接收从上述通信装置的发送侧所发送的TCP分组,将该TCP分组的响应分组向发送侧发送,将独创的连接请求向上述通信装置的接收侧发送。
2、 根据权利要求1所述的通信系统,其特征在于, 上述终结单元构成为接收从上述通信装置的发送侧所发送的上述连接请求,并且向上述通信装置的接收侧发送TCP分组。
3、 根据权利要求1所述的通信系统,其特征在于, 上述终结单元构成为接收从上述通信装置的接收侧所发送的TCP分组的响应分组,将该响应分组的接收确认分组向接收侧发送,将独创的 连接完成通知向上述通信装置的发送侧发送。
4、 根据权利要求1所述的通信系统,其特征在于,上述终结单元构成为采用无拥塞控制的通信方法来进行上述连接请求或上述连接完成通知的通信。
5、 根据权利要求1所述的通信系统,其特征在于,在上述通信装置之间具有加密密钥取得单元,其取得在上述通信装置之间进行加密通信时的加密密钥;和加密单元,其保存上述取得到的加密密钥,如果接收到高速化处理开 始命令,则使用该保存的加密密钥进行在上述通信装置之间所收发的数据 的加密或解密。
6、 根据权利要求1所述的通信系统,其特征在于,上述通信装置的发送侧和接收侧构成在彼此不同的网络上,当为经由 防火墙进行通信的构成时,上述终结单元构成在各网络。
7、 根据权利要求5所述的通信系统,其特征在于,上述加密单元构成为对碎片分割后的数据进行加密,对碎片解除前 的数据进行解密。
8、 一种通信系统,其特征在于, 在进行加密通信的通信装置之间具有加密密钥取得单元,其取得在上述通信装置之间进行加密通信时的加 密密钥;和加密单元,其保存上述取得到的加密密钥,如果接收到高速化处理开 始命令,则使用该保存的加密密钥进行在上述通信装置之间所收发的数据 的加密或解密。
9、 根据权利要求8所述的通信系统,其特征在于,上述加密单元构成为对碎片分割后的数据进行加密,对碎片解除前 的数据进行解密。
10、 一种通信装置,其特征在于,具有 TCP单元,其在建立TCP会话时发送TCP分组;和终结单元,其接收上述TCP分组,将该TCP分组的响应分组向上述 TCP部发送,将独创的连接请求向连接目的地发送。
11、 根据权利要求9所述的通信装置,其特征在于, 上述终结单元构成为当接收到独创的连接请求时,向上述TCP单元发送TCP分组。
12、 根据权利要求10所述的通信装置,其特征在于, 上述终结单元构成为当从上述TCP单元接收到TCP分组的响应分组时,将该响应分组的接收确认分组向上述TCP单元发送,将独创的连接 完成通知向连接目的地发送。
13、 根据权利要求10所述的通信装置,其特征在于, 上述终结单元构成为采用无拥塞控制的通信方法来收发上述连接请求或上述连接完成通知。
14、 根据权利要求10所述的通信装置,其特征在于, 具有-加密密钥取得单元,其取得在进行加密通信时的加密密钥;和 加密单元,其保存上述取得到的加密密钥,如果接收到高速化处理开 始命令,则使用该保存的加密密钥进行在上述通信装置之间所收发的数据 的加密或解密。
15、 根据权利要求14所述的通信装置,其特征在于,上述加密单元构成为对碎片分割后的数据进行加密,对碎片解除前 的数据进行解密。
16、 一种通信装置,进行加密通信,其特征在于,具有 加密密钥取得单元,其取得加密密钥;和加密单元,其保存上述取得到的加密密钥,如果接收到高速化处理开 始命令,则使用该保存的加密密钥进行上述数据的加密或解密。
17、 根据权利要求16所述的通信装置,其特征在于, 上述加密单元构成为对碎片分割后的数据进行加密,对碎片解除前的数据进行解密。
18、 一种通信方法,其特征在于,具有 接收TCP分组的TCP接收步骤;发送上述接收到的TCP分组的响应分组的响应分组发送步骤;和发送独创的连接请求的连接请求发送步骤。
19、 根据权利要求18所述的通信方法,其特征在于, 具有-接收上述发送的连接请求的连接请求接收步骤;和 在接收上述连接请求后,发送TCP分组的步骤。
20、 根据权利要求18所述的通信方法,其特征在于, 具有-接收上述发送的TCP分组的响应分组的响应分组接收步骤; 发送上述响应分组的接收确认分组的接收确认发送步骤;和 在发送上述接收确认分组后,发送独创的连接完成通知的连接完成通 知发送步骤。
21、 根据权利要求18所述的通信方法,其特征在于, 上述连接请求发送步骤和上述连接完成通知发送步骤,采用无拥塞控制的通信方法来发送上述连接请求或上述连接完成通知。
22、 根据权利要求18所述的通信方法,其特征在于, 具有取得在进行加密通信时的加密密钥的加密密钥取得步骤;接收高速化处理幵始命令的步骤;和保存上述取得到的加密密钥,使用该保存的加密密钥来进行在上述通 信装置之间所收发的数据的加密或解密的加密步骤。
23、 根据权利要求22所述的通信方法,其特征在于, 上述加密步骤具有对碎片分割后的数据进行加密的步骤;和 对碎片解除前的数据进行解密的步骤。
24、 一种通信方法,是采用加密通信进行通信的方法,其特征在于, 具有取得在进行加密通信时的加密密钥的加密密钥取得步骤; 接收高速化处理开始命令的步骤;禾口保存上述取得到的加密密钥,使用该保存的加密密钥来进行在上述通 信装置之间所收发的数据的加密或解密的加密步骤。
25、 根据权利要求24所述的通信方法,其特征在于, 上述加密步骤具有对碎片分割后的数据进行加密的步骤;和 对碎片解除前的数据进行解密的步骤。
26、 一种程序,是信息处理装置的程序,其特征在于, 上述程序使上述信息处理装置作为下述单元发挥功能 TCP单元,其在建立TCP会话时发送TCP分组;禾口终结单元,其接收上述TCP分组,将该TCP分组的响应分组向上述 TCP部发送,将独创的连接请求向连接目的地发送。
27、 根据权利要求26所述的程序,其特征在于, 使上述终结单元作为下述单元发挥功能当接收到独创的连接请求时,向上述TCP单元发送TCP分组的单元。
28、 根据权利要求26所述的程序,其特征在于, 使上述终结单元作为下述单元发挥功能当从上述TCP单元接收到TCP分组的响应分组时,将该响应分组的接收确认分组向上述TCP单元 发送,将独创的连接完成通知向连接目的地发送的单元。 29、根据权利要求26所述的程序,其特征在于,使上述终结单元作为下述单元发挥功能采用无拥塞控制的通信方法 来收发上述连接请求或上述连接完成通知的单元。
全文摘要
在网关装置(20)内的中间驱动部(2006)中使TCP(2003)终结,在网关装置(30)内的中间驱动部(3006)中使TCP(3003)终结,在中间驱动部之间用UDP等不进行拥塞控制的方法进行传输。除此以外,在SSL(2002)与SSL(3002)之间建立SSL会话,并完成会话建立,通过这样,通过以太网帧从高速化引擎控制向高速化引擎发送公开密钥及秘密密钥。由此,在以后的终端(21)与服务器(31)之间的通信中网关装置不经由CPU而利用NIC内的高速化引擎进行传输。
文档编号H04L29/08GK101129035SQ20068000639
公开日2008年2月20日 申请日期2006年2月23日 优先权日2005年2月28日
发明者吉见英朗, 榎本敦之, 飞鹰洋一 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1