u 2009

DiProNN: Distributed Programmable Network Node

REBOK, Tomáš

Základní údaje

Originální název

DiProNN: Distributed Programmable Network Node

Název česky

DiProNN: Distribuovaný programovatelný síťový prvek

Autoři

Vydání

Brno, 200 s. Ph.D. Thesis, 2009

Nakladatel

Faculty of Informatics, Masaryk University

Další údaje

Jazyk

angličtina

Typ výsledku

Účelové publikace

Utajení

není předmětem státního či obchodního tajemství

Organizační jednotka

Fakulta informatiky

Klíčová slova česky

DiProNN, distribuovaný programovatelný síťový prvek, aktivní sítě, programovatelné sítě, virtualizace, virtuální stroje, paralelní zpracování, distribuované zpracování, komponentové programování, programovací model

Klíčová slova anglicky

DiProNN, Distributed Programmable Network Node, active networks, programmable networks, virtualization, virtual machines, VM-aware architecture, parallel processing, distributed processing, component-based programming, programming model

Příznaky

Mezinárodní význam
Změněno: 7. 1. 2011 14:33, RNDr. Tomáš Rebok, Ph.D.

Anotace

V originále

The Active/Programmable networks allow the end users to inject customized programs into special network nodes, making them able to let their data being processed (in the way they want) directly in the network as it passes through. This approach has been presented as a reaction to a certain fossilization of the traditional computer networks, which on the one hand behave as a simple and extremely fast forwarding infrastructure, but which on the other have not been designed for fast and dynamic reconfigurations and novel services' deployment. Multimedia application processing (e.g., videoconferencing, video transcoding, video on demand, etc.), secure and reliable multicast, etc.), intrusion detection systems, and dynamically adapting Intranet firewalls are just a few possible services, which could be provided. Thanks to an amazing functional flexibility, the active/programmable networks became very popular in a short time and have been studied by many research teams. Various architectures have been proposed, from the integrated ones based on the active packets containing a program code (so-called capsules) to the discrete ones, where the program injection is separated from the processing of the data packets, all of them including software-only as well as software-hardware architectures. The fundamental issues, which have to be addressed by all the architectures, are: Execution Environment Flexibility -- the active/programmable nodes have to provide an execution environment (EE), inside which all the user active programs (APs) are processed. Ideally, the nodes should be able to accept and run the user-supplied APs designed for an arbitrary EE, which will provide the highest flexibility possible. However, the existing solutions usually restrict the users to provide the APs designed just for a single and specific EE, ordinarily represented by a Unix/Linux-based OS, Java Runtime Environment, or a specialized proprietary one. Resource Isolation and Security -- for security purposes, the running APs have to be strongly isolated from each other, so that a malicious/compromized AP cannot affect another APs sharing the same HW/SW resource(s) nor it can directly affect the simultaneously running APs themselves. Such an isolation has to further eliminate a hidden influence among the APs (e.g., through swapping of virtual memory pages) as well. Most of the architectures, which have been presented so far, more or less omit such security mechanisms at all, or provide proprietary mechanisms, which are externally enforcing defined security policies, but which do not address the fundamentals of the problem. We claim, that instead of proposing novel and hopefully ``more perfect'' proprietary solutions, these issues could be essentially addressed by making use of the virtualization techniques, which have revived in the recent years. And even further, besides helping to cope with these mentioned issues, the virtualization could also provide another useful benefits, which are discussed in this thesis as well. The main goal of this thesis is to investigate and present the benefits of employing the virtulization principles in the active/programmable networks area. To illustrate them, we propose a novel programmable network node architecture, named DiProNN (Distributed Programmable Network Node), that employs the virtualization techniques and makes use of their discussed features. The employed virtualization, properly combined with another useful concepts, enables us to propose a very flexible and powerful programmable node, which allows its users to develop their active programs for arbitrary execution environments and comfortably compose them into complex processing applications. Besides the execution environments' flexibility, the employed virtualization makes the proposed node further able to provide higher security and strong isolation capabilities, additionally enhanced by robust resource reservations and guarantees.

Česky

Koncept aktivních/programovatelných sítí umožňuje uživatelem řízené zpracování procházejících dat na specializovaných síťových prvcích. Uživatelé do těchto prvků nahrávají své tzv. aktivní programy, které jsou pak nad procházejícími daty aktivním prvkem prováděny. Tento koncept byl představen jako reakce na určité ustrnutí tradičních počítačových sítí, které sice představují jednoduchou a velmi rychlou infrastrukturu pro přenos dat, avšak které nejsou schopny rychlých a dynamických rekonfigurací či zavádění nových služeb. Příkladem aplikací, které mohou s výhodou využít takovéto zpracování dat uvnitř sítě, jsou aplikace pro přenosy či zpracování multimediálních dat (videokonferenční aplikace, zpracování a distribuce videa, atp.), bezpečný a spolehlivý multicast, atp.), systémy detekující a řešící útoky na prvky počítačové sítě či dynamicky se adaptující intranetové firewally. Díky obrovské škále možných poskytovaných služeb se tento koncept stal velmi rychle populárním -- byla navržena celá řada softwarových a hardwarových aktivních/programovatelných architektur, od tzv. integrovaných, které jsou založeny na aktivních paketech přímo obsahujících nad nimi prováděný aktivní program, až po tzv. diskrétní, ve kterých zavedení aktivního programu předchází vlastnímu zpracování dat. Základní otázky, které musí být v rámci návrhu kteréhokoliv aktivního/programovatelného prvku řešeny, jsou: Flexibilita výpočetního prostředí -- každý aktivní prvek musí poskytovat nějaké výpočetní prostředí, ve kterém jsou uživatelem nahrané programy zpracovávány. V ideálním případě lze toto prostředí dynamicky přizpůsobovat tak, aby byl daný prvek schopen přijmout a provádět uživatelské aktivní programy určené pro libovolné výpočetní prostředí. Tato schopnost je však v existujících architekturách výrazně potlačena, neboť tyto uživatele obvykle omezují na jediné prostředí, pro které musí své programy vytvářet (většinou Unix/Linux OS, Java Runtime Environment či nějaké jiné proprietální řešení). Izolace zdrojů a bezpečnost -- běžící aktivní programy musí být zabezpečeny a vzájemně izolovány tak, aby se nemohly vzájemně ovlivňovat či kompromitovat. Doposud navržené architektury však mechanismy spojené s izolací a bezpečností aktivních programů buď zcela postrádají, anebo poskytují složitá proprietální řešení, která se snaží tyto politiky vynutit, avšak která neřeší vlastní podstatu problému. V této disertační práci dokazujeme, že místo návrhů nových proprietálních mechanismů lze podstatu těchto problémů řešit s využitím virtualizace, která se v posledních letech těší velké oblibě. Mimo mechanismů pro řešení zmíněných problémů však virtualizace aktivním prvkům přináší i další zajímavé a užitečné možnosti, které v této práci rovněž diskutujeme. Hlavním cílem této práce tak je prozkoumat a představit výhody využití virtualizace v oblasti aktivních/programovatelných síťových prvků. Pro jejich demonstraci navrhujeme nový programovatelný síťový prvek, nazývaný DiProNN (Distributed Programmable Network Node), který diskutované principy virtualizace využívá, a který za pomoci jejich vhodné kombinace s dalšími užitečnými koncepty představuje velmi silný a flexibilní programovatelný prvek umožňující vytvářet aktivní programy pro libovolná výpočetní prostředí. Tyto aktivní programy pak umožňuje pohodlně seskupovat do komplexních výpočetních aplikací, přičemž jim poskytuje vysoké možnosti zabezpečení a izolace, které mohou být navíc doplněny o rezervace a garance poskytovaných zdrojů.

Návaznosti

MSM0021622419, záměr
Název: Vysoce paralelní a distribuované výpočetní systémy
Investor: Ministerstvo školství, mládeže a tělovýchovy ČR, Vysoce paralelní a distribuované výpočetní systémy
MSM6383917201, záměr
Název: Optická síť národního výzkumu a její nové aplikace