wireshark抓包tcp四次挥手_wireshark抓包数据怎么看

wireshark抓包tcp四次挥手_wireshark抓包数据怎么看本文内容有以下三个部分:wireshark过滤规则osi模型简述tcp三次握手一、wireshark过滤规则wireshark只是一个抓包工具,用其他抓包工具同样能够分析tcp三次握手协议。以下这张图片完整地展现了wireshark的面板。使用好wireshark一个关键是如何从抓到的众多的包中找到我们想要的那一个。这里就要说filter过滤规则了。如上图,在过滤器方框,我们加上了ip.sr

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

本文内容有以下三个部分:

  1. wireshark过滤规则
  2. osi模型简述
  3. tcp三次握手

一、wireshark过滤规则

wireshark只是一个抓包工具,用其他抓包工具同样能够分析tcp三次握手协议。以下这张图片完整地展现了wireshark的面板。

这里写图片描述

使用好wireshark一个关键是如何从抓到的众多的包中找到我们想要的那一个。这里就要说filter过滤规则了。如上图,在过滤器方框,我们加上了ip.src==192.168.1.102 or ip.dst==192.168.1.102的过滤规则,意思是在封包列表中,只显示源ip地址为192.168.1.102或者目的ip地址为192.168.1.102的包。
下面列举一些常用的过滤规则:

  1. 过滤IP,如来源IP或者目标IP等于某个IP
    如前面说的例子: ip.src==192.168.1.102 or ip.dst==192.168.1.102
    比如TCP,只显示TCP协议。
  2. 过滤端口
    tcp.dstport == 80 // 只显tcp协议的目标端口80
    tcp.srcport == 80 // 只显tcp协议的来源端口80
    也可以写成tcp.port eq 80 or udp.port eq 80 这样的模式
  3. 过滤协议
    单独写上tcp、udp、xml、http就可以过滤出具体协议的报文。你也可以用tcp or xml这样格式来过滤。
    我们还可以更加具体过滤协议的内容,如tcp.flags.syn == 0x02 表示显示包含TCP SYN标志的封包。
  4. 过滤mac地址
    eth.src eq A0:00:00:04:C5:84 // 过滤来源mac地址
    eth.dst==A0:00:00:04:C5:84 // 过滤目的mac地址
  5. http模式过滤
    http.request.method == “GET”
    http.request.method == “POST”
    http.request.uri == “/img/logo-edu.gif”
    http contains “GET”
    http contains “HTTP/1.”
    // GET包
    http.request.method == “GET” && http contains “Host: ”
    http.request.method == “GET” && http contains “User-Agent: ”
    // POST包
    http.request.method == “POST” && http contains “Host: ”
    http.request.method == “POST” && http contains “User-Agent: ”
    // 响应包
    http contains “HTTP/1.1 200 OK” && http contains “Content-Type: ”
    http contains “HTTP/1.0 200 OK” && http contains “Content-Type: “
  6. 过滤内容
    contains:包含某字符串
    ip.src==192.168.1.107 and udp contains 02:12:21:00:22
    ip.src==192.168.1.107 and tcp contains “GET”
    前面也有例子,http contains “HTTP/1.0 200 OK” && http contains “Content-Type: “

更加高级的用法就不讨论了,读者有兴趣可以查阅wireshark官网用户手册

二、osi模型简述

OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层),即ISO开放互连系统参考模型。如下图左边部分。在每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如源ip地址和目的ip地址等。
这里写图片描述
osi模型中,在下一层的角度看,当收到上一层的包时,全部会被认为是本层的数据,然后在本层中加上自己本层的首部,继续往下传递。一个数据包格式如下:
这里写图片描述
举一个例子,比如客户端应用程序A向远端服务器应用程序B发送“早上好”的数据,那么大致流程是这样的:

  1. 应用程序A把数据发送给下一层的TCP模块。
  2. TCP模块属于传输层。TCP在应用层数据的前端加上一个TCP首部。TCP首部中包含源端口号和目标端口号等信息。然后将包发送给IP模块。
  3. IP模块属于网络层。IP将TCP传过来的TCP首部和TCP数据合起来当做自己的数据,并且在TCP首部的前面加上自己的IP首部。IP首部包含了源ip地址和目的ip地址。然后,IP包将被发送给数据链路层,也就是以太网驱动程序。
  4. 从IP传过来的包,对于以太网驱动程序来说不过就是数据。给这些数据加上以太网首部,里面包含了源MAC地址和目的MAC地址。然后再通过物理层把数据发送给目的MAC地址。
  5. 服务器物理层接收到来自客户端的数据包时,首先从以太网的包首部找到MAC地址,判断是否为发给自己的包,如果不是就丢弃,如果是就向上转移给IP模块解析。
  6. IP模块收到IP包首部和后面的数据以后,判断包首部的目的ip地址与自己的ip地址是否匹配,如果匹配,就接收数据并传给TCP模块处理。
  7. TCP模块会检查端口号确定接收数据的应用程序是哪一个。
  8. 应用程序接收到数据包之后也会根据自己的规则判断做出一系列的处理。

通过上面例子大致的过程,可以体会到从上而下发包再到从下而上收包的过程。

三、tcp三次握手

这里写图片描述
上图为tcp三次握手,很多书籍都能看到。TCP提供面向有连接的通信传输,在数据通信开始之前先做好通信两端之间的准备工作。也就是说必须握手成功之后,才能进行通信。 接下来,用wireshark来抓取tcp三次握手报文。打开浏览器输入 http://blog.csdn.net/u014530704/article/。运用我们再前面介绍的过滤规则,在过滤框中输入http contains u014530704,找到如下包:
这里写图片描述

可以发现我们向服务器请求的包,其中目的ip地址是47.95.165.112。这个地址是blog.csdn.net的ip地址。
然后我们找 ip.src==47.95.165.112 or ip.dst==47.95.165.112 的包,找到了如下:

这里写图片描述
红色方框为本机192.168.1.101和服务器47.95.165.112之间的三次握手协议。三次握手协议的过程为:

  1. 客户端通过TCP首部发送一个SYN包作为建立连接的请求等待确认应答。
  2. 服务器发送ACK包确认应答,发送SYN包请求连接。
  3. 客户端针对SYN包发送ACK包确认应答。

最后,讲述一下看懂报文的方法。想要读懂tcp报文,头部至关重要,对着下图去看wireshark tcp报文,并且找到tcp首部各个字段代表的意思,你就能读懂tcp报文了。其他像以太网报文、ip报文、http报文等同样如此。

这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186383.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用C++实现五子棋人机对战小游戏

    用C++实现五子棋人机对战小游戏如何用C++实现五子棋小游戏呢?五子棋可谓是家喻户晓了,在科技如此发达的今天,我们能不能用电脑实现五子棋人机对弈呢?答案当然是可以的首先,思考一下我们需要完成哪些步骤1、打印棋盘(使用二维数组即可)2、判断胜负(可以考虑深搜,但是暴力似乎能让代码更简洁)3、思考下一部棋该怎么走先从最简单的一部开始:打印棋盘voidout(){for(inti=0;i<=24;i++){for(intj=0;j<=24;j++){if(

    2022年6月16日
    63
  • db4o的使用

    db4o的使用from:http://www.ibm.com/developerworks/cn/java/j-lo-db4o2/index.html前言在 db4o之旅 系列文章的第一部分:初识db4o 中,作者介绍了db4o的历史和现状,应用领域,以及和ORM等的比较。在这篇文章中,作者将会介绍db4o的安装、启动以及三种不同的查询方式:QBE(QuerybyEx

    2022年7月21日
    20
  • 2022新UI美观发卡网源码下载+功能强大且齐全

    2022新UI美观发卡网源码下载+功能强大且齐全正文:程序没有更多的介绍,总的来说就是2022最新版本的,美观功能齐全无BUG,上传程序后,运行目录public,伪静态thinkPHP,域名/install.php进行安装,就是这么简单哈,程序没有马赛克的演示图我就放压缩包了,大家自行去查看吧。程序:lanzou.com/ieWX005hj7dc图片:…

    2022年7月14日
    22
  • 新建一个vue项目[通俗易懂]

    新建一个vue项目[通俗易懂]1.npm install -g vue-cli2.vue init webpack demo1demo1自定义项目名称创建成功后可以在目录下看到文件夹3.static文件夹用于存放一些静态资源,如图片图标等4. 组件存放在src/components文件夹中5.配置路由 ①package.json里查看”dependencies”是否有:”vue-router”: “^3.0.1″,没有就加上去 ②”src”目录下main.js是否引入路由,没有就加上 …

    2022年8月18日
    6
  • C币商城帮助文档「建议收藏」

    C币商城帮助文档「建议收藏」帮助中心您需要什么样的帮助?关于C币商城:C币商城是为了奖励在CSDN平台有共享精神的用户。如果您曾在博客频道发表博客分享您的经验,或者在论坛为他人解惑,或者在下载频道上传优质的资源,或者在CSDN其他任一平台。温馨提示:如需更多帮助,请发邮件至webmaster#csdn.net(发送时请把地址中的‘#’换成‘@’)或拨打电话:400-660-0108常见问题关于发…

    2022年6月4日
    36
  • 大数据采集平台之ZDH_SERVER部署

    大数据采集平台之ZDH_SERVER部署目录项目源码下载源码打包部署运行项目源码数据采集平台管理端https://github.com/zhaoyachao/zdh_web数据采集平台服务https://github.com/zhaoyachao/zdh_serverweb端在线查看http://zycblog.cn:8081/login用户名:zyc密码:123456界面只是为了参考功能,底层的数据采集服务需要自己下载zdh_server部署,服务器资源有限,请手下留情如.

    2022年6月10日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号