private void ProcesarBusquedaDeDireccionIP(DatosFrameArpBuscando datosFrameBuscando, string macOrigen) { if (_puerto.IPAddress == datosFrameBuscando.IpDestino) { DatosFrameArpIPEncontrada datosFrameEncontrada = new DatosFrameArpIPEncontrada(_puerto.IPAddress, _puerto.MACAddress,datosFrameBuscando.IdPacket); EnviarFrame(datosFrameEncontrada, macOrigen); } }
private void ProcesarIPEncontrada(DatosFrameArpIPEncontrada datosFrame) { if (datosFrame.DireccionIP == _puerto.IPAddress) return; if (_protocoloArp.ContieneLaDireccionDe(datosFrame.DireccionIP)) return; if (!_paquetesNoEnviadosConDestino.ContainsKey(datosFrame.DireccionIP)) return; _protocoloArp.ActualizarARP(datosFrame); Dictionary<Guid, Packet> paqueteNoEnviados = _paquetesNoEnviadosConDestino[datosFrame.DireccionIP]; EnviarPaquete(paqueteNoEnviados[datosFrame.IdPacketOriginal], datosFrame.DireccionIP); }
public void ActualizarARP(DatosFrameArpIPEncontrada datosFrame) { _IP_To_MAC.Add(datosFrame.DireccionIP, datosFrame.MacAddress); OnCambioDeTablaDeArp(); }