TCPDUMP学习笔记。
1.启动
普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包,注意这里使用超级用户。当用户上网得时候,就会将监视得数据打印出来。
我没使用root用户,结果输入tcpdump命令,提示:
tcpdump: packet printing is not supported for link type BLUETOOTH_HCI_H4_WITH_PHDR: use –w
2.简单实例
监听网卡(我的网卡号是eno16777736)
# tcpdump -i eno16777736
监听指定协议的数据
# tcpdump -i eno16777736 -nn 'icmp' (-nn的功能是用ip地址表示主机。)
说明: 这个是用来监听icmp协议的数据,就是ping命令使用的协议。类似的,如果要监听tcp或者是udp协议,只需要修改上例的icmp就可以了。
3.针对网络接口、端口和协议的数据包截取。
我在虚拟机上运行了一个TCP服务端程序,接收数据,端口为9877,本机上运行客户端发送数据,然后用tcpdump抓包:
# tcpdump -w test.pcap -i eno16777736 tcp port 9877
运行客户端发送数据完成之后,结束抓包(按ctrl+ c中断tcpdump命令的执行)就会在当前目录下生成一个test.pcap文件。
这个文件可以用抓包工具wireshark来分析,直接打开就可以看到这个pcap文件的信息,实际就是TCP数据包格式存储的数据,熟悉TCP格式的话基本都能看懂了。
4.数据包分析
以上一个为例,抓了一个发送“HelloSocket!”的数据包,命令行提示:
5 packets captured
5 packets received by filter
0 packets dropped by kernel
就是抓了5个包(?)。
TCP包最大能容纳65535字节数据,于是我就试想发送一个65535字节的数据,会不会抓到6个,然而提示的是:
13 packets captured
13 packets received by filter
0 packets dropped by kernel
也就是说抓了13个包。原来IP层有个MUT的概念,也就是分片。而且第一次显示的是5个包,第二次显示的是13个包,为何数据量小于MUT不是1个包,经过分析才知道,服务器上面的抓包命令不但抓了收到数据“HelloSocket!”的数据包,还把TCP三次握手的包夜抓了,每次握手传一个包,就是3个包(注意包括服务器发送出去的包),最后还有个XXXXXXXXXXXX包。想要只抓数据包,得修改命令参数,后面补充。
通过这次抓包,可以明显观察到TCP三次握手的情景(下图1,2,3步就是TCP三次握手情形,参考《UNIX网络编程卷1,第三版》,第2.6节TCP连接的建立和终止):

另外,第二次抓包有一个TCP的状态为PSH,如下图(第12步):

我看了一下TCP状态说明,PSH表示有 DATA数据传输,前面第十步,第八步都有数据传输,为何没有PSH呢?
TCPDUMP学习笔记。的更多相关文章
- tcpdump学习笔记
简介 简单的说,tcpdump就是一个抓包工具,类似Wireshark. tcpdump可以根据使用者的定义过滤/截取网络上的数据包,并进行分析.tcpdump可以将数据包的头部完全接 ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- FreeSWITCH 学习笔记
[1]FreeSWITCH学习笔记 1.Windows安装包下载地址:http://files.freeswitch.org/windows/installer/ 2.源码下载地址:http://fi ...
- 学习笔记:CentOS7学习之十九:Linux网络管理技术
目录 学习笔记:CentOS7学习之十九:Linux网络管理技术 本文用于记录学习体会.心得,兼做笔记使用,方便以后复习总结.内容基本完全参考学神教育教材,图片大多取材自学神教育资料,在此非常感谢MK ...
- Java IO学习笔记一:为什么带Buffer的比不带Buffer的快
作者:Grey 原文地址:Java IO学习笔记一:为什么带Buffer的比不带Buffer的快 Java中为什么BufferedReader,BufferedWriter要比FileReader 和 ...
- Java IO学习笔记四:Socket基础
作者:Grey 原文地址:Java IO学习笔记四:Socket基础 准备两个Linux实例(安装好jdk1.8),我准备的两个实例的ip地址分别为: io1实例:192.168.205.138 io ...
- 网络协议学习笔记(二)物理层到MAC层,交换机和VLAN,ICMP与ping原理
概述 之前网络学习笔记主要讲解了IP的诞生,或者说整个操作系统的诞生,一旦有了IP,就可以在网络的环境里和其他的机器展开沟通了.现在开始给大家讲解关于网络底层的相关知识. 从物理层到MAC层:如何在宿 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
随机推荐
- 粒子跟随本体unity
Simulation Space(模拟空间):在世界坐标和本地坐标中切换,这个就是制作技能痕迹的重要位置,新建的粒子系统一般都默认为local,所以在粒子本体移动的时候也跟着进行移动,改为world的 ...
- 2019.01.14 bzoj2752: [HAOI2012]高速公路(线段树)
传送门 线段树菜题. 题意简述:给一条nnn个点的链,链有边权,支持区间修改边权,查询在一段区间内随机选择不同的起点和终点路径的期望总边权和. 思路:考虑每条边的贡献. 考虑对于一段区间[l,r][l ...
- 2018.11.01 NOIP训练 递增数列(迭代加深)
传送门 直接迭代加深搜索. 发现每次最多增加一倍,最少增加一,于是果断上下界剪枝. 代码
- Liferay
Liferay是一个开源公司,我们一般谈Liferay是指的Liferay Portal.Liferay Portal始创于2000年的洛杉机,当时是一个非营利性组织.于2004年建立Liferay公 ...
- Le Chapitre IX
Je crois qu'il profita, pour son évasion[evazjɔ̃]逃跑, d'une migration d'oiseaux sauvages[sovaʒ]未驯化的. ...
- Arria10调试问题集之——480转成270中DDR4 IP重新生成的问题
在把FPGA器件从480修改成270时DDR4报错: Error (16383): Silicon revision parameter for the following EMIF/PHYLite ...
- 如果我写一个开源的HIS软件
HIS也称为医院信息管理系统,如果我要写一个 开源的,会成吗?为什么要这么做?出于对这个行业的担忧及其当前该行业的一些问题的思考.我曾跟两个HIS供应商讨论过这个话题,但可以感受到他们在利益面前,最终 ...
- java的静态内部类
只是一个简单的记录.因为一直排斥java这个东西.java跟c++比是很不错的一个语言,至少内存管理这么麻烦的东西不用操心了.但是和不断崛起的脚本语言比起来,效率差的太多.无论如何做android还是 ...
- (01背包)Buy the souvenirs (hdu 2126)
http://acm.hdu.edu.cn/showproblem.php?pid=2126 Buy the souvenirs Time Limit: 10000/1000 MS (Java/Oth ...
- java基础-day14
第01天 java面向对象 今日内容介绍 u 接口 u 匿名对象&final u 多态 第1章 接口 1.1 接口的概述 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的 ...