您的位置:首页 > 理论基础 > 计算机网络

网络协议多层发现详情——附发现实例介绍

2019-03-07 14:00 232 查看

在过去几年里, 关于不同类型信息交流的多层网络信息传输已经成为人们感兴趣的课题。 特别是它对于不同平台使用者交流的象征性作用。这种信息交流网络的数学描述被命名为多层网络, 在多层网络中每一层都有一种相互作用。它已被证明, 这些网络上的顶部的扩散过程中出现的现象,不能被解释的原生杰加的单层扩散现象,但需要整个结构的相互关联的层。然而这种关于多层网络的描述忽略了一个事实, 就是社会网络对于不同社区具有相同兴趣的个人或者其他社会阶层的人具有很强的中型构造。在这次工作中, 我们学习社区结构在多层网络中传输信息。最后的目标是理解并且量化,如果在个体层存在定义好的社区结构,联合整个网络的多层结构,加强或者恶化信息包。

1、简介

由于不断增加的信息和商品通过网络传输, 网络传输特性的学习已经变得越来越重要。其中最主要的关注点是如何让信息在网络中的扩散容量更大并且传输时间更短。信息被组织成单元〈包)。包的处理和分发需要一个有限的时间。包的路由策咯和网络拓扑结构在网络拥塞中扮演了重要的角色。 在现实设计中, 像在线网络,人们对于网络拓扑结构的了解仅仅限制在本区域的影响之下。 因此,大部分的关注点被定义为“寻找 ”发送信息的过程就是寻找到达目的地的路径。再者,假如结点处理并且分发包的能力是有限的,拥塞的问题将会出现。如今已经被证实, 不论在现实网络中还是模型传输网络中, 当流量超过临界值时就会出现网络崩溃。

总体来说,太部分现实设计的系统都包括多层子系统和联系层。当尝试去理解整个系统时重要的是把系统的特性考虑在内。更为重要的是多层网络传统网络理论的概括。直到现在,网络的描述建立在单个和组合的联系的快明,它是一种在特定时间窗口下的瞬时的或者累积的联系。当尝试去理解一个多层系统 (该系统包括一些不同的时间视图和共存的由现实网络交互组成的结构模块)错综复杂的可变性时,这种描述是有限的。e-社会网络正在不断的改变,包括一些与短时间的或者长时间的联系。兴趣组逐渐发展并且壮大, 于此同时个体结点在相同的时间通过不同的兴趣参与其中。 对于这种复杂性的精确描述需要考虑到这种相互作用的区别和它们随着时间的发展。在过去两年里, 研究网络理论的科学社区一直集中于这个问题并且提出了一种解决方式命名为多层网络结构。

一般来说,网络科学家集中关注于多层网络的流量, 并且这种拓扑结构的结果已经被证明是远高琐碎的。举个例子, 作者发现了多层结构的顶端一个一般扩散的过程能够加速那些低扩散的层。它也能够引起一个超级扩散的过程增强所有层的扩散。当多层网络中层之间的传输速度比层内的传输速度快时,这种显著的结果将会出现。这些后果的随机行走在扩散的高散表示中也观察到, 并对多重结构的适航性明确的后果。
现在我们集中注意力来研究信息在多层网络顶部的传输过程。我们的目标是确定一个多重网络冉子社区结构的影响。 在信息传输的动态性方面模块化层次。 最后我们观察一个特殊的建立,在那儿复杂网络被建立,解析信息传输的拥塞。 我们的结果显示当不同层的社区结构是等从的并且社区重要, 多层网络对于拥塞能够提供更好的恢复力,因此多层网络系统比起个体网络系统也会提高信息的传办。另一方面, 当社区结构是不同的但是社区仍然生营的,多层网络结构提供一个平衡的环境,在该环境中系统的效率是平均的。在中间情况下,也就是所有层和社区重划的社区结构是相似的,多层网络结构的效果是毁灭性的,还会通过降低系统阻塞的开始来阻碍信息传输。

2、材料与方法

已经定义好的动态模型考让到信息被分成包以原子的形式在网络中从初始结点传输到目的结点。每个结点都是可以存储一些包的一个独立的代理。然而,为了能有一个现实交流的快照,我们必须假设结点有一个固定的容量去操作和传输包。意思就是一个结点传输两个包的时间要大于一个包的时间。这种物理的约束在传输信息方面起源于网络拥塞。 当一个特殊的代理接收到的信息量过大时,它不能处理完所有的包并且有些包经过很长时间都没有补处理。在这个学习当中, 我们的兴起主要集中在当系统明塞发生时主要取决于多层网络的拓扑结构, 特别是与它的社区结构的联系。

3、信息传输的动态性

模型的动态性是这样的在每个时间点t,每个结点以速度 p 创建信息包。因此,p是一个可控参数(p 值越小表示包生成的密度作,p 值越大表明生成了大量的包)。当一个新包生成时,网络中一个随机的结点将作为目的结点。因此,在时间t+1,t+2,...t+T 内,旬传输向目的结点。当一个包到达了目的结点,那么它将传输结束并且从网络中消失。

包在网络中的传输时间不仅与路径的长度有关, 还与分享该路径的包的数量有关。高负载的结点,即高容量的积累的数据包,将需要更长的时间来发送数据包, 换句话说,数据包将花费更乡的时间去通过高阻塞的网络区域。我们假设,没有概率丢失的情况下,结点在单位时间段只能处理一个包,没有传输的包将被存铺在每个结点的一个先进先出的队列中。路径的选择由中由策略决定并且随机选择最突出的策略。然而,必须重点指出,模型是不确定的。举个例子,两个结点之间的最短路径也许有多条,随机选择一条来传输包。再者,当有几个包同时进入队列时先后顺序是没有定义的。


个体层网络原始的工作显示低的包注入率 p 不会在任一结点上产生累积。再者,到达结点 i 的包的数量是规定好的,平均为 pBi(N-1),其中 Bi为结点 ;的有效介,N为网络中的结点个数。有效介的定义是: 穿过结点; 的路径个数与穿过网络的总路径个数的比率。
 

当结点单位时间内接收到的包比传输出去的包多时,拥塞就会出现 ,即pBi(N-1)j>1。因此,最先贿溃的结点是有效介值最大的结点。即 Bi* = max(Bi最大的注入网络的比率(网络是无拥塞的), 也就是关键注入网络比率 pc=(N-1)/(Bi*)。其他结点崩溃的条件是更大的注入网络比率。然而,直到现在, 没有人知道如何计算关键注入网络比率因为它不仅取决于拓扑结构的有效介而且取决于整个网路的拥塞状态。

路由动态特性的普遍化暴漏在多层网络中,包到达a层i结点的个数为 pPLBia/(N-1),其中L为多层网络的层数,Bia 为 a 层i结点的有效介。因此,关键注入网络比率依旧取决于有效介, 它封装了路由策略和网络拓扑结构。pc=((N-1)/U/max(Bia)。下一步,我们扩展一下多层网络有效介的定义去允许计算出现拥塞的状态 。

2.2.多层网络有效介的计算


多层网络主要方法的扩展不是直接的,需要特殊考虑。在一些情况下,一些扩展是有可能的并且取决于目前的问题把个体网络的主要方法运用到多层网络必须要做出几步扩展。我们遵循 De Domenico的描述, 这在数学上是基于多层网络的张量形式主义。

我们首先定义多层网络上两个个体s 和 t 之间有一系列的结点,通过层内与/或者层间的边相连。 注意这个定义我们只考虑了结点没有考虑层。这种缺乏区别的定义是因为在多层网络结构中,不同的节点副本在不同的层对应于相同的个体(社交网络) 或位置(交通网络) ,因此,更重要的是知道是否有包到来而不是在哪一层。图表 1 显示了多层网络中两个结点之间的路径 (没有繁琐的效果需要考虑因为隔层的出现影响着穿过网络系统的路线) 。

假设在多层网络拓扑结构中一条路径的定义是,a 层i结点中有效介 Bia 可以作为路径(穿过 a 层i 结点的任何可能的路径对(s,t)) 的一部分,有些情况下很容易得到结点 ;与层无关的有效介。在这种情况下有效介可以通过 ; 代表的每一层的贡献的累积得到,Bi=累加(Bia)。

对于有效介最短路径的一种特殊的情况,从任一层s结点到任一层t结点每走一步都被限制在最小距高的道路上 .距离函数还必须把路径上的每条边的权重考虑在内。在这次工作中,没有概率丢失,我们假设边的权重是同等单位长度,并且定义路径长度是穿过的边数。两个结点的最短路径可能会退化, 因此最短路径的建立也许包含单层网络的最短路径(传统最短路径) 和切换层的路径(纯多层网络路径) 。通过对最短路径的精确计算,我们必须特别关注路径退化。一个好的并且有效的算法被发现了。

与最短路径有效介类似,随机路径有效介取诀于网络传输过程的定义。一个随机路径被定义为: 在每个时间点上, 下一个被访问的结点与上一个被访问的结点被选中的概率是相同的。随机路径有效介通常是计算从网络的邻接矩阵得到转移矩阵。对于多层网络随机路径的细节描述看【17】 在这篇文档中我们将使用传统
 

2.3.多层网络社区结构

复杂系统的网络代表具有社区结构, 这意味着它们之间有稀疏连接的结点的存在。众所周知,在多层网络的最顶层运行的动态过程在社区结构上有很大的独立性,这个对过程或好或坏的影响。当在多层网络的不同层建立社区结构时,对于整个系统的影响不能像琐事一样被忽略。

在这里,我们提出了一个简单的设置(社区结构, 社区完全重要的层次和网络中每个结点保持恒定的程度) 去发现社区在信息传输过程中的基本影响。 每个多层网络包括两层。每层包含 256 个结点分布在 4个社区中〈每个社区 64 个结点)。链接是以这种方式形成的, 社区内部的密度通常比它们之间的密度高。网络在每一层独立的形成,导致在一个两层复杂网络中每一层用不同的社区结构。

在这个实验中,我们考虑到 12种不同的复杂社区结构和300中不同的实现方式。对于它们,我们规定最底层为 kin=31 和 Kout=1(31 条边在社区内,1 条边连接社区外面),它展示了清晰的和强壮的社区结构,并且我们改变最顶层的社区结构(它的范围从原先的强壮的块结构到一个更薄的更细微的社区结构) kin=20 和Kout=12。我们用一个混合参数 (u=Kout/k) 量化 L2 层社区结构的长度。图表 2显示了通过这种方式形成的网络的 3 种实例。

3.结果

要估计社区结构对于多层网络在信息传输方面的影响, 我们评估信息传输动力学的几个方面 命名为最短路径分配, 即每个结点中包的迁入速率和网络的关键注入速率。

图表 3 显示了多层网络在不同层的最短路径分配。在这种情况中(每一层的社区结构相同),多层结构提供了一个非常好的负载平衡在层 1 和层 2 路径相同的部分。总体来说,我们可以总结出, 对于整个系统表现来说多路传输是可以忽略不计的,因为只有很小一部分路径(0.5%) 使用了整个多层结构。事实上,只有这种情况下会使用多层网络全部层: 原点和目的结点在不同的社区中。 当我们在第三层增加混合参数时,它的社区结构被稀释了, 增强了社区之间的交流但是阻碍了内部信息的传输。 这种影响在图表 3 中非常明显出: 在第二层大量增加了社区外的游历并且在第一层增加了一小部分社区内的路径。于此同时,theimprovement of intercommunity paths in the more diffuse layer yeilds adisappearance of the (already small number ofjshortest paths using both layers.

要评估系统微观的表现, 我们来展示怎样用混合参数来改变每个结点包迁入的速
度。我们计算多层结构中每个结点的迁入速度=LBia/(N-1),结果显示在图表 4中。对于最短路径路由策略,我们观察到层 1 和层 2 中结点的一个很清晰的区别。我们观察图表 3,混合参数的增大主要影响到层 1 到层 2 的最短路径的一个清楚的移动。穿过层 1的路径发现了一条穿过层 2 更为有效的路由策略, 它有一个更加稀释的社区结构。这次路径的迁移需要增加层 2 结点迁入的速度类似于观察到减少层 1包的迁入速度。这是小的混合参数的情况,但是增加混合参数意着层 2中不同社区结点路由传输包的效率的增加, 这反过来实质上诚少了所有结点的有效介 (引起描述整个系统最终效率的一个有趣的折中)。

这两种相反的效果(最短路径的迁移和诚少结点有效介) 对于层 2 中结点迁入的速率有巨大的影响 当最大的迁入速度到达时将经历一个持续的降低。对于随机路由策略,场景时完全不同的。混合参数的增加对每一层有相同的影响,它们将经历一个迁入速度的降低。

图表 5,6 展示了社区结构对关键注入速度 pc 的影响 。对于最短路径路由策略,多层网络的关键注入速度达到了它们最小的值大约 u=0.1。这个最小值意味着最糟糕的情况,因为多层网络拓扑没有个体层的效率高。另一方面,层 2 的关键注入速度的表现是单调上升的。这种情况是预料之中的,因为很少有明确的社区结的结构引起平均最短路径长度的降低,反过来它与结点的有效介的减少是正相关的。

总体来说,如果我们比较多层网络 pc 的值并且将层 L1 和层 L2 分开,我们将会发现 3 种可能的情况: (1) 该多路复用比单层更灵活(高效)。当每一层都有相同的社区结构时这种情况将会出现。(2) 该多路复用效率比任意层都低。这种设置对应于多层结构的最小应变能力。(3) 复用效率达到中等值,这是两个层的弹性之间的一个折训。 在真正的设置中, 这种情况意味着在多路复用中加入这两层通过退化第二层的恢复力来提高第一层的恢复力。然而, 我们在图中可以观察到
效率的降低大于全部层平均效率的降低,因此层之间的耦合是低效率的。

关于随机游走路由策略,这种情况是完全不同的。对于相同的社区结构,多路复用降低了效率,因为路径掉入了社区的陷阱里, 总体来说,我们将获得一个与所有层平均效率相符的效率。
 

 

发现:即识别活着的主机
#潜在的被攻击目标
输入一个IP地址列表探测2、3、4层发现

 

主要以扫描探测为主介绍探测:

 

二层发现:


1、优点:扫描速度快、可靠
2、缺点:不可路由                 #只能发现本网段的
Arp协议:通过抓包
——————>>>>>>>可以通过以下方式修改网络配置

(vi /etc/network/interfaces             ——>dhcp/static)
==========================
allow-hotplug eth0
ifcae eth0 inet static
    address ........
    network ......
    netmask .......
    broadcast .......
    gateway ....
    dns-nameservers .......
==========================


主要以arping为主进行二层发现:               #只能ping一个

[code]arping 1.1.1.1 -c 1   //指定一个包
arping 1.1.1.1 -d     //-d可以查看是否重复,即ARP欺骗
arping -c 1.1.1.1 | grep "bytes from" | cut -d" " -f 5 


脚本:
    arping1.sh eth0>addrs
==================================

[code]#!/bin/bash
if["$#" -ne 1];then
echo "Usage - ./arping.sh [interface]"
echo "Example - ./arping.sh eth0"
echo "Example will perform an ARP scan of the loacl subnet to which eth0 is assigned"
exit
fi
interface=$1
prefix=$(ifconfig $interface | grep 'inet addr' | cut -d ':' -f 2 | cut -d ' ' -f 1 | cut -d '.' -f 1-3)
for addr in $(seq 1 254);
do
arping -c 1 $prefix.$addr | grep "bytes from" | cut -d"" -f 5 | cut -d"(" -f 2 | cut -d")" -f 1 >> addr.txt
done


===================================
    

三层发现:

优点:
1、可路由
2、速度比较快
缺点
1、速度比二层慢
2、经常被边界防火墙过滤    
IP、ICMP协议——>>>每种扫描技术都会存在误报、漏报的可能性。

主要以ping命令为主:

[code]ping 1.1.1.1 -c 2
ping -R 1.1.1.1 / traceroute 1.1.1.1
ping 1.1.1.1 -c 1 | grep "bytes from" | cut -d " " -f 4 | cut -d ":" -f 1


脚本:
    ping.sh 1.1.1.0
==================================

[code]fi
prefix=$(echo $1 | cut -d '.' -f 1-3)
for addr in $(seq 1 254);do
ping -c 1 $prefix.$addr | grep "bytes from" | cut -d " " -f 4 | cut -d ":" -f 1 &
done


#发出的是8号类型包,回的是0号类型包
#Linux的ping与Windows的ping样式一样,实现的内容不同,用抓包观察


Scapy探测:
OSI多层堆叠手工声称ICMP包——IP/ICMP
    ip=IP()
    ip.dst="1.1.1.1"
    ping=ICMP()
    a=srl(ip/ping)
    a.display()
    Ping不存在的地址
        a=srl(ip/ping.timeout=1)
     //一次性:a=srl(IP(dst="1.1.1.1")/ICMP().timeout=1)   得不到响应就会不动弹了,timeout就是限制这个

i=IP()
>>> p=ICMP()
>>> ping=(i/p)
>>> ping.dispaly()
>>> ping[IP].dst="172.20.10.1"
>>> ping.display
>>> a=srl(ping)
>>> a.display

也可以利用fping探测:

[code]fping 1.1.1.1 -c 1
fping -g 1.1.1.1.1 1.1.1.2 -c 10   //指定发哪些地址
fping -g 1.1.1.0/24
fping -f iplist.txt


也可以利用hping探测:
1、能够发送几乎任意TCP/IP包
2、功能强大但每次只能扫描一个目标
 

[code]hping3 1.1.1.1 --icmp -c 2
for addr in $(seq 1 254);do hping3 172.20.10.$addr -icmp -c 1 >>handle.txt &done
cat handle.txt | grep ^len            //^代表以什么为起始

 

四层发现:


优点:
1、可路由且结果可靠
2、不太可能被防火墙过滤
3、甚至可以发现所有端口都被过滤的主机
缺点:
1、基于状态过滤的防火墙可能过滤扫描
2、端口扫描速度慢
TCP数据包请求过程:
首先未经请求的ACK——RST
其次SYN——SYN/ACK RST              #通过我们发的包确定他是否在线,会回一个rst包
UDP数据包请求过程:
——>ICMP端口不可达  一曲不复返:ACK——TCP  Port——RST
Scapy探测:
    i=IP()
    i.dst="1.1.1.1"
    t=TCP()
    t.dport=端口号 
    t.flags='A'
    r=(i/t)
    a=srl(r)
    a.display
a=srl(IP(dst="1.1.1.1")/TCP(dport=80,flags='A'),timeout=1)
ACK_Ping.py

#现实中应该用多种协议方式去扫描,目标,更加准确

UDP——UDP Port——ICMP
u=UDP()
u.dport=33333
r=(i/u)
a=srl(r,timeout=1,verbose=1)
A.display()
    ICMP
    UDP_Ping.py
#UDP发现不可靠

nmap探测请求:

[code]nmap 1.1.1.1-254 -PU53 -sn           //PU是UDP的数据包,53是端口
nmap 1.1.1.1-254 -PA80 -sn            //PA是ACK的数据包,80是端口
nmap -iL iplist.txt -PA80 -sn

通过hping3发送探测:
hping3 -udp 1.1.1.1 -c 1
for addr in $(seq 1 254); hping3 -udp 1.1.1.$addr -c 1 >>r.txt;done
    grep Unreachable.txt | cut -d "" -f 5 | cut -d "=" -f 2
    ./udp_hping.sh 1.1.1.0
hping3 1.1.1.1 -c 1 (TCP)
    Hping3 1.1.1.1
    ./TCP_hping.sh
    Flog 0 ——————ACK RST          //通过返回ACK+RST判断是否存活

hping3 --udp 1.1.1.1 -c 1
脚本:
===================================

[code]#!/bin/bash
if["$#" -ne 1];then
    echo "Usage - ./udp_hping.sh [/24 network address]"
    echo "Example - ./udp_hping.sh 1.1.1.1"
    echo "Example will perfrom a UDP ping sweep of the 1.1.1.0/24 network and output to an output.txt file"
    exit
fi
prefix=$(echo $1 | cut -d '.' -f 1-3)
for addr in $(seq 1 254);do
    hping3 $prefix.$addr --udp -c 1 >> r.txt;
done
grep Unreachable r.txt | cut -d " " -f 5 | cut -d "=" -f 2 >> output.txt
rm r.txt

===================================
    

===================================

[code]#!/bin/bash
if ["$#" -ne 1 ]; then
    echo "Usage - ./tcp_hping.sh [/24 network address]"
    echo "Example - ./tcp_hping.sh 192.168.1.0"
    echo "Example will ................."
    exit
fi
prefix=$(echo $1 | cut -d '.' -f 1-3)
for addr in $(seq 1 254);
     do
    hping3 $prefix.addr -c 1 >> r.txt
done
grep len r.txt | cut -d " " -f 2 |cut -d "=" -f 2 >> output.txt
rm r.txt


===================================


#使用脚本唯一的原因就是只能扫一个,不能扫网段

#发现就是一个原理:只要发出的数据包不会石沉大海,那么就证明可能存活,RST表示拒绝,说明判断他活着,ACK表示返回了包。
并不是说判断他存活与否一定是存活,没有100%


 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: