TCP/IP详解卷1 - wireshark抓包分析
TCP/IP详解卷1 - 系列文
引言
在初学TCP/IP协议时,会觉得协议是一种很抽象的东西,通过wireshark抓包分析各种协议,可以让抽象变得具体。
wireshark抓包
wireshar抓包的教程很多,这里就不再重复。参考下图:

wireshark快速get对应filter
我们知道wireshark抓到的内容很多,要过滤我们需要的信息就需要设置对应的filter,例如:想要过滤ICMP协议相关的log,直接在Filter里面输入协议名称"icmp",就能过滤出ICMP的log。
这是一种最简单的过滤条件了。实际上设置filter的语句有很多,如果想要过滤ICMP中type为3(目的地不可到达)的数据报,但又不知道filter应该怎么写,那应该怎么办呢?
这个时候,我们就可以直接利用wireshark提供的As Filter功能,快速get到想要设置的filter。
如下图所示,要过滤ARP数据报中的ARP请求数据报,直接选中Opcode: request(1),右键 ->Copy->As Filter,就能得到对应filter。

IP数据报
IPv4报文首部
要分析IP数据报的内容,首先得知道它的数据报的数据结构。

wireshark过滤IP数据报
然后过滤IP数据报,从下面这个图可以看出,IP数据报被封装到以太网帧里面,当以太网帧的type值为0x0800时,那么以太网帧封装的就是IP数据报了。

因此,设置eth.type == 0x800就能过滤出IP数据报。根据下图,再对比IPv4报文首部的数据结构,就可以更加清晰地理解IP数据报了。

ARP
ARP报文格式

wireshark过滤ARP数据报
和IP数据报一样,ARP数据报被封装到以太网帧里面,当以太网帧的type值为0x0806,设置
eth.type == 0x806就能过滤ARP数据报。
ARP数据报又分为请求数据报和应答数据报。
首先,查看我本机的MAC地址,在wireshark中过滤ARP请求数据报的MAC地址等于我本机地址的一条log。如下图,本机请求IP地址为10.120.1.91的主机的MAC的ARP请求。

通过上面的ARP数据报,我又可以得到ARP请求中Sender IP address的Filter格式,我只需要过滤
Sender IP address为10.120.1.91,最后过滤出来的结果就只有2条。
查看其中Target MAC address为我本机MAC地址,并且Opcode为2,即是10.120.1.91返回的APR应答,其中Sender MAC address,就是ARP请求得到的MAC地址。

ICMP
ICMP数据报格式

wireshark过滤ICMP数据报
ICMP报头格式虽然简单,但是对应类型很多,分析方法也是类似的,选中你想要设置为过滤条件的参数,然后copy为filter




TCP/IP详解卷1 - wireshark抓包分析的更多相关文章
- 《TCP/IP详解卷1:协议》第1章 概述-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 《TCP/IP详解卷1:协议》第2章 链路层-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 《TCP/IP详解卷1:协议》第3章 IP:网际协议(1)-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 《TCP/IP详解卷1:协议》第3章 IP:网际协议(2)-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 《TCP/IP详解卷1:协议》第4章 ARP:地址解析协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 《TCP/IP详解卷1:协议》第5章 RARP:逆地址解析协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 《TCP/IP详解卷1:协议》第6章 ICMP:Internet控制报文协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 《TCP/IP详解卷1:协议》第11章 UDP:用户数据报协议-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
- 《TCP/IP详解卷1:协议》第17、18章 TCP:传输控制协议(1)-读书笔记
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
随机推荐
- 通过PHP获取文件创建与修改时间
1.获取文件创建时间示例: 1 2 $ctime=filectime("chinawinxp.txt"); echo "创建时间:".date("Y- ...
- K均值算法总结
这几天在一个项目上需要用到K均值聚类算法,以前都是直接利用百度老师copy一个Kmeans算法代码,这次想自己利用已知的算法思想编写一下,编写才知道,虽然熟悉了算法思想,真正实现时,还是遇到不少bug ...
- 在mac下搭建java开发环境
刚刚从windows系统转到使用mac系统.感觉不是特别熟悉,须要一定的适应时间. 以下简介一下mac下搭建主要的java开发环境. 1.安装jdk 安装jdk1.7后,发现不须要进行环境变量配置,直 ...
- 使用T4模板为EF框架添加数据库实体注释
网上有一个解决方法如下: http://www.cnblogs.com/stone_w/archive/2012/10/25/2738345.html 不过我试了下没解决太麻烦了 而且一旦EF要重新生 ...
- Java泛型【转】
一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: public class GenericTest { public static void main(String[] a ...
- Unix环境高级编程第三版中实例代码如何在自己的linux上运行的问题
学习Linux已经有2个月了,最近被期末考试把进度耽误了,前几天把Unix环境高级编程看了两章,感觉对Linux的整体有了一些思路,今天尝试着对第一章涉及到的一个简单的交互式shell编译运行一下,结 ...
- 【BZOJ3796】Mushroom追妹纸 二分+hash
[BZOJ3796]Mushroom追妹纸 Description Mushroom最近看上了一个漂亮妹纸.他选择一种非常经典的手段来表达自己的心意——写情书.考虑到自己的表达能力,Mushroom决 ...
- 【BZOJ4166】月宫的符卡序列 Manacher+hash
[BZOJ4166]月宫的符卡序列 题解:题倒不难,就是有点恶心. 首先学习回文串的时候一定学到了这样一个结论:一个长度为n的串的本质不同的回文子串数量不超过n个. 那么我们就可以试图将所有回文串的价 ...
- 九度OJ 1172:哈夫曼树 (贪心)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:6701 解决:2954 题目描述: 哈夫曼树,第一行输入一个数n,表示叶结点的个数.需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结 ...
- Django框架ORM单表添加表记录_模型层
此方法依赖的表时之前创建的过的一张表 参考链接:https://www.cnblogs.com/apollo1616/p/9840354.html 方法1: # 语法 [变量] = [表名].obje ...