工作中的常用用法

一、tcpdump常用用法:

1,-i 指定网口 -vnn 常用选项,显示详细信息并且不解析IP,端口 ;

抓取某个网口上发往或来自某个IP的报文

tcpdump -i ethX host 192.168.1.100 -vnn

2,可以用or 或者and 连接多个过滤条件,port前的tcp表示tcp协议,也可为udp;

抓取某个网口上发往或来自某个IP、并且指定端口的报文

tcpdump -i ethX host 192.168.1.100 and tcp port 22(端口号) -vnn

3, -c 指定抓取报文的数量, 用 -w 把抓取的数据包写入文件;

抓取某网口50个包并写入dump.cap(为什么是 .cap?因为wireshark识别此扩展名)文件:

tcpdump -i ethX -c 50 -w /root/dump.cap

4,可以用关键字 src 或者 dst 表示 源 或者 目的;

抓取源端口号为22(tcp协议)的报文

tcpdump -i ethX tcp src port 22(端口号) -vnn

以上为常用用法,可以根据实际情况灵活组合。

二、wireshark分析报文:

1,淡紫色数据包为正常数据包,包括数据包和ACK包

2,黑色为异常包,包括丢包ACK、重传等

2.1 Packet Size limited during capture

这个标志说明数据包并没被完全抓到,而只是抓到了一部分。这种情况多数是由于抓包方式引起,在某些系统中tcpdump只抓每个帧的前96个字节。我们可以”-s”参数来指定想要的字节数。

2.2 TCP previous segment not captured

TCP传输过程中同一台主机发出的数据应该是连续的,即后一个数据包的Sequence应该等一前一个数据包的sequence+len,如果后面捕捉到的数据包不符合这样的规律,即sequence比前一个包的sequence+len大的话,我们就可以认定中间的数据包就没有抓到,导致这个数据包没有按时到达的原因可能有乱序或者丢包导致。

2.3 TCP ACKed unseen segment

当WireShark发现被ACK的那个包没被抓到,就会提示[TCP ACKed unseen segment],这种提示一般没有什么问题,就是WireShark漏抓了。

2.4 TCP Dup ACK

当出现乱序或者丢包等情况的时候,本来应该收到的数据包没有收到,反而收到了一些Sequence号比较大的数据包,这时候客户端就会回复一个ACK,ACK本应该收到却没有收到的包,如果后面来的还不是所期望的数据包,那么客户端每收到一个其他数据包就会回复一个ACK,由于这些ACK是重复的,所以就会提示[TCP Dup ACK]。

2.5 TCP Out-of-Order

TCP传输过程中数据包的Sequence号应该是持续递增的,也就是说每个数据包之间应该只差一个Len的数据,但是在传输过程中如果Sequence比较大的数据包比Sequence比较小的数据包先到达的话,就会触发[TCP Previous Segment not cpatured],然后如果在后续收到了“迟到”的数据包,就会被标记[TCP Out-of-order]。

2.6 TCP Fast Retransmission

当服务器收到3个或以上的[TCP Dup ACK]后就会判定所ACK的包丢失了,哪怕还没有超过定时器的规定,都会立即重新发送,客户端收到后会标记为[TCP fast retransmission]。

2.7 TCP Retransmission

一般来说一个数据包丢失后又没有足够的后续数据包来触发[TCP Fast Retransmission]的话,超过定时器的时限后就会触发超时重传,这时候客户端收到的数据包就会被标记[TCP Retransmission]。

2.8 TCP Zerowindow

在TCP数据包中,Info那一栏的中的”win=XX”中XX代表了接收窗口的大小,代表了这个信息的源地址的主机还有多少数据可以接收,或者说缓存区还有多少空间。当win=0的时候就会给相应ACK打上[TCP Zerowindow]的标志,告诉发送方我没有数据可以接收了。

2.9 TCP window full

当出现这个标志的时候证明发送方已发送的但还没有确认的数据包已经达到了接收方接收窗口的上限,也就是说这个时候发送方就会停止发送数据,而不是等接收方回复[TCP Zerowindow]后才停止发送。所以[TCP window full]针对的是发送方没法发送数据,而[TCP Zerowindow]指的是接收方没法接收数据,不管出现哪一种情况,都会中断数据的传输,直到缓存区有新的空间存放数据。

3,数据包的标签从左到右依次为:

数据包编号---时间---源地址---目标地址---协议类型---长度---总长度---数据包序号---下一个数据包序号---ACK号---身份识别码---RTT---一些窗口参数

4,再点击一个报文后,我们在WireShark的下端可以看到更为详细的信息:

分别对应OSI七层模型的,数据链路层、网络层、传输层、应用层

wireshark读写pcap文件_使用wireshark分析tcpdump出来的pcap文件相关推荐

  1. python怎么编写wireshark抓的包_使用Wireshark 抓取数据包

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

  2. java防止上传恶意文件_从补丁分析到在野利用:揭秘CVE20201464 Windows文件签名验证绕过漏洞疑云...

    背景 2020年8月12日,微软发布了8月份的漏洞风险通告.通告中一个显示已被公开披露和在野利用的漏洞进入了我们的视野.该漏洞编号为CVE-2020-1464,其被描述为Windows验证文件数字签名 ...

  3. wireshark 抓 蓝牙数据_使用Wireshark 抓取数据包

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

  4. c++ 写入文件_利用Python把数据存储在csv文件中

    鼠年第一天开盘,很多股票跌停,太闹心了!今天再找点开心的事情做吧.人生最幸福的事情莫过于看到自己写的程序调试通过了! 前面我们介绍了,如何用Python做一个串口通讯的上位机.用这个上位机我们可以从E ...

  5. 如何恢复录音删除的录音文件_硬盘分区数据误删除如何恢复?文件删除不用急...

    硬盘分区数据误删除如何恢复?相信很多人在安装系统或者重装电脑时,往往也都会对电脑原有数据的卷大小进行调整,以此来满足我们日常使用的需求.然而对于一些新手来说,在操作时也都容易不小心把整个硬盘的分区给删 ...

  6. c++读取utf8文件_经常在日常工作中处理统一码文件(or其他编码)?这篇必读

    全文共2717字,预计学习时长5分钟 对于那些经常在日常工作中处理统一码文件(也适用于其他编码)的人来说,这篇文章是必读的.对于自然语言处理的从业者,处理统一码文件是一场噩梦,尤其是使用Windows ...

  7. qt 快速按行读取文件_这是知识点之Linux下分割文件并保留文件头

    点击上方"开发者的花花世界",选择"设为星标"技术干货不定时送达! 这是一个知识点 方便快捷的给结构化数据文件分割大小并保留文件的表头,几十个G的结构化文件不仅 ...

  8. linux怎样自动检查link文件_怎样理解和识别 Linux 中的文件类型 | Linux 中国

    众所周知,在 Linux 中一切皆为文件,包括硬盘和显卡等.在 Linux 中导航时,大部分的文件都是普通文件和目录文件.但是也有其他的类型,对应于 5 类不同的作用.因此,理解 Linux 中的文件 ...

  9. java 删除过期文件_定时脚本: 删除HDFS中的过期文件

    1. 基本原理: 通过hadoop fs -ls *命令获取相关文件或目录的修改时间,然后与设定的过期时间进行比较,之后执行删除操作即可 2. 相关代码: #!/bin/bash source ~/. ...

  10. .f90文件批量转为dll文件_办公必备神器DropIt V8.5.1Portable文件整理分类工具

    文件混乱用这1款神器就够了 目录 [url=]DropIt 的使用思路[/url] [url=]快捷调用 DropIt 的两种方式[/url] [url=]配合 IrfanView 对图片进行操作[/ ...

最新文章

  1. 5. 编程规范和编程安全指南--JavaScript
  2. 我用Python破解了同事的加密压缩包
  3. 加速安装LibcSeacher
  4. OpenGL multiviewport多个视口的实例
  5. Spring MVC 入门笔记
  6. 字符串GZIP压缩解压
  7. 网络研讨室_即将举行的网络研讨会:调试生产中Java的5种最佳实践
  8. python 短网址_Python实现短网址ShortUrl的Hash运算实例讲解
  9. python定义空数组_在numpy数组中设置空值
  10. idea 使用 Gradle 构建过程中控制台中文显示乱码解决
  11. 使用Pushlet将消息从服务器端推送到客户端
  12. 基于matlab的巴特沃思数字滤波器设计,基于Matlab巴特沃斯低通滤波器的设计
  13. matlab中的矩阵元素表示和求和
  14. 大一上c语言基础知识题
  15. NC14709 奇♂妙拆分
  16. 网箱补网水下机器人电控调试日志-驱动水下推进器-Day1
  17. java使用多态打印个人信息_java 多态 回顾
  18. mysql查询集合查询之数据库除法、关系代数除法(优化嵌套查询)
  19. 一种可以使汽车气缸密封并润滑的机油添加剂
  20. aiaidaxue.com 爱爱大学最新地址发布页

热门文章

  1. NJUPT【电工电子基础实验】
  2. linux安装rmp格式文件,在CentOS Linux上使用yum、dnf和rpm安装RPM文件(Packages)
  3. html多选框写法,HTML多选框
  4. 4.2 录制第一个jmeter性能测试脚本(http协议)
  5. R语言基础数据分析——双因素方差分析
  6. linux如何查看内存?
  7. 他教全世界程序员怎么写好代码,而且将所有答案写在这本书里
  8. Java 替换PDF中的字体
  9. 视频教程-HTML零基础经典入门视频-HTML5/CSS
  10. oracle执行计划中cost cpu