网络传输的方向是群对群传输研究
2014-04-21林广明唐飞张永敏
林广明,唐飞,张永敏
(1.深圳信息职业技术学院科研处,广东 深圳 518172;2.深圳市旺斯微系统有限公司,广东 深圳 518023)
网络传输的方向是群对群传输研究
林广明1,唐飞1,张永敏2
(1.深圳信息职业技术学院科研处,广东 深圳 518172;2.深圳市旺斯微系统有限公司,广东 深圳 518023)
网络传输可以分为四种形态:“一对一”,“多对一”,“一对多”和“多对多”。“一对一”是问题分解的终极,而“多对多”则是效率所追求的终极。由四种形态之间转变展开讨论,为了提高效率,网络传输应该转向“多对多”。群对群是“多对多”的另一种传输方式,或者说,是强调分群的“多对多”传输。
网络传输形态;多对多网络传输;分群策略;群对群传输(G2G)
网络传输可以分为4种形态:“一对一”,“多对一”,“一对多”和“多对多”,本文围绕4种形态进行讨论,重点在于“多对多”传输。
网络传输路在何方?
回顾已出现过计算机网络通信技术。从逐步发展的过程中,网络通信一开始的重心就是两台计算机之间的通信,这可以看成是“一对一”的通信。人们都认为,所有问题都可以分解为“一对一”问题,以此展开,有了很多以“一对一”通信技术为基础的应用,例如:C/S,Web等等。
“一对一”虽然是一种终极分解的方法,即任何的网络传输都可以由“一对一”来完成,但在很多场合下,却是低效率的,例如,需要广播的场合。在广播的场合里,无须将问题分解为“一对一”,而是一个独立存在的“一对多”问题。“一对多”属于Sarnoff定律:效益规模是O(n),网络是广播媒介,任1发送者(设备)和多个(n-1)接收者(设备),见图1。
广播方式广泛存在于无线网络,在有线网络也有它的踪影,例如数字电视,而局域以太网是另一个例子,但Metcalfe并不认为属于Sarnoff 定律的范畴,而是任何1个设备可与其它n-1个交互,同时存在n(n-1)=n2-n个并发执行的事务,所以,应该属于Metcalfe定律[2]:效益规模是O(n2),见图2。
Metcalfe 定律:效益规模是O(n2)网络是全互连媒介,任何1个设备可与其它n-1个交互,同时存在n(n-1)=n2-n个并发执行的事务。
图1 Sarnoff定律Fig.1 Sarnoff's Law
图2 Metcalfe定律Fig.2 Metcalfe's law
虽然广播方式能大大提高效率,在IP网络却被禁止,但这不能阻止人们继续往“一对多”方向思考,随之代替的出现了IP组播,这是一种网络层上的实现,但是,由于涉及网络硬件诸多问题,导致使用 IP 组播技术的应用很少。为了解决这个问题,近年来提出了一些替代方案,统称为应用层组播或端到端组播。这些组播使用网络层的单播,通过建立一个覆盖网络,在应用层实现组播(application layer multicast)。
图3 单播,IP组播,应用层组播实现示意图Fig.3 Unicast,IP multicast and application layer multicast
为了实现高效的基于覆盖层的组播系统,必须解决以下三个关键问题:
1)如何管理节点?使得适应于有不同能力和不同行为的节点的动态网络,这些节点是随时加入或退出。
2)如何传输?或者说如何构建一个适当的组播结构。
3)如何保障传输的QoS?例如,在动态网络环境下如何传输调度,拥塞控制和出错控制?
传统的组播结构常常是在覆盖网络上构造和维护一个高效容错的生成树,因为生成树是一个天然的适合组播的结构。例如,图5是P2Cast[4]的示意图。
图4 覆盖网络Fig.4 Overlay Network
上述的组播是一个“一对多”问题,采用发布树把内容分发到多个节点。除了从“一对多”方向发展,另有一些人认为,信息在网络世界大量存在的,何不充分利用现有的数据呢?于是有了从多源请求数据的方法,这是“多对一”的方法,也是一种为了提高效率的方法,例如多源的BitTorrent[1],见图6。
图5 P2Cast的示意图Fig.5 Peer to Peer patching scheme
图6 BitTorrent的示意图Fig.6 BitTorrent Scheme
我们发现,为了提高效率,在网络传输中,有单源发布树的,有多源的(类似BT),也就是:有“一对多”和“多对一”,却罕见“多对多”的,见图7。
但是,从“一对一”转变为“一对多”或“多对一”的过程,提高了网络传输的效率,如果从“一对多”或“多对一”再次转变到“多对多”,会有什么效果呢?应该更为提高网络传输效率。所以,得出:
图7 多对多传输示意Fig.7 Multi-to-Multi Scheme
推论1:网络传输未来之路应该是“多对多”传输。
2 网络传输未来之路为何是“多对多”传输?
首先,存在大量多对多传输的需求,例如,如BitTorrent的文件共享中,通常是一个用户对多点请求数据,假如同时有多个用户对多点请求数据,便形成了多对多传输。这是一个需要改进的问题,其实,大部分看起来是多对多传输(宏观是如此),但在实际处理是将问题分解为多个的一对多或者是多对一,其特征是缺乏协作处理,容易造成拥塞或者缺乏效率。
再来看看,假如分解成多个任务[5],例如图8:
图8 任务分解Fig 8 Tasks Decomposed
任务之间往往是同过一条超级路(superpeer)由保持联系,或许应该存在多对多路由的更优选择,来代替单对单的超级路由。
其次,深入了解计算机网络的本质,其传输的根就是多对多传输:
显然,“多对多”和“一对一”是两个极。现实中“一对多”和“多对一”也会出现你中有我,我中有你。
这里所说的“多对多”、“一对一”、“一对多”和“多对一”是指在通信中技术处理的概念,不能跟宏观概念相混淆,例如,Internet是多对多的连接,这是一个大概念,很多宏观看起来像一对多的问题,可以用不同的技术来处理。
将复杂的通信问题分解是现时通用方法,一对一是问题分解的终极,一对多的问题可以分解成多个一对一问题,就像C/S,在服务端,存在多个一对一的服务,这些服务可能是分线程或者是分时的。
在追求问题分解的同时,也有追寻效率的,组播是一个例子,体现出“一对一”向“一对多”形态转移,而网格服务则体现了向“多对一”的转移。就像上图所显示那样,从上往下,是分解问题,从下往上,是追求效率,通常是在追求问题难易与效率之间平衡。
不过,随着越来越多的问题被解决,以前困难的事情现在变得容易多了,通信技术上,也就变得越来越往“多对多”方向发展。
再来看一个有趣的解决问题和提高效率的例子,CDN(Content distribution network,内容分发网络)看似一对多,通讯技术处理上却是一对一,CDN应该是一种代理服务,和C/S一样,只是在服务端存在多个服务来满足众多用户需求。CDN是为了解决大量(视频)内容分发对主干网络所造成巨大压力而产生的,其方法是在(比较)接近用户添置缓存服务器,也叫边缘服务器,这是一种解决问题的方法,却产生浪费服务器这样的效率问题。CDN也是与时俱进的,当以缓存服务器来解决问题被视为基本方法时,却不断以提高效率为目标,向多对多进化,一个方向是P2P+CDN,还有支持用户向多台CDN服务器请求数据。
为什么不直接采用“多对多”呢?那是“多对多”太复杂了,简化问题而求解是正确的,不过,随着技术的进步,会逐步向“多对多”发展的。
3 网络传输效益规模
网络服务规模法则中,除了前面所述的Sarnoff's law和Metcalfe's law,还有一个Reed's law[3]:效益规模是O(2N),网络是群组媒介。网络可建立2N-N-1小组,见图9。
图9 Reed 定律Fig.9 Reed's law
图10 三个著名定律的效益规模关系Fig.10 Three famous laws concerning value of networks.
Metcalfe's law和Reed's law的威力是巨大的,见图10。现有的P2P技术应该是Metcalfe's law的范畴,但很多具体的P2P系统往往只达到Sarnoff's law的规模效果,其表现是,达到了广大N倍的传输,却没有好好利用规模为N2的节点之间的关系。达到Metcalfe's law范畴的P2P技术应该可以成为Web2.0的技术基础,这体现出用户之间是充分交互的。
更进一步地,P2P技术应该在Reed's law的范畴发展。所以,
推论2:P2P技术未来的路是:释放束绑,充分交互,使之达到应有的Metcalfe's law范畴,然后,逐渐向Reed' law的范畴发展。
Reed's law其实是一个群方式,也就是在N的范围内取其中的成员组成群,以保持联系,它的威力在于可以任意地组成群。
群具有多节点,属于“多”,所以,可以用“群对群”代替“多对多”。基于群的群对群传输是“多对多”传输。
根据推论1和推论2,可以推出的结论:
结论:网络传输未来的方向是以群对群方式的多对多传输。
4 群对群(G2G)传输方式
所谓“多对多”网络传输是指多节点对多节点之间的网络传输。在多对多传输中,我们更多地讨论有方向性的传输,这种方向性表现为有源端和目的端,当然,这种方向性是相对而言,一个单元,既可以作为目的端,又可以作为源端。如何组成源端的“多”和目的端的“多”呢?为了方便,我们引进群的概念:
群是一组具有相同属性的节点。(非空的)群具有一个或多个节点成员。负责内容传送的群叫传递群,接收由其他群传送内容的群叫接收群。
我们定义的群,从广义来说,依然是“多”,因为当所有节点属性都相同时,群跟“多”是一致的。采用群的概念是好主意,可以根据不同的需要,制定不同的属性划分,因此,可以把原来任意的“多”转变为有组织的“群”,这种转变正是尝试解决“多对多”传输问题的关键一步。
再来看看群对群(G2G)传输:
群对群网络传输被描述为:是多对多网络传输,在参与网络传输的成员中,取其部分或全部的成员组成多个群,涉及群与群关系的传输称为群对群网络传输。
G2G传输涉及群与群的关系,但也有部分的内容传输是在群内成员之间完成的。当然,这种传输也可以看成群对群的传输,我们引入子群的概念:
为了满足某些传输类型,在不改变原有群的情况下,一个群的成员可以分成多个群,这些群称为子群。
G2G传输和多对多传输实际是一样的,在这里强调采用G2G传输是为了突出分群的灵活性。在某些时候,也就形成了分群技术。
采用G2G传输的好处是明显的,首先,“扩大”通信能力,所谓“扩大”也就是比其它方式更加充分利用了网络资源,例如,自然而然地形成“多对一”的传输。其实,G2G传输是属于Reed’law的范畴,效益规模为O(2N)的揭示说明了问题。
其次,采用G2G传输可以更好地分解问题,一个灵活分群技术要明显好于分解成“多对一”,“一对多”等等。采用分群的原则可以是多方面的,例如,以网络速率优先,以内容开始接收位置优先和以属性(稳定性、地域、延时、距离、等等)优先等等来进行分群。
再者,G2G传输可以更好地控制通信,G2G传输拥有更多的成员信息,这在覆盖网络中,更容易构成适当的组播结构,并对有差别的成员加以管理,加上灵活的分群方法可以自如地应付动态变化的环境,有效解决传输调度和拥塞控制问题。
G2G传输最终地提高了效率。
G2G传输既可以存在于网络层,又可以用于覆盖网络。G2G传输可以有效解决覆盖网络问题:用群来管理节点,用“多对多”负责传输。
5 G2G传输的实例
“多对多”传输提高了网络传输的效率,还具有更多联系,更多应用等等广泛的效益。但“多对多”传输的实现是困难的,虽然如此,我们还是做出一些尝试,是基于G2G传输的尝试。
首先,需要建立完善的分群机制,在动态环境里,允许节点自由进入和退出,还包括当节点的属性变化时(例如,网络速率的变化),可以从某一属性群转到另一属性群。如果情况允许,还应该保持群成员的规模(N)适当大小,在兼顾情况下,如Reed' law,N的增长,是具有指数增长的规模效益。
其次,把G2G传输分成两大类:一种是接收群没有参与内容传送的G2G传输,如图11,所有的内容均由传递群(源端)直接传送至接收群;另一种是接收群有参与内容传送的G2G传输,如图12,传递群将内容传送到接收群不同的成员,再由接收群的成员相互交换而完成内容的传输。为了区别不同的传输,引用概念:
交换:在一个群内,成员与其它成员相互之间传输内容。
传递:一个传递群将内容传输到另一个接收群。
交换是群内传输,在属性相同成员之间进行,应该具有较为宽松的网络通信环境;而传递是群对群之间传输,有可能成为传输瓶颈问题。所以,在G2G网络传输中,应该充分考虑交换和传递之间的差别。
图11 没有交换的G2G传输Fig.11 G2G transportation without exchange
图12 有交换的G2G传输Fig.12 G2G transportation with exchange
再者,既然“多对多”是网络传输形态的根,就应该尝试用“多对多”去包含其它的形态。这可以教会我们换另一种思路来解决问题的:把很多通信归纳为“多对多”问题,而把“一对多”看成是源是一,目的是多的“多对多”的特例;同理,“多对一”看成是源是多,目的是一的“多对多”的特例;“一对一”看成是源是一,目的是一的“多对多”的特例。这种思路可以提高解决问题效率。
有些人会认为,既然所有网络传输都可以由“一对一”传输完成,网络传输也应该可以由“一对一”构成。这是不对的,例如,“一对一”可以完成广播所完成的传输(虽然这种完成是低效率的),但不能用“一对一”来描述广播的行为。
而“多对多”则可以描述所有的网络传输行为,这是网络传输的根。现在来看看“多对多”是如何描述CDN行为的。
CDN的一个G2G描述是如图14结构的G2G传输系统,群1的内容服务器将内容传送到组成群2的缓存服务器,缓存服务器组成群3和客户端组成的群4再次组成了G2G传输。也许有人认为,这是一个分级(hierarchical)网络传输。也对,G2G可以完整地描述分级网络传输,但G2G的模型显得更为灵活些。
图13 没有交换CDN示意Fig.13 CDN transportation without exchange
图14 有交换CDN示意Fig.14 CDN transportation with exchange
图13结构除了描述出一个CDN传输模型,还具有更进一步的指导意义,原来的CDN传输中,G1对G2传输是没有交换的G2G传输(如图12),当需要进一步节省主干网络带宽时,将G1对G2改为有交换的G2G传输(如图14)。同样,如果想减轻G3缓存服务器的压力或者让G3缓存服务器支持更多的客户端,可以将G3对G4传输改为有交换的G2G传输,并且,G3还可以扩展到多台服务器。这样的G2G模型可以让CDN很容易进化,从而提高效率和节省成本。
CDN的另一个G2G描述是如图14结构的G2G传输系统,群1的内容服务器将内容传送到G2和G3的缓存服务器节点,再由缓存服务器节点将内容交换到群内的其它成员节点。这种模型也是超级对等体结构(super-peer)的描述。但G2G模型要比超级对等体模型具有更深远的意义:G2G模型除了将内容传送到缓存服务器节点(super-peer),还可以将内容传送到其它节点,然后再次相互交换内容。这也是当群内网络质量有保障时,G2G取代CDN的方法。
最后,来看看G2G的传输原理,Internet通讯的基础是分组交换网络技术(Packet Switching)[8],它的基本思想是:发送信息时,先把该信息(内容)拆分成若干个分块(俗称数据包),编上序号,把它们分开发送出去,然后在目的地再按序号拼起来。因为涉及群,是由群的成员共同协作完成内容传输的,需要对分组交换技术进行扩展,如图12,内容是由多个节点发送,则发送时需要内容分配,同时,内容发送到接收群后,还可能需要交换。所以:
G2G传输原理:将所需传输的内容分成多个块,由传递群的部分或全部的成员参与所述的内容块分配,所述的成员将分配的内容块分别传输给需要得到内容的接收群的部分或全部成员,接收群的成员将从所述的节点发送来的内容块再次交换到群内的其它成员。
图15 G2G网络传输示意Fig 15 G2G network transpotration
图15是G2G传输示意图,箭头所指,是从传递群到接收群,多角型表示一个群以及群内的交换,椭圆型表示传递,是一个多对多(i*j)连接。i是传递群参与传递的成员数,i≤传递群总成员数;j是接收群参与接收传递内容的成员数,j≤接收群总成员数。G2G传输属于Reed’ law的范畴。
如图15所示,一个群涉及传递时,传入和传出的数目没有限制。G2G传输可以有串联,也可以是并发的。
图16是一个显示群内如何交换的G2G传输示意图,某一个传递群可能会有一个或多个节点,将所分配的内容传送到接收群,接收群接收到内容后,也可以作为一个新的传递群。
图16 G2G 交换传输示意Fig.16 G2G transportation with exchange
参考图15和图16可以得出:假如传递一个速率为D的内容流,分配到传递群i位成员,由于是多位成员共同承担,具体到每位成员是比较轻,平均传递速率为D/i;而传送到接收群j位成员,这j位成员的平均交换速率为(N-1)* D / j 。经传递后交换,一个内容流变成了N个内容流,既兼顾传递有可能成为传输瓶颈问题,又利用了群内宽松的交换传输。i*j连接说明了G2G很容易构成一个均衡的系统,也可以描述超级路由现象。i*j连接还显示了传输调度在G2G传输中是比较容易实现。
图15也告诉我们G2G传输与分级(hierarchical)网络传输[9]的不同:分级网络的群存在一个或多个超级对等体(superpeer),群与群的联系(communication relationships)是通过相应的超级对等体保持联系的,其它常规对等体(regular peer)则通过超级对等体来联系,而G2G传输没有超级对等体和常规对等体的区分,传递群的任意对等体是可以和接收群的任意对等体直接联系。
G2G传输与分级网络传输的另一个不同之处是:分级网络由多个群的超级对等体组成超级对等体的网络,这也是上一层次的网络,存在层次或分级概念,而G2G传输的群与群的关系是一个对等的关系,虽然存在源端的群,也为了简化问题而更多讨论是有方向的传输(例如,从传递群到接收群),但从广泛意义来说,分群之后的群,仍然作为对等体,G2G传输仍然是对等群网络。
Metcalfe' law的N2的意义在于任何用户可以和任何其他的用户联系。
Reed' law的2N的意义在于任何用户可以和N以内任何数目的其他用户联系。
而G2G传输的效益规模的意义在于任何用户可以和N以内任何数目的其他用户以任何方式(路由)联系。
可以想象,G2G传输的V值要比Reed' law的V值大得多,强调G2G传输的V值更多是说明在G2G传输中追求最优的问题解是非常困难或者是不可能的。为此,需要引入适当的条件约束,以方便求问题的解,例如,采用一些有效的分群规则,和一些群对群传输的先后次序规则(例如,由传输质量较好的群负责对传输质量较差的群传递内容,等等)。
还有一种非常有意义的计算服务,就是G2G搜索服务,一种基于G2G计算的具有Portal的搜索服务[10]。
在G2G搜索服务中,用户一进入G2G搜索服务的Portal,便进入协作搜索环境。协作搜索可以是多方面的,包括:
(1)与具有相同搜索需求的其他用户共同组成搜索任务群;
(2)为搜索系统承接搜索服务;
(3)请求搜索服务。
用户可以运行上述的一个或多个任务,视用户系统的能力和预先设置而定。
在(1)中,多个用户共同组成搜索任务群,每个用户分摊其中的一部分任务,可以减轻每个用户的工作量,还可以搜索非常大的范围。但并不是每次的搜索请求都需要进行分布式的搜索,也可以从中心服务器里面查找出所需的信息,此时,组群仍然具有价值,可以将搜索到的内容以G2G的方式发布到所有的成员。
在(2)中,搜索服务系统当用户在线时,按其节点的能力和预先约定来分派搜索任务。用户在线是指用户参与搜索的时间,也可以是预先约定的,例如,约定为用户连接网络的所有时间段或某特定时间段,或者约定为用户从进入Portal到退出Portal的时间段。搜索的结果可以返回到指定的服务器,也可以经过Transmutation运算,传送到指定的用户或接收群。
类似于基于门户网站的G2G计算,为了鼓励用户承接搜索服务,G2G搜索服务系统还可以采用激励的方法,例如承接搜索服务较多的用户,有较高的使用G2G搜索服务的优先权。
节点作为承担搜索服务,最好能和节点的本地(桌面)搜索相结合,这些本地搜索可以是搜索系统固有的一部分,也可以是调用已有的第三方本地搜索引擎。
在(3)中,用户请求搜索的服务中,既可以按默认的方式,也可以按指定的方式来请求。默认的方式可以是系统根据具体的情况,安排从中心服务器里面查找出所需的信息(中心服务器的信息也可能是以前分布式搜索的结果),或者是进一步的分布式搜索。
6 总结
计算机网络传输可以分为四种形态:“一对一”,“多对一”,“一对多”和“多对多”。
“一对一”和“多对多”是两个极,“一对一”是问题分解的终极,而“多对多”则是效率所追求的终极。由“多对多”往“一对一”是为了简化问题,“一对一”往“多对多”是为了效率。
群对群是“多对多”的另一种方式,或者说,是强调分群的“多对多”传输。
网络传输的根就是多对多传输,在网络传输中,G2G无处不在,G2G思想具有广泛的指导意义,G2G方法是提高效率和解决问题的有效方法。
本文的结论是:网络传输的未来应该是群对群传输。
(References)
[1]http://bitconjurer.org/BitTorrent/.December 2004.
[2]G.Gilder,“George Gilder's Telecosm:Metcalfe's Law and Legacy,” Forbes ASAP,September 13,1993.(http://www.seas.upenn.edu/~gaj1/metgg.html)
[3]D.P.Reed,That Sneaky Exponential—Beyond Metcalfe's Law to the Power of Community Building,1999.(http://www.reed.com/Papers/GFN/reedslaw.html)
[4]Y.Guo,K.Suh,J.Kurose,and D.Towsley,“P2cast:peerto-peer patching scheme for vod service,” in Proceedings of the twelfth international conference on World Wide Web,2003,pp.301-309.
[5]A.-M.Kermarrec,L.Massoulie,and A.J.Ganesh.Probabilistic reliable dissemination in large-scale systems.IEEE Transactions on Parallel and Distributed Systems,14(3),March 2003.
[6]B.Yang and H.Garcia-Molina.Designing a super-peer network.In Proccedings of the ICDE,March 2003.
[7]F.S.Inc.Super-peer architectures for distributed computing.http://www.fiorano.com/whitepapers/superpeer.pdf,2002.
[8]P.Baran.On distributed communications networks.IEEE Transactions on Communications,12:1--9,1964
[9]Garcs-Erice,L.,Biersack,E.W.,Ross,K.W.,Felber,P.A.and Urvoy-Keller,G.(2003),“Hierarchical peer-topeer systems”,in Parallel Processing Letters,Vol.13,No.4,pp643-657 2003.
[10]林广明,张永敏.基于群对群传输的计算的架构.深圳信息职业技术学院学报 Vol.10 No.3第3期,pp.1-8,2012.Guang Lin,Yongmin Zhang,Based on Group-to-Group Transportation Computing Architecture,Journal of Shenzhen Institute of Information Technology,Vol.10,No.3,pp.1-8,2012.(in Chinese)
The principle of network communications is group to group transportation
LIN Guangming1;TANG Fei1;ZHANG Yongmin2
(1.Shenzhen Institute of Information Technology,Shenzhen 518172,P.R.china;2.Shenzhen Avas Micro System Ltd.Co.,Shenzhen 518023,P.R.China)
There are four types status of network communications:one-to-one,multi-to-one,one-to-multi and multi-to-multi.The one-to-one model is the final status of problem decomposing,but the multi-to-multi model is the status which has the most transportation efficiency model we are seeking.In this paper,we discuss the characteristics and their changes of those four types network communication models.We got the conclusions:To improve the transportation efficiency,we should pay more attention on multi-to-multi model.We put forward a kind of multi-to-multi transportation model;it is Group to Group (G2G) transportation.The G2G transportation emphasizes the strategies of group partition.
the status of network transportation;multi-to-multi network trans portation;strategies of group partition;Group-to-Group (G2G) transportation;
TP393.03
:A
1672-6332(2014)03-0049-08
【责任编辑:高潮】
2014-08-30
广东省自然基金项目(项目编号:S20130014108);深圳市科技计划项目(项目编号:JCYJ20130401095559825,JC201006020807A);深圳市经济信息委员会项目(项目编号:20130806094356)
林广明(1963-),男(汉),博士,研究员。主要研究领域为演化计算,计算智能。计算机网络通信。E-mail:lingm@sziit.com.cn