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

初步了解:

进入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.mfbz.cn/a/592820.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LinuxC语言】信号集与sigprocmask

文章目录 前言一、信号集1.1 操作信号集相关的函数1.2 信号屏蔽字1.3 sigprocmask1.4 示例代码 总结 前言 在Linux C编程中,信号是一种重要的进程间通信机制,用于通知进程发生了特定的事件。然而,程序在执行过程中可能会收到各种各样的信号&…

银河麒麟桌面版开机后网络无法自动链接 麒麟系统开机没有连接ens33

1.每次虚拟机开机启动麒麟操作系统,都要输入账号,密码。 进入点击这个ens33 内网才连接 2. 如何开机就脸上呢? 2.1. 进入 cd /etc/sysconfig/network-scripts 2.2 修改参数 onbootyes 改为yes 2.3 重启即可 a. 直接重启机器查看是否正常&…

软件工程习题答案2024最新版

习题一答案 一、选择题 软件的主要特性是(A B C)。 A) **无形 **B) 高成本 C) **包括程序和文档 ** D) 可独立构成计算机系统 软件工程三要素是(B)。 A) 技术、方法和工具 B) 方法、工具和过程 C) 方法、对象和类 D) 过程、模型、方法 包含风险分析的软件工程模型是(A)…

Reactor模型详解

目录 1.概述 2.Single Reactor 3.muduo库的Multiple Reactors模型如下 1.概述 维基百科对Reactor模型的解释 The reactor design pattern is an event handling pattern for handling service requests delivered concurrently to a service handler by one or more inputs.…

【Java基础】三大特性——封装

封装 只对外提供有用的属性和行为 方法的封装 外界不会用到的方法 class MyMath {//private私有 封装函数:只对外提供有用的属性和行为private void toAny(int num,int base,int offSet){……}public void toHex( int num){toAny( num,15,4);}…… } class Demo…

GNU Radio创建FFT、IFFT C++ OOT块

文章目录 前言一、GNU Radio官方FFT弊端二、创建自定义的 C OOT 块1、创建 OOT 模块2、创建 OOT 块3、修改 C 和 CMAKE 文件4、编译及安装 OOT 块 三、测试1、grc 图2、运行结果①、时域波形对比②、频谱图对比 四、资源自取 前言 GNU Radio 自带的 FFT 模块使用起来不是很方便…

新型直膨式光伏光热热泵/动力热管复合循环系统

太阳能光伏光热热泵(即PVT热泵)技术是建筑领域内实现碳中和的有效技术手段,该技术具有优越的热电冷联产能力。然而,现有的PVT热泵在良好的室外工况下能耗较高。为了解决这一问题,本文提出了一种新型的DX-PVT热泵/动力热…

书接上文,助力智能化诊断高质提效,基于轻量级CNN模型MobileNet开发构建人体手骨X光骨骼骨龄分析识别系统

骨龄是骨骼年龄的简称,需要借助于骨骼在X光摄像中的特定图像来确定。通常要拍摄左手手腕部位的X光片,医生通过X光片观察来确定骨龄。这在临床上是一件非常消耗精力和时间的一项放射临床工作。写一个骨龄可能要10多分钟去完成。如果一天要写几十个骨龄&am…

10G MAC层设计系列-(4)MAC TX模块

一、前言 MAC TX模块就是要将IP层传输过来的数据封装前导码、MAC地址、帧类型以及进行CRC校验,并与CRC值一块组成以太网帧。 二、模块设计 首先对输入的数据进行缓存,原因是在之后要进行封装MAC帧头,所以需要控制数据流的流动 FIFO_DATA_6…

基于K8S构建Jenkins持续集成平台

文章目录 安装和配置NFSNFS简介NFS安装 在Kubernetes安装Jenkins-Master创建NFS client provisioner安装Jenkins-Master Jenkins与Kubernetes整合实现Jenkins与Kubernetes整合构建Jenkins-Slave自定义镜像 JenkinsKubernetesDocker完成微服务持续集成拉取代码,构建镜…

茶树(山茶属)CCoAOMT基因家族的全基因组鉴定、表达分析和蛋白质相互作用分析-全基因组家族分析-文献精读13

Genome-wide identification, expression profiling, and protein interaction analysis of the CCoAOMT gene family in the tea plant (Camellia sinensis) 茶树(山茶属)CCoAOMT基因家族的全基因组鉴定、表达分析和蛋白质相互作用分析,一篇…

详解SDRAM基本原理以及FPGA实现读写控制(一)

文章目录 一、SDRAM简介二、SDRAM存取结构以及原理2.1 BANK以及存储单元结构2.2 功能框图2.3 SDRAM速度等级以及容量计算 三、SDRAM操作命令3.1 禁止命令: 4b1xxx3.2 空操作命令:4b01113.3 激活命令:4b00113.4 读命令:4b01013.5 写…

5分钟速通大语言模型(LLM)的发展与基础知识

✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝…

【UnityRPG游戏制作】Unity_RPG项目_玩法相关

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:就业…

大语言模型教程与实践(开源)

1.简介 大语言模型(Large Language Models, LLMs)的兴起确实始于OpenAI在2018年发布的GPT(Generative Pre-trained Transformer),这一开创性工作引领了自然语言处理领域的新纪元。随后,2022年底ChatGPT的横…

基于Spring Boot的在线BLOG网设计与实现

基于Spring Boot的在线BLOG网设计与实现 开发语言:Java框架:springbootJDK版本:JDK1.8数据库工具:Navicat11开发软件:eclipse/myeclipse/idea 系统部分展示 前台首页管理界面,用户经过登录前台首页查看通…

SQL Server 存储过程中的字符串本身包含单引号的用法

文章目录 引言I 存储过程中的字符串本身包含单引号的用法1.1 问题1.2解决方法引言 使用场景: 字符串类型字段的值比较 I 存储过程中的字符串本身包含单引号的用法 在SQL Server中,单引号用于表示字符串常量。如果你的存储过程中的字符串本身包含单引号,你需要用两个连续的…

3.2Java全栈开发前端+后端(全栈工程师进阶之路)-前端框架VUE3框架-企业级应用- Vuex

Vuex简介 Vuex概述 Vuex是一个专门为Vue.js应用程序开发的状态管理模式, 它采用集中式存储管理所有组件的公共状态, 并以相应的规 则保证状态以一种可预测的方式发生变化. 试想这样的场景, 比如一个Vue的根实例下面有一个根组件名为App.vue, 它下面有两个子组件A.vue和B.vu…

【C++】文件

目录 文件文件分类文本文件的读写(ASCII文件)的读写打开文件打开文件的方式关闭文件将数据写入ASCII文件从ASCII文件读入数据 二进制存储对比ASCII和二进制存储用成员函数read和write读写二进制文件打开方式文件的读入与读出 文件 所谓文件,一般指存储在外部介质上…