O que é disponibilidade de redes?

Saltar para o conteúdo principal

Este browser já não é suportado.

Atualize para o Microsoft Edge para tirar partido das mais recentes funcionalidades, atualizações de segurança e de suporte técnico.

Disponibilidade de rede

  • Artigo
  • 09/22/2022
  • 2 minutos para ler

Neste artigo

O System.Net.NetworkInformation espaço de nome permite-lhe recolher informações sobre eventos de rede, alterações, estatísticas e propriedades. Neste artigo, você vai aprender a usar a System.Net.NetworkInformation.NetworkChange classe para determinar se o endereço de rede ou disponibilidade mudou. Além disso, você verá sobre as estatísticas e propriedades da rede numa base de interface ou protocolo. Finalmente, você usará a System.Net.NetworkInformation.Ping classe para determinar se um hospedeiro remoto é acessível.

Eventos de mudança de rede

A System.Net.NetworkInformation.NetworkChange classe permite-lhe determinar se o endereço de rede ou disponibilidade mudou. Para utilizar esta classe, crie um manipulador de eventos para processar a mudança e associá-la a um NetworkAddressChangedEventHandler ou um NetworkAvailabilityChangedEventHandler.

NetworkChange.NetworkAvailabilityChanged += OnNetworkAvailabilityChanged; static void OnNetworkAvailabilityChanged( object? sender, NetworkAvailabilityEventArgs networkAvailability) => Console.WriteLine($"Network is available: {networkAvailability.IsAvailable}"); Console.WriteLine( "Listening changes in network availability. Press any key to continue."); Console.ReadLine(); NetworkChange.NetworkAvailabilityChanged -= OnNetworkAvailabilityChanged;

O código C# anterior:

  • Regista um manipulador de eventos para o NetworkChange.NetworkAvailabilityChanged evento.
  • O manipulador de eventos simplesmente escreve o estado de disponibilidade para a consola.
  • Uma mensagem é escrita para a consola, informando o utilizador de que o código está a ouvir alterações na disponibilidade da rede e aguarda a saída de uma tecla.
  • Desagrega o manipulador de eventos.
NetworkChange.NetworkAddressChanged += OnNetworkAddressChanged; static void OnNetworkAddressChanged( object? sender, EventArgs args) { foreach ((string name, OperationalStatus status) in NetworkInterface.GetAllNetworkInterfaces() .Select(networkInterface => (networkInterface.Name, networkInterface.OperationalStatus))) { Console.WriteLine( $"{name} is {status}"); } } Console.WriteLine( "Listening for address changes. Press any key to continue."); Console.ReadLine(); NetworkChange.NetworkAddressChanged -= OnNetworkAddressChanged;

O código C# anterior:

  • Regista um manipulador de eventos para o NetworkChange.NetworkAddressChanged evento.
  • O manipulador de eventos itera- se NetworkInterface.GetAllNetworkInterfaces(), escrevendo o seu nome e estado operacional para a consola.
  • Uma mensagem é escrita para a consola, informando o utilizador de que o código está a ouvir alterações na disponibilidade da rede e aguarda a saída de uma tecla.
  • Desagrega o manipulador de eventos.

Estatísticas e propriedades da rede

Pode recolher estatísticas de rede e propriedades numa base de interface ou protocolo. As NetworkInterfaceclasses NetworkInterfaceTypee PhysicalAddress as classes dão informações sobre uma determinada interface de rede, enquanto as classes dão UdpStatistics informações sobre os IPGlobalStatisticsIPInterfacePropertiesIPGlobalPropertiesTcpStatisticspacotes da camada 3 e da camada 4.

ShowStatistics(NetworkInterfaceComponent.IPv4); ShowStatistics(NetworkInterfaceComponent.IPv6); static void ShowStatistics(NetworkInterfaceComponent version) { var properties = IPGlobalProperties.GetIPGlobalProperties(); var stats = version switch { NetworkInterfaceComponent.IPv4 => properties.GetTcpIPv4Statistics(), _ => properties.GetTcpIPv6Statistics() }; Console.WriteLine($"TCP/{version} Statistics"); Console.WriteLine($" Minimum Transmission Timeout : {stats.MinimumTransmissionTimeout:#,#}"); Console.WriteLine($" Maximum Transmission Timeout : {stats.MaximumTransmissionTimeout:#,#}"); Console.WriteLine(" Connection Data"); Console.WriteLine($" Current : {stats.CurrentConnections:#,#}"); Console.WriteLine($" Cumulative : {stats.CumulativeConnections:#,#}"); Console.WriteLine($" Initiated : {stats.ConnectionsInitiated:#,#}"); Console.WriteLine($" Accepted : {stats.ConnectionsAccepted:#,#}"); Console.WriteLine($" Failed Attempts : {stats.FailedConnectionAttempts:#,#}"); Console.WriteLine($" Reset : {stats.ResetConnections:#,#}"); Console.WriteLine(" Segment Data"); Console.WriteLine($" Received : {stats.SegmentsReceived:#,#}"); Console.WriteLine($" Sent : {stats.SegmentsSent:#,#}"); Console.WriteLine($" Retransmitted : {stats.SegmentsResent:#,#}"); Console.WriteLine(); }

O código C# anterior:

  • Chama um método personalizado ShowStatistics para exibir as estatísticas de cada protocolo.
  • O ShowStatistics método chama IPGlobalProperties.GetIPGlobalProperties(), e dependendo do dado NetworkInterfaceComponent , ou ligará IPGlobalProperties.GetIPv4GlobalStatistics() ou IPGlobalProperties.GetIPv6GlobalStatistics().
  • Estão TcpStatistics escritos para a consola.

Determinar se um hospedeiro remoto é acessível

Pode utilizar a Ping classe para determinar se um hospedeiro remoto está ligado, na rede e acessível.

using Ping ping = new(); string hostName = "stackoverflow.com"; PingReply reply = await ping.SendPingAsync(hostName); Console.WriteLine($"Ping status for ({hostName}): {reply.Status}"); if (reply is { Status: IPStatus.Success }) { Console.WriteLine($"Address: {reply.Address}"); Console.WriteLine($"Roundtrip time: {reply.RoundtripTime}"); Console.WriteLine($"Time to live: {reply.Options?.Ttl}"); Console.WriteLine(); }

O código C# anterior:

  • Instantiizar um Ping objeto.
  • Chamadas Ping.SendPingAsync(String) com o "stackoverflow.com" parâmetro do nome anfitrião.
  • O estado do ping está escrito na consola.

Ver também

  • Programação de rede em .NET
  • NetworkInterface

O que é disponibilidade de rede?

Disponibilidade refere-se ao tempo durante o qual uma rede ou serviço está disponível para seus usuários.

O que é a disponibilidade de um sistema?

Disponibilidade é uma medida que indica o percentual de tempo que espera-se que o sistema esteja em funcionamento [SDCP]. Tal medida é calculada como tempo de atividade/(tempo de atividade + tempo de inatividade) (Ver Tabela 2.1 aqui).

O que significa disponibilidade em TI?

A disponibilidade de TI se refere a oferta de infraestrutura adequada e confiável de tecnologia para atender e garantir o desempenho das operações e atividades essenciais das empresas, permitindo que possam ser executadas de forma rápida, eficiente e sem problemas técnicos.

O que é uma rede com alta disponibilidade?

Direto ao ponto: alta disponibilidade (H.A – high availability) é a capacidade de garantir a continuidade de serviços utilizados, mesmo em ocasiões de falhas (por exemplo, de hardware, software, interrupção de energia etc.). Ou seja, as funcionalidades do sistema não podem ser interrompidas.

Toplist

Última postagem

Tag