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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • wind river hypervisor 2.0.2.1

    wind river hypervisor 2.0.2.1

    2022年1月2日
    54
  • vb中copymemory如何用_vb中lcase函数

    vb中copymemory如何用_vb中lcase函数vb中copymemory函数的使用挺耐人寻味的。copymemory的使用说明资料书上就一句“该函数用于将一块内存的数据从一个位置复制到另一个位置”。其参数数据类型destinationasany,sourceasany。尽管是any型可理解成任一类型但是我看很多地方都说参数是指针类型的。因此起初我很不解,既然是指针型的参数我们往往直接将变量传递过去而不是变量的地址传递过去不是非法的吗?

    2025年7月7日
    3
  • Python迭代器实现

    Python迭代器实现文章目录欢迎访问我的个人博客引言 iter 和 next 实现可迭代的斐波那契数列类参考欢迎访问我的个人博客博客引言在 Python 编程中 我们经常使用 for in 语句对容器进行迭代 容器类 比如列表 元组等 之所以可以被 for in 语句迭代 是因为这些容器类实现了 iter 魔术方法 这个方法返回一个迭代器对象 迭代器对象实现了 next 魔术方法 这个方法可以移动迭代器和获取迭代器指向的值 如果我们想要实现支持迭代的对象 只需要实现 iter 方法以及 iter 返

    2025年12月11日
    6
  • ETH显卡矿机_eth矿机组装

    ETH显卡矿机_eth矿机组装显卡矿机搭建选择合适显卡选择硬件选择挖矿软件挖矿系统mineros挖矿软件注意:每个币种的软件都不一样挖矿系统和软件也有多种具体对应的官网都会有教程选择合适显卡主流显卡算力对比选择硬件选择挖矿软件前提准备自己的钱包地址选择矿池地址挖矿系统mineros步骤:注册账号刻盘启动挖矿和监控矿机状态挖矿软件NBMiner…

    2022年9月27日
    4
  • 什么是路由懒加载_react 路由懒加载

    什么是路由懒加载_react 路由懒加载路由懒加载:整个网页默认是刚打开就去加载所有页面,路由懒加载就是只加载你当前点击的那个模块。按需去加载路由对应的资源,提高首屏加载速度(tip:首页不用设置懒加载,而且一个页面加载过后再次访问不会重复加载)。实现原理:将路由相关的组件,不再直接导入了,而是改写成异步组件的写法,只有当函数被调用的时候,才去加载对应的组件内容。传统路由配置:importVuefrom’vue’importVueRouterfrom’vue-router’importLoginfro

    2022年10月7日
    4
  • 锐捷交换机配置保存到计算机,锐捷交换机常用配置命令汇总「建议收藏」

    锐捷交换机配置保存到计算机,锐捷交换机常用配置命令汇总「建议收藏」前面我们给大家汇总了华为、华三交换机的配置命令,都是非常适合小项目的,当然碰到大型的网络工程,还是需要厂家的专业人才来做。今天再给大家分享一下锐捷交换机的配置命令,这样国内三大家就全部都有了,学习一些基础网络知识还是不错的,尤其在视频监控系统中应用一下,还是可以的。正文:一、连接及远程登录用一台计算机作为控制台和网络设备相连接,通过计算机对网络设备进行配置。1、硬件连接把Console线一端连接在…

    2022年6月26日
    91

发表回复

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

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