《计算机网络》实验报告二 IP协议分析

目  录

1、实验目的

2、实验环境

3、实验内容

3.1 tcpdump 基本用法

3.2 wireshark基本用法

3.3 利用tcpdump抓包,wireshark分析包

4、实验结果与分析

4.1 tcpdump命令的基本用法

4.2 wireshark的基本用法

4.3 利用tcpdump抓包,wireshark分析包

5、实验小结

5.1 问题与解决办法:

5.2 心得体会:


1、实验目的

        1、了解Linux命令终端和Windows命令行使用

        2、了解IP报文格式,熟悉IP报文各个字段含义、长度

        3、掌握基于tcpdump和wireshark软件进行数据包抓取和分析技术


2、实验环境

        1、硬件要求:阿里云云主机ECS 一台、笔记本电脑一台

        2、软件要求:Linux/ Windows 操作系统


3、实验内容

3.1 tcpdump 基本用法

        1. tcpdump是一个用于截取网络分组,并输出分组内容的工具。凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。

        2. tcpdump 支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

        3. 参考文献:

https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

https://www.jianshu.com/p/d9162722f189

3.2 wireshark基本用法

        1. Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。

        2. 网络管理员使用Wireshark来检测网络问题,网络安全工程师使用Wireshark来检查资讯安全相关问题,开发者使用Wireshark来为新的通讯协定除错,普通使用者使用Wireshark来学习网络协定的相关知识。

        3. 参考文献:

https://www.wireshark.org/#download

https://pc.qq.com/search.html#!keyword=wireshark

https://www.cnblogs.com/csnd/p/11807736.html

https://pc.qq.com/search.html#!keyword=xshell

3.3 利用tcpdump抓包,wireshark分析包

        1. 在阿里云主机运行命令traceroute www.xju.edu.cn ,并利用tcpdump抓包。下载文件到本地机器利用wireshark软件进行分析。

        2. 提示:

        必须首先执行抓包命令,然后再执行路径追踪命令,抓包命令 tcpdump -i eth0 -w test.cap

        可使用scp命令或者利用xshell和xftp下载数据包到本地机器

        1)利用tcpdump抓包,通过wireshark分析捕获的数据包,分析IP的报文结构,将IP协议树中各个名字字段,字段长度,字段信息填入下表。

        2) 利用wireshark分析并解读相关traceroute命令执行结果。

        提示:在wireshark 过滤器工具栏设置仅显示ICMP


4、实验结果与分析

4.1 tcpdump命令的基本用法

        1. 直接启动tcpdump监视第一个网络接口上所有流过的数据包。

tcpdump

        2. 监视指定网络接口eth0的数据包,使用-i指定tcpdump需要监听的接口,默认会抓取第一个网络接口。

tcpdump -i eth0

        3. 截获所有172.16.2.5的主机收到和发出的所有数据包。

tcpdump host 172.16.2.5

        4. 使用参数src截获主机172.16.2.5发送的所有数据。

tcpdump -i eth0 src host 172.16.2.5

        5. 使用参数dst监视所有送到主机172.16.2.5的数据包。

tcpdump -i eth0 dst host 172.16.2.5

        6. 使用参数net打印网络地址为172.16.2.5的所有通信数据包。

tcpdump net 172.16.2.5

        7. 打印所有源地址或目标地址是本地主机的IP数据包。

tcpdump ip

        8. 打印TCP会话中的开始和结束数据包,并且数据包的源地址或目的地址不是本地网络上的172.16.2.5主机。

tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net 172.16.2.5'

        9. 监视指定网络接口eth0与172.16.2.5网段通信的数据包,参数-c可以指定抓取包的数量。

tcpdump -i eth0 -c 20 net 172.16.2.5

        10. 只抓取接口为eth0的包,并且只抓取20个数据包,将地址以数字方式显示。

tcpdump -c 20 -nn -i eth0

        11. 抓取目标端口为22的数据包,只抓取20个数据包,将地址以数字方式显示。

tcpdump -c 20 -nn -i eth0 tcp dst port 22

        12. 解析目标端口为22的数据包,快速打印输出详细的包的头部数据,将地址以数字方式显示。

tcpdump -c 5 -q -XX -vvv -nn -i eth0 tcp dst port 22

4.2 wireshark的基本用法

        1. Wireshark使用WinPcap作为接口,直接与网卡进行数据报文交换,打开Wireshark后选择要打开的数据包或者要抓取的网卡。

        2. 双击选择WLAN网卡之后,开始进行抓包,停止抓包后保存抓取到的数据包。

        3. 使用Wireshark对eth.pcap中爬取的数据包中地址为172.16.2.91的过滤地址。

ip.addr == 172.16.2.91

        4. 使用Wireshark对eth.pcap中爬取的数据包中地址为172.16.2.91的过滤源地址。

ip.src == 172.16.2.91

        5. 使用Wireshark对eth.pcap中爬取的数据包中地址为172.16.2.91的过滤目的地址。

ip.dst == 172.16.2.91

        6. 使用Wireshark对eth.pcap中爬取的数据包中协议名为HTTP的数据包进行过滤。

http

        7. 使用Wireshark对eth.pcap中爬取的数据包中协议名为TCP的数据包进行过滤。

tcp

        8. 使用Wireshark对eth.pcap中爬取的数据包中端口号为80的数据包进行过滤。

tcp.port == 80

        9. 使用Wireshark对eth.pcap中爬取的数据包中http协议的请求方式为POST的数据包进行过滤。

http.request.method == "POST"

10. 使用Wireshark对eth.pcap中爬取的数据包中地址为172.16.2.91并且http协议的请求方式为POST的数据包进行过滤。

ip.src == 172.16.2.91 and http.request.method == "POST"

4.3 利用tcpdump抓包,wireshark分析包

        1. 使用traceroute命令测试数据包到达www.xju.edu.cn所经过的路径。

traceroute www.xju.edu.cn

        2. 使用tcpdump命令对网关eth0进行抓包操作,并将数据包信息保存在test.cap中。

tcpdump -i eth0 -w test.cap

        3. 通过Wireshark分析捕获的数据包,分析IP的报文结构,将IP协议树中各个字段的名字、长度等信息填入下表。

        4. 使用Wireshark对eth.pcap中爬取的数据包中相关treceroute命令执行结果的数据包进行过滤,即对协议名为ICMP的数据包进行过滤。

icmp


5、实验小结

5.1 问题与解决办法:

        1. 问题一:使用traceroute命令时出现如下提示此命令未找到:

        解决方法:由于系统中没有traceroute命令所导致,需要在使用此命令前通过 yum install traceroute 命令进行安装。

        2. 问题二:使用tcpdump进行数据包的抓取时出现如下提示此命令未找到:

解决方法:由于命令输入错误导致,数据包的抓取命令为tcpdump,而不是tcpdnmp,将对应命令进行更改后错误消失。

        3. 问题三:对指定网络接口的数据包进行抓取时出现如下提示语法错误:

解决方法:由于命令键入不完整所导致,指定网络接口所需要的参数是-i,在eth0前方添加-i后错误消失。

        4. 问题四:截获所有172.16.2.5的主机收到和发出的数据包时出现如下提示语法错误:

解决方法:由于命令键入不完整所导致,指定主机所需要的参数是host,在172.16.2.5前方添加host后错误消失。

        5. 问题五:使用tcpdump抓取所有的数据包时一直在抓取,不能够自动停止抓包:

解决方法:使用Ctrl+c就可以终止运行的命令,进而就可以停止抓包。

        6. 问题六:使用Wireshark对抓取的数据包进行过滤时出现如下提示输入框出现红色:

解决方法:由于过滤命令输入错误,在过滤地址时使用ip.addr,将输入内容中的id.addr改为ip.addr后红色报错消失。

        7. 问题七:使用Wireshark对抓取的数据包进行多个条件同时成立过滤时出现如下提示输入框出现红色:

解决方法:由于多个条件同时成立时需要使用and进行连接,但是输入命令时并没有使用and进行连接所导致,在输入内容中加入and后红色报错消失。

5.2 心得体会:

        1、tcpdump 对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。因此先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用Wireshark软件进行解码分析。

        2、tcpdump是基于Unix系统的命令行式的数据包嗅探工具。如果要使用tcpdump抓取其他主机MAC地址的数据包,必须开启网卡混杂模式,所谓混杂模式,用最简单的语言就是让网卡抓取任何经过它的数据包,不管这个数据包是不是发给它或者是它发出的。

        3、使用SSH登录到远程Linux,然后直接运行tcpdump,会抓到大量的数据包,而且速度非常快,这是因为tcpdump抓到的包发送给远程的终端显示,同时又抓了这个包,再显示,再抓取,造成了循环抓取。

        4、38039是客户端的TCP端口,http的默认端口是80,如果tcpdump在/etc/services中发现端口对应的服务名称,那么会自动的转为名字。

        5、默认情况下,tcpdump抓包结果显示在屏幕上,这不利于进一步的数据分析,因此我们需要将抓包结果存放在文件中,可是使用-w命令将结果保存在文件中。

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

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

相关文章

k8s学习记录(三):Pod基础-Node选择

一、前言 在上一篇文章中我们学习了Pod的一些基本的知识,今天我们将继续学习Pod。 二、K8S如何选择节点来运行Pod 我们知道在一个K8S集群中,会有多个工作节点(Worker Node),那么k8s会选择那个node呢?接下…

3天功能开发→3小时:通义灵码2.0+DEEPSEEK实测报告,单元测试生成准确率92%的秘密

活动链接:https://developer.aliyun.com/topic/lingma-aideveloper?spma2c6h.29979852.J_9593490300.2.49b8110eeymlF8 前言 随着人工智能技术的迅猛发展,AI 赋能编程成为了必然趋势。通义灵码应运而生,它是阿里巴巴集团在人工智能与编程领…

【小沐学GIS】基于Rust绘制三维数字地球Earth(Rust、OpenGL、GIS)

🍺三维数字地球GIS系列相关文章如下🍺:1【小沐学GIS】基于C绘制三维数字地球Earth(OpenGL、glfw、glut)第一期2【小沐学GIS】基于C绘制三维数字地球Earth(OpenGL、glfw、glut)第二期3【小沐学GI…

ARM 学习笔记(三)

参考文献:《ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition》《ARM Cortex-A (ARMv7-A) Series Programmer’s Guide》1、内存类型 ARMv7-A 处理器中,将 Memory 定义为几种类型(Memory Type): Strong…

Flask 框架(一):核心特性与基础配置

目录 一、为什么选择 Flask? 二、Flask 核心概念与初始化 2.1 程序实例初始化 2.2 运行配置:app.run () 参数详解 2.3 应用配置:三种参数设置方式 1. 字典直接配置(简单临时场景) 2. 配置文件导入(生…

社交圈子系统开源社交源码 / 小程序+H5+APP 多端互通的底层技术分析

伴随社交产品向“圈子化”、“内容驱动”发展方向演进,打造一套支持小程序、H5、APP 互通的社交圈子系统,已经成为构建垂直社区的基础架构能力要求。本文围绕一套典型的多端社交兴趣平台(即友猫社区平台)的设计实践,对…

gitlab-runner配置问题记录

引言 笔者曾通过2种方式部署过 gitlab-runner,在 gitlab 中使用这个 runner 拉起 ci job 的过程中或多或少遇到些问题,主要都是 job 中无法访问宿主机的docker 等组件。本篇文档主要记录 gitlab-runner 安装及相关配置。 二进制部署 gitlab-runner 部署 …

每日面试题10:令牌桶

令牌桶算法:优雅的流量控制艺术在现代分布式系统中,流量控制如同交通信号灯般重要——它既不能让请求"堵死"系统,也不能放任流量"横冲直撞"。令牌桶算法(Token Bucket Algorithm)正是这样一种精妙…

【java】消息推送

文章目录Java网页消息推送解决方案 短轮询、长轮询、SSE、Websocket

STM32 | 有源蜂鸣器响,无源蜂鸣器播音乐

目录 Overview 有源蜂鸣器 无源蜂鸣器 有源蜂鸣器控制 GPIO配置 控制程序 无源蜂鸣器控制 反转GPIO控制 GPIO配置 控制接口 PWM控制 GPIO配置 控制函数 改变频率播音乐 原理 1. 频率决定音调 2. 占空比决定音量 GPIO初始化 结构体定义和音符频率表 播放接口 …

第十四章 gin基础

文章目录Gin快速搭建一个web服务Gin数据交互JSON串内容规范Gin使用结构体返回数据给前端Gin配置POST类型的路由Gin获取GET请求参数Gin获取POST请求参数-form-data类型Gin获取POST请求参数-JSON类型Gin获取参数绑定至结构体Gin快速搭建一个web服务 下载包 \\新建一个文件&…

Baumer工业相机堡盟工业相机如何通过YoloV8的深度学习模型实现PCB的缺陷检测(C#代码,UI界面版)

Baumer工业相机堡盟工业相机如何通过YoloV8的深度学习模型实现PCB的缺陷检测(C#代码,UI界面版)工业相机使用YoloV8模型实现PCB的缺陷检测工业相机实现YoloV8模型实现PCB的缺陷检测的技术背景在相机SDK中获取图像转换图像的代码分析工业相机图…

【Vivado那些事儿】AMD-XILINX 7系列比特流加密

前提:加密有风险,操作需谨慎前言在许多项目中,经过漫长的等待,我们的 FPGA 设计终于可以投入现场部署了。前期的资金的投入及知识产权的保护,我们需要对现场部署的 FPGA 进行比特流保护以防止逆向工程和未经授权的重复…

RK3588 安卓adb操作

adb(Android Debug Bridge)是一个用于与安卓设备进行通信和控制的工具。adb可以通过USB或无线网络连接安卓设备,执行各种命令,如安装和卸载应用,传输文件,查看日志,运行shell命令等。adb是安卓开…

【华为机试】70. 爬楼梯

文章目录70. 爬楼梯描述示例 1示例 2提示解题思路核心分析问题建模算法实现方法1:动态规划(标准解法)方法2:空间优化动态规划(最优解)方法3:递归 记忆化方法4:数学公式(…

山东大学软件学院面向对象期末复习

面向对象 文章目录面向对象04 类封装接口 抽象类05 消息,实例化,静态变量方法消息动/静态类型语言对象创建类及实例具有下面特征对象数组的创建静态数据成员构造函数06_0 继承继承是向下传递的JAVA为什么不支持多重继承继承的形式特殊化继承替换原则规范…

让 Windows 用上 macOS 的系统下载与保姆级使用教程

模拟苹果桌面软件下载:https://xpan.com.cn/s/8NFAGT 还记得 Windows 11刚发布时,很多人就说“果里果气"的,但界面确实做的漂亮。 不知道现在有多少小伙伴正用着macOS,不过我敢确定,喜欢macOS的人绝对不少&#…

嵌入式硬件篇---继电器

继电器是一种通过小电流控制大电流的电磁开关,广泛应用于自动化控制、电力系统和电子设备中。以下从工作原理、应用场景和电路特点三个方面详细介绍:一、工作原理继电器本质是电磁控制的机械式开关,核心部件包括:线圈(…

鸿蒙网络编程系列58-仓颉版TLS数字证书查看及验签示例

1. TLS数字证书验签简介 数字证书的签名验证是网络编程中一个重要的功能,它保证了数字证书是由可信任的签发方签署的,在此基础上,我们才可以信任该证书,进而信任基于该证书建立的安全通道,所以说,数字证书…

【React Native】安装配置 Expo Router

过去开发React Native,所使用的路由都是React Navigation。但是这个东西使用起来非常困难,配置无比繁琐。Expo,为了简化操作,就基于React Navigation开发了Expo Router。 Expo Router用起来就要简单的多了,配置也相对…