Serviços de Comunicações Capítulo 3

Documentos relacionados
PROTOCOLOS DE COMUNICAÇÃO

Funções da. Os principais serviços oferecidos pela camada de transporte são: Controle de conexão, Fragmentação, Endereçamento e Confiabilidade.

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

Redes de Computadores

Protocolos TCP e UDP. Protocolo TCP. Protocolo TCP. A necessidade de uma comunicação segura: Transmission Control Protocol

Camada de Transporte Protocolos TCP e UDP

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Protocolos de Interligação de Redes Locais e a Distância Protocolos de Transporte. Thiago Leite

Protocolos de Rede. Protocolos em camadas

Camada de Transporte Parte II Gerson Porciúncula 5 semestre

Rede de computadores Protocolos TCP. Professor Carlos Muniz

Redes de Computadores

: TMS M

Redes e Serviços Internet (11103)

Redes de Computadores

Nível de Transporte Portas, Protocolos UDP e TCP

Redes de Computadores

Redes de Computadores

Arquitetura de Redes de Computadores

Capítulo 3 Camada de transporte

Protocolos de Interligação de Redes Locais e a Distância Camada de Transporte

Prof. Marcelo Cunha Parte 6

Redes de Computadores

Redes de Computadores. Protocolos TCP/IP

Capítulo 9: Camada de Transporte

Rede de computadores Protocolos UDP. Professor Carlos Muniz

TCP 1 TCP. Manuel P. Ricardo

Camada de Transporte. Redes Industriais Rone Ilídio UFSJ CAP

Capítulo 3 Camada de transporte

Redes de comunicação. Mod 2 Redes de computadores. Professor: Rafael Henriques

Redes de Computadores. A arquitectura protocolar TCP/IP

Camada de Transporte. Protocolos TCP e UDP

REDES DE COMPUTADORES

Redes de Computadores

Níkolas Timóteo Paulino da Silva Redes de Computadores I ADS 2ºTermo

Redes de Computadores. Trabalho de Laboratório Nº7

Protocolos e Serviços de Redes

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Redes de Computadores. Prof. André Y. Kusumoto

Protocolos e Serviços de Redes

Redes de Computadores RES 12502

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 6 de Janeiro de o Exame A

Introdução às Redes de Telecomunicações Licenciatura em Eng. Electrotécnica e de Computadores 25 de Junho de o Exame 2 o Semestre.

Data and Computer Network Endereçamento IP

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

Redes de Computadores e Aplicações

Redes de Computadores. Prof. Msc André Y. Kusumoto

Introdução. Engenharia Informática

REVISÃO - Questões de Redes em Concursos. Semestre: 2 Bimestre:2 Data: / / 2013

Canais de Comunicação

Funções da Camada de

Capítulo 6. A camada de transporte. slide 1 1 reservados.

Jéfer Benedett Dörr

Redes de Computadores e Telecomunicações - Camada de Transporte

Nível de Transporte Portas, Protocolos UDP e TCP

Redes de Computadores e Aplicações. Aula 43 - Camada de Transporte TCP (Transmission Control Protocol)

Programação com Sockets

Redes de Computadores

Redes de Computadores Aula 5

CURSO TÉCNICO EM INFORMÁTICA

TCP - formato do segmento. Formato do segmento TCP (fonte: Kurose)

Configurar o mapa da classe de QoS IPv4 do cliente no WAP125 e no WAP581

REDES DE COMPUTADORES

Redes de Computadores LTI

Redes de Computadores

Lista de exercícios - 1º bimestre 2016 REDES

CCNA 1 Conceitos Básicos de Redes. Módulo 11 Camada de Transporte TCP/IP Camada de Aplicação

Direto ou Indireto Monolítico ou Estruturado Simétrico ou Assimétrico Padronizado ou Não-Padronizado

Modelo de Referência OSI

Introdução. Modelo de um Sistema de Comunicação

Programação TCP/IP. Protocolos TCP e UDP

REDES DE COMPUTADORES

Universidade Federal de Minas Gerais Departamento de Ciência da Computação

Preparação AV3 Fundamentos de Redes de Computadores

Redes de Computadores. Camada de Transporte4. A necessidade por um serviço o de transporte confiável

Redes de computadores. Protocolo TCP

Redes de Computadores

REDES DE COMPUTADORES

Redes de Computadores (LTIC) 2013/14. Grupo 1 (9 valores) 2º Teste (Frequência) 19 de Junho de Nome:

Redes de Computadores. Ricardo José Cabeça de Souza

CAMADA DE TRANSPORTE

Camada de transporte. Serviços

Redes de Computadores

Camada de Transporte, protocolos TCP e UDP

ATENÇÃO O TCP/IP não é um protocolo. TCP/IP é um conjunto de diversos protocolos em 04 camadas próprias que se relaciona com o modelo OSI.

PTC Aula Princípios das aplicações de rede 2.2 A Web e o HTTP. (Kurose, p ) (Peterson, p ) 21/03/2017

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIADO RIO GRANDE DO NORTE IFRN

Prof RG Crespo Criptografia e Segurança das Comunicações. Introdução à segurança de protocolos. Pilha de protocolos (1)

Redes de Computadores LERCI e LEE 10 de Janeiro de o Exame 1 o Semestre

REDES DE COMPUTADORES

Redes de Computadores (LTIC) 2014/15. Parte 1 (8 valores) Exame Final (1ª Época) 24 de junho de Nome:

Redes de Computadores

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Aplicações de Redes de Computadores

Redes de Computadores Arquitetura TCP/IP. Prof. Alberto Felipe

Redes de Computadores

Stream Control Transport Protocol (SCTP)

Redes de Computadores I Internet - Conceitos

Transcrição:

Capítulo 3 A Camada de Transporte da Arquitectura TCP/IP 3.1 Portos e Sockets 3.2 O Protocolo UDP 3.3 O Protocolo TCP 1 3.1. Portos e Sockets A Camada de Transporte fornece transferência de dados fim-a-fim Ligação fim-a-fim entre duas aplicações: necessário identificar de forma unívoca cada um dos processos associados Conceito de processo: Um processo corresponde a uma instância activa de uma aplicação num determinado momento A cada processo é atribuído um identificador de processo (PID), único no sistema em que está a correr, e que pode ser diferente de cada vez que essa aplicação é iniciada 2

3.1. Portos e Sockets Conceito de processo (cont.): O processo de um programa "Servidor" pode ter várias conexões, para múltiplos clientes, ao mesmo tempo, logo os identificadores de conexões podem não ser únicos Surgem assim os conceitos de Porto e de Socket, como formas de identificar de maneira uniforme e única conexões entre programas e respectivos hosts associados, de forma independente dos PID s locais 3 3.1. Portos e Sockets - Conceito de Porto Porto: identificador perante a pilha TCP/IP de um processo que pretende comunicar com outro número de 16 bits, usado pelos protocolos host-to-host para identificar que protocolo de nível superior ou que aplicação pretende estabelecer comunicação com outra Existem dois tipos de portos: well-known (bem conhecidos) ephemeral (efémeros) 4

3.1. Portos e Sockets - Conceito de Porto Portos well-known: são associados a servidores standard (p. e. o daemon servidor Telnetd usa o porto 23) São identificados por números, que variam entre 1 e 1023 Os portos well-known são controlados e atribuídos pela IANA, encontrando-se definidos no STD 2 - Assigned Internet Numbers 5 3.1. Portos e Sockets - Conceito de Porto Alguns dos portos standard mais utilizados: 20: ftp-data 21: ftp 23: telnet 25: smtp 53: domain 80: http 110: pop3 143: imap 6

3.1. Portos e Sockets - Conceito de Porto Portos ephemeral: Os clientes não precisam de utilizar números de portos well-known, já que são eles que iniciam a comunicação com os servidores, enviando assim o número do seu porto nos datagramas valores desde o número 1024 até 65535 Os clientes podem usar qualquer número que lhes seja alocado, desde que a combinação <protocolo de transporte, endereço IP, porto> seja única Estes portos não são controlados pela IANA, podendo ser utilizados "livremente" pelos utilizadores 7 3.1. Portos e Sockets - Conceito de Porto 8

3.1. Portos e Sockets - Conceito de Porto 9 3.1. Portos e Sockets - Conceito de Porto 10

3.1. Portos e Sockets - Conceito de Socket Interface de Sockets: application programming interface - (API) para protocolos de comunicação Socket: é um tipo especial de descritor de ficheiro (file handle), que é usado pelos processos para requisitar serviços de rede ao sistema operativo O endereço de um socket é obtido através do triplo: <protocol, local-address, local-process> Exemplo, para a arquitectura TCP/IP: <tcp, 193.136.195.221, 12549> Uma conversação é a ligação que permite comunicação entre dois processos O conjunto <protocol, local-address, local-process, foreign-address, foreign-process> é denominado associação, especificando de forma completa dois processos com uma ligação estabelecida Exemplo, na pilha TCP/IP: <tcp, 193.136.195.105, 1500, 193.136.195.221, 21> 11 Protocolo UDP User Datagram Protocol (RFC 768): 3.2. Protocolo UDP protocolo que permite o estabelecimento de uma conexão fim-a-fim (ao nível da camada de transporte do TCP/IP) funciona como um interface de aplicação do IP, NÃO adicionando fiabilidade, controlo de fluxo ou recuperação de erros a este simplesmente serve como um multiplexador/desmultiplexador para envio e recepção de datagramas, usando portos para os guiar fornece um mecanismo que permite a uma aplicação enviar datagramas para outra 12

3.2. Protocolo UDP Multiplexador/Desmultiplexador 13 3.2. Protocolo UDP O nível de actuação do UDP pode ser visto como extremamente leve, introduzindo pouco overhead Em contrapartida, exige às aplicações a responsabilidade pela recuperação de erros, verificação da sequenciação, etc Cada datagrama UDP é enviado em simples datagramas IP, que podem ser fragmentados pelo nível IP, e posteriormente reassemblados no destino, antes de ser apresentados ao nível UDP Qualquer implementação IP tem de aceitar datagramas até 576 bytes Considerando um máximo de 60 bytes para o cabeçalho IP, restam 516 bytes para tamanho mínimo de um segmento UDP 14

3.2. Protocolo UDP Formato do cabeçalho 15 3.2. Protocolo UDP - Aplicações Algumas aplicações que usam tráfego UDP: Trivial file Transfer Protocol (TFTP) Domain Name System (DNS) Remote Procedure Call (RPC) Simple Network Management Protocol (SNMP) Lightweight Directory Access Protocol (LDAP) 16

3.3. Protocolo TCP Protocolo TCP Transmission Control Protocol (RFC 793): Tem como objectivo principal fornecer um canal de comunicação lógico fiável entre pares de processos Não assume fiabilidade de comunicação nos protocolos de nível inferior (p. e. IP), garantindo ele próprio essa fiabilidade Fornece às aplicações bastante mais facilidades que o UDP, nomeadamente recuperação de erros, controlo de fluxo e fiabilidade Protocolo orientado à conexão, ao contrário do UDP, que é não orientado à conexão 17 3.3. Protocolo TCP 18

3.3. Protocolo TCP - Características Transferência de Sequências de Dados: do ponto de vista das aplicações, o TCP transfere sequências contínuas de bytes através da rede a aplicação não tem de se preocupar em agrupar os dados em blocos ou datagramas, já que o TCP realiza esta tarefa, agrupando os bytes a transferir em segmentos TCP, que são passados de seguida ao IP para serem transmitidos 19 3.3. Protocolo TCP - Características Transferência de Sequências de Dados (cont.): 20

3.3. Protocolo TCP - Características Sequenciação: o TCP atribui um número de sequência a cada byte transmitido e espera uma confirmação positiva (positive acknowledgement - ACK) do host de destino Se o ACK não é recebido durante um intervalo de timeout, os dados são retransmitidos Se os dados forem transmitidos em blocos (segmentos TCP), é enviado apenas o número de sequência do primeiro byte de dados O TCP de destino usa os números de sequência para reagrupar os segmentos, quando estes chegam fora de ordem, bem como para eliminar segmentos duplicados 21 3.3. Protocolo TCP - Características Controlo de Fluxo: o TCP de destino, quando envia um ACK para a origem, indica também qual o número de bytes que pode receber a seguir, sem causar congestionamento dos seus buffers A informação de controlo de fluxo é enviada no ACK na forma do maior número de sequência que pode receber sem problemas Este mecanismo é também conhecido como o princípio das Janelas Deslizantes 22

3.3. Protocolo TCP - Características Controlo de Fluxo Princípio das Janelas Deslizantes 23 3.3. Protocolo TCP - Características Multiplexagem: é fornecida recorrendo ao uso dos portos, da mesma forma que o UDP Conexões lógicas: A sequênciação e o controlo de fluxo necessitam que o TCP inicialize e mantenha determinada informação de estado para cada sequência de dados O conjunto desta informação, que inclui os sockets usados, números de sequência e tamanho das janelas é denominado conexão lógica Cada conexão é identificada de forma unívoca por um par de sockets Full Duplex: o TCP fornece tranferência de sequências de dados, de forma concorrente, em ambas as direcções 24

3.3. Protocolo TCP - Cabeçalho 25 3.3. Protocolo TCP Abertura de Conexão 26

3.3. Protocolo TCP Confirmação e Retransmissões 27 3.3. Protocolo TCP Controlo de Congestão Uma das principais diferenças entre o TCP e o UDP está nos algoritmos de controlo de congestão O TCP pode adaptar o fluxo de dados do emissor à capacidade da rede, para prevenir potenciais situações de congestão As modernas implementações do TCP contém quatro algoritmos standard para a realização desta tarefa: Slow Start Congestion Avoidance Fast Retransmit Fast Recovery 28

3.3. Protocolo TCP Slow Start As implementações mais antigas do TCP costumavam iniciar uma conexão com o emissor a injectar múltiplos segmentos na rede, até atingir o limite imposto pelo window size anunciado pelo receptor Se este comportamento não levanta problemas de maior em LAN s, já em WAN s, que incluem encaminhadores intermédios, e podem incluir ligações lentas pelo meio, podem surgir problemas. Nesta situação os encaminhadores intermédios podem começar a descartar pacotes, a partir do momento em que os seus buffers atingem um limite 29 3.3. Protocolo TCP Slow Start O algoritmo Slow Start previne esta situação, iniciando o envio dos dados a débitos baixos, e, conforme se vai apercebendo das capacidades do canal, vai aumentando progressivamente este débito, até ao máximo possível sem entrar em congestão O emissor começa por enviar um segmento e espera pelo seu ACK Quando este é recebido, incrementa a congestion window de um para dois, enviando então de seguida dois segmentos sem esperar pelos respectivos ACK Quando estes chegarem incrementa novamente o congestion window para quatro, e assim sucessivamente Este aumento exponencial termina quando o receptor começa a atrasar o envio dos ACK, que é a forma deste regular o débito do emissor 30

3.3. Protocolo TCP Slow Start 31 3.3. Protocolo TCP Congestion Avoidance A perda de um pacote, indica que pode haver congestão algures na rede Existem duas indicações base de pacotes perdidos: quando ocorre um timeout e quando são recebidos ACKs duplicados O algoritmo Congestion Avoidance, que funciona em conjunto com o Slow Start, permite recuperar de situações de congestão evitando reinicialização completa do estado do canal 32

3.3. Protocolo TCP Fast Retransmit O algoritmo Fast Retransmit evita que o TCP tenha de esperar pela ocorrência de um timeout para reenviar segmentos perdidos Quando um pacote chega fora de ordem, o TCP gera e envia imediatamente um conjunto de ACK duplicados (do último segmento recebido dentro da ordem) Este ACK duplicado vai indicar ao emissor que foram recebidos segmentos fora de ordem, e qual é a sequência correcta que o receptor espera 33 3.3. Protocolo TCP Fast Retransmit 34

3.3. Protocolo TCP Fast Recovery O algoritmo Fast Recovery é implementado em conjunto com o Fast Retransmit, permitindo acelerar o processo de recuperação de situações de congestão Nesta situação, após a aplicação do Fast Retransmit, aplica-se o algoritmo Congestion Avoidance, em vez do Slow Start, permitindo uma recuperação mais rápida 35