|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.ObjectRedes.Nivel
Redes.IPv4.NivelIPv4
Módulo IPv4
| Field Summary | |
(package private) java.util.Vector |
enEspera
Cola de datagramas que estan en espera de que se reciba una respuesta ARP |
(package private) int |
instanteActual
Instante actual |
(package private) ModuloARP |
moduloARP
Modulo ARP asociado al nivel IPv4 |
(package private) ModuloICMP |
moduloICMP
Modulo ICMP asociado al nivel IPv4 |
(package private) java.util.Vector |
reensamblados
Datos con paquetes que estan siendo reensamblados |
TablaDeRutas |
tablaDeRutas
Tabla de rutas, facimente accesible desde el 'equipo' |
| Fields inherited from class Redes.Nivel |
colaEntrada, colaSalida, equipo, parametros |
| Constructor Summary | |
NivelIPv4(Equipo equipo,
ModuloARP moduloARP,
ModuloICMP moduloICMP)
Constructor |
|
| Method Summary | |
protected boolean |
ComprobarEntrada(Dato dato)
Comprueba si el dato esta bien formado |
protected boolean |
ComprobarSalida(Dato dato)
Compruenba si el dato de salida es correcto |
private void |
Enviar(Dato dato,
boolean enEsperaARP)
Envia al nivel inferior el dato especificado, fragmentandolo si es necesario y realizando las consultas necesarias a la tabla ARP (enviando peticiones...) |
private void |
EnviarConFragmentacion(Dato dato,
Direccion dirFisica,
Interfaz interfaz)
Enviamos un datagrama al nivel inferior usando fragmentacion |
private void |
EnviarFragmento(int instante,
int numFragmento,
DatagramaIPv4 datagrama,
Direccion dirFisica,
Interfaz interfaz)
Envia un fragmento del datagrama al destino |
private void |
EnviarICMP(int tipo,
int codigo,
Dato dato)
Envia un mensaje ICMP al modulo ICMP |
private void |
EnviarPrimerFragmento(int instante,
DatagramaIPv4 datagrama,
Direccion dirFisica,
Interfaz interfaz)
Envia el primero fragmento del datagrama al destino |
private void |
EnviarSinFragmentacion(Dato dato,
Direccion dirFisica,
Interfaz interfaz)
Enviamos un datagrama al nivel inferior sin usar fragmentacion |
private boolean |
EnvioICMPErrorPermitido(DatagramaIPv4 datagrama,
int tipo)
Comprueba si el envio de un mensaje icmp provocado por el datagrama indicado esta o no permitido |
private boolean |
EsFragmento(DatagramaIPv4 datagrama)
Comprueba si el datagrama es un fragmento de otro datagrama o no |
private boolean |
EsMiDireccion(DireccionIPv4 direccion)
Comprueba si la direccion que se pasa pertenece al equipo |
private boolean |
EsParaMi(DireccionIPv4 direccion)
Comprueba si la direccion que se especifica pertenece a algun interfaz |
java.lang.String |
ID()
Devuelve el identificador del nivel |
void |
IPForwarding(boolean estado)
Activa o Desactiva el 'ip forwarding' |
private void |
PasarAlNivelSuperior(DatagramaIPv4 datagrama)
Procesa un datagrama recibido de la red y lo envia al nivel superior correspondiente |
int |
Pendientes()
Devuelve el numero de datagramas pendientes de ser procesados |
void |
Procesar(int instante)
Procesa los datagramas del instante especificado |
private void |
ProcesarDatagrama(Dato dato)
Procesa un datagrama, previamente se ha comprobado que es correcto |
private void |
ProcesarEnEsperaARP()
Procesa los datagramas de la cola de espera de respuestas ARP |
private void |
ProcesarEntrada()
Procesa los datagramas que deban ser procesados en el instante indicado |
private void |
ProcesarReensamblados()
Procesa los datagramas reensamblados que deban ser procesados en el instante actual |
private void |
ProcesarSalida()
Procesa un datagrama de la cola de salida (hacia la red) |
private void |
Reensamblar(int instante,
DatagramaIPv4 fragmento)
Añade el fragmento a un reensamblado existente o crea uno nuevo |
| Methods inherited from class Redes.Nivel |
getID, getNivelInferior, getNivelSuperior, getRetardo, ProgramarEntrada, ProgramarSalida, setNivelInferior, setNivelSuperior, SimularError, SimularError |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public TablaDeRutas tablaDeRutas
java.util.Vector reensamblados
ModuloARP moduloARP
ModuloICMP moduloICMP
java.util.Vector enEspera
int instanteActual
| Constructor Detail |
public NivelIPv4(Equipo equipo,
ModuloARP moduloARP,
ModuloICMP moduloICMP)
equipo - Equipo que contiene el modulomoduloARP - Modulo ARP, que se usara para traducir las direcciones IPmoduloICMP - Modulo ICMP que se usara para el envio de mensajes informativos o de error| Method Detail |
public void IPForwarding(boolean estado)
estado - 'true' para habilitar y 'false' para deshabilitarpublic void Procesar(int instante)
Procesar in class Nivelinstante - Instante de tiempopublic int Pendientes()
Pendientes in class Nivelprivate void ProcesarEntrada()
private void ProcesarSalida()
private void ProcesarEnEsperaARP()
private void EnviarICMP(int tipo,
int codigo,
Dato dato)
tipo - Tipo de mensajecodigo - Codigo del mensajedato - Dato con los datos del del datagrama
private boolean EnvioICMPErrorPermitido(DatagramaIPv4 datagrama,
int tipo)
datagrama - Datagrama que provoca en envio del mensaje ICMPtipo - Tipo de mensaje ICMP a enviar
private void Enviar(Dato dato,
boolean enEsperaARP)
dato - Datos de los datos que se tienen que enviarenEsperaARP - Flag que indica si el dato proviene de la cola de espera ARPprivate void ProcesarDatagrama(Dato dato)
dato - Datos del datagramaprivate void ProcesarReensamblados()
private boolean EsFragmento(DatagramaIPv4 datagrama)
datagrama - Datagrama IPv4
private void Reensamblar(int instante,
DatagramaIPv4 fragmento)
instante - Instante de tiempofragmento - Fragmento de datagrama recibidoprivate void PasarAlNivelSuperior(DatagramaIPv4 datagrama)
datagrama - Datagrama con los datos que hay que pasar al nivel superiorprivate boolean EsParaMi(DireccionIPv4 direccion)
direccion - Direccion que se va a comprobar
private boolean EsMiDireccion(DireccionIPv4 direccion)
direccion - Direccion IPv4
private void EnviarSinFragmentacion(Dato dato,
Direccion dirFisica,
Interfaz interfaz)
dato - Datos del datagramadirFisica - Direccion fisica del destino para en nivel inferiorinterfaz - Interfaz por la que se enviaran los datos
private void EnviarConFragmentacion(Dato dato,
Direccion dirFisica,
Interfaz interfaz)
dato - Datos del datagramadirFisica - Direccion fisica del destino para en nivel inferiorinterfaz - Interfaz por la que se enviaran los datos
private void EnviarPrimerFragmento(int instante,
DatagramaIPv4 datagrama,
Direccion dirFisica,
Interfaz interfaz)
instante - Instante de tiempodatagrama - Datagrama original, sin fragmentardirFisica - Direccion fisica del destinointerfaz - Interfaz por la que se enviara el fragmento
private void EnviarFragmento(int instante,
int numFragmento,
DatagramaIPv4 datagrama,
Direccion dirFisica,
Interfaz interfaz)
instante - Instante de tiemponumFragmento - Numero de fragmentodatagrama - Datagrama original, sin fragmentardirFisica - Direccion fisica del destinointerfaz - Interfaz por la que se enviara el fragmentopublic java.lang.String ID()
ID in class Nivelprotected boolean ComprobarEntrada(Dato dato)
ComprobarEntrada in class Niveldato - Dato a comprobar
protected boolean ComprobarSalida(Dato dato)
ComprobarSalida in class Niveldato - Dato a comprobar
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||