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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码 直接调节显示设备亮度_LED显示屏参数系列,亮度是什么,如何调节,如何选择...

亮度概念:亮度:在给定方向上, 每单位面积上的发光强度。亮度的单位是cd/m2,读作Candela per square metre(坎德拉每平方米)。有时候LED显示屏厂家会标示亮度单位为nit(尼特)&#xf…

r语言error in match.fun(fun) :_Go语言200行写区块链源代码分析

Github上有一个Repo,是一个使用Go语言(golang),不到200行代码写的区块链源代码,准确的说是174行。原作者起了个名字是 Code your own blockchain in less than 200 lines of Go! 而且作者也为此写了一篇文章。https://medium.com/mycoralheal…

方案的写法

转至野路子吴鲁加的网络日志方案的写法今天看《胡雪岩》第二册P530提道:像这些“说贴”,最要紧的是简洁,要几句话就能把那些大官儿说动心,才是上品……这个说帖,王有龄、赵景贤一定会看完,但递到黄宗汉手中…

oracle distinct分页优化_Oracle SQL性能优化最常用的40条建议

关于Oracle SQL优化的内容,这一篇应该能满足常规大部分的应用优化需求,整整40条优化建议,干货满满。1. SQL语句执行步骤语法分析> 语义分析> 视图转换 >表达式转换> 选择优化器 >选择连接方式 >选择连接顺序 >选择数据的…

Python的文件

今天我们主要来讲一下关于Python文件的一些知识: 1、当我们先打开一个文件的时候,在Python中可以这样子做:使用open()函数,大概类似于这样:f open(lsf.txt),你应该知道txt是记事本文件的后缀吧&#xff0c…

必须理解的分布式系统中雷同的集群技术及原理

写在前面 在当今信息爆炸的时代,单台计算机已经无法负载日益增长的业务发展,虽然也有性能强大的超级计算机,但是这种高端机不仅费用高昂,也不灵活,一般的企业是负担不起的,而且也损失不起,那么将…

如何获取.then的返回值_仅仅知道如何终止XHR请求,或许对你来说是不够的!

TLDR:当我们需要的时候,我们可以通过AbortController接口来终止一个或者多个请求。前言到目前为止,我们有两个常用的基本的手段去发送请求进而局部刷新页面内容,其一是XMR(XMLHttpRequest),其二是fetch,我们一个个说XH…

Java - 常用工具类 - 集合框架

转载于:https://www.cnblogs.com/wnzhong/p/9309371.html

stunnel使用详解

http://www.stunnel.org/faq/args.htmlhttp://www.colasoft.com.cn/support/monitor_stunnel.php科来网络分析系统与stunnel结合使用科来网络分析系统是一款强大的网络检测分析工具,可对网络中未加密的数据传输进行检测分析并实时显示分析结果,包括用户的…

binlog日志_【删库跑路】使用Binlog日志恢复误删的MySQL数据

前言“删库跑路”是程序员经常谈起的话题,今天,我就要教大家如何删!库!跑!路!开个玩笑,今天文章的主题是如何使用Mysql内置的Binlog日志对误删的数据进行恢复,读完本文,你…

Java并发编程笔记之ThreadLocal内存泄漏探究

使用 ThreadLocal 不当可能会导致内存泄露,是什么原因导致的内存泄漏呢? 我们首先看一个例子,代码如下: /*** Created by cong on 2018/7/14.*/ public class ThreadLocalOutOfMemoryTest {static class LocalVariable {private L…

Res协议,专题

打造完美的IE网页木马 发表:2004-5-20 19:41:00 出处:你的博客网(yourblog.org) 打造完美的IE网页木马 icyfox (测试页面:http://www.godog.y365.com/runexe/icyfox.htm,此处所…

springboot中获取bean_最新Spring Boot干货总结(超详细,建议收藏)

前言:本文非常长,建议先mark后看,也许是最后一次写这么长的文章说明:前面有4个小节关于Spring的基础知识分别是:IOC容器、JavaConfig、事件监听、SpringFactoriesLoader详解它们占据了本文的大部分内容:虽然…

python全栈学习总结三:函数学习

一函数基本概念 1 函数定义 def 函数名(参数1,参数2,参数3,......): """ 功能: 参数1: 参数2: 参数3: ...... 返回值: """ 函…

街机模拟器联网简谈

Kawaks联网教程现在大多数模拟器的联网功能主要是靠"kaillera"来实现的,要想实现联网玩游戏,你必须有一个kaillera的客户端和一个服务器端的程序,客户端现在大多在模拟器中自带,而服务器端则是一个单独的程序.kaillera有多种操作系统,而大多是在windows下,好了废话不…

freeRTOS V10.0.1移植到STM32F407标准库 - 环境Keil5

最近因为工作需要用到FreeRTOS,其实开始本人内心是拒绝的因为自己只学习过UCOSIII还没实际上过什么大又复杂的工程,但是谁让FreeRTOS他是Free的呢公司成本考虑肯定是不会选择USOS的,这个道理就像公司内心深处不想给你涨工资一样。好了跑偏了言…

破解静态WEP KEY全过程

破解静态WEP KEY全过程广州卓讯盟科技有限公司 黄超毅Email:huangchaoyigzpia.com/demonalexdark2s.org发现首先通过NetStumbler确认客户端已在某AP的覆盖区内,并通过AP信号的参数进行‘踩点’(数据搜集)。NetStumbler 下载地址 http://www.n…

apicloud项目怎么运行_Spring Boot教程(3) – 运行第一个项目

把项目运行起来是极具成就感的事情,不管是在学习新语言还是新框架的过程中。上一篇文章说明了如何使用Spring Initializr和IDE来创建项目,下面就看看项目能不能跑起来,我们通过IDE和命令行,直观地理解框架的作用。先来一张Intelli…

Matlab从入门到精通 Chapter5 数据可视化

5-1 图形绘制示例 >> x2-17:0.02:3;>> y21./((x23).^21)1./((x29).^24)5; >> subplot(2,2,2);>> plot(x2,y2,rp);>> axis([-17 3 5 6.5]);>> title(figure2);>> grid on subplot 子图表绘制函数 默认情况下,plot函数将绘…

破解WEP密钥过程全解 (下)

三、实战破解过程1、用Kismet进行网络探测Kismet是一个基于Linux的无线网络扫描程序,这是一个相当方便的工具,通过测量周围的无线信号来找到目标WLAN。虽说Kismet也可以捕获网络上的数据通信,但在还有其他更好的工具使用(如Airodump)&#xf…