📄 overview.tex
字号:
% -*- mode: latex; tex-main-file: "pospaper.tex" -*-\section{Enabling Research}%% XXX This section re-phrases chunks of intro. Could be more direct.Currently to perform an experiment that needs a component implementedin routers and exposure to real network traffic, there are twooptions:\vspace{-1.0\baselineskip}\subsubsection*{Option 1}\vspace{-0.5\baselineskip}\begin{itemize}\addtolength{\itemsep}{-0.6\baselineskip}\item Persuade a large router vendor to implement your protocol.\item Persuade ISPs that this new protocol won't make their networksless stable.\item Conduct Experiment\end{itemize}\vspace{-1.5\baselineskip}\subsubsection*{Option 2}\vspace{-0.5\baselineskip}\begin{itemize}\addtolength{\itemsep}{-0.6\baselineskip}\item Implement the routing protocol part in a routing process orwrite own routing process.\item Implement the forwarding path part in the OS kernel.\item Persuade your network operator to replace his existing router withyour PC.\item Conduct Experiment\end{itemize}It is left as an exercise to the reader to locate recent Sigcommpapers reporting the results of such experiments.We see two possible solutions to these problems. The first solutionwould involve a large router vendor making their software platformopen. This could take the form of open source, or simply open APIsfor router ``applications''. In either case this would significantlychange the possibilities for the network researcher. However, unlessthe router platform were architected in such a way as to provide somedegree of protection from malfunctioning third-party code, then itwould be likely to remain difficult to persuade network providers thatit was safe to run such applications.The second solution entails the development of an open router softwareplatform, designed from the outset for extensibility. Initially thiswould have to run on commodity hardware, which primarily means PCsnetwork processor cards. Over time, the software base might achievesufficient stability and performance for deployment in productionscenarios, at least as an edge router, which is where flexibility ismost important. This is the path that Linux has taken in the serverOS arena. It is this idea that we outline in the remainder of this paper.\subsection{An Extensible Open Router Platform}We are in the process of developing an eXtensible Open RouterPlatform called XORP. There are two main parts to sucha platform:\begin{itemize}\item Higher-level routing code comprising the routing protocols, routinginformation bases, and management software necessary to exist intoday's Internet.\item Low-level code to manage the forwarding path, together with the appropriate APIs to talk to routing code and additional futurehigher-level functionality.\end{itemize}At the higher-level, we have developed an multi-processarchitecture comprising a process per routing protocol, plus ones formanagement, configuration, and coordination. To enable extensibilitywe developed a novel inter-process communication mechanism forcommunication between these modules. The goal is for almost all ofthe higher-level code to be agnostic as to the details of theforwarding path. At the low level the architecture needs to be capable of spanning alarge range of hardware forwarding platforms, ranging from commodityPC hardware at the low end, through mid-range PC-based platformsenhanced with intelligent network interfaces such as Intel'sIXP1200~\cite{ixp1200}, to high-end hardware-based forwarding engines.Initially we have focused on a PC-based hardware platform as thisallows for easy testing and early deployment, but great care is beingtaken to design a modular forwarding path architecture which cansupport some or all of the forwarding functions happening in hardware.For our own work, the preferred forwarding path is based on theClick~\cite{click} modular router. Click provides ahigh-performance forwarding path on commodity hardware and allows for run-time extensions of the kernel forwarding path. Also themodularity of Click allows for many different possible splits of workbetween software and hardware at a later stage when XORP is augmentedby special-purpose hardware.XORP's success depends on successfully addressing five ambitious goals:\begin{itemize}\addtolength{\itemsep}{-0.5\baselineskip}\item \textbf{Features.} XORP must begin with high-quality implementationsfor common routing protocols and forwarding engine components. \item \textbf{Stability.} Routers face more stringent stabilityrequirements than most programs. A XORP router must not crash or misroutepackets. Even a router containing an experimental protocol should achievehigh availability.\item \textbf{Speed.} XORP is not designed for core routers, at least notinitially. However, forwarding performance is still important, as thatis the purpose of a router. Scalability in the face of routing tablesize or number of peers is also critical.\item \textbf{Open APIs.} The interfaces between XORP components must beopen and extremely flexible, allowing arbitrary research extensions andruntime reconfiguration. \item \textbf{Collaboration.} Finally, XORP will require early and deepcollaboration with both researchers and industry to achieve its fullpotential. We hope to provide a code base that researchers anddevelopers will want to contribute towards.\end{itemize}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -