精华内容
下载资源
问答
  • wireshark抓包实验原理
    千次阅读
    2021-08-04 17:08:37

    一:网络原理(情况)

    1. 本机环境:直接抓包本机网卡进出流量
    2. 集线器环境:流量防洪,同一突破
    3. 交换机环境:
      a.端口镜像,通过交换器的其他接口流量COPY一份;
      b.ARP欺骗(arp特性后到优先,错误绑定地址);
      c.MAC泛洪,在没有权限,不能使用端口镜像时,泛洪垃圾包产生大量MAC地址去冲击MAC地址表,使其改变,
      把其他的MAC地址挤出MAC表,按交换机的处理原理,收到的数据报如果是未知真的话,就会对外泛洪

    二:底层原理(底层架构)结构从下到上 1-5

    (5) GTK1/2:图像处理工具,处理用户的输入输出显示
    (4)Core:核心引擎,通过函数调用将其他模块连接在一起,起到联动调度的作用
    (3)Wiretap:格式支持,从抓包文件中读取数据包,支持多种文件格式
    (2)Capture:捕包引擎,利用libcap/WinPcap从底层抓取网络数据报包,libpcap/WinPcap提供了通用的抓包接口,能从不同类型的网络接口获取数据包
    (1)Win-/libpcap:wireshark抓包是依赖的库文件

    更多相关内容
  • Wireshark抓包实验

    2022-01-06 18:11:22
    Wireshark一、数据链路层实作一 熟悉 Ethernet 帧结构问题一实作二 了解子网内/外通信时的 MAC 地址问题实作三 掌握 ARP 解析过程问题二、网络层实作一 熟悉 IP 结构问题实作二 IP 的分段与重组问题实作三 考察 ...

    一、数据链路层

    实作一 熟悉 Ethernet 帧结构

    使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。

    在这里插入图片描述

    问题一

    你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。

    == 因为有时校验和会由网卡计算,这时wireshark抓到的本机发送的数据包的校验和都是错误的,所以默认关闭了WireShark自己的校验,就不会出现校验字段。==

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

    1、ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可使用 icmp 关键字进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?

    发送请求
    在这里插入图片描述
    接收回应
    在这里插入图片描述
    目的MAC是主机的

    2、然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?

    发送请求

    在这里插入图片描述接收回应
    在这里插入图片描述
    目的 MAC 是网关的

    3、再次 ping www.cqjtu.edu.cn (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址又是多少?这个 MAC 地址又是谁的?

    发送请求
    在这里插入图片描述
    接收回应
    在这里插入图片描述
    目的MAC是网关

    问题

    通过以上的实验,你会发现:
    访问本子网的计算机时,目的 MAC 就是该主机的
    访问非本子网的计算机时,目的 MAC 是网关的
    请问原因是什么?

    1、访问本子网的计算机时,可以直接到达,所以目的MAC就是该主机
    2、访问非本子网的计算机时,要经过网关到达外面,所以目的MAC是网关

    实作三 掌握 ARP 解析过程

    1、为防止干扰,先使用 arp -d * 命令清空 arp 缓存

    在这里插入图片描述

    2、ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    目的MAC:ac:12:03:3a:98:78
    源MAC:82:91:31:58:13:4e

    3、再次使用 arp -d * 命令清空 arp 缓存

    在这里插入图片描述

    4、然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    问题

    通过以上的实验,你应该会发现,
    ARP 请求都是使用广播方式发送的
    如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的 IP, 那么 ARP 解析将得到网关的 MAC。
    请问为什么?

    ARP代理,访问非子网IP时是通过路由器访问的,路由器再把发出去,目标IP收到请求后,再通过路由器端口IP返回去,那么ARP解析将会得到网关的MAC。

    二、网络层

    实作一 熟悉 IP 包结构

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

    在这里插入图片描述

    问题

    为提高效率,我们应该让 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 包如何进行分段,如:分段标志、偏移量以及每个包的大小等

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    问题

    分段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。那么 IPv6 中,如果路由器遇到了一个大数据包该怎么办?

    直接丢弃再通知发送端进行重传。
    由于在 IPv6中分段只能在源与目的地上执行,不能在路由器上进行。因此当数据包过大时,路由器就会直接丢弃该数据包包,并向发送端发回一个"分组太大"的ICMP差错报文,之后发送端就会使用较小长度的IP数据报重发数据。

    实作三 考察 TTL 事件

    在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。
    在验证性实验部分我们使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。
    请使用 tracert www.baidu.com 命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理。

    在这里插入图片描述
    在这里插入图片描述
    可以看出,TTL每次增加1来进行追踪,因为TTL每次到达一个节点,就会减少1,所以通过TTL的递增,来追踪路途中的每一个节点。

    问题

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

    14跳。因为TTL的原始值是离得最近的2的整次幂,为64,64-50=14。

    三、传输层

    实作一(熟悉 TCP 和 UDP 段结构)

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

    在这里插入图片描述

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

    在这里插入图片描述

    问题

    由上大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?

    源端口来表示发送终端的某个应用程序,目的端口来表示接收终端的某个应用程序。端口号就是来标识终端的应用程序,从而实现应用程序之间的通信。

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

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

    在这里插入图片描述

    2、请在你捕获的包中找到三次握手建立连接的包,并说明为何它们是用于建立连接的,有什么特征。

    1、注意到”第一次握手”客户端发送的TCP报文中以[SYN]作为标志位,并且客户端序号Seq=0;

    2、接下来”第二次握手”服务器返回的TCP报文中以[SYN,ACK]作为标志位;并且服务器端序号Seq=0;确认号Ack=1(“第一次握手”中客户端序号Seq的值+1);

    3、最后”第三次握手”客户端再向服务器端发送的TCP报文中以[ACK]作为标志位;其中客户端序号Seq=1(“第二次握手”中服务器端确认号Ack的值);确认号Ack=1(“第二次握手”中服务器端序号Seq的值+1)。

    这就完成了”三次握手”的过程

    3、请在你捕获的包中找到四次挥手释放连接的包,并说明为何它们是用于释放连接的,有什么特征。

    在这里插入图片描述
    1、”第一次挥手”客户端发送的FIN请求释放连接报文以[FIN,ACK]作为标志位,其中报文序号Seq=218;确认号Ack=224;

    2、”第二次挥手”服务器端继续返回的FIN同意释放连接报文以[FIN,ACK]作为标志位;其中报文序号Seq=224;确认号Ack=219;

    3、”第三次挥手”客户端发出的ACK确认接收报文以[ACK]作为标志位;其中报文序号Seq=219;确认号Ack=225;

    后一次“挥手”传输报文中的序号Seq值等于前一次"握手"传输报文中的确认号Ack值;

    后一次“挥手”传输报文中的确认号Ack值等于前一次"握手"传输报文中的序号Seq值;

    问题一

    去掉 Follow TCP Stream,即不跟踪一个 TCP 流,你可能会看到访问 qige.io 时我们建立的连接有多个。请思考为什么会有多个连接?作用是什么?

    它们之间的连接是属于短连接,一旦数据发送完成后,就会断开连接。虽然,断开连接,但是页面还是存在,由于页面已经被缓存下来。一旦需要重新进行发送数据,就要再次进行连接。这样的连接,是为了实现多个用户进行访问,对业务频率不高的场合,节省通道的使用,不让其长期占用通道。

    问题二

    我们上面提到了释放连接需要四次挥手,有时你可能会抓到只有三次挥手。原因是什么?

    客户端向服务端发送断开连接的请求为第一次挥手,服务端向客户端回复同意断开为第二次,然后服务端向客户端发送断开的请求为第三次挥手,客户端向服务端回复同意断开连接为第四次挥手。三次挥手是将服务器向客户端发送断开连接和回复同意断开连接合成一次挥手,其他两次挥手不变。也就是说,如果对方也没有数据发给本端,那么对方也会发送FIN给本端,使得二三次挥手合并为一次。

    四、应用层

    应用层的协议非常的多,我们只对 DNS 和 HTTP 进行相关的分析。

    实作一 了解 DNS 解析

    1、先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。

    在这里插入图片描述
    在这里插入图片描述

    2、你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。

    在这里插入图片描述

    在这里插入图片描述

    3、可了解一下 DNS 查询和应答的相关字段的含义

    DNS查询和应答报文的格式如下:
    在这里插入图片描述

    16位标识字段用于标记一对DNS查询和应答,以此区分一个DNS应答是哪个DNS查询的回应

    16位标志字段用于协商具体的通信方式和反馈通信状态。DNS报文头部的16位标志字段的细节如图
    在这里插入图片描述

    QR:查询/应答标志。0表示这是一个查询报文,1表示这是一个应答报文
    opcode,定义查询和应答的类型。0表示标准查询,1表示反向查询(由IP地址获得主机域名),2表示请求服务器状态
    AA,授权应答标志,仅由应答报文使用。1表示域名服务器是授权服务器
    TC,截断标志,仅当DNS报文使用UDP服务时使用。因为UDP数据报有长度限制,所以过长的DNS报文将被截断。1表示DNS报文超过512字节,并被截断
    RD,递归查询标志。1表示执行递归查询,即如果目标DNS服务器无法解析某个主机名,则它将向其他DNS服务器继续查询,如此递归,直到获得结果并把该结果返回给客户端。0表示执行迭代查询,即如果目标DNS服务器无法解析某个主机名,则它将自己知道的其他DNS服务器的IP地址返回给客户端,以供客户端参考
    RA,允许递归标志。仅由应答报文使用,1表示DNS服务器支持递归查询
    zero,这3位未用,必须设置为0
    rcode,4位返回码,表示应答的状态。常用值有0(无错误)和3(域名不存在)
    接下来的4个字段则分别指出DNS报文的最后4个字段的资源记录数目。对查询报文而言,它一般包含1个查询问题,而应答资源记录数,授权资源记录数和额外资源记录数则为0.应答报文的应答资源记录数则至少为1,而授权资源记录数和额外资源记录数可为0或非0

    查询问题的格式:
    在这里插入图片描述

    如图所示,查询名以一定的格式封装了要查询的主机域名。16位查询类型表示如何执行查询操作,常见的类型有如下几种:

    类型A,值是1,表示获取目标主机的IP地址
    类型CNAME,值是5,表示获得目标主机的别名
    类型PTR,值是12,表示反向查询
    应答字段,授权字段和额外信息字段都使用资源记录(Resource Record,RR)格式。

    资源记录格式:
    在这里插入图片描述

    32位域名是该记录中与资源对应的名字,其格式和查询问题中的查询名字段相同。16位类型和16位类字段的含义也与DNS查询问题的对应字段相同。
    32位生存时间表示该查询记录结果可被本地客户端程序缓存多长时间,单位是秒
    16位资源数据长度字段和资源数据字段的内容取决于类型字段。对类型A而言。资源数据是32位的IPv4地址,而资源数据长度则为4(以字节为单位)

    参考地址:https://blog.csdn.net/qq_41091373/article/details/90384705

    问题

    你可能会发现对同一个站点,我们发出的 DNS 解析请求不止一个,思考一下是什么原因?

    因为我们访问的网址只有一个域名,但是并不只有一台服务器主机,因此每一台服务器的IP地址不同,但他们的域名都是相同的。因此发出的解析请求是分散给不同服务器。

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

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

    在这里插入图片描述

    2、请在你捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。

    在这里插入图片描述
    Accept:告诉WEB服务器自己接受什么介质类型
    Content-Type:WEB 服务器告诉浏览器自己响应的对象的类型
    Content-Length:WEB 服务器告诉浏览器自己响应的对象的长度
    Cache-Control:用来指示缓存系统(服务器上的,或者浏览器上的)应该怎样处理缓存
    Host:客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号
    POST:请求的方式,其中包括URI和版本

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

    在这里插入图片描述
    200:交易成功;
    304:客户端已经执行了GET,但文件未变化;
    404:没有发现文件、查询或URl;

    问题

    刷新一次 qige.io 网站的页面同时进行抓包,你会发现不少的 304 代码的应答,这是所请求的对象没有更改的意思,让浏览器使用本地缓存的内容即可。那么服务器为什么会回答 304 应答而不是常见的 200 应答?

    浏览器中的缓存,可以直接在缓存区获取到需要的内容,不需要服务器在回复对应的内容,可以减少服务器的一些工作,减小开销。采用200应答就是要完全的将内容发送给客服端,这个会增加服务器的一些开销等。

    展开全文
  • 计算机网络wireshark抓包实验

    千次阅读 2020-11-16 20:19:52
    这里写目录标题简介实验操作三级目录 简介 Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接...

    这里写目录标题

    简介

    Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是全世界最广泛的网络封包分析软件之一。

    工作流程

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

    实验操作

    操作前言,一个简单的抓包步骤
    打开wireshark,点击捕获,点击选项
    在这里插入图片描述
    按照上面的勾选,然后打开cmd,ping一下百度

    ping.baidu.com

    在这里插入图片描述

    然后回到wireshark开始抓包
    会出现很多很多包
    在这里插入图片描述
    我们要精准的找到自己想要抓的包,就在过滤器上输入关键词

    ip.addr == 自己的ip and icmp

    然后就得到以下的八个包,就表示抓包成功!
    在这里插入图片描述
    数据链路层
    操作一:
    熟悉 Ethernet 帧结构
    使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等
    目的MAC,前6位就是目的MAC
    在这里插入图片描述
    源MAC,在目的MAC后六位就是源MAC
    在这里插入图片描述
    类型,在源MAC后两位就是类型
    在这里插入图片描述
    字段则是在类型后面46到1500位,总的来说可以归纳为如下:
    在这里插入图片描述
    问题:你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。

    因为有时校验和会由网卡计算,这时wireshark抓到的本机发送的数据包的校验和都是错误的,所以默认关闭了WireShark自己的校验

    操作二:
    解子网内/外通信时的 MAC 地址

    1.ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可使用 icmp 关键字进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
    发出帧
    在这里插入图片描述
    在这里插入图片描述

    返回帧
    在这里插入图片描述
    在这里插入图片描述

    2.然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
    在这里插入图片描述

    发出帧的目的MAC
    在这里插入图片描述
    返回帧的源MAC

    3.再次 ping www.cqjtu.edu.cn (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址又是多少?这个 MAC 地址又是谁的?

    发出帧目的的MAC
    在这里插入图片描述
    返回帧的源MAC
    在这里插入图片描述
    发出帧的目的MAC就是返回帧的源MAC
    通过以上的实验,你会发现:

    访问本子网的计算机时,目的 MAC 就是该主机的
    访问非本子网的计算机时,目的 MAC 是网关的

    请问原因是什么?
    ARP代理,访问非子网计算机时是通过路由器转接的,MAC地址是接入路由器端口的地址,再通过路由器发给相应计算机
    操作三
    掌握 ARP 解析过程

    1.为防止干扰,先使用 arp -d * 命令清空 arp 缓存

     arp -d *

    2.ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。
    在这里插入图片描述
    目的MAC
    在这里插入图片描述
    源MAC
    在这里插入图片描述

    3.再次使用 arp -d * 命令清空 arp 缓存
    4.然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    通过以上的实验,你应该会发现,

    ARP 请求都是使用广播方式发送的
    如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的 IP, 那么 ARP 解析将得到网关的 MAC。

    请问为什么?
    答:

    代理ARP原理:对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的ARP请求会使用自己的MAC地址与目标计算机的IP地址对源计算机进行应答,访问非子网IP时是通过路由器访问的,路由器再把发出去,目标IP收到请求后,再通过路由器端口IP返回去,那么ARP解析将会得到网关的MAC。

    网络层
    实作一 熟悉 IP 包结构
    使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段。
    在这里插入图片描述
    为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?

    答:便于传输时的识别IP总长度,节省时间,当长度超过1500B时就会被返回链路层进行分段。

    实作二 IP 包的分段与重组
    根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。
    缺省的,ping 命令只会向对方发送 32 个字节的数据。我们可以使用 ping 202.202.240.16 -l 2000 命令指定要发送的数据长度。此时使用 Wireshark 抓包(用 ip.addr == 202.202.240.16 进行过滤),了解 IP 包如何进行分段,如:分段标志、偏移量以及每个包的大小等
    在这里插入图片描述
    在这里插入图片描述
    关于IP包如何分段:
    在这里插入图片描述
    分段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。那么 IPv6 中,如果路由器遇到了一个大数据包该怎么办?
    答:转发至能支持该数据报的出链路上。

    实作三 考察 TTL 事件
    在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。
    在验证性实验部分我们使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。
    请使用 tracert www.baidu.com 命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理。
    在这里插入图片描述
    在这里插入图片描述
    TTL生命期逐渐变大

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

    传输层
    实作一 熟悉 TCP 和 UDP 段结构

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

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

    在这里插入图片描述
    由上大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?

    答:端口的作用就是用来唯一标识这个进程。TCP中的源端口号的意思是,你这个包是从哪里来,目的端口号是你这个包要去哪里。

    应用层
    应用层的协议非常的多,我们只对 DNS 和 HTTP 进行相关的分析。
    实作一 了解 DNS 解析

    1.先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。
    在这里插入图片描述
    在这里插入图片描述

    2.你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。
    在这里插入图片描述
    在这里插入图片描述

    3.可了解一下 DNS 查询和应答的相关字段的含义

    DNS工作原理
    我们通常使用机器的域名来访问这台机器,而不直接使用其IP地址,比如访问因特网上的各种网站。那么如何将机器的域名转换成IP地址呢?这就需要使用域名查询服务。域名查询服务有很多种实现方式,比如NIS(Network
    Information Service,网络信息服务)、DNS和本地静态文件等。

    格式如下:
    在这里插入图片描述
    在这里插入图片描述

    1.QR:查询/应答标志。0表示这是一个查询报文,1表示这是一个应答报文2.opcode,定义查询和应答的类型。0表示标准查询,1表示反向查询(由IP地址获得主机域名),2表示请求服务器状态
    3.AA,授权应答标志,仅由应答报文使用。1表示域名服务器是授权服务器
    4.TC,截断标志,仅当DNS报文使用UDP服务时使用。因为UDP数据报有长度限制,所以过长的DNS报文将被截断。1表示DNS报文超过512字节,并被截断
    5.RD,递归查询标志。1表示执行递归查询,即如果目标DNS服务器无法解析某个主机名,则它将向其他DNS服务器继续查询,如此递归,直到获得结果并把该结果返回给客户端。0表示执行迭代查询,即如果目标DNS服务器无法解析某个主机名,则它将自己知道的其他DNS服务器的IP地址返回给客户端,以供客户端参考
    6.RA,允许递归标志。仅由应答报文使用,1表示DNS服务器支持递归查询7.zero,这3位未用,必须设置为0
    8.rcode,4位返回码,表示应答的状态。常用值有0(无错误)和3(域名不存在)

    资料来自

    链接: link.

    总结

    计算机网络的wireshark抓包分为四个部分,分别是数据链路层,网络层,传输层和应用层。每一层的实验都让我学到了很多的东西,比如:
    数据链路层的发出帧的目的MAC就是返回帧的源MAC;
    网络层的IP包结构以及分段重组;
    传输层的TCP的三次握手以及TCP和UDP都有源和目的端口,端口的作用就是标记;
    应用层:DNS的查询和应答的相关含义

    展开全文
  • 实验二、计算机网络wireshark抓包实验1、 数据链路层实作一:熟悉 Ethernet 帧结构实作二:了解子网内/外通信时的 MAC 地址实作三: 掌握 ARP 解析过程2、网络层实作一:熟悉 IP 包结构实作二: IP 包的分段与重组实...

    Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是全世界最广泛的网络封包分析软件之一。

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

    1、 数据链路层

    实作一:熟悉 Ethernet 帧结构

    1、打开wireshark,点击捕获,点击选项
    在这里插入图片描述

    2.然后打开cmd,ping一下百度

    ping www.baidu.com
    

    在这里插入图片描述
    在这里插入图片描述
    我们要精准的找到自己想要抓的包,就在过滤器上输入关键词

    ip.addr == 自己的ip
    在这里插入图片描述
    目的MAC,前6位就是目的MAC
    在这里插入图片描述
    源MAC,在目的MAC后六位就是源MAC
    在这里插入图片描述
    类型,在源MAC后两位就是类型
    在这里插入图片描述
    在这里插入图片描述

    问题:你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。

    因为有时校验和会由网卡计算,这时wireshark抓到的本机发送的数据包的校验和都是错误的,所以默认关闭了WireShark自己的校验

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

    1.ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可使用 icmp 关键字进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
    发出帧
    在这里插入图片描述
    在这里插入图片描述
    2.然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
    在这里插入图片描述
    发出帧的目的 MAC 地址
    在这里插入图片描述
    在这里插入图片描述

    再次 ping www.cqjtu.edu.cn (或者本子网外的主机都可以),同时用 Wireshark 抓这些包在这里插入图片描述
    发出帧的目的MAC就是返回帧的源MAC
    访问本子网的计算机时,目的 MAC 就是该主机的
    访问非本子网的计算机时,目的 MAC 是网关的

    请问原因是什么?
    ARP代理,访问非子网计算机时是通过路由器转接的,MAC地址是接入路由器端口的地址,再通过路由器发给相应计算机

    实作三: 掌握 ARP 解析过程

    为防止干扰,先使用 arp -d * 命令清空 arp 缓存
    在这里插入图片描述
    1.ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可使用 icmp 关键字进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
    发出帧
    在这里插入图片描述
    目的MAC
    在这里插入图片描述
    源MAC在这里插入图片描述
    3.再次使用 arp -d * 命令清空 arp 缓存
    4.然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    通过以上的实验,你应该会发现,

    ARP 请求都是使用广播方式发送的
    如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的 IP, 那么 ARP 解析将得到网关的 MAC。

    请问为什么?
    答:

    代理ARP原理:对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的ARP请求会使用自己的MAC地址与目标计算机的IP地址对源计算机进行应答,访问非子网IP时是通过路由器访问的,路由器再把发出去,目标IP收到请求后,再通过路由器端口IP返回去,那么ARP解析将会得到网关的MAC。

    2、网络层

    实作一:熟悉 IP 包结构

    使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段
    在这里插入图片描述
    为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?

    答:便于传输时的识别IP总长度,节省时间,当长度超过1500B时就会被返回链路层进行分段。

    实作二: IP 包的分段与重组

    根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。

    缺省的,ping 命令只会向对方发送 32 个字节的数据。我们可以使用 ping 202.202.240.16 -l 2000 命令指定要发送的数据长度。此时使用 Wireshark 抓包(用 ip.addr == 202.202.240.16 进行过滤),了解 IP 包如何进行分段,如:分段标志、偏移量以及每个包的大小等。
    在这里插入图片描述
    在这里插入图片描述
    分段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。那么 IPv6 中,如果路由器遇到了一个大数据包该怎么办?
    答:转发至能支持该数据报的出链路上。

    实作三: 考察 TTL 事件

    在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。
    在验证性实验部分我们使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。
    请使用 tracert www.baidu.com 命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理。
    在这里插入图片描述
    在这里插入图片描述
    在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。如果你收到一个包,其 TTL 的值为 50,那么可以推断这个包从源点到你之间有多少跳?
    答:50

    3、传输层

    实作一: 熟悉 TCP 和 UDP 段结构

    用 Wireshark 任意抓包(可用 tcp 过滤),熟悉 TCP 段的结构,如:源端口、目的端口、序列号、确认号、各种标志位等字段。
    用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等。
    在这里插入图片描述
    在这里插入图片描述
    由上大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?

    答:端口的作用就是用来唯一标识这个进程。TCP中的源端口号的意思是,你这个包是从哪里来,目的端口号是你这个包要去哪里。

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

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

    4、应用层

    实作一 :了解 DNS 解析

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

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

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

    在这里插入图片描述

    在这里插入图片描述

    DNS工作原理
    我们通常使用机器的域名来访问这台机器,而不直接使用其IP地址,比如访问因特网上的各种网站。那么如何将机器的域名转换成IP地址呢?这就需要使用域名查询服务。域名查询服务有很多种实现方式,比如NIS(Network
    Information Service,网络信息服务)、DNS和本地静态文件等。

    展开全文
  • Wireshark抓包实验验证

    2020-11-09 20:15:00
    使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。 问题:你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。 答:这是因为有时校验和会由网卡计算,...
  • wireshark抓包实验机协议分析.doc

    千次阅读 2021-07-29 03:34:17
    Wireshark抓包及分析实验学生姓名: 夏效程学号: V200748016任务分配日期:2009-12-16课程名称: 计算机组网技术WireShark实验报告 : 用Wireshark完成计算机网络协议分析报告开始时间: 2009-12-16报告截至日期: ...
  • 准备 请自行查找或使用如下参考资料,了解 Wireshark 的基本使用: •选择对哪块网卡进行数据包捕获 ...2.Wireshark抓包新手使用教程https://www.cnblogs.com/linyfeng/p/9496126.html 3.Troubleshooting with Wireshar
  • 使用wireshark抓包——ICMP包

    千次阅读 2022-05-17 17:11:17
    ICMP 主要的功能包括:确认 IP 是否成功送达目标地址、报告发送过程中 IP 包被废弃的原因和改善网络设置等。 ICMP报文封装在IP数据报内部 ICMP 会送请求报文: 二、实验 ①访问可达的网络: (1)查看IP层的...
  • Wireshark抓包分析交换机工作原理

    千次阅读 2020-04-15 14:38:26
    交换机工作原理实验目的】 1、熟悉Linux虚拟网络环境; 2、熟悉Linux中network namespace的基本操作; 3、熟悉Linux中虚拟以太网设备Tap和veth pair的基本操作; 4、熟悉Linux中Bridge设备的基本操作; 5、...
  • DHCP动态获取IP过程wireshark抓包实验

    千次阅读 2020-06-19 11:52:52
    DHCP动态获取IP过程抓包实验 1、实验拓扑 R1设置成DHCP服务器,G0/0/0和G0/0/1接口都开启DHCP功能; PC-1,PC-2,PC-3设置为动态获取地址; 2、实验过程 在PC-1的Eth0/0/1接口抓包(为了实现release,我是重新renew...
  • wireshark抓包实战

    2021-05-06 17:19:17
    抓包网络基础企业如何抓包wireshark介绍过滤抓取的数据包高级wireshark特性命令行抓取数据包网络层协议抓包实战传输层协议抓包实战
  • 1、理解抓包软件的工作原理; 2、掌握Wireshark软件的安装和使用方法。 3、掌握MAC协议分析的技术与方法 实验任务 1、安装和运行Wireshark软件; 2、使用Wireshark软件抓取网络报文; 3、选取两个以上的以太网报文...
  • 计算机网络-Wireshark 实验 Wireshark 计算机网络-Wireshark 实验Wireshark 实验一、数据链路层1.实作一熟悉 Ethernet 帧结构2.实作二 了解子网内/外通信时的 MAC 地址1.ping 你旁边的计算机(同一子网)2. ping ...
  • 浙江大学城市学院实验报告 ...注意: 务请保存好各自的源代码及实验报告文档,已备后用。 请把实验报告和实验项目放在一个文件夹(如实验01...通过使用Wireshark分析网络协议。 了解钉钉软件中认证、聊天、文件传输协议。
  • Wireshark抓包学习

    2020-12-22 22:23:20
    文章目录所用软件数据链路层操作一操作一相关问题操作二操作二相关问题操作三操作三相关问题...如果需要抓包某一特定的操作,例如,我要访问百度,即可打开Cmder(功能与windows下的自带命令行工具Cmd一样,输入如下命令
  • 分析相关功能所抓取的数据包和完整大作业报告(word版)均已上传至Wireshark抓包分析微信功能----tcp/ip选修课期末大作业-网络监控文档类资源-CSDN文库 适合Wireshark入门的小伙伴们或者赶计算机网络期末大作业...
  • 实验wireshark抓包工具使用 班级 xxx 实验环境 Win10 Pro 1709(64位) 姓名 xxx 软件版本 Wireshark 3.2.4(64位) 学号 xxx 一、实验目的 学习wireshark抓包工具的使用 了解wireshark抓包工具的功能...
  • 文章目录一、实验名称二、实验目的三、实验原理四、实验要求五、实验步骤六、实验结果七、课后思考题 一、实验名称 网络基础实验 二、实验目的 1.通过本实验,掌握双绞线制作的基本原理和方法以及双绞线的测试和...
  • VLAN基础划分实验 实验拓扑 基本配置 常用的,重复性高的命令打白板既可以增强记忆,又方便快速完成,打完S1 copy一下修修改改就可以,逻辑能力也会提高。 我直接放图片就好了 看客盆友们自己动手打打 好好练练...
  • 前言“哈?啥是大白鲨?”咳咳,主要是因为网络分析工具Wireshark的图标特别像大白鲨顶部的角。不信你看:Wireshark“为什么拖了怎么久才发文?”为了让大家更容易「看得见」 ...
  • Wireshark抓包入门到精通实战教程

    千人学习 2021-03-06 23:44:06
    学习利用抓包神器Wireshark分析网络故障,了解网络协议原理,注重实战分析案例。
  • 2、通过对Wireshark抓包实例进行分析,进一步加深对常用网络协议的理解。 3、培养学生理论联系实践的研究兴趣。 二、实验原理 1、什么是ARP ARP(AddressResolutionProtocol,地址解析协议)是根据IP地址获取...
  • 使用wireshark抓包软件分析微信协议--zucc

    万次阅读 多人点赞 2019-06-07 21:11:56
    因为csdn自动压缩了上传的图片,导致看到的图片不太精确,稍后将发布可以下载的文档说明 下载地址,可以看到超清的图片,请自行下载 ...使用mac进行wireshark抓包,并选择使用客户端微信,同时...
  • TLS握手过程及wireshark抓包分析

    千次阅读 2021-08-05 19:08:17
    TLS握手过程及wireshark抓包分析 1.TLS的发展 1994年,NetScape公司设计了SSL协议(Secure Sockets Layer)的1.0版,但是未发布。 1995年,NetScape公司发布SSL 2.0版,很快发现有严重漏洞。 1996年,SSL 3.0版问世...
  • 常用的登录远程服务器的方式有telnet、ssh等协议,本文讲解telnet的原理,以及通过抓包分析tenet的报文。 环境配置,采用Windows实体机加Linux虚拟机的方式进行说明。 Linux虚拟机作为telnet服务器,Windows作为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,734
精华内容 1,093
关键字:

wireshark抓包实验原理

友情链接: java.rar