精华内容
下载资源
问答
  • 2021-10-30 09:00:47

    一、Wirehark

    1.1 介绍

    • Wireshark 是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络 封包,显示网络封包的详细信息。使用 Wireshark 必须了解网络协议,否则就看不懂 Wireshark 抓包的含义。

    1.2 工作流程

    • 1)确定Wireshark的位置。如果没有一个正确的位置,启动Wireshark后会花费很长的时间捕获一些与自己无关的数据。
    • 2)选择捕获接口。一般都是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据。否则,捕获到的其它数据对自己也没有任何帮助。
    • 3)使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获文件。这样用户在分析数据时,也不会受其它数据干扰。而且,还可以为用户节约大量的时间。
    • 4)使用显示过滤器。通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包再更细致,此时使用显示过滤器进行过滤。
    • 5)使用着色规则。通常使用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出的显示某个会话,可以使用着色规则高亮显示。
    • 6)构建图表。如果用户想要更明显的看出一个网络中数据的变化情况,使用图表的形式可以很方便的展现数据分布情况。
    • 7)重组数据。Wireshark的重组功能,可以重组一个会话中不同数据包的信息,或者是一个重组一个完整的图片或文件。由于传输的文件往往较大,所以信息分布在多个数据包中。为了能够查看到整个图片或文件,这时候就需要使用重组数据的方法来实现。

    1.3 过滤表达式规则

    • Wireshark拥有强大的过滤器引擎,可以使用过滤器筛选出有用的数据包,排除无关信息的干扰,下面是筛选规则
    • 协议过滤:比如tcp,只显示tcp协议
    • IP过滤:比如 ip.src == 192.168.1.102 显示源地址为 192.168.1.102, ip.dst==192.168.1.102, 目标地址为 192.168.1.102
    • 端口过滤:tcp.port = = 80, 显示端口为 80 的,tcp.srcport == 80, 只显示 TCP 协议的原口为 80 的
    • Http模式过滤:如http.request.method==“GET”, 只显示 HTTP GET 方法的。
    • 逻辑运算符:and / or

    二、Fiddler

    2.1 简介

    • Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动,Fiddler可以也可以让你检查所有的HTTP通讯,设置断点,以及Fiddle所有的“进出”的数据(我一般用来抓包),Fiddler还包含一个简单却功能强大的基于JScript .NET事件脚本子系统,它可以支持众多的HTTP调试任务。

    2.2 工作原理

    • Fiddler是以代理WEB服务器的形式工作的,浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler开启会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

    三、用Wireshark查看三次握手

    使用的Wireshark最新版本,这是个免费软件,电脑自带的应用商店一般都有

    • 选择自己的接口,由于现在我是通过wlan上网,所以我选择的是wlan接口在这里插入图片描述
    • http发送get请求是在tcp进行三次握手之后,所以在过滤器(红框内)输入http来筛选信息,由于一直都在在线听歌,就选取其中一次来观察三次握手的过程在这里插入图片描述
    • 对着刚刚选取的那一行记录,鼠标右键,点击追踪流里的tcp流在这里插入图片描述
    • 然后这条封包上面就会出现三条tcp(可能会更多,不排除重传的情况,不过重传的颜色时和正常的颜色是不一样的)在这里插入图片描述
    • 点击第一条指令,可以看到详细信息,和TCP报文格式一起读,就可以看懂了

    tcp报文格式
    在这里插入图片描述

    • 第一条指令的详细信息在这里插入图片描述
    • 第二次握手,同步请求确认在这里插入图片描述
    • 第三次握手,请求确认在这里插入图片描述

    四、用Fiddler查看返回数据

    还是和wireshark一样,这个软件也是免费的,电脑自带的应用商城一般也有

    记得更改设置,默认状态下的fiddler是不能解密https协议的请求内容的,想要用fiddler抓到浏览器访问的https接口,需要在fiddler下更改设置

    • 打开fiddler软件,点击上面的tools选项,选择第一个options
      在这里插入图片描述
    • 点击之后会出来一个小窗口,选择https项,然后把红框里的两个单选框都选上,点击ok就行了,这时系统会提示你这个软件要请求根权限,一直选同意就行了在这里插入图片描述
    • 后面打开网站就可以获取信息了,这里我打开的是和风天气的web api接口,打开会返回josn数据,在浏览器里面打开在这里插入图片描述
    • 这时会发现捕获列表里就有这个网址,如果没有可以多刷新几次浏览器界面,然后点击go,有这个选项之后,选择这个它,再在接收数据端点击json格式,就可以看到了在这里插入图片描述

    五、小结

    通过这次实验,知道了怎么抓包,同时也对计算机网络内的各种协议更熟悉了,比如tcp的三次握手的过程,以及三次握手发送的请求是什么都有一个较为清楚的认知了,不过这个过程还是比较陌生,软件运行原理的认知还只是浅层次了解,需要深入学习。

    六、 参考

    Wireshark百度百科
    Fiddler教程
    TCP报文格式

    更多相关内容
  • 利用wireshark进行抓包实验HTTP

    千次阅读 多人点赞 2019-07-09 09:27:41
    启动wareshark。...等待一分钟多一点(我们马上就会明白),然后开始以太捕获 向浏览器输入以下内容: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html 问题: 1浏览器运行HTTP...

    基本的HTTPGET/响应交互启动网页浏览器
    启动wareshark。在“显示筛选器规范”窗口中输入HTTP,以便只在分组列表窗口中显示捕获的HTTP消息。

    等待一分钟多一点(我们马上就会明白),然后开始以太包捕获
    在这里插入图片描述
    向浏览器输入以下内容:
    http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html
    在这里插入图片描述
    在这里插入图片描述

    问题:
    1浏览器运行HTTP版本1还是1.1?服务器运行的是什么版本的HTTP?
    HTTP版本1.1,
    在这里插入图片描述
    2您的浏览器表示它可以接受到服务器的语言(如果有的话)是什么?
    我的浏览器接收服务器的语言是 简体中文
    zh-CN
    3你的电脑的IP地址是什么?gaia.cs.umass.edu服务器呢?
    电脑IP地址为:10.27.40.211
    gaia.cs.umass.edu服务器ip:128.119.245.12
    在这里插入图片描述
    4从服务器返回到浏览器的状态代码是什么?
    200 表示找到该网页
    在这里插入图片描述
    5您在服务器上检索到的HTML文件是在什么时候修改的
    上次修改时间为:2019.6.28, 05:59:02
    在这里插入图片描述
    6有多少字节的内容被返回到浏览器?
    有128个字节被返回到浏览器
    在这里插入图片描述
    7通过检查数据包内容窗口中的原始数据,您是否看到数据中没有显示在数据包列表窗口中的头部?如果是的话,请举出一个。
    http请求报文中还有Host字段,connection字段、Accept字段、User-agent字段、Accept-Encoding字段
    在这里插入图片描述
    http响应报文还有server字段,connection字段等

    在这里插入图片描述

    The HTTP CONDITIONAL GET/response interaction
    启动您的Web浏览器,并确保您的浏览器缓存被清除,如前所述。
    启动Wireshark数据包嗅探器
    在浏览器http/gaia.cs.umass.edu/wireshark-labs/HTTP-Wireshark-file2.html中输入以下URL,您的浏览器应该显示一个非常简单的5行HTML文件。
    在这里插入图片描述
    再次快速输入浏览器中的相同URL(或只需在浏览器上选择“刷新”按钮)
    在“Display-Filter-Specification”(显示-Filter-Specification)窗口中,停止Wiark数据包捕获,然后在“Display-Filter-Specification”(显示-Filter-Specification)窗口中输入http,这样只会在“分组列表”窗口中稍后显示捕获的HTTP消息。

    8检查从浏览器到服务器的第一个HTTPGET请求的内容。您是否在HTTPGET中看到“IF-MODIFIED-SINCE”行?
    没有看到
    因为这是浏览器第一次请求该页面
    9检查服务器响应的内容。服务器是否显式地返回文件的内容?你怎么知道?

    因为返回状态码为200
    10现在检查从浏览器到服务器的第二个HTTPGET请求的内容。您是否在HTTPGET中看到“IF-MODIFIED-SINCE”行?如果是的话,在“IF-MODIFIED-SINCE”之后有哪些信息?
    有,信息为上次请求该文件的时间(但是时间上有点问题)
    在这里插入图片描述
    11响应第二个HTTPGET,从服务器返回的HTTP状态代码和短语是什么?服务器是否显式地返回文件的内容?解释一下
    状态码是304,短语是:NOT Modified
    没有明确的反汇文件内容,因为该网页内容在上次访问之后未被修改,且本地有上次访问的缓存。
    在这里插入图片描述

    Retrieving Long Documents
    启动您的Web浏览器,并确保您的浏览器缓存被清除,如前所述。
    启动Wireshark数据包嗅探器
    在浏览器中输入以URL
    http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file3.html
    12您的浏览器发送了多少HTTPGET请求消息?跟踪中的哪个数据包号包含法案或权利的GET消息?
    发送了一个HTTPGET请求
    在这里插入图片描述

    13跟踪中的哪个数据包号包含与HTTPGET请求的响应相关联的状态代码和短语?
    如图:第一个数据包
    在这里插入图片描述
    14.响应中的状态代码和短语是什么?
    状态码是200,短语是OK
    在这里插入图片描述
    15.需要多少包含数据的TCP段才能携带HTTP响应
    需要4个
    在这里插入图片描述

    HTML Documents with Embedded Objects
    打开浏览器,确定你的浏览器缓存是空的,就如上面讨论的;
    打开Wireshark,开始数据包捕获;
    在你的浏览器中输入如下的 URL 地址: http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file4.html
    在这里插入图片描述
    停止 Wireshark 数据包捕获,在 Filter 窗口中输入“ http”,因此只有捕获的 HTTP 消息稍后将会显示在数据包列表窗口中。

    16.您的浏览器发送了多少HTTPGET请求消息?这些请求发送到哪个互联网地址?
    发送了3个请求
    地址均为128.119.245.12
    在这里插入图片描述
    17.您是否知道您的浏览器是否连续下载了这两幅图像,或者它们是否是并行地从这两个网站下载的?解释一下。
    不是并发下载的,是先后请求先后到达的。
    从时间Time来看:在这里插入图片描述

    展开全文
  • TCP抓包 HTTP分析 wireshark

    千次阅读 2021-12-30 09:55:55
    实验一 捕获 TCP 数据包 1你的客户端电脑传送文件到 192.168.1.70 的 IP 地址和端口是什么?从192.168.1.70 接收文件的 IP 地址和端口是什么? 你的客户端电脑传送文件:192.18.43.150 8003 从192.18.43.150 接收...

    实验一 捕获 TCP 数据包

    1你的客户端电脑传送文件到 192.168.1.70 的 IP 地址和端口是什么?从192.168.1.70 接收文件的 IP 地址和端口是什么?
    在这里插入图片描述

    你的客户端电脑传送文件:192.18.43.150 8003
    从192.18.43.150 接收文件:110.42.197.24 52615

    2用来初始化客户端电脑和 192.168.1.70的 TCP连接的TCP SYN 报文段的序号是什么?在报文段中,哪个地方表明这是一个SYN报文段?

    序号是:Seq=0
    可见初始化这个报文段的序号是0,Flags字段中SYN位为1,表明了这是一个SYN报文段。
    在这里插入图片描述

    “21”,“4.287052000”,“192.168.43.150”,“110.42.197.24”,“TCP”,“66”,“52615 > mcreport [SYN] Seq=0 Win=64240 Len=0 MSS=1460 WS=256 SACK_PERM=1”

    3回复 SYN 报文段时,由 192.168.1.70 发送的SYNACK报文段的序号是什
    么?在SYNACK 报文段中的 ACKnowledgement 域的值是什么?192.168.1.70 是如何确定这个值的?表明这个段是SYNACK的标志位或者符号是什么?
    在这里插入图片描述

    SYNACK 序号是0,ACK 值为1,其等于SYN 报文段中Seq值加1,标志位是Flags = 0x12。

    “24”,“4.323871000”,“110.42.197.24”,“192.168.43.150”,“TCP”,“66”,“mcreport > 52615 [SYN, ACK] Seq=0 Ack=1 Win=64240 Len=0 MSS=1360 SACK_PERM=1 WS=128”
    在这里插入图片描述

    4包含 HTTP POST 命令的 TCP 段的序号是多少?注意,要找到 POST 命令,你需要在 Wireshark 窗口的底部发掘这个数据包内容域,找到一个在其 DATA 域中有标识POST 的段。

    包含POST命令的TCP报文段的序号是1

    在这里插入图片描述

    5仔细思考一下作为 TCP 连接的第一个报文段的包含 HTTP POST 的 TCP 报文段。TCP 连接(包括包含 HTTP POST 的报文段)的开头 6 个报文段的序号是多少?每个报文段都在什么时间发送?每个报文段接收到 ACK 的时间是多少?
    在这里插入图片描述
    六个是:
    每个:TCP segment在这里插入图片描述

    6开始的 6 个 TCP 报文段的长度各自是多少?

    第一个

    Len=951 长度为Len+20=971
    第二个

    Len=12240 长度为Len+20=12260

    第三个

    Len=1360 长度为Len+20=1380

    第四个

    Len=5440 长度为Len+20=5460

    第五个

    Len=2720 长度为Len+20=2740

    第六个

    Len=2720 长度为Len+20=2740

    7在整个跟踪过程中,在接收端广告(advertise)的可用缓存空间的最小值是多少?接收端有没有因缓存空间不足而限制发送端的发送?

    可以看出,接收窗口大小最小是66560,而发送窗口大小一直是260,所以没有限制。
    在这里插入图片描述

    8在跟踪文件中,有重传的报文段么?回答这个问题,你需要检查哪个地方?
    有。
    检查客户机发出报文段的sequence number字段即可,如果有重复的sequence number,则证明发生了相同数据的重传。
    在这里插入图片描述

    9接收方在一个 ACK 中,通常确认多少数据?你能辨别出这样一种情形吗:即接收方对收到的报文段,每隔一个确认一次?

    接收方在一个ACK 中通常确认1 -2个报文段数据。利用Flow Graph 功能,查看相应的发送和ack情况,其中一部分统计如下:可以看出在这次跟踪过程中通常是每个ACK确认一个报文段。
    在这里插入图片描述

    10这个 TCP 连接的吞吐量(每单位时间传输的字节数)是多少?解释你是如何计算这个数值的?

    在上传整个文件的过层中,第一个报文段的序号是1,时间是4.287683000s,最后一个报文段的序号是52597,时间是8.392043000s,这个过程的平均吞吐量为:
    52597/(8.392043000-4.287683000)=12814.90923Bps
    第一个报文段:
    在这里插入图片描述

    最后一个报文段:
    在这里插入图片描述
    在这里插入图片描述

    11 TCP 拥塞控制
    用Time-Sequence-Graph(Stevens)中的画图工具观察从客户端发送到
    192.168.1.70 服务器的TCP段的序列号-时间图。你怎样判断TCP的慢启动(slowstart)开始和结束?拥塞避免在什么地方开始起作用的?注意在实际的跟踪中,不是所有的都像教材那样简单漂亮的形式。同时还要注意在Time-Sequence-Graph(Stevens)中纵坐标所代表的变量与教材中是否不同。总结这次实验中所得到的 TCP 数据与我们在教材中所学的理想情况有什么不同?

    TCP 段的序列号-时间图
    在这里插入图片描述

    对于慢启动过程的特征是发送端的Congestion window 值指数增长。上面的图像中,开头一段发送的报文段数量为1,2,4,6,可以判断前三轮为慢启动;第四轮及以后的发送过程中,发送的数量稳定在一个较稳定的程度,可以大致判断拥塞避免在此时起作用。

    不同之处:发送过程整体较为稳定,没有出现数据的重传现象。基本是每一个ACK确认一个报文段,而不是2个3个居多。发送速度较快,没有发现明显的拥塞控制和报文段中的窗口大小变化情况。

    可能的原因有3个:发送的txt文件较小;网络较差,重传率高。

    实验二 HTTP抓包分析

    6. 基本 HTTP 的 GET/response 交互
    (1)你的浏览器所运行的是 http 协议的 1.0 版本还是 1.1?服务器用的是什么版本的 http 协议?
    在这里插入图片描述

    浏览器所运行的是 HTTP1.1
    在这里插入图片描述

    服务器用的是HTTP1.1

    2)你的浏览器可以支持多少种语言(如果有)?

    中文,支持zh-CN,zh

    3)你自己的 IP 地址是多少?服务器呢?
    自己的:192.18.43.150
    服务器的:110.42.197.24
    在这里插入图片描述

    4)从服务器传回浏览器的状态代码是什么?
    HTTP/1.1 200 OK\r\n
    在这里插入图片描述

    5)你所看到的 html 文件在服务器上最后的修改时间是什么?
    Date: Tue, 28 Dec 2021 05:45:02 GMT\r\n
    在这里插入图片描述

    1. 传回浏览器的内容的大小是多少 bytes?
      76113字节的内容被返回到浏览器。
      在这里插入图片描述

    7. 有条件的 HTTP 的 GET/response 交互

    1. 在 packet-content 窗口中观察第一个从浏览器向服务器发出的 http GET 请求的数据包,是否看到一行显示“ IF-MODIFIED-SINCE” ?
      没有。因为这是浏览器第一次请求该页面。

    2. 观察从服务器传回的 response 数据包,服务器是否很清楚的传回了该 html 文件的内容?你如何知道的?
      返回了文件内容,因为返回状态码为200。并返回了html文件。
      在这里插入图片描述
      在这里插入图片描述

    3. 观察第二个从浏览器向服务器发出的 http GET 请求的数据包,是否看到一行显示 IF-MODIFIED-SINCE” ?如果有,在“ IF-MODIFIED-SINCE” 报头后显示的是什么?
      有这行字段。信息为上次请求该文件的时间。(如果找不到就抓包的时候多刷新几次)
      在这里插入图片描述

    4. 从服务器传回的对第二个 http GET 的 response 的状态代码是什么?服务器是否很清楚的传回了该 html 文件的内容?你如何知道的?
      状态码是304,短语是Not Modified,并没有明确返回文件内容,因为该网页内容在上次访问之后未被修改过,且本地中有上次访问的缓存。
      在这里插入图片描述

    8. 获取较长的 HTML 文件
    (1)浏览器向服务器发送了多少个 http GET 请求的数据包?
    1个。
    在这里插入图片描述

    (2)该 http response 数据包需要多少个含有数据的 TCP 段来传送?
    传输这一个HTTP响应需要5个TCP数据段。
    在这里插入图片描述

    (3) 与 http GET 对应的 response 数据包的状态代码是什么?
    状态码200,短语OK。
    在这里插入图片描述

    9. 获取有嵌入对象的 HTML 文件
    (1) 浏览器向服务器发送了多少个 http GET 请求的数据包?这些数据包发送的目的网 址是什么?
    发送了4个 http GET 请求的数据包。
    在这里插入图片描述

    目的地址为:

    110.42.197.24
    在这里插入图片描述

    (2) 浏览器是从两个服务器上连续下载这两个图片还是并行下载的?请做相应解释。
    不是并发下载的,有先后顺序。

    展开全文
  • 在windows平台使用Wireshark软件进行抓包分析,了解数据链路层、网络层、传输层和应用层的协议规范。 目录(一)数据链路层实作一 熟悉Ethernet帧结构实作二 了解子网内/外通信时的MAC地址实作三 掌握ARP解析过程...

    在windows平台使用Wireshark软件进行抓包分析,了解数据链路层、网络层、传输层和应用层的协议规范。

    (一)数据链路层

    实作一 熟悉Ethernet帧结构

    使用Wireshark进行任意抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。
    image1
    可以清楚的看到目的MAC、源MAC、类型和字段等消息。

    可以发现Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。
    这是因为有时校验和会由网卡计算,这时Wireshark抓到本机发送的数据包的校验和都是错误的,所以Wireshark默认关闭了帧的校验字段显示。

    实作二 了解子网内/外通信时的MAC地址

    ping旁边处于同一子网内的计算机,同时用Wireshark抓这些包(可使用 icmp 关键字进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
    可以发现,发出帧的目的MAC是就是自己主机的物理地址,返回帧的MAC地址是对方主机的物理地址。

    使用命令ping qige.io(或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可使用icmp进行过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
    image2
    可以看出,发出帧的目的MAC是62:92:1a:58:c0:41,返回帧的MAC地址是00:74:9c:9f:40:13,并且返回帧的MAC地址仍然是网关的MAC地址。

    再次使用命令ping www.cqjtu.edu.cn(或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可使用功能icmp过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址又是多少?这个 MAC 地址又是谁的?
    image3
    结果同上,发出帧的目的MAC是62:92:1a:58:c0:41,返回帧的MAC地址是00:74:9c:9f:40:13,返回帧的MAC地址是网关的MAC地址。

    通过以上实验,我们可以发现:

    • 访问本子网的计算机时,目的 MAC 就是该主机的
    • 访问非本子网的计算机时,目的 MAC 是网关的
      原因是因为同一子网下的主机可以直接广播该主机的MAC地址进行通信,但如果访问非同一子网的计算机时则需要先通过网关进行转发找到该计算机,所以目的MAC是网关的。

    实作三 掌握ARP解析过程

    为防止干扰,先使用命令arp -d *清空 arp 缓存,然后 ping 旁边处于同一子网的计算机,同时用 Wireshark 抓这些包(可使用arp过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。
    image4
    image5
    可以看出,请求的目的 MAC 地址ff:ff:ff:ff:ff:ff即广播地址,该请求的回应的源 MAC是被访问主机的MAC地址,目的 MAC 地址是本地主机的MAC地址。
    如果出现RP 项删除失败: 请求的操作需要提升的错误,则使用管理员身份打开cmder即可

    再次使用arp -d *命令清空 arp 缓存,然后使用ping qige.io命令(也可以ping其他主机),同时用 Wireshark 抓这些包(可使用arp过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。
    image6
    image7
    可以看出,这次ARP请求的是网关的MAC地址,由ARP服务器回应给主机。

    通过以上的实验,我们会发现,

    • ARP 请求都是使用广播方式发送的
    • 如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的 IP, 那么 ARP 解析将得到网关的 MAC。
      这是因为访问本子网IP会通过ARP解析出IP的MAC地址;如果访问的是非本子网的IP时APR 只能解析得到网关的MAC地址,再由网关将数据给发送出去。

    (二)网络层

    实作一 熟悉IP包结构

    使用 Wireshark 进行任意抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段。
    image8

    为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?
    通过头部长度字段和总长度字段可以让网络层直接定位IP包中的头部和数据部分,极大的方便了对数据的提取。

    实作二 IP包的分段与重组

    根据规定,一个IP 包最大可以有 64K 字节,但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。缺省的长度的ping 命令只会向对方发送 32 个字节的数据。我们可以使用ping 202.202.240.16 -l 2000命令指定要发送的数据长度。然后使用 Wireshark 抓包(用 ip.addr == 202.202.240.16 进行过滤),了解 IP 包如何进行分段,如:分段标志、偏移量以及每个包的大小等。
    image9
    可以看出长度为2000字节的IP包被分成了长度为548字节的IP包,通过分段号来作为分段的标志。

    分段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。那么 IPv6 中,如果路由器遇到了一个大数据包该怎么办?
    当IPV6中的路由器遇到数据包过大时,路由器会直接丢弃该数据包同时向发送端发回一个"分组太大"的ICMP报文,之后发送端就会使用较小的IP数据包重发。

    实作三 考察TTL事件

    在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳即通过路由器转发的个数,一般该值设置为 64、128等。
    之前我们使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。
    这里我们使用tracert www.baidu.com命令进行追踪,同时使用 Wireshark 抓包(用icmp过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理。
    image10
    可以看出,主动设置 IP 包的 TTL 值从 1 开始逐渐增加,直至到达最终目的主机,当成功到达主机后主机会回复一个响应表示达到该主机。

    在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。如果你收到一个包,其 TTL 的值为 50,那么可以推断这个包从源点到你之间有多少跳?
    若TTL设置为64的话,从这个包到源点一共有16跳;若TTL设置成128的话,从这个包到源点一共有80跳。

    (三)传输层

    实作一 熟悉TCP和UDP段结构

    用 Wireshark 任意抓包(可用 tcp 过滤),熟悉 TCP 段的结构,如:源端口、目的端口、序列号、确认号、各种标志位等字段。
    image11

    用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等。
    image12

    从上面TCP和UDP格式大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?
    源端口和目的端口用来提交给应用层的不同程序进程的依据。

    实作二 分析TCP建立和释放连接

    打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用 tcp 过滤后再使用加上Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间使得能够捕获释放连接的包。

    在捕获的包中找到三次握手建立连接的包,并说明为何它们是用于建立连接的,有什么特征。
    image13
    第一次握手时,客户端发送一个SYN=1,ACK=0标志的数据包给服务端,请求进行连接;
    第二次握手时,服务端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让客户端发送一个确认数据包,这是第二次握手;
    第三次握手时,服务端发送一个SYN=0,ACK=1的数据包给客户端端,告诉它连接已被确认,TCP连接建立,开始通讯。

    请在你捕获的包中找到四次挥手释放连接的包,并说明为何它们是用于释放连接的,有什么特征。
    image14
    从图上可以看出,断开连接时首先由一方发出FIN报文,然后另一方接收并回ACK报文;并且它也会发送一个FIN报文表示断开连接,最开始发送的一方也接收并发ACK报文,TCP连接断开。

    去掉 Follow TCP Stream,即不跟踪一个 TCP 流,你可能会看到访问 qige.io 时我们建立的连接有多个。请思考为什么会有多个连接?作用是什么?
    多个连接是为了更快的传输数据,为用户提供更好的服务。

    我们上面提到了释放连接需要四次挥手,有时你可能会抓到只有三次挥手。原因是什么?
    这是因为一方发送断开连接确认ACK的同时也向另一方发送断开连接的请求。

    (四)应用层

    实作一 了解DNS解析

    先使用ipconfig /flushdns命令清除缓存,再使用nslookup qige.io命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。
    image15

    我们可能会发现对同一个站点,我们发出的 DNS 解析请求不止一个,思考一下是什么原因?
    这是因为同一个站点有多个计算机同时运行为我们用户提供服务,因此同一站点会存在多个IP地址。

    实作二 了解HTTP的请求和应答

    打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用http 过滤再加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。

    请在你捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。
    image16
    这里可以看出在HTTP头部使用的是GET命令向服务器发起请求。

    请在你捕获的包中找到 HTTP 应答包,查看应答的代码是什么,如:200, 304, 404 等。并仔细了解应答的头部有哪些字段及其意义。
    image17

    刷新一次 qige.io 网站的页面同时进行抓包,你会发现不少的 304 代码的应答,这是所请求的对象没有更改的意思,让浏览器使用本地缓存的内容即可。那么服务器为什么会回答 304 应答而不是常见的 200 应答?
    客户端发出请求时,服务端会检查客户端是否存在该文件,如果客户端不存在该文件,则发送该文件并返回200;如果客户端存在该文件并且该文件在规定期限内没有被修改(Inode,MTime和Size),则服务端只返回一个304,并不返回资源内容,客户端将会使用之前的缓存文件。

    参考资料:
    1.wireshark抓包新手使用教程
    2.Http请求头和响应头(Get和Post)

    展开全文
  • 此教程主要针对于大学的上机实验课。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新...
  • wireshark抓包

    2018-11-13 12:23:46
    利用Wireshark截取数据包,并对数据包进行解析 利用Wireshark截取ICMP数据包,并对数据包进行解析 wireshark安装文件下载地址:http://yunpan.cn/QiHGK5sPtWRyN (提取码:0bbc) 安装步骤: 解压文件之后,在\...
  • windows下wireshark本地回路抓包问题

    千次阅读 2016-10-20 14:52:14
    心血来潮,想用wireshark抓取本地回路的测试,结果发现怎么都不到127.0.0.1的tcp数据包,不管怎么看,都没有127.0.0.1的数据包。呕血弄了一早晨,发现如果是tcp客户端向别的IP通信wireshark都能正常截获,如果是...
  • Wireshark实验

    2021-11-10 10:47:51
    使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。 ✎ 问题 你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。 网卡接收到一个帧,第一步就是计算...
  • [网络安全自学篇] 十三.Wireshark抓包原理(ARP劫持、MAC泛洪)及数据流追踪和图像抓取(二) 2019年09月22日 21:55:44Eastmount阅读数 3515文章标签:网络安全Web安全渗透安全Wireshark数据流追踪更多 分类专栏:...
  • 代码如下:pom文件引入依赖: 服务端代码: 客户端代码如下: 我们将服务端启动后,...下载成功后,我们打开主界面如下:这里我们看到的这个列表是我们本机的网卡列表,我们在抓包之前要确认具体的网卡,常用的网卡就
  • C#使用TCP/UDP协议通信并用Wireshark抓包分析数据

    千次阅读 多人点赞 2020-10-31 01:20:35
    实验环境: Window 10 系统 开发工具: Visual Studio 2019 一、控制台程序发送 本部分内容: 用 C# 编写一个命令行/控制台 hello world 程序,实现如下功能:在屏幕上连续输出 50 行 “ hello cqjtu!重交物联2018...
  • Wireshark实验HTTP

    2020-11-05 21:45:22
    Wireshark 实验入门里,我们已经初步使用了 Wireshark 嗅探器,我们现在可以操作 Wireshark 来查看网络协议。在这个实验中,我们会探索 HTTP 协议的几个方面:基本的 GET/response 交互,HTTP 消息格式,检索...
  • 问题解答:Wireshark 抓包前,在物理层网卡已经去掉了一些之前几层加的东西,比如前导同步码,FCS等等,之后利用校验码CRC校验,正确时才会进行下一步操作,因此,抓包软件抓到的是去掉前导同步码、FCS之外的数据,...
  • wireshark分析http协议 计网实验总结

    千次阅读 多人点赞 2020-05-24 18:36:41
    上周实验中进行了课程实验wireshark抓包了http报文,收获许多,准备开启我的第一篇博客文章。 http的基本知识 HTTP(HyperText Transfer Protocol,超文本传输协议)是Web系统最核心的内容,是Web服务器和客户端...
  • SNMP协议的了解与简单的抓包分析

    千次阅读 2022-04-29 15:26:25
    操作命令3.SNMP报文4 SNMP报文格式三、SNMP抓包分析1.SNMP体验2.SNMP抓包分析总结 前言 本人小白,由于一些学习上和项目上的实际需求,对SNMP协议进行了一些学习研究,主要应用于交通信号机和城市大脑。以下是本人...
  • 1、获取文件 链接:https://pan.baidu.com/s/1I9OP1xq4ZBsuWecocNWQog 提取码:fs7e 2、安装步骤 (1)双击exe文件 ...选择中文。 (2) ...
  • 南京邮电大学网络信息安全课程实验:网络数据包捕获(实验一)系列前言实验目标实验环境实验一过程记录目标一:使用正确的姿势打开WireShark目标二:只捕获TCP的流量目标三:观察一个TCP包中的TCP包头、IP包头信息...
  • Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。与很多其他网络工具一样,Wireshark也使用pcap network library来进行封包捕捉。 ...
  • Wireshark分析DHCP

    万次阅读 多人点赞 2016-03-22 00:38:12
    如果主机在抓包之前已经联网,需要先断开主机的网络连接,然后再连接网络。在cmd下使用命令ipconfig来完成网络断开与连接的过程: ipconfig /release 断开主机当前的网络连接 ipconfig /renew 请求连接...
  • 前文分享了Wireshark安装入门和一个抓取网站用户名和密码的案例,本篇文章将继续深入学习Wireshark抓包原理知识,并分享数据流追踪、专家信息操作,最后结合NetworkMiner工具抓取了图像资源和用户名密码。...
  • wireshark网络分析器的学习使用

    千次阅读 2022-04-02 01:52:44
    一打开wireshark是这样的,首先要选择一张网卡就行抓包。 我这里是连的WiFi,就双击 WLAN 即可开始捕获数据包。 然后就会进入抓包界面。 刚一接触这个工具,看到这个界面会觉得特别繁杂,各种数字字符,不知道是什么...
  • Wireshark抓取HTTPS流量到HTTP2协议
  • 关于Tcpdump抓包总结

    2019-09-02 14:42:36
    关于Tcpdump抓包总结 一、简介 tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具 tcpdump提供了源代码,公开了接口,...
  • Wireshark网络封包分析软件使用心得 Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡...
  • 1、通过使用Wireshark软件掌握Sniffer(嗅探器)工具的使用方法,实现捕捉HTTP等协议的数据包,以理解TCP/IP协议中多种协议的数据结构、通过实验了解HTTP等协议明文传输的特性。 2、研究交换环境下的网络嗅探实现及...
  • 前期准备: IntelliJ IDEA 2021.1.3 (Ultimate Edition) Build #IU-211.7628.21, built on June 30, 2021 JDK 1.8或以上版本 WireShark网络协议解析器 Version 2.4.13 (v...(2)打开抓包软件    &nb
  • 一、实验名称 使用网络协议分析仪Wireshark二、实验目的:1. 掌握安装和配置网络协议分析仪Wireshark的方法;2. 熟悉使用Wireshark工具分析网络协议的基本方法,加深对协议格式、协议层次和协议交互过程的理解。三、...
  • 非常短,并且不包含嵌入...启动Wireshark数据包嗅探器,如Wireshark实验-入门所述(还没开始数据包捕获)。在display-filter-specification窗口中输入“http”(只是字母,不含引号标记),这样就在稍后的分组列表窗...
  • 所谓的指 定条件可包含:指定的目的 IP 地址、指定的源 IP 地址、指定的协议类型等(参考 Wireshark 的过滤条件),比如当指定协议类型为 IP 时,其它类型的数据帧将被丢弃,仅留下 IP 数据 帧。 2 实验环境 windows...
  • 少年一、实验目的二、实验操作三、总结四、资源 一、实验目的 1.分析这程序所采用的是udp还是tcp 2.在抓取包中找到窃取到的聊天信息 (英文字符和汉字可能经过了某种编码转换,数据包中不是明文) 3.如果是网络连接...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 514
精华内容 205
关键字:

wireshark中文版抓包实验