当你与其他哥哥交流时,总会有这些话。 “如果你拿一个包,你就会知道出了什么问题。” “它检测到流量,有效载荷在里面。” “数据流如何如此奇怪?”这里出现的名称几乎具有相同的含义。包,框架,流程和会话之间有什么区别?真的很清楚吗?
通常,这种关系并不好。这些术语随便使用。每个人都知道这意味着什么。在这段时间里,在分析了协议类型的差距之后,我终于意识到基础知识是肤浅的,我知道我没有区分这些基本概念。看到一些国外的技术文件还不清楚,所以我回顾了很多信息并撰写了这篇文章。
区分控制平面和数据平面。
控制平面,数据平面,是实现网络设备必须理解的两个基本概念。数据平面通常用于快速转发,控制平面准备快速转发所需的信息。控制平面包括路由协议,设备管理,命令行,ARP,IGMP等,数据平面通常是前向分组。这种划分的目的是将系统的主要工作和次要工作分开,以避免不同类型的处理之间的干扰。在网络设备,转发无疑是最重要的任务优先级最高的路由协议,因为它并不需要处理大量的包在很短的时间,你可以把优先级的一个新的水平内部。可以使用asic或NP优化数据平面以实现高速,同时可以通过库或通用系统来改进控制平面。
控制平面的操作系统和数据平面的操作系统完全不同。数据平面的操作系统需要实时响应,并需要内存管理,队列管理,计时器等。更快,更高效控制平面的操作系统往往受到更好的保护,更容易编程和迁移更快。当然,必须在实践中选择放置在控制平面中的任务和放置在数据平面中的任务。例如,鉴于arp学习和响应时间不确定,mac学习立即生效。因此,学习和arp响应通常放在控制平面上,而mac学习放在数据平面上。
关于数据平面,它可以分为控制路径和数据路径。控制路线还为数据路线准备必要的信息。有时,为了更快的速度,避免控制平面和数据平面之间的过度交互,并从控制平面到数据平面进行一些工作,例如ICMP响应。区分会话和流程。
流是发送方和接收方之间的数据包中的数据平面的流,其共享IP报头的密钥信息。例如,在端口12398上,用于SSH端口的通信服务器22上的客户端10.1.1.1是192.168.1.1特定流,可以在特定密钥流段未被改变时捕获它。
会话是发送方和接收方之间的控制平面通信。 TCP 3握手协议创建会话,该会话在发送方的始发端口和接收方的目的地侦听端口之间建立连接。 TCP窗口的大小,初始序列以及确认和保持活动值将作为编译会话的一部分进行协商。
简而言之,流表示数据平面,会话表示控制平面。
区分数据报和流
Stream是我们通常认为的沟通渠道。由于远程登录,文件传输,邮件传递,这是使用传输。 Strean就像一根烟斗。它有两个端点。数据从一端和另一端放置。不以任何方式复制,丢弃或重组数据。可以组合这两个序列以形成全双工连接。
数据报(通常称为数据包)本质上更具原子性。它是一个小数据,通常需要小于最大长度(通常在256到2000字节的范围内)。数据报完全是自治的,活动的和目的地,但不能称为连接。数据报与之前或之后的任何其他数据无关。
很难理解?
让我们再做一个类比。
流就像呼叫:一方打电话,另一方响应,他们互相问候(TCP中的SYN/ACK),然后交换信息。完成后,你说再见(TCP中的FIN/ACK)。如果其中一方未触发,它通常会调用另一方,因为它是一个意外事件,即客户端通常会重新连接到服务器。这可以保证数据不会以与我们发送的数据不同的顺序到达,并且数据不会被损坏。
数据报就像在课堂上传递一个小音符。如果你没有和想要得到一个小纸条的人坐下来,这个小纸条将在其他人之间传递。小单可能无法到达目的地,并且在到达目的地时已被修改。在另外两个型号中,如果两个小条带被送到同一个人,则两个小条带可能不按我们需要的顺序到达,因为小纸张的线条在教室中可能不一样,不能像其他人那样快速地转移小笔记,等等,会有很多因素影响小笔记的传递。尽管大多数网络通信都使用流,但所有Internet传输都采用数据报的形式,数据报实际上使用数据报来模拟通过TCP协议的Internet流。要诊断Internet问题,可以使用TCPdump等数据包解码器来查看单个数据包。
包和框架之间的区别
为了简化问题,我们认为框架和包是从一个人发送到另一个人的信息包。框架和包之间的关键区别在于它们封装信息的方式,具体取决于信息的发送位置。
想象一下,一家公司有部门间邮件,一个人可以发送给当地组织的另一个人。内容放在内部信封中,发件人将其姓名和部门写入“发件人”字段,然后在“收件人”字段中写入收件人的姓名和部门。发送信封时,邮件室会识别信封的内部使用情况,读取名称和目的地部门,并使用该目录将信息转换为物理位置(办公室)并将其发送给收件人。信封永远不会离开当地组织,所有信封递送都在当地处理。
部门间信封不能发送到公司外,因为信封里没有邮寄地址。要将内容发送到家庭以外的办公室,您必须将信封放在邮政信封中的办公室之间,并附上相应的邮寄地址标签。
框架以类似的方式工作。它是一个具有源和目标地址的数据容器,用于在同一网络上的两个位置之间传递称为有效负载的信息。 Frame的源地址和目标地址不是名称和部门,而是计算机,平板电脑,IP电话,物联网设备等的MAC地址。这是世界上每个以太网设备的唯一标识号。
该帧由TCP/IP协议栈的第2层中的网络接口设备生成,并且有效载荷的大小取决于所传输的数据的类型。帧被发送到网络,以太网交换机根据其内存中的MAC表验证帧的目的地址。 MAC表告诉交换机哪个物理端口(RJ45端口)与设备相关联,并且设备的MAC地址与帧的目标地址匹配。
交换机将帧转发到MAC表确定的物理端口。如果电缆直接连接到目标设备,则传输将完成。如果电缆连接到另一个交换机,则下一个交换机将重复搜索并发送进程,直到该帧到达所需目的地。
一切都发生在局域网的第2层交换机上。与部门间邮件一样,框架无法在本地/专用网络之外发送到Internet,因为它没有正确的地址。要将数据发送到不同网络或Internet服务器上的设备,您必须在包中创建框架。如在必须将办公室之间的信封发送到邮政信封中的不同办公室的示例中,以太网帧与附加信息一起打包以创建IP分组。
虽然网络设备的MAC地址是唯一且永久的,但IP地址通常临时分配给网络设备,并随着设备连接到不同的网络而改变。例如,每次平板电脑连接到不同的无线网络时,其IP地址都会发生变化。数据包在网络的第3层中创建,这允许通常通过路由器在不同LAN之间交换信息。路由器互连小型网络,允许使用IP地址而不是MAC地址进行更多信息交换。
第3层软件包允许路由器使用标识网络的IP地址和网络中设备的临时地址在网络之间提供数据传输(Internet)。一旦网络内,所述数据转发内部网(LAN)是由第2层交换机,它读取该帧的MAC地址,并将其转发到目的地设备,其中所述以太网控制器提取所述负载处理在不同网络中的设备之间有用并完成设备。信息传递过程。
区分数据包捕获和流捕获。
数据包捕获允许我们在网络数据包通过网络时获取映像。流数据通常包含网络中建立的连接的摘要。所有这些都是非常有用的故障排除技术,可以找出网络上发生的情况。那么,这两种技术有什么区别?
流捕获:在OSI模型的第3层上运行的大多数路由器和交换机都具有流导出选项。有许多流标准,包括NetFlow,sFlow和IPFIX。只需安装一个流量连接器即可处理网络设备使用的任何流量标准。基于流的分析可用于找出网络某些部分的通信状态。它的优点是:
在第3层设备中轻松配置操作;
无需布线,最终用户系统不需要客户端或软件代理。
缺点是:
某些交换机没有流量选项;
尝试解决问题时缺少信息;
当应用程序基于其他协议时,它不适合在网络边缘进行监视
数据包捕获:捕获数据包捕获通过网络传输的网络数据包的映像。大多数交换机允许您配置重复端口,而不会影响网络性能。通常,深度包检测(DPI)应用程序连接到重复端口并从数据包中提取某些信息,以便我们可以发现网络上发生的情况。优点是:
更好地分析应用程序和用户行为,是监控关键应用程序,服务器或关键Internet连接的理想选择;您将获得更多信息,例如应用程序,文件,网站和主机名;
最终用户的系统中不需要客户端或软件代理。
缺点是:
需要在反射端口和DPI应用程序之间连接物理线路;
您必须确保反射端口在繁忙的网络中不会过载。
在我们看到差异之前,我们可以混淆两者,现在我们应该做出明确的区分。那么,我们应该使用什么技术?通常,两者都需要使用。如果您拥有大量的WAN链接并且需要一种简单的方法来获得最大的可见性,那么您可以获得更好的流量。捕获数据包可以为我们提供有关网络中某些节点的更多详细信息。两者的结合意味着我们可以更轻松地检测带宽使用等内容并查看正在使用的应用程序。
结论
有许多要点可以区分。我在文本中有一个更好的布局,一步一步,我从控制平面和数据平面之间的差异开始,因为这是区分流量和会话从0×03到0×的基础03.参考流的概念,并讨论数据报流中的0×04差异,并在此最后的0×04解码数据包分析tcpdump,导致数据包,以及自然方式的数据包帧讨论在0×05 in。一旦明确了上述基本概念和补偿,就会讨论数据包捕获和流捕获之间的差异及其优缺点。
大多数安全合作伙伴不应该是网络工程师,因此本文几乎是一个参考价值。我希望老师能从中受益。