Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析

一、介绍计算机网络体系结构

1.计算机的网络体系结构

在抓包分析TCP建立链接之前首先了解下计算机的网络通信的模型,我相信学习过计算机网络的都比较熟悉,如下图所示是一个OSI七层模型、TCP/IP四层模型以及五层模型的对比图。(此图来源于计算机网络第七版-谢希仁版本书)。

其中OSI模型以及TCP/IP的模型大伙都应该熟悉,至于说五层模型,就是讲网络接口层分成 数据链路层、和物理层,关于这个问题,谢老这么解释的

2.计算机网络模型每层所包含的信息内容

内容介绍

  • 物理层 

    • 通过线路传送原始的比特流
    • 只完成一个节点到另一个节点的传送
  • 数据链路层 
    • 通过物理网络传送包(这里的包指的是数据报)
    • 只完成一个节点到另一个节点的传送
    • 实现点到点的可靠传输
  • 网络层 
    • 把包里面的目的地址拿出来,进行路由选择,决定要往哪个方向传输
    • 负责从源通过路由选择到目的地的过程,达到从源主机传输数据到目标主机的目的
  • 传输层 
    • 网络层只是把数据送到主机,但不会送到进程,传输层负责进程与主机间的传输,主机到主机的传输交由网络层负责
    • 传输层实现端到端的可靠传送
  • 会话层 
    • 通过数据流建立会话关系
  • 展示层 
    • 数据压缩、解压、加密、解密、数据类型、格式变换等一切与数据展示有关的操作
  • 应用层 
    • 专门针对某些应用提供服务

针对以上内容展现一个图例

此图来源于https://www.jianshu.com/p/c793a279f698 不定非常准确,参考

二、使用抓包工具分析TCP链接过程

1.安装Wireshark(自己百度下载安装)

我使用版本Version 1.4.9 ,工具有好多比如Sniffer等等,这个工具自己解决

2.开启wireshark

双击打开本软件--点击接口列表或者单击这个图标  ,弹出网卡监听的界面对话框,可以选择对应的网卡监听、鼠标点击ip地址可以从IPV4与IPV6相互切换,点击开始即可。

点击开始即可监听该网卡所流经过的数据

我使用俩台机器来测试抓取报文 如下图所示,服务开启端口为4455,客户端随机开启一个  我测试过程中的为40183

可以看到头部的Filter 过滤规则、如果为空白,则会将流经本网卡的所有数据均监听采集上来,为了方便抓取我们所需要的数据包,我们需要过滤掉无关的消息

3.输入过滤规则进行过滤

过滤规则

  • tcp->只显示TCP协议的记录;
  • http->只看HTTP协议的记录;
  • ip.src ==192.168.0.110 ->显示源地址为192.168.0.110的记录;
  • ip.dst==192.168.0.1120 ->目标地址为192.168.0.120的记录;
  • ip.addr == 42.121.252.58 ->只显示与某主机的通信;
  • tcp.port ==80->端口为80的;
  • tcp.srcport == 80 ->只显示TCP协议的源端口为80的;
  • http.request.method=="GET"  ->只显示HTTP GET方法的;
  • eth.type == 0x806->只显示ARP报文,这个字段的值表示是ARP报文,如果是ip报文此值为0x8000
  • 注:Type后面的值记不住的话,可以在Expression中选择,

例如:ip.src == 192.168.0.109 or ip.dst == 192.168.0.109 and tcp  表示ip地址来源是192.168.0.120 或者ip地址目的为192.168.0.120并且通信协议是tcp

我输入的是:tcp.srcport == 4455 or tcp.dstport == 4455 表示只查看目的端口和来源端口为4455的信息

过滤报文如下

过滤规则也有说明打击表达式可以查看别的规则语法

查看具体抓到的数据包对应的协议层

4.TCP的链接建立

TCP的三次握手

包数据

TCP的三次握手建立链接图(此图依然来源于计算机网络-谢希仁)

由上图可以看出TCP的链接三次握手信号的过程 A为客户端,B为服务器

建立过程的描述请看谢老的讲述、以及报文抓取截图中的信号

5.数据的发送

6.TCP的链接释放

TCP链接释放报文交互信息

TCP链接释放的过程,也就是通常说的四次挥手

7.TCP的有限状态机

为了能够更加清晰的看清楚TCP链接过程的状态变化情况,以及状态之间的关系下图介绍了TCP的有限状态机

6.TCP建立链接和断开所用到的工具

开启客户端和服务端程序并且启动服务的监听

开启服务端

开启客户端

TCP测试工具下载地址

转载于:https://www.cnblogs.com/JiYF/p/9284239.html

Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析相关推荐

  1. WireShark 抓包理解 TLS 建立加密连接的过程

    一.实验环境 服务端:web容器 glassfish 部署了一个可以访问的web包 keystore.jks里添加的SSL证书,可参见 https://blog.csdn.net/yetugeng/a ...

  2. wireshark抓包理解TCP的三次握手

    一.实验目的 通过wireshark抓包工具,抓取客户机访问FTP服务器的连接过程进一步理解TCP的三次握手 二.实验拓扑 三.实验步骤 1.根据拓扑图搭建实验环境. 2.在客户机上安装安装Wires ...

  3. wireshark抓包图解 TCP三次握手/四次挥手详解

    一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能.包含以下四个层次: 1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程 ...

  4. 网络知识===wireshark抓包出现“TCP segment of a reassembled PDU”的解释(载)

    网上胡说八道,众说风云,感觉这篇还算靠谱点. 原文链接:http://blog.csdn.net/dog250/article/details/51809566 为什么大家看到这个以后总是会往MSS, ...

  5. wireshark 抓包显示 TCP segment of a reassembled PDU的问题

    测试tacacs客户端和服务器(TCP)通信发现客户端认证报文发出去了,服务器没收到,抓包显示发送的报文携带了TCP segment of a reassembled PDU这个标识,正常的报文应该解 ...

  6. 通过 wireshark 抓包了解直播流媒体 RTMP 协议基本过程

    作者:Elias Zhang 声网资深工程师,拥有从Iaas层的基础信息存储服务到paas层的云服务的职业经历,喜欢python语言,习惯使用C#,熟悉基于和结合CDN的业务产品架构,点播.直播.云导 ...

  7. wireshark抓包数据:理解与分析

    wireshark是一个非常好用的抓包工具,本文根据平时抓包经验,对之前wireshark抓包的一些常见知识点进行了整理. 有不当之处,欢迎指正 注明:本文为原创文章,转载请注明出处.参考文章见本文末 ...

  8. wireshark抓包分析TCP数据包

    1.直接从TCP的三次握手开始说起 三次握手就是客户与服务器建立连接的过程 客户向服务器发送SYN(SEQ=x)报文,然后就会进入SYN_SEND状态 服务器收到SYN报文之后,回应一个SYN(SEQ ...

  9. 用wireshark抓包分析TCP协议的三次握手连接、四次握手断开

    用wireshark抓包分析TCP协议的三次握手连接.四次握手断开 一.TCP三次握手图解 二.TCP得四次挥手过程 三.用Fiddler抓包,分析验证一个HTTPS网站的TCP连接过程 一.TCP三 ...

最新文章

  1. CentOS6.5 下sciki-learn numpy scipy 的安装
  2. 用dict读取和写入表格_用Python快速处理表格,让你快人一步两步三四部
  3. [概率论]如何通俗地理解“最大似然估计法”?
  4. python pip安装第三方库版本问题_python使用pip安装第三方库的踩坑记录
  5. 深度揭秘“蚂蚁双链通” 1
  6. 机器学习相关基本术语
  7. 【优化算法】蝴蝶优化算法(MBO)【含Matlab源码 952期】
  8. 全新卡盟系统PHP版 集成易支付_2020年全新PHP全开源易支付系统完整源码 带多个支付接口...
  9. Spring Security(3)
  10. php 计算壬子,壬子日是哪一天 壬子日怎么算
  11. Fibo Rule规则引擎可视化
  12. enti下载器_短跑enti策略:如何在不破坏软件的情况下改进软件
  13. (二)什么是Reactor模式
  14. 成功发行5亿元公司债,获资本支持的碧桂园稳了吗?
  15. python爬虫课程笔记
  16. 通过C语言程序修改控制台的背景和前景颜色
  17. 7-11 互评成绩(25 分)
  18. ROS wiki系列|通过ROS wiki-tutorials学习服务和参数
  19. python作业6cqupt
  20. python stmplib与email模块邮箱详解

热门文章

  1. java响应很慢排插_服务响应时间慢:Java SecureRandom和/ dev / random - java
  2. vue-cli proxy中跨域中pathRewrite配置理解
  3. 二分法(leetcode分类解题,C++代码详细注释)
  4. [GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(上)
  5. oracle数据同步异常,案例:DataGuard同步异常问题处理记录
  6. python爬取新闻网站内容_python爬虫案例:抓取网易新闻
  7. NCoreCoder.Aop详解
  8. sql 2008 使用output避免数据修改后的二次查询
  9. java接口import_深入理解Java架构师在组件注册@Import导入容器(ImportSelector接口)的神操作!...
  10. python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)