社区
其它技术问题
帖子详情
如何快速判定tcp包中包含http数据包
guoxd2005
2011-05-09 07:05:09
大家好,
我对tcp协议了解甚少,请问如何快速判定tcp包中是否包含http数据包(我现在使用的办法很蠢,只直接从tcp包中查询http相关的关键字符窜,例如host:, connection等等)?
多谢解答。
...全文
2390
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报文。但是,由于该方法需要一定的时间开销,可能来不及匹配后续的数据包而造成广义上的“漏判”。这个问题通过编写高效的模式匹配算法可以得到一定的改进,但是不能解决根本问题。根本问题在于匹配速度和内核的存储器容量的限制。
从
TCP
到QUIC:
HTTP
3
数据包
重传机制的演进与优势
本文深入剖析QUIC协议相较
TCP
在
数据包
重传机制上的根本性革新,涵盖基于唯一Packet Number的精准定位、增强型ACK帧设计、流级别并行传输以消除队头阻塞、混合ARQ与智能重传策略组合,以及拥塞控制与重传的协同优化。重点聚焦
HTTP
/3实践中QPACK压缩、不可靠通道及0-RTT对重传效率的提升,凸显其在网络复杂性和实时业务场景下的性能优势。
TCP
协议(面向字节流、粘包、以及相关协议)
本文深入解析
TCP
协议的工作原理,包括其面向字节流的特点、粘包问题的产生与解决方法、异常情况处理,以及与UDP协议的对比。通过理解
TCP
协议段格式、全双工通信、可靠性机制和性能优化策略,读者将全面掌握
TCP
协议的关键特性。
Netty笔记07-粘包与半包(上)
本文聚焦网络编程中
TCP
协议的粘包和半包问题。阐述了粘包是多个
数据包
在接收方无法区分边界,半包是接收的
数据包
不完整。分析了两者产生的原因,如发送方、接收方处理速度及网络状况等,并给出了相应的解决方法,还介绍了滑动窗口、MSS限制和Nagle算法。
Wireshark的
HTTP
请求包和响应包如何对应
本文介绍如何在Wireshark中识别
HTTP
请求与响应的关联,包括通过
TCP
信息、Wireshark内置功能及标记三种方法,帮助
快速
定位
数据包
。
socket网络编程、
http
协议、
tcp
本文对比分析了Socket和
HTTP
协议的传输方式,详细探讨了各自的优缺点及适用场景。Socket适用于高速、安全、实时交互需求高的应用,如游戏、银行系统;而
HTTP
则更适合开发周期短、对实时性要求不高的应用场景。
其它技术问题
3,881
社区成员
9,044
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章