42
Camada de Transporte: Camada de Transporte: protocolo TCP protocolo TCP Parte 1 Parte 1 Faculdade de Tecnologia Senac Pelotas Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular - Redes de Computadores II Unidade Curricular - Redes de Computadores II Prof. Eduardo Maroñas Monks Prof. Eduardo Maroñas Monks

Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Embed Size (px)

Citation preview

Page 1: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Camada de Transporte:Camada de Transporte:protocolo TCPprotocolo TCP

Parte 1Parte 1

Faculdade de Tecnologia Senac PelotasFaculdade de Tecnologia Senac Pelotas

Curso Superior em Tecnologia de Redes de ComputadoresCurso Superior em Tecnologia de Redes de Computadores

Unidade Curricular - Redes de Computadores IIUnidade Curricular - Redes de Computadores II

Prof. Eduardo Maroñas MonksProf. Eduardo Maroñas Monks

Page 2: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Sumário

Funções da camada de transporteFunções da camada de transporte Protocolo TCPProtocolo TCP Características do TCPCaracterísticas do TCP Estados do TCPEstados do TCP API do TCPAPI do TCP Referências BibliográficasReferências Bibliográficas

22

Page 3: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Camada de TransporteCamada de Transporte

A camada de Transporte é o link A camada de Transporte é o link entre a camada de Aplicação e a entre a camada de Aplicação e a camada de rede, que são camada de rede, que são responsáveis pela transmissão na responsáveis pela transmissão na rede. rede.

Esta camada aceita dados de Esta camada aceita dados de diferentes conversações e os passa diferentes conversações e os passa para as camadas inferiores como para as camadas inferiores como segmentos gerenciáveis que podem segmentos gerenciáveis que podem ser repassados ao meio físico.ser repassados ao meio físico.

33

Page 4: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

ApplicationLayer

NetworkLayer

Link Layer

IP

ARPHardwareInterface

RARP

Media

ICMP IGMP

TransportLayer

TCP UDP

UserProcess

UserProcess

UserProcess

UserProcess

Camada de TransporteCamada de Transporte

44

Firefox Cliente de NTPPING

Page 5: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Camada de TransporteCamada de Transporte

55

Application

Transport

Network

HOST

Data Link Data Link Data Link

Network

Application

Transport

Network

HOST

Data Link

● Os protocolos da camada de transporte têm a Os protocolos da camada de transporte têm a função de possibilitar a comunicação fim a fim função de possibilitar a comunicação fim a fim entre os hostsentre os hosts

● São protocolos implementados nos hosts que São protocolos implementados nos hosts que hospedam aplicações de usuáriohospedam aplicações de usuário

Firefox:2012

Apache:80

Page 6: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Camada de TransporteCamada de Transporte

66

● Os dois protocolos principais do modelo TCP/IP são Os dois protocolos principais do modelo TCP/IP são o UDP e o TCPo UDP e o TCPUDP – (User Datagram UDP – (User Datagram

Protocol)Protocol) Orientado a datagramasOrientado a datagramas Sem recursos de Sem recursos de

confiabilidade, sem conexãoconfiabilidade, sem conexão SimplesSimples Transmissões em unicast e Transmissões em unicast e

multicastmulticast Útil somente em algumas Útil somente em algumas

aplicações, por exemplo aplicações, por exemplo áudio e vídeo, jogos e áudio e vídeo, jogos e multicastmulticast

Muito usado em serviços, Muito usado em serviços, tais como: gerenciamento tais como: gerenciamento da rede (SNMP), roteamento da rede (SNMP), roteamento (RIP), resolução de nomes (RIP), resolução de nomes (DNS).(DNS).

TCP – (Transmission Control TCP – (Transmission Control Protocol)Protocol)

Orientado por fluxoOrientado por fluxo Com recursos de Com recursos de

confiabilidade, e orientado a confiabilidade, e orientado a conexãoconexão

ComplexoComplexo Somente transmissões em Somente transmissões em

unicastunicast Usado pela maioria das Usado pela maioria das

aplicações na Internet:aplicações na Internet: web (HTTP), e-mail (SMTP), web (HTTP), e-mail (SMTP),

transferência de arquivos transferência de arquivos (FTP), terminal remoto (FTP), terminal remoto (telnet e SSH), etc. (telnet e SSH), etc.

Page 7: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Protocolo TCPProtocolo TCP

O protocolo TCP (O protocolo TCP (Transmission Control Transmission Control ProtocolProtocol) definido na RFC 793, possui as ) definido na RFC 793, possui as seguintes facilidades para a camada de seguintes facilidades para a camada de aplicação:aplicação:

Recuperação de erros;Recuperação de erros;Controle de fluxo;Controle de fluxo;Confiabilidade;Confiabilidade;Orientado à conexão;Orientado à conexão;

77

Page 8: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

O conceito TCPO conceito TCP

O principal objetivo do TCP é O principal objetivo do TCP é fornecer um serviço de conexão fornecer um serviço de conexão entre dois pares de processos. entre dois pares de processos.

O protocolo não conta com a O protocolo não conta com a confiabilidade dos protocolos de confiabilidade dos protocolos de mais baixo nível (por exemplo IP).mais baixo nível (por exemplo IP).

Antes de qualquer transferência Antes de qualquer transferência de dados, o protocolo TCP de dados, o protocolo TCP estabelece uma conexãoestabelece uma conexão

88

Page 9: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

O conceito TCPO conceito TCP

Um dos participantes é o Um dos participantes é o clientecliente (o (o qual inicia a conexão) e o outro é o qual inicia a conexão) e o outro é o servidorservidor (o que aguarda a (o que aguarda a conexão).conexão).

Após a conexão ser estabelecida, Após a conexão ser estabelecida, é criada uma via de comunicação é criada uma via de comunicação bi-direcional entre as duas bi-direcional entre as duas aplicações.aplicações.

99

Page 10: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Características do TCPCaracterísticas do TCP

Transferência de fluxo de dados;Transferência de fluxo de dados;Confiabilidade;Confiabilidade;Controle de fluxo;Controle de fluxo;Multiplexação;Multiplexação;Conexões lógicas;Conexões lógicas;Comunicação Bi-direcional.Comunicação Bi-direcional.

1010

Page 11: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Características do TCP

Transferência de fluxo de dados:Transferência de fluxo de dados:Do ponto de vista da aplicação, o TCP Do ponto de vista da aplicação, o TCP transfere um fluxo contínuo de bytes transfere um fluxo contínuo de bytes através da rede. através da rede.

Desta forma a aplicação não precisa Desta forma a aplicação não precisa controlar a divisão dos dados em controlar a divisão dos dados em blocos.blocos.

Os dados são divididos em segmentos Os dados são divididos em segmentos e enviados para a camada de redee enviados para a camada de rede

1111

Page 12: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

TCP

Application

1. write 100 bytes2. write 20 bytes

queue ofbytes to betransmitted TCP

queue ofbytes thathave beenreceived

Application1. read 40 bytes2. read 40 bytes3. read 40 bytes

Segments

1212

Serviço de fluxo de bytesServiço de fluxo de bytes

Para as camadas inferiores, o TCP Para as camadas inferiores, o TCP manipula os dados em blocos, os manipula os dados em blocos, os chamados SEGMENTOSchamados SEGMENTOSPara as camadas superiores, o TCP Para as camadas superiores, o TCP manipula os dados como uma sequência de manipula os dados como uma sequência de bytes e não identifica limites entre os bytes e não identifica limites entre os bytes (fluxo contínuo)bytes (fluxo contínuo)

Observação: as camadas Observação: as camadas superiores não sabem ondem superiores não sabem ondem começam ou terminam os começam ou terminam os SEGMENTOSSEGMENTOS!!

Page 13: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Características do TCPCaracterísticas do TCP

Confiabilidade:Confiabilidade:O TCP assume um número de O TCP assume um número de seqüência para cada byte transmitido e seqüência para cada byte transmitido e espera um reconhecimento positivo espera um reconhecimento positivo ((ACKACK) do receptor. ) do receptor.

Se esta confirmação não é recebida dentro de um Se esta confirmação não é recebida dentro de um tempo estabelecido, os dados são retransmitidos. tempo estabelecido, os dados são retransmitidos. Um Um temporizadortemporizador é utilizado para cada conexão é utilizado para cada conexão TCP.TCP.Os números de seqüência também são usados Os números de seqüência também são usados para reordenar os segmentos quando estes para reordenar os segmentos quando estes chegam foram de ordem ou para eliminar os chegam foram de ordem ou para eliminar os segmentos duplicados.segmentos duplicados.

1313

Detecção de erros:Detecção de erros: Segmentos com Segmentos com checagem de checagem de integridade (campo integridade (campo checksumchecksum) falhos ) falhos são descartados no são descartados no destino.destino.

Page 14: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

RTT #1

RTT #2

RTT #3

O RTT é baseado na O RTT é baseado na diferença de tempo entre diferença de tempo entre a transmissão do a transmissão do segmento e o recebimento segmento e o recebimento do ACKdo ACKO valor do RTT é O valor do RTT é calculado levando em calculado levando em conta a média dos temposconta a média dos tempos

Medições de Round-Trip TimeMedições de Round-Trip Time

1414

O mecanismo de retransmissão do TCP é adaptativoO mecanismo de retransmissão do TCP é adaptativoOs temporizadores de retransmissão são Os temporizadores de retransmissão são configurados baseados nos tempos chamados de configurados baseados nos tempos chamados de round-trip timeround-trip time (RTT) (RTT) (tempo de ida e volta) que o (tempo de ida e volta) que o TCP calculaTCP calcula

Page 15: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Características do TCPCaracterísticas do TCP

Controle de fluxo:Controle de fluxo:Os hosts de rede têm recursos Os hosts de rede têm recursos limitados, como memória e largura de limitados, como memória e largura de banda. banda.

Quando a camada de Transporte está Quando a camada de Transporte está ciente de que esses recursos estão ciente de que esses recursos estão sobrecarregados, alguns protocolos sobrecarregados, alguns protocolos podem solicitar que a aplicação de podem solicitar que a aplicação de envio reduza a taxa de fluxo de dados. envio reduza a taxa de fluxo de dados.

1515

Page 16: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Características do TCPCaracterísticas do TCP

Controle de fluxo:Controle de fluxo:Isto é feito na camada de Transporte Isto é feito na camada de Transporte regulando a quantidade de dados regulando a quantidade de dados agrupados que a origem transmite. agrupados que a origem transmite.

O controle de fluxo pode prevenir a O controle de fluxo pode prevenir a perda de segmentos na rede e evitar a perda de segmentos na rede e evitar a necessidade de retransmissão.necessidade de retransmissão.

1616

Page 17: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

1717

Controle de FluxoControle de Fluxo

O protocolo TCP utiliza uma versão do O protocolo TCP utiliza uma versão do mecanismo de controle de fluxo em janela mecanismo de controle de fluxo em janela deslizante deslizante

O envio de reconhecimentos é separado O envio de reconhecimentos é separado da configuração do tamanho da janela do da configuração do tamanho da janela do emissoremissorOs reconhecimentos não aumentam Os reconhecimentos não aumentam automaticamente o tamanho da janela de automaticamente o tamanho da janela de transmissãotransmissão

Durante o estabelecimento da conexão, os Durante o estabelecimento da conexão, os participantes configuram o tamanho inicial participantes configuram o tamanho inicial da janela deslizanteda janela deslizante

Tamanho da Janela:Tamanho da Janela:Cada lado da conexão anuncia o seu tamanho de Cada lado da conexão anuncia o seu tamanho de janela que é o máximo número de bytes que o janela que é o máximo número de bytes que o receptor pode aceitarreceptor pode aceitarO tamanho máximo é 2O tamanho máximo é 21616 = 65535 bytes = 65535 bytes(Uso de multiplicador de janela nas opções, pode (Uso de multiplicador de janela nas opções, pode aumentar para 1GByte)aumentar para 1GByte)http://en.wikipedia.org/wiki/TCP_window_scale_option

Page 18: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Características do TCPCaracterísticas do TCP

Multiplexação:Multiplexação:Ativado através do uso de portas, tal como Ativado através do uso de portas, tal como no protocolo UDP.no protocolo UDP.Podem haver muitas aplicações ou serviços Podem haver muitas aplicações ou serviços sendo executados em cada host na rede. sendo executados em cada host na rede. Cada uma destas aplicações ou serviços é Cada uma destas aplicações ou serviços é designado a um endereço conhecido como designado a um endereço conhecido como uma porta uma porta A aplicação ou serviço sendo executado no A aplicação ou serviço sendo executado no host será identificado pela portahost será identificado pela porta

1818

Page 19: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Características do TCPCaracterísticas do TCP

Conexões lógicas:Conexões lógicas:Os mecanismos que garantem a Os mecanismos que garantem a confiabilidade e o controle de fluxo obrigam confiabilidade e o controle de fluxo obrigam que o TCP inicialize e mantenha informações que o TCP inicialize e mantenha informações do status de cada fluxo de dados. do status de cada fluxo de dados. A combinação deste status, incluindo A combinação deste status, incluindo sockets, números de seqüência e tamanhos sockets, números de seqüência e tamanhos de janelas é chamado de conexão lógica. de janelas é chamado de conexão lógica. Cada conexão é unicamente identificada pelo Cada conexão é unicamente identificada pelo par de sockets usados pelo processos que par de sockets usados pelo processos que estão enviando e recebendo dados.estão enviando e recebendo dados.

1919

Exemplo de identificação de conexão lógica: Exemplo de identificação de conexão lógica: (tcp,192.168.200.254:2012, 200.18.98.87:80)(tcp,192.168.200.254:2012, 200.18.98.87:80)

Page 20: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Características do TCPCaracterísticas do TCP

Comunicação Bi-direcional:Comunicação Bi-direcional:

O TCP provê comunicação em ambas as O TCP provê comunicação em ambas as direções entre fluxos de dados concorrentes.direções entre fluxos de dados concorrentes.Ao se estabelecer uma conexão, os dados Ao se estabelecer uma conexão, os dados podem ser enviados e recebidos pela mesma podem ser enviados e recebidos pela mesma conexão lógica.conexão lógica.

2020

Page 21: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Princípio de JanelaPrincípio de Janela

A forma mais simples de um protocolo A forma mais simples de um protocolo garantir a entrega de um pacotes é a seguinte:garantir a entrega de um pacotes é a seguinte:

Enviar um pacote;Enviar um pacote;Esperar um reconhecimento por parte do Esperar um reconhecimento por parte do receptor da chegada do pacote;receptor da chegada do pacote;Após o recebimento do reconhecimento, Após o recebimento do reconhecimento, enviar o próximo pacote;enviar o próximo pacote;Se um reconhecimento não for recebido por Se um reconhecimento não for recebido por determinado tempo, retransmitir o pacote.determinado tempo, retransmitir o pacote.

2121

Page 22: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Princípio de JanelaPrincípio de Janela

Embora este mecanismo garanta a Embora este mecanismo garanta a confiabilidade na entrega dos pacotes, usa confiabilidade na entrega dos pacotes, usa somente parte da largura de banda da rede somente parte da largura de banda da rede disponível.disponível.

2222

Page 23: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Princípio de JanelaPrincípio de Janela

Outra forma de enviar pacotes com confiança e Outra forma de enviar pacotes com confiança e aproveitar melhor a rede, poderia usar as seguintes aproveitar melhor a rede, poderia usar as seguintes regras:regras:

- O emissor pode enviar todos os pacotes dentro de - O emissor pode enviar todos os pacotes dentro de uma janela (conjunto de pacotes) sem receber um uma janela (conjunto de pacotes) sem receber um reconhecimento (reconhecimento (ACKACK), mas deve iniciar um contador ), mas deve iniciar um contador para cada um dos pacotes enviados;para cada um dos pacotes enviados;

- O receptor deve reconhecer cada pacote recebido, - O receptor deve reconhecer cada pacote recebido, indicando o número de seqüência do último pacote indicando o número de seqüência do último pacote recebido;recebido;

- O emissor desliza a janela a cada ACK recebido. - O emissor desliza a janela a cada ACK recebido.

2323

Page 24: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Princípio de JanelaPrincípio de Janela

Neste exemplo o emissor pode transmitir os Neste exemplo o emissor pode transmitir os pacotes 1 até o 5 sem esperar por nenhum ACK:pacotes 1 até o 5 sem esperar por nenhum ACK:

No momento que o emissor recebe um ACK 1 No momento que o emissor recebe um ACK 1 (reconhecimento para o pacote 1), ele pode deslizar a (reconhecimento para o pacote 1), ele pode deslizar a janela em um pacote para a direita. Neste ponto, o janela em um pacote para a direita. Neste ponto, o emissor pode enviar o pacote 6.emissor pode enviar o pacote 6.

2424

Page 25: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Princípio de JanelaPrincípio de Janela

O mecanismo de O mecanismo de Janela DeslizanteJanela Deslizante garante: garante:

Transmissão confiável;Transmissão confiável;

Melhor uso da largura de banda da Melhor uso da largura de banda da rede;rede;

Controle de fluxo, já que o receptor Controle de fluxo, já que o receptor pode demorar para responder a um pode demorar para responder a um reconhecimento de um pacote, sabendo reconhecimento de um pacote, sabendo do seus buffers livres e do tamanho da do seus buffers livres e do tamanho da janela na conexão.janela na conexão.

2525

Page 26: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Princípio de Janela aplicado ao TCPPrincípio de Janela aplicado ao TCP

O mecanismo de Janela Deslizante é usado no TCP, O mecanismo de Janela Deslizante é usado no TCP, mas com algumas diferenças:mas com algumas diferenças:

O TCP provê um conexão orientada a fluxo O TCP provê um conexão orientada a fluxo de bytes, números de seqüência são de bytes, números de seqüência são gerados para cada byte no fluxo de dados. gerados para cada byte no fluxo de dados. O TCP divide este fluxo contínuo em O TCP divide este fluxo contínuo em segmentossegmentosO tamanho da janela será determinado O tamanho da janela será determinado pelo receptor quando a conexão é pelo receptor quando a conexão é estabelecida e poder ser variável durante a estabelecida e poder ser variável durante a transferência de dados. transferência de dados.

Cada ACK carregará o tamanho da Cada ACK carregará o tamanho da janela.janela.

2626

Page 27: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Princípio de Janela aplicado ao TCPPrincípio de Janela aplicado ao TCP

O fluxo de dados do emissor pode ser visto O fluxo de dados do emissor pode ser visto como:como:

Onde:Onde:A – Bytes que foram transmitidos e já reconhecidos;A – Bytes que foram transmitidos e já reconhecidos;B – Bytes que foram enviados mas não foram ainda B – Bytes que foram enviados mas não foram ainda

reconhecidos;reconhecidos;C – Bytes que podem ser enviados sem esperar por nenhum C – Bytes que podem ser enviados sem esperar por nenhum

reconhecimento;reconhecimento;D – Bytes que não podem ser enviados ainda.D – Bytes que não podem ser enviados ainda.

Demonstração do Sliding Windows do TCP

2727

Page 28: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Formato do segmento TCPFormato do segmento TCP

IP header TCP header TCP data

Sequence number (32 bits)

DATA

20 bytes 20 bytes

0 15 16 31

Source Port Number Destination Port Number

Acknowledgement number (32 bits)

window sizeheaderlength

0 Flags

Options (if any)

TCP checksum urgent pointer

20 bytes

2828

Page 29: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Formato do segmento TCPFormato do segmento TCP

Source PortSource Port – número da porta de origem (16 bits); – número da porta de origem (16 bits);Destination PortDestination Port – número da porta de destino (16 – número da porta de destino (16 bits);bits);Sequence NumberSequence Number – número de seqüência do primeiro – número de seqüência do primeiro byte neste segmento. Se o bit de control SYN estiver setado, byte neste segmento. Se o bit de control SYN estiver setado, o número de seqüência é o número de seqüência inicial (n) e o o número de seqüência é o número de seqüência inicial (n) e o primeiro byte de dados é n+1.primeiro byte de dados é n+1.Acknowledgment NumberAcknowledgment Number – se o bit de controle ACK – se o bit de controle ACK estiver setado, este campo contêm o valor do próximo número estiver setado, este campo contêm o valor do próximo número de seqüência que o receptor está esperando receber.de seqüência que o receptor está esperando receber.Data OffsetData Offset – contêm o número de palavras de 32 bits no – contêm o número de palavras de 32 bits no cabeçalho. Indica onde começa a parte de dados no segmento.cabeçalho. Indica onde começa a parte de dados no segmento.ReservedReserved – reservado para uso futuro, deve ser zero. – reservado para uso futuro, deve ser zero. WindowWindow – usado em segmento ACK. Especifica os número – usado em segmento ACK. Especifica os número de bytes de dados, começando pelo indicado no campo do de bytes de dados, começando pelo indicado no campo do número de ACK, que o receptor está aceitando receber.número de ACK, que o receptor está aceitando receber.ChecksumChecksum - soma de verificação gerada em um pseudo- - soma de verificação gerada em um pseudo-cabeçalho.cabeçalho.

2929

Page 30: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Formato do segmento TCP Formato do segmento TCP (Flags de Controle)(Flags de Controle)

URGURG – indica se o campo de urgência é – indica se o campo de urgência é significativo neste segmento.significativo neste segmento.ACKACK – indica se o campo acknowldegment é – indica se o campo acknowldegment é significativo neste segmento.significativo neste segmento.PSHPSH – função PUSH (envia o restante dos – função PUSH (envia o restante dos segmentos antes de encerrar um conexão).segmentos antes de encerrar um conexão).RSTRST – reseta a conexão. – reseta a conexão.SYNSYN – sincroniza os números de seqüência. – sincroniza os números de seqüência.FINFIN – sem mais dados do emissor (finaliza – sem mais dados do emissor (finaliza conexão).conexão).

3030

Page 31: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Reconhecimentos e RetransmissõesReconhecimentos e Retransmissões

O TCP envia dados em segmentos de tamanhos O TCP envia dados em segmentos de tamanhos variáveis. Os reconhecimentos especificam o número variáveis. Os reconhecimentos especificam o número de seqüência do próximo byte que o receptor espera de seqüência do próximo byte que o receptor espera receber.receber.

Considerando que um segmento pode se perder ou Considerando que um segmento pode se perder ou se tornar corrompido, o receptor deve reconhecer se tornar corrompido, o receptor deve reconhecer todos os segmentos posteriores que forem recebidos todos os segmentos posteriores que forem recebidos ok, fazendo referência ao primeiro byte do pacote ok, fazendo referência ao primeiro byte do pacote perdido. perdido.

O emissor irá parar de transmitir quando tiver O emissor irá parar de transmitir quando tiver enviado todos os bytes na janela atual. Um timeout enviado todos os bytes na janela atual. Um timeout irá ocorrer e o segmento faltante irá ser irá ocorrer e o segmento faltante irá ser retransmitido.retransmitido.

3131

Page 32: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Reconhecimentos e RetransmissõesReconhecimentos e Retransmissões

No diagrama, o tamanho da janela é de 1500 bytes e o tamaho dos No diagrama, o tamanho da janela é de 1500 bytes e o tamaho dos segmentos são de 500 bytes.segmentos são de 500 bytes.

3232

Page 33: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Reconhecimentos e RetransmissõesReconhecimentos e Retransmissões

Intervalos variáveis de Timeout:Intervalos variáveis de Timeout:

Cada implementação de TCP adapta de Cada implementação de TCP adapta de forma diferente os valores de tempos de forma diferente os valores de tempos de timeout entre o envio e o recebimento de timeout entre o envio e o recebimento de segmentos.segmentos.

Este tempos devem ser adaptáveis as Este tempos devem ser adaptáveis as condições de tráfego da rede.condições de tráfego da rede.

3333

Page 34: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Estabelecimento de uma conexão TCPEstabelecimento de uma conexão TCP

Antes de qualquer dado ser transmitido, Antes de qualquer dado ser transmitido, uma conexão deve ser estabelecida entre uma conexão deve ser estabelecida entre dois processos.dois processos.

Um destes processos, normalmente um Um destes processos, normalmente um servidor, implementa um servidor, implementa um chamada passiva chamada passiva de OPEN (de OPEN (passive OPENpassive OPEN)) e outro processo e outro processo uma uma chamada ativa de OPEN (chamada ativa de OPEN (active OPENactive OPEN).).

A chamada passiva de OPEN permanece em A chamada passiva de OPEN permanece em espera até que outro processo tente se espera até que outro processo tente se conectar a ela através de uma chamada de conectar a ela através de uma chamada de OPEN ativa.OPEN ativa.

3434

Page 35: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Estabelecimento de uma conexão TCPEstabelecimento de uma conexão TCP

3-WAY Handshake:3-WAY Handshake:É chamado o processo de É chamado o processo de

estabelecimento de conexão no protocolo TCP. estabelecimento de conexão no protocolo TCP. Três segmentos de controle são trocados entre Três segmentos de controle são trocados entre os processos:os processos:

3535

Page 36: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Encerrando uma conexão TCPEncerrando uma conexão TCP

O fechamento de um conexão é feito através do envio O fechamento de um conexão é feito através do envio de um segmento com o bit de controle FIN setado. de um segmento com o bit de controle FIN setado.

Já que a conexão é bi-direcional o segmento FIN só Já que a conexão é bi-direcional o segmento FIN só encerra a transferência de um lado. encerra a transferência de um lado. O outro processo irá enviar os dados remanescentes O outro processo irá enviar os dados remanescentes e também irá enviar um segmento FIN, no término e também irá enviar um segmento FIN, no término do envio. do envio. A conexão é desfeita quando ambos os lados A conexão é desfeita quando ambos os lados fecharem seus fluxos de dados.fecharem seus fluxos de dados.

3636

Page 37: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Encerrando uma conexão TCPEncerrando uma conexão TCP

O fechamento de um conexão pode ser feito com o uso O fechamento de um conexão pode ser feito com o uso da flag da flag RESETRESET. .

É uma forma mais rápida de encerramento de É uma forma mais rápida de encerramento de conexõesconexõesQuando a porta não está em estado de Quando a porta não está em estado de LISTENINGLISTENING, o , o host retorna um segmento com a flag host retorna um segmento com a flag RESETRESET

3737

Tentativa de acesso em porta inexistente

Encerramento da conexão com o uso da flag RESET

Page 38: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Estados do TCPEstados do TCP

Durante o ciclo de vida de uma conexão Durante o ciclo de vida de uma conexão TCP, podem ocorrer diversos estados.TCP, podem ocorrer diversos estados.

3838

Prática com a ferramenta TCP View

Page 39: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

SYN (SeqNo = x)

SYN (SeqNo = y, AckNo = x + 1 )

(AckNo = y + 1 )

SYN_SENT(active open)

SYN_RCVD

ESTABLISHED

ESTABLISHED

FIN_WAIT_1(active close)

LISTEN(passive open)

FIN (SeqNo = m)

CLOSE_WAIT(passive close)

(AckNo = m+ 1 )

FIN (SeqNo = n )

(AckNo = n+1)LAST_ACK

FIN_WAIT_2

TIME_WAIT

CLOSED

3939

Estados do TCPEstados do TCP

Procedimento normal de abertura e fechamento Procedimento normal de abertura e fechamento de conexãode conexão

Page 40: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

CLOSED

LISTEN

SYN RCVD SYN SENT

ESTABLISHED

active opensend: SYN

recv: SYN, ACKsend: ACK

recv: SYNse nd: SYN, ACK

recvd: ACKsend: . / .

recv:RST

Application sends datasend: SYN

simultaneous openrecv: SYNsend: SYN, ACK

close ortimeout

passive opensend: . / .

recvd: FIN send: FIN

send:FIN

40404040

Estados do TCPEstados do TCP

Transições de estado na abertura de conexãoTransições de estado na abertura de conexão

Estados do TCPEstados do TCP

Transições de estado na abertura de conexãoTransições de estado na abertura de conexão

Page 41: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

FIN_WAIT_1

FIN_WAIT_2

ESTABLISHED

recv: FINsend: ACK

recv: ACKsend: . / .

recvd: ACKsend: . / .

recv:FIN, ACKsend: ACK

active closesend: FIN

TIME_WAIT

CLOSING

recv: FINsend: ACK

CLOSED

Timeout(2 MSL)

CLOSE_WAIT

LAST_ACK

passive closerecv: FINsend: ACK

applicationclosessend: FIN

recv: ACKsend: . / .

4141

Estados do TCPEstados do TCP

Transições de estado no fechamento de Transições de estado no fechamento de conexãoconexão

Page 42: Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

BibliografiaBibliografia

4242

RODRIGUEZ, Adolfo; GATRELL, John; KARAS, John;PESCHKE, RODRIGUEZ, Adolfo; GATRELL, John; KARAS, John;PESCHKE, Roland. TCP/IP Tutorial and Technical Overview. IBM Red Roland. TCP/IP Tutorial and Technical Overview. IBM Red Books, 2006. Disponível em: Books, 2006. Disponível em: http://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/gg243376.html KUROSE, J.;ROSS, K. Redes de computadores e a Internet – KUROSE, J.;ROSS, K. Redes de computadores e a Internet – Uma abordagem top-down. 3ª edição. Editora Pearson, 2006.Uma abordagem top-down. 3ª edição. Editora Pearson, 2006.COMER, Douglas. Interligação em Rede com TCP/IP – Volume I. COMER, Douglas. Interligação em Rede com TCP/IP – Volume I. 3ª Edição. Editora Campus, 1998.3ª Edição. Editora Campus, 1998.WIRESHARK. Wiki. Disponível em WIRESHARK. Wiki. Disponível em http://wiki.wireshark.org/