IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Wireshark 实验 -> 正文阅读

[网络协议]Wireshark 实验

数据链路层 实作一 熟悉 Ethernet 帧结构

在这里插入图片描述

如上图为一个Ethernet帧,
目的MAC为94 e9 ee 6d 2c c5, 源MAC为 00 1e 10 1f 00 00
类型为 0800,为IPV4类型
剩下的便是Ethernet帧中的数据域,上图并无检查字段

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

因为在wireshark抓包的时候同时自动过滤了8字节的前序和4字节的校验字段,

在物理层上网卡要先去掉前导同步码和帧开始定界符,然后对帧进行CRC检验,如果帧校验和错,就丢弃此帧。如果校验和正确,就判断帧的目 的硬件地址是否符合自己的接收条件(目的地址是自己的物理硬件地址、广播地址、可接收的多播硬件地址等),如果符合,就将帧交“设备驱动程序”做进一步处理。这时我们的抓包软件才能抓到数据,因此,抓包软件抓到的是去掉前导同步码、帧开始分界符、FCS之外的数据

数据链路层 实作二 了解子网内/外通信时的 MAC 地址

2.1 ping 旁边的计算机
在这里插入图片描述
目的MAC地址:98:2c:bc:96:eb:87(即我同一子网下旁边那台计算机的地址)
源MAC地址:b0:68:e6:68:55:1b(即我的计算机地址)
类型:IPv4(0x0080)
2.2 ping qige.io
在这里插入图片描述
目的MAC地址: c8:ea:f8:32:83:10(网卡地址)
源MAC地址:b0:68:e6:68:55:1b(即我的计算机物理地址)

2.3 ping baidu.com
在这里插入图片描述
目的MAC为94 e9 ee 6d 2c c5, 源MAC为 00 1e 10 1f 00 00
类型为 0800,为IPV4类型
目的MAC地址是网卡地址,源MAC地址是本机的物理地址

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

原因是网关作为一个子网的出入口,当一个子网想要和另外一个子网进行通信,就必须经过网关,才能够实现通信,对于同一子网中的终端进行通信,它们只要在子网中找到对应的目的地址就可以实现通信,不需要经过网关。

数据链路层 实作三 掌握 ARP 解析过程

  1. 为防止干扰,先使用arp -d *命令清空 arp 缓存
    在这里插入图片描述
  2. ping你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC目的 MAC 地址是什么。
    在这里插入图片描述

请求的目的MAC地址是属于同一个子网的树莓派的物理地址,回应的源MAC是同一个子网的树莓派的物理地址,目的MAC地址是本机的物理地址。

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

请求的目的地址是网卡物理地址,回应的源MAC地址是网卡物理地址,目的MAC地址是本机的物理地址。

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

请求的目的地址是网卡物理地址,回应的源MAC地址是网卡物理地址,目的MAC地址是本机的物理地址。ARP解析是先看arp表中是否有目的地址,如果有就不需要再次建立联系了,可以获取到目的MAC。如果没有就需要发送ARP请求,来获取目的MAC。如果目的地址是属于同一个子网,则不行要通过网关就能够进行通信,而不在同一个子网中就需要通过网关才能够建立联系。

网络层 实作一 熟悉 IP 包结构

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

IP包的格式中,第一个是版本,如果是4,就表示是IPv4,同理可知是6就表示是IPv6。第二个是头部长度,一般情况都是为5(表示包的头部有5行,一共20个字节)。第三个是服务类型,一般是0。接下来是总长度,TTL,协议类型,头部校验,源IP,目的IP。

问题:
为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?

头部长度是来表明该包头部的长度,头部有一行是可选的,可以要,也可以不要。总长度是为了接收方的网络层了解到传输的数据包含哪些,如果没有该部分,当数据链路层在传输时,对数据进行了填充,对应的网络层不会把填充的部分给去掉。

网络层 实作二 IP 包的分段与重组

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

此处分段标志是0x2000,前面两个是保留位,后面其中一位是DF(不分段位),
0表示允许分段,1则表示不允许分段,还有一位就是MF(更多段位),0表示后面没有包,1则表示后面还有其他包。偏移量是用来标识数据包在数据流中的位置,也可以理解为同一个IP标识发送多个数据包时的顺序号。图片中偏移量为0,表明该包位于数据流的0号位置。每个包的大小是用Total
Length来表示,它包含IP包头部及数据两个部分。

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

转发到支持该数据传输的路由上或者丢弃。

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

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 13:13:40  更:2021-12-13 13:15:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:41:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码