版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、TCP分离器:基于可重构硬件的TCP/IP流量监控David V. Schuehler John Lockwood应用研究实验室 ,华盛顿大学dvs1, 摘要TCP / IP是互联网上最常用的协议。它利用网络为几乎所有的应用程序提供了一个可靠的传输。这些措施包括 Web 浏览器,FTP、 Telnet、 Secure Shell 和其他应用程序。新型的路由器需要对流过此网络设备的TCP / IP数据流进行检查。本文介绍了TCP的分离器,一种基于可重构硬件的解决方案,用于在多千兆线速下对TCP / IP流进行分析和处理。一致的字节流通过TCP -分离器传
2、递到每一个TCP / IP连接的客户端应用程序。为了保持一个负载小,效率高,并且能够处理以千兆线速传输的几乎无限数量流量的设计,系统使用非被动流处理算法。1 动机高速网络交换机,目前业务普及的是OC - 48(出2.5Gb / s)的线路速率,而较快的OC - 192(10Gb / s的)和OC - 768(的40Gb / s)网络则还在起步阶段。与此同时,传输的数据流的数量还在持续增加。关于互联网通讯故障的研究指出,因特网上数据包的 85%以上都是在传输控制协议 (TCP) / 基于互联网协议 (IP)818。 新类型的网络处理系统要求对TCP / IP头及其有效载荷都能进行扫描和有效的处理
3、。为了使有效载荷扫描率很高,就需要一种在硬件中处理TCP / IP数据的新方法。1.1 TCP/IP 监视器的相关工作只要对网络和协议进行过监控,协议分析仪和数据包捕获程序也就工作过。这些工具提供的捕捉和保存大容量的网络数据的功能。方案如tcpdump允许TCP数据包捕获和存储13。这些工具在监测低带宽速率的数据时工作正常,但这些方案的性能是有限的,因为他们是在软件中执行。因此需要对这些工具进行后处理,以便重建TCP数据流。HTTPDUMP是用来捕捉和存储以网络为基础的超文本传输协议(HTTP)通信17,但由于处理HTTP流量所带来的额外的过滤的逻辑,这比tcpdump需要更多的处理,运行速度
4、也因此更慢。PacketScope开发的ATT上,能够监视通信量大得多的网络,但仍然依靠tcpdump的能力来执行包捕获1。BLT利用了PacketScope执行链接线速度超过100Mbps的4的HTTP监视。这个工具并不能确保所有的数据包都被处理,而是试图通过捕捉高比例的HTTP流量来获取有关统计结果互联网协议扫描引擎是另一个基于TCP / IP监视器5的软件。通常,只有头信息被捕获并写入一个日志文件中的TCP流内容。该方案还有性能的限制,从而不能进行高带宽流量的监测。基于群集的在线监测系统与Web请求相关时能够更好地捕获数据 12。当多个分析引擎并行工作时,其他系统的性能会得到相关改善,但
5、在100Mbps的网络上即使同时运行八个分析引擎,数据流量也不能一直维持监控状态。这些解决方案都不能在超过1 Gbps的数据速率的高速网络环境下工作,也不能保证对网络上每个字节的数据的处理。一个能跟踪能够重组缓冲区的引擎的TCP状态已被Necker等人14开发。本研究的重点是检测入侵并跟踪TCP / IP处理单个连接的状态。有限缓冲区也进行重组。该解决方案采用了类似的硬件环境,并能够以等同于TCP的分配器的线速率处理数据。通过实例化多个处理电路,最多30个TCP / IP连接,可以在一个现场可编程门阵列(FPGA)上被同时监控。1.2 基于硬件的TCP / IP处理一个实现通信终端的完整TCP
6、 / IP协议栈硬件将非常有益。不幸的是,有些问题使得在硬件上全面实施一个TCP / IP协议栈显得不切实际。这些问题包括:(1)众多TCP定时器的需要,(2)用于重组缓冲器的大型存储器的需要,以及(3)需要支持大量的连接。一个支持TCP流量监测的电路已经被开发了。而不是作为一些TCP连接数的连接端点代理,TCP分离器通过网络硬件传递来监视所有的TCP流量。此技术在实施TCP协议端点上有许多优势。为了能够提供给客户端应用程序一种数据设置的可靠传输,TCP连接只需要确定,通过监测数据的设备进行传输。保证交付的大部分工作是由TCP端点管理,而不是由网络上的硬件逻辑。这消除了需要在可重构硬件实现一个
7、复杂的协议栈,因为转播逻辑仍然是连接端点上,而不在活动网络交换机上。2背景现代现场可编程门阵列(FPGA)与一百万门容量的ASIC大约等同,有几百千字节的片上内存,并且以50MHz至200MHz的速度工作。通过放置在一个高速网络交换的数据路径上, FPGA可用于实现网络处理功能。在华盛顿大学的应用研究实验室(ARL)已研制成熟一个作为高速网络研究平台的华盛顿大学千兆交换机(WUGS)19。这种硬件,随着现场可编程端口扩展(FPX),已作为试验平台使用于此项目11。FPX所开发的分层协议的封装3 的组件,已被用来作为这项研究的基础。这些封装已被开发来处理可编程逻辑的高层次的数据包。这些封装包括A
8、TM 单元格封装,一帧的AAL5封装,IP封装和UDP封装。这种封装器允许客户端应用程序通过FPGA硬件发送和接收数据包。利用本研究中的单元格、支架和IP封装,一个名为TCP分离器的TCP流量监测已被实施。TCPIP分离器的名称来源于的TCP字节流分割成两个独立的方向,如图1所示。一个流被传递到本地主机上的客户端应用程序,而另一个被转发到远程端点。.3设计要求TCP -分离器被设计成一个轻量级,高性能的电路,它包含一个简单的客户端接口,可以监控的流量几乎没有限制。设计应有所权衡,以在今天的硬件的实际范围内实现这些结果。TCP分离器发展面临的一些问题有:(1)丢帧处理,(2)处理数据包重新排序,
9、(3)保持了大量的流动状态,(4)以线路速率进行数据处理,(5)尽量减少硬件门数。为了克服这些挑战,为了实现如何通过网络交换数据流,必须要有一些限制。TCP分离器需要在通过网络中所有被监控的数据包流来定位。与被监控的TCP/IP连接关联的所有数据包必须通过正在监测的网络节点。如果执行监视的交换机只处理的TCP数据包的一部分,它便无法向客户端应用程序提供从一个连接来的持续的TCP字节流。在一般情况下,对于边缘路由器,这个条件是成立的,但对互联网的内部节点并非如此。这种要求也可以所在的网络被设计为以某种方式传递数据流的专用网络上执行。4 非被动解决方案一个试图监视大量TCP / IP流所导致的问题
10、是,这种系统将需要大量的内存。TCP支持的最大窗口比例因子是,这将导致最大的窗口将达到1 GB的大小9。在最坏的情况下,为了重新组合在每一个TCP连接方向的数据包,这种大小的内存将是必须保证的。一个对128k 连接进行双向监控的高速交换机将需要256TB级的高速随机存取存储器(RAM)。即使人们假定TCP窗口大小限制为1Mb,系统仍然需要256GB的内存去对上述的128K连接进行双向监视。这种过高的内存量不仅不现实,而且还会导致其他轻量级的设计考虑。如果为特定流量所有的帧有序地通过交换机,那么就可以不需要重组缓冲区。由于不能保证TCP帧将按顺序穿越网络,当数据包乱序时将要一些处理。通过主动丢弃
11、乱序的数据包,可以直接为客户端应用程序生成一个TCP字节流,而不需要重组缓冲区。如果检测到有数据包丢失,后续的包都会被不停地丢弃,直到丢失的数据包被重传。这将确保通过交换机的是有序数据包流。当一个数据包是上游的监测节点丢失时,这种设计的特点将迫使TCP连接工作在一个 前往往回重发 的滑动窗口模式。事实证明,这种前往往回重发的转播策略正广泛应用于整个互联网的机器上。许多实现了的TCP,包括使用Windows 98,FreeBSD 4.1和Linux 2.4 7,都使用这种正常返回重发的转播策略。对吞吐量有好处还是损害是依赖于具体正在使用端点的特定的TCP实现。在接收TCP堆栈执行前-往回- N的
12、滑动窗口模式的情况下,通过消除将被接收端丢弃的数据包,主动丢弃帧将实际上会提高整个网络的吞吐量。在利用选择性重传并且网络上的数据丢失比例较高的终点的情况下,TCP分离器的操作有可能会加剧数据包丢弃的问题,并且使连接不可用。5 架构在图1中可以看出通过TCP分离器的数据流的高级视图。 TCP分离器一直在FPGA硬件内实现,并符合现有的FPX封装框架。 IP帧从包含在IP封装中的IP协议层进入TCP分离器。入站帧进入TCP分离器,并进行分类,校验和和缓存。出站IP帧传送回IP封装以被发送到下一跳路由器。这个TCP字节流也被传递到网络中每个TCP流客户端应用程序在TCP -分离器由两个逻辑部分组成。
13、第一种是TCP输入模块,它处理了IP帧的进入。TCP 分离器大部分的处理工作都由本部分完成。第二部分称为TCP输出模块,负责数据包路由和与传递到客户端应用程序类似的到出站IP堆栈得帧传递。5.1输入处理输入帧处理包含如图2所示的6种不同的组成部分。流分类,校验和引擎,输入状态机,控制FIFO和帧FIFO,都对从IP协议封装接收到IP数据包进行处理。输出状态机负责处理控制FIFO和帧FIFO出来的和输出处理部分的定时数据。IP帧在同一时间被移入32位的输入部分。 TCP校验和计算则利用了每个数据字中的相应位。输入数据也存储在框架FIFO中,使TCP校验结果可以随着IP数据包的开始被传递到输出部分
14、。一旦TCP校验和计算完毕,当前帧信息就被写入到控制FIFO中。此数据包括校验和结果(通过或失败),流量识别,流量信号的开始和结束,一个TCP帧的指示和一个表明该帧是否应转发的信号。要求有控制FIFO,以保持更小的帧的状态信息,同时较大的帧的进程仍受帧FIFO的时钟控制以作出站处理。输出状态机负责处理控制FIFO和帧FIFO出来的和TCP分离器输出处理部分的定时数据。一旦检测到非空的控制FIFO,输出状态机为从帧FIFO流出的下一帧启动时钟。随着从控制FIFO出来的控制信号,帧数据退出了TCP的输入部分。5.2流分类一个简单的流分类器是专为可高速运行,具有最小的硬件复杂性的TCP分离器设计。流
15、量表是一个256K的元素数组,这个数组在低静态延迟RAM芯片中。表中的每个条目都包含33位的状态信息。包含源IP地址,目的IP地址,源TCP端口,目标TCP端口的18位哈希表作为进入流量表的索引。检测到TCP FIN标志标志这一个TCP流和该特定流的哈希表项被清除结束。这个流分类中的哈希表冲突目前并不处理,造成对来自不同流的数据包进行处理,好像它们是一个单一的连接。其他分类可用于识别TCP分离器的流量。 SWITCHGEN是一个可以将封包分类规则转化为可重构硬件的电路设计工具 10。递归流分类(RFC)的算法是另一种高性能的分类技术,它通过消除冗余来优化6规则。这些研究项目都是开发流分类来进行
16、每秒30M到100M的分类。Prakash等提出了一个解决方案,它利用的流水线SRAM对数据包进行分类查找的15。此技术可支持一亿包每秒的分类查找。TCP -分离器的设计不强加给利用的流分类技术任何限制,并且可以被任何流量分类使用。5.3输出处理TCP -分离器的输出处理部分负责确定如何处理一个数据包。有三种可能的选择。数据包可以是:(1)仅传递到出站IP层,(2)同时传递到出站IP层和客户端应用程序,或(3)被丢弃。处理数据包的规则如下:所有非TCP包被发送到出站IP堆栈。 所有TCP校验和无效的数据包将被丢弃。 所有的序列号小于或等于当前预期的序列号的TCP包,发送到出站IP堆栈。所有序列
17、号比当前预期更大的TCP数据包将被丢弃。 所有的SYN数据包被发送到出站IP堆栈。所有其它的数据包都被同时转发到出站IP协议栈和客户端应用程序。5.4客户端接口客户端接口为应用电路提供了一个简单的硬件接口。只有数据是有效的,校验和正确的,并对每个特定的流程是有序的,才能被复制到客户端应用程序。这允许客户端完全处理从TCP连接传来的持续字节流。与启动的报头信号一起,所有数据包头移入一个客户端应用程序,使客户可以提取这些头信息。这种方法消除了存储头信息的需要,但仍允许客户端访问这些数据。客户端应用程序不位于网络数据路径中,因此并没有引起任何穿越到网络交换机封包的延迟。这允许客户端应用程序可以任意复
18、杂而不会影响到分离器的吞吐率。6结果TCP分离器已被作为一个FPGA模块在Xilinx中实现。该电路已被合成工作在101 MHz,以能够在FPX平台上以完整的OC - 48线速度处理。设计中的关键路径包括用来计算TCP校验和的16位运算器。此TCP -分离器实现规模小 - 它只采用了赛灵思的FPGA XCV1000E 2的资源。一个完整的解决方案,其中包括TCP的分离,互联网协议包装,和一个简单计算TCP数据字节数示例客户端应用程序,仅需要FGPA21的总资源。 TCP的分离也只有7个时钟周期的流水线延迟,它引入了一个总延迟为70 ns的数据通路。为了避免误码帧转发,TCP的分离增加了一个存储
19、转发延迟,以便为计算和验证TCP校验和的时间。7未来工作一些关于提高TCP分离器的吞吐量的性能改进的计划有支持OC - 768线速的意图。为了实现这一目标,额外的流水线阶段和FPGA提供的并行处理和将会被尝试。在目前的执行情况,分类分配最大值2个内存来访问每个数据包。鉴于TCP分离器输入数据的长度为32位(4字节),并假设64个字节的最小长度的数据包,最小的操作时间为16个时钟周期。在这段时间内,8个 TCP分离器引擎可以实现并行运行,并在每个时钟周期执行一个的内存访问。通过利用平台上的FPX两个静态RAM模块,可以设计一个解决方案,采用16 个TCP分离器引擎,每个都以101MHz运行,这将
20、以51Gb/s的速度处理数据。这提供了足够的带宽,保证能够监测工作在OC - 768线速的所有TCP / IP流。计划的另一个改进是少量的数据包重组缓冲区增加。这些缓冲区将支持的IP碎片重组和TCP数据包以提供一个被动的监控解决方案。改进的流量分类还计划消除该哈希表冲突的问题。8结论一个TCP / IP网络监控组件,称为TCP分离器,已发展到提供给客户端应用系统一个一致的TCP数据流。本研究本身在以下方面有别于其他相关的工程:它可由可重构的硬件实现。 它处理数据包的线路速率超过3吉比特。 它有对256K的TCP流同时进行监测的能力。它为每个TCP流客户端应用程序提供了一个一致的字节流。 它能够
21、实时处理数据。 它消除了大重组缓冲区的需要。TCP分离器已在一个Xilinx Virtex 1000E - 7 FPGA合成,并具有后期布局布线频率101MHz和相应3.2吉比特每秒的吞吐量。示例应用程序已经在利用模拟TCP数据包的硬件成功测试。该电路是在FPX平台上研发的模块,但可以很容易地移植到其他基于FPGA的数据包处理系统。参考文献1 N. Anerousis, R. Caceres, N. Duffield, A. Feldmann,A. Greenberg, C. Kalmanek, P. Mishra, K. Ramakrishnan,and J. Rexford. Using
22、the AT&T Labs PacketScope forInternet Measurement, Design, and Performance Analysis.2 F. Baboescu and G. Varghese. Scalable packet classification.In ACM Sigcomm, August 2001.3 F. Braun, J.W. Lockwood, and M.Waldvogel. Layered protocolwrappers for internet packet processing in reconfigurablehardw
23、are. In Proceedings of Symposium on High PerformanceInterconnects (HotI01), pages 9398, Stanford,CA, USA, Aug. 2001.4 A. Feldmann. BLT: Bi-Layer Tracing of HTTP and TCP/IP.WWW9 / Computer Networks, 33(1-6):321335, 2000.5 I. Goldberg. Internet Protocol Scanning Engine. iang/isaac/ipse.html.6 P. Gupta
24、 and N. McKeown. Packet Classification on MultipleFields. In ACM Sigcomm, 1999.7 A. Gurtov. Effect of delays on tcp performance. In Proceedingsof IFIP Personal Wireless Communications 2001, Aug2001.8 IETF. RFC793: Transmission Control Protocol., Sep 1981.9 V. Jacobson and R. Braden. RFC1072: TCP Ext
25、ensions forLong-Delay Paths. ,Oct 1988.10 A. Johnson and K. Mackenzie. Pattern Matching in ReconfigurableLogic for Packet Classification. In ACM CASES,2001.11 J. W. Lockwood. An open platform for development of networkprocessing modules in reprogrammable hardware. InIEC DesignCon01, pages WB19, Sant
26、a Clara, CA, Jan.2001.12 Y. Mao, K. Chen, D. Wang, and W. Zheng. Cluster-basedonline monitoring system of web traffic. In Proceeding ofthe Third International Workshop on Web Information andData Management, pages 4753. ACM Press, 2001.13 S. McCanne, C. Leres, and V. Jacobson. tcpdump., 1998.14 M. Necker
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年社会服务合作合同
- 2024事业单位人事管理系统升级与维护服务合同2篇
- 2024年版智能家居系统集成与销售合同
- 2024年石油化工生产线改造合同标的及工程进度安排
- 2024年环保设施建设运营外包合同
- 2024年房地产投资合同风险防控全攻略3篇
- 2024年标准版全款购车法律合同范本版
- 统计工作制度及职责
- 亲友间购车贷款协议书的规范
- 政府采购(工程类)项目风险控制合同
- 旅游景区总经理招聘协议
- 《数据结构课程设计》赫夫曼编码实验报告
- 公共关系理论与实务教程 教案-教学方案 项目8 公共关系专题活动管理
- 中医内科学虚劳培训课件
- 2024广东省建筑安全员A证考试题库附答案
- 【MOOC】劳动与社会保障法学-西南政法大学 中国大学慕课MOOC答案
- 西安电子科技大学《人工智能概论》2021-2022学年第一学期期末试卷
- 2024年建设银行个人住房贷款标准协议模板一
- 3、2024广西专业技术人员继续教育公需科目参考答案(99分)
- 2024版房屋市政工程生产安全重大事故隐患判定标准内容解读
- 期末 (试题) -2024-2025学年人教PEP版(2024)英语三年级上册
评论
0/150
提交评论