一站式学习Wireshark(二):应用Wireshark观察基本网络协议

wireshark使用说明 Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。当计算机上有多个网卡的时候,需要选择一个网卡。Wireshark能获取HTTP,也能获取HTTPS,但不能解密HTTPS。测试本地地址,需要测试Adapter for loopback traffic capture 本地环回口测试。 阅读详情

转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese

TCP:

 

TCP/IP通过三次握手建立一个连接。这一过程中的三种报文是:SYN,SYN/ACK,ACK。

 

第一步是找到PC发送到网络服务器的第一个SYN报文,这标识了TCP三次握手的开始。

如果你找不到第一个SYN报文,选择Edit -> Find Packet菜单选项。选择Display Filter,输入过滤条件:tcp.flags,这时会看到一个flag列表用于选择。选择合适的flag,tcp.flags.syn并且加上==1。点击Find,之后trace中的第一个SYN报文就会高亮出来了。

image001.png

注意:Find Packet也可以用于搜索十六进制字符,比如恶意软件信号,或搜索字符串,比如抓包文件中的协议命令。

 

一个快速过滤TCP报文流的方式是在Packet List Panel中右键报文,并且选择Follow TCP Stream。这就创建了一个只显示TCP会话报文的自动过滤条件。

这一步骤会弹出一个会话显示窗口,默认情况下包含TCP会话的ASCII代码,客户端报文用红色表示服务器报文则为蓝色。

 

窗口类似下图所示,对于读取协议有效载荷非常有帮助,比如HTTP,SMTP,FTP。

image002.png

 

更改为十六进制Dump模式查看载荷的十六进制代码,如下图所示:

image003.png

 

关闭弹出窗口,Wireshark就只显示所选TCP报文流。现在可以轻松分辨出3次握手信号。

image004.png

注意:这里Wireshark自动为此TCP会话创建了一个显示过滤。本例中:(ip.addr eq 192.168.1.2 and ip.addr eq 209.85.227.19) and (tcp.port eq 80 and tcp.port eq 52336)

 

SYN报文:

图中显示的5号报文是从客户端发送至服务器端的SYN报文,此报文用于与服务器建立同步,确保客户端和服务器端的通信按次序传输。SYN报文的头部有一个32 bit序列号。底端对话框显示了报文一些有用信息如报文类型,序列号。

 

SYN/ACK报文:

7号报文是服务器的响应。一旦服务器接收到客户端的SYN报文,就读取报文的序列号并且使用此编号作为响应,也就是说它告知客户机,服务器接收到了SYN报文,通过对原SYN报文序列号加一并且作为响应编号来实现,之后客户端就知道服务器能够接收通信。

 

ACK报文:

8号报文是客户端对服务器发送的确认报文,告诉服务器客户端接收到了SYN/ACK报文,并且与前一步一样客户端也将序列号加一,此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

 

ARP & ICMP:

 

开启Wireshark抓包。打开Windows控制台窗口,使用ping命令行工具查看与相邻机器的连接状况。

image005.png

 

停止抓包之后,Wireshark如下图所示。

ARP和ICMP报文相对较难辨认,创建只显示ARP或ICMP的过滤条件。

image006.png

ARP报文:

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。其功能是:主机将ARP请求广播到网络上的所有主机,并接收返回消息,确定目标IP地址的物理地址,同时将IP地址和硬件地址存入本机ARP缓存中,下次请求时直接查询ARP缓存。


最初从PC发出的ARP请求确定IP地址192.168.1.1的MAC地址,并从相邻系统收到ARP回复。ARP请求之后,会看到ICMP报文。


ICMP报文:

网络控制消息协定(Internet Control Message Protocol,ICMP)用于TCP/IP网络中发送控制消息,提供可能发生在通信环境中的各种问题反馈,通过这些信息,令管理者可以对所发生的问题作出诊断,然后采取适当的措施解决。


PC发送echo请求,收到echo回复如上图所示。ping报文被mark成Type 8,回复报文mark成Type 0。

 

如果多次ping同一系统,在PC上删除ARP cache,使用如下ARP命令之后,会产生一个新的ARP请求。

C:\> ping 192.168.1.1

... ping output ...

C:\> arp –d *

 

HTTP:

 

HTTP协议是目前使用最广泛的一种基础协议,这得益于目前很多应用都基于WEB方式,实现容易,软件开发部署也简单,无需额外的客户端,使用浏览器即可使用。这一过程开始于请求服务器传送网络文件。

image007.png

从上图可见报文中包括一个GET命令,当HTTP发送初始GET命令之后,TCP继续数据传输过程,接下来的链接过程中HTTP会从服务器请求数据并使用TCP将数据传回客户端。传送数据之前,服务器通过发送HTTP OK消息告知客户端请求有效。如果服务器没有将目标发送给客户端的许可,将会返回403 Forbidden。如果服务器找不到客户端所请求的目标,会返回404。

 

如果没有更多数据,连接可被终止,类似于TCP三次握手信号的SYN和ACK报文,这里发送的是FIN和ACK报文。当服务器结束传送数据,就发送FIN/ACK给客户端,此报文表示结束连接。接下来客户端返回ACK报文并且对FIN/ACK中的序列号加1。这就从服务器端终止了通信。要结束这一过程客户端必须重新对服务器端发起这一过程。必须在客户端和服务器端都发起并确认FIN/ACK过程。


附录:网络协议报文结构与抓包示例


TCP/IP协议栈

TCPIP.PNG.png


以太网帧示例

以太网帧示例.PNG.png


IP数据报格式

IP数据报格式.PNG.pngIP数据报格式1.PNG.png


IP报文示例

IP报文示例.PNG.png


UDP帧结构

UDP帧结构.PNG.png


TCP消息结构

TCP消息结构.PNG.png


TCP报文示例

TCP报文示例.PNG.png

常用测试工具-----wireshark Wireshark作为最基础的网络数据包分析器,是每个网络从业人员所需掌握的必备工具,简单介绍了该工具的具体操作流程步骤,并附有详细图解 阅读详情

相关推荐

网络协议分析工具Wireshark的使用、用Wireshark观察ARP协议以及ping命令的工作过程分析以太网报文格式

网络协议分析工具Wireshark的使用、用Wireshark观察ARP协议以及ping命令的工作过程分析以太网报文格式

MJ813的专栏 1万+

利用wireshark抓取TCP的整个过程分析。

原文地址:https://www.cnblogs.com/NickQ/p/9226579.html 最近,已经很久都没有更新博客了。看看时间,想想自己做了哪些事情,突然发现自己真的是太贪心,到头来却一个都没搞好。手头的嵌入式都还没学出名堂,竟然还想着学FPGA,物联网,机器学习。然而,遇到新奇的事物,就会控制不住的去想,去找资料,实际上只是逃避遇到的问题,不想去解决而已。。最后的结果就是手头的...

weixin_30527143的博客 2660

[基于STM32底盘控制与ROS上层导航小车制作] 第一节 stm32电机驱动与编码器读取反馈

系列文章目录 第一节stm32电机驱动与编码器读取反馈 第二节 stm32电机pid控制 第三节 stm32线速度标定 第四节 stm32添加mpu6050得到angle角度 第五节 实现STM32与ubuntu系统下的ROS串口DMA通信,传输底盘速度等信息 第六节 ROS计算和发布里程计 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 系列文章目录 前言 1.pwm与电机正反转 2.编码器初始化 二、pwm控制与编码器使用 1.pwm使电机 .

LanLanLan1927的博客 1万+

wireshark使用

wireshark

Windy's blog 253

ComfyUI实战:AnimateDiff与ControlNet结合,打造无缝风格化视频转绘

本文详细介绍了如何利用ComfyUI平台,结合AnimateDiff与ControlNet插件,实现高质量的视频风格化转绘。通过搭建节点工作流、调整关键参数,有效解决画面闪烁与失真问题,并分享了进阶玩法与常见问题解决方案,帮助用户轻松打造流畅、风格统一的动态视觉效果。

weixin_29039773的博客 334

【 Git学习记录(三)】推荐四款主流的Git代码托管平台 —— GitHub、GitLab、Gitee、Coding

了解过Git之后,作为一个程序猿最基本的,你还需要了解目前主流的在线代码托管平台,并至少选择其中一款在平时开发中使用。这里特别介绍以下四款: 国外平台 GitHub —— 全球最流行的代码托管平台 GitLab —— 基于git的仓库管理程序 国内平台 Gitee —— 开源中国旗下的代码托管平台 Coding —— 支持社交元素的代码托管平台 一. GitHub 链接地址:https://github.com/ GitHub目前是全球最流行的代码托管平台(别称:全球最大的同性交友.

JZevin的博客 6089

Wireshark - 过滤显示TCP[RST]报文

tcp.flags.reset==1

波波诸葛伟 4762

CANoe实战:手把手教你用J1939.dbc发送超8字节长帧报文(附完整CAPL代码)

本文详细解析了使用CANoe和J1939.dbc实现超8字节长帧报文的分包发送技术,提供完整的CAPL代码实现与优化策略。内容涵盖J1939.dbc配置、分包发送模块设计、接收端处理逻辑,并与ISO 15765-2协议进行深度对比,帮助开发者构建高效可靠的商用车通信解决方案。

weixin_29169899的博客 392

(二):应用Wireshark观察基本网络协议

(二):应用Wireshark观察基本网络协议 TCP: TCP/IP通过三次握手建立一个连接。这一过程中的三种报文是:SYN,SYN/ACK,ACK。 第一步是找到PC发送到网络服务器的第一个SYN报文,这标识了TCP三次握手的开始。 如果你找不到第一个SYN报文,选择Edit -> Find Packet菜单选项。选择Display Filter,输入过滤条件:tcp.flags,这时会看到一个flag列表用于选择。选择合适的flag,tcp.flags.syn并且加上==1。点击Find

IT基础架构 2391

基于javaEE的图书管理系统

极简的图书管理系统,无任何样式修饰,适合新手练手(图文并释) 1、实现了用户注册、登录,图书的添加、修改、删除和修改操作 2、工具需要:eclipse、mysql、Tomcat 3、做系统之前在eclipse需要配置Tomcat服务器和导入mysql连接数据库的jar包 4、数据库中建一个user表存用户信息,一个book表存图书信息 一、各种页面 index.html文件,系统运行的首页,有登录...

qq_44357792的博客 2万+

ThingsBoard集群部署之k8s

今天终于有时间去搞这个啦,拖了很久了,一直没时间,因为我本地没有那么多机器资源,开虚拟机不够,如果租用阿里云服务器,需要有充值的时间,因为这个费用是按小时付费,需要有连贯的时间来搞才行,今天恰好有时间,就开始搞了,弄成功搞出来了,特地写博客记录下来。

AldrichEugene 1172

【Wireshark系列二】应用Wireshark观察基本网络协议

一站式学习Wireshark(二):应用Wireshark观察基本网络协议   TCP:   TCP/IP通过三次握手建立一个连接。这一过程中的三种报文是:SYN,SYN/ACK,ACK。   第一步是找到PC发送到网络服务器的第一个SYN报文,这标识了TCP三次握手的开始。 如果你找不到第一个SYN报文,选择Edit -> Find Packet菜单选项。选择Display...

Jaychouzzk 594

【K8S系列】Kubernetes 中 Pod 无法通过 Service 名称访问服务的 DNS 解析失败问题【已解决】

在 Kubernetes 中,Service 提供了一种稳定的方式,通过名称访问一组 Pod。当其他 Pod 无法通过 Service 名称访问服务,并且出现 DNS 解析失败时,通常会导致应用无法正常工作。本文将详细分析此问题的常见原因及其解决方案。

颜淡慕潇 1万+
上一篇: 一站式学习Wireshark(一):Wireshark基本用法
下一篇: 一站式学习Wireshark(八):应用Wireshark过滤条件抓取特定数据流
evilcode
博客等级 码龄20年 307粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值