wireshark的安装使用及相关UDP、TCP、 ARP

news2024/12/30 3:11:43

初步了解:

进入wireshark后如图:

屏幕截图 2024-04-28 171149

从图中可以看到很多网络连接在操作的时候我们需要监测哪些 我们可以直接在本地的运行框中输入ipconfig来查看

如图:

屏幕截图 2024-04-28 172641

从以上图片中我们可以清楚地看到哪些网络连接已经连接的我们只需要按需监测他们即可

但是我们的发现在最上面的图片中的序号3所指向的Adapter for loopback traffic capture这个是用来捕获环回流量的

环回流量

  1. 本地主机之间的通信:

    当你在本地主机上运行一个服务器应用程序(如 Web 服务器、数据库服务器等)时,客户端与服务器之间的通信可能会使用环回接口。例如,你在本地主机上运行一个 Web 服务器,并通过浏览器访问该服务器,此时浏览器向服务器发送的 HTTP 请求就会经过环回接口。

  2. 本地主机上的网络服务:

    当你在本地主机上运行一个网络服务(如 DNS 服务器、代理服务器等)时,该服务可能需要与自身进行通信。例如,当你的计算机上运行一个 DNS 服务器,并且其他程序需要解析域名时,这些程序向本地 DNS 服务器发送的 DNS 查询请求就会经过环回接口。

    在wireshark中存在两种模式

屏幕截图 2024-04-28 175854

具体开启方式如图标注:

屏幕截图 2024-04-28 180558

屏幕截图 2024-04-28 180609

Tcp

TCP全称传输控制协议,必须对数据的传输进行控制

tcp连接三次握手:

(第一次握手syn=1,第二次syn=1 ack=1,第三次ack=1)

屏幕截图 2024-05-04 182226

tcp.flags.syn==1 and tcp.flags.ack==0表示筛选出由本机发送的请求并且通信协议是tcp其中的flags表示数据包头部中的特定位或字段

在 TCP 协议中,常见的标志位包括:

  1. SYN(同步):用于发起连接,表示请求建立连接。

  2. ACK(确认):用于确认数据包的接收,表示已收到数据包。

  3. FIN(结束):用于关闭连接,表示不再发送数据。

  4. RST(复位):用于重置连接,表示连接异常或被拒绝。

  5. PSH(推送):用于立即传送数据,表示应用层数据应立即传输而不缓存。

  6. URG(紧急):表示数据包中有紧急数据,需要优先处理。

具体如图:

第一次握手:

屏幕截图 2024-05-04 185641

第二次握手:

屏幕截图 2024-05-04 191106

第三次握手:

屏幕截图 2024-05-04 191125

我们可以在流量图中很形象的看到三次握手 具体操作如图:

屏幕截图 2024-05-04 192704

流量图如图:

屏幕截图 2024-05-04 193501

找到正确的流量指向方法:(可以依据目标ip、端口和源ip、端口即可)

tcp连接断开四次挥手

原理如图:

屏幕截图 2024-05-04 194913

屏幕截图 2024-05-04 195203

相关数据:

屏幕截图 2024-05-04 211423

第一次挥手:

屏幕截图 2024-05-04 211449

第二次:

屏幕截图 2024-05-04 211530

第三次:

屏幕截图 2024-05-04 211616

第四次:

屏幕截图 2024-05-04 211625

关于在wireshark中的相关过滤的操作:

tcp.flags.syn==1 and tcp.flags.ack==0可以找到三次握手(根据三次握手的信息不同即可做出区分)

ip.src_host==127.0.0.1(可以找到指定ip所发送的请求)

ip.dst_host==202.108.22.5(可以找到数据所发送到的地方)

二者可以通过or或者and来连用

如图:

屏幕截图 2024-04-28 214116

ip.addr==127.0.0.1(此命令可以把ip为127.0.0.1的全部显示出来)

ARP协议

地址解析协议ARP(Address Resolution Protocol)

分类:普通ARP、反向ARP(RARP)、免费ARP和代理ARP

网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的

根据IP地址获取物理地址一个TCP/IP协议

这句话的意思是(根据IP地址获取物理地址一个TCP/IP协议"的意思是指通过使用 TCP/IP 协议来查询某个设备的 IP 地址,然后利用这个 IP 地址去获取相应设备的物理地址(即 MAC 地址)。这个过程通常通过 ARP(地址解析协议)来实现,ARP 会将 IP 地址映射到对应的 MAC 地址)

根据 IP 地址获取物理地址的过程涉及到 TCP/IP 模型中的多个层面:

  1. 物理层:物理层定义了数据传输的物理媒介和信号传输的规范。尽管获取物理地址的过程通常不直接涉及物理层,但是在实际数据传输中,通过物理层的传输媒介,如网线、无线信号等,才能确保数据帧从源设备传输到目标设备。

  2. 数据链路层:数据链路层负责将数据帧从一个网络设备传输到相邻的网络设备。在这个层面上,每个网络设备都有一个唯一的物理地址,即 MAC 地址。ARP 协议在数据链路层上实现,用于将 IP 地址映射到对应的 MAC 地址,以便进行数据帧的传输。

  3. 网络层:网络层使用 IP 地址来唯一标识网络中的设备,并负责数据包的路由和转发。获取物理地址的过程中,首先需要查询目标设备的 IP 地址,然后通过 ARP 协议将该 IP 地址映射到相应的 MAC 地址,以确定数据帧的接收者。

  4. 应用层:尽管获取物理地址的过程通常不涉及应用层,但某些应用程序可能会利用网络信息(如 IP 地址)来实现特定功能,例如网络发现或远程管理。

根据 IP 地址获取物理地址的过程涉及到 TCP/IP 模型中的多个层面,包括物理层、数据链路层、网络层和在某些情况下可能涉及的应用层

根据 IP 地址获取物理地址的过程不涉及传输层因为输层主要负责从发送端到接收端的数据传输和通信

一个数据包的传输流程如下:

  1. 应用层:数据包从应用程序生成,该层负责应用程序与网络的通信。例如,HTTP、FTP、SMTP 等协议运行在应用层。

  2. 传输层:传输层负责提供端到端的通信服务。例如,TCP 和 UDP 协议运行在传输层,它们将数据分割成数据段,并添加相应的头部信息。

  3. 网络层:网络层负责将数据包从源主机传输到目标主机。在这个过程中,数据包被封装成 IP 数据包,并添加相应的 IP 头部信息。“路由器”等网络设备在网络层进行路由和转发。

  4. 数据链路层:数据链路层负责将数据包从一个网络设备传输到相邻的网络设备。在这个过程中,数据包被封装成帧,并添加相应的数据链路层头部信息。“交换机、网桥”等网络设备在数据链路层进行数据帧的转发。

  5. 物理层:物理层负责定义物理连接和传输介质的特性,例如电压、频率等。在这个层面上,数据被转换成比特流,并通过物理介质传输。

所以,在一个数据包的传输过程中,并不是所有的层都被逐一经过。例如,当两台主机在同一局域网中进行通信时,数据包可能只经过数据链路层和物理层,而不经过网络层和传输层。而在跨越多个网络进行通信时,数据包则会经过更多的层次。

在wireshark上操作

查看arp协议 建议可以先去随便ping一下这样比较方便的去看出网关和本机的交互过程

再看之前需要先去分清本地ip和网关ip

如图:(因为我在这里抓的是WLAN的包所以选择去查看WLAN分发的ip)

屏幕截图 2024-05-04 133337

然后如图:

屏幕截图 2024-05-04 132240

第一行:

  • Frame 13663: 这是数据包的编号,表示网络捕获工具捕获的第13663个数据包。

  • 60 bytes on wire (480 bits): 数据包在网络上传输时的大小,以字节和位表示。

  • 60 bytes captured (480 bits): 实际捕获到的数据包大小,以字节和位表示。

  • on interface \Device\NPF_{7921C416-3C04-48A7-8126-1736AC2C8BE7}: 数据包捕获时所使用的网络接口,这里是一个设备标识符。

  • id 0: 数据包的标识符,通常用于唯一标识捕获到的每个数据包

上图中的ARP部分如下:

屏幕截图 2024-05-04 134844

  • Hardware type(硬件类型): 指定硬件类型,这里是以太网(Ethernet)。

  • Protocol type(协议类型): 指定网络层协议类型,这里是IPv4。

  • Hardware size(硬件地址长度): 指定硬件地址的长度,这里是6个字节也就是48位(以太网地址的长度)。

  • Protocol size(协议地址长度): 指定协议地址的长度,这里是4个字节(IPv4地址的长度)。

  • Opcode(操作码): 指定ARP消息类型,这里是请求(request)。

  • Sender MAC address(发送者MAC地址): 指定发送ARP请求的设备的MAC地址,这里是 FiberhomeTel_2e:2d:40(68🇩🇪ce:2e:2d:40)。

  • Sender IP address(发送者IP地址): 指定发送ARP请求的设备的IPv4地址,这里是192.168.1.1。

  • Target MAC address(目标MAC地址): 指定要解析MAC地址的设备的MAC地址,这里是未知,表示正在请求目标设备的MAC地址。

  • Target IP address(目标IP地址): 指定要解析MAC地址的设备的IPv4地址,这里是192.168.0.159,表示正在请求该IP地址对应的设备的MAC地址。

这个过程表示的是网关在向本机请求mac地址的过程 其中192.168.0.159是本机ip

192.168.1.1是网关ip

以上是网关的请求(request)包 下面是本机的响应(reply)包

屏幕截图 2024-05-04 140453

从arp中可得出本机返回到网关中的数据包中含有本机的mac地址

wireshark之ICMP协议

ICMP(Internet Control Message Protocol,互联网控制消息协议)是用于在IP网络中发送错误报告和操作消息的协议

它可以帮助网络设备进行错误报告、连通性测试和路由器通知,从而确保网络的正常运行。它是TCP/IP协议族的一部分,通常用于网络设备之间的通信。以下是 ICMP 协议的一些重要特点:

  1. 错误报告:ICMP用于发送各种类型的错误报告,例如目标不可达、超时等。当路由器或主机在传输数据时遇到问题时,会向源发送ICMP错误报告。

  2. Ping测试:ICMP还用于执行ping测试,即向目标主机发送一个ICMP回显请求(Echo Request),然后接收目标主机发送的回显回复(Echo Reply)。这种测试通常用于确定网络连接的连通性和延迟。

  3. 路由器通知:ICMP也可以用于向网络中的设备发送路由器通知。例如,当一个路由器重新启动或一个网络出现故障时,它可以发送ICMP通知,通知其他设备发生了什么情况。

  4. 消息类型:ICMP消息分为多种类型,包括错误消息和查询消息。错误消息用于指示发生了某种错误,而查询消息用于向其他设备发出请求或回复。

  5. 轻量级:ICMP是一个轻量级的协议,通常不需要建立连接就可以发送消息,因此它对网络开销很小。

如果想去瞅瞅icmp数据包长啥样我们可以去尝试直接ping个东西即可比如ping一下网关 不知道网关ip的话可以去在终端直接去ipconfig一下

如图:

屏幕截图 2024-05-04 145027

屏幕截图 2024-05-04 145233

  • Internet Control Message Protocol: 表示传输层使用的是ICMP协议。

  • Type: 8 (Echo (ping) request): ICMP消息类型,表示这是一个回显请求(ping请求)。

  • Code: 0: ICMP消息的代码字段,用于进一步指定消息类型。0表示发送成功

  • Checksum: 校验和字段,用于检测数据包在传输过程中是否发生了错误。

  • Identifier: 用于标识回显请求的唯一标识符。

  • Sequence Number: 用于标识回显请求的序列号。

  • Data: 数据字段,这里包含32字节的数据。

这个数据包是一个ICMP回显请求,即ping请求,发送者的IP地址是192.168.0.159,接收者的IP地址是192.168.0.1。

wireshark抓HTTP协议

可以在终端输入curl -I baidu.com

(这条命令是使用 curl 命令对百度网站发送一个 HEAD 请求,并输出响应的头部信息)

如图:

屏幕截图 2024-05-04 213246

流量图:

UDP 协议

UDP全称为用户数据报协议。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法

协议特点
1.无连接:只知道对端的IP和端口号就可以发送,不需要实现建立连接。(就像寄信)。
2.不可靠:没有确认机制, 没有重传机制。如果因为网络故障该段无法发到对方, UDP协议层也不会给应用层返回任何错误信息。
3.面向数据报: 应用层交给UDP多长的报文, UDP原样发送既不会拆分,也不会合并。所以UDP不能够灵活的控制读写数据的次数和数量。
4.UDP存在接收缓冲区,但不存在发送缓冲区。UDP没有发送缓冲区,在调用send to时会直接将数据交给内核,由内核将数据传给网络层协议进行后续的传输动作。UDP具有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报文的顺序和发送UDP报的顺序一致,如果缓冲区满了再到达的UDP数据报就会被丢弃。

为什么UDP不需要发送缓冲区?

因为UDP不保证可靠性,它没有重传机制,当报文丢失时,UDP不需要重新发送,而TCP不同,他必须具备发送缓冲区,当报文丢失时,TCP必须保证重新发送,用户不会管,所以必须要具备发送缓冲区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1642425.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu搭建kms服务器

1.下载kms开源包(如果提示找不到wget命令的话:apt install wget): wget https://github.com/Wind4/vlmcsd/releases/download/svn1111/binaries.tar.gz2.解压: tar -xzvf binaries.tar.gz接着cd 进入 Linux/intel/static/ 文件夹下: 3.选择对应的文件,这里我们选…

第十篇:深入文件夹:Python中的文件管理和自动化技术

深入文件夹:Python中的文件管理和自动化技术 1 文件系统基础操作 在今天的技术博客中,我们将深入探讨Python中的文件系统基础操作。文件系统对于任何操作系统都是不可或缺的组成部分,它管理着数据的存储、检索以及维护。Python通过其标准库中…

NEO 学习之session7

文章目录 选项 A:它涉及学习标记数据。 选项 B:它需要预定义的输出标签进行训练。 选项 C:它涉及在未标记的数据中寻找模式和关系。 选项 D:它专注于根据输入-输出对进行预测。 答案:选项 C 描述了无监督学习的本质&am…

Codeforces Round 943 (Div. 3 ABCDEFG1G2题) 视频讲解

A. Maximize? Problem Statement You are given an integer x x x. Your task is to find any integer y y y ( 1 ≤ y < x ) (1\le y<x) (1≤y<x) such that gcd ⁡ ( x , y ) y \gcd(x,y)y gcd(x,y)y is maximum possible. Note that if there is more tha…

西门子V90参数移植方法

西门子V90参数移植方法 应用方面 由于设备老化损坏&#xff0c;需要更换V90驱动器&#xff0c;但是由于新驱动器与旧驱动器出现版本不一样时参数就会无法直接下载到新的驱动器里面&#xff0c;为了保证更换驱动器的稳定性最好能使用之前设备的参数&#xff0c;所以写了关于V9…

深度学习500问——Chapter08:目标检测(7)

文章目录 8.3.8 RFBNet 8.3.9 M2Det 8.3.8 RFBNet RFBNet有哪些创新点 1. 提出RF block&#xff08;RFB&#xff09;模块 RFBNet主要想利用一些技巧使得轻量级模型在速度和精度上达到很好的trade-off的检测器。灵感来自人类视觉的感受野结构Receptive Fields&#xff08;RFs…

5G Advanced and Release18简述

5G Advanced 5G-Advanced, formally defined in 3GPP Release 18, represents an upgrade to existing 5G networks. 先睹robot总结的5G Advanced的advancements: Enhanced Mobility and Reliability: 5G-Advanced will support advanced applications with improved mobility…

将VM虚拟机Ubuntu20.04系统扩容

一、拓展虚拟机硬盘空间 随着学习的深入&#xff0c;虚拟机里面的内容越来越多&#xff0c;我们可能会面临着硬盘空间不足的问题。今天我们就来沉浸式体验一把给虚拟机扩容。 二、拓展VM虚拟机硬盘前须知 在硬盘拓展时需要注意的一点是有快照的话拓展不了说是&#xff0c;先删除…

【SRC-Python】在数字与字母 / 中文与英文之间插入空格的自动化解决方案

文章目录 Part.I IntroductionPart.II 使用方法Chap.I 直接处理字符串Chap.II 处理文件 Part.III Source CodeReference Part.I Introduction 在编辑文本的过程中&#xff0c;尤其是在 COPY 的过程中&#xff0c;经常会遇到如下问题&#xff1a; 源文本数字与英文字母之间没有…

Vue单页面应用和多页面应用的区别

概念&#xff1a; SPA单页面应用&#xff08;SinglePage Web Application&#xff09;&#xff0c;指只有一个主页面的应用&#xff0c;一开始只需要加载一次js、css等相关资源。所有内容都包含在主页面&#xff0c;对每一个功能模块组件化。单页应用跳转&#xff0c;就是切换…

麦克纳姆轮 Mecanum 小车运动学模型和动力学分析

目录 一、简介 二、运动学模型分析 1. 逆运动学方程 2. 正运动学方程 三、动力学模型 四、广泛运动学模型 一、简介 参考文献https://www.geometrie.tugraz.at/gfrerrer/publications/MecanumWheel.pdf 移动机器人的运动学模型是为了解决小车的正向运动学和逆向运动学问…

Liunx磁盘管理(中)

Liunx磁盘管理(上)-CSDN博客 目录 查看块设备信息 lsblk&#xff08;list block devices&#xff09; fdisk gdisk parted blkid df&#xff08;disk free&#xff09; 虚拟机添加硬盘 步骤&#xff1a; 磁盘分区 MBR格式创建分区 使用方法 替代工具 GPT分区格式…

mysq重连次数过多错误和Public Key Retrieval错误解决记录

文章目录 问题记录和解决方法Public key问题解决many connection errors问题解决 问题记录和解决方法 本次出现错误是&#xff1a;在重启服务器&#xff0c;启动seata应用druid连接mysql作为存储源时出现。主要出现了两个错误&#xff1a;第一个问题&#xff0c;通常采用修改连…

STM32G474 CMAKE VSCODE FREERTOS 导入

一. 文件准备 1. 首先下载 freertos FreeRTOS - Free RTOS Source Code Downloads, the official FreeRTOS zip file release download 2. 移动 FreeRTOS-Kenel 到 moto_control 文件夹下。 3. 将 FreeRTOSConfig.h 放到 /Core/Inc 下面 4. 由于 FreeRTOSConfig.h 中使用了…

我们的手机是如何连接上网的?骨干网又是什么?

什么是骨干网&#xff08;Backbone Network&#xff09; 几台计算机连接起来&#xff0c;互相可以看到其他人的文件&#xff0c;这叫局域网。整个城市的计算机都连接起来&#xff0c;就是城域网。把城市之间连接起来的网就叫骨干网。 这些骨干网是国家批准的可以直接和国外连…

【netty系列-03】深入理解NIO的基本原理和底层实现(详解)

Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…

如何构建用于从收据中提取信息的生成式人工智能工具

原文地址&#xff1a;how-to-build-a-generative-ai-tool-for-information-extraction-from-receipts 使用 LangChain 和 OpenAI 工具从 Google Drive 中存储的收据图像中提取结构化信息 2024 年 4 月 10 日 纸质收据有各种样式和格式&#xff0c;是自动信息提取的一个有趣目…

bpmn-js推荐几款常用的插件

bpmn-js整体框架库的风格是以组件的方式进行实现的,这样的结构也更加便于我们更好的对其进行功能扩展,以及客制化功能实现。其实bpmn.io已经为我们实现了较多场景的组件的实现,了解对应组件的功能更能便于我们区分是否需要自己实现,降低重复造轮子的行为,提高开发效率,本…

All In ai,Oracle 23C没了,等来了Oracle 23ai

今年一月份的Blog介绍Oracle命名规则的时候&#xff0c;说到Oracle的命名是紧紧跟随时代浪潮的前言科技的&#xff0c;在文章的最后还大胆预测也许Oracle的下一个版本就叫25A了&#xff0c;结果Oracle根本等不及&#xff0c;把原来已经海量宣传的Oracle 23C直接改名为23ai&…

《苍穹外卖》前端课程知识点记录

一、VUE基础知识 基于脚手架创建前端工程 1. 环境要求 安装node.js&#xff1a;Node.js安装与配置&#xff08;详细步骤&#xff09;_nodejs安装及环境配置-CSDN博客查看node和npm的版本号 安装Vue CLI&#xff1a;Vue.js安装与创建默认项目&#xff08;详细步骤&#xff09;…