首页 > 其他分享 >以太网数据帧、网络协议分析

以太网数据帧、网络协议分析

时间:2024-11-02 10:20:03浏览次数:4  
标签:分析 协议 报文 网络协议 过滤 分组 ICMP 以太网

计 算 机 网 络

实 验 报 告

实验四 以太网数据帧分析

一、实验目的

了解网络协议分析软件的过滤方式和原则,包括:按协议类型过滤,按IP地址过滤,按协议模式过滤,按端口过滤等,通过设置不同的过滤条件,熟悉协议类型、端口、协议等概念;分析以太网数据帧的构成,数据链路层将不可靠的物理层转变为一条无差错的链路,涉及的数据单位是帧(frame),高层的协议数据被封装在以太网帧的数据字段发送。使用网络协议分析软件可以捕获各种协议数据包,通过查看这些协议数据包中数据链路帧的各字段可以分析网络协议的内部机制。

二、实验内容

  1. 掌握网络协议分析软件的常用过滤规则使用方法;
  2. 分析以太网数据帧的构成
  3. 掌握以太网报文格式,掌握MAC地址的作用;
  4. 掌握LLC帧报文格式;

二、实验原理

1、网络协议分析软件的过滤规则

(1)按协议类型过滤

Wireshark支持的协议包括 TCP、UDP、ARP、ICMP、HTTP、SMTP、FTP、DNS、MSN、IP、SSL、OICQ、BOOTP等,例如只查看HTTP协议,则直接输入http。

(2)按IP地址过滤

若只要显示与指定IP(例如192.168.1.123)通信的记录则可输入id.addr==192.168.1.123。

如果要限制为源IP为192.168.1.123则输入ip.src===192.168.1.123;

如果要限制为目的IP为192.168.1.123,则输入ip.dst==192.168.1.123。

(3)按协议模式过滤

例如HTTP协议,可以针对HTTP的请求方式进行过滤,只显示发送GET或POST请求的过滤规则:http.request.method == “GET”

或 http.request.method == “POST”

(4)按端口过滤

tcp.dstport == 80 // 只显tcp协议的目标端口80

tcp.srcport == 80 // 只显tcp协议的来源端口80

tcp.port eq 80//不管端口是来源的还是目标的

(5)按MAC地址过滤

例如以太网头过滤,

eth.dst == A0:00:00:04:C5:84 // 过滤 目 标mac

eth.src eq A0:00:00:04:C5:84 // 过 滤 来源mac

eth.addr eq A0:00:00:04:C5:84 // 过滤 来 源MAC和目标MAC都等于A0:00:00:04:C5:84的

(6)按包长度过滤

udp.length == 26, 这个长度是指udp本身固定长度8加上udp下面那块数据包之和 ;

tcp.len >= 7 , 指的是ip数据包(tcp下面那块数据),不包括tcp本身;

ip.len == 94, 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后 ;

frame.len == 119 ,整个数据包长度,从eth开始到最后

(7)按参数过滤

例如按TCP参数过滤:

tcp.flags 显示包含TCP标志的封包。

tcp.flags.syn == 0x02 显示包含TCP SYN标志的封包。

tcp.window_size == 0 && tcp.flags.reset != 1

(8)按过滤内容

例如:

tcp[20] 表示从20开始,取1个字符

tcp[20:]表示从20开始,取1个字符以上

tcp[20:8]表示从20开始,取8个字符

(9)采用逻辑运算过滤

过滤语句可利用&&(表示“与”)、||(表示“或”)和!(表示“非”)来组合使用多个限制规则,例如(http && ip.dst ==192.168.1.123 )。要排除arp包,则使用!arp或者not arp。

2、以太网数据帧的构成

EthernetII帧结构

目的地址

DMAC

源地址

SMAC

类型

TYPE

数据

DATA

帧校验

FCS

6

6

2

46—1500

4

三、实验设备

  • 计算机以太网环境
  • Wireshark网络协议分析软件 3.6.19

四、实验内容与步骤

1. 网络协议分析软件的常用过滤规则

(1)打开网络协议分析软件(Wireshark),选择菜单命令“Capture”“Options”子菜单项。弹出“Wireshark: Capture Options”对话框。在Capture中选择网卡。单击“Start”按钮开始网络数据包捕获。在Filter过滤框中输入下面的过滤规则,分析相应过滤规则的含义并截图。

1)按协议类型过滤

答:图中为http协议过滤后的内容,只有http协议。

  1. 按IP地址过滤

答:例如输入ip.addr==地址,只显示与指定IP通信的记录,

例如http.request.method == "GET" 可以针对HTTP的请求方式进行过滤,只显示发送GET

  1. 按端口过滤

  1. 按MAC地址过滤

5)采用逻辑运算过滤

and: 逻辑与

or: 逻辑或

not: 逻辑非

2.分析以太网数据帧的构成

(1)清空浏览器缓存,然后在浏览器中访问某个网页,同时用wireshark抓包,过滤掉网络层及以上的包,例如:在 Analyze->Enabled Protocols 中选择禁用 IPv4,便于找到链路层数据帧;附上抓获的以太网数据帧截图,写出其目的地址、源地址、上层协议、数据字段的某些标识性 ASCII 码字符等内容。

(2)在cmd窗口清空arp缓存,然后ping本局域网上的某个活跃主机,抓包,抓包时过滤掉网络层及以上的包,找出其中查找被ping主机对应 MAC 地址的 ARP 请求与响应报文。

1)附上该ARP响应报文截图,分析该ARP响应报文的内容,是谁向谁请求其IP地址对应的mac地址。

  1. 附上以太网mac帧的详细内容截图,并根据截图,分析其目的地址、源地址、上层协议等内容。

(3)浏览某个网页,用wireshark抓包,获取http协议下的数据包,找出请求与响应的数据包并截图,以太网帧中本机的地址与目标主机的地址,并说明http信息与以太网帧之间的关系

1)附上该报文截图,分析该报文的内容

2)附上以太网mac帧的详细内容截图,并根据截图,分析其目的地址、源地址、上层协议等内容。

五.实验思考:在实验中遇到了哪些问题,如何解决的,获取了什么启发。

了解不同过滤条件的作用,例如按协议类型、IP地址、协议模式和端口进行过滤。通过设置不同的过滤规则,可以捕获特定类型的数据包,从而更好地理解协议类型和通信模式。

以太网数据帧是数据链路层的基本单位,用于在物理链路上传输数据。数据链路层将高层协议数据封装在以太网帧的数据字段中,确保数据传输的可靠性。以太网报文由目标MAC地址、源MAC地址和数据字段组成。MAC地址是设备的唯一标识符,用于在局域网中定位设备。可以根据数据包分析出内容。

实验五 网络层协议分析

一、实验目的

了解网络协议分析软件的过滤方式和原则,包括:按协议类型过滤,按IP地址过滤,按协议模式过滤,按端口过滤等,通过设置不同的过滤条件,熟悉协议类型、端口、协议等概念;分析以太网数据帧的构成,数据链路层将不可靠的物理层转变为一条无差错的链路,涉及的数据单位是帧(frame),高层的协议数据被封装在以太网帧的数据字段发送。使用网络协议分析软件可以捕获各种协议数据包,通过查看这些协议数据包中数据链路帧的各字段可以分析网络协议的内部机制。

二、实验内容

  1. 掌握网络协议分析软件的常用过滤规则使用方法;
  2. 分析ICMP协议报文

二、实验原理

ICMP协议是IP协议的补充,用于IP层的差错报告、拥塞控制、路径控制以及路由器或主机信息的获取。ICMP报文由首部和数据段组成。首部为定长的8个字节,前4个字节是通用部分,后4个字节随报文类型的不同有所差异。ICMP报文的一般格式如图所示。

补充ICMP协议的几种报文及其含义。

ICMP 协议的报文分为两大类:差错报告报文和查询报文。

差错报告报文是用于通知发送方数据报在传输过程中出现了错误或被丢弃的原因。常见的差错报告报文有:

  • 目的站不可达报文:当路由器或主机无法将数据报发送到目的地时,会返回这种报文,代码字段指示具体的不可达原因,如网络不可达、主机不可达、协议不可达、端口不可达等。
  • 数据报超时报文:当数据报在网络中被循环转发或分片重装超时时,会返回这种报文,代码字段指示具体的超时原因,如生存时间(TTL)为零或分片重装超时。
  • 源站抑制报文:当路由器或主机因为拥塞而丢弃数据报时,会返回这种报文,建议发送方降低发送速率。
  • 重定向报文:当路由器发现有更好的路由路径时,会返回这种报文,建议发送方改变路由选择。
  • 数据报参数错误报文:当数据报的首部字段有错误或不支持时,会返回这种报文,指针字段指示出错的位置。

查询报文是用于测试或诊断网络性能的报文。常见的查询报文有:

  • 回送请求或回答报文:用于检测两个网络设备之间是否可以相互通信,发送方发送回送请求报文,接收方返回回送回答报文,数据区域的内容应该相同。
  • 时间戳请求或回答报文:用于测量两个网络设备之间的往返时间,发送方发送时间戳请求报文,接收方返回时间戳回答报文,数据区域包含发送、接收和回答的时间戳。

三、实验设备

计算机以太网环境及Wireshark网络协议分析软件Version 3.6.19

四、实验内容与步骤

1. 分析ICMP协议

  1. 利用Ping程序产生ICMP分组。Ping向因特网中的某个特定主机发送特殊的探测报文并等待表明主机在线的回复。具体做法:
  • 启动打开网络协议分析软件(Wireshark),在Capture中选择网卡。Capture filter字段填入:“icmp”,单击“Start”按钮开始网络数据包捕获。

  • 打开Windows命令提示符窗口(Windows Command Prompt),输入“ping –n 10 hostname” ,其中“-n 10”指明应返回10条ping信息,附上执行结果图。

  • 当ping程序终止时,停止Wireshark 分组俘获。
  1. 停止分组俘获后,附上wireshark的界面:

  1. 截取其中ICMP协议的详细信息

  1. 观察这个ICMP分组,分析属于ICMP的哪种分组。

此ICMP分组为Echo (ping) request

  1. 查看ping请求分组,ICMP的type 和code是多少?这个ICMP 包包含了哪些其他的字段?Checksum、sequence number 和identifier 字段的值各为多少?

Type: 8

Code: 0

  1. 查看相应的ICMP响应信息,ICMP的type 和code又是多少?这个ICMP 包包含了哪些其他的字段?Checksum、sequence number 和identifier 字段的值各为多少?

  1. 用Tracert程序俘获ICMP分组。

Tracert能够映射出通往特定的因特网主机途径的所有中间主机。源端发送一串ICMP分组到目的端。发送的第一个分组时,TTL=1;发送第二个分组时,TTL=2,依次类推。路由器把经过它的每一个分组TTL字段值减1。当一个分组到达了路由器时的TTL字段为1时,路由器会发送一个ICMP错误分组(ICMP error packet)给源端。

  • 启动Window 命令提示符窗口
  • 启动Wireshark分组嗅探器,开始分组俘获。
  • 在cmd窗口,运行Tracert命令, 附上执行结果图

  • 当Tracet 程序终止时,停止分组俘获,附上捕获ICMP分组的截图

  1. 查看ICMP echo 分组 ,是否这个分组和前面使用 ping命令的ICMP echo 一样?

Tracert 64字节,ping 32字节

  1. 查看ICMP错误分组,它比ICMP echo 分组包括的信息多。ICMP错误分组比ICMP echo 分组多包含的信息有哪些?

IP 数据报的首部以及 TCP 协议的端口号

  1. 实验思考:在实验中遇到了哪些问题,如何解决的,获取了什么启发。

Ping是用来测试网络连通性,发出Ping命令主机会发出连续的测试数据包到网络中,ping采用的是icmp协议。ICMP协议主要是Type和Code来识别,

标签:分析,协议,报文,网络协议,过滤,分组,ICMP,以太网
From: https://www.cnblogs.com/maqun/p/18521671

相关文章

  • 应用层相关协议分析
    计算机网络实验报告实验八应用层相关协议分析一、实验目的熟悉CMailServer邮件服务软件和OutlookExpress客户端软件的基本配置与使用;分析SMTP及POP3协议报文格式和SMTP及POP3协议的工作过程。二、实验原理为了观察到邮件发送的全部过程,需要在本地计算机上配置邮件服务器......
  • alertmanager源码:整体架构和流程分析
    alertmanager整体的架构,官方的这张图说的很清楚,本文从源码的角度,分析其各个模块,以及模块间的交互流程。alertmanager的代码使用v0.24.0版本。一.API接收alerts接口alerts的API为:POST/api/v2/alerts该API的handler如下:该handler先进行数据转换后,再进行数据校验,最后放入a......
  • 【供应链安全】2024年我国软件供应链安全供应市场特点分析及代表性厂商推荐+供应市场
    原创安全牛在供应关系极度敏感的国际形势下,供应链被“武器化”已经成为一个不争的事实。从供应链视角开展软件安全审查,不仅是开展网络安全合规的必然要求,也是保障国家数字经济高质量发展的重要支撑,更是当前国际形势下我国势在必行的重要安全事项。为帮助企业CSO更好地了解当......
  • prometheus源码分析:discovery自动发现
    discovery支持文件、http、consul等自动发现targets,targets会被发送到scrape模块进行拉取。一.整体框架discovery组件通过Manager对象管理所有的逻辑,当有数据变化时,通过syncChannel将数据发送给scrape组件。discovery组件会为每个Job_name创建一个provider对象,它包含Discover对......
  • 招聘大数据可视化分析系统 求职就业数据分析 Flask框架 hadoop和spark技术(建议收藏)✅
    博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌>......
  • hadoop+Spark+django基于大数据技术的国内运动男装小红书文章数据可视化分析系统(源码
    收藏关注不迷路!!......
  • windows 驱动实例分析系列: NDIS 6.0的Filter 驱动改造(二)
    缓冲区池Filter驱动要发送数据,除了实现这两个回调之外,还需要分配一个NET_BUFFER_LIST池,用于从池中分配NET_BUFFER_LIST结构,注意内核代码必须仅从Pool中分配NET_BUFFER_LIST以及NET_BUFFER等缓冲区结构。分配 一般会使用下面的代码来分配缓冲区池:NDIS_HANDLEAllocateList......
  • windows 驱动实例分析系列: NDIS 6.0的Filter 驱动改造(一)
    NDIS生成的Filter例程已经非常完善,但根据需要还是要对它进行改造,以适应实际的需求,在这一类的改造中,主要涉及的三个方面:处理OID、发送数据包、接收数据包。需求和定义一般来说,Filter驱动要么需要对某些数据包进行处理、要么是需要对某些网络适配器的行为进行修改,所以需求最......
  • 浏览器指纹修改指南2024 - 分析Geolocation API实现(十)
    在geolocation.h文件中,可以找到一个私有成员Member<GeoNotifierSet>one_shots_;Member<GeolocationWatchers>watchers_;//GeoNotifiersthatareinthemiddleofinvocation.////|HandleError(error)|and|MakeSuccessCallbacks|needtoclear|one_sho......