• Home
  • Chat IA
  • Guru IA
  • Tutores
  • Central de ajuda
Home
Chat IA
Guru IA
Tutores

·

Ciência da Computação ·

Rede de Computadores

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Projeto Prático de Redes com Ns3

4

Projeto Prático de Redes com Ns3

Rede de Computadores

UNIFESP

Tutorial-PFSense-Captive-Portal-Autenticacao-Usuario

1

Tutorial-PFSense-Captive-Portal-Autenticacao-Usuario

Rede de Computadores

UNIP

Relatorio Diagnostico e Planejamento de Atividade Sociocomunitaria

1

Relatorio Diagnostico e Planejamento de Atividade Sociocomunitaria

Rede de Computadores

UVA

Projeto Napster P2P - Sistemas Distribuidos com TCP e UDP

7

Projeto Napster P2P - Sistemas Distribuidos com TCP e UDP

Rede de Computadores

UFABC

Lista de Exercícios RIPv2 - Protocolo de Roteamento Interior

3

Lista de Exercícios RIPv2 - Protocolo de Roteamento Interior

Rede de Computadores

UFERSA

Texto de pré-visualização

Universidade Federal de São Paulo UNIFESP Instituto de Ciência e Tecnologia ICT UC 2617 Redes de Computadores Prof Dr Joahannes Bruno Dias da Costa Projeto Prático Entrega 31 de Janeiro de 2025 1 Resumo Este projeto prático tem como principal objetivo colocar em prática os conceitos aprendidos nas aulas teóricas Tópicos que serão explorados neste projeto Instalação do Simulador de Redes Criação de topologia de rede que envolva diferentes enlaces Enlaces com e sem fio operando conjuntamente Cenário sem e com mobilidade dos nós sem fio Utilização de aplicações com TCP UDP e TCPUDP Medir desempenho da rede 2 Instruções 21 Trabalho a ser feito 1 Este projeto deverá ser desenvolvido em grupos com até quatro estudantes No Classroom da turma Informações Defina seu grupo há um formulário para informarem a composição do grupo 2 Leiam detalhadamente as instruções pode ser necessários outras leituras para entender o trabalho 3 O Professor estará disponível nos dias de atendimento para esclarecer dúvidas quanto ao projeto 4 Este Projeto está dividido em duas partes a Execução de experimentos no simulador de redes Network Simulator ns3 b Relatório técnico do que foi desenvolvido 5 Haverá a necessidade de entregar um relatório com as atividades desenvolvidas Os detalhes do relatório estão na Seção 3 22 Entregáveis As entregas serão pelo Classroom dos arquivos seguindo a seguinte organização de nomes Arquivo do relatório equipexrelatorioredespdf Arquivo de simulação equipexcc por py para os que preferirem utilizar Python 1 23 Data da entrega A data da entrega será no dia 31 de Janeiro de 2025 até às 2359 Deverão submeter os arquivos no Classroom dentro da tarefa do projeto Não precisam duplicar as submissões Uma pessoa por grupo deverá submeter o projeto Recomendase submeter os trabalhos com certa antecedência e não esperar os últimos minutos para a submissão Não serão considerados emails enviados depois da data e hora limite independentemente do motivos do atraso 3 Relatório Após todo o desenvolvimento um relatório deve ser entregue Utilizar o template da Sociedade Brasileira de Computação LATEX1 ou Word2 O relatório deve conter Resumo visão geral sobre o projeto Introdução Descrição do exercício proposto Avaliação de desempenho Metodologia Parâmetros Resultados apresentem gráficos que mostrem o impacto das variações Atraso Vazão Perda de pacotes Discussão sobre os resultados obtidos Detalhe da divisão do trabalho Parágrafo ou tabela detalhando o que cada membro da equipe fez Conclusão explicar os pontos principais do trabalho 4 Desenvolvimento Documentos importantes que devem utilizar para resolução de problemas ns3 Installation LINK ns3 Tutorial LINK ns3 Model Library LINK 41 Atividade 1 Instalação e Configuração do simulador Seguir as indicações da documentação para instalação no seu ambiente Escolha o Sistema Operacional de sua preferência 1httpswwwoverleafcomproject674e4b8981bb8c813a4208b5 2httpswwwsbcorgbrwpcontentuploads202407modelosparapublicaodeartigoszip 2 42 Atividade 2 Construção da simulação A topologia deve conter um host servidor que estará conectado via conexão cabeada a um Access Point AP Nesse ambiente n clientes podem se conectar ao AP definir o SSID do AP como EquipeX onde X é a numeração da sua equipe conforme planilha no Google Classroom para consumir uma aplicação servida pelo host servidor É importante variar o número de clientes para ficar visível o impacto que isso traz para a rede A Figura 1 mostra um exemplo dessa topologia Além disso algumas variações de cenário devem ser implementadas e consideradas tais como 1 Cenário onde os nós sem fio clientes não possuem mobilidade 2 Cenário onde os nós sem fio clientes possuem mobilidade Para esse caso considerar a mobilidade de pessoas andando aleatoriamente em uma região 3 Cenário com aplicação que utiliza UDP 4 Cenário com aplicação que utiliza TCP 5 Cenário onde 50 dos nós utilizam aplicação UDP e 50 aplicação TCP 6 Em todos os casos variar o número de clientes em 1 2 4 8 16 e 32 10110 s0 AP 19216800 c0 c1 c2 c3 cn Figura 1 Cenário a ser considerado 5 Avaliação O projeto abrange a avaliação do relatório escrita estruturação redação etc e as tarefas realizadas prática de maneira conjunta Serão avaliados o relatório entregue assim como o trabalho de desenvol vimento através dos códigos O detalhe da avaliação é apresentado na Tabela 1 Tabela 1 Avaliação do projeto Item na avaliação Introdução e Descrição do exercício proposto 10 Avaliação de desempenho 20 Resultados obtidos 30 Discussão dos resultados 30 Conclusão 10 6 Considerações finais Revisem a documentação oficial do ns33 para poder resolver problemas Os fóruns online também são bons aliados 3nsnamorg 3 Estabeleçam metas iniciais e etapas para avançar no projeto A tarefa pode demorar mais se não for organizadoa no uso de seu tempo Não comecem o projeto dias antes da submissão Planejem a entrega e façam avanços oportunamente 4 Analise de Desempenho em Redes WiFi Adhoc Utilizando Protocolos UDP e TCP 1 Abstract This report presents the performance analysis of Adhoc WiFi net works using UDP and TCP protocols Various scenarios were simulated includ ing networks with and without node mobility and applications utilizing UDP TCP and a combination of both The simulations were conducted using the Net work Simulator 3 ns3 varying the number of clients and distances between nodes Metrics such as latency throughput and packet loss were evaluated to understand the impact of different configurations on network performance Resumo Este relatorio apresenta a analise de desempenho de redes WiFi Ad hoc utilizando os protocolos UDP e TCP Diversos cenarios foram simulados incluindo redes com e sem mobilidade dos nos e aplicacoes que utilizam UDP TCP e uma combinacao de ambos As simulacoes foram realizadas utilizando o Network Simulator 3 ns3 variando o numero de clientes e as distˆancias entre os nos Metricas como atraso vazao e perda de pacotes foram avaliadas para compreender o impacto das diferentes configuracoes no desempenho da rede 1 Introducao As redes de computadores desempenham um papel crucial na comunicacao e trans ferˆencia de dados em diversos contextos desde ambientes domesticos ate infraestruturas corporativas complexas Dentro deste espectro as redes sem fio Wireless Networks destacamse por sua flexibilidade e mobilidade permitindo a comunicacao sem a neces sidade de conexoes fısicas As redes Adhoc em particular tˆem ganhado relevˆancia devido a sua capacidade de formar redes temporarias e autoorganizadas sem a necessidade de pontos de acesso centralizados Essa caracterıstica torna as redes Adhoc ideais para cenarios onde a in fraestrutura de rede fixa nao esta disponıvel ou e impraticavel como em operacoes de resgate eventos temporarios ou ambientes de teste e pesquisa Os protocolos de transporte UDP User Datagram Protocol e TCP Transmission Control Protocol sao fundamentais para a comunicacao de dados em redes de computa dores Enquanto o UDP e preferido em aplicacoes que requerem baixa latˆencia e podem tolerar alguma perda de pacotes como streaming de vıdeo e jogos online o TCP e uti lizado em aplicacoes que exigem confiabilidade e garantia de entrega de dados como transferˆencia de arquivos e navegacao na web Este trabalho tem como objetivo analisar o desempenho de redes WiFi Adhoc utilizando os protocolos UDP e TCP investigando como diferentes cenarios incluindo a mobilidade dos nos e a combinacao de diferentes tipos de aplicacoes afetam metricas essenciais como atraso vazao e perda de pacotes As simulacoes foram realizadas uti lizando o Network Simulator 3 ns3 permitindo a criacao de ambientes controlados para a avaliacao dos diferentes parˆametros 2 Descricao do Exercıcio Proposto O projeto pratico proposto para a disciplina de Redes de Computadores visa aplicar os conceitos teoricos aprendidos em aula atraves da implementacao e analise de uma rede simulada utilizando o ns3 A tarefa esta dividida em duas partes principais a execucao de experimentos no simulador e a elaboracao de um relatorio tecnico detalhado 21 Configuracao Experimental As simulacoes realizadas abrangem diversos cenarios para avaliar o desempenho das redes WiFi Adhoc sob diferentes condicoes Os cenarios considerados incluem 1 Cenario sem Mobilidade Os nos sem fio clientes permanecem estaticos du rante a simulacao 2 Cenario com Mobilidade Os nos sem fio clientes movimentamse aleatoria mente em uma regiao simulando a mobilidade de pessoas andando 3 Aplicacao UDP Utilizacao do protocolo UDP para transmissao de dados 4 Aplicacao TCP Utilizacao do protocolo TCP para transmissao de dados 5 Aplicacao Mista 50 dos nos utilizam aplicacoes UDP e 50 utilizam aplicacoes TCP 6 Variacao do Numero de Clientes O numero de clientes varia entre 1 2 4 8 16 32 para observar o impacto no desempenho da rede Cada cenario sera executado em diferentes configuracoes variando o numero de clientes e as distˆancias entre os nos As condicoes especıficas do experimento incluem Tamanho do Pacote 500 Bytes Tempo de Execucao 150 segundos Distˆancias Entre os Nos metros 10 20 30 40 50 60 70 80 90 100 110 120 Numero de Testes por Distˆancia 10 para cada configuracao 22 Objetivos Os objetivos especıficos deste projeto sao Configurar e executar simulacoes no ns3 para diferentes cenarios de rede Adhoc Coletar dados sobre atraso vazao e perda de pacotes para cada cenario e configuracao Analisar os resultados obtidos para identificar tendˆencias e impactos das variacoes nos parˆametros de rede Elaborar um relatorio tecnico que documente todo o processo desde a configuracao das simulacoes ate a interpretacao dos resultados 3 Avaliacao de Desempenho Nesta secao detalhamos a metodologia adotada para a avaliacao do desempenho das redes simuladas bem como os parˆametros considerados durante os experimentos 31 Metodologia A avaliacao de desempenho foi conduzida utilizando o simulador de redes ns3 uma ferramenta amplamente utilizada na pesquisa e ensino de redes de computadores devido a sua flexibilidade e precisao na modelagem de diferentes tecnologias e protocolos Para cada cenario especificado foram realizados testes variando o numero de clientes e a distˆancia entre os nos Cada teste foi executado 10 vezes para garantir a consistˆencia dos resultados e permitir uma analise estatıstica mais robusta As simulacoes foram configuradas para reproduzir um ambiente realista de comunicacao WiFi Adhoc onde os nos podem permanecer estaticos ou se movimentarem aleatoriamente depen dendo do cenario As principais etapas da metodologia incluem 1 Configuracao da Simulacao Definicao da topologia da rede parˆametros do protocolo de transporte UDP ou TCP e posicionamento dos nos estaticos ou moveis 2 Execucao das Simulacoes Rodar as simulacoes para cada combinacao de cenario numero de clientes e distˆancia coletando os dados gerados 3 Coleta de Dados Extracao das metricas de atraso vazao e perda de pacotes a partir dos resultados das simulacoes 4 Analise dos Resultados Processamento estatıstico dos dados coletados para identificar padroes e tendˆencias 5 Visualizacao dos Resultados Criacao de graficos que ilustram o impacto das variacoes de distˆancia e numero de clientes nas metricas de desempenho 32 Parˆametros Os principais parˆametros considerados no experimento sao Protocolos de Transporte UDP TCP e combinacao mista 50 UDP e 50 TCP Tamanho do Pacote 500 Bytes Tempo de Execucao da Simulacao 150 segundos Distˆancias Entre os Nos 10 20 30 40 50 60 70 80 90 100 110 120 metros Numero de Clientes 1 2 4 8 16 32 Mobilidade Estatica ou Dinˆamica Random Walk Numero de Testes por Distˆancia 10 Alem destes outros parˆametros de configuracao da rede como taxa de transmissao Data Rate modelo de propagacao Path Loss Model e ambiente de mobilidade foram definidos de acordo com as caracterısticas de uma rede WiFi Adhoc tıpica 4 Resultados Nesta secao apresentamos os resultados obtidos nas simulacoes acompanhados de graficos que ilustram o impacto das variacoes de distˆancia e numero de clientes nas metricas de desempenho atraso vazao e perda de pacotes 41 Atraso Latˆencia O atraso medio foi calculado como o tempo medio que um pacote leva para ser transmi tido do no remetente ao no receptor Observase que conforme a distˆancia entre os nos aumenta o atraso tambem tende a aumentar devido ao maior tempo de propagacao dos sinais e possıveis interferˆencias no meio Figure 1 Atraso medio em func ao da distˆancia entre os nos 42 Vazao Throughput A vazao ou throughput representa a taxa de transferˆencia efetiva de dados na rede me dida em Mbps Megabits por segundo A analise mostra que a vazao diminui a medida que a distˆancia entre os nos aumenta refletindo a reducao na eficiˆencia da transmissao de dados devido a fatores como degradacao do sinal e aumento da taxa de erro de bit Figure 2 Vazao em Mbps em func ao da distˆancia entre os nos 43 Perda de Pacotes Packet Loss A taxa de perda de pacotes indica a porcentagem de pacotes transmitidos que nao foram recebidos com sucesso pelo no receptor Os resultados demonstram que a perda de pacotes aumenta com a distˆancia entre os nos possivelmente devido a deterioracao do sinal e a maior interferˆencia no ambiente de transmissao Figure 3 Taxa de perda de pacotes em func ao da distˆancia entre os nos 44 Discussao sobre os Resultados Obtidos Os resultados das simulacoes indicam uma clara correlacao entre a distˆancia entre os nos e o desempenho da rede em termos de atraso vazao e perda de pacotes A medida que a distˆancia aumenta o atraso medio tambem aumenta o que pode ser atribuıdo ao maior tempo necessario para que os sinais percorram a distˆancia maior e as possıveis interferˆencias que atrasam a transmissao dos dados A vazao diminui com o aumento da distˆancia refletindo a menor eficiˆencia na transferˆencia de dados Isso ocorre devido a diminuicao da qualidade do sinal em distˆancias maiores que leva a uma maior taxa de erros de bit e consequentemente a retransmissoes frequentes reduzindo a taxa de transferˆencia efetiva A perda de pacotes tambem aumenta com a distˆancia indicando que uma proporcao maior de pacotes transmitidos nao esta sendo recebida com sucesso Essa perda pode ser causada por fatores como atenuacao do sinal interferˆencias ambientais e limitacoes fısicas do meio de transmissao Alem disso a variacao no numero de clientes tambem impacta significativamente as metricas de desempenho Com o aumento do numero de clientes observase um au mento no atraso e na perda de pacotes bem como uma diminuicao na vazao devido a maior competicao pelo meio de transmissao e ao aumento da carga na rede Os diferentes protocolos de transporte tambem mostram comportamentos distin tos O UDP por ser um protocolo sem conexao tende a apresentar menor latˆencia mas maior perda de pacotes em comparacao ao TCP que oferece garantias de entrega ao custo de maior latˆencia e menor vazao devido aos mecanismos de controle de fluxo e retrans missao de pacotes perdidos Esses resultados sao consistentes com a teoria de redes sem fio onde a qualidade da conexao esta diretamente relacionada a distˆancia e as condicoes do meio de trans missao A degradacao do sinal em distˆancias maiores afeta diretamente a performance da rede tornandoa menos confiavel e eficiente 5 Conclusao Este trabalho permitiu uma compreensao aprofundada sobre o impacto da distˆancia e do numero de clientes em redes WiFi Adhoc utilizando os protocolos UDP e TCP As simulacoes realizadas no ns3 revelaram que Aumento da Distˆancia Resulta em maior atraso reducao da vazao e aumento na perda de pacotes comprometendo o desempenho da rede Aumento do Numero de Clientes Amplifica os efeitos negativos da distˆancia alem de introduzir maior competicao pelo meio de transmissao elevando ainda mais o atraso e a perda de pacotes Protocolos de Transporte O UDP apresenta menor latˆencia mas maior perda de pacotes sendo adequado para aplicacoes que toleram alguma perda O TCP por outro lado garante a entrega dos dados porem com maior latˆencia e menor vazao Esses achados sao fundamentais para o planejamento e otimizacao de redes sem fio Adhoc especialmente em ambientes que requerem alta confiabilidade e eficiˆencia na comunicacao de dados A partir deste estudo concluise que a distˆancia entre os nos e o numero de clientes sao fatores crıticos que devem ser cuidadosamente considerados na configuracao e implementacao de redes WiFi Adhoc para garantir um desempenho satisfatorio 6 Codigo da Simulacao A seguir apresentamos o codigo utilizado para a simulacao no ns3 1 ProjetoRedescc 2 include ns3coremoduleh 3 include ns3networkmoduleh 4 include ns3internetmoduleh 5 include ns3wifimoduleh 6 include ns3mobilitymoduleh 7 include ns3applicationsmoduleh 8 9 using namespace ns3 10 11 Vari veis globais para rastreamento de pacotes 12 static uint32t pacotesEnviados 0 13 static uint32t pacotesRecebidos 0 14 15 F u n o de callback para rastrear pacotes enviados 16 void EnvioCallback Ptrconst Packet packet 17 18 pacotesEnviados 19 20 21 F u n o de callback para rastrear pacotes recebidos 22 void RecebimentoCallback Ptrconst Packet packet 23 24 pacotesRecebidos 25 26 27 NSLOGCOMPONENTDEFINE ProjetoRedes 28 29 int 30 main int argc char argv 31 32 Par metros de configura o 33 bool mobilidade false 34 stdstring protocolo UDP O p e s UDP TCP Misto 35 uint32t nClientes 1 36 double distancia 100 metros 37 uint32t tamanhoPacote 500 Bytes 38 double tempoExecucao 1500 segundos 39 stdstring ssidStr EquipeX 40 41 Parsing de par metros 42 CommandLine cmd 43 cmdAddValue mobilidade Ativa ou desativa a mobilidade dos n s clientes mobilidade 44 cmdAddValue protocolo Protocolo de transporte UDP TCP ou Misto protocolo 45 cmdAddValue nClientes N mero de clientes na rede nClientes 46 cmdAddValue distancia Dist ncia entre os n s metros distancia 47 cmdAddValue tamanhoPacote Tamanho do pacote Bytes tamanhoPacote 48 cmdAddValue tempoExecucao Tempo de e x e c u o da s i m u l a o segundos tempoExecucao 49 cmdParse argc argv 50 51 V a l i d a o de par metros 52 if protocolo UDP protocolo TCP protocolo Misto 53 stdcerr Protocolo inv lido Use UDP TCP ou Misto stdendl 54 return 1 55 56 57 C r i a o dos n s 1 servidor AP e nClientes clientes 58 NodeContainer nodes 59 nodesCreate 1 nClientes 1 servidor nClientes 60 61 I n s t a l a o da pilha de protocolos de internet 62 InternetStackHelper stack 63 stackInstall nodes 64 65 Configura o do canal sem fio 66 YansWifiChannelHelper channel YansWifiChannelHelperDefault 67 YansWifiPhyHelper phy YansWifiPhyHelperDefault 68 phySetChannel channelCreate 69 70 Configura o do WiFi 71 WifiHelper wifi 72 wifiSetRemoteStationManager ns3AarfWifiManager 73 74 Configura o do MAC para os clientes STA 75 WifiMacHelper mac 76 Ssid ssid SsidCreate ssidStr 77 78 macSetType ns3StaWifiMac 79 Ssid SsidValue ssid 80 ActiveProbing BooleanValue false 81 82 NetDeviceContainer staDevices 83 staDevices wifiInstall phy mac nodesGet 1 nClientes 84 85 Configura o do MAC para o servidor AP 86 macSetType ns3ApWifiMac 87 Ssid SsidValue ssid 88 89 NetDeviceContainer apDevice 90 apDevice wifiInstall phy mac nodesGet 0 91 92 Configura o de mobilidade 93 MobilityHelper mobility 94 PtrListPositionAllocator positionAlloc CreateObject ListPositionAllocator 95 positionAllocAdd Vector 00 00 00 Servidor no ponto 000 96 97 Distribui o dos clientes ao redor do servidor 98 double anguloIncremento 3600 nClientes 99 for uint32t i 1 i nClientes i 100 double angulo anguloIncremento i 1 101 double x distancia cos angulo MPI 1800 102 double y distancia sin angulo MPI 1800 103 positionAllocAdd Vector x y 00 104 105 106 if mobilidade 107 Configura o de mobilidade com Random Walk 108 mobilitySetMobilityModel ns3RandomWalk2dMobilityModel 109 Bounds RectangleValue Rectangle 150 150 150 150 110 Speed StringValue ns3 ConstantRandomVariableConstant 10 111 else 112 Configura o de mobilidade est tica 113 mobilitySetMobilityModel ns3ConstantPositionMobilityModel 114 115 116 mobilitySetPositionAllocator positionAlloc 117 mobilityInstall nodes 118 119 A t r i b u i o de endere os IP 120 Ipv4AddressHelper address 121 addressSetBase 10110 2552552550 122 123 Ipv4InterfaceContainer interfaces 124 interfaces addressAssign apDevice 125 interfacesAdd addressAssign staDevices 126 127 D e f i n i o dos tipos de a p l i c a e s 128 ApplicationContainer serverApps 129 ApplicationContainer clientApps 130 131 if protocolo UDP protocolo Misto 132 A p l i c a o UDP para clientes que utilizam UDP 133 for uint32t i 1 i nClientes i 134 if protocolo Misto i nClientes 2 135 continue Clientes com TCP 136 137 UdpClientHelper client interfacesGetAddress 0 8080 138 clientSetAttribute MaxPackets UintegerValue 0 Pacotes ilimitados 139 clientSetAttribute Interval TimeValue Seconds 001 Intervalo entre pacotes 140 clientSetAttribute PacketSize UintegerValue tamanhoPacote 141 142 clientAppsAdd clientInstall nodesGet i 143 144 145 A p l i c a o UDP no servidor 146 UdpServerHelper server 8080 147 serverAppsAdd serverInstall nodesGet 0 148 serverAppsStart Seconds 10 149 serverAppsStop Seconds tempoExecucao 10 150 151 Conectar callbacks para rastrear pacotes enviados e recebidos 152 for uint32t i 1 i nClientes i 153 if protocolo Misto i nClientes 2 154 continue Clientes com TCP 155 156 PtrUdpClient udpClient DynamicCastUdpClient clientAppsGet i 1 157 udpClientTraceConnectWithoutContext Tx MakeCallback EnvioCallback 158 159 160 PtrUdpServer udpServer DynamicCastUdpServer serverApps Get 0 161 udpServerTraceConnectWithoutContext Rx MakeCallback RecebimentoCallback 162 163 164 if protocolo TCP protocolo Misto 165 A p l i c a o TCP para clientes que utilizam TCP 166 for uint32t i 1 i nClientes i 167 if protocolo Misto i nClientes 2 168 continue Clientes com UDP 169 170 A p l i c a o TCP BulkSend 171 BulkSendHelper source ns3TcpSocketFactory InetSocketAddress interfacesGetAddress 0 8081 172 sourceSetAttribute MaxBytes UintegerValue 0 Pacotes ilimitados 173 ApplicationContainer sourceApps sourceInstall nodesGet i 174 sourceAppsStart Seconds 20 175 sourceAppsStop Seconds tempoExecucao 10 176 177 A p l i c a o TCP PacketSink 178 PacketSinkHelper sink ns3TcpSocketFactory InetSocketAddress Ipv4AddressGetAny 8081 179 ApplicationContainer sinkApps sinkInstall nodesGet 0 180 sinkAppsStart Seconds 00 181 sinkAppsStop Seconds tempoExecucao 10 182 183 184 185 Habilitar o roteamento 186 Ipv4GlobalRoutingHelperPopulateRoutingTables 187 188 In cio da s i m u l a o 189 SimulatorStop Seconds tempoExecucao 190 SimulatorRun 191 192 Coleta de m tricas 193 double vazao 00 194 double perdaPacotes 00 195 196 if protocolo UDP protocolo Misto 197 PtrUdpServer udpServer DynamicCastUdpServer serverApps Get 0 198 vazao udpServerGetTotalRx 8 tempoExecucao 1e6 Mbps 199 if pacotesEnviados 0 200 perdaPacotes 1000 pacotesEnviados pacotesRecebidos pacotesEnviados 201 202 203 204 stdcout Dist ncia distancia metros stdendl 205 stdcout N mero de Clientes nClientes stdendl 206 stdcout Protocolo protocolo stdendl 207 stdcout Vaz o vazao Mbps stdendl 208 stdcout Perda de pacotes perdaPacotes std endl 209 210 SimulatorDestroy 211 return 0 212 61 Descricao do Codigo A seguir descrevemos os principais componentes e como configurar cada cenario Parˆametros de Configuracao Utiliza a classe CommandLine para receber parˆametros de linha de comando que definem o cenario da simulacao incluindo mobilidade protocolo de transporte numero de clientes e distˆancia entre os nos Criacao dos Nos Cria um no servidor AP e um numero variavel de nos clientes de acordo com o parˆametro nClientes Configuracao do Canal Sem Fio Define o canal sem fio padrao do ns3 para simular a comunicacao WiFi Configuracao do WiFi Configura os dispositivos de rede para os clientes STA e para o servidor AP com o SSID definido Configuracao de Mobilidade Dependendo do parˆametro mobilidade os nos clientes podem permanecer estaticos ou se movimentar aleatoriamente utilizando o modelo RandomWalk2dMobilityModel Atribuicao de Enderecos IP Utiliza o Ipv4AddressHelper para atribuir enderecos IP aos dispositivos de rede Definicao das Aplicacoes UDP Utiliza o UdpClientHelper e UdpServerHelper para con figurar as aplicacoes de envio e recepcao de pacotes UDP TCP Utiliza o BulkSendHelper para enviar dados e PacketSinkHelper para receber dados via TCP Misto Combinacao de aplicacoes UDP e TCP onde 50 dos clientes utilizam UDP e os demais utilizam TCP Rastreamento de Pacotes Implementa callbacks para rastrear o numero de pa cotes enviados e recebidos permitindo o calculo da taxa de perda de pacotes Coleta de Metricas Calcula a vazao throughput e a perda de pacotes com base nos dados coletados durante a simulacao Execucao e Finalizacao Executa a simulacao por 150 segundos e exibe as metricas de desempenho no console 62 Executando os Cenarios Para executar os diferentes cenarios utilize os seguintes comandos no terminal ajustando os parˆametros conforme necessario 621 1 Cenario sem Mobilidade e Aplicacao UDP 1 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes1 distancia10 622 2 Cenario com Mobilidade e Aplicacao UDP 1 waf run ProjetoRedes mobilidadetrue protocoloUDP nClientes 1 distancia10 623 3 Cenario com Aplicacao TCP 1 waf run ProjetoRedes mobilidadefalse protocoloTCP nClientes1 distancia10 624 4 Cenario com Aplicacao Mista 50 UDP 50 TCP 1 waf run ProjetoRedes mobilidadefalse protocoloMisto nClientes2 distancia10 625 5 Variacao do Numero de Clientes Para variar o numero de clientes altere o parˆametro nClientes para os valores 1 2 4 8 16 32 em cada execucao 1 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes4 distancia20 63 Analise dos Resultados Apos a execucao das simulacoes os resultados serao exibidos no console e podem ser redirecionados para arquivos de log para posterior analise Utilize ferramentas como Python com a biblioteca Matplotlib para gerar os graficos ilustrativos com base nos dados coletados 7 Referˆencias References 1 ns3 Documentation Network Simulator 3 Disponıvel em httpswwwnsnam orgdocs 2 Postel J RFC 768 User Datagram Protocol Disponıvel em httpstools ietforghtmlrfc768 3 Stevens WR TCPIP Illustrated Volume 1 The Protocols AddisonWesley 1994 4 Gast M 80211 Wireless Networks The Definitive Guide OReilly Media 2005 5 Akyildiz IF Su W Sankarasubramaniam Y and Cayirci E A Survey on Mobile Ad Hoc Network Routing Protocols IEEE Communications Surveys Tutorials vol 4 no 2 pp 140183 2002 6 Kurose JF Ross KW Computer Networking A TopDown Approach Pearson 2017 Codigo Redes Janeiro 2025 1 Introducao 2 Codigo da Simulacao A seguir apresentamos o codigo completo utilizado para as simulacoes no Net work Simulator 3 ns3 adaptado para abranger todos os cenarios especi ficados O codigo e modular e permite a configuracao dos diferentes cenarios atraves de parˆametros de linha de comando facilitando a execucao de simulacoes variadas sem a necessidade de modificar o codigofonte manualmente a cada vez 21 Descricao Geral do Codigo O codigo esta estruturado para simular redes WiFi Adhoc utilizando os pro tocolos UDP TCP e uma combinacao mista de ambos Atraves de parˆametros de linha de comando e possıvel definir a mobilidade dos nos o protocolo de transporte a ser utilizado o numero de clientes na rede e a distˆancia entre os nos As principais metricas avaliadas sao atraso latˆencia vazao throughput e perda de pacotes packet loss 22 Codigo Fonte 1 include ns3core moduleh 2 include ns3network moduleh 3 include ns3internet moduleh 4 include ns3wifi moduleh 5 include ns3mobility moduleh 6 include ns3applications moduleh 7 8 using namespace ns3 9 10 V a r i v e i s globais para rastreamento de pacotes 11 static uint32t pacotesEnviados 0 12 static uint32t pacotesRecebidos 0 13 14 F u n o de callback para rastrear pacotes enviados 1 15 void EnvioCallback Ptr const Packet packet 16 17 pacotesEnviados 18 19 20 F u n o de callback para rastrear pacotes recebidos 21 void RecebimentoCallback Ptr const Packet packet 22 23 pacotesRecebidos 24 25 26 NSLOGCOMPONENTDEFINE ProjetoRedes 27 28 int 29 main int argc char argv 30 31 P a r m e t r o s de c o n f i g u r a o 32 bool mobilidade false Controle de mobilidade dos clientes 33 std string protocolo UDP O p e s UDP TCP Misto 34 uint32t nClientes 1 N m e r o de clientes na rede 35 double distancia 100 D i s t n c i a entre os n s metros 36 uint32t tamanhoPacote 500 Tamanho do pacote Bytes 37 double tempoExecucao 1500 Tempo de e x e c u o da s i m u l a o segundos 38 std string ssidStr EquipeX SSID da rede Wi Fi 39 40 Parsing de p a r m e t r o s de linha de comando 41 CommandLine cmd 42 cmdAddValue mobilidade Ativa ou desativa a mobilidade dos n s clientes mobilidade 43 cmdAddValue protocolo Protocolo de transporte UDP TCP ou Misto protocolo 44 cmdAddValue nClientes N m e r o de clientes na rede nClientes 45 cmdAddValue distancia D i s t n c i a entre os n s metros distancia 46 cmdAddValue tamanhoPacote Tamanho do pacote Bytes tamanhoPacote 47 cmdAddValue tempoExecucao Tempo de e x e c u o da s i m u l a o segundos tempoExecucao 48 cmdParse argc argv 49 50 V a l i d a o dos p a r m e t r o s 51 if protocolo UDP protocolo TCP protocolo Misto 2 52 std cerr Protocolo i n v l i d o Use UDP TCP ou Misto std endl 53 return 1 54 55 56 C r i a o dos n s 1 servidor AP e nClientes clientes 57 NodeContainer nodes 58 nodesCreate 1 nClientes 1 servidor nClientes 59 60 I n s t a l a o da pilha de protocolos de internet 61 InternetStackHelper stack 62 stackInstall nodes 63 64 C o n f i g u r a o do canal sem fio 65 YansWifiChannelHelper channel YansWifiChannelHelper Default 66 YansWifiPhyHelper phy YansWifiPhyHelper Default 67 phySetChannel channelCreate 68 69 C o n f i g u r a o do Wi Fi 70 WifiHelper wifi 71 wifi SetRemoteStationManager ns3 AarfWifiManager 72 73 C o n f i g u r a o do MAC para os clientes STA 74 WifiMacHelper mac 75 Ssid ssid Ssid Create ssidStr 76 77 macSetType ns3 StaWifiMac 78 Ssid SsidValue ssid 79 ActiveProbing BooleanValue false 80 81 NetDeviceContainer staDevices 82 staDevices wifiInstall phy mac NodeContainer nodesGet 1 nodesGet nClientes 83 84 C o n f i g u r a o do MAC para o servidor AP 85 macSetType ns3 ApWifiMac 86 Ssid SsidValue ssid 87 88 NetDeviceContainer apDevice 89 apDevice wifiInstall phy mac nodesGet 0 90 91 C o n f i g u r a o de mobilidade 92 MobilityHelper mobility 93 Ptr ListPositionAllocator positionAlloc CreateObject ListPositionAllocator 94 positionAlloc Add Vector 00 00 00 Servidor no ponto 000 95 3 96 D i s t r i b u i o dos clientes ao redor do servidor 97 double anguloIncremento 3600 nClientes 98 for uint32t i 1 i nClientes i 99 double angulo anguloIncremento i 1 100 double x distancia cos angulo MPI 1800 101 double y distancia sin angulo MPI 1800 102 positionAlloc Add Vector x y 00 103 104 105 if mobilidade 106 C o n f i g u r a o de mobilidade com Random Walk 107 mobility SetMobilityModel ns3 RandomWalk2dMobilityModel 108 Bounds RectangleValue Rectangle 150 150 150 150 109 Speed StringValue ns3 ConstantRandomVariable Constant 10 110 else 111 C o n f i g u r a o de mobilidade e s t t i c a 112 mobility SetMobilityModel ns3 ConstantPositionMobilityModel 113 114 115 mobility SetPositionAllocator positionAlloc 116 mobilityInstall nodes 117 118 A t r i b u i o de e n d e r e o s IP 119 Ipv4AddressHelper address 120 addressSetBase 10110 2552552550 121 122 Ipv4InterfaceContainer interfaces 123 interfaces addressAssign apDevice 124 interfacesAdd addressAssign staDevices 125 126 D e f i n i o das a p l i c a e s 127 ApplicationContainer serverApps 128 ApplicationContainer clientApps 129 130 if protocolo UDP protocolo Misto 131 A p l i c a o UDP para clientes que utilizam UDP 132 for uint32t i 1 i nClientes i 133 if protocolo Misto i nClientes 2 134 continue Clientes com TCP 135 136 UdpClientHelper client interfacesGetAddress 0 8080 4 137 clientSetAttribute MaxPackets UintegerValue 0 Pacotes ilimitados 138 clientSetAttribute Interval TimeValue Seconds 001 Intervalo entre pacotes 139 clientSetAttribute PacketSize UintegerValue tamanhoPacote 140 141 clientAppsAdd clientInstall nodesGet i 142 143 144 A p l i c a o UDP no servidor 145 UdpServerHelper server 8080 146 serverAppsAdd serverInstall nodesGet 0 147 serverAppsStart Seconds 10 148 serverAppsStop Seconds tempoExecucao 10 149 150 Conectar callbacks para rastrear pacotes enviados e recebidos 151 for uint32t i 1 i nClientes i 152 if protocolo Misto i nClientes 2 153 continue Clientes com TCP 154 155 Ptr UdpClient udpClient DynamicCast UdpClient clientAppsGet i 1 156 udpClient TraceConnectWithoutContext Tx MakeCallback EnvioCallback 157 158 159 Ptr UdpServer udpServer DynamicCast UdpServer serverAppsGet 0 160 udpServer TraceConnectWithoutContext Rx MakeCallback RecebimentoCallback 161 162 163 if protocolo TCP protocolo Misto 164 A p l i c a o TCP para clientes que utilizam TCP 165 for uint32t i 1 i nClientes i 166 if protocolo Misto i nClientes 2 167 continue Clientes com UDP 168 169 A p l i c a o TCP BulkSend 170 BulkSendHelper source ns3 TcpSocketFactory InetSocketAddress interfacesGetAddress 0 8081 171 sourceSetAttribute MaxBytes UintegerValue 0 Pacotes ilimitados 172 ApplicationContainer sourceApps sourceInstall nodesGet i 173 sourceAppsStart Seconds 20 5 174 sourceAppsStop Seconds tempoExecucao 10 175 176 A p l i c a o TCP PacketSink 177 PacketSinkHelper sink ns3 TcpSocketFactory InetSocketAddress Ipv4Address GetAny 8081 178 ApplicationContainer sinkApps sinkInstall nodesGet 0 179 sinkAppsStart Seconds 00 180 sinkAppsStop Seconds tempoExecucao 10 181 182 183 184 Habilitar o roteamento 185 Ipv4GlobalRoutingHelper PopulateRoutingTables 186 187 I n c i o da s i m u l a o 188 Simulator Stop Seconds tempoExecucao 189 Simulator Run 190 191 Coleta de m t r i c a s 192 double vazao 00 193 double perdaPacotes 00 194 195 if protocolo UDP protocolo Misto 196 Ptr UdpServer udpServer DynamicCast UdpServer serverAppsGet 0 197 vazao udpServer GetTotalRx 8 tempoExecucao 1e6 Mbps 198 if pacotesEnviados 0 199 perdaPacotes 1000 pacotesEnviados pacotesRecebidos pacotesEnviados 200 201 202 203 std cout std endl 204 std cout C o n f i g u r a o da S i m u l a o std endl 205 std cout Protocolo protocolo std endl 206 std cout N m e r o de Clientes nClientes std endl 207 std cout D i s t n c i a entre os N s distancia metros std endl 208 std cout Tamanho do Pacote tamanhoPacote Bytes std endl 209 std cout Tempo de E x e c u o tempoExecucao segundos std endl 210 std cout V a z o vazao Mbps std endl 6 211 std cout Perda de Pacotes perdaPacotes std endl 212 std cout std endl 213 214 Simulator Destroy 215 return 0 216 Listing 1 Codigo Completo para Simulacoes no ns3 23 Detalhamento do Codigo A seguir fornecemos uma explicacao detalhada das principais partes do codigo para facilitar a compreensao de sua funcionalidade e estrutura 231 Inclusao de Modulos Necessarios 1 include ns3core moduleh 2 include ns3network moduleh 3 include ns3internet moduleh 4 include ns3wifi moduleh 5 include ns3mobility moduleh 6 include ns3applications moduleh 7 8 using namespace ns3 Listing 2 Inclusao de Modulos no ns3 Essas linhas incluem os modulos essenciais do ns3 que fornecem as funcional idades basicas para simular redes como gerenciamento de pacotes pilha de pro tocolos de internet simulacao de redes WiFi mobilidade dos nos e aplicacoes de rede UDP e TCP 232 Variaveis Globais para Rastreamento de Pacotes 1 static uint32t pacotesEnviados 0 2 static uint32t pacotesRecebidos 0 Listing 3 Variaveis Globais para Rastreamento de Pacotes Essas variaveis sao usadas para contar o numero total de pacotes enviados e recebidos durante a simulacao permitindo o calculo da taxa de perda de pacotes 233 Funcoes de Callback para Rastreamento 7 1 void EnvioCallback Ptr const Packet packet 2 3 pacotesEnviados 4 5 6 void RecebimentoCallback Ptr const Packet packet 7 8 pacotesRecebidos 9 Listing 4 Funcoes de Callback para Rastreamento Essas funcoes sao chamadas automaticamente pelo ns3 sempre que um pa cote e enviado ou recebido incrementando os contadores correspondentes 234 Definicao do Componente de Log 1 NSLOGCOMPONENTDEFINE ProjetoRedes Listing 5 Definicao do Componente de Log Esta linha define um componente de log para a simulacao permitindo o uso de funcionalidades de logging do ns3 para depuracao e monitoramento 235 Funcao Principal main A funcao main e onde toda a configuracao da simulacao e realizada A seguir descreveremos cada parte principal dessa funcao Parˆametros de Configuracao 1 bool mobilidade false Controle de mobilidade dos clientes 2 std string protocolo UDP O p e s UDP TCP Misto 3 uint32t nClientes 1 N m e r o de clientes na rede 4 double distancia 100 D i s t n c i a entre os n s metros 5 uint32t tamanhoPacote 500 Tamanho do pacote Bytes 6 double tempoExecucao 1500 Tempo de e x e c u o da s i m u l a o segundos 7 std string ssidStr EquipeX SSID da rede Wi Fi Listing 6 Parˆametros de Configuracao Esses parˆametros permitem a personalizacao da simulacao atraves de argu mentos de linha de comando facilitando a execucao de diferentes cenarios sem modificar o codigofonte 8 Parsing de Parˆametros de Linha de Comando 1 CommandLine cmd 2 cmdAddValue mobilidade Ativa ou desativa a mobilidade dos n s clientes mobilidade 3 cmdAddValue protocolo Protocolo de transporte UDP TCP ou Misto protocolo 4 cmdAddValue nClientes N m e r o de clientes na rede nClientes 5 cmdAddValue distancia D i s t n c i a entre os n s metros distancia 6 cmdAddValue tamanhoPacote Tamanho do pacote Bytes tamanhoPacote 7 cmdAddValue tempoExecucao Tempo de e x e c u o da s i m u l a o segundos tempoExecucao 8 cmdParse argc argv Listing 7 Parsing de Parˆametros de Linha de Comando Esta secao utiliza a classe CommandLine para permitir que os parˆametros sejam definidos no momento da execucao da simulacao proporcionando flexi bilidade na configuracao dos cenarios Validacao dos Parˆametros 1 if protocolo UDP protocolo TCP protocolo Misto 2 std cerr Protocolo i n v l i d o Use UDP TCP ou Misto std endl 3 return 1 4 Listing 8 Validacao dos Parˆametros Esta verificacao garante que apenas protocolos validos sejam selecionados evitando erros de configuracao Criacao dos Nos 1 NodeContainer nodes 2 nodesCreate 1 nClientes 1 servidor nClientes Listing 9 Criacao dos Nos Aqui um no servidor Access Point AP e um numero variavel de nos clientes sao criados O no servidor atuara como o ponto central da rede Adhoc Instalacao da Pilha de Protocolos de Internet 1 InternetStackHelper stack 2 stackInstall nodes Listing 10 Instalacao da Pilha de Protocolos de Internet A pilha de protocolos de internet TCPIP e instalada em todos os nos permitindo a comunicacao de rede entre eles 9 Configuracao do Canal Sem Fio e Fısico 1 YansWifiChannelHelper channel YansWifiChannelHelper Default 2 YansWifiPhyHelper phy YansWifiPhyHelper Default 3 phySetChannel channelCreate Listing 11 Configuracao do Canal Sem Fio e Fısico O canal sem fio padrao do ns3 e configurado definindo as caracterısticas fısicas do meio de transmissao frequˆencia largura de banda etc Configuracao do WiFi e MAC 1 WifiHelper wifi 2 wifi SetRemoteStationManager ns3 AarfWifiManager 3 4 C o n f i g u r a o do MAC para os clientes STA 5 WifiMacHelper mac 6 Ssid ssid Ssid Create ssidStr 7 8 macSetType ns3 StaWifiMac 9 Ssid SsidValue ssid 10 ActiveProbing BooleanValue false 11 12 NetDeviceContainer staDevices 13 staDevices wifiInstall phy mac NodeContainer nodes Get 1 nodesGet nClientes 14 15 C o n f i g u r a o do MAC para o servidor AP 16 macSetType ns3 ApWifiMac 17 Ssid SsidValue ssid 18 19 NetDeviceContainer apDevice 20 apDevice wifiInstall phy mac nodesGet 0 Listing 12 Configuracao do WiFi e MAC Esta secao configura os dispositivos WiFi para os clientes STA e para o servidor AP definindo o SSID da rede e desativando a sondagem ativa active probing para evitar interferˆencias Configuracao de Mobilidade 1 MobilityHelper mobility 2 Ptr ListPositionAllocator positionAlloc CreateObject ListPositionAllocator 3 positionAlloc Add Vector 00 00 00 Servidor no ponto 000 4 5 D i s t r i b u i o dos clientes ao redor do servidor 6 double anguloIncremento 3600 nClientes 7 for uint32t i 1 i nClientes i 8 double angulo anguloIncremento i 1 10 9 double x distancia cos angulo MPI 1800 10 double y distancia sin angulo MPI 1800 11 positionAlloc Add Vector x y 00 12 13 14 if mobilidade 15 C o n f i g u r a o de mobilidade com Random Walk 16 mobility SetMobilityModel ns3 RandomWalk2dMobilityModel 17 Bounds RectangleValue Rectangle 150 150 150 150 18 Speed StringValue ns3 ConstantRandomVariable Constant 10 19 else 20 C o n f i g u r a o de mobilidade e s t t i c a 21 mobility SetMobilityModel ns3 ConstantPositionMobilityModel 22 23 24 mobility SetPositionAllocator positionAlloc 25 mobilityInstall nodes Listing 13 Configuracao de Mobilidade Esta parte define a mobilidade dos nos clientes Se a mobilidade estiver ati vada mobilidadetrue os clientes se movimentam aleatoriamente dentro de uma regiao definida utilizando o modelo RandomWalk2dMobilityModel Caso contrario os clientes permanecem estaticos com o modelo ConstantPosition MobilityModel Os clientes sao distribuıdos ao redor do servidor com base na distˆancia especificada e em ˆangulos incrementais para evitar sobreposicao Atribuicao de Enderecos IP 1 Ipv4AddressHelper address 2 addressSetBase 10110 2552552550 3 4 Ipv4InterfaceContainer interfaces 5 interfaces addressAssign apDevice 6 interfacesAdd addressAssign staDevices Listing 14 Atribuicao de Enderecos IP Os enderecos IP sao atribuıdos aos dispositivos de rede AP e clientes uti lizando a classe Ipv4AddressHelper O servidor AP recebe o primeiro en dereco do bloco de enderecos definido e os clientes recebem enderecos sequen ciais Definicao das Aplicacoes UDP TCP Misto 1 ApplicationContainer serverApps 11 2 ApplicationContainer clientApps 3 4 if protocolo UDP protocolo Misto 5 A p l i c a o UDP para clientes que utilizam UDP 6 for uint32t i 1 i nClientes i 7 if protocolo Misto i nClientes 2 8 continue Clientes com TCP 9 10 UdpClientHelper client interfacesGetAddress 0 8080 11 clientSetAttribute MaxPackets UintegerValue 0 Pacotes ilimitados 12 clientSetAttribute Interval TimeValue Seconds 001 Intervalo entre pacotes 13 clientSetAttribute PacketSize UintegerValue tamanhoPacote 14 15 clientAppsAdd clientInstall nodesGet i 16 17 18 A p l i c a o UDP no servidor 19 UdpServerHelper server 8080 20 serverAppsAdd serverInstall nodesGet 0 21 serverAppsStart Seconds 10 22 serverAppsStop Seconds tempoExecucao 10 23 24 Conectar callbacks para rastrear pacotes enviados e recebidos 25 for uint32t i 1 i nClientes i 26 if protocolo Misto i nClientes 2 27 continue Clientes com TCP 28 29 Ptr UdpClient udpClient DynamicCast UdpClient clientAppsGet i 1 30 udpClient TraceConnectWithoutContext Tx MakeCallback EnvioCallback 31 32 33 Ptr UdpServer udpServer DynamicCast UdpServer serverAppsGet 0 34 udpServer TraceConnectWithoutContext Rx MakeCallback RecebimentoCallback 35 36 37 if protocolo TCP protocolo Misto 38 A p l i c a o TCP para clientes que utilizam TCP 39 for uint32t i 1 i nClientes i 40 if protocolo Misto i nClientes 2 41 continue Clientes com UDP 42 12 43 A p l i c a o TCP BulkSend 44 BulkSendHelper source ns3 TcpSocketFactory InetSocketAddress interfacesGetAddress 0 8081 45 sourceSetAttribute MaxBytes UintegerValue 0 Pacotes ilimitados 46 ApplicationContainer sourceApps sourceInstall nodesGet i 47 sourceAppsStart Seconds 20 48 sourceAppsStop Seconds tempoExecucao 10 49 50 A p l i c a o TCP PacketSink 51 PacketSinkHelper sink ns3 TcpSocketFactory InetSocketAddress Ipv4Address GetAny 8081 52 ApplicationContainer sinkApps sinkInstall nodes Get 0 53 sinkAppsStart Seconds 00 54 sinkAppsStop Seconds tempoExecucao 10 55 56 Listing 15 Definicao das Aplicacoes UDP TCP Misto Esta secao configura as aplicacoes de rede para os clientes e para o servidor com base no protocolo selecionado UDP Clientes configurados com UdpClientHelper enviam pacotes UDP para o servidor que esta executando uma instˆancia de UdpServerHelper TCP Clientes configurados com BulkSendHelper enviam dados TCP para o servidor que esta executando uma instˆancia de PacketSinkHelper Misto Metade dos clientes utilizam UDP e a outra metade utilizam TCP Habilitacao do Roteamento 1 Ipv4GlobalRoutingHelper PopulateRoutingTables Listing 16 Habilitacao do Roteamento Esta linha habilita o roteamento global nas tabelas de roteamento dos nos permitindo que os pacotes encontrem seus caminhos ate o destino Execucao da Simulacao 1 Simulator Stop Seconds tempoExecucao 2 Simulator Run Listing 17 Execucao da Simulacao Define o tempo de execucao da simulacao e inicia sua execucao 13 Coleta de Metricas 1 double vazao 00 2 double perdaPacotes 00 3 4 if protocolo UDP protocolo Misto 5 Ptr UdpServer udpServer DynamicCast UdpServer serverAppsGet 0 6 vazao udpServer GetTotalRx 8 tempoExecucao 1 e6 Mbps 7 if pacotesEnviados 0 8 perdaPacotes 1000 pacotesEnviados pacotesRecebidos pacotesEnviados 9 10 11 12 std cout std endl 13 std cout C o n f i g u r a o da S i m u l a o std endl 14 std cout Protocolo protocolo std endl 15 std cout N m e r o de Clientes nClientes std endl 16 std cout D i s t n c i a entre os N s distancia metros std endl 17 std cout Tamanho do Pacote tamanhoPacote Bytes std endl 18 std cout Tempo de E x e c u o tempoExecucao segundos std endl 19 std cout V a z o vazao Mbps std endl 20 std cout Perda de Pacotes perdaPacotes std endl 21 std cout std endl 22 23 Simulator Destroy 24 return 0 Listing 18 Coleta de Metricas Apos a execucao da simulacao as metricas de vazao throughput e perda de pacotes sao calculadas e exibidas no console A vazao e calculada com base no total de bytes recebidos pelo servidor convertidos para Mbps e a perda de pacotes e calculada como a porcentagem de pacotes enviados que nao foram recebidos com sucesso 236 Execucao dos Cenarios Para executar os diferentes cenarios especificados utilize os seguintes comandos no terminal ajustando os parˆametros conforme necessario 1 Cenario sem Mobilidade e Aplicacao UDP 14 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes2 distancia10 2 Cenario com Mobilidade e Aplicacao UDP waf run ProjetoRedes mobilidadetrue protocoloUDP nClientes2 distancia10 3 Cenario com Aplicacao TCP waf run ProjetoRedes mobilidadefalse protocoloTCP nClientes2 distancia10 4 Cenario com Aplicacao Mista 50 UDP 50 TCP waf run ProjetoRedes mobilidadefalse protocoloMisto nClientes4 distancia10 5 Variacao do Numero de Clientes Para variar o numero de clientes altere o parˆametro nClientes para os valores 1 2 4 8 16 32 em cada execucao waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes1 distancia10 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes2 distancia20 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes4 distancia30 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes8 distancia40 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes16 distancia50 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes32 distancia60 237 Geracao de Graficos com Python Apos a execucao das simulacoes os resultados coletados vazao perda de pacotes e se implementado atraso podem ser organizados e visualizados utilizando ferramentas como Python com a biblioteca Matplotlib A seguir apresentamos um exemplo de script Python para gerar graficos a partir dos dados coletados 1 import matplotlibpyplot as plt 2 3 Exemplo de dados coletados substituir pelos dados reais 4 distancias 10 20 30 40 50 60 70 80 90 100 110 120 5 vazao 50 48 46 44 42 40 38 36 34 32 30 28 em Mbps 6 perdapacotes 05 10 15 20 25 30 35 40 45 50 55 60 em 7 8 G r f i c o de V a z o 9 pltfigure 10 pltplotdistancias vazao markero colorgreen 11 plttitle V a z o vs D i s t n c i a 12 pltxlabel D i s t n c i a metros 13 pltylabel V a z o Mbps 15 14 pltgridTrue 15 pltsavefigvazaopng 16 pltclose 17 18 G r f i c o de Perda de Pacotes 19 pltfigure 20 pltplotdistancias perdapacotes markero colorred 21 plttitlePerda de Pacotes vs D i s t n c i a 22 pltxlabel D i s t n c i a metros 23 pltylabelPerda de Pacotes 24 pltgridTrue 25 pltsavefigperdapacotes png 26 pltclose Listing 19 Script Python para Geracao de Graficos Passos para Gerar os Graficos 1 Instale o Matplotlib se ainda nao estiver instalado pip install matplotlib 2 Crie um Arquivo Python por exemplo gerar graficospy e cole o codigo acima substituindo os valores dos arrays pelos dados reais obtidos das simulacoes 3 Execute o Script Python python gerargraficospy 4 Verifique os Arquivos de Imagem Gerados vazaopng perda pacotespng e faca upload no Overleaf para incluir nos seus relatorios 238 Execucao Automatica de Multiplas Simulacoes Para facilitar a execucao de multiplas simulacoes com diferentes configuracoes vocˆe pode criar um script Bash que automatize esse processo A seguir um exemplo de script que executa simulacoes para diferentes combinacoes de pro tocolo mobilidade numero de clientes e distˆancia 1 binbash 2 Define as c o n f i g u r a e s 3 protocolos UDP TCP Misto 4 mobilidades false true 5 clientes 1 2 4 8 16 32 6 distancias 10 20 30 40 50 60 70 80 90 100 110 120 16 7 8 Loop para executar todas as c o m b i n a e s 9 for protocolo in protocolos 10 do 11 for mobilidade in mobilidades 12 do 13 for n in clientes 14 do 15 for d in distancias 16 do 17 echo Executando protocoloprotocolo mobilidademobilidade clientesn distanciad 18 waf run ProjetoRedes protocolo protocolo mobilidademobilidade nClientesn distanciad resultadoprotocolomobmobilidade clientesndistanciadtxt 19 done 20 done 21 done 22 done Listing 20 Script Bash para Automatizacao de Simulacoes Uso do Script Bash 1 Crie um Arquivo Bash por exemplo executar simulacoessh e cole o codigo acima 2 Dˆe Permissao de Execucao ao Script chmod x executarsimulacoessh 3 Execute o Script executarsimulacoessh Este script executara todas as combinacoes de protocolo UDP TCP Misto mobilidade true false numero de clientes 1 2 4 8 16 32 e distˆancia 10 20 120 metros salvando os resultados de cada sim ulacao em arquivos de texto separados para posterior analise 17 24 Implementacao de Metricas Adicionais Atraso Latˆencia Para medir o atraso latˆencia de forma mais precisa e necessario implementar mecanismos adicionais no codigo para rastrear o tempo de envio e recebimento de cada pacote individualmente A seguir apresentamos uma abordagem sim plificada para calcular a latˆencia media utilizando pacotes UDP Modificacao das Funcoes de Callback para Rastrear Timestamps Adi cione as seguintes inclusoes e variaveis globais no inıcio do seu codigo 1 include map 2 include vector 3 4 stdmap uint32t double pacotesTimestamps 5 stdvector double atrasos Listing 21 Inclusao de Bibliotecas e Variaveis Globais para Latˆencia Modifique as funcoes de callback para rastrear os timestamps 1 void EnvioCallback Ptr const Packet packet 2 3 pacotesEnviados 4 Supondo que cada pacote tenha um identificador nico ID 5 uint32t id pacotesEnviados 6 pacotesTimestamps id Simulator NowGetSeconds 7 8 9 void RecebimentoCallback Ptr const Packet packet 10 11 pacotesRecebidos 12 Supondo que cada pacote tenha um identificador nico ID 13 uint32t id pacotesRecebidos 14 if pacotesTimestamps findid pacotesTimestamps end 15 double envio pacotesTimestamps id 16 double recepcao Simulator NowGetSeconds 17 double atraso recepcao envio 18 atrasospushback atraso 19 20 Listing 22 Funcoes de Callback Modificadas para Latˆencia Calculo da Latˆencia Media Apos a simulacao adicione o seguinte trecho de codigo para calcular a latˆencia media 1 double somaAtrasos 00 18 2 for double atraso atrasos 3 somaAtrasos atraso 4 5 double atrasoMedio atrasosempty 00 somaAtrasos atrasossize 6 7 E x i b i o da L a t n c i a M d i a 8 std cout Atraso M d i o atrasoMedio segundos std endl Listing 23 Calculo da Latˆencia Media Nota Importante Esta implementacao e simplificada e assume que cada pacote enviado possui um identificador unico correspondente Para uma im plementacao mais robusta e necessario incluir identificadores nos pacotes e garantir que cada envio corresponda a um recebimento evitando mismatches e garantindo a precisao das medicoes de latˆencia 25 Consideracoes sobre a Implementacao Rastreamento de Pacotes A implementacao acima utiliza um mapa stdmapuint32t double Calculo de Latˆencia A diferenca entre o tempo de recepcao e envio de cada pacote e calculada e armazenada em um vetor stdvectordouble atrasos A latˆencia media e entao calculada como a media aritmetica dos atrasos Limitacoes Esta abordagem pressupoe que os pacotes sao recebidos na ordem em que sao enviados e que cada pacote enviado corresponde a um pacote recebido Em cenarios com alta perda de pacotes ou retransmissoes pode haver inconsistˆencias nos identificadores necessitando de mecanis mos adicionais para garantir a correspondˆencia correta Melhorias Futuras Para uma medicao mais precisa da latˆencia recomenda se implementar um mecanismo de identificacao unico para cada pacote por exemplo utilizando cabecalhos personalizados e garantir a corre spondˆencia entre pacotes enviados e recebidos mesmo em cenarios com alta perda ou reordenacao de pacotes 19

Envie sua pergunta para a IA e receba a resposta na hora

Recomendado para você

Projeto Prático de Redes com Ns3

4

Projeto Prático de Redes com Ns3

Rede de Computadores

UNIFESP

Tutorial-PFSense-Captive-Portal-Autenticacao-Usuario

1

Tutorial-PFSense-Captive-Portal-Autenticacao-Usuario

Rede de Computadores

UNIP

Relatorio Diagnostico e Planejamento de Atividade Sociocomunitaria

1

Relatorio Diagnostico e Planejamento de Atividade Sociocomunitaria

Rede de Computadores

UVA

Projeto Napster P2P - Sistemas Distribuidos com TCP e UDP

7

Projeto Napster P2P - Sistemas Distribuidos com TCP e UDP

Rede de Computadores

UFABC

Lista de Exercícios RIPv2 - Protocolo de Roteamento Interior

3

Lista de Exercícios RIPv2 - Protocolo de Roteamento Interior

Rede de Computadores

UFERSA

Texto de pré-visualização

Universidade Federal de São Paulo UNIFESP Instituto de Ciência e Tecnologia ICT UC 2617 Redes de Computadores Prof Dr Joahannes Bruno Dias da Costa Projeto Prático Entrega 31 de Janeiro de 2025 1 Resumo Este projeto prático tem como principal objetivo colocar em prática os conceitos aprendidos nas aulas teóricas Tópicos que serão explorados neste projeto Instalação do Simulador de Redes Criação de topologia de rede que envolva diferentes enlaces Enlaces com e sem fio operando conjuntamente Cenário sem e com mobilidade dos nós sem fio Utilização de aplicações com TCP UDP e TCPUDP Medir desempenho da rede 2 Instruções 21 Trabalho a ser feito 1 Este projeto deverá ser desenvolvido em grupos com até quatro estudantes No Classroom da turma Informações Defina seu grupo há um formulário para informarem a composição do grupo 2 Leiam detalhadamente as instruções pode ser necessários outras leituras para entender o trabalho 3 O Professor estará disponível nos dias de atendimento para esclarecer dúvidas quanto ao projeto 4 Este Projeto está dividido em duas partes a Execução de experimentos no simulador de redes Network Simulator ns3 b Relatório técnico do que foi desenvolvido 5 Haverá a necessidade de entregar um relatório com as atividades desenvolvidas Os detalhes do relatório estão na Seção 3 22 Entregáveis As entregas serão pelo Classroom dos arquivos seguindo a seguinte organização de nomes Arquivo do relatório equipexrelatorioredespdf Arquivo de simulação equipexcc por py para os que preferirem utilizar Python 1 23 Data da entrega A data da entrega será no dia 31 de Janeiro de 2025 até às 2359 Deverão submeter os arquivos no Classroom dentro da tarefa do projeto Não precisam duplicar as submissões Uma pessoa por grupo deverá submeter o projeto Recomendase submeter os trabalhos com certa antecedência e não esperar os últimos minutos para a submissão Não serão considerados emails enviados depois da data e hora limite independentemente do motivos do atraso 3 Relatório Após todo o desenvolvimento um relatório deve ser entregue Utilizar o template da Sociedade Brasileira de Computação LATEX1 ou Word2 O relatório deve conter Resumo visão geral sobre o projeto Introdução Descrição do exercício proposto Avaliação de desempenho Metodologia Parâmetros Resultados apresentem gráficos que mostrem o impacto das variações Atraso Vazão Perda de pacotes Discussão sobre os resultados obtidos Detalhe da divisão do trabalho Parágrafo ou tabela detalhando o que cada membro da equipe fez Conclusão explicar os pontos principais do trabalho 4 Desenvolvimento Documentos importantes que devem utilizar para resolução de problemas ns3 Installation LINK ns3 Tutorial LINK ns3 Model Library LINK 41 Atividade 1 Instalação e Configuração do simulador Seguir as indicações da documentação para instalação no seu ambiente Escolha o Sistema Operacional de sua preferência 1httpswwwoverleafcomproject674e4b8981bb8c813a4208b5 2httpswwwsbcorgbrwpcontentuploads202407modelosparapublicaodeartigoszip 2 42 Atividade 2 Construção da simulação A topologia deve conter um host servidor que estará conectado via conexão cabeada a um Access Point AP Nesse ambiente n clientes podem se conectar ao AP definir o SSID do AP como EquipeX onde X é a numeração da sua equipe conforme planilha no Google Classroom para consumir uma aplicação servida pelo host servidor É importante variar o número de clientes para ficar visível o impacto que isso traz para a rede A Figura 1 mostra um exemplo dessa topologia Além disso algumas variações de cenário devem ser implementadas e consideradas tais como 1 Cenário onde os nós sem fio clientes não possuem mobilidade 2 Cenário onde os nós sem fio clientes possuem mobilidade Para esse caso considerar a mobilidade de pessoas andando aleatoriamente em uma região 3 Cenário com aplicação que utiliza UDP 4 Cenário com aplicação que utiliza TCP 5 Cenário onde 50 dos nós utilizam aplicação UDP e 50 aplicação TCP 6 Em todos os casos variar o número de clientes em 1 2 4 8 16 e 32 10110 s0 AP 19216800 c0 c1 c2 c3 cn Figura 1 Cenário a ser considerado 5 Avaliação O projeto abrange a avaliação do relatório escrita estruturação redação etc e as tarefas realizadas prática de maneira conjunta Serão avaliados o relatório entregue assim como o trabalho de desenvol vimento através dos códigos O detalhe da avaliação é apresentado na Tabela 1 Tabela 1 Avaliação do projeto Item na avaliação Introdução e Descrição do exercício proposto 10 Avaliação de desempenho 20 Resultados obtidos 30 Discussão dos resultados 30 Conclusão 10 6 Considerações finais Revisem a documentação oficial do ns33 para poder resolver problemas Os fóruns online também são bons aliados 3nsnamorg 3 Estabeleçam metas iniciais e etapas para avançar no projeto A tarefa pode demorar mais se não for organizadoa no uso de seu tempo Não comecem o projeto dias antes da submissão Planejem a entrega e façam avanços oportunamente 4 Analise de Desempenho em Redes WiFi Adhoc Utilizando Protocolos UDP e TCP 1 Abstract This report presents the performance analysis of Adhoc WiFi net works using UDP and TCP protocols Various scenarios were simulated includ ing networks with and without node mobility and applications utilizing UDP TCP and a combination of both The simulations were conducted using the Net work Simulator 3 ns3 varying the number of clients and distances between nodes Metrics such as latency throughput and packet loss were evaluated to understand the impact of different configurations on network performance Resumo Este relatorio apresenta a analise de desempenho de redes WiFi Ad hoc utilizando os protocolos UDP e TCP Diversos cenarios foram simulados incluindo redes com e sem mobilidade dos nos e aplicacoes que utilizam UDP TCP e uma combinacao de ambos As simulacoes foram realizadas utilizando o Network Simulator 3 ns3 variando o numero de clientes e as distˆancias entre os nos Metricas como atraso vazao e perda de pacotes foram avaliadas para compreender o impacto das diferentes configuracoes no desempenho da rede 1 Introducao As redes de computadores desempenham um papel crucial na comunicacao e trans ferˆencia de dados em diversos contextos desde ambientes domesticos ate infraestruturas corporativas complexas Dentro deste espectro as redes sem fio Wireless Networks destacamse por sua flexibilidade e mobilidade permitindo a comunicacao sem a neces sidade de conexoes fısicas As redes Adhoc em particular tˆem ganhado relevˆancia devido a sua capacidade de formar redes temporarias e autoorganizadas sem a necessidade de pontos de acesso centralizados Essa caracterıstica torna as redes Adhoc ideais para cenarios onde a in fraestrutura de rede fixa nao esta disponıvel ou e impraticavel como em operacoes de resgate eventos temporarios ou ambientes de teste e pesquisa Os protocolos de transporte UDP User Datagram Protocol e TCP Transmission Control Protocol sao fundamentais para a comunicacao de dados em redes de computa dores Enquanto o UDP e preferido em aplicacoes que requerem baixa latˆencia e podem tolerar alguma perda de pacotes como streaming de vıdeo e jogos online o TCP e uti lizado em aplicacoes que exigem confiabilidade e garantia de entrega de dados como transferˆencia de arquivos e navegacao na web Este trabalho tem como objetivo analisar o desempenho de redes WiFi Adhoc utilizando os protocolos UDP e TCP investigando como diferentes cenarios incluindo a mobilidade dos nos e a combinacao de diferentes tipos de aplicacoes afetam metricas essenciais como atraso vazao e perda de pacotes As simulacoes foram realizadas uti lizando o Network Simulator 3 ns3 permitindo a criacao de ambientes controlados para a avaliacao dos diferentes parˆametros 2 Descricao do Exercıcio Proposto O projeto pratico proposto para a disciplina de Redes de Computadores visa aplicar os conceitos teoricos aprendidos em aula atraves da implementacao e analise de uma rede simulada utilizando o ns3 A tarefa esta dividida em duas partes principais a execucao de experimentos no simulador e a elaboracao de um relatorio tecnico detalhado 21 Configuracao Experimental As simulacoes realizadas abrangem diversos cenarios para avaliar o desempenho das redes WiFi Adhoc sob diferentes condicoes Os cenarios considerados incluem 1 Cenario sem Mobilidade Os nos sem fio clientes permanecem estaticos du rante a simulacao 2 Cenario com Mobilidade Os nos sem fio clientes movimentamse aleatoria mente em uma regiao simulando a mobilidade de pessoas andando 3 Aplicacao UDP Utilizacao do protocolo UDP para transmissao de dados 4 Aplicacao TCP Utilizacao do protocolo TCP para transmissao de dados 5 Aplicacao Mista 50 dos nos utilizam aplicacoes UDP e 50 utilizam aplicacoes TCP 6 Variacao do Numero de Clientes O numero de clientes varia entre 1 2 4 8 16 32 para observar o impacto no desempenho da rede Cada cenario sera executado em diferentes configuracoes variando o numero de clientes e as distˆancias entre os nos As condicoes especıficas do experimento incluem Tamanho do Pacote 500 Bytes Tempo de Execucao 150 segundos Distˆancias Entre os Nos metros 10 20 30 40 50 60 70 80 90 100 110 120 Numero de Testes por Distˆancia 10 para cada configuracao 22 Objetivos Os objetivos especıficos deste projeto sao Configurar e executar simulacoes no ns3 para diferentes cenarios de rede Adhoc Coletar dados sobre atraso vazao e perda de pacotes para cada cenario e configuracao Analisar os resultados obtidos para identificar tendˆencias e impactos das variacoes nos parˆametros de rede Elaborar um relatorio tecnico que documente todo o processo desde a configuracao das simulacoes ate a interpretacao dos resultados 3 Avaliacao de Desempenho Nesta secao detalhamos a metodologia adotada para a avaliacao do desempenho das redes simuladas bem como os parˆametros considerados durante os experimentos 31 Metodologia A avaliacao de desempenho foi conduzida utilizando o simulador de redes ns3 uma ferramenta amplamente utilizada na pesquisa e ensino de redes de computadores devido a sua flexibilidade e precisao na modelagem de diferentes tecnologias e protocolos Para cada cenario especificado foram realizados testes variando o numero de clientes e a distˆancia entre os nos Cada teste foi executado 10 vezes para garantir a consistˆencia dos resultados e permitir uma analise estatıstica mais robusta As simulacoes foram configuradas para reproduzir um ambiente realista de comunicacao WiFi Adhoc onde os nos podem permanecer estaticos ou se movimentarem aleatoriamente depen dendo do cenario As principais etapas da metodologia incluem 1 Configuracao da Simulacao Definicao da topologia da rede parˆametros do protocolo de transporte UDP ou TCP e posicionamento dos nos estaticos ou moveis 2 Execucao das Simulacoes Rodar as simulacoes para cada combinacao de cenario numero de clientes e distˆancia coletando os dados gerados 3 Coleta de Dados Extracao das metricas de atraso vazao e perda de pacotes a partir dos resultados das simulacoes 4 Analise dos Resultados Processamento estatıstico dos dados coletados para identificar padroes e tendˆencias 5 Visualizacao dos Resultados Criacao de graficos que ilustram o impacto das variacoes de distˆancia e numero de clientes nas metricas de desempenho 32 Parˆametros Os principais parˆametros considerados no experimento sao Protocolos de Transporte UDP TCP e combinacao mista 50 UDP e 50 TCP Tamanho do Pacote 500 Bytes Tempo de Execucao da Simulacao 150 segundos Distˆancias Entre os Nos 10 20 30 40 50 60 70 80 90 100 110 120 metros Numero de Clientes 1 2 4 8 16 32 Mobilidade Estatica ou Dinˆamica Random Walk Numero de Testes por Distˆancia 10 Alem destes outros parˆametros de configuracao da rede como taxa de transmissao Data Rate modelo de propagacao Path Loss Model e ambiente de mobilidade foram definidos de acordo com as caracterısticas de uma rede WiFi Adhoc tıpica 4 Resultados Nesta secao apresentamos os resultados obtidos nas simulacoes acompanhados de graficos que ilustram o impacto das variacoes de distˆancia e numero de clientes nas metricas de desempenho atraso vazao e perda de pacotes 41 Atraso Latˆencia O atraso medio foi calculado como o tempo medio que um pacote leva para ser transmi tido do no remetente ao no receptor Observase que conforme a distˆancia entre os nos aumenta o atraso tambem tende a aumentar devido ao maior tempo de propagacao dos sinais e possıveis interferˆencias no meio Figure 1 Atraso medio em func ao da distˆancia entre os nos 42 Vazao Throughput A vazao ou throughput representa a taxa de transferˆencia efetiva de dados na rede me dida em Mbps Megabits por segundo A analise mostra que a vazao diminui a medida que a distˆancia entre os nos aumenta refletindo a reducao na eficiˆencia da transmissao de dados devido a fatores como degradacao do sinal e aumento da taxa de erro de bit Figure 2 Vazao em Mbps em func ao da distˆancia entre os nos 43 Perda de Pacotes Packet Loss A taxa de perda de pacotes indica a porcentagem de pacotes transmitidos que nao foram recebidos com sucesso pelo no receptor Os resultados demonstram que a perda de pacotes aumenta com a distˆancia entre os nos possivelmente devido a deterioracao do sinal e a maior interferˆencia no ambiente de transmissao Figure 3 Taxa de perda de pacotes em func ao da distˆancia entre os nos 44 Discussao sobre os Resultados Obtidos Os resultados das simulacoes indicam uma clara correlacao entre a distˆancia entre os nos e o desempenho da rede em termos de atraso vazao e perda de pacotes A medida que a distˆancia aumenta o atraso medio tambem aumenta o que pode ser atribuıdo ao maior tempo necessario para que os sinais percorram a distˆancia maior e as possıveis interferˆencias que atrasam a transmissao dos dados A vazao diminui com o aumento da distˆancia refletindo a menor eficiˆencia na transferˆencia de dados Isso ocorre devido a diminuicao da qualidade do sinal em distˆancias maiores que leva a uma maior taxa de erros de bit e consequentemente a retransmissoes frequentes reduzindo a taxa de transferˆencia efetiva A perda de pacotes tambem aumenta com a distˆancia indicando que uma proporcao maior de pacotes transmitidos nao esta sendo recebida com sucesso Essa perda pode ser causada por fatores como atenuacao do sinal interferˆencias ambientais e limitacoes fısicas do meio de transmissao Alem disso a variacao no numero de clientes tambem impacta significativamente as metricas de desempenho Com o aumento do numero de clientes observase um au mento no atraso e na perda de pacotes bem como uma diminuicao na vazao devido a maior competicao pelo meio de transmissao e ao aumento da carga na rede Os diferentes protocolos de transporte tambem mostram comportamentos distin tos O UDP por ser um protocolo sem conexao tende a apresentar menor latˆencia mas maior perda de pacotes em comparacao ao TCP que oferece garantias de entrega ao custo de maior latˆencia e menor vazao devido aos mecanismos de controle de fluxo e retrans missao de pacotes perdidos Esses resultados sao consistentes com a teoria de redes sem fio onde a qualidade da conexao esta diretamente relacionada a distˆancia e as condicoes do meio de trans missao A degradacao do sinal em distˆancias maiores afeta diretamente a performance da rede tornandoa menos confiavel e eficiente 5 Conclusao Este trabalho permitiu uma compreensao aprofundada sobre o impacto da distˆancia e do numero de clientes em redes WiFi Adhoc utilizando os protocolos UDP e TCP As simulacoes realizadas no ns3 revelaram que Aumento da Distˆancia Resulta em maior atraso reducao da vazao e aumento na perda de pacotes comprometendo o desempenho da rede Aumento do Numero de Clientes Amplifica os efeitos negativos da distˆancia alem de introduzir maior competicao pelo meio de transmissao elevando ainda mais o atraso e a perda de pacotes Protocolos de Transporte O UDP apresenta menor latˆencia mas maior perda de pacotes sendo adequado para aplicacoes que toleram alguma perda O TCP por outro lado garante a entrega dos dados porem com maior latˆencia e menor vazao Esses achados sao fundamentais para o planejamento e otimizacao de redes sem fio Adhoc especialmente em ambientes que requerem alta confiabilidade e eficiˆencia na comunicacao de dados A partir deste estudo concluise que a distˆancia entre os nos e o numero de clientes sao fatores crıticos que devem ser cuidadosamente considerados na configuracao e implementacao de redes WiFi Adhoc para garantir um desempenho satisfatorio 6 Codigo da Simulacao A seguir apresentamos o codigo utilizado para a simulacao no ns3 1 ProjetoRedescc 2 include ns3coremoduleh 3 include ns3networkmoduleh 4 include ns3internetmoduleh 5 include ns3wifimoduleh 6 include ns3mobilitymoduleh 7 include ns3applicationsmoduleh 8 9 using namespace ns3 10 11 Vari veis globais para rastreamento de pacotes 12 static uint32t pacotesEnviados 0 13 static uint32t pacotesRecebidos 0 14 15 F u n o de callback para rastrear pacotes enviados 16 void EnvioCallback Ptrconst Packet packet 17 18 pacotesEnviados 19 20 21 F u n o de callback para rastrear pacotes recebidos 22 void RecebimentoCallback Ptrconst Packet packet 23 24 pacotesRecebidos 25 26 27 NSLOGCOMPONENTDEFINE ProjetoRedes 28 29 int 30 main int argc char argv 31 32 Par metros de configura o 33 bool mobilidade false 34 stdstring protocolo UDP O p e s UDP TCP Misto 35 uint32t nClientes 1 36 double distancia 100 metros 37 uint32t tamanhoPacote 500 Bytes 38 double tempoExecucao 1500 segundos 39 stdstring ssidStr EquipeX 40 41 Parsing de par metros 42 CommandLine cmd 43 cmdAddValue mobilidade Ativa ou desativa a mobilidade dos n s clientes mobilidade 44 cmdAddValue protocolo Protocolo de transporte UDP TCP ou Misto protocolo 45 cmdAddValue nClientes N mero de clientes na rede nClientes 46 cmdAddValue distancia Dist ncia entre os n s metros distancia 47 cmdAddValue tamanhoPacote Tamanho do pacote Bytes tamanhoPacote 48 cmdAddValue tempoExecucao Tempo de e x e c u o da s i m u l a o segundos tempoExecucao 49 cmdParse argc argv 50 51 V a l i d a o de par metros 52 if protocolo UDP protocolo TCP protocolo Misto 53 stdcerr Protocolo inv lido Use UDP TCP ou Misto stdendl 54 return 1 55 56 57 C r i a o dos n s 1 servidor AP e nClientes clientes 58 NodeContainer nodes 59 nodesCreate 1 nClientes 1 servidor nClientes 60 61 I n s t a l a o da pilha de protocolos de internet 62 InternetStackHelper stack 63 stackInstall nodes 64 65 Configura o do canal sem fio 66 YansWifiChannelHelper channel YansWifiChannelHelperDefault 67 YansWifiPhyHelper phy YansWifiPhyHelperDefault 68 phySetChannel channelCreate 69 70 Configura o do WiFi 71 WifiHelper wifi 72 wifiSetRemoteStationManager ns3AarfWifiManager 73 74 Configura o do MAC para os clientes STA 75 WifiMacHelper mac 76 Ssid ssid SsidCreate ssidStr 77 78 macSetType ns3StaWifiMac 79 Ssid SsidValue ssid 80 ActiveProbing BooleanValue false 81 82 NetDeviceContainer staDevices 83 staDevices wifiInstall phy mac nodesGet 1 nClientes 84 85 Configura o do MAC para o servidor AP 86 macSetType ns3ApWifiMac 87 Ssid SsidValue ssid 88 89 NetDeviceContainer apDevice 90 apDevice wifiInstall phy mac nodesGet 0 91 92 Configura o de mobilidade 93 MobilityHelper mobility 94 PtrListPositionAllocator positionAlloc CreateObject ListPositionAllocator 95 positionAllocAdd Vector 00 00 00 Servidor no ponto 000 96 97 Distribui o dos clientes ao redor do servidor 98 double anguloIncremento 3600 nClientes 99 for uint32t i 1 i nClientes i 100 double angulo anguloIncremento i 1 101 double x distancia cos angulo MPI 1800 102 double y distancia sin angulo MPI 1800 103 positionAllocAdd Vector x y 00 104 105 106 if mobilidade 107 Configura o de mobilidade com Random Walk 108 mobilitySetMobilityModel ns3RandomWalk2dMobilityModel 109 Bounds RectangleValue Rectangle 150 150 150 150 110 Speed StringValue ns3 ConstantRandomVariableConstant 10 111 else 112 Configura o de mobilidade est tica 113 mobilitySetMobilityModel ns3ConstantPositionMobilityModel 114 115 116 mobilitySetPositionAllocator positionAlloc 117 mobilityInstall nodes 118 119 A t r i b u i o de endere os IP 120 Ipv4AddressHelper address 121 addressSetBase 10110 2552552550 122 123 Ipv4InterfaceContainer interfaces 124 interfaces addressAssign apDevice 125 interfacesAdd addressAssign staDevices 126 127 D e f i n i o dos tipos de a p l i c a e s 128 ApplicationContainer serverApps 129 ApplicationContainer clientApps 130 131 if protocolo UDP protocolo Misto 132 A p l i c a o UDP para clientes que utilizam UDP 133 for uint32t i 1 i nClientes i 134 if protocolo Misto i nClientes 2 135 continue Clientes com TCP 136 137 UdpClientHelper client interfacesGetAddress 0 8080 138 clientSetAttribute MaxPackets UintegerValue 0 Pacotes ilimitados 139 clientSetAttribute Interval TimeValue Seconds 001 Intervalo entre pacotes 140 clientSetAttribute PacketSize UintegerValue tamanhoPacote 141 142 clientAppsAdd clientInstall nodesGet i 143 144 145 A p l i c a o UDP no servidor 146 UdpServerHelper server 8080 147 serverAppsAdd serverInstall nodesGet 0 148 serverAppsStart Seconds 10 149 serverAppsStop Seconds tempoExecucao 10 150 151 Conectar callbacks para rastrear pacotes enviados e recebidos 152 for uint32t i 1 i nClientes i 153 if protocolo Misto i nClientes 2 154 continue Clientes com TCP 155 156 PtrUdpClient udpClient DynamicCastUdpClient clientAppsGet i 1 157 udpClientTraceConnectWithoutContext Tx MakeCallback EnvioCallback 158 159 160 PtrUdpServer udpServer DynamicCastUdpServer serverApps Get 0 161 udpServerTraceConnectWithoutContext Rx MakeCallback RecebimentoCallback 162 163 164 if protocolo TCP protocolo Misto 165 A p l i c a o TCP para clientes que utilizam TCP 166 for uint32t i 1 i nClientes i 167 if protocolo Misto i nClientes 2 168 continue Clientes com UDP 169 170 A p l i c a o TCP BulkSend 171 BulkSendHelper source ns3TcpSocketFactory InetSocketAddress interfacesGetAddress 0 8081 172 sourceSetAttribute MaxBytes UintegerValue 0 Pacotes ilimitados 173 ApplicationContainer sourceApps sourceInstall nodesGet i 174 sourceAppsStart Seconds 20 175 sourceAppsStop Seconds tempoExecucao 10 176 177 A p l i c a o TCP PacketSink 178 PacketSinkHelper sink ns3TcpSocketFactory InetSocketAddress Ipv4AddressGetAny 8081 179 ApplicationContainer sinkApps sinkInstall nodesGet 0 180 sinkAppsStart Seconds 00 181 sinkAppsStop Seconds tempoExecucao 10 182 183 184 185 Habilitar o roteamento 186 Ipv4GlobalRoutingHelperPopulateRoutingTables 187 188 In cio da s i m u l a o 189 SimulatorStop Seconds tempoExecucao 190 SimulatorRun 191 192 Coleta de m tricas 193 double vazao 00 194 double perdaPacotes 00 195 196 if protocolo UDP protocolo Misto 197 PtrUdpServer udpServer DynamicCastUdpServer serverApps Get 0 198 vazao udpServerGetTotalRx 8 tempoExecucao 1e6 Mbps 199 if pacotesEnviados 0 200 perdaPacotes 1000 pacotesEnviados pacotesRecebidos pacotesEnviados 201 202 203 204 stdcout Dist ncia distancia metros stdendl 205 stdcout N mero de Clientes nClientes stdendl 206 stdcout Protocolo protocolo stdendl 207 stdcout Vaz o vazao Mbps stdendl 208 stdcout Perda de pacotes perdaPacotes std endl 209 210 SimulatorDestroy 211 return 0 212 61 Descricao do Codigo A seguir descrevemos os principais componentes e como configurar cada cenario Parˆametros de Configuracao Utiliza a classe CommandLine para receber parˆametros de linha de comando que definem o cenario da simulacao incluindo mobilidade protocolo de transporte numero de clientes e distˆancia entre os nos Criacao dos Nos Cria um no servidor AP e um numero variavel de nos clientes de acordo com o parˆametro nClientes Configuracao do Canal Sem Fio Define o canal sem fio padrao do ns3 para simular a comunicacao WiFi Configuracao do WiFi Configura os dispositivos de rede para os clientes STA e para o servidor AP com o SSID definido Configuracao de Mobilidade Dependendo do parˆametro mobilidade os nos clientes podem permanecer estaticos ou se movimentar aleatoriamente utilizando o modelo RandomWalk2dMobilityModel Atribuicao de Enderecos IP Utiliza o Ipv4AddressHelper para atribuir enderecos IP aos dispositivos de rede Definicao das Aplicacoes UDP Utiliza o UdpClientHelper e UdpServerHelper para con figurar as aplicacoes de envio e recepcao de pacotes UDP TCP Utiliza o BulkSendHelper para enviar dados e PacketSinkHelper para receber dados via TCP Misto Combinacao de aplicacoes UDP e TCP onde 50 dos clientes utilizam UDP e os demais utilizam TCP Rastreamento de Pacotes Implementa callbacks para rastrear o numero de pa cotes enviados e recebidos permitindo o calculo da taxa de perda de pacotes Coleta de Metricas Calcula a vazao throughput e a perda de pacotes com base nos dados coletados durante a simulacao Execucao e Finalizacao Executa a simulacao por 150 segundos e exibe as metricas de desempenho no console 62 Executando os Cenarios Para executar os diferentes cenarios utilize os seguintes comandos no terminal ajustando os parˆametros conforme necessario 621 1 Cenario sem Mobilidade e Aplicacao UDP 1 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes1 distancia10 622 2 Cenario com Mobilidade e Aplicacao UDP 1 waf run ProjetoRedes mobilidadetrue protocoloUDP nClientes 1 distancia10 623 3 Cenario com Aplicacao TCP 1 waf run ProjetoRedes mobilidadefalse protocoloTCP nClientes1 distancia10 624 4 Cenario com Aplicacao Mista 50 UDP 50 TCP 1 waf run ProjetoRedes mobilidadefalse protocoloMisto nClientes2 distancia10 625 5 Variacao do Numero de Clientes Para variar o numero de clientes altere o parˆametro nClientes para os valores 1 2 4 8 16 32 em cada execucao 1 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes4 distancia20 63 Analise dos Resultados Apos a execucao das simulacoes os resultados serao exibidos no console e podem ser redirecionados para arquivos de log para posterior analise Utilize ferramentas como Python com a biblioteca Matplotlib para gerar os graficos ilustrativos com base nos dados coletados 7 Referˆencias References 1 ns3 Documentation Network Simulator 3 Disponıvel em httpswwwnsnam orgdocs 2 Postel J RFC 768 User Datagram Protocol Disponıvel em httpstools ietforghtmlrfc768 3 Stevens WR TCPIP Illustrated Volume 1 The Protocols AddisonWesley 1994 4 Gast M 80211 Wireless Networks The Definitive Guide OReilly Media 2005 5 Akyildiz IF Su W Sankarasubramaniam Y and Cayirci E A Survey on Mobile Ad Hoc Network Routing Protocols IEEE Communications Surveys Tutorials vol 4 no 2 pp 140183 2002 6 Kurose JF Ross KW Computer Networking A TopDown Approach Pearson 2017 Codigo Redes Janeiro 2025 1 Introducao 2 Codigo da Simulacao A seguir apresentamos o codigo completo utilizado para as simulacoes no Net work Simulator 3 ns3 adaptado para abranger todos os cenarios especi ficados O codigo e modular e permite a configuracao dos diferentes cenarios atraves de parˆametros de linha de comando facilitando a execucao de simulacoes variadas sem a necessidade de modificar o codigofonte manualmente a cada vez 21 Descricao Geral do Codigo O codigo esta estruturado para simular redes WiFi Adhoc utilizando os pro tocolos UDP TCP e uma combinacao mista de ambos Atraves de parˆametros de linha de comando e possıvel definir a mobilidade dos nos o protocolo de transporte a ser utilizado o numero de clientes na rede e a distˆancia entre os nos As principais metricas avaliadas sao atraso latˆencia vazao throughput e perda de pacotes packet loss 22 Codigo Fonte 1 include ns3core moduleh 2 include ns3network moduleh 3 include ns3internet moduleh 4 include ns3wifi moduleh 5 include ns3mobility moduleh 6 include ns3applications moduleh 7 8 using namespace ns3 9 10 V a r i v e i s globais para rastreamento de pacotes 11 static uint32t pacotesEnviados 0 12 static uint32t pacotesRecebidos 0 13 14 F u n o de callback para rastrear pacotes enviados 1 15 void EnvioCallback Ptr const Packet packet 16 17 pacotesEnviados 18 19 20 F u n o de callback para rastrear pacotes recebidos 21 void RecebimentoCallback Ptr const Packet packet 22 23 pacotesRecebidos 24 25 26 NSLOGCOMPONENTDEFINE ProjetoRedes 27 28 int 29 main int argc char argv 30 31 P a r m e t r o s de c o n f i g u r a o 32 bool mobilidade false Controle de mobilidade dos clientes 33 std string protocolo UDP O p e s UDP TCP Misto 34 uint32t nClientes 1 N m e r o de clientes na rede 35 double distancia 100 D i s t n c i a entre os n s metros 36 uint32t tamanhoPacote 500 Tamanho do pacote Bytes 37 double tempoExecucao 1500 Tempo de e x e c u o da s i m u l a o segundos 38 std string ssidStr EquipeX SSID da rede Wi Fi 39 40 Parsing de p a r m e t r o s de linha de comando 41 CommandLine cmd 42 cmdAddValue mobilidade Ativa ou desativa a mobilidade dos n s clientes mobilidade 43 cmdAddValue protocolo Protocolo de transporte UDP TCP ou Misto protocolo 44 cmdAddValue nClientes N m e r o de clientes na rede nClientes 45 cmdAddValue distancia D i s t n c i a entre os n s metros distancia 46 cmdAddValue tamanhoPacote Tamanho do pacote Bytes tamanhoPacote 47 cmdAddValue tempoExecucao Tempo de e x e c u o da s i m u l a o segundos tempoExecucao 48 cmdParse argc argv 49 50 V a l i d a o dos p a r m e t r o s 51 if protocolo UDP protocolo TCP protocolo Misto 2 52 std cerr Protocolo i n v l i d o Use UDP TCP ou Misto std endl 53 return 1 54 55 56 C r i a o dos n s 1 servidor AP e nClientes clientes 57 NodeContainer nodes 58 nodesCreate 1 nClientes 1 servidor nClientes 59 60 I n s t a l a o da pilha de protocolos de internet 61 InternetStackHelper stack 62 stackInstall nodes 63 64 C o n f i g u r a o do canal sem fio 65 YansWifiChannelHelper channel YansWifiChannelHelper Default 66 YansWifiPhyHelper phy YansWifiPhyHelper Default 67 phySetChannel channelCreate 68 69 C o n f i g u r a o do Wi Fi 70 WifiHelper wifi 71 wifi SetRemoteStationManager ns3 AarfWifiManager 72 73 C o n f i g u r a o do MAC para os clientes STA 74 WifiMacHelper mac 75 Ssid ssid Ssid Create ssidStr 76 77 macSetType ns3 StaWifiMac 78 Ssid SsidValue ssid 79 ActiveProbing BooleanValue false 80 81 NetDeviceContainer staDevices 82 staDevices wifiInstall phy mac NodeContainer nodesGet 1 nodesGet nClientes 83 84 C o n f i g u r a o do MAC para o servidor AP 85 macSetType ns3 ApWifiMac 86 Ssid SsidValue ssid 87 88 NetDeviceContainer apDevice 89 apDevice wifiInstall phy mac nodesGet 0 90 91 C o n f i g u r a o de mobilidade 92 MobilityHelper mobility 93 Ptr ListPositionAllocator positionAlloc CreateObject ListPositionAllocator 94 positionAlloc Add Vector 00 00 00 Servidor no ponto 000 95 3 96 D i s t r i b u i o dos clientes ao redor do servidor 97 double anguloIncremento 3600 nClientes 98 for uint32t i 1 i nClientes i 99 double angulo anguloIncremento i 1 100 double x distancia cos angulo MPI 1800 101 double y distancia sin angulo MPI 1800 102 positionAlloc Add Vector x y 00 103 104 105 if mobilidade 106 C o n f i g u r a o de mobilidade com Random Walk 107 mobility SetMobilityModel ns3 RandomWalk2dMobilityModel 108 Bounds RectangleValue Rectangle 150 150 150 150 109 Speed StringValue ns3 ConstantRandomVariable Constant 10 110 else 111 C o n f i g u r a o de mobilidade e s t t i c a 112 mobility SetMobilityModel ns3 ConstantPositionMobilityModel 113 114 115 mobility SetPositionAllocator positionAlloc 116 mobilityInstall nodes 117 118 A t r i b u i o de e n d e r e o s IP 119 Ipv4AddressHelper address 120 addressSetBase 10110 2552552550 121 122 Ipv4InterfaceContainer interfaces 123 interfaces addressAssign apDevice 124 interfacesAdd addressAssign staDevices 125 126 D e f i n i o das a p l i c a e s 127 ApplicationContainer serverApps 128 ApplicationContainer clientApps 129 130 if protocolo UDP protocolo Misto 131 A p l i c a o UDP para clientes que utilizam UDP 132 for uint32t i 1 i nClientes i 133 if protocolo Misto i nClientes 2 134 continue Clientes com TCP 135 136 UdpClientHelper client interfacesGetAddress 0 8080 4 137 clientSetAttribute MaxPackets UintegerValue 0 Pacotes ilimitados 138 clientSetAttribute Interval TimeValue Seconds 001 Intervalo entre pacotes 139 clientSetAttribute PacketSize UintegerValue tamanhoPacote 140 141 clientAppsAdd clientInstall nodesGet i 142 143 144 A p l i c a o UDP no servidor 145 UdpServerHelper server 8080 146 serverAppsAdd serverInstall nodesGet 0 147 serverAppsStart Seconds 10 148 serverAppsStop Seconds tempoExecucao 10 149 150 Conectar callbacks para rastrear pacotes enviados e recebidos 151 for uint32t i 1 i nClientes i 152 if protocolo Misto i nClientes 2 153 continue Clientes com TCP 154 155 Ptr UdpClient udpClient DynamicCast UdpClient clientAppsGet i 1 156 udpClient TraceConnectWithoutContext Tx MakeCallback EnvioCallback 157 158 159 Ptr UdpServer udpServer DynamicCast UdpServer serverAppsGet 0 160 udpServer TraceConnectWithoutContext Rx MakeCallback RecebimentoCallback 161 162 163 if protocolo TCP protocolo Misto 164 A p l i c a o TCP para clientes que utilizam TCP 165 for uint32t i 1 i nClientes i 166 if protocolo Misto i nClientes 2 167 continue Clientes com UDP 168 169 A p l i c a o TCP BulkSend 170 BulkSendHelper source ns3 TcpSocketFactory InetSocketAddress interfacesGetAddress 0 8081 171 sourceSetAttribute MaxBytes UintegerValue 0 Pacotes ilimitados 172 ApplicationContainer sourceApps sourceInstall nodesGet i 173 sourceAppsStart Seconds 20 5 174 sourceAppsStop Seconds tempoExecucao 10 175 176 A p l i c a o TCP PacketSink 177 PacketSinkHelper sink ns3 TcpSocketFactory InetSocketAddress Ipv4Address GetAny 8081 178 ApplicationContainer sinkApps sinkInstall nodesGet 0 179 sinkAppsStart Seconds 00 180 sinkAppsStop Seconds tempoExecucao 10 181 182 183 184 Habilitar o roteamento 185 Ipv4GlobalRoutingHelper PopulateRoutingTables 186 187 I n c i o da s i m u l a o 188 Simulator Stop Seconds tempoExecucao 189 Simulator Run 190 191 Coleta de m t r i c a s 192 double vazao 00 193 double perdaPacotes 00 194 195 if protocolo UDP protocolo Misto 196 Ptr UdpServer udpServer DynamicCast UdpServer serverAppsGet 0 197 vazao udpServer GetTotalRx 8 tempoExecucao 1e6 Mbps 198 if pacotesEnviados 0 199 perdaPacotes 1000 pacotesEnviados pacotesRecebidos pacotesEnviados 200 201 202 203 std cout std endl 204 std cout C o n f i g u r a o da S i m u l a o std endl 205 std cout Protocolo protocolo std endl 206 std cout N m e r o de Clientes nClientes std endl 207 std cout D i s t n c i a entre os N s distancia metros std endl 208 std cout Tamanho do Pacote tamanhoPacote Bytes std endl 209 std cout Tempo de E x e c u o tempoExecucao segundos std endl 210 std cout V a z o vazao Mbps std endl 6 211 std cout Perda de Pacotes perdaPacotes std endl 212 std cout std endl 213 214 Simulator Destroy 215 return 0 216 Listing 1 Codigo Completo para Simulacoes no ns3 23 Detalhamento do Codigo A seguir fornecemos uma explicacao detalhada das principais partes do codigo para facilitar a compreensao de sua funcionalidade e estrutura 231 Inclusao de Modulos Necessarios 1 include ns3core moduleh 2 include ns3network moduleh 3 include ns3internet moduleh 4 include ns3wifi moduleh 5 include ns3mobility moduleh 6 include ns3applications moduleh 7 8 using namespace ns3 Listing 2 Inclusao de Modulos no ns3 Essas linhas incluem os modulos essenciais do ns3 que fornecem as funcional idades basicas para simular redes como gerenciamento de pacotes pilha de pro tocolos de internet simulacao de redes WiFi mobilidade dos nos e aplicacoes de rede UDP e TCP 232 Variaveis Globais para Rastreamento de Pacotes 1 static uint32t pacotesEnviados 0 2 static uint32t pacotesRecebidos 0 Listing 3 Variaveis Globais para Rastreamento de Pacotes Essas variaveis sao usadas para contar o numero total de pacotes enviados e recebidos durante a simulacao permitindo o calculo da taxa de perda de pacotes 233 Funcoes de Callback para Rastreamento 7 1 void EnvioCallback Ptr const Packet packet 2 3 pacotesEnviados 4 5 6 void RecebimentoCallback Ptr const Packet packet 7 8 pacotesRecebidos 9 Listing 4 Funcoes de Callback para Rastreamento Essas funcoes sao chamadas automaticamente pelo ns3 sempre que um pa cote e enviado ou recebido incrementando os contadores correspondentes 234 Definicao do Componente de Log 1 NSLOGCOMPONENTDEFINE ProjetoRedes Listing 5 Definicao do Componente de Log Esta linha define um componente de log para a simulacao permitindo o uso de funcionalidades de logging do ns3 para depuracao e monitoramento 235 Funcao Principal main A funcao main e onde toda a configuracao da simulacao e realizada A seguir descreveremos cada parte principal dessa funcao Parˆametros de Configuracao 1 bool mobilidade false Controle de mobilidade dos clientes 2 std string protocolo UDP O p e s UDP TCP Misto 3 uint32t nClientes 1 N m e r o de clientes na rede 4 double distancia 100 D i s t n c i a entre os n s metros 5 uint32t tamanhoPacote 500 Tamanho do pacote Bytes 6 double tempoExecucao 1500 Tempo de e x e c u o da s i m u l a o segundos 7 std string ssidStr EquipeX SSID da rede Wi Fi Listing 6 Parˆametros de Configuracao Esses parˆametros permitem a personalizacao da simulacao atraves de argu mentos de linha de comando facilitando a execucao de diferentes cenarios sem modificar o codigofonte 8 Parsing de Parˆametros de Linha de Comando 1 CommandLine cmd 2 cmdAddValue mobilidade Ativa ou desativa a mobilidade dos n s clientes mobilidade 3 cmdAddValue protocolo Protocolo de transporte UDP TCP ou Misto protocolo 4 cmdAddValue nClientes N m e r o de clientes na rede nClientes 5 cmdAddValue distancia D i s t n c i a entre os n s metros distancia 6 cmdAddValue tamanhoPacote Tamanho do pacote Bytes tamanhoPacote 7 cmdAddValue tempoExecucao Tempo de e x e c u o da s i m u l a o segundos tempoExecucao 8 cmdParse argc argv Listing 7 Parsing de Parˆametros de Linha de Comando Esta secao utiliza a classe CommandLine para permitir que os parˆametros sejam definidos no momento da execucao da simulacao proporcionando flexi bilidade na configuracao dos cenarios Validacao dos Parˆametros 1 if protocolo UDP protocolo TCP protocolo Misto 2 std cerr Protocolo i n v l i d o Use UDP TCP ou Misto std endl 3 return 1 4 Listing 8 Validacao dos Parˆametros Esta verificacao garante que apenas protocolos validos sejam selecionados evitando erros de configuracao Criacao dos Nos 1 NodeContainer nodes 2 nodesCreate 1 nClientes 1 servidor nClientes Listing 9 Criacao dos Nos Aqui um no servidor Access Point AP e um numero variavel de nos clientes sao criados O no servidor atuara como o ponto central da rede Adhoc Instalacao da Pilha de Protocolos de Internet 1 InternetStackHelper stack 2 stackInstall nodes Listing 10 Instalacao da Pilha de Protocolos de Internet A pilha de protocolos de internet TCPIP e instalada em todos os nos permitindo a comunicacao de rede entre eles 9 Configuracao do Canal Sem Fio e Fısico 1 YansWifiChannelHelper channel YansWifiChannelHelper Default 2 YansWifiPhyHelper phy YansWifiPhyHelper Default 3 phySetChannel channelCreate Listing 11 Configuracao do Canal Sem Fio e Fısico O canal sem fio padrao do ns3 e configurado definindo as caracterısticas fısicas do meio de transmissao frequˆencia largura de banda etc Configuracao do WiFi e MAC 1 WifiHelper wifi 2 wifi SetRemoteStationManager ns3 AarfWifiManager 3 4 C o n f i g u r a o do MAC para os clientes STA 5 WifiMacHelper mac 6 Ssid ssid Ssid Create ssidStr 7 8 macSetType ns3 StaWifiMac 9 Ssid SsidValue ssid 10 ActiveProbing BooleanValue false 11 12 NetDeviceContainer staDevices 13 staDevices wifiInstall phy mac NodeContainer nodes Get 1 nodesGet nClientes 14 15 C o n f i g u r a o do MAC para o servidor AP 16 macSetType ns3 ApWifiMac 17 Ssid SsidValue ssid 18 19 NetDeviceContainer apDevice 20 apDevice wifiInstall phy mac nodesGet 0 Listing 12 Configuracao do WiFi e MAC Esta secao configura os dispositivos WiFi para os clientes STA e para o servidor AP definindo o SSID da rede e desativando a sondagem ativa active probing para evitar interferˆencias Configuracao de Mobilidade 1 MobilityHelper mobility 2 Ptr ListPositionAllocator positionAlloc CreateObject ListPositionAllocator 3 positionAlloc Add Vector 00 00 00 Servidor no ponto 000 4 5 D i s t r i b u i o dos clientes ao redor do servidor 6 double anguloIncremento 3600 nClientes 7 for uint32t i 1 i nClientes i 8 double angulo anguloIncremento i 1 10 9 double x distancia cos angulo MPI 1800 10 double y distancia sin angulo MPI 1800 11 positionAlloc Add Vector x y 00 12 13 14 if mobilidade 15 C o n f i g u r a o de mobilidade com Random Walk 16 mobility SetMobilityModel ns3 RandomWalk2dMobilityModel 17 Bounds RectangleValue Rectangle 150 150 150 150 18 Speed StringValue ns3 ConstantRandomVariable Constant 10 19 else 20 C o n f i g u r a o de mobilidade e s t t i c a 21 mobility SetMobilityModel ns3 ConstantPositionMobilityModel 22 23 24 mobility SetPositionAllocator positionAlloc 25 mobilityInstall nodes Listing 13 Configuracao de Mobilidade Esta parte define a mobilidade dos nos clientes Se a mobilidade estiver ati vada mobilidadetrue os clientes se movimentam aleatoriamente dentro de uma regiao definida utilizando o modelo RandomWalk2dMobilityModel Caso contrario os clientes permanecem estaticos com o modelo ConstantPosition MobilityModel Os clientes sao distribuıdos ao redor do servidor com base na distˆancia especificada e em ˆangulos incrementais para evitar sobreposicao Atribuicao de Enderecos IP 1 Ipv4AddressHelper address 2 addressSetBase 10110 2552552550 3 4 Ipv4InterfaceContainer interfaces 5 interfaces addressAssign apDevice 6 interfacesAdd addressAssign staDevices Listing 14 Atribuicao de Enderecos IP Os enderecos IP sao atribuıdos aos dispositivos de rede AP e clientes uti lizando a classe Ipv4AddressHelper O servidor AP recebe o primeiro en dereco do bloco de enderecos definido e os clientes recebem enderecos sequen ciais Definicao das Aplicacoes UDP TCP Misto 1 ApplicationContainer serverApps 11 2 ApplicationContainer clientApps 3 4 if protocolo UDP protocolo Misto 5 A p l i c a o UDP para clientes que utilizam UDP 6 for uint32t i 1 i nClientes i 7 if protocolo Misto i nClientes 2 8 continue Clientes com TCP 9 10 UdpClientHelper client interfacesGetAddress 0 8080 11 clientSetAttribute MaxPackets UintegerValue 0 Pacotes ilimitados 12 clientSetAttribute Interval TimeValue Seconds 001 Intervalo entre pacotes 13 clientSetAttribute PacketSize UintegerValue tamanhoPacote 14 15 clientAppsAdd clientInstall nodesGet i 16 17 18 A p l i c a o UDP no servidor 19 UdpServerHelper server 8080 20 serverAppsAdd serverInstall nodesGet 0 21 serverAppsStart Seconds 10 22 serverAppsStop Seconds tempoExecucao 10 23 24 Conectar callbacks para rastrear pacotes enviados e recebidos 25 for uint32t i 1 i nClientes i 26 if protocolo Misto i nClientes 2 27 continue Clientes com TCP 28 29 Ptr UdpClient udpClient DynamicCast UdpClient clientAppsGet i 1 30 udpClient TraceConnectWithoutContext Tx MakeCallback EnvioCallback 31 32 33 Ptr UdpServer udpServer DynamicCast UdpServer serverAppsGet 0 34 udpServer TraceConnectWithoutContext Rx MakeCallback RecebimentoCallback 35 36 37 if protocolo TCP protocolo Misto 38 A p l i c a o TCP para clientes que utilizam TCP 39 for uint32t i 1 i nClientes i 40 if protocolo Misto i nClientes 2 41 continue Clientes com UDP 42 12 43 A p l i c a o TCP BulkSend 44 BulkSendHelper source ns3 TcpSocketFactory InetSocketAddress interfacesGetAddress 0 8081 45 sourceSetAttribute MaxBytes UintegerValue 0 Pacotes ilimitados 46 ApplicationContainer sourceApps sourceInstall nodesGet i 47 sourceAppsStart Seconds 20 48 sourceAppsStop Seconds tempoExecucao 10 49 50 A p l i c a o TCP PacketSink 51 PacketSinkHelper sink ns3 TcpSocketFactory InetSocketAddress Ipv4Address GetAny 8081 52 ApplicationContainer sinkApps sinkInstall nodes Get 0 53 sinkAppsStart Seconds 00 54 sinkAppsStop Seconds tempoExecucao 10 55 56 Listing 15 Definicao das Aplicacoes UDP TCP Misto Esta secao configura as aplicacoes de rede para os clientes e para o servidor com base no protocolo selecionado UDP Clientes configurados com UdpClientHelper enviam pacotes UDP para o servidor que esta executando uma instˆancia de UdpServerHelper TCP Clientes configurados com BulkSendHelper enviam dados TCP para o servidor que esta executando uma instˆancia de PacketSinkHelper Misto Metade dos clientes utilizam UDP e a outra metade utilizam TCP Habilitacao do Roteamento 1 Ipv4GlobalRoutingHelper PopulateRoutingTables Listing 16 Habilitacao do Roteamento Esta linha habilita o roteamento global nas tabelas de roteamento dos nos permitindo que os pacotes encontrem seus caminhos ate o destino Execucao da Simulacao 1 Simulator Stop Seconds tempoExecucao 2 Simulator Run Listing 17 Execucao da Simulacao Define o tempo de execucao da simulacao e inicia sua execucao 13 Coleta de Metricas 1 double vazao 00 2 double perdaPacotes 00 3 4 if protocolo UDP protocolo Misto 5 Ptr UdpServer udpServer DynamicCast UdpServer serverAppsGet 0 6 vazao udpServer GetTotalRx 8 tempoExecucao 1 e6 Mbps 7 if pacotesEnviados 0 8 perdaPacotes 1000 pacotesEnviados pacotesRecebidos pacotesEnviados 9 10 11 12 std cout std endl 13 std cout C o n f i g u r a o da S i m u l a o std endl 14 std cout Protocolo protocolo std endl 15 std cout N m e r o de Clientes nClientes std endl 16 std cout D i s t n c i a entre os N s distancia metros std endl 17 std cout Tamanho do Pacote tamanhoPacote Bytes std endl 18 std cout Tempo de E x e c u o tempoExecucao segundos std endl 19 std cout V a z o vazao Mbps std endl 20 std cout Perda de Pacotes perdaPacotes std endl 21 std cout std endl 22 23 Simulator Destroy 24 return 0 Listing 18 Coleta de Metricas Apos a execucao da simulacao as metricas de vazao throughput e perda de pacotes sao calculadas e exibidas no console A vazao e calculada com base no total de bytes recebidos pelo servidor convertidos para Mbps e a perda de pacotes e calculada como a porcentagem de pacotes enviados que nao foram recebidos com sucesso 236 Execucao dos Cenarios Para executar os diferentes cenarios especificados utilize os seguintes comandos no terminal ajustando os parˆametros conforme necessario 1 Cenario sem Mobilidade e Aplicacao UDP 14 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes2 distancia10 2 Cenario com Mobilidade e Aplicacao UDP waf run ProjetoRedes mobilidadetrue protocoloUDP nClientes2 distancia10 3 Cenario com Aplicacao TCP waf run ProjetoRedes mobilidadefalse protocoloTCP nClientes2 distancia10 4 Cenario com Aplicacao Mista 50 UDP 50 TCP waf run ProjetoRedes mobilidadefalse protocoloMisto nClientes4 distancia10 5 Variacao do Numero de Clientes Para variar o numero de clientes altere o parˆametro nClientes para os valores 1 2 4 8 16 32 em cada execucao waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes1 distancia10 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes2 distancia20 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes4 distancia30 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes8 distancia40 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes16 distancia50 waf run ProjetoRedes mobilidadefalse protocoloUDP nClientes32 distancia60 237 Geracao de Graficos com Python Apos a execucao das simulacoes os resultados coletados vazao perda de pacotes e se implementado atraso podem ser organizados e visualizados utilizando ferramentas como Python com a biblioteca Matplotlib A seguir apresentamos um exemplo de script Python para gerar graficos a partir dos dados coletados 1 import matplotlibpyplot as plt 2 3 Exemplo de dados coletados substituir pelos dados reais 4 distancias 10 20 30 40 50 60 70 80 90 100 110 120 5 vazao 50 48 46 44 42 40 38 36 34 32 30 28 em Mbps 6 perdapacotes 05 10 15 20 25 30 35 40 45 50 55 60 em 7 8 G r f i c o de V a z o 9 pltfigure 10 pltplotdistancias vazao markero colorgreen 11 plttitle V a z o vs D i s t n c i a 12 pltxlabel D i s t n c i a metros 13 pltylabel V a z o Mbps 15 14 pltgridTrue 15 pltsavefigvazaopng 16 pltclose 17 18 G r f i c o de Perda de Pacotes 19 pltfigure 20 pltplotdistancias perdapacotes markero colorred 21 plttitlePerda de Pacotes vs D i s t n c i a 22 pltxlabel D i s t n c i a metros 23 pltylabelPerda de Pacotes 24 pltgridTrue 25 pltsavefigperdapacotes png 26 pltclose Listing 19 Script Python para Geracao de Graficos Passos para Gerar os Graficos 1 Instale o Matplotlib se ainda nao estiver instalado pip install matplotlib 2 Crie um Arquivo Python por exemplo gerar graficospy e cole o codigo acima substituindo os valores dos arrays pelos dados reais obtidos das simulacoes 3 Execute o Script Python python gerargraficospy 4 Verifique os Arquivos de Imagem Gerados vazaopng perda pacotespng e faca upload no Overleaf para incluir nos seus relatorios 238 Execucao Automatica de Multiplas Simulacoes Para facilitar a execucao de multiplas simulacoes com diferentes configuracoes vocˆe pode criar um script Bash que automatize esse processo A seguir um exemplo de script que executa simulacoes para diferentes combinacoes de pro tocolo mobilidade numero de clientes e distˆancia 1 binbash 2 Define as c o n f i g u r a e s 3 protocolos UDP TCP Misto 4 mobilidades false true 5 clientes 1 2 4 8 16 32 6 distancias 10 20 30 40 50 60 70 80 90 100 110 120 16 7 8 Loop para executar todas as c o m b i n a e s 9 for protocolo in protocolos 10 do 11 for mobilidade in mobilidades 12 do 13 for n in clientes 14 do 15 for d in distancias 16 do 17 echo Executando protocoloprotocolo mobilidademobilidade clientesn distanciad 18 waf run ProjetoRedes protocolo protocolo mobilidademobilidade nClientesn distanciad resultadoprotocolomobmobilidade clientesndistanciadtxt 19 done 20 done 21 done 22 done Listing 20 Script Bash para Automatizacao de Simulacoes Uso do Script Bash 1 Crie um Arquivo Bash por exemplo executar simulacoessh e cole o codigo acima 2 Dˆe Permissao de Execucao ao Script chmod x executarsimulacoessh 3 Execute o Script executarsimulacoessh Este script executara todas as combinacoes de protocolo UDP TCP Misto mobilidade true false numero de clientes 1 2 4 8 16 32 e distˆancia 10 20 120 metros salvando os resultados de cada sim ulacao em arquivos de texto separados para posterior analise 17 24 Implementacao de Metricas Adicionais Atraso Latˆencia Para medir o atraso latˆencia de forma mais precisa e necessario implementar mecanismos adicionais no codigo para rastrear o tempo de envio e recebimento de cada pacote individualmente A seguir apresentamos uma abordagem sim plificada para calcular a latˆencia media utilizando pacotes UDP Modificacao das Funcoes de Callback para Rastrear Timestamps Adi cione as seguintes inclusoes e variaveis globais no inıcio do seu codigo 1 include map 2 include vector 3 4 stdmap uint32t double pacotesTimestamps 5 stdvector double atrasos Listing 21 Inclusao de Bibliotecas e Variaveis Globais para Latˆencia Modifique as funcoes de callback para rastrear os timestamps 1 void EnvioCallback Ptr const Packet packet 2 3 pacotesEnviados 4 Supondo que cada pacote tenha um identificador nico ID 5 uint32t id pacotesEnviados 6 pacotesTimestamps id Simulator NowGetSeconds 7 8 9 void RecebimentoCallback Ptr const Packet packet 10 11 pacotesRecebidos 12 Supondo que cada pacote tenha um identificador nico ID 13 uint32t id pacotesRecebidos 14 if pacotesTimestamps findid pacotesTimestamps end 15 double envio pacotesTimestamps id 16 double recepcao Simulator NowGetSeconds 17 double atraso recepcao envio 18 atrasospushback atraso 19 20 Listing 22 Funcoes de Callback Modificadas para Latˆencia Calculo da Latˆencia Media Apos a simulacao adicione o seguinte trecho de codigo para calcular a latˆencia media 1 double somaAtrasos 00 18 2 for double atraso atrasos 3 somaAtrasos atraso 4 5 double atrasoMedio atrasosempty 00 somaAtrasos atrasossize 6 7 E x i b i o da L a t n c i a M d i a 8 std cout Atraso M d i o atrasoMedio segundos std endl Listing 23 Calculo da Latˆencia Media Nota Importante Esta implementacao e simplificada e assume que cada pacote enviado possui um identificador unico correspondente Para uma im plementacao mais robusta e necessario incluir identificadores nos pacotes e garantir que cada envio corresponda a um recebimento evitando mismatches e garantindo a precisao das medicoes de latˆencia 25 Consideracoes sobre a Implementacao Rastreamento de Pacotes A implementacao acima utiliza um mapa stdmapuint32t double Calculo de Latˆencia A diferenca entre o tempo de recepcao e envio de cada pacote e calculada e armazenada em um vetor stdvectordouble atrasos A latˆencia media e entao calculada como a media aritmetica dos atrasos Limitacoes Esta abordagem pressupoe que os pacotes sao recebidos na ordem em que sao enviados e que cada pacote enviado corresponde a um pacote recebido Em cenarios com alta perda de pacotes ou retransmissoes pode haver inconsistˆencias nos identificadores necessitando de mecanis mos adicionais para garantir a correspondˆencia correta Melhorias Futuras Para uma medicao mais precisa da latˆencia recomenda se implementar um mecanismo de identificacao unico para cada pacote por exemplo utilizando cabecalhos personalizados e garantir a corre spondˆencia entre pacotes enviados e recebidos mesmo em cenarios com alta perda ou reordenacao de pacotes 19

Sua Nova Sala de Aula

Sua Nova Sala de Aula

Empresa

Central de ajuda Contato Blog

Legal

Termos de uso Política de privacidade Política de cookies Código de honra

Baixe o app

4,8
(35.000 avaliações)
© 2025 Meu Guru®