您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 工作进展报告 贺俊铭
姓名:贺俊铭工作进展报告2选题背景DataCenterinternet网络设备故障应用程序实现bug端结点瓶颈网络异常与网络中多种因素有关3总体架构基于TCP流各状态量的分类提取根据不同TCP状态量的异常检测基于异常TCP流时序关联分析的异常原因定位RTT窗口大小丢包数重传次数…TCP流状态量TCP流TCP流TCP流TCP流检测网络问题发送端问题接收端问题分类时间异常流关联问题分类…基于TCP协议的异常流量检测与分析4进展情况•基于TCP流各状态量的分类提取•状态量的保存TCP捕获Mongo数据库分类内存交互式状态量异常检测程序数据库支持PYTHON,JAVA,C++,PHP等等编写Wincaplibpcap5进展情况数据包...Wincap,libpcap采集器TCP包过滤缓冲区TCPTCPTCP..TCP包解析源端IP目的IP窗口大小序列号确认号时间戳..源端IP目的IP源端IP目的IP...连接指定数据库集合集合检索集合名...存入数据库集合内存6TCP流各状态量的分类提取Libpcap的优势Windows环境下,使用WinPcap,Liunx环境下,使用Libpcap。Libpcap包捕获机制就是在数据链路层加一个旁路处理,当一个数据包到达网络接口时,libpcap首先利用已经创建的Socket从链路层驱动程序中获得该数据包的拷贝,再通过Tap函数将数据包发给BPF过滤器实时过滤获取TCP协议数据包,完全不影响正常的网络数据传输。7TCP流各状态量的分类提取提取数据包中的流量状态信息,现在能直接从包中获取的信息包括目的地址、源端地址、目的端口号、源端端口号、窗口大小、序列号、确认序列号、到达时间戳等。想要获得的信息,RTT、重传数。定义了结构体来存储所有TCP信息状态量实时获取并存储,状态量的存储以目的地址、源端地址来标识每一个数据包并加入已生成的链表存储,存入内存中8TCP流各状态量的分类提取typedefstructtcp_packet_save{ip_addresssaddr;//源地址ip_addressdaddr;//目的地址intsum_packet;//总包数intloss_packet;//丢包数(重传包数)packet_message*p_m;存储源地址和目的地址一样的包的关键信息tcp_packet_save*next;//指向下一个结构体}tcp_packet_save;typedefstructpacket_message{u_intseq;u_intack_seq;u_shortwindow;intrtt;time_tlocal_tv_sec;/*秒*/time_tlocal_tv_usec;/*纳秒*/packet_message*next;}packet_message;数据结构9短时间抓取流经网卡数据包,只显示了一部分状态信息(目的地址,源端地址,序列号,窗口大小,包数))10MongoDB设计实现MongoDB是一个介于关系数据库和非关系数据库之间的产品,它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:•面向集合存储,易存储对象类型的数据。•模式自由。•支持动态查询。•支持完全索引,包含内部对象。•支持复制和故障恢复。•使用高效的二进制数据存储,包括大型对象(如视频等)。•自动处理碎片,以支持云计算层次的扩展性•支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。•文件存储格式为BSON(一种JSON的扩展)•可通过网络访问11MongoDB设计实现1.命名空间的长度:在每一个命名空间中,包括数据库名,集合名称在内,不得超过123KB。2.命名空间数量的限制:命名空间数量的限制为命名空间的大小除以628.例如:一个16mb的命名空间能提供约24,000个命名空间,单个的集合名称或者索引名称均为一个命名空间。3.命名空间的文件大小:命名空间的文件不能超过2047MB.默认的命名空间大小为16MB,不过你可以通过nsSize参数来配置命名空间的大小。数据库与集合的限制12MongoDB设计实现check=0;BSONObjp=BSONObjBuilder().append(win,tcp-window).append(local_tv_sec,time1).append(local_tv_usec,time2).append(seq,tcp-seq).obj();colleclist=conn.getCollectionNames(db);for(iter=colleclist.begin();iter!=colleclist.end();++iter){if(com==*iter){check=1;pconn.insert(com,p);}}if(check==0){com=db+.+addr;conn.createCollection(com);conn.insert(com,p);}源端IP与目的IP对为集合名,每次数据插入数据库,都会核对是否已存在此集合,若没有此集合,就新建集合。13MongoDB设计实现本机的MongoDB数据库集合每一个数据库存放固定时间内的所有TCP状态量每一个集合存放同一源端IP与目的IP的TCP状态量14一个数据库中的集合15一个集合中的文档16难点RTT获取当接收端和发送端同时支持TCP时戳选项时,发送端记录在TCP包头选项内的时戳可以被接收端随响应反射回来,发送端就可以利用响应报文的反射时戳计算出某个TCP包的即时往返传输时间。接收端应答不反射时戳时,判断接收端是否已经收到了一个接收窗口所期待的数据,把这个时间间隔作为一个RTT。这种方法有明显的缺陷,就是RTT偏大,发送端cwnd通常小于接收端awnd;在丢包时,RTT测量也会偏大,因为丢包时,收取一个满窗的数据可能要等很久。17难点丢包判断丢包时会重发,记录最近tcp包的SeqNumber,AckNumber相同的就是重发的包。TCP流数据量负载压力数据捕获与数据库存储能承受多大的数据流量压力。18TCP捕获Mongo数据库分类内存交互式状态量异常检测程序数据库支持PYTHON,JAVA,C++,PHP等等编写Wincaplibpcap下一步计划良好的人机交互19基于TCP流单一状态量的异常提取在单位时间内,某两个IP之间某一TCP状态量的值超出阈值的比例达到某一值,可判定两个IP之间此状态量异常。下一步计划RTT窗口大小重传数…源端IP目的IP经过T时间与阈值对比源端IP目的IPRTT超过阈值数窗口大小超过阈值数重传数超过阈值数……源端IP目的IP超过阈值的百分比高于某一值RTT异常超过阈值的百分比低于于某一值重传数正常20下一步计划基于TCP流多个状态量的问题分类根据两个IP之间多个状态量异常,来分类两个IP之间的网络问题原因RTT窗口大小丢包数…分类网络问题发送端问题接收端问题…基于异常TCP流时序关联分析的异常原因定位关联分析方法:如皮尔逊相关系数,频繁模式21谢谢各位老师同学!
本文标题:工作进展报告 贺俊铭
链接地址:https://www.777doc.com/doc-3774189 .html