当前位置: 首页 > 编程日记 > 正文

Wireshark实验 - 入门

# Wireshark实验 - 入门

**官方英文文档:[Wireshark_Intro_v6.0.pdf](Wireshark_Intro_v6.0.pdf)**

**以下内容为笔者翻译:**

***

## Wireshark 实验:  入门 v6.0

**《计算机网络:自顶向下方法(第6版)》补充材料,J.F. Kurose and K.W. Ross**

“不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之。” ——中国谚语

© 2005-2012, J.F Kurose and K.W. Ross, All Rights Reserved

***

加深对网络协议的理解通常可以通过观察协议的运行和不断调试协议来大大加深,具体而言,就是观察两个协议实体之间交换的报文序列,深入了解协议操作的细节,执行某些动作,然后观察这些动作产生的结果。这可以在仿真环境中或在诸如因特网的真实网络环境中完成。您将在本课程中进行这些Wireshark实验,您将使用自己的电脑在不同的场景下运行各种网络应用程序(如果您无法h获得计算机,或无法安装/运行Wireshark,您可以借用朋友的电脑)。您将观察您的计算机中网络协议与Internet其他主机的协议实体进行交换消息的动作。因此,您和您的计算机将是这些“实时”实验室的一部分。你会通过动手实践观察到并学习到许多。

在第一个Wireshark实验中,你会熟悉Wireshark,并做一些简单的抓包和观察。

用于观察执行协议实体之间交换的消息的基本工具称为**分组嗅探器(packet sniffer)**。顾名思义,分组嗅探器捕获(“嗅探”)从计算机发送/接收的消息; 它还将存储并显示这些捕获的消息中各种协议字段的内容。分组嗅探器本身是被动的。它只是观察有计算机上运行的应用程序和协议发送和接收的消息,但本身不会发送分组。类似地,接收的分组也不会直接到达分组嗅探器。相反,分组嗅探器接收一份从您的机器中的应用程序和协议发送/接收的分组的*副本*。

图1显示了分组嗅探器的结构。在图1的右侧通常是在您计算机上运行的协议(在这种情况下为Internet协议)和应用程序(如Web浏览器或ftp客户端)。图1中虚线框中显示的分组嗅探器是计算机中一种进阶的常规软件,并且包含两部分。**分组捕获库**接收从计算机发送或接收的每个链路层帧的副本。回顾书中第1.5节的讨论(图1-24),较高层协议(如HTTP,FTP,TCP,UDP,DNS或IP)交换的消息最终将被封装在通过物理介质传输的链路层帧中,例如以太网电缆。在图1中,假设的物理介质是以太网,因此所有上层协议最终被封装在以太网帧中。捕获所有链路层帧可以让您从计算机中获得所有协议和应用程序发送/接收的消息。

**图1 - 分组嗅探器结构**

分组嗅探器的第二个组件是**分组分析器(packet analyzer)**,显示协议消息中所有字段的内容。为了做到这一点,分组分析器必须“理解”协议交换的所有消息的结构。 例如,假设我们有兴趣在图1中的HTTP协议交换的消息中显示各种字段。分组分析器了解以太网帧的格式,因此可以识别以太网帧中的IP数据报。它还可以理解IP数据报格式,从而可以提取IP数据报中的TCP段。 最后,它理解TCP段结构,因此可以提取TCP段中包含的HTTP消息。 最终,它还理解HTTP协议,因此,就可以知道HTTP消息的第一部分将包含字符串“GET”,“POST”或“HEAD”,如书中的图2-8所示。

我们将使用Wireshark分组嗅探器( http://www.wireshark.org/ )进行这些实验,从而显示在协议栈不同级别的协议发送/接收的消息的内容。(从技术上讲,Wireshark是一个使用计算机中的分组捕获库的分组分析器)。 Wireshark是一种免费的网络协议分析器,可在Windows,Mac和Linux / Unix计算机上运行。 它是我们实验室的理想分组分析器 - 因为它稳定,具有庞大的用户基础和文档支持,包括用户指南( http://www.wireshark.org/docs/wsug_html_chunked/ ),手册( http://www.wireshark.org/docs/man-pages/ )和常见问题细节( http://www.wireshark.org/faq.html ),丰富的功能,包括分析数百种协议,以及精心设计的用户界面。 它可以运行在使用以太网,串行(PPP和SLIP),802.11无线局域网和许多其他链路层技术的计算机上(如果操作系统支持Wireshark这样做)。

### 获取Wireshark

为了运行Wireshark,您需要一台支持Wireshark和libpcap或WinPCap分组捕获库的计算机。当您安装Wireshark时,如果您的操作系统中未安装libpcap软件,它将会自动安装。有关支持的操作系统和下载站点的列表,请访问http://www.wireshark.org/download.html

下载并安装Wireshark软件:

* 转到http://www.wireshark.org/download.html 下载并安装计算机的Wireshark安装包。

Wireshark FAQ有一些有用的提示和有趣的信息,尤其是您在安装或运行Wireshark时遇到问题的时候。

### 运行Wireshark

当您运行Wireshark程序时,您将看到一个类似下面的启动界面:

**图2 - Wireshark初始界面**

注意界面的左上角,你会看到一个“接口列表”。这是您的计算机上的网络接口列表。一旦你选择了一个接口,并将捕获这个接口上的所有数据包。在上面的例子中,有一个以太网接口(Gigabit network Connection )和一个无线网络接口(“Microsoft” )。

如果您点击其中一个接口启动分组捕获(即,Wireshark开始捕获从该接口发送的所有分组),将显示如下所示的界面,包含有关正在捕获的分组的信息。启动分组捕获后,可以使用“捕获”下拉菜单并选择“停止”来停止分组捕获。

**图3-Wireshark抓包和分析时的用户界面**

Wireshark界面有五个主要组件:

**命令菜单(command menus)**是位于窗口顶部的标准下拉菜单。我们现在感兴趣的是文件和捕获菜单。文件菜单允许您保存捕获的分组数据或打开先前捕获的分组数据的文件,并退出Wireshark应用程序。捕获菜单允许您开始分组捕获。

**分组列表窗口(packet-listing window)**为每个捕获的分组显示一行摘要,包括分组编号(由Wireshark分配;任何协议首部并不包含该编号),分组的时间,源地址和目的地址,协议类型以及分组中包含的协议特定信息。可以通过单击列名称或者其他类似栏目对分组列表进行排序。协议类型字段列出了发送或接收该分组的最高级协议,即作为该分组的源或最终接收的协议。

**分组首部详细信息窗口(packet-header details window)**提供分组列表窗口中被选中(高亮显示)分组的详细信息。 (要在分组列表窗口中选择分组,请将光标放在分组列表窗口中的单行摘要中,然后单击鼠标左键。)这些细节包括有关以太网帧的信息(假定分组通过以太网接口发送/接收)和包含该分组的IP数据报。通过在分组详细信息窗口中单击以太网帧左侧的加减号框或IP数据报行,可以扩展或最小化显示的以太网和IP层详细信息。如果分组通过TCP或UDP传输,TCP或UDP的详细信息也将被显示,同样可以扩展或最小化。最后还提供了有关发送或接收此分组的最高级别协议的详细信息。

**分组正文窗口(packet-contents window)**以ASCII和十六进制格式显示捕获帧的全部内容。

Wireshark界面的顶部是**分组显示过滤器(packet display filter field)**,可以向其中输入协议名称或其他信息,以过滤分组列表窗口中显示的信息(分组首部窗口和分组内容窗口同理)。在下面的示例中,我们将使用分组显示过滤器字段来使Wireshark隐藏(不显示)除了与HTTP消息相关的分组。

### 用Wireshark做一次运行测试

了解任何新软件的最好方法是尝试一下! 我们假设您的计算机通过有线以太网接口连接到Internet。 事实上,我建议您在具有有线以太网连接的计算机上执行此第一个实验室,而不仅仅是无线连接。 请执行以下操作

1. 启动您喜欢的网页浏览器,显示您选择的主页。

2. 启动Wireshark软件。 您最初将看到类似于图2所示的窗口.Wireshark尚未开始捕获分组。

3. 要开始分组捕获,请选择“捕获”下拉菜单,然后选择“选项”。 这将显示“Wireshark:Capture Interfaces”窗口,如图4所示。

**图4-Wireshark抓包接口窗口**

4. 您将看到计算机上的接口列表以及到目前为止在该接口上观察到的分组的计数。单击“开始”以开始分组捕获的接口(这个例子下,就是"Gigabit network Connection")。分组捕获现在将开始 - Wireshark正在捕获从您的计算机发送/接收的所有分组!

5. 一旦开始分组捕获,将出现类似于图3所示的窗口。此窗口显示正在捕获的分组。通过选择捕获下拉菜单并选择停止,您可以停止分组捕获。但是现在不要停止分组捕获。我们首先捕获一些有趣的分组。为此,我们需要产生一些网络流量。让我们使用Web浏览器,这将使用我们将在课堂上详细研究过的HTTP协议来从网站下载内容。

6. 当Wireshark正在运行时,输入URL:http://gaia.cs.umass.edu/wireshark-labs/INTRO-wireshark-file1.html ,并在浏览器中显示该页面。为了显示此页面,您的浏览器将通过gaia.cs.umass.edu与HTTP服务器链接,并与服务器交换HTTP消息,以便下载此页面,如书中第2.2节所述。包含这些HTTP消息(以及通过以太网的所有其他帧)的以太网帧将被Wireshark捕获。

7. 在浏览器显示INTRO-wireshark-file1.html页面后(这是一行简单的祝贺消息),在Wireshark捕获窗口中点击停止按钮来停止Wireshark分组捕获。现在Wireshark主窗口看起来与图3相似。您现在有了计算机和其他网络实体之间交换的所有协议的实时分组数据!与gaia.cs.umass.edu 的Web服务器交换的HTTP消息应该出现在捕获分组的列表中。但是,这里还会显示许多其他类型的分组(例如,图3中的协议列中显示了许多不同的协议类型)。即使你唯一的动作仅仅是下载了一个网页,但显然还有许多其他协议在您的计算机上运行,这些是用户所看不见的。通过书中内容,我们将更多地了解这些协议!现在,你会亲眼看到许多事情即将发生!

8. 在主Wireshark窗口顶部的分组显示过滤器窗口中,键入“http”(不含引号,且小写 - Wireshark中的所有协议名称均为小写)。然后选择应用(在您输入“http”位置的右侧)。这样就可以只让HTTP消息显示在分组列表窗口中。

9. 找到从您的计算机发送到gaia.cs.umass.edu HTTP服务器的HTTP GET消息。 (在Wireshark分组列表窗口中查找HTTP GET消息(见图3),其后的gaia.cs.umass.edu URL中显示“GET”)当您选择该HTTP GET消息,那么它的以太网帧,IP数据报,TCP段和HTTP消息首部将显示在分组首部窗口中,通过点击左侧的“+”和“ - ”或向右和向下箭头的分组详细信息窗口,将帧,以太网,IP协议和TCP协议的信息最小化,同时将HTTP协议的信息最大化,您的Wireshark显示屏现在应该如图5所示。(注意,特别是除了HTTP之外的所有协议的协议信息的最小量以及在分组报头窗口中用于HTTP的协议信息的最大量)。

**图5-执行第9步之后的Wireshark窗口**

10. 退出Wireshark

恭喜!你现在已经完成了第一个实验。

### 需要提交的内容

第一个实验的目的主要是向你介绍Wireshark。以下问题将证明您已经能够使Wireshark启动并运行,并且已经探索了其中一些功能。根据您的Wireshark实验回答以下问题:

1. 列出上述步骤7中出现在未过滤的分组列表窗口的协议列中的3种不同的协议。

2. 从HTTP GET消息发送到HTTP OK回复需要多长时间? (默认情况下,分组列表窗口中的时间列的值是自Wireshark开始捕获以来的时间(以秒为单位)。要想以日期格式显示时间,请选择Wireshark的“视图”下拉菜单,然后选择“时间显示格式”,然后选择“日期和时间”。)

3. gaia.cs.umass.edu(也称为wwwnet.cs.umass.edu)的Internet地址是什么?您的计算机的Internet地址是什么?

4. 打印问题2提到的两个HTTP消息(GET和OK)。要这样做,从Wireshark的“文件”菜单中选择“打印”,然后选择“仅选中分组”和“按当前显示”按钮,然后单击确定。

相关文章:

观察者模式的经典应用(猫叫 烧开水)

Code 猫叫了 老鼠跑 主人惊醒 1/**//* 2 * 题目: 3 * 猫叫了,所有老鼠开始逃跑,主人被惊醒,请用OO的思想描绘此过程 4 * 1,老鼠跟主人是被动的 5 * 2,要考虑联动性与扩展性 6 */ 7using System; 8using Sys…

HTML学习笔记之基本介绍

超文本标记语言 (Hyper Text Markup Language,HTML)不是一种编程语言,而是一种标记语言,用一套标记标签描述网页 HTML 标记标签又被称为 HTML 标签(HTML Tag),它是由尖括号包围的关键词&#xf…

系统分析与设计 实验一用例模型

图书管理系统系统分析及用例图 图书管理系统能够为一定数量的借阅者提供服务。每个借阅者能够拥有唯一标识其存在的编号。图书馆向每一个借阅者发放图书证,图书证中包含每一个借阅者的编号和个人信息。系统通过一个单独的程序为借阅者提供服务,不需要管理…

2017.9.12.语文

列夫尼古拉耶维奇托尔斯泰(Лев Николаевич Толстой,1828年9月9日-1910年11月20日)19世纪中期俄国批判现实主义作家、思想家、哲学家。 转载于:https://www.cnblogs.com/mldyz/p/7510750.html

一封会笑死人的校园情书

Kiss郝美丽: Sorry!我把Miss拼成了Kiss,一不小心吻了你,实在是对不起! 吾本良家子弟,正统少年,一向对美眉们保持一种昂首挺胸,目不斜视的高姿态,人送美名…

Java面试题之多线程同步和互斥有几种实现方法,都是什么?

线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另外一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。 线程互斥是指对于共享的进程系统资源,每个线程访问时的排他性。当有若干个线程…

1)头结点,头指针,

http://blog.csdn.net/zhenyusoso/article/details/6092843 转载于:https://www.cnblogs.com/xiaoyoucai/p/7512001.html

软件测试实验--数据工厂DataFactory+MySQL数据构造

数据工厂---DataFactoryMySQL数据构造 显示成功,但测出来的是啥...

杀进程和取文件最近使用时间

unit uFTPclient; interface uses SysUtils,Windows,Tlhelp32; const FILE_CREATE_TIME0; //文件建立时间 FILE_MODIFY_TIME1; //修改时间 FILE_ACCESS_TIME2; //最后访问时间 type TFileTimes (ftLastAccess, ftLastWrite, ftCreation); //文件是否…

局域网常见问题

1.开启Guest用户 密码可以不设,这样可以只输入账号Guest,即可登录(互访)。但需要保证以下策略的开启。 点击“开始→运行”并输入“gpedit.msc”,打开组策略。依次点击“计算机配置→Windows设置→安全设置→本地策略→安全选项”&#xff0c…

visual studio 2017 中默认无法开发 Android 8.0 及以上系统的解决方案

一般默认比较旧有两个原因,系统版本过旧,Visual Studio 版本过旧。 第一步,将windows 更新到最新版,必须是windows 10 并且更新到最新。 第二步,将visual studio -> 工具 -> 扩展和更新 ,安装完所有更…

软件测试--利用正交表设计测试用例

输入条件如下: 姓名:填、不填 性别:男、女 学历:小学、初中、高中、专科、本科、硕士、博士 等级:普通、VIP 用正交表设计测试用例 Allpairs安装及使用 输入数据时要用tab键,或者使用excel表格处理 测试用…

TensorFlow 实现分类操作的函数学习

函数:tf.nn.sigmoid_cross_entropy_with_logits(logits, targets, nameNone) 说明:此函数是计算logits经过sigmod函数后的交叉熵值(即互熵损失),能帮助你更好的进行分类操作。对于一个不相互独立的离散分类任务&#x…

【推荐】极限编程的十二大原则——小版本

小版本:用最少的代码工作量带来最大的业务价值。 这个原则是意思是为了高度迭代,与客户展现开发的进展,小版本发布是一个可交流的好办法,客户可以针对性提出反馈。但小版本把模块缩得很小,会影响软件的整体思路连贯&am…

抓取网络文件的URL地址作附件发送

最近公司的一个项目, 把网站的前后台分离到两个不同的服务器上(后台Server在公司内部网,前台Server在互联网了).前后台用户(分别称呼:客户,公司员工)所有的上传的文件必须要存放在前台的Server上,这样客户才能无障碍访问文件.那,客户登陆前台提出咨询问题之后,公司员工回复问题…

字符串类型String总结

1.String类: ①Java中,字符串是String类的对象; ②Java中,String是引用数据类型; ③可以通过使用String类提供的方法来完成对字符串的操作; ④创建一个字符串对象之后,将不能更改构成字符串的字…

C# Task注意事项

1、在Task中调用主线程控件 Task.Factory.StartNew(() > {}).ContinueWith(task > {this.Invoke(new Action(() > { MessageBox.Show(this, "执行完成"); })); }); 转载于:https://www.cnblogs.com/zhyue93/p/task1.html

CSS实现网页图片预加载

#preloadedImages {width:0px;height:0px;display:inline;background-image:url(path/to/image1.png);background-image:url(path/to/image2.png);background-image:url(path/to/image3.png);background-image:url(path/to/image4.png);background-image:url();}只要在HTML里加…

软件测试--利用组合覆盖法设计测试用例

输入条件如下: 姓名:填、不填 性别:男、女 学历:小学、初中、高中、专科、本科、硕士、博士 等级:普通、VIP PICT安装和使用

thinkpad 61系机器(T61 X61/X61S R61)休眠掉电问题解决办法

众多61系机器用户在待机状态下一晚上耗电10%-20%。去think服务站得到的帮助是换电池,换主板等实验性的办法均不能解决此问题。通过多次尝试,我找到了行之有效的办法与大家分享。 为满足Energy Star 4.0的标准,机器在休眠模式下,机器的一些功能,比如网络唤…

Linux必知必会的目录与启动过程

第1章 /etc/目录 1.1 /etc/sysconfig/network-scripts/ifcfg-eth0 linux第一块网卡的配置文件 [rootznix ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICEeth0 HWADDR00:0c:29:cb:69:ee TYPEEthernet UUID38ad33ab-3d2b-4183-bd84-ce1766236ddd ONBOOTyes NM_CONTRO…

Oracle10g.CentOS6安装

1、文件 Oracle 10g 下载地址_Linux下载_Linux公社-Linux系统门户网站.html(https://www.linuxidc.com/Linux/2012-02/55336.htm) ZC:这里的下载链接基本都失效了...但是,可以看到 每个版本对应的文件名是什么,然后再根…

GridView中HyperLinkField的链接使用JavaScript问题

本来写好的程序,突然增加需求说要点链接以后刷新父页面并弹出窗口,弹出可以直接用Target属性,在网上查了查,DataNavigateUrlFields并不支持JavaScript,在别人博客上还找到了后台绑定数据的方法,感觉改动太大…

软件测试实验--性能测试工具LoadRunner

HP Loadrunner12的下载和安装 LoadRunner12.x简易入门教程--(一)回放与录制 打不开网页, 有脚本,没有关联实例,显示成功。 LoadRunner12安装及基本使用

sql server性能分析--执行sql次数和逻辑次数

目前在做一个项目优化时,想通过数据库层分析sql server系统性能,查了一下网上代码,修改了一下标题和DMVs代码,以下代码可以用来分析系统运行一段时间后,那些语句是系统忙的sql语句。做为参考。 另类使用: 一…

PHP-----PHP程序设计基础教程----第四章数组

4.1 初识数组 4.1.1 什么是数组 数组是一个可以存储一组或者一系列数值的变量。在PHP中,数组中的元素分两部分,分别为键(Key)和值(Value)。其中,“键”为元素的识别名称,也被称为数组…

spark编程基础--2.2scala基础知识

:load 读写文件 for循环表达式 对循环的控制breakable 数据结构--数组 数据结构--元祖 数据结构--列表 Range 集合 - 可变的集合可以在原集合上进行添加、更新及删除元素。 - 不可变集合一旦被创建便不能被改变,添加、更新及删除操作返回的是新的集合&…

BZOJ 3483 SGU505 Prefixes and suffixes(字典树+可持久化线段树)

【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id3483 【题目大意】 给出一些串,同时给出m对前缀后缀,询问有多少串满足给出的前缀后缀模式,   题目要求强制在线 【题解】 我们对于给出的每个字符串正着插入字典树A&#xf…

石英晶体振荡器的结构

石英晶体振荡器的结构 石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等…

坐班族如何摆脱粗壮大腿

对于很多office lady来说一天可能会在办公室坐上八个小时甚至更多的时间,慢慢地会发现大腿越来越粗壮,其实只要认清你大腿的问题真正出在哪里?用一些简单的运动甚至改变坐姿,都可以达到阻止大腿变粗的效果……一起来看看吧&#x…