您当前的位置:首页 > 电脑百科 > 网络技术 > 网络技术

什么是抓包?如何抓包?看完本文,你就懂了

时间:2019-11-25 10:36:46  来源:  作者:

0×01 前言

在平时和其他大佬交流时,总会出现这么些话,“抓个包看看就知道哪出问题了”,“抓流量啊,payload都在里面”,“这数据流怎么这么奇怪”。这里出现的名词,都是差不多的意思吗?packet,frame,flow,session区别是什么,你真的分的清楚吗?

平时关系还不大,这几个名词随便用,大家也都知道指什么,这段时间在分析协议类型的漏洞,终于意识到基础知识的浅薄,才知道自己根本没分清这几个基础概念,看国外一些技术文档不明所以,于是查了大量资料,写出了本文。

什么是抓包?如何抓包?看完本文,你就懂了

 

0×02 区分control plane和data plane

什么是抓包?如何抓包?看完本文,你就懂了

 

control plane, data plane是实现网络设备所需要理解的两个基本的概念。data plane一般用于快速转发,而control plane是为快速转发准备必要的信息。control plane包括路由协议,设备管理,命令行,ARP,IGMP等;而data plane一般是转发包。这样的划分,目的是把系统的主要工作和次要工作分离开,避免不同类型的处理相互干扰。在一个网络设备里面,转发无疑是最主要的工作,它具有最高的优先级,而路由协议,由于并不需要在短时间内处理大量的包,所以可以把它放到次一级的优先级里面。data plane可以借助asic或者NP等优化,可以达到很高的速度,而control plane,则可以借助于通用的库,或者系统,以达到更好的保护。

control plane的os和data plane的os,作用完全不同。data plane的os需要实时响应,并且需要更快速,高效的内存管理,队列管理,定时器管理等;而control plane的os则倾向于更好的保护,更简便的编程方式,以及快速移植等。当然,哪些任务放到control plane,哪些任务放到data plane,是需要在实践中去选择。举个例子,由于arp学习和应答的时间是不确定的,而mac learning则是立即生效的。所以arp学习和应答一般放在control plane;而mac learning则放在data plane。

就data plane来说,又可分control path和data path。control path同样是为data path准备必要的信息。有时为了更快的速度,避免control plane和data plane过多的交互,把control plane的某些工作拿到data plane上来做,比如ICMP的应答等。

0×03 区分session和flow

什么是抓包?如何抓包?看完本文,你就懂了

 

flow是发送方和接收方之间的数据包中的data plane stream,其共享关键IP报头信息。 例如,10.1.1.1端口12398处的客户端与用于SSH的192.168.1.1端口22处的服务器通信是specific stream,可以在关键字段不更改时捕获该特定stream。

session是发送方和接收方之间的control plane通信。TCP 3次握手创建会话,在发送方的源端口和接收方的目标侦听端口之间建立连接。TCP窗口大小,初始序列和确认值以及keepalive是作为构建session的一部分进行协商的。

简单地说,flow代表了data plane,而session代表了control plane。

0×04 区分datagram和stream

什么是抓包?如何抓包?看完本文,你就懂了

 

stream是我们通常认为的通信渠道。比如远程登录,文件传输,邮件传递 ,这个都是使用stream。 Strean就像管道一样。它有两个端点。数据从一端放入,另一端出来。没有任何数据以任何方式被复制,丢弃或重组。两个流可以组合在一起形成全双工连接。

datagram(通常称为packet)本质上更具原子性。它是一小段数据,通常要求小于最大长度(通常在256到2000字节范围内)。datagram是完全自包含的,有源和目的地,但不能被称为connection。数据报与之前或之后的任何其他数据都没有任何关系。

很难理解吗?

我们再打个比方。

stream就像打电话- 一方拨打电话,另一方接听,你们互相打招呼(TCP中的SYN / ACK),然后交换信息。一旦完成,你就说再见(TCP中的FIN / ACK)。 如果一方没有听到再见,他们通常会打电话给另一方,因为这是一个意想不到的事件; 也就是说通常客户端将重新连接到服务器。这样可以保证数据不会以与我们发送的顺序不同的顺序到达,并且可以保证数据不会被损坏。

datagram就像在班级里传小纸条。如果你和想要拿到小纸条的人不坐在一起,这个小纸条将在其他人之间传递过去。小纸条可能无法到达目的地,并且可能会在到达目的地时被修改过。另一种两款,如果将两个小纸条传递给同一个人,两个小纸条可能不会按照我们需要的顺序到达,因为小纸条们通过教室的路线可能不一样,一个人可能不会像另一个那样快速传递小纸条,等等会有很多因素影响到小纸条的传递。

尽管大多数网络通信都使用stream,但所有Internet传输都采用datagram的形式,实际上是通过TCP协议使用datagram来模拟Internet stream。而为了诊断因特网故障,可以使用诸如TCPdump这类packet decoder来查看各个packet。

0×05 区别Packet和frame

什么是抓包?如何抓包?看完本文,你就懂了

 

为了简化问题,我们将frame和packet想象为将要从一个人发送到另一个人的信息的信封。 frame和packet之间的关键区别在于它们如何封装信息,而这取决于信息在哪儿被发送。

想象一下,一家公司有跨部门邮件,一个人可以将文档发送给其本地组织中的另一个人。内容放在内部信封中,发送者在“发件人”字段中写下他们的姓名和部门,然后在“收件人”字段中写下收件人的姓名和部门。发送信封时,邮件室识别内部使用信封,读取目的地名称和部门,使用目录将该信息转换为物理位置(办公室)并将其传递给收件人。信封永远不会离开本地组织,信封的所有传递行为都由本地处理。

部门间信封不能发送到公司外部,因为信封上没有邮寄地址。要将内容发送到本地以外的办公室,需要将办公室间信封放在邮政信封内,并贴上适当的邮政地址标签。

Frame以类似的方式工作。 它是具有源和目标地址的数据的容器,用于在同一网络上的两个位置之间传递称为payload的信息。Frame的源和目标地址不是名称和部门,而是计算机,平板电脑,IP电话,物联网设备等的MAC地址,这是每个以太网设备在这个世界上唯一的ID号。

frame由网络接口设备在TCP/IP协议栈的第2层生成,payload大小取决于传输的数据类型。frame被发送到网络上,以太网交换机根据其存储器中的MAC表检查frame的目的地址。MAC表告诉交换机哪个物理端口(RJ45端口)与设备相关联,该设备的MAC地址与帧的目的地址相匹配。

交换机将frame转发到由MAC表确定的物理端口。如果电缆直接连接到目的设备,传输就完成了。如果电缆连接到另一台交换机,下一台交换机将重复查找和转发过程,直到frame到达预期目的地。

这一切都发生在LAN中的第2层交换机上。与部门间邮件一样,frame不能在本地/专用网络之外发送到因特网上,因为它没有正确的地址。要将数据发送到不同网络或互联网服务器上的设备,必须在packet中构建一个frame。

很像部门间信封需要放在邮政信封内发送到不同的办公室的例子,Ethernet frame用附加信息封装,以创建一个IPpacket。

虽然网络设备的MAC地址是唯一,永久的,但IP地址通常会临时分配给网络设备,并随着设备连接到不同的网络而改变。例如,平板电脑每次连接到不同的无线网络时,其IP地址都会发生变化。packet在网络的第3层创建,允许不同局域网之间交换信息,通常是通过路由器。路由器将小型网络互连在一起,允许使用IP地址而不是MAC地址进行更大规模的信息交换。

第3层packet允许路由器使用标识网络的IP地址和网络上设备的临时地址来提供网络间的数据传输(互联网)。一旦进入网络,网络内(局域网)数据转发由二层交换机处理,它读取frame的MAC地址,并将其转发到目的设备,在那里以太网控制器提取payload,完成不同网络上设备之间的信息传输过程。

0×06 区分packet capture和flow capture(抓包和抓流量)

什么是抓包?如何抓包?看完本文,你就懂了

 

Packet capture可以让我们在网络数据包通过网络时拿到镜像。而flow data通常包含在网络上设置的连接的摘要。它们都是非常有用的故障排除技术,可以找出网络上发生的故障。那么这两种技术有什么区别呢?

Flow capture:在OSI模型的第3层运行的大多数路由器和交换机都具有flow导出选项。有许多flow标准,包括NetFlow,sFlow和IPFIX。 只需安装一个flow连接器,它可以处理网络设备使用的任何flow标准。基于flow的分析可以很好地找出网络中某些部分的通信状况。它的优点是:

1.易于在第3层设备上设置操作;

2.不需要布线;终端用户系统不需要软件客户端或代理。

缺点是:

1.某些交换机上没有flow选项;

2.想要解决问题时缺少详细信息;

3.当应用程序依赖其他协议时,不适合在网络边缘进行监控

Packet capture: 抓包能够捕获在网络中传输的网络数据包的镜像。大多数交换机允许在不影响网络性能的情况下设置镜像端口。通常,深度数据包检测(DPI)应用程序连接到镜像端口,并从数据包中提取某些信息,以便我们可以发现网络上发生了什么。优点是:

1.更好地分析应用程序和用户行为,非常适合监控重要应用程序,服务器或至关重要的Internet连接;

2.会得到更多的信息,如应用程序,文件,网站和主机名;

3.终端用户系统上不需要软件客户端或代理。

缺点是:

1.需要在镜像端口和DPI应用程序之间连接物理线路;

2.需要确保镜像端口在繁忙的网络上不会过载。

在不清楚区别之前,我们可能会将两者混为一谈,现在应该已经明确区别了。那我们应该使用哪种技术?在一般情况下,两者都需要用到。如果有大量的WAN链接并且需要一种简单的方法来获得最大程度的可见性,抓流量可能更好。而抓包可以为我们提供网络上某些节点的更多详细信息。两者的结合意味着我们可以更轻松地检测诸如带宽占用,以及查看正在使用的应用程序等情况。

0×07 结语

需要区分的点都很多,我在文中已经比较好的安排,一步步引出来,从control plane,data plane的区别开始讨论,因为这是区分0×03 flow和session的基础,在0×03中提到了stream的概念,于是在0×04中讨论stream和datagram的区别,在0×04最后提到了用于解码分析packet的tcpdump,引出了packet,于是自然在0×05中讨论packet和frame。以上基础概念和去都明确之后,最后讨论了抓包(packet capture)和抓流量(flow capture)的区别及各自优缺点。



Tags:抓包   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
由于https 使用了 TLS/SSL 加密条件,我们无法直接在wireshark的中读取到数据内容,我们先看一下正常的http包的内容。可以直接读取到http的header 和body。 但如果是https 则不...【详细内容】
2021-12-01  Tags: 抓包  点击:(31)  评论:(0)  加入收藏
当我们通过kubectl来查看、修改Kubernetes资源时,有没有想过后面的接口到底是怎样的?有没有办法探查这些交互数据呢?Kuberenetes客户端和服务端交互的接口,是基于http协议的。所...【详细内容】
2021-11-23  Tags: 抓包  点击:(29)  评论:(0)  加入收藏
一、准备环境Burpsuite、夜神模拟器二、步骤运行burpsuite,打开代理后,访问 http://burp/ 下载CA证书点击右上角位置下载CA证书将下载的CA证书导入到浏览器中,打开浏览器选择设...【详细内容】
2021-10-08  Tags: 抓包  点击:(67)  评论:(0)  加入收藏
01概述无论是开发还是测试,在工作中经常会遇到需要抓包的时候。本篇文章主要介绍如何在各个平台下,高效的抓包。目前的抓包软件总体可以分为两类: 一种是设置代理抓取http包,比...【详细内容】
2021-09-28  Tags: 抓包  点击:(103)  评论:(0)  加入收藏
Fiddler 简介Fiddler 是位于客户端和服务器端的 HTTP 代理 目前最常用的 http 抓包工具之一 功能非常强大,是 Web 调试的利器关注+转发+私信【软件测试】领取Fiddler安装包和...【详细内容】
2021-09-28  Tags: 抓包  点击:(63)  评论:(0)  加入收藏
前言Charles 是移动端和PC端常用的网络抓包工具,测试人员和开发人员能够查看客服端和服务器之间的所有HTTP/ HTTPS/SSL网络请求,从而实现对网络抓包的截取和分析。 01下载官网...【详细内容】
2021-07-13  Tags: 抓包  点击:(73)  评论:(0)  加入收藏
在使用gRpc的过程中,有一个想法:gRpc客户端、服务端是怎么交互的呢?从这个想法萌生出一个验证方法,通过抓包来分析其交互过程与底层数据,一起来看看吧。1. gRpc是什么gRpc是什么?g...【详细内容】
2021-07-12  Tags: 抓包  点击:(136)  评论:(0)  加入收藏
发送请求在fiddler中也支持发送HTTP请求。就是通过Composer这个功能来进行发送请求功能入口 功能介绍 Parsed:解析后的报文.它是已经格式化后的,在这里你只需要按照区域展示...【详细内容】
2021-06-10  Tags: 抓包  点击:(156)  评论:(0)  加入收藏
分享大纲:1.测试概述 2.HTTP讲解 3.Fiddler抓包工具使用 4.Jmeter使用响应断言 HTTP基础HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广...【详细内容】
2021-06-04  Tags: 抓包  点击:(109)  评论:(0)  加入收藏
故事不长,始于脸红,终于眼红,爱而不得,皆是遗憾。。。 ---- 网易云热评 一、用户设置 1、选项卡字体及风格设置User options--》Display 2、设置数据包的字体及风格样式 3、设...【详细内容】
2021-06-04  Tags: 抓包  点击:(387)  评论:(0)  加入收藏
▌简易百科推荐
写一个shell获取本机ip地址、网关地址以及dns信息。经常会遇到取本机ip、网关、dns地址,windows一个命令ipconfig /all全部获取到,但linux系统却并非如此。linux系统都自带ifc...【详细内容】
2021-12-27  K佬食古    Tags:shell   点击:(2)  评论:(0)  加入收藏
步骤1、配置 /etc/sysconfig/network-scripts/ifcfg-eth0 里的文件。it动力的CentOS下的ifcfg-eth0的配置详情:[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifc...【详细内容】
2021-12-24  忆梦如风    Tags:网卡   点击:(10)  评论:(0)  加入收藏
1、查找当前目录下所有以.tar结尾的文件然后移动到指定目录find . -name “*.tar” -execmv {}./backup/ ;注解:find –name 主要用于查找某个文件名字,-exec 、xargs可...【详细内容】
2021-12-17  郭主任    Tags:运维   点击:(20)  评论:(0)  加入收藏
对于经常上网的朋友来说,除了手机购物上网,pc端玩网页游戏还是很多小伙伴首选的,但是有时候明明宽带链接上了,打开浏览器却出现上不了网的现象,下面小编要来跟大家说说电脑有网络...【详细内容】
2021-12-16  小白系统    Tags:网页无法打开   点击:(28)  评论:(0)  加入收藏
在访问像github、gitlab这样的外国网站时,很有可能会出现页面加载不出来或找不到页面的错误。这时候有的朋友就会以为是网络的问题,于是把Wifi断掉连上自己手机的热点,结果却还...【详细内容】
2021-12-15  启施技术IT狼叔    Tags:外网   点击:(16)  评论:(0)  加入收藏
网络地址来源:获取公网IP地址 https://ipip.yy.com/get_ip_info.phphttp://pv.sohu.com/cityjson?ie=utf-8http://www.ip168.com/json.do?view=myipaddress...【详细内容】
2021-12-15  韦廷华12    Tags:外网ip   点击:(15)  评论:(0)  加入收藏
准备好软件IPOP、用ENSP模拟一下华为交换机 启动交换机 <Huawei>sysEnter system view, return user view with Ctrl+Z.[Huawei]sysname FTPClient[FTPClient]interface vla...【详细内容】
2021-12-15  思源Edward    Tags:交换机   点击:(24)  评论:(0)  加入收藏
我们经常用到netstat命令查看主机连接状况,包括连接ip、端口、状态等,今天就练习下shell分析netsat结果。描述假设netstat命令运行的结果我们存储在nowcoder.txt里,格式如下:Pro...【详细内容】
2021-12-14  K佬食古    Tags:netstat   点击:(19)  评论:(0)  加入收藏
什么是滑动窗口?窗口是操作系统开辟的一块缓存空间,发送方在收到接收方ACK应答之前,必须在缓冲区保留已发送的数据,如果按期收到确认应答,数据就可以从缓冲区移除。什么是滑动窗...【详细内容】
2021-12-14  DifferentJava    Tags:TCP   点击:(30)  评论:(0)  加入收藏
概述日常管理华为路由设备过程中,难为会忘记设备登录密码,那么该如何重置设备登录密码吗?本期文章将全面向各位小伙伴总结分享。重置华为设备登录密码思路先行 采用console登录...【详细内容】
2021-12-10  onme0    Tags:   点击:(27)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条