Redes

01/06/22

Camadas de aplicação


RTT: (Round Trip Time) --> Pág 75 do Livro [Kurose | Ross]

- Medida de tempo "ida e volta"

Paralelismo: Não há necessidade de esperar o pacote ser lido por completo para poder enviar outro, dessa forma múltiplos pacotes podem ser iniciados.


HTTP/2: Stream, Mensagem, Frame.


02/06/22

HTTP Métodos: POST/HEAD/PUT/DELETE

Comunicação SMTP pode cair em provas.

- Utiliza protocolo TCP porta(25)

POP3

- Utiliza protocolo TCP porta(110)

03/06/22

Protocolo HTTP


- A aba de pesquisa do Google usa GET em vez de POST, pois, GET permite Bookmark. O POST ainda poderia ser utilizado, porém, sem a possibilidade de Bookmark.

- Pode-se analisar o url e perceber que é usado GET ("?" + Parâmetros)

- Quando o URL é muito extenso é preferível usar POST.

- Nomes de usuário e senha também podem ser enviados pelo GET, mas quando enviados, são criptografados na URL.


Formato da mensagem HTTP

Resquest:

Screenshot from 2022-06-03 10-47-26

Screenshot from 2022-06-03 10-47-35

Response:

Screenshot from 2022-06-03 10-52-02

Screenshot from 2022-06-03 10-52-13


Códigos HTTP Response

301: Em resumo serve para redirecionamento. (Oculto no URL, mas visível no "Telnet" do terminal)

400: Bad request, ou seja, a requisição não foi entendida pelo servidor.

404: Destino não encontrado! (No "Telnet" o comando 'GET /"Url inexistente" / HTTP/1.1' apresenta a mensagem 404)


Em um site é bom ter uma ferramenta que analisa a taxa de acesso do próprio site, ademais uma ferramenta que edita as permissões do acesso para que não tenha uma excesso de requisições por um mesmo usuário. (Por exemplo: Bots)

Códigos HTTP Response resumidamente.


Procurar sobre "Postman"


06/06/22 - Note Neves

Material feito por: SprigganCS

Atrasos

Diferença entre atraso de transmissão e propagação.

Atraso de transmissão está relacionado ao tempo de converter a informação em onda de rádio ou em energia. Depende da largura de banda.

Atraso de propagação está relacionado a distância (como a distância que uma onda precisa percorrer de um ponto a outro).

PC -> Roteador (transmissão) -> (propagação) -> Outro roteador

- Atraso de propagação = d/s

D = distância entre roteadores

S = velocidade de propagação no meio

Atraso total = Aprocessamento + Afila + Atransmissão + Apropagação

  • Atraso de processamento tipicamente são poucos microsegundos

  • Atraso de fila depende do congestionamento

  • Atraso de transmissão = L/R, significativo para links de baixa velocidade

  • Atraso de propagação varia de poucos microsegundos a centenas de segundos


Camadas & Seus protocolos

  • Aplicação - http, pop3, imap, dns, smtp, dhcp, ftp
  • Transporte – TCP, UDP
  • Rede – IP, BGP, IGP, OSPF, ICMP
  • Enlace – Wifi, Ethernet
  • Física - Bits "nos fios"

    (Quanto mais para cima na lista, mais próximo ao usuário).


    06/06/22 - Data de postagem!

    Portas

    Um número de porta é associado a um único processo (gerado por um programa em execução).

    Nº de porta <1024 são reservadas (http, https, ssh, etc)

    Nº de porta >=1024 são chamadas alfas e podem ser usadas.

    O número de porta utilizado por um processo no PC cliente (geralmente alfa, pois muitas abas podem estar abertas num navegador) se liga a uma porta (geralmente reservada) do servidor, por esse motivo que os números de portas em cada ponta é diferente. (Segundo o professor pode ser igual, mas conceitualmente é estranho).


    Protocolos de transporte

    TCP

  • É um tipo de serviço orientado à conexão. Ele é mais lento, mas consegue transportar mais recursos, informações longas como páginas html, arquivos de estilo, etc.
  • Se houver perda de dados no caminho (perda de pacote), ele recupera automaticamente.
  • Uma quantidade de memória é usada para armazenar informações necessárias.
  • É garantido que a informação transmitida é recebida pelo usuário, por esse motivo é mais seguro.
  • As informações chegam ordenadas.
  • Possui controle de fluxo e de congestionamento. O controle de fluxo evita que o buffer de destino fique cheio.

    UDP

  • É outro tipo de serviço, que funciona com os recursos mínimos.
  • DNS é um exemplo que funciona com o protocolo UDP.
  • Se houver perda, os dados são perdidos, e uma nova requisição deve ser feita a partir da aplicação.
  • Não há garantia que a informação transmitida será recebida pelo usuário.
  • As informações podem chegar em ordem diferentes da saída.
  • A vantagem em se utilizar o UDP é que é mais rápido.
  • O UDP não inclui sistema de controle de congestionamento.
  • UDP funciona em tempo real.

    Socket e portas são sinônimos.

    DNS: Sistema de nome de domínio, é como uma lista que contém as URLs (facil de decorar) relacionado com um ip (endereço) dos sites. Quando o usuario entra num site pelo url, o Resolver manda essa string para o Recursivo (servidor disponibilizado pelos provedores de internet), o recursivo possui uma lista com os ip's, mas caso a URL requisitada nunca tenha sido acessada pelos usuários anteriormente, ele pede para o servidor raíz localizar, que por sua vez pergunta aos servidores autoritativos. Até que o ip do site seja localizado em algum servidor. Então esse endereço retorna com o ip do servidor e a porta que aquela página HTML está localizada.


    A comunicação pode ser feita de 3 formas: cliente/servidor, P2P (peer to peer) ou híbrida.

    Cliente/servidor: O cliente entra numa url, o Recursivo retorna o IP e a porta daquele HTML(UDP), agora a ponta do usuário sabe onde requisitar o HTML, que vai ser enviado pelo servidor pelo protocolo TCP.

    Outro modelo cliente/servidor é com um balanceador, que permite que os servidores se mantenham ocultos ao usuário. Um único balanceador se conecta a vários servidores por uma rede privada.

    P2P: Mais raro, a conexão é direta sem intermédio de um servidor.

    Híbrido: Servidor é essencial para o funcionamento, mas os clientes podem se comunicar diretamente.



  • 07/06/22 - Estudo

    Protocolo de aplicação define:

  • Os tipos de mensagens trocadas, por exemplo, requisição e de resposta.
  • A sintaxe de vários tipos de mensagens, tais como os campos da mensagem e como os campos são delineados.
  • A semântica dos campos, isto é, o significado da informação nos campos.
  • Regras para determinar quando e como um processo envia mensagens e responde mensagens.

    HTTP define como os clientes requisitam páginas aos servidores e como eles as transferem aos clientes.

    Socket: É a interface entre a camada de aplicação e a de transporte dentro de um hospedeiro.

    - "Analogamente a porta de uma casa."

    *HTTP é um protocolo sem estado, pois, não mantém informação alguma sobre o cliente.



  • 08/06/22

    DNS local = RECURSIVO.

    - Os demais ligados são ITERATIVOS como por exemplo: .root, .br, .edu.
    Entre o computador e o servidor DNS local a consulta é Recursiva.


    18/06/22

  • Camada de transporte
  • A camada de transporte da Internet carrega mensagens da camada de aplicação entre os lados do cliente e servidor de um aplicação. (Protocolos: UDP, TCP)

  • Camada de rede
  • A camada de rede da Internet é responsável pela movimentação, de um hospedeiro para outro, de pacotes da camada de rede, conhecidos como datagramas. O protocolo de camada de transporte da Internet (TCP ou UDP) em um hospedeiro de origem passa um segmento da camada de transporte e um endereço de destino à camada de rede, exatamente como você passaria ao serviço de correios uma carta com um endereço de destinatário. A camada de rede então provê o serviço de entrega do segmento à camada de transporte no hospedeiro destino. Essa camada inclui o famoso IP, que define os campos no datagrama e o modo como os sistemas finais e os roteadores agem nesses campos. Existe apenas um único protocolo IP, e todos os componentes da Internet que têm uma camada de rede devem executá-lo. Embora a camada de rede contenha o protocolo IP e também numerosos outros de roteamento, ela quase sempre é denominada apenas camada IP, refletindo o fato de que ele é o elemento fundamental que mantém a integridade da Internet. (Protocolos: IP)

  • Camada de enlace
  • A camada de rede roteia um datagrama por meio de uma série de roteadores entre a origem e o destino. Para levar um pacote de um nó (hospedeiro ou roteador) ao nó seguinte na rota, a camada de rede depende dos serviços da camada de enlace. Em especial, em cada nó a camada de rede passa o datagrama para a de enlace, que o entrega, ao longo da rotam ao nó seguinte, no qual o datagrama é passado da camada de enlace para a de rede. Os serviços prestados pela camada de enlace dependem do protocolo específico empregado no enlace. Por exemplo, alguns desses protocolos proveem entrega garantida entre enlaces, isto é, desde o nó transmissor, passando por um único enlace, até o nó receptor. (Protocolos: Ethernet, Wi-fi, DOCSIS)



    01/07/22

    1 Byte = 8 Bits


    MSS: Maximum segment size -> quantidade máxima de dados que pode-se enviar em um único pacote. (Tamanho máximo do segmento)

    MTU: Maximum tranmission unit -> Tamanho máximo de pacote que a camada de enlace comnseuge transmitir. (Unidade máxima de transmissão)

    MSS + Cabeçalho <= MTU

    ACK: Próximo pacote que você espera receber.


    Tipos de transmissão

    • Simplex: Dados fluem apenas em um sentido. (Ex: Antena)
    • Half-duplex Dados fluem em ambos os sentidos, mas não ao mesmo tempo. (Ex: Rádio/Walkie-talkie)
    • Full-duplex: Dados fluem em ambos os sentidos e ao mesmo tempo. (Ex: Telnet)

    Retransmissão Rápida

    • SEMPRE será 3 retransmissões antes do Timeout independente da quantidade de pacotes que foram enviados.

    • Cada pacote tem um timeout que é checado para saber se o pacote foi enviado corretamente.

    • Para resolver uma retransmissão tem-se: Timeout X Reenviar Pacote

    • Entre os dois o timeout é o que possui maior congestionamento, pois, nenhum dado vai ter passado.


    Importante!

    Calculando o timeout, nós não devemos levar em consideração a retransmissão, pois, não há como saber se o ACK atrasou ou está sendo restransmitido.


    Exemplo conta com Janela e MSS:

    Janela tamanho 1 pacote (1000 Bytes)

    MSS = 1000Bytes Incremento = MSS * (MSS/Janela) -> 1000 * (1000/1000) Incremento = 1000


    Janela tamanho 2 pacote (2000 Bytes) -> Incremento(1000 bytes) + pacote anterior(1000 bytes)

    Incremento = 1000 * (1000/2000) = 500 (1° Incremento), 500 (2° Incremento)


    TCP Reno: Dobra pacote quando o ACK retorna (todos)

    • Após um timeout (Pacote volta para 1) ele dobra apenas até a metade e após isso ele cresce de maneira mais lenta (1 por 1) para garantir estabilidade na rede.
    • Exemplo prático: Taxa de download na Steam (Gráfico)
    • Após ACKs duplicados em vez de voltar o pacote para 1 ele votla para metade da onde estava.

    Resumo da Ópera:

  • Após timeout: Queda até 1 pacote e depois Dobra até a metade.
  • Após ACK duplicado: Queda até a metade e depois Cresce de maneira linear (1 por 1)

  • Aumento Aditivo: Crescimento um por um.

    Funcionaria para redes wireless? NÃO, porque a cada perda ele vai reduzir a taxa.

    Funcionaria para redes de Alta Velocidade? NÃO, pois se cair os pacotes, até recuperar de maneira linear vai demorar.