linux下发各种协议包及其详细分析

2023-05-16

申明:本实验在一个虚拟机环境下完成,ip分别为192.168.26.1192.168.26.132

 

一、 以太帧格式的分析

1. 抓取方法描述

 

Ø 在192.168.26.132浏览网页产生数据包;

Ø 通过wireshark抓取数据包;

Ø 分析以太帧格式;

 

2. 记录抓取的过程

Ø 打开wireshark,开始抓包;

 

 

Ø 访问http://www.hdu.edu.cn

 

 

Ø 停止抓包;

 

 

Ø 得到很多包,以这一个包为例进行分析;

 

 

3. 抓取数据的内容

 

 

4. 抓取数据的格式解释(可直接在抓取数据的内容旁边标注)

 

l 源MAC地址00:0c:29:8d:df:77

l 目的MAC地址00:50:56:e2:2e:3d

l 类型:Type: IP (0x0800)

l 以太帧类型:ethernet II;

 

l 长度:437

l 校验和:0x01a6

 

 

5. 补充说明(如果有需要补充的内容写在这)

在以太网链路上的数据包称作以太帧。以太帧起始部分由前导码和帧开始符组成。后面紧跟着一个以太网报头,以MAC地址说明目的地址和源地址。帧的中部是该帧负载的包含其他协议报头的数据包(例如IP协议)。以太帧由一个32冗余校验码结尾。它用于检验数据传输是否出现损坏。

以太帧有很多种类型。不同类型的帧具有不同的格式和MTU值。

① 以太网第二版[note 3] 或者称之为Ethernet II 帧,DIX帧,是最常见的帧类型。并通常直接被IP协议使用。

② Novell的非标准IEEE 802.3帧变种。

③ IEEE 802.2 逻辑链路控制 (LLC) 

④ 子网接入协议(SNAP)

在本例中,显然是第一种以太帧:

 

 

二、 ARP协议的分析

1. 抓取方法描述

Ø 利用linux下开源工具nping发送arp包;

Ø 同时用wireshark抓包,得到arp请求包,arp应答包,无故arp包;

Ø 分析数据包各字段内容;

Ø 向主机192.168.26.1发送伪造的arp报文,使其不能上网。

 

2. 记录抓取的过程

Ø 在192.168.26.132上使用nping命令构造一个arp请求包请求192.168.26.1mac地址;

 

 

Ø 利用wireshark抓包,观察可以看到发出去的广播数据包得到回应;

 

 

Ø 同理,利用nping发送无故arp包观察结果;

 

 

Ø 使用wireshark抓包,可以看到wireshark抓到并提示为无故arp包(Gratuitous ARP for 192.168.26.132);

 

 

3. 抓取数据的内容

 

 

4. 抓取数据的格式解释(可直接在抓取数据的内容旁边标注)

l 分别指出ARP请求数据包和应答数据包中各个字段的内容

l 指出ARP请求报文和应答报文的发送方式

Ø ARP请求报文 

 

ARP请求报文 以广播方式发送,硬件类型(hardware type)是以太网(1)。协议类型(protocol  type)为0x0800,表示使用ARP的协议类型为IPV4。硬件地址长度(hardware size)为6。协议地址长度(protocol size)为4,操作类型(opcode)为1,表示报文类型为ARP请求。发送方硬件地址(sender  MAC  address)为00:0c:29:8d:df:77。发送方IP地址(sender  IP  address)为192.168.26.132。目的硬件地址(target  MAC  address)为ff:ff:ff:ff:ff:ff。目的IP地址(target  IP  address)为192.168.26.1。 

Ø ARP应答报文 

 

ARP应答报文 以单播播方式发送,硬件类型为以太网。协议类型为IP0x0800)。硬件地址长度为6,协议地址长度为4,操作类型为2,表示为ARP应答报文。发送方硬件地址为00:50:56:c0:00:08,发送方IP地址为192.168.26.1。目的硬件地址为00:0c:29:8d:df:77,目的IP地址为192.168.26.132。

 

5. 请说明你是如何伪造ARP报文使某台计算机不能上网的,以及是否成功?

这次实验的环境是虚拟机局域网中的3台主机,IP地址分别为192.168.26.1192.168.26.130192.168.26.132,操作系统分别为windows7windows server 2003linuxmac地址分别为00:50:56:c0:00:0800-0c-29-56-45-aa00-0c-29-8d-df-77,路由器IP192.168.26.2mac地址为00-50-56-e2-2e-3d

  




Ø 在192.168.26.130上面启动路由功能;

  

Ø 清除192.168.26.132上面的arp缓存,然后建立192.168.26.1的正常映射;

 

 

Ø 利用arpspoof工具欺骗192.168.26.132,指定192.168.26.1mac地址为00-0c-29-8d-df-77

 

 

Ø 再次查看192.168.26.132上面的arp缓存表,可以明显的看到192.168.26.1mac地址映射为00-0c-29-8d-df-77 

 

6. 补充说明(如果有需要补充的内容写在这)

ARP请求报文中在发送方硬件地址字段填上本机的物理地址,在发送方IP地址字段填入本机的协议地址,在目的协议地址字段填入准备解析的目的主机IP地址,以广播方式在以太网上发送。在ARP应答报文中,目的主机将收到的ARP请求报文中的发送方硬件地址和IP地址放入目的硬件地址和目的协议地址,在发送方硬件地址和发送方协议地址中分别填入自己的硬件地址和协议地址,在以太网上单播发送。

 

三、 IP协议的分析

1. 抓取方法描述

Ø 利用sendip工具发送ipv4

Ø 使用wireshark抓包并分析数据

 

2. 记录抓取的过程

Ø 命令行输入sendip -v -p ipv4 -d  “11054208” 192.168.26.1

 

Ø Wireshark抓到数据包;

 

 

3. 抓取数据的内容(包括分片的、未分片的、带各种选项字段的)

Ø 链路层具有最大传输单元MTU这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。以太网的MTU1500。如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片操作,使每一片的长度都小于或等于MTU。我们假设要传输一个数据包,以太网的MTU1500字节,一般IP首部为20字节。如果数据部分过大,就会出现分片现象。

Ø 发送一个长度为42字节的ip数据包,未分片;

IP首部包含了分片和重组所需的信息:

Identification:发送端发送的IP数据包标识字段都是一个唯一值,该值在分片时被复制到每个片中。
R:保留未用。
DFDon't Fragment不分片位,如果将这一比特置IP层将不对数据报进行分片。
MFMore Fragment更多的片,除了最后一片外,其他每个组成数据报的片都要把该比特置1
Fragment Offset:该片偏移原始数据包开始处的位置。偏移的字节数是该值乘以8

另外,当数据报被分片后,每个片的总长度值要改为该片的长度值。

 

Ø 我们使用最常用的windows下的ping工具来向192.168.26.132发送一个3000字节的ip包,可以看到ip包被分片;

 

 

Ø 带路由记录的ip数据包

 


 

Ø 带路由时间戳的ip数据包

 

 

 

4. 抓取数据的格式解释(可直接在抓取数据的内容旁边标注)

l 分别指出IP数据包中各个字段的内容

普通ip数据包:

 

分片ip数据包:

 

 

5. 补充说明

TCP/UDP/ICMP 数据包时,都必须以IP 包进行封装,然后才可以发出去。本节我们将以TCP数据包为例进行讲述。

 

四、 ICMP协议的分析

1. 抓取方法描述

Ø 利用nping工具发送icmp数据包;

Ø 使用wireshark抓包并分析数据;

Ø Nping --icmp 可以指定具体的代码,分别发包抓包;

 

2. 记录抓取的过程

Ø 命令行输入nping --icmp 192.168.26.1

  

Ø Wireshark抓到数据包;

  

3. 抓取数据的内容(包括各种差错报告报文和查询报文)

Ø Code=0响应应答(ECHO-REPLY

 

Ø Code=3 终点不可达;


Ø Code=4 源点抑制;

 


为了节省篇幅,下面的不再截图,道理相同;

Ø Code=5,改变路由;

Ø Code=8,响应请求;

Ø Code=11  超时;

Ø Code=12,参数问题; 

Ø Code=13时间戳请求; 

Ø Code=14时间戳应答; 

Ø Code=17地址掩码请求; 

Ø Code=18地址掩码应答; 

 

 

4. 抓取数据的格式解释(可直接在抓取数据的内容旁边标注)

l 分别指出ICMP数据包中各个字段的内容

ICMP报文格式非常简单,有类型,代码,校验和,参数和信息5个部分组成;

 

 

 

5. 哪些选项的ICMP报文无法扑捉到应答,分析其原因

 

 

6. 补充说明(如果有需要补充的内容写在这)

类型代码有:

响应应答(ECHO-REPLY

3 终点不可达

点抑制

重定向(改变路由)

响应请求(ECHO-REQUEST

11 超时

12 参数问题

13 时间戳请求

14 时间戳应答

15 信息请求(*已作废)

16 信息应答(*已作废)

17 地址掩码请求

18 地址掩码应答

其中代码为1516的信息报文已经作废。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux下发各种协议包及其详细分析 的相关文章

  • 为什么使用signalfd无法捕获SIGSEGV?

    我的系统是ubuntu 12 04 我将示例修改为man 2 signalfd 并添加sigaddset mask SIGSEGV 在示例中 但我无法得到输出SIGSEGV被生成 这是一个错误吗glibc 源代码片段如下 sigemptys
  • 如何使用 nohup 获取正在运行的程序列表

    我正在通过 SSH 连接访问运行 CentOS linux 发行版 的服务器 由于我无法始终保持登录状态 因此我使用 nohup command 来运行我的程序 我找不到如何获取我开始使用 nohup 的所有程序的列表 工作 只有在我注销之
  • 有没有办法提高linux管道的性能?

    我正在尝试使用 64 位将超高速数据从一个应用程序传输到另一个应用程序CentOS http en wikipedia org wiki CentOS6 我使用以下方法进行了基准测试dd发现阻碍我的是管道而不是程序中的算法 我的目标是达到
  • 通过名称获取进程ID

    我想在 Linux 下获得一个给定其名称的进程 ID 有没有一种简单的方法可以做到这一点 我还没有在 C 上找到任何可以轻松使用的东西 如果追求 易于使用 char buf 512 FILE cmd pipe popen pidof s p
  • Linux 中的 Windows NAmed Pipes 替代品

    我们正在将现有的 Windows 代码移植到 Linux 我们使用 ACE 作为抽象层 我们使用 Windows 命名管道与多个客户端进行通信并执行重叠操作 linux 下这个相当于什么 我检查了linux命名管道 FIFO 但它们似乎只支
  • 如何在 Ubuntu/Linux 发行版中安装 Tesseract-OCR 3.03?

    我和一个朋友有兴趣为 CV 项目训练 tesseract OCR 引擎 我们尝试使用一些包装器 例如 PyTesser 和 pyocr 但结果目前不如我们需要的那么准确 因此 我们希望尝试训练超立方体以更好地实现我们的目的 即识别食品标签上
  • gpg:抱歉,根本没有请求终端 - 无法获取输入

    解密时出现以下错误 eyaml decrypt s ENC and the key goes on here gnupg quiet no secmem warning no permission warning no tty yes de
  • 进程如何知道它已收到信号

    如果我错了 请纠正我 以下是我对信号的理解 据我所知 信号生成 和信号传递有2个不同 事物 为了产生信号 操作系统只是在位数组中设置一个位 在过程控制中维护 工艺块 PCB 每一位 对应于特定信号 当设置一个位时 这意味着 该位对应的信号为
  • X 按键/释放事件捕获,与焦点窗口无关

    我想记录所有传入的按键事件 无论哪个窗口处于焦点状态或指针位于何处 我编写了一个示例代码 它应该捕获当前焦点窗口的按键事件 include
  • Flex 的远程版本误解了我的规则

    我使用 flex 和 bison 编写了一个小汇编程序 可以在我的机器 ubuntu 10 10 上构建并运行正常 现在其他人正在尝试在 arch linux 上构建它 并且他们安装的 flex 产生了不同的 lex yy c 这是不匹配的
  • 路由是否会影响具有绑定源地址的套接字?

    假设我有两个网络接口 eth0有地址10 0 0 1 eth1有地址192 168 0 1 Using route or ip route add我已将其设置为路由 所有地址至eth0 1 2 3 4只为了eth1 所以数据包到1 2 3
  • 即使使用 rvm pkg install zlib 后也无法加载此类文件 -- zlib

    我使用 rvm 安装了 zlib 包和 ruby 1 9 3 但是每当我尝试安装时 它说宝石cannot load such file zlib 我用来安装的命令是 rvm install 1 9 3 rvm pkg install zli
  • 我们可以在 Bash 脚本中使用 PHP 吗?

    我有一个 bash 脚本abcd sh bin sh for i in seq 8 do ssh w i uptime ps elf grep httpd wc l free m mpstat done pid sleep 1 kill 9
  • Linux 阻塞与非阻塞串行读取

    I have 这段代码 https stackoverflow com questions 6947413 how to open read and write from serial port in c用于在Linux中从串行读取 但我不
  • C# - OPC-UA 服务器应用程序尚未在 Linux 计算机中创建 PKI 证书

    当我跑步时OPC UA serverWindows 机器中的 C 应用程序 然后 OPC UA 服务器已创建证书路径C ProgramData OPC Foundation pki own 并在此路径中生成一些证书 但是当我在中安装 OPC
  • X 服务器使用什么像素格式?

    X 服务器使用什么像素格式 RGBA ARBG BGRA 如果有任何特定格式的话 Update 我专门寻找有关颜色分量顺序和位模式的信息 你的意思是帧缓冲区格式 或者所有支持的像素图格式 无论是哪一种 都取决于您的图形硬件 驱动程序和配置
  • _dl_runtime_resolve -- 共享对象何时加载到内存中?

    我们有一个对性能要求很高的消息处理系统 最近我们注意到第一条消息比后续消息花费的时间要长很多倍 当它通过我们的系统时 会发生大量转换和消息增强 其中大部分是通过外部库完成的 我刚刚描述了这个问题 使用 callgrind 将仅一条消息的 运
  • 我如何知道用户在使用 ncurses (Linux) 的控制台中按下了 ESC 键?

    I have a problem in detecting whether I just got a plain ESC key just code 27 or whether it was another special key such
  • 选择多个模式的 awk 代码

    这是我的输入文件 比如modified txt r4544 n479826 2012 08 28 07 12 33 0400 Tue 28 Aug 2012 1 line Changed paths M branches 8 6 0 con
  • Linux shell 标题大小写

    我正在编写一个 shell 脚本并有一个如下所示的变量 something that is hyphenated 我需要在脚本中的各个点使用它 如下所示 something that is hyphenated somethingthati

随机推荐

  • 谷粒学院学习知识点汇总-------01

    前言 谷粒学院视频的系列首先先是学习一波理论知识 xff0c 最后跟着视频敲一遍整个项目 xff0c 到部署项目上线 xff0c 给自己定个flag xff0c 一个月之内完成项目部署上线 一 事务 1 1事务是数据库操作最基本单元 xff
  • Ubuntu下vscode的简单配置C/C++环境

    下载vscode并安装 方法1 在ubuntu软件中搜索 vscode下载 xff0c 但是我失败了 方法2 直接去官网下载https code visualstudio com Download xff0c 下载Linux版本的并安装 方
  • ubuntu zip和unzip命令

    zip span class token operator span r myfile span class token punctuation span zip test span class token operator span un
  • 一、ROS2简介

    ros2相关简介 ROS2的前身是ROS xff0c ROS即机器人操作系统 xff08 Robot Operating System xff09 但是ROS本身并不是一个操作系统 xff0c 而是一个软件库和工具集 Ros的出现解决了机器
  • 二、ROS2基本操作

    ROS2节点 ROS2的节点讲究分工合作 xff0c 每个节点负责一个单独的模块化功能 举一个激光雷达的例子 xff0c 一个节点负责获取激光雷达的扫描数据 xff0c 一个节点负责处理激光雷达数据 xff0c 还有一个节点负责控制车轮转动
  • 六、ROS2通信机制(服务)

    一 服务介绍 客户端发送请求给服务端 xff0c 服务端可以根据客户端的请求做一些处理 xff0c 然后返回结果给客户端 这里与话题的主要区别就是 xff1a 话题是没有返回的 xff0c 适用于单向或大量的数据传递 而服务是双向的 xff
  • 作业4-8-5:HBase Shell插入数据:学生表、课程表、选课表

    现有以下关系型数据库中的表和数据 xff0c 要求将其转换为适合于HBase存储的表并插入数据 xff1a 学生表 xff08 Student xff09 keyRow 学号 xff08 S No xff09 姓名 xff08 S Name
  • 树莓派4B连接PCF8591模块

    1 PCF8591是8位的数模 模数转换集成芯片 xff0c 如图 1 xff08 详细介绍可以点击参考 xff09 图 1 PCF8591 2 AIN0 AIN3接模拟输入 xff0c 比如气体传感器 xff0c 能外接三个通道的模拟输入
  • “指定的网络名不再可用”解决办法

    主机操作系统 xff1a win10 linux操作系统 xff1a ubuntu22 04 在Windows下安装ubuntu xff08 wsl xff09 时 xff0c 出现 指定的网络名不再可用 xff0c 解决办法如下 xff1
  • Jetson xavier nx 安装CUDA10.2,和cudnn8.0

    2022 6 16更新 现在Jetson xavier nx 安装CUDA和CUDNN不需要下面那么复杂了 xff0c 可以直接通过刷机将其安装到设备上 在官网下载SDK Manager可以直接将CUDA烧录进设备 xff08 特别注意如果
  • 关于return用法时,return报错。

    在for循环里面return想要跳出全部循环时 xff0c 会报语法错误SyntaxError return outside function 原因是return只能写在def函数里面 没有def n span class token op
  • 联邦卡尔曼滤波

    联邦Kalman滤波 利用Kalman滤波技术对多传感器数据进行最优融合有两种途径 集中式Kalman滤波和分散化滤波 集中式Kalman滤波利用一个滤波器来集中处理所有子系统的信息 分散化滤波利用子滤波器处理子系统的信息通过全局滤波器实现
  • 教你10分钟完成智能小车的PID调速

    简介 这是我在CSDN上面的第一篇博客 xff0c 来分享一下我是如何用最短的时间进行智能小车的PID调速的 在疫情期间比较无聊 xff0c 在某宝买了一个智能小车底盘和一堆零件 xff0c 基于Arduino Due和树莓派进行开发 xf
  • 实战低通滤波和卡尔曼滤波

    目录 背景所需硬件与软件理论基础一阶低通滤波卡尔曼滤波 仿真验证实际验证总结 背景 滤波这个词对任何一个工科生都不会陌生 xff0c 尤其是做控制或者信号方面的从业者和学生 我们不仅可以通过硬件滤波也可以通过软件设计算法滤波 xff0c 这
  • matplotlib保存图片为pdf格式,文字以字体形式保存,可以illustrator编辑,而不是喵点格式。

    用默认的 plt savefig xff08 xff09 保存的图片 xff0c 图利和label都是以瞄点保存的 xff0c 而不是以文字格式 这样在矢量图编辑中想要调整文字大小和字体时都不方便 使用mpl可以设置pdf图片文字以字体形式
  • 树莓派新系统无键盘安装与设置

    sudo raspi config 1 在Boot根目录下创建文件 xff1a wpa supplicant conf xff1a country 61 CN ctrl interface 61 DIR 61 var run wpa sup
  • 无人机自动驾驶软件系列 E01:OFFBOARD控制以及Gazebo仿真

    引言 https gaas gitbook io guide software realization build your own autonomous drone wu ren ji zi dong jia shi xi lie off
  • 一定能解决ROS系统 rosdep update超时问题de简单方法

    rosdep update命令使用 该方法是可以跳过sudo rosdep init初始化命令设置的 xff0c 前提是安装ros xff1a https blog csdn net weixin 44023934 article deta
  • 使用速腾雷达32线Helios和fast-LIO2算法建图(一)

    一 配置激光雷达数据 参考链接Ubuntu18 04 安装速腾聚创最新驱动RSLidar SDK采集XYZIRT格式的激光点云数据 SLAM不学无术小问题 下载驱动文件内部也有使用说明 第一步 xff1a 下载rslidar sdk xff
  • linux下发各种协议包及其详细分析

    申明 xff1a 本实验在一个虚拟机环境下完成 xff0c ip分别为 192 168 26 1 和 192 168 26 132 一 以太帧格式的分析 1 抓取方法描述 在192 168 26 132浏览网页产生数据包 xff1b 通过w