Tcpdump抓包分析过程

 

一、TCP连接建立(三次握手)

过程

客户端A,服务器B,初始序号seq,确认号ack

初始状态:B处于监听状态,A处于打开状态

  • A -> B : seq = x (A向B发送连接请求报文段,A进入同步发送状态SYN-SENT)

  • B -> A : ack = x + 1,seq = y (B收到报文段,向A发送确认,B进入同步收到状态SYN-RCVD)

  • A -> B : ack = y+1 (A收到B的确认后,再次确认,A进入连接状态ESTABLISHED)

连接后的状态:B收到A的确认后,进入连接状态ESTABLISHED

为什么要握手要三次

防止失效的连接请求突然传到服务器端,让服务器端误认为要建立连接。

二、TCP连接释放(四次挥手)

过程

A -> B : seq = u (A发出连接释放报文段,进入终止等待1状态FIN-WAIT-1)

B -> A : ack = u + 1,seq = v (B收到报文段,发出确认,TCP处于半关闭,B还可向A发数据,B进入关闭等待状态WAIT)

B -> A : ack = u + 1,seq = w (B重复发送确认号,进入最后确认状态LAST-ACK)

A -> B : ack = w + 1,seq = u + 1 (A发出确认,进入时间等待状态TIME-WAIT)

经过时间等待计时器设置的时间2MSL后,A才进入CLOSED状态

为什么A进入TIME-WAIT后必须等待2MSL

  • 保证A发送的最后一个ACK报文段能达到B
  • 防止失效的报文段出现在连接中

三、Tcpdump使用

tcpdump是对网络上的数据包进行截获的包分析工具,它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来去掉无用的信息。

监视指定主机的数据包

tcpdump host <IP地址>:截获该IP的主机收到的和发出的所有的数据包
tcpdump host <IP地址> and <IP地址>:截获两个IP对应主机之间的通信

监视指定端口的数据包

tcpdump port <端口号>:截获本机80端口的数据包

四、抓包分析握手过程

抓包方法:首先使用tcpdump命令截获本机与某远程主机的数据包,然后打开某远程主机对应的网站,这里用我的域名www.fonxian.cn来做试验。

ping www.baidu.com

得到域名对应的ip: 61.135.169.125

ifconfg

得到本机内网ip:10.128.10.24

-S 参数的目的是获得ack的绝对值,不加该参数,第三次握手的ack为相对值1

sudo tcpdump -S host 192.168.0.108 and 151.101.100.133

得到下图

其中

1 S 表示是SYN 标记 客户端正准备发起一个请求
2 客户端发送的seq=3481431827
3 表示服务器接收到客户端的请求 发给客户端 ack=34814318278 同时发送SYN=421177755
4 表示客户端接受到服务器的同意连接的请求 发送确认信息 ack=421177756
5 P 表示数据传输状态
6 F 表示连接开始断开的状态
7 表示客户端主动发起断开连接的请求 seq=3481432002, ack=421180537
8 服务端发起确认请求 ack=3481432003
9 表示服务端发起断开连接的请求 seq=421180537, ack=3481432003
10 表示客户端收到服务端发送的断开连接的请求 发送确认信息 ack=421180538

tcpdump抓包具体分析的更多相关文章

  1. 【转】详解使用tcpdump、wireshark对Android应用程序进行抓包并分析

    原文网址:http://blog.csdn.net/gebitan505/article/details/19044857 本文主要介绍如何使用tcpdump和wireshark对Android应用程 ...

  2. Wireshark和TcpDump抓包分析心得

    Wireshark和 TcpDump抓包分析心得  1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Window ...

  3. tcpdump 抓包让wireshark来分析

    在linux下面用tcpdump 抓包非常方便, 但是抓的包要提取出来进行分析, 还是得用wireshark来过滤分析比较方便. 下面先介绍一下 TCPDUMP 的使用 例:tcpdump host ...

  4. 转:tcpdump抓包分析(强烈推荐)

    转自:https://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666539134&idx=1&sn=5166f0aac71 ...

  5. 抓包及分析(wireshark&tcpdump)

    1.简介 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话,我直接用tcpdump了,因为我工 ...

  6. 转 Wireshark和TcpDump抓包分析心得

    1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Windows平台下使用Wireshark,如果是Linux的话 ...

  7. Tcpdump命令抓包详细分析

    1 起因 前段时间,一直在调线上的一个问题:线上应用接受POST请求,请求body中的参数获取不全,存在丢失的状况.这个问题是偶发性的,大概发生的几率为5%-10%左右,这个概率已经相当高了.在排查问 ...

  8. Android利用tcpdump抓包,用wireshark分析包。

    1.前言 主要介绍在android手机上如何利用tcpdump抓包,用wireshark分析包. android tcpdump官网: http://www.androidtcpdump.com/ t ...

  9. 使用Linux的tcpdump命令结合Windows的wireshark抓包和分析

    tcpdump简介 tcpdump是Linux系统下的一款抓包命令集,工作原理是基于网卡抓取流动在网卡上的数据包.在Linux系统中由于tcpdump命令的简单和强大,我们一般直接使用tcpdump命 ...

随机推荐

  1. Unity3d中PureMVC框架的搭建及使用资料

    1.下载PureMVC框架 https://github.com/PureMVC/puremvc-csharp-multicore-framework https://github.com/PureM ...

  2. 逆向知识之CS辅助/外挂专题.2.实现CS1.6透视原理

    逆向知识之CS辅助/外挂专题.2.实现CS1.6透视原理 一丶透视简介 我们涉及到FPS游戏.免不了说透视.自瞄什么的. 在CS1.6中. 有OpenGl.也有D3D. 透视的方法很多. gl透视(也 ...

  3. #10 Python字符串

    前言 通过上一节可知,Python6个序列的内置类型中,最常见的是列表和元组,但在Python中,最常用的数据类型却不是列表和元组,而是字符串.要想深入了解字符串,必须先掌握字符编码问题.因此本篇博文 ...

  4. [转]git操作指南

    [GIT上手篇]-1-基本操作(初始化仓库,添加.提交文件) 创建(初始化)一个GIT库 init 命令 说明:用于仓库的初始化 参数:--bare 创建一个纯仓库(不含缓存区和工作目录,服务器一般采 ...

  5. spring cloud config服务器

    Spring Cloud Config提供了一种在分布式系统中外部化配置服务器和客户端的支持.配置服务器有一个中心位置,管理所有环境下的应用的外部属性.客户端和服务器映射到相同Spring Event ...

  6. 远程登陆Linux服务器

    Xshell 强大的ssh客户端,通过互联网到远程主机.下载:http://www.netsarang.com/download/down_form.html?code=622 1.安装完,新建会话 ...

  7. 【协议】4、http状态码

    10.4 客户错误 4xx 状态代码4xx类是专门使用在客户看上去错误的情形下的.除非当应答一个HEAD请求时,服务器因该有一个包括错误情形的解释的实体,以及它是否一个临时或者终了的条件.这些状态编码 ...

  8. C#中构造函数的定义

    C#构造函数是在创建给定类型的对象时执行的类方法.构造函数具有与类相同的名称,它通常初始化新对象的数据成员.不带参数的构造函数称为"默认构造函数". 无论何时,只要使用 new 运 ...

  9. minitab 输入一串数字

    有时候,我们要向minitab的worksheet输入一串串的数字,很是麻烦. 相如一串数字我们在一个pdf文件存着 那么效率最低的输入方法就是一个一个的输入,"Enter"进入下 ...

  10. Python3 系列之 编程规范篇

    编码规范 编码 如无特殊情况, 文件一律使用 UTF-8 编码 如无特殊情况, 文件头部必须加入 #--coding:utf-8-- 标识 缩进 统一使用 4 个空格进行缩进 引号 自然语言 使用双引 ...