11.05.2013 Views

Evaluación de Algoritmos de Ruteamiento Multipunto en Redes de ...

Evaluación de Algoritmos de Ruteamiento Multipunto en Redes de ...

Evaluación de Algoritmos de Ruteamiento Multipunto en Redes de ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Cuando la implem<strong>en</strong>tación <strong>de</strong> un nuevo protocolo <strong>de</strong> ruteami<strong>en</strong>to incluye más que un<br />

bloque <strong>de</strong> función, especialm<strong>en</strong>te cuando este conti<strong>en</strong>e un nuevo classifier, convi<strong>en</strong>e crear un<br />

nuevo objeto, al cual se le llama routing module. Este pue<strong>de</strong> manejar todos los bloques <strong>de</strong><br />

función y ser una interfase con el nodo para organizar los classifiers. La Figura 8 muestra la<br />

relación funcional <strong>en</strong>tre estos objetos. Note que el routing module podría t<strong>en</strong>er una relación<br />

directa con los bloques <strong>de</strong> computo <strong>de</strong> las rutas, es <strong>de</strong>cir, route logic y/o routing ag<strong>en</strong>ts. Sin<br />

embargo, el cómputo <strong>de</strong> las rutas no necesariam<strong>en</strong>te se instala <strong>en</strong> el routing module, pues allí<br />

podrían existir otros módulos que estén interesados <strong>en</strong> conocer las nuevas rutas. Esto no es<br />

un requerimi<strong>en</strong>to, sin embargo, es posible que algún cómputo <strong>de</strong> las rutas este especificado<br />

para un routing module particular, como por ejemplo la utilización <strong>de</strong> label <strong>en</strong> un módulo<br />

MPLS.<br />

Figure 8: Interacción <strong>en</strong>tre nodo, routing module, y routing. La línea segm<strong>en</strong>tada indica<br />

el <strong>de</strong>talle <strong>de</strong> un routing module.<br />

Un módulo <strong>de</strong> ruteami<strong>en</strong>to conti<strong>en</strong>e tres funcionalida<strong>de</strong>s principales:<br />

1. Un routing module que inicializa la conexión a un nodo a través <strong>de</strong> un register{}, y<br />

<strong>de</strong>sactiva un conexión mediante unregister{}. Usualm<strong>en</strong>te, <strong>en</strong> un register{} un routing<br />

module (1) llama al nodo si éste está interesado <strong>en</strong> conocer las actualizaciones <strong>de</strong> rutas y<br />

adjunta un transport ag<strong>en</strong>t, a<strong>de</strong>más (2) crea los classifiers y los instala <strong>en</strong> el nodo. En el<br />

unregister{} un routing module hace exactam<strong>en</strong>te lo opuesto: los classifiers son eliminados,<br />

se remuev<strong>en</strong> las ligas sobre las actualizaciones <strong>en</strong> los nodos.<br />

2. Si un routing module está interesado <strong>en</strong> conocer las actualizaciones <strong>de</strong> ruteami<strong>en</strong>to, el<br />

nodo informará al módulo vía un RtModule::add‐route{dst, target} y RtModule::<strong>de</strong>lete‐<br />

route{dst, nullag<strong>en</strong>t}.<br />

3. Si un routing module está interesado <strong>en</strong> conocer acerca <strong>de</strong> las ligas y <strong>de</strong>suniones con<br />

un transport ag<strong>en</strong>t <strong>en</strong> un nodo, el nodo informará al módulo vía RtModule::attach{ag<strong>en</strong>t,<br />

port} y RtModule::<strong>de</strong>tach{ag<strong>en</strong>t, nullag<strong>en</strong>t}.<br />

Exist<strong>en</strong> dos pasos para escribir un módulo propio:<br />

99

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!