Redes
Class Nivel

java.lang.Object
  extended byRedes.Nivel
Direct Known Subclasses:
ModuloARP, ModuloICMP, NivelEthernet, NivelIPv4, NivelPuntoAPunto

public abstract class Nivel
extends java.lang.Object

Clase base para los módulos de la pila de comunicaciones


Field Summary
protected  java.util.Vector colaEntrada
          Cola de paquetes que llegan al nivel
protected  java.util.Vector colaSalida
          Cola de paquetes que deben ser enviados
protected  Equipo equipo
          Equipo contenedor de este nivel
private  java.util.Vector Errores
          Lista de errores que se deberan simular
private  java.util.Vector nivelesInferiores
          Niveles inferiores
private  java.util.Vector nivelesSuperiores
          Niveles superiores
 ListaParametros parametros
          Lista de parametros;
 
Constructor Summary
Nivel(Equipo equipo)
          Constructor
 
Method Summary
protected abstract  boolean ComprobarEntrada(Dato dato)
          Comprueba que los datos de entrada son correctos
protected abstract  boolean ComprobarSalida(Dato dato)
          Comprueba que los datos de salida son correctos
protected  int getID(java.lang.String nivel_inferior)
          Devuelve el identificador del nivel, entendible por el modulo especificado
 Nivel getNivelInferior(java.lang.String modulo, int protocolo)
          Devuelve el nivel inferior que entienda el protocolo indicado
 Nivel getNivelSuperior(java.lang.String modulo, int protocolo)
          Devuelve el nivel superior capaz de procesar las tramas del protocolo indicado
protected  int getRetardo()
          Devuelve el retardo de procesamiento del nivel o el valor por defecto 1
abstract  java.lang.String ID()
          Devuelve el identificador del nivel
abstract  int Pendientes()
          Devuelve el numero de paquetes pendientes de ser procesados
abstract  void Procesar(int instante)
          Procesa todos los paquetes de un determinado nivel, programados en un instante
 boolean ProgramarEntrada(Dato dato)
          Programa un paquete para que se procese en un instante determinado
 boolean ProgramarSalida(Dato dato)
          Programa un paquete para que se procese en un instante determinado
 void setNivelInferior(Nivel nivel)
          Añade a la lista de niveles inferiores el nivel indicado
 void setNivelSuperior(Nivel nivel)
          Añade a la lista de niveles superiores el nivel indicado
 boolean SimularError(java.lang.String flag)
          Consulta la lista de errores a simular y devuelve cierto si el error asociado al flag se simulara o no
 boolean SimularError(java.lang.String flag, boolean activar)
          Activa o desactiva el flag indicado para que se simulen, o no,errores de ese tipo
private  boolean Soporta(java.lang.String nivel_inferior, int protocolo)
          Comprueba si el protocolo indicado esta soportado
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

colaSalida

protected java.util.Vector colaSalida
Cola de paquetes que deben ser enviados


colaEntrada

protected java.util.Vector colaEntrada
Cola de paquetes que llegan al nivel


equipo

protected Equipo equipo
Equipo contenedor de este nivel


nivelesInferiores

private java.util.Vector nivelesInferiores
Niveles inferiores


nivelesSuperiores

private java.util.Vector nivelesSuperiores
Niveles superiores


Errores

private java.util.Vector Errores
Lista de errores que se deberan simular


parametros

public ListaParametros parametros
Lista de parametros;

Constructor Detail

Nivel

public Nivel(Equipo equipo)
Constructor

Parameters:
equipo - Equipo propietario del nivel
Throws:
java.lang.IllegalArgumentException - si el equipo no es valido
Method Detail

ProgramarSalida

public boolean ProgramarSalida(Dato dato)
Programa un paquete para que se procese en un instante determinado

Parameters:
dato - Datos del paquete, instante de procesamiento, ...
Returns:
Devuelve cierto, si el dato se ha podido programar, falso en otro caso

ProgramarEntrada

public boolean ProgramarEntrada(Dato dato)
Programa un paquete para que se procese en un instante determinado

Parameters:
dato - Datos del paquete, instante de procesamiento, ...
Returns:
Devuelve cierto si el dato se ha podido programar, falso en otro caso

Soporta

private boolean Soporta(java.lang.String nivel_inferior,
                        int protocolo)
Comprueba si el protocolo indicado esta soportado

Parameters:
nivel_inferior - Modulo al que pertenece el identificador de protocolo
protocolo - Identificador del protocolo
Returns:
Cierto si el protocolo esta soportado por el nivel

getID

protected int getID(java.lang.String nivel_inferior)
Devuelve el identificador del nivel, entendible por el modulo especificado

Parameters:
nivel_inferior - Modulo
Returns:
Identificador de este nivel, para que lo use el 'Modulo'

getNivelSuperior

public Nivel getNivelSuperior(java.lang.String modulo,
                              int protocolo)
Devuelve el nivel superior capaz de procesar las tramas del protocolo indicado

Parameters:
modulo - Modulo asociado al identificador de protocolo
protocolo - Identificador de protocolo, segun RFC 790 (u otro)
Returns:
Nivel asociado al protocolo o null si no existe

setNivelSuperior

public void setNivelSuperior(Nivel nivel)
Añade a la lista de niveles superiores el nivel indicado

Parameters:
nivel - Nivel superior

getNivelInferior

public Nivel getNivelInferior(java.lang.String modulo,
                              int protocolo)
Devuelve el nivel inferior que entienda el protocolo indicado

Parameters:
modulo - Modulo asociado al identificador de protocolo
protocolo - Identificador del protocolo del nivel inferior
Returns:
Nivel inferior

setNivelInferior

public void setNivelInferior(Nivel nivel)
Añade a la lista de niveles inferiores el nivel indicado

Parameters:
nivel - Nivel inferior

SimularError

public boolean SimularError(java.lang.String flag,
                            boolean activar)
Activa o desactiva el flag indicado para que se simulen, o no,errores de ese tipo

Parameters:
flag - Flag asociado al error
activar - Se pone a cierto para activar el flag, y a falso para desactivarlo
Returns:
Falso si se produce algun error en el proceso

SimularError

public boolean SimularError(java.lang.String flag)
Consulta la lista de errores a simular y devuelve cierto si el error asociado al flag se simulara o no

Parameters:
flag - Flag asociado al error
Returns:
Cierto si se simularan errores del tipo indicado

getRetardo

protected int getRetardo()
Devuelve el retardo de procesamiento del nivel o el valor por defecto 1

Returns:
Retardo, en unidades de tiempo del simulador.

Procesar

public abstract void Procesar(int instante)
Procesa todos los paquetes de un determinado nivel, programados en un instante

Parameters:
instante - Instante

Pendientes

public abstract int Pendientes()
Devuelve el numero de paquetes pendientes de ser procesados

Returns:
Numero de paquetes pendientes de ser procesados

ComprobarSalida

protected abstract boolean ComprobarSalida(Dato dato)
Comprueba que los datos de salida son correctos

Parameters:
dato - Dato a comprobar
Returns:
Cierto si los datos son validos

ComprobarEntrada

protected abstract boolean ComprobarEntrada(Dato dato)
Comprueba que los datos de entrada son correctos

Parameters:
dato - Dato a comprobar
Returns:
Cierto si los datos son validos

ID

public abstract java.lang.String ID()
Devuelve el identificador del nivel

Returns:
Identificador del nivel