0% acharam este documento útil (0 voto)
18 visualizações15 páginas

Estruturas e Protocolos de Redes de Computadores

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
18 visualizações15 páginas

Estruturas e Protocolos de Redes de Computadores

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

REDES DE COMPUTADORES

Modelo OSI (Open Systems Interconnection)

Uma estrutura de 7 camadas que organiza como dados são transmitidos em uma
rede.

1. Camada Física (1ª):

o Transmite os dados como sinais elétricos, ópticos ou de rádio.

o Hardware envolvido: cabos, switches e hubs.

o Exemplos: Ethernet, USB.

2. Camada de Enlace de Dados (2ª):

o Garante que os dados sejam enviados sem erros dentro da mesma


rede.

o Divide-se em:

 MAC (Media Access Control): Controle de acesso ao meio


físico.

 LLC (Logical Link Control): Controle de fluxo e detecção de


erros.

o Protocolos: Ethernet, Wi-Fi (802.11).

3. Camada de Rede (3ª):

o Responsável pelo roteamento de pacotes entre redes diferentes.

o Trabalha com endereços lógicos (IP).

o Protocolos: IPv4, IPv6, ICMP.

4. Camada de Transporte (4ª):

o Garante entrega confiável e ordenada dos dados.

o Protocolos:

 TCP: Conexão confiável, com controle de erros.

 UDP: Rápido, mas sem garantia de entrega.

5. Camada de Sessão (5ª):

o Estabelece, gerencia e encerra sessões de comunicação.

o Exemplo: Conexões remotas via SSH.

6. Camada de Apresentação (6ª):

o Traduz os dados para o formato compreensível pelo aplicativo.

o Responsável pela compressão, criptografia e conversão de formatos.

o Exemplo: Criptografia SSL/TLS.

7. Camada de Aplicação (7ª):


o Interage diretamente com os aplicativos do usuário.

o Protocolos: HTTP, FTP, SMTP.

Modelo TCP/IP (Transmission Control Protocol/Internet Protocol)

Mais prático que o OSI, com 4 camadas:

1. Camada de Acesso à Rede:

o Equivale às camadas Física e Enlace do OSI.

o Lida com hardware e protocolos de enlace (Ethernet, Wi-Fi).

2. Camada de Internet:

o Equivale à camada de Rede do OSI.

o Roteia pacotes de dados entre redes.

o Protocolos: IPv4, IPv6, ICMP.

3. Camada de Transporte:

o Equivale à camada de Transporte do OSI.

o Protocolos:

 TCP: Controla erros, fragmentação e reordenação.

 UDP: Para transmissões rápidas, como streaming.

4. Camada de Aplicação:

o Combina as camadas de Sessão, Apresentação e Aplicação do OSI.

o Protocolos: HTTP, SMTP, FTP, DNS.

Endereçamento IP

 IPv4: Endereços de 32 bits (ex.: [Link]).

 IPv6: Endereços de 128 bits para suportar mais dispositivos (ex.:


[Link]).

 IPs públicos são usados na internet, enquanto IPs privados (ex.: 192.168.x.x)
são usados em redes internas.

Topologias de Rede

1. Barramento:

o Todos os dispositivos conectados ao mesmo cabo principal.

o Econômica, mas com baixa resiliência: um cabo rompido pode


derrubar a rede.

2. Estrela:

o Cada dispositivo conecta-se a um switch ou roteador central.


o Vantagens: fácil de isolar falhas.

o Desvantagem: dependência do dispositivo central.

3. Anel:

o Dados fluem em um círculo fechado.

o Vantagens: simples para redes pequenas.

o Desvantagem: falha em um ponto interrompe toda a comunicação.

4. Malha:

o Todos os dispositivos possuem conexões redundantes.

o Vantagem: altamente confiável.

o Desvantagem: custo elevado.

5. Árvore (Híbrida):

o Combinação de várias topologias, geralmente barramento e estrela.

o Usada em grandes redes corporativas.

Protocolos Importantes

1. DNS (Domain Name System):

o Converte nomes de domínio (ex.: [Link]) para endereços IP.

o Funciona como a "agenda telefônica" da internet.

2. HTTP/HTTPS:

o HTTP: protocolo usado para transferir páginas web.

o HTTPS: versão segura com criptografia via SSL/TLS.

3. ARP:

o Traduz endereços IP para endereços MAC.

o Exemplo: Um dispositivo quer falar com outro, mas só conhece o IP. O


ARP encontra o MAC correspondente.

4. ICMP:

o Usado para diagnóstico de rede, como no comando ping.

Modulação de Sinais

1. AM (Amplitude Modulation):

o Informação é transmitida variando a amplitude do sinal.

o Usado em transmissões de rádio AM.

2. FM (Frequency Modulation):

o Informação transmitida variando a frequência do sinal.


o Usado em rádio FM e transmissões de áudio.

3. QAM (Quadrature Amplitude Modulation):

o Combina amplitude e fase para aumentar a eficiência.

o Utilizado em redes Wi-Fi e 4G.

Equipamentos de Rede

1. Roteador:

o Conecta diferentes redes, escolhendo o melhor caminho para os


dados.

2. Switch:

o Conecta dispositivos dentro de uma mesma rede local (LAN).

o Envia dados apenas ao destino correto, usando endereços MAC.

3. Hub:

o Simples, retransmite dados para todos os dispositivos conectados.

o Ineficiente comparado a switches.

4. Firewall:

o Monitora e filtra o tráfego de entrada e saída com base em regras.

o Protege contra ataques externos.

ANÁLISE E PROJETO DE SISTEMAS


1. Metodologias de Desenvolvimento de Software
Tradicionais:
1. Cascata:
o Modelo Sequencial:

 O modelo em cascata é linear, ou seja, uma fase


depende da conclusão da anterior. Ideal para projetos
com requisitos bem definidos e pouca chance de
alteração.
 Fases:
 Requisitos: Levantamento de todos os requisitos
do sistema.
 Design: Arquitetura e design detalhado do
sistema.
 Implementação: Programação e
desenvolvimento.
 Testes: Testes unitários e integração do sistema.
 Manutenção: Correções e ajustes pós-
implantação.
 Vantagens: Previsibilidade, controle rigoroso.
 Desvantagens: Difícil adaptação a mudanças após o
início do projeto.
2. Prototipação:
o Modelo Iterativo:

 O foco é construir protótipos (versões iniciais e


funcionais do sistema) para capturar os requisitos e
obter feedback rápido de usuários.
 Fases:
 Desenvolvimento de protótipos: Criação de
versões iniciais do sistema com funcionalidades
básicas.
 Elicitação de requisitos: O protótipo é avaliado
pelos usuários para ajustar os requisitos.
 Aperfeiçoamento: Ajustes contínuos nos
protótipos conforme feedback.
 Vantagens: Identificação precoce de problemas, maior
alinhamento com os usuários.
 Desvantagens: Pode resultar em foco excessivo nas
funcionalidades e não no design geral do sistema.
3. RAD (Rapid Application Development):
o Desenvolvimento Acelerado:

 Usado para criar sistemas em um tempo reduzido com a


utilização de protótipos e ferramentas de
desenvolvimento rápido.
 Fases:
 Planejamento inicial: Definição do escopo
básico e equipe.
 Prototipagem: Desenvolvimento de protótipos
rápidos.
 Revisão do protótipo e melhorias: Feedback e
ajustes rápidos.
 Desenvolvimento final: Aperfeiçoamento e
implementação das versões finais.
 Vantagens: Tempo reduzido de desenvolvimento,
flexibilidade.
 Desvantagens: Risco de falta de controle sobre a
qualidade, dependência de ferramentas específicas.
Ágeis:
1. SCRUM:
o Framework Ágil:

 SCRUM é um framework que segue práticas ágeis, onde


o trabalho é realizado em sprints (ciclos curtos de
desenvolvimento). Foca na entrega incremental de
software.
 Papéis:
 Scrum Master: Facilita o processo, ajuda a
remover impedimentos e garante que a equipe
siga as práticas do SCRUM.
 Product Owner (PO): Representa o cliente ou as
partes interessadas e prioriza o trabalho a ser
feito, mantendo o backlog de produto.
 Desenvolvedores: A equipe responsável pela
entrega do incremento de software.
 Eventos:
 Sprint: Ciclo de desenvolvimento com duração
fixa (geralmente 2-4 semanas).
 Planejamento da Sprint: Definição dos itens do
backlog a serem entregues na sprint.
 Reuniões Diárias: Check-in diário de 15 minutos
para alinhamento.
 Revisão da Sprint: Apresentação das
funcionalidades desenvolvidas.
 Retrospectiva: Reflexão sobre o processo da
sprint e identificação de melhorias.
 Artefatos:
 Backlog do Produto: Lista ordenada de tudo o
que precisa ser feito no projeto.
 Backlog da Sprint: Itens selecionados do
backlog do produto para a sprint.
 Incremento: A versão do sistema com as
funcionalidades desenvolvidas na sprint.
 Vantagens: Flexibilidade, colaboração constante com o
cliente, entrega contínua de valor.
 Desvantagens: Requer disciplina e comprometimento,
pode ser difícil de aplicar em grandes equipes.
2. Scrumban:
o Combinando Scrum e Kanban:

 Uma adaptação onde o time usa a estrutura do Scrum,


mas com um fluxo contínuo de trabalho inspirado no
Kanban.
 Características:
 Não há planejamento rígido de Sprints, mas o time
mantém um backlog com prioridades.
 O trabalho é "puxado" conforme a capacidade do
time, sem restrição de tempo para sprints.
 Vantagens: Flexibilidade no planejamento, adaptação
rápida a mudanças.
 Desvantagens: Pode perder a estrutura de
planejamento a longo prazo.

2. Prática de Planejamento e Projeto de Software


1. Planejamento:
o Estudo de Viabilidade: Análise técnica, econômica e
operacional para verificar se o projeto é possível.
o Escopo: Definição detalhada do que será incluído e o que não
será no projeto para evitar ambiguidade.
o Cronograma: Definição das atividades necessárias, suas
durações e como elas se relacionam.
o Definição de Equipe: Identificação de responsabilidades e
formação de grupos para tarefas específicas.
2. Ferramentas:
o Diagramas UML (Unified Modeling Language):

 Diagrama de Classes: Representa as classes e seus


relacionamentos.
 Diagrama de Sequência: Detalha a interação entre os
objetos em um processo.
 Diagrama de Comunicação: Foca na comunicação
entre os objetos.
 Diagrama de Estado: Mostra os estados de um objeto
durante o ciclo de vida.
 Diagrama de Atividade: Representa o fluxo de
trabalho e decisões dentro do sistema.
3. Requisitos:
o Funcionais: Descrevem o comportamento do sistema
(exemplo: “O sistema deve permitir login de usuários”).
o Não funcionais: Relacionados a qualidade, desempenho e
restrições (exemplo: “O sistema deve processar 1.000
requisições por segundo”).

3. Implementação e Implantação
1. Escolha de Tecnologias:
o Definir ferramentas, linguagens de programação, frameworks e
sistemas necessários para o desenvolvimento.
o Considerações incluem a compatibilidade com os requisitos do
sistema e a escalabilidade.
2. Testes:
o Testes Unitários: Validam pequenas partes do sistema
(funções, métodos).
o Testes de Integração: Verificam a integração de diferentes
módulos do sistema.
o Homologação: Teste final com os usuários para garantir que o
sistema atenda aos requisitos.
3. Documentação e Treinamento:
o Criar guias e manuais de usuário, além de treinar a equipe para
a utilização do sistema.

4. UML (Unified Modeling Language)


 Objetivo:
o Visualizar, especificar, construir e documentar artefatos de
software.
 Categorias de Diagramas UML:
1. Estruturais:

 Diagramas de Classes e Objetos para definir a


estrutura de dados do sistema.
2. Comportamentais:
 Diagramas de Casos de Uso, Atividades e Máquinas
de Estado para representar o comportamento do
sistema.
3. Interação:

 Diagramas de Sequência e Comunicação para


modelar a interação entre componentes.

5. Engenharia de Requisitos
1. Elicitação de Requisitos:
o Técnicas como entrevistas, observações e protótipos para
capturar os requisitos de todos os stakeholders.
o Fontes: Stakeholders, documentação existente e sistemas
similares.
2. Validação de Requisitos:
o Objetivos:

 Consistência: Verificar se não há conflitos entre os


requisitos.
 Realismo: Verificar se os requisitos podem ser
implementados com as tecnologias disponíveis.
 Completude: Garantir que todos os aspectos do
sistema foram abordados.

6. Princípios de Projeto e Desenvolvimento


1. Coesão:
o Alta coesão: Cada módulo deve realizar uma única tarefa de
forma eficiente.
o Baixa coesão: Módulos que tentam realizar muitas tarefas
tornam o código mais difícil de entender e manter.
2. Acoplamento:
o Baixo acoplamento: Módulos independentes, facilitando a
manutenção e modificação do sistema.
o Alto acoplamento: Módulos fortemente dependentes,
tornando o sistema mais rígido e difícil de modificar.
3. Boas Práticas:
o SOLID: Padrões de design para sistemas orientados a objetos
(ex: Princípio da Responsabilidade Única, Princípio
Aberto/Fechado).
o DRY (Don't Repeat Yourself): Evitar duplicação de código.

o KISS (Keep It Simple, Stupid): Manter a simplicidade no


design e implementação.

7. Processos e Ferramentas
1. Controle de Versão:
o Git: Sistema de versionamento distribuído para controlar e
colaborar no código-fonte.
 Comandos principais:
 git init: Inicializa um repositório Git.
 git commit: Registra mudanças no repositório.
 git branch: Cria e gerencia branches.
 git merge: Mescla mudanças de diferentes
branches.
2. IDE (Integrated Development Environment):
o Ferramentas que integram editores de código, compiladores e
depuradores, facilitando o processo de desenvolvimento.

8. Frameworks e Bibliotecas
1. Frameworks:
o Frontend: React, Angular (para desenvolvimento de interfaces
de usuário).
o Backend: Spring Boot, Django (para lógica de negócios e
acesso a banco de dados).
o Mobile: React Native, Flutter (para desenvolvimento
multiplataforma).
2. Bibliotecas:
o Python: Pandas e NumPy (para análise de dados).

o JavaScript: Lodash (para manipulação de arrays e objetos).

9. Kanban e Scrum
1. Scrum:
o Times autogerenciáveis: Foco em entregas incrementais
com sprints.
o Artefatos: Backlog do produto, backlog da sprint e incremento
de software.
2. Kanban:
o Fluxo contínuo: Utiliza quadros visuais para organizar o
trabalho, com foco na limitação de tarefas em andamento
(WIP).

Programação para Dispositivos Mobiles


Ferramentas e Tecnologias Utilizadas
1. VSCode (Visual Studio Code)
o Um editor de código poderoso e leve, com suporte para várias
linguagens e extensões que otimizam o desenvolvimento.
o Principais características:

 Depurador integrado.
 Suporte para controle de versão.
 Personalização por meio de extensões.
2. [Link]
o Ambiente de execução JavaScript do lado do servidor.

o Permite criar aplicações escaláveis e eficientes.

o Inclui o npm (Node Package Manager), que gerencia


bibliotecas e dependências.
3. Expo
o Conjunto de ferramentas para desenvolvimento rápido de
aplicativos React Native.
o Recursos principais:

 Testes em dispositivos reais ou emuladores.


 Publicação e compartilhamento de aplicativos
facilmente.
4. Yarn
o Alternativa ao npm para gerenciar pacotes e dependências,
focado em velocidade e segurança.
5. Axios
o Biblioteca que facilita a realização de requisições HTTP.

o Suporta métodos como GET, POST, PUT e DELETE.


o Possui uma API simples para configurar cabeçalhos e tratar
erros.
6. Android Studio
o IDE para desenvolvimento Android.

o Inclui o AVD Manager para criar e gerenciar emuladores


Android.
7. Postman
o Ferramenta para testar APIs.

o Permite enviar requisições, configurar parâmetros e visualizar


respostas de forma organizada.

Arquitetura Cliente-Servidor
 Modelo Cliente-Servidor:
o O cliente (navegador ou app) envia solicitações ao servidor,
que processa e retorna respostas.
 Protocolo HTTP:
o Define como clientes e servidores se comunicam.

o Métodos principais:

 GET: Solicita dados.


 POST: Envia dados para criar recursos.
 PUT: Atualiza ou cria recursos.
 DELETE: Remove recursos.
 Estrutura da Requisição HTTP:
o URL: Identifica o servidor e o recurso.

o Método HTTP: Define a ação desejada.

o Headers: Informações adicionais, como tipo de conteúdo.

o Body: Dados enviados, principalmente em POST e PUT.

JSON (JavaScript Object Notation)


 Definição:
o Formato leve para representação e troca de dados.

o É fácil de ler e escrever, tanto por humanos quanto por


máquinas.
 Estrutura:
o Objetos: Coleções de pares chave-valor.

o Arrays: Listas ordenadas de valores.

o Valores: Strings, números, booleanos, null.

 Utilização:
o Armazenamento de dados em bancos NoSQL.

o Comunicação entre cliente e servidor via APIs.

React Native e Expo


 React Native:
o Framework que permite criar aplicativos móveis nativos usando
JavaScript.
o Componentes:

 Blocos reutilizáveis que formam a interface do usuário.


 Exemplo: Text, View, Button.
 Babel: configurações pra transpilar o código, pra que
garanta compatibilidade com dispositivos mais antigos.
 Hook: Possui o useState e o useEffect.
useState gerencia estados locais. (componentes q
podem mudar durante o ciclo de vida de um
componente)
 Expo:
o Facilita o desenvolvimento com React Native.

o Principais vantagens:

 Oferece uma plataforma de emulação para testar


rapidamente.
 Permite iniciar projetos com configurações mínimas.

Hooks do React
1. useState:
o Permite gerenciar estados em componentes funcionais.

o Utilizado para armazenar e atualizar informações dinâmicas.

2. useEffect:
o Executa efeitos colaterais em componentes funcionais, como
chamadas a APIs.
o Pode ser configurado para rodar após a renderização inicial ou
em atualizações específicas.

Axios e Requisições HTTP


 Axios:
o Simplifica a comunicação com servidores por meio de
requisições HTTP.
o Recursos principais:

 Suporte para promessas.


 Configuração simples de cabeçalhos.
 Tratamento automático de erros.
 Requisições Comuns:
o GET: Solicita dados.

o POST: Envia dados para criação de recursos.

o PUT: Atualiza recursos existentes.

o DELETE: Remove recursos.

Estrutura de Projetos React Native


1. Arquivos Principais:
o [Link]: Ponto de entrada do aplicativo. Contém a lógica
principal da aplicação.
o [Link]: Define metadados do projeto, como
dependências, scripts e versão.
o [Link]: Configurações para transpilar código
moderno JavaScript.
o assets/: Pasta para recursos estáticos como imagens.

2. Outros Arquivos:
o node_modules/: Contém pacotes instalados via npm ou yarn.

o [Link]: Define configurações e metadados do aplicativo.

Modelo de Desenvolvimento Mobile


 Estilos:
o Criados usando o StyleSheet para definir a aparência dos
componentes.
 Ciclo de Vida:
o Envolve o carregamento inicial, atualização de estados e
comunicação com APIs externas.
 Performance:
o A estrutura do React Native, combinada com ferramentas como
Expo e Axios, oferece uma experiência fluida para o usuário
final.

Você também pode gostar