你真的懂“抓包”吗?
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,完成不同网络上设备之间的信息传输过程。 区分packet capture和flow capture(抓包和抓流量) Packet capture可以让我们在网络数据包通过网络时拿到镜像。而flow data通常包含在网络上设置的连接的摘要。它们都是非常有用的故障排除技术,可以找出网络上发生的故障。那么这两种技术有什么区别呢? Flow capture:在OSI模型的第3层运行的大多数路由器和交换机都具有flow导出选项。有许多flow标准,包括NetFlow,sFlow和IPFIX。 只需安装一个flow连接器,它可以处理网络设备使用的任何flow标准。基于flow的分析可以很好地找出网络中某些部分的通信状况。它的优点是:
缺点是:
Packet capture: 抓包能够捕获在网络中传输的网络数据包的镜像。大多数交换机允许在不影响网络性能的情况下设置镜像端口。通常,深度数据包检测(DPI)应用程序连接到镜像端口,并从数据包中提取某些信息,以便我们可以发现网络上发生了什么。优点是:
缺点是:
在不清楚区别之前,我们可能会将两者混为一谈,现在应该已经明确区别了。那我们应该使用哪种技术?在一般情况下,两者都需要用到。如果有大量的WAN链接并且需要一种简单的方法来获得最大程度的可见性,抓流量可能更好。而抓包可以为我们提供网络上某些节点的更多详细信息。两者的结合意味着我们可以更轻松地检测诸如带宽占用,以及查看正在使用的应用程序等情况。 结语 需要区分的点都很多,我在文中已经比较好的安排,一步步引出来,从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)的区别及各自优缺点。 大部分做安全的小伙伴应该都不是网络工程出身,所以本文或多或少还是有些参考价值的。希望各位师傅能从中获益。
(编辑:青岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |