Linux 基础教程 31-tcpdump命令-3
经过前面的学习,tcpdump的用法相信应该都掌握了,今天我们来学习对tcpdump输出内容的学习和了解。我们以第一个示例进行讲解如下所示:
IP协议包分析
[root@localhost ~]# tcpdump -i ens5f1 -nn -X 'port 22' -c 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens5f1, link-type EN10MB (Ethernet), capture size 262144 bytes
22:34:11.334916 IP 192.168.8.8.22 > 112.64.61.186.37035: Flags [P.], seq 3341229570:3341229782, ack 1999159071, win 31152, length 212
0x0000: 4510 00fc 7e99 4000 4006 44a8 c0a8 0808 E...~.@.@.D.....
0x0010: 7040 3dba 0016 90ab c727 1e02 7728 bf1f p@=......'..w(..
0x0020: 5018 79b0 7799 0000 0000 00b0 823d 4cf1 P.y.w........=L.
0x0030: 1108 58fc 3686 2bd2 5220 fe37 85ab 74cc ..X.6.+.R..7..t.
0x0040: bfb1 8831 7d1c 3b57 52ae aa91 28a2 67d8 ...1}.;WR...(.g.
0x0050: 08fb a257 7fc8 7186 39dc d266 3d32 cce8 ...W..q.9..f=2..
0x0060: 3eb7 130b a7d3 833b 59c9 bdf8 2141 6863 >......;Y...!Ahc
0x0070: 7cae 25ff 459e c94a a635 7098 6925 db48 |.%.E..J.5p.i%.H
0x0080: a9b0 32ab 5393 737f cf8c f2ed b47a 7d8b ..2.S.s......z}.
0x0090: 346c 39df 3ecc d2b0 e0ad 5104 272d 6513 4l9.>.....Q.'-e.
0x00a0: 4b8d 5ee6 6c7d 9477 e40b 8637 996a bb5a K.^.l}.w...7.j.Z
0x00b0: 471a 2ac4 3335 266d 0485 2e52 b2c2 f6e8 G.*.35&m...R....
0x00c0: 0549 5ae0 9c7b ad45 da0a eef2 1ccb b2ac .IZ..{.E........
0x00d0: a4a2 0a96 cc5f 238c 9570 0d15 984e 6f58 ....._#..p...NoX
0x00e0: d8ff 8034 1165 cf44 02e4 ed6b 631e 2548 ...4.e.D...kc.%H
0x00f0: 56fd 4c8a 664c e5ee d845 2e50 V.L.fL...E.P
1 packet captured
1 packet received by filter
0 packets dropped by kernel
第一行
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens5f1, link-type EN10MB (Ethernet), capture size 262144 bytes
这里仅仅是提示如果想获取和查看更详细的命令可以尝试添加的参数。
第二行
listening on ens5f1, link-type EN10MB (Ethernet), capture size 262144 bytes
tcpdump监听的网络设备接口和链路层类型(以太网)要抓包的大小限制
第三行
22:34:11.334916 IP 192.168.8.8.22 > 112.64.61.186.37035: Flags [P.], seq 3341229570:3341229782, ack 1999159071, win 31152, length 212
- 22:34:11.334916 :抓包的时间
- IP : 抓取的数据包位于网络层,即IP包
- 192.168.8.8.22:抓取包的源IP地址和端口
>
:数据的传输方向- 112.64.61.186.37035:抓取的包目的地IP和端口
- Flags和后面内容:建立三次握手信息
第4~16行
0x0000: 4510 00fc 7e99 4000 4006 44a8 c0a8 0808 E...~.@.@.D.....
0x0010: 7040 3dba 0016 90ab c727 1e02 7728 bf1f p@=......'..w(..
0x0020: 5018 79b0 7799 0000 0000 00b0 823d 4cf1 P.y.w........=L.
0x0030: 1108 58fc 3686 2bd2 5220 fe37 85ab 74cc ..X.6.+.R..7..t.
0x0040: bfb1 8831 7d1c 3b57 52ae aa91 28a2 67d8 ...1}.;WR...(.g.
0x0050: 08fb a257 7fc8 7186 39dc d266 3d32 cce8 ...W..q.9..f=2..
0x0060: 3eb7 130b a7d3 833b 59c9 bdf8 2141 6863 >......;Y...!Ahc
0x0070: 7cae 25ff 459e c94a a635 7098 6925 db48 |.%.E..J.5p.i%.H
0x0080: a9b0 32ab 5393 737f cf8c f2ed b47a 7d8b ..2.S.s......z}.
0x0090: 346c 39df 3ecc d2b0 e0ad 5104 272d 6513 4l9.>.....Q.'-e.
0x00a0: 4b8d 5ee6 6c7d 9477 e40b 8637 996a bb5a K.^.l}.w...7.j.Z
0x00b0: 471a 2ac4 3335 266d 0485 2e52 b2c2 f6e8 G.*.35&m...R....
0x00c0: 0549 5ae0 9c7b ad45 da0a eef2 1ccb b2ac .IZ..{.E........
0x00d0: a4a2 0a96 cc5f 238c 9570 0d15 984e 6f58 ....._#..p...NoX
0x00e0: d8ff 8034 1165 cf44 02e4 ed6b 631e 2548 ...4.e.D...kc.%H
0x00f0: 56fd 4c8a 664c e5ee d845 2e50 V.L.fL...E.P
以上这些是IP包的内容,左侧是16进制,右侧是ASCII部分。如果想看到这些具体的数据则需要查看前一期中TCP数据报的格式。
- 4510
4:IP版本,此处代表为IPv4
5:代表首部长度,此处代表为20B
10:代表协议的服务类型 - 00fc
表示数据总长度,00FC:代表总长度为252B - 7e99
表示标识,如果IP包的大小超过了数据链路层的MTU限制,就需要对IP包进行拆分,此时就要用这个域来表示哪些包在拆分前是同一组的。此处的标识域为0x7e99 - 4
再继续向后看,就是3位标志位,用来控制IP抓分后重新组装用,最低位为MF(More Fragment),中间位为DF(Don't Fragment)不能分片 - MF=1:表示后面还有分片
- MF=0:表示这已经是若干分片中的最后一个
- DF=0:允许分片
- 000:片偏移量,本次没有拆分包,所以全为0
- 40:TTL(Time To Life),数据包在网络中的寿命。此处为0x40,进制为64,表示如果中间超过了这个路由节点,则认为目的不可达,中间路由器将进行丢弃处理。
- 06:指上一层协议类型,此处为0x06,可以看出协议编号为6,代表为TCP协议。
- 44a8:表示IP首部校验和,此处为0x44a8
- c0a8 0808:IP源地址,此处为192.168.8.8
- 7040 3dba:IP目的地址:此处为:112.64.60.186
到此,数据包头部已经全部解释完成。
UDP协议包分析
我们先来抓取一个UDP包,如下所示:
[root@localhost ~]# tcpdump -i ens5f1 -nn -X 'udp' -c 1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens5f1, link-type EN10MB (Ethernet), capture size 262144 bytes
18:18:12.499924 IP 192.168.8.101.137 > 192.168.8.255.137: NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST
0x0000: 4500 004e 31ab 0000 8011 763f c0a8 0865 E..N1.....v?...e
0x0010: c0a8 08ff 0089 0089 003a 1277 ddc1 0110 .........:.w....
0x0020: 0001 0000 0000 0000 2046 4b46 4545 4643 .........FKFEEFC
0x0030: 4e44 4344 4144 4244 4744 4144 4944 4144 NDCDADBDGDADIDAD
0x0040: 4245 4945 4645 4841 4100 0020 0001 BEIEFEHAA.....
1 packet captured
1 packet received by filter
0 packets dropped by kernel
相对于IP包来讲,UDP的包要简单很多,其首部总共就8个字节。而UDP位于传输层,自然前面也增加了IP包相关的头部。
- 0089:源端口为0x0089即:137
- 0089:目的端口为0x0089即:137
- 003a:UDP包的总长度,即58字节,去掉首部的8字节后,真正可以用来传输的只有50字节。
- 1277:UDP校验和。为0x1277
本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:
Linux 基础教程 31-tcpdump命令-3的更多相关文章
- Linux 基础教程 37-进程命令
pidof 我们知道每个小孩一出生就会一个全国唯一的编号来对其进行标识,用于以后上学,办社保等,就是我们的身份证号.那么在Linux系统中,用来管理运行程序的标识叫做PID,就是大家熟知的进程 ...
- Linux 基础教程 32-解压缩命令
将文件压缩后对提升数据传输效率,降低传输带宽,管理备份数据都有非常重要的功能,因此文件压缩解压技能就成为必备技能.相对于Windows中的文件解压缩工具百花争艳,在Linux中的解压缩工具则要 ...
- 嵌入式LINUX基础教程 第2版
嵌入式LINUX基础教程 第2版 目录 第1章 入门 11.1 为什么选择Linux 11.2 嵌入式Linux现状 21.3 开源和GPL 21.4 标准及相关组织 31.4.1 Linux标准基 ...
- Linux基础 - 系统优化及常用命令
目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...
- Linux基础系统优化及常用命令
# Linux基础系统优化及常用命令 [TOC] ## Linux基础系统优化 Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. - ...
- Linux基础01 学会使用命令帮助
Linux基础01 学会使用命令帮助 概述 在linux终端,面对命令不知道怎么用,或不记得命令的拼写及参数时,我们需要求助于系统的帮助文档:linux系统内置的帮助文档很详细,通常能解决我们的问题, ...
- [SQL基础教程] 3-1 对表进行聚合查询
[SQL基础教程] 3-1 对表进行聚合查询 聚合函数 用于合计的函数称为聚合函数或者集合函数 COUNT SUM AVG MAX MIN SELECT COUNT(*) FROM table; SE ...
- Linux基础教程 linux中使用find命令搜索文件常用方法记录
find是linux非常强大的搜索命令,通过man find查看find手册,可以发现find的说明一屏接一屏,估计要看完也得花不少时间.兄弟连Linux培训 小编总结了下,整理出find常用的使用方 ...
- Embedded Linux Primer----嵌入式Linux基础教程--2.4节--嵌入式Linux发行版
嵌入式Linux发行版 究竟什么是Linux发行版?在Linux内核引导之后,它期望找到并挂载根文件系统.当一个匹配的根文件系统已经挂载上,启动脚本开始运行大量程序和系统要求的工具.这些程序经常调用其 ...
- Linux基础教程
Linux基础教程之<Linux就该这么学>之学习笔记第一篇... ========================= 一.Basic Linux Commands 基本的Linux ...
随机推荐
- bzoj 2007 [Noi2010]海拔——最小割转最短路
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2007 一个点的高度一定不是0就是1.答案一定形如一个左上角的连通块全是0的点.一个右下角的连 ...
- 转转转!!Spring MVC控制器用@ResponseBody声明返回json数据报406的问题
本打算今天早点下班,结果下午测试调试程序发现一个问题纠结到晚上才解决,现在写一篇博客来总结下. 是这样的,本人在Spring mvc控制层用到了@ResponseBody标注,以便返回的数据为json ...
- HDU 2516 取石子游戏(斐波那契)
取石子游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- php ini_set更改php.ini配置,通过它修改php.in达到php上传文件大小限制是不行的,除非修改.htaccess文件
PHP ini_set() 无效的原因:如题:我租的是虚拟主机,php.ini里的upload_max_filesize是默认的2M,要直接修改php.ini文件是不可能的.我如果想上传超过2M的怎么 ...
- php 数字格式化
php 数字格式化 1.位数不足前面补0 <?php for($i=1; $i<=17 ;$i++){ $var = sprintf("0%3d",$i); echo ...
- 六.jQuery源码分析之jQuery原型属性和方法
97 jQuery.fn = jQuery.prototype = { 98 constructor: jQuery, 99 init: function( selector, context, ro ...
- solr之高级查询--联表 join查询
例如有两个业务表:文章表,评论表 . 场景: 一个文章可以由多个人评论. 创建两个core,一个core叫article,一个叫comment.article实例的schema.xml文件中定义几个简 ...
- Synergy使用(安装及配置)
最近在看一篇文章,找到了一款符合我需求的软件:Synergy. Synergy可以在多台电脑上进行鼠标与键盘及剪贴板(只能共享文本)的共享.不用每台电脑都插上这些外设了... 共享文件可以参看微软出品 ...
- 七、配置ssh keys连通github跟ssh-agent
jenkins+github配置完成后,能够实现在提交pull request或者直接push时,能够将提交的代码拉去一份到服务器本地,并自动merge:但是代码拉去下来了,部署环境的时候却需要输入登 ...
- AngularJS学习笔记(3)——通过Ajax获取JSON数据
通过Ajax获取JSON数据 以我之前写的与用户交互的动态清单列表为例,使用JSON前todo.html代码如下: <!DOCTYPE html> <html ng-app=&quo ...