社区
其它技术问题
帖子详情
如何快速判定tcp包中包含http数据包
guoxd2005
2011-05-09 07:05:09
大家好,
我对tcp协议了解甚少,请问如何快速判定tcp包中是否包含http数据包(我现在使用的办法很蠢,只直接从tcp包中查询http相关的关键字符窜,例如host:, connection等等)?
多谢解答。
...全文
2393
7
打赏
收藏
如何快速判定tcp包中包含http数据包
大家好, 我对tcp协议了解甚少,请问如何快速判定tcp包中是否包含http数据包(我现在使用的办法很蠢,只直接从tcp包中查询http相关的关键字符窜,例如host:, connection等等)? 多谢解答。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mLee79
2013-07-29
打赏
举报
回复
就判断数据的第一行是不是满足HTTP请求的样子就差不多了, 写出正则表达式(随手写的像 (GET|POST|CONNECT)[[:blank:]]+[^[:space:]]+[[:blank]]+HTTP/1.[01](\r\n|\r|\n) ), 转DFA, 有时间复杂度 O(N) , 空间复杂度O(1)的判定方法...
max_min_
2013-07-29
打赏
举报
回复
解析数据,判断http协议特有的一些字符串!
gaorentaba
2013-07-29
打赏
举报
回复
其实就是在一包数据中判断是否有http数据,其实你的办法就是好办法,无非就是这些,判断是否包含http的某些字段,最好先把数据按照"\r\n"分开成几行,然后判断必须的字段是否都在。。。后徐徐图之
赵4老师
2013-04-26
打赏
举报
回复
包内容中很多'<'和'>' ?
donny945
2013-04-26
打赏
举报
回复
程序员小迷
2012-02-14
打赏
举报
回复
不过,tcp包可能会包含http数据包,tcp包头应该有相关类型信息吧,这个不是很确定
楼主看看
程序员小迷
2012-02-14
打赏
举报
回复
参考地址:
http://www.cnblogs.com/ziwuge/archive/2011/09/27/2193431.html
对于判断是否为HTTP报文,目前还没有快速有效的方法。传统的方法依据:
①传送HTTP报文前是否有TCP的三次握手;
②判断数据包中是否含有诸如“GET”、“HTTP/1.1”等关键字。
对于这两种方法,第①点需要一定的空间开销,要判断TCP承载的是否为HTTP报文,需要分配一定的空间存储前3个数据包的相关信息(实际并不需要存储3个数据包的全部内容,但是即便是若干比特的信息,也会增加NPF的负担),这给NPF(NetgroupPacketFilter)的运行速率和存储器带来挑战;
对于第②点,由于HTTP是面向文本的,因此在报文中的每一个字段都是一些ASCII码串,因而各个字段的长度都是不确定的。请求报文中除了“GET”方法外,还有7种常用的方法,如果要一一模式匹配来确定是否是HTTP报文,显然会造成很大的时间开销。此外,响应报文含“HTTP/1.1”(或HTTP/1.0)的版本号,这个字段在请求报文中也有,具体的版本是1.1还是1.0则是不确定的。
因此,综合考虑时间和空间的开销,本文采取模式匹配“HTTP”的方法来判断是否为HTTP报文。具体方法是:捕获到的数据包从TCP的尾部(HTTP的第一个字节)开始匹配“HTTP”,如果匹配成功,则认为是HTTP报文,否则就不是。这种方法存在的问题是:①如果TCP承载的是FTP或SMTP等其他应用层协议,恰好在某个部分也含有“HTTP”字样,则会误判为HTTP报文。但是由于基于HTTP协议的Web服务已经成为Internet的主流,非HTTP协议只占到小部分,因此误判的几率很小。系统测试期间,还未发现此类误判问题,用户界面显示的明文信息表明:确为HTTP协议的请求报文或响应报文。②该方法本身不存在“漏判”,因为所有的HTTP报文都含有“HTTP”字样,而抓到的数据包只要含有“HTTP”字样,就被过滤认为HTTP报文。但是,由于该方法需要一定的时间开销,可能来不及匹配后续的数据包而造成广义上的“漏判”。这个问题通过编写高效的模式匹配算法可以得到一定的改进,但是不能解决根本问题。根本问题在于匹配速度和内核的存储器容量的限制。
【Python编程】Pandas数据清洗与转换技术实战
内容概要:本文深入剖析Pandas在数据清洗领域的核心技术,重点对比DataFrame与Series的数据结构差异、索引对齐机制及缺失值处理策略。文章从数据的读取(read_csv/read_excel/read_sql)出发,详解数据类型推断与显式指定、重复值检测(duplicated/drop_duplicates)的列子集控制、以及异常值(outlier)的统计识别与处理方案。通过代码示例展示melt/pivot的长宽格式转换、merge/join/concat的多表关联策略、以及groupby聚合的transform/filter/apply灵活应用,同时介绍字符串方法(str accessor)的向量化文本处理、时间序列的resample重采样与rolling移动窗口计算,最后给出在ETL流程、数据探索、报表生成等场景下的清洗流水线设计与性能优化建议。 24直播网:hppower.net 24直播网:bxbyby.com 24直播网:m.kangyilawyer.com 24直播网:lnfyjx.cn 24直播网:m.sz-hhkj.com
Python3字符串切片极简用法
Python3字符串属于不可变序列,切片是最高频操作,语法为str[起始下标:结束下标:步长]。下标分为正下标(从左0开始)、负下标(从右-1开始)。切片遵循左闭右开原则,结束下标对应字符不会被截取。默认参数可省略,省略起始下标默认从0开始,省略结束下标默认截取到末尾,省略步长默认步长为1。典型场景:反转字符串直接使用s[::-1],截取末尾5个字符s[-5:]。需要注意字符串不可修改,切片生成全新字符串,不会改动原数据。新手常踩坑:切片下标超出范围不会报错,直接返回空字符串,无需额外做边界判断。 24直播网:m.zhwybhlyy.com 24直播网:m.hbchensen.com 24直播网:szruichenxin.com 24直播网:sjbaijie.com 24直播网:m.kcrubber.cn
【Python编程】Python包发布与PyPI生态贡献指南
内容概要:本文系统讲解Python包从开发到发布的完整流程,重点对比setuptools、flit、hatch、poetry在构建后端、元数据管理、发布自动化上的差异。文章从PEP 517/PEP 660构建系统规范出发,详解pyproject.toml的标准配置(project.dependencies/optional-dependencies)、版本号管理(semantic versioning)的兼容性语义、以及twine的安全上传机制(API token替代密码)。通过代码示例展示README.rst与README.md的PyPI渲染差异、LICENSE文件的SPDX标识、以及CHANGELOG的Keep a Changelog格式规范,同时介绍GitHub Actions的自动化发布工作流、TestPyPI的预发布验证、以及wheel与sdist的分发包格式选择,最后给出在开源贡献、内部私有仓库、企业级依赖治理等场景下的包管理策略与社区协作规范。 24直播网:shqjfwgs.com 24直播网:53mou.com 24直播网:longcai0427.com 24直播网:getzscl.com 24直播网:xcjrhw.com
Python3虚拟环境隔离原理
原生Python全局环境所有项目共用依赖,版本冲突无法共存。虚拟环境复制Python解释器副本,独立维护site-packages依赖目录,项目之间依赖完全隔离,互不干扰。内置venv无需额外安装,轻量化首选;第三方conda适合多版本Python共存。使用规范:每个独立项目单独创建虚拟环境,禁止全局安装第三方库。部署上线必须使用虚拟环境导出依赖,保证开发、测试、生产环境版本一致。 24直播网:www.dingdongda.cn 24直播网:www.cqylqxsc.cn 24直播网:www.xstit.com 24直播网:www.gzlsygs.cn 24直播网:www.slzy120.com
【Python编程】Python消息队列与异步任务处理方案
内容概要:本文深入对比Python异步任务处理的中间件方案,重点分析Celery、RQ(Redis Queue)、Huey在任务队列、结果后端、监控能力上的差异。文章从AMQP协议与Redis列表的原语出发,详解Celery的Worker进程模型、任务路由(routing)与优先级队列配置、以及定时任务(beat scheduler)的crontab表达式定义。通过代码示例展示任务的链式调用(chain)、组调用(group/chord)的MapReduce模式、以及任务重试(retry)的指数退避策略,同时介绍Flower的实时监控仪表盘、Sentry的异常追踪集成、以及任务结果的过期清理(result_expires),同时介绍Dramatiq的Actor模型、ARQ的asyncio原生支持、以及消息队列在微服务解耦中的事件驱动架构,最后给出在高并发任务、定时报表、邮件通知等场景下的队列选型与可靠性保障策略。 24直播网:m.kanchashejigongsi.com 24直播网:nuobeidi.com 24直播网:m.chuanpu-sh.com 24直播网:senwanghb.com 24直播网:csjt97.com
其它技术问题
3,881
社区成员
9,044
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章