Redes de Comunicações 2. Camada Transporte: TCP e UDP

Documentos relacionados
Arquitetura de Redes de Computadores

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

Camada de Transporte. Protocolos TCP e UDP

Redes de Computadores

TCP - controle de fluxo

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

TCP - controle de fluxo

PROTOCOLOS DE COMUNICAÇÃO

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

Redes de Computadores

Redes de Computadores

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

Redes de Computadores

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

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

Redes de computadores. Protocolo TCP

Capítulo 3 Camada de transporte

Redes de Computadores

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

Redes de Computadores I

PTC Aula Princípios da transferência de dados confiável 3.5 Transporte orientado para conexão: TCP

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

Nível de Transporte Portas, Protocolos UDP e TCP

Capítulo 3 Camada de transporte

: TMS M

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

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

Rede de computadores Protocolos UDP. Professor Carlos Muniz

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

Redes de computadores e a Internet. Capítulo 3. Camada de transporte

Redes de Computadores RES 12502

Redes de Computadores

Redes de Computadores

Jéfer Benedett Dörr

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

Redes de Computadores. Prof. André Y. Kusumoto

Redes de Computadores Aula 5

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

Capítulo 3: Camada de Transporte

TRANSPORTE. Prof. Me. Hélio Esperidião

SSC0641 Redes de Computadores

Causas/custos do congestionamento: cenário 1

Redes de Computadores Camada de Transporte Protocolo TCP

PTC Aula A camada de transporte. (Kurose, p ) 15/03/2017

Camada de Transporte Parte II Gerson Porciúncula 5 semestre

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

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

Capítulo 6. A camada de transporte

Camada de transporte. Serviços

Redes de Computadores

Redes de Computadores

Prof. Marcelo Cunha Parte 6

TCP - multiplexação/demultiplexação

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

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

Endereços de transporte TPDU. Nível de Rede Endereço de rede. Figura 1. Entidade de transporte

Funções da Camada de

Novas Propostas para Protocolos de Streaming Luiz Eduardo Fontes Mello de Almeida

PTC Aula Princípios do controle de congestionamento 3.7 Controle de congestionamento no TCP

Capítulo 3: Camada de Transporte

Arquitetura de Redes TCP/IP. Camada de Transporte

PTC Aula Transporte orientado para conexão: TCP. (Kurose, p ) (Peterson, p e ) 23/05/2017

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

Aplicações de Redes de Computadores

Redes de Computadores. Camada de Transporte

Redes de Computadores

Capítulo 3 Camada de transporte

TCP 1 TCP. Manuel P. Ricardo

Sistemas Distribuídos Capítulo 8 - Aula 14

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

Jéfer Benedett Dörr

Protocolos com paralelismo (pipelining) Pipelining: aumento da utilização

REDES DE COMPUTADORES

Capítulo 9: Camada de Transporte

SSC0641 Redes de Computadores

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Camada de Transporte

Redes de Computadores I Prof. Mateus Raeder

Capítulo 3. Camada de transporte

Redes: Quais as diferenças entre o Protocolo TCP e UDP

Qualidade em Servicos de Rede Prof. Eduardo Maronas Monks Roteiro de Laboratorio Camada de Transporte Parte II

Redes de Computadores II. Camada de Transporte Visão Geral de Sockets

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

Exercícios de Revisão Redes de Computadores I. Spanning-Tree Camada de Transporte DNS DHCP

Desempenho de Redes de Computadores. Ricardo Couto A. da Rocha 2015

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

EXERCÍCIOS DE REVISÃO REDES DE COMPUTADORES EDGARD JAMHOUR. Segundo Bimestre

Redes de Computadores

Arquiteturas de Redes de Computadores Os Modelos RM-OSI e TCP/IP. Prof. M.e Helber Wagner da Silva

Redes de computadores e a Internet. Redes de computadores e a Internet. Prof. Gustavo Wagner. Capítulo 3. Camada de transporte

Protocolos e Serviços de Redes

SSC0641 Redes de Computadores

TCP - estabelecimento de conexão

Redes de Computadores I

Lista de Exercícios. Camada de Enlace de Dados

Camada de transporte. serviços providos a camadas superiores. qualidade de serviço. parâmetros-alvo (opções a negociar)

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

REDES DE COMPUTADORES

Transcrição:

Capítulo 4 N O T A S D E A U L A, R E V 7.0 U E R J 2 0 1 8 F L Á V I O A L E N C A R D O R Ê G O B A R R O S Redes de Comunicações 2 Camada Transporte: TCP e UDP Flávio Alencar do Rego Barros Universidade do Estado do Rio de Janeiro E-mail: falencarrb@gmail.com

UERJ 2018 Redes de Comunicações 2 Pg. 104 Introdução à camada transporte: Se de um lado a camada de transporte pode ser entendida como aquela que parece estar mais distante dos interesses do engenheiro, talvez de maior interesse do analista de software, de outro, muito ao contrário deste primeiro sentimento, é exatamente ela que isola as camadas superiores (a camada aplicação particularmente) das questões de tecnologia, projeto e imperfeições da sub-rede que lhe é subjacente. Seu objetivo é oferecer um serviço eficiente, confiável e efetivo em custo às aplicações. Neste fascículo vamos ver os seus diversos elementos, como: 1) Endereçamento (portas e sockets) 2) multiplexação/demultiplexação 3) estabelecimento, fechamento de conexão 4) controle de fluxo e de congestionamento 5) estados do cliente e do servidor 6) entrega confiável 7) TCP e UDP De todos estes serviços, certamente o mais básico é a multiplexação/demultiplexação, onde o essencial é "acertar" o processo (UDP e TCP fazem isto, só que TCP faz mais ainda...), dado que a camada de rede já "acertou" a máquina. No entanto, chamamos sua atenção para o serviço de confiabilidade da camada transporte. É exatamente aqui que esta camada "esconde" aquelas imperfeições e características da rede que lhe é subjacente. A Internet é uma miscelânea de soluções desta infraestrutura, e, portanto, é o protocolo da camada de transporte que oferece um serviço confiável que facilita a vida dos desenvolvedores de aplicações. Este fascículo está organizado de tal forma que servirá como um roteiro do que será visto em sala de aula. Insistimos na necessidade de completar o estudo com leituras complementares, para isto, indicamos os textos mostrados nas referências bibliográficas, e indicamos também a feitura de exercícios. Neste capítulo indico os textos de apoio TCP-Kurose.pdf e TCP-IBM.pdf.

UERJ 2018 Redes de Comunicações 2 Pg. 105

UERJ 2018 Redes de Comunicações 2 Pg. 106 1 1 TCP = Transmission Control Protocol; UDP = User Datagram Protocol

UERJ 2018 Redes de Comunicações 2 Pg. 107

UERJ 2018 Redes de Comunicações 2 Pg. 108

UERJ 2018 Redes de Comunicações 2 Pg. 109

UERJ 2018 Redes de Comunicações 2 Pg. 110

UERJ 2018 Redes de Comunicações 2 Pg. 111

UERJ 2018 Redes de Comunicações 2 Pg. 112 Flags: RST, SYN, FIN - estabelecer e encerrar conexão PSH - destinatário deve passar dados para a camada superior imediatamente. Este flag é útil no caso de upload de arquivo. URG - marcado como urgente pela camada superior. Reconhecimento cumulativo: suponha no exemplo anterior que Host B recebeu um segmento do Host A contendo os bytes 0 a 799 recebendo a seguir os bytes 801 a 832, não recebeu ainda os bytes 800 a 823. Então o segmento seguinte que B envia de volta a A conterá #ACK = 800. Suponha que a seguir B receba o byte que falta (#SEQ = 800), então o próximo segmento de B para A conterá #ACK = 833. TCP, portanto, provê reconhecimento cumulativo! Este exemplo de Telnet é um caso muito particular. O #SEQ (que é contado em bytes) segue um incremento unitário. Porém, isto não é o mais comum. Suponha um arquivo com 500000 bytes e o MSS (Maximum Segment Size) seja de 1000 bytes a ser transferido sobre uma conexão TCP. Então o TCP constrói uma seqüência de 500 segmentos numerados assim: 0; 1000; 2000;...; 499000.

UERJ 2018 Redes de Comunicações 2 Pg. 113

UERJ 2018 Redes de Comunicações 2 Pg. 114 Retransmissões Vejamos agora o comportamento do emissor. Como sabemos, a infra-estrutura de rede oferecida pela camada 3 não é confiável. O TCP não pode ter certeza se certo segmento ou seu ACK está perdido, corrompido ou atrasado. Em todos estes casos, o emissor TCP retransmite o segmento, pode fazê-lo por estouro de timeout, ou através da retransmissão rápida. O TCP utiliza pipeline, o que significa que em certo momento vários segmentos foram transmitidos, mas ainda não foram reconhecidos. No slide 03-17 os exemplos sugerem outras características do TCP. Perceba no Exemplo 1 que o receptor B recebe pela segunda vez o mesmo segmento, reconhece esta situação e o descarta, mas efetua um segundo reconhecimento do mesmo. A conclusão é que do lado emissor, o recebimento de ACK duplicado pode significar atraso ou perda do primeiro ACK. A eventualidade de recebimento de 3 ACKs de um mesmo dado é indicação para o emissor que o segmento seguinte ao que foi triplamente reconhecido foi perdido (se diz que este fato configura um NACK implícito ). O emissor, neste caso, procede a

UERJ 2018 Redes de Comunicações 2 Pg. 115 uma retransmissão rápida. Observe que um ACK duplicado pode simplesmente significar reordenamento na chegada do segmento, não carecendo de parte do emissor qualquer procedimento de retransmissão O Exemplo 2 mostra uma situação típica onde o emissor A recebe o reconhecimento cumulativo de dois pacotes e o receptor B precisa reenviar o ack =100, pois seu primeiro ack = 100 pode ter se perdido (enquanto seu ack = 120 pode ter chegado, tudo vai depender de como o emissor responderá a seguir!), enquanto no Exemplo 3 o emissor A não retransmite nada, só o fará após estourar o relógio (timeout)! Estas duas modalidades de retransmissão timeout e retransmissão rápida terão impacto no controle de congestionamento que veremos mais à frente. Perceba a dificuldade inerente de quem tem a incumbência de prover confiabilidade (o TCP!) sobre um meio não confiável. Tal dificuldade é bem simbolizada pela metáfora dos generais bizantinos, que veremos na seção de gerência de conexão, outra parte difícil de lidar quando o meio é não confiável.

UERJ 2018 Redes de Comunicações 2 Pg. 116

UERJ 2018 Redes de Comunicações 2 Pg. 117

UERJ 2018 Redes de Comunicações 2 Pg. 118

UERJ 2018 Redes de Comunicações 2 Pg. 119

UERJ 2018 Redes de Comunicações 2 Pg. 120

UERJ 2018 Redes de Comunicações 2 Pg. 121

UERJ 2018 Redes de Comunicações 2 Pg. 122 A gerência de conexão apresenta uma característica simétrica no fechamento de conexão (e é também temporizada!) para reduzir o problema de perda de dados ocasionada pelo conhecido como Problema dos Exércitos Bizantinos. Neste problema ficam claras duas características de protocolos de transporte com conexão: a necessidade de sincronização e o preço de um acordo intrinsecamente não confiável entre entidades homólogas parceiras. Registre-se aqui que este problema (analisamos a seguir) junto com o problema de controle de congestionamento para tempo real (analisamos mais à frente) motivou o estabelecimento da alternativa de implementar protocolo de transporte não confiável. Em termos práticos, a maioria das aplicações da Internet se faz com protocolo confiável, TCP. Porém, algumas aplicações específicas, cada uma por suas razões específicas, se decide pelo protocolo de transporte não confiável, sem conexão, como é o caso do UDP. Estas tais aplicações são principalmente o serviço de nomes (DNS 2 ) e as aplicações multimídia. 2 Domain Name Service.

UERJ 2018 Redes de Comunicações 2 Pg. 123 O Problema dos Generais Bizantinos : Várias divisões do exército bizantino, cada qual comandada por um general, sitiam um campo inimigo. Os generais necessitam concordar ou não em atacar o inimigo de madrugada. É crucial a concordância, um ataque parcial resultará em derrota. As divisões estão dispersas e os generais podem se comunicar somente através de mensageiros. Os mensageiros podem ser interceptados pelo inimigo, assim não transmitindo suas mensagens. Isto corresponde à transmissão intrinsecamente não confiável, acarretando perda de mensagens. Alguns generais podem ser covardes ou preguiçosos, deixando de enviar ou atrasando o envio de mensagens. Alguns generais podem ser traidores, assim podem impedir os generais leais de alcançarem o consenso. Isto corresponde a processos ou o sistema de comunicação em falha, gerando mensagens inconsistentes. Existe também o aspecto da malícia. Hipóteses simplificadoras: Falha Parada: os processos falham de uma maneira limpa, parando de transmitir mensagens quando falham (fail stop). Comunicação Confiável: o sistema de comunicação somente pode perder mensagens, ou seja, não altera mensagens. Significa que as questões de malícia serão necessariamente tratadas (se o forem) nas camadas superiores. Este é o preço que se paga com TCP incluindo estas hipóteses simplificadoras. TCP, portanto, foi feito para comunicação unicast confiável não tempo real do tipo cliente-servidor (correio eletrônico, navegação Web, download/upload), e não para comunicação em grupo, ou multicast, tempo real ou com elasticidade em perdas!

UERJ 2018 Redes de Comunicações 2 Pg. 124 Estados do Cliente e Servidor no TCP:

UERJ 2018 Redes de Comunicações 2 Pg. 125

UERJ 2018 Redes de Comunicações 2 Pg. 126

UERJ 2018 Redes de Comunicações 2 Pg. 127 O mecanismo de controle de congestionamento do TCP usa duas entidades: CongWin e RcvByteAcked. A janela de congestionamento impõe uma limitação à taxa à qual o remetente TCP pode enviar tráfego, ou seja, a quantidade de dados não reconhecidos em um host se restrige: LastByteSent LastByteAcked = min [CongWin, RcvByteAcked } Para efeito de raciocínio simples considere RcvByteAcked grande o suficiente para não ser levado em consideração (Buffer de recepção é suficientemente grande). Nestes termos, o remetente apresenta uma taxa de envio de: ~ CongWin bytes/seg. RTT Como já vimos, o remetente percebe perdas de duas formas: ou através do timeout, ou através do recebimento de 3 ACKs duplicados para o mesmo dado. Existem dois modos de operação do controle de congestionamento: 1) Aumento aditivo, diminuição multiplicativa

UERJ 2018 Redes de Comunicações 2 Pg. 128 Se recebe ACK normal (não tem perdas), ele aumenta um pouco o CongWin: MSS MSS ( ) bytes 3 (aumento aditivo). Por exemplo, se MSS = 1460 bytes quando CongWin CongWin = 14600 bytes, então 10 segmentos são enviados dentro de 1 RTT e a cada ACK que chega, CongWin aumenta de 1 10MSS, o que significa que se dez segmentos forem reconhecidos, CongWin aumenta de 1 MSS. Esta fase de aumento linear de CongWin é chamada prevenção de congestionamento. Se se percebe perdas, com retransmissão rápida, CongWin cai à metade até chegar a 1 MSS (diminuição multiplicativa). 2) Timeout e SlowStart Quando uma conexão TCP se inicia, CongWin recebe o valor 1 MSS e a cada ACK recebido o emissor duplica CongWin até chegar-se à vazão (throuhgput) que ocorre perdas, provavelmente usando o método aí de cima. Esta é a chamada partida lenta (SlowStart). Quando no meio da transmissão ocorre timeout (e não 3 ACKs duplicados), é sinal que mudou as condições da rede e é hora de promover novo SlowStart para pesquisar o novo patamar de transmissão. O conceito do controle de congestionamento é que no Slow Start se busca rapidamente (exponencialmente) achar os limites da rede, enquanto no regime de prevenção de congestionamento se busca alcançar uma velocidade de cruzeiro. 3 MSS = Maximum Segment Size

UERJ 2018 Redes de Comunicações 2 Pg. 129

UERJ 2018 Redes de Comunicações 2 Pg. 130

UERJ 2018 Redes de Comunicações 2 Pg. 131

UERJ 2018 Redes de Comunicações 2 Pg. 132 4 4 SNMP = Simple Network Management Protocol

UERJ 2018 Redes de Comunicações 2 Pg. 133

UERJ 2018 Redes de Comunicações 2 Pg. 134

UERJ 2018 Redes de Comunicações 2 Pg. 135

UERJ 2018 Redes de Comunicações 2 Pg. 136

UERJ 2018 Redes de Comunicações 2 Pg. 137

UERJ 2018 Redes de Comunicações 2 Pg. 138 Comentários: No TCP, o cliente e o servidor trocam informações de controle da camada de transporte antes que eles troquem mensagens do nível aplicação. Este procedimento é chamado handshaking, preparando a passagem de pacotes entre processos. Após a fase de handshaking, uma conexão full-duplex entre os sockets dos dois processos fica estabelecida. Quando a aplicação termina de enviar mensagens, a conexão é interrompida. Este serviço é referido como orientado à conexão. O transporte confiável do TCP implica entrega de dados sem erros, perdas ou dados duplicados para o socket do processo destino. O mecanismo de controle de congestionamento se destina mais ao bom funcionamento da rede como um todo que aos processos comunicantes. O controle de fluxo tem efeito maior em aplicação de áudio e vídeo em tempo real. Aplicações em tempo real são tolerantes a perdas, de modo que não são realmente necessários serviços confiáveis de transporte. Por isto, muitos desenvolvedores preferem usar UDP, ao invés de TCP. UDP é um modelo de transporte minimalista. Não há handshaking entre processos. A entrega não é confiável. A boa analogia é considerar o UDP como uma

UERJ 2018 Redes de Comunicações 2 Pg. 139 longa linha de táxis esperando passageiros do outro lado da porta do emissor. O passageiro pega o táxi, este pode pegar diferentes rotas, pode quebrar, pode chegar ao destino fora de ordem. Pode também pegar engarrafamento e como não existem reconhecimentos de entrega, pode ser rápido o suficiente, apesar de também não oferecer garantias de tempo. Numa visão mais ampla da camada de transporte, podemos considerar que existem duas classes de protocolos de transporte: os orientados a fluxo (como o TCP) e os protocolos de solicitação/resposta (como o RPC Remote Procedure Call, que veremos brevemente no contexto de Sistemas Distribuídos), estes orientados a mensagens. Dentre os orientados a fluxo podemos subdividir os protocolos em duas classes: os que são confiáveis (como o TCP) e os não confiáveis (como o UDP). Os primeiros se adequam melhor às aplicações killers da Internet, como correio eletrônico, navegação Web e download de arquivos. Os segundos, os não confiáveis, são mais usados para aplicações de multimídia, como analisaremos brevemente. Textos de apoio TCP-Kurose.pdf e TCP-IBM.pdf.