tcp_http抓包分析_编程思路.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
tcp_http抓包分析_编程思路

编程开发tcp 抓包思路 抓包之后过滤条件 tcp and (ip.src==68 or ip.dst==68 ) and tcp.port==6619 此条件针对分析一个端口的交互。 编程关键点已给出,怎么编程抓包就不详述了,这里只讲拿到包之后怎么处理。 过滤得到tcp 的包 然后通过程序分析tcp 的包。 一次http 请求会涉及到客户端的多个端口和服务器的web 端口通讯(80,8080) 没捕获到一个方向的涉及到的端口你都得去开启线程去处理数据。 比如 每个线程都会有如下过程。 这是一次http,get 请求双方主机的的报文分析。 过滤条件为 tcp and (ip.src==68 or ip.dst==68 ) and tcp.port==6619 我们只分析客户端ip 为141 的6619 端口与服务器ip168 的端口8080 的交互分析。 三次握手的过程。 141 客户端 168 服务器 141 先sys 为1 168 回应syn,ack 同时为1 141 ack 为1 连接建立 下面 141 发出get 请求 get 只会有一个tcp 数据包分析出东西来就可以了。 报文总长度程序可以算出 \r\n\r\n 为http 头的可以理解为终止标志。没有数据,只有http 包头。其中的文件名要记住, 我们要创建文件,并把得到的数据写到这个文件里面。 Post 如下图post 的请求就需要计算了。 Post 会给出正文的长度,数据长度。 \r\n\r\n 可惜算出http 头的长度。一般http 应该在第一个tcp 报文中。也就是说 一般post 请求的tcp 报文的第一个包可以拿到post 会在多少字节结束。 http 头的长度+数据长度就是 tcp 需要传输的数据长度。这样就可以检查每个包到达之后的 数据到达了多少。什么时候是tcp 的最后一个包。 回到实验用的报文。 刚才分析到tcp72 号包是一个141 的get 请求。 下面看请求之后的tcp 报文94 号。 94 号包为168 在把数据返回给客户端141。由于返回的数据不能再一个tcp 包中返回给客户 机。他分开了发给客户机。我先说下整体,168 每返回2 个包客户端就回应一个不带任何数 据的包给168 标示我还存在并收到你给我的数据了,你继续发送数据给我。关于这里的交互 过程参考tcp 协议大概的意思就是tcp 包头有一个seq 表示当前tcp 包号。Ack 是我收到你给 我的tcp 包的包号是多少。我的tcp 包头多长。有了这些数据就可以算出,我的数据有多大。 具体参看tcp 协议方面的资料。在此时168 的回应包的ack 都为141 请求时的序列号,那个 序列号中有这次数据流的文件名。 在94 号包里面是有http 报头的,\r\n\r\n 为包头结束。http 回应报文一定有数据长度和类 型。 头长度计算出来了,数据长度也计算出来了。 Tcp 要传输的数据就是http 报文头长度+http 数据长度。这样从168 返回的每个数据报文到 什么时候该结束本次请求的数据到什么时候该结束。 在tcp 报文225 请求的文件发送给客户完毕,这里必须通过上面的方法去算http 报文头+http 数据大小才能知道发送给客户的文件多大。 在225 抓包工具如下图显示的,抓包工具已经帮我们整理了,上面部分是有哪些tcp 报文组 成这个http 回应字节,第二部分是这个http 的报头,第三部分是http 数据。 225 只是把141 请求的数据第一个文件发送141 了,但是tcp 并没有断开。 225 的fin 并不为1 表示连接没断。然后226 发送了一个包告诉168 我收到你的包了,也知 道你发完了。 我们看下一个包329tcp 报文,141 又重新发送了一个请求。ack 为1.并回应。 后面168 就回应141 客户端。 重复上面的步骤。 这里没有抓到tcp 报文有fin 为1 的报文。表示他们一直在保持连接中。 Fin 为1 只表示我没有数据给你了,如果两边都收到fin 为1 那么他们的tcp 连接就真正的断 开。 浏览器关掉就应该会抓到fin 为1 的包了!

文档评论(0)

wannian118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档