基于异步I/O模型的双机TCP代理的研究与实现

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:zc81065442
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:一些特殊领域的应用对于性能要求很高,而通用单机TCP代理不能满足需求。文章分析了TCP代理的实现机制,借鉴TCP连接管理有限状态机、以异步I/O模型研究和实现了双机TCP代理,并将其应用于一个安全网关项目,取得良好效果。
  关键词:套接字;异步I/O模型;有限状态机
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)33-1329-03
  
  The Research and Implementation of Double Entities TCP Proxy Base on Asynchronous I/O Model
  ZHAO kun, WANG Bao-sheng
  (Computer College, National University of Defense Technology, Changsha 410073,China)
  Abstract: General single entitie TCP proxy can’t satisfy the requirements for high performance in some special applications. By analyzing the implementation mechanism of TCP proxy , we research and implement two entities TCP proxy structure model base on asynchronous I/O model by referring to Finite State Machine of TCP connection management. It has been applied to a secure gateway project successfully.
  Key words: socket; asynchronous I/O mode; FSM
  
  1 引言
  TCP代理是建立在现代通信网络技术和信息安全技术基础之上的应用性安全技术,已经越来越多地应用于专用网络与公用网络的互连环境之中,尤其以接入Internet网络为最甚。TCP代理是TCP/IP协议应用层上的一种代理服务软件,满足下列条件:接收并解析客户端的请求;创建到服务端的新连接,并转发客户端的请求信息;接收服务端反馈的信息;发出或解释服务端的响应并将该响应传回给客户端。TCP代理直接与TCP层交互,切断内外网间的TCP连接,将一条连接分为两断,同时阻断传输层TCP网络协议,将源数据包中的数据拷贝下来,通过应用层过代理转发实现数据摆渡。
  本文在研究和比较传统TCP代理模型的基础上,提出了基于异步I/O模型的双机TCP代理,提供了可靠的端到端的数据传输。并设计与实现一套原型系统。
  2 双机TCP代理的结构模型
  单机TCP代理:客户端和服务端建立的连接都是通过同一个代理服务器完成。类似图1中的客户端服务器B既要和外网A(客户端)建立TCP连接,又要和内网D(服务端)建立TCP连接。这样的结构本身存在着一些缺陷:1) 内外连接都是TCP/IP协议,TCP/IP协议的漏洞带来的风险。2) 单机代理系统自身体系结构使内网存在受外部攻击的危险。
  双机TCP代理结构可以有效地克服单机TCP代理的弱点。如图1所示:代理服务器分别与内外网交互,代理服务器双机之间用内部专用通道进行数据交换。由外网到内网的一次访问经过了客户端A到客户端服务器B的TCP连接AB,客户端服务器B到服务端服务器C的专用通道连接BC,服务端服务器C到服务端D的TCP连接CD。外网客户端和内网服务端由这3个连接互联,TCP代理则控制和管理这3个连接的建立、数据转发和断开。
  
  图2 双机TCP代理有限状态机
  
  双机TCP代理结构可以有效地克服单机TCP代理的弱点:1) 外网和内网在物理上是隔离的,阻断网络的直接连接。2) 阻断网络的逻辑连接,由于TCP/IP的协议必需被剥离,将裸数据通过内部TCP报文专用通道传递。3) 数据都是双机两级代理完成,两级代理之间是隔离的。4) 内外代理之间只传输裸数据,不具备攻击或对网络安全有害。
  3 双机TCP代理状态机研究
  图2直观的反应了图1所示的双机TCP代理结构模型中客户端服务器B和服务端服务器C各自代理状态迁移:
  1) 双机TCP代理连接状态迁移:客户端和服务端
  客户端服务器B监听到所代理端口的外网A发起的TCP连接请求,建立AB连接,客户端服务器B向C发送建立内部专用通道BC连接请求,若接收C应答成功,客户端服务器B则成功建立内部专用通道BC连接。
  服务端服务器C接收到B发送的内部专用通道CB连接请求,服务端服务器C向B发送连接建立成功应答,服务端服务器C建立内部专用通CB连接,服务端服务器C向内网D发起TCP连接请求;若应答成功,服务端服务器C建立CD连接。
  2) 双机TCP代理数据交换状态迁移:
  数据传输方向A->B->C->D:服务器B在(AB r ok BC w ok)状态:连接AB接收数据到缓冲区AB_buf[],若缓冲区AB_buf[]有数据,连接BC通过内部专用数据通道发送缓冲区AB_buf[]数据到C;服务器C在(CB r ok CD w ok)状态:连接CB接收内部专用数据通道数据到缓冲区CB_buf[],若缓冲区CB_buf[]有数据,连接CD发送缓冲区CB_buf[]数据到D。
  数据传输方向D->C->B->A:服务器C在(CB W ok CD R ok)状态:连接CD接收数据到缓冲区CD_buf[],若缓冲区CD_buf[]有数据,连接CB通过内部专用数据通道发送缓冲区CD_buf[]数据到B;服务器B在(AB w ok BC r ok)状态:连接BC接收内部专用数据通道数据到缓冲区BC_buf[],若缓冲区BC_buf[]有数据,连接AB发送缓冲区BC_buf[]数据到A。
  3) 双机TCP代理连接断开状态迁移
  连接AB断开:服务器B在(AB r ok BC w ok)状态:连接AB接收到外网A的fin请求,连接BC发送结束内部专用通道请求到服务器C,连接BC断开;服务器C在(CB r ok CD w ok)状态:连接CB接收到服务器B发的结束请求,连接CB断开,连接CD发送fin请求到内网D,连接CD断开。
  连接BC断开:服务器B在(AB w ok BC r ok)状态:连接AB发送fin请求到外网A,连接AB断开;服务器C在(CB r ok CD w ok)状态:连接CD发送fin请求到内网D;连接CD断开。
  连接CD断开:服务器C在(CB W ok CD R ok)状态:连接CD接收到内网D的fin请求,连接CD发送结束内部专用通道请求到服务器B,连接CB断开;服务器B在(AB w ok BC r ok)状态:连接BC接收到服务器C发的结束请求,连接BC断开,连接AB发送fin请求到外网A,连接AB断开。
  
  4 异步I/O驱动框架下双机TCP代理的实现
  4.1 异步I/O驱动框架select轮询机制
其他文献
摘要:该文简要介绍了SQL注入攻击的原理,并针对SQL注入的方法,给出了SQL注入攻击的防御方法。  关键词:ASP;SQL注入;防范技术;网络安全  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)27-1996-02  Protective Artifice for SQL Injection Based on ASP Website  ZHANG Hao-yu,L
摘要:XML数据库是数据库研究的热点,本文首先简要介绍了XML技术及其特点和优越性,详细分析和介绍了基于XML技术的数据库管理系统的建立、存储机制、传输技术、查询等关键技术。  关键词:XML;数据库;存储;查询  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)09-11578-02    Application of XML Technology in Datab
摘要:该文将无线局域网同蜂窝网络(以GSM-R为例)在功能结构、利用能力、切换性透明性等方面进行比较分析,阐明WLAN应用于快速公交所具有的通信优势,并对BRT无线通信系统构架、网络安全等进行简略说明。  关键词:无线局域网(WLAN);快速公交(BRT);蜂窝网络;GSM-R;网络安全  中图分类号:U491;TP393文献标识码:A文章编号:1009-3044(2008)27-1892-03 
谭昌镕  1933年12月生,斋号没名堂,四川成都人。四川省人民政府文史研究馆馆员。中国戏剧家协会会员、中国舞台美术学会理事、四川中国画研究院院长、四川省巴蜀诗书画研究会副会长、四川省政协书画研究院副院长。出版有《谭昌镕画集》《谭昌镕的艺术》《谭昌镕画鸡》等。  一位画家的“写照”,大多是围绕画家的艺术成就、荣誉和影响来做文章,把画家的作品风格、艺术独创、画坛地位及深远影响淋漓尽致地展现出来,不吝
摘要:现在,随着计算机运算速度越来越快,java指令集的优化,这些发展使得java在实时监控的应用成为可能。Servelet是Sun公司在Web平台的开发产品,它采用的是B/S结构。Web的访问非常方便,如果把监控系统建在Web平台上,将有助于监控的范围扩大,同时增强监控系统的实时性。  关键词:Servelet;B/S;Web;监控系统   中图分类号:TP393文献标识码:A文章编号:1009
摘要:描述了将启动代码移植到基于S3C2410处理器目标板上的方法与过程。首先介绍了目标平台和Linux,接着介绍了交叉编译环境的建立原理,着重介绍了BootLoader的架构和功能,给出了启动代码vivi的配置和编译过程。  关键词:嵌入式;S3C2410;Linux;交叉编译;启动代码vivi  中图分类号:TP338文献标识码:A文章编号:1009-3044(2008)27-1876-03
玉兰花开寄语四川赴鄂医卫勇士行草153cm X 42cm 2020年   伏魔博楚汉,未赏应春姿。   已乞梅妃许,花开返蜀时。  程峰  1948年12月生于成都。四川师范大学艺术学院教授、碩士研究生导师、美术学硕士点负责人。四川省人民政府文史研究馆馆员,四川省政协书画研究院名誉副院长,四川省张大千艺术研究中心学术委员,四川省非物质文化遗产保护委员会专家委员,四川致公书画院副院长,锦江区书法家协
摘要:在日益激烈的市场竞争,超市企业需要通过有效的管理不断提高效率。超市管理的优化也就成为提高生产经营效率的一个重要途径。本论文以商品采购和库存管理为重点,描述了两个子系统的模块结构设计及实施过程中的技术要点,实现超市的商品库存管理、查询管理及系统数据维护等功能。同时,还对决策支持及库存余额管理等做了设计。本系统采用DELPHI 7.0版本创建。  关键词:超市;数据库;库存管理  中图法分类号:
摘要:本文主要介绍运用Microsoft Excel2003设计语音点名软件的方法。  关键词:Excel;点名  中图分类号:TP311.52文献标识码:A文章编号:1009-3044(2008)24-1236-03  The Design About Vocal Software for Call-over Based on Excel  ZOU Lai-zhi,LI Hong-jing,SH