Volnys B. Bernal (c) 1 Tecnologia de Redes Protocolo TCP Transmission Control Protocol Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys
Volnys B. Bernal (c) 2 Agenda Introdução Pacote TCP Estados TCP Utilitários
Introdução ao Protocolo TCP Volnys B. Bernal (c) 3
Volnys B. Bernal (c) 4 Introdução ao Protocolo TCP O que é o protocolo TCP? TCP = Transport Control Protocol Protocolo da camada de transporte Objetivo Protocolo da camada de transporte para permitir comunicação entre apliações Características Orientado a conexão: é necessário estabelecimento de conexão entre emissor e receptor antes de enviar um pacote TCP Confiável: se um pacote não for entregue ele é retransmitido Entrega em ordem Controle de fluxo Porta TCP Permite a um processo de aplicação se associar a uma porta
Volnys B. Bernal (c) 5 Introdução ao Protocolo TCP Aplicação NFS NFS NIS NIS SMB SMB Camada de Aplicação DNS DNS HTTP HTTP FTP FTP Telnet Telnet SMTP SMTP POP POP RPC RPC NetBios Camada de transporte UDP TCP Camada de redes IP IP ICMP IGMP Camada intra-rede Ethernet ARP Fast Ethernet RARP Gigabit Ethernet meio físico PPP PPP SLIP Frame Relay
Volnys B. Bernal (c) 6 Introdução ao protocolo TCP: Exemplo Processos Browser HTTP TCP 1054 Servidor WEB HTTP TCP 80 UNIX Kernel UDP TCP UDP TCP Device Driver Placa de Rede Meio Físico ICMP IP IP ARP Ethernet IGMP RARP ICMP IP IP ARP Ethernet IGMP RARP
Pacote TCP Volnys B. Bernal (c) 7
Volnys B. Bernal (c) 8 Pacote TCP Cabeçalho Compr. (4 bits) Prota TCP na origem (16 bits) Reservado (6 bits) Checksum do pacote TCP (16 bits) Número de seqüência (32 bits) Número de acknowledgment (32 bits) U R G A C K P S H R S T S Y N F I N Opções (opcional) (32 bits) Porta TCP no destino (16 bits) Tamanho da janela (16 bits) Ponteiro de urgência (16 bits) Carga conteúdo
Volnys B. Bernal (c) 9 Pacote TCP Porta TCP na origem Valor de 1 a 65535 Porta TCP no destino Valor de 1 a 65535 Número de seqüência Numero de seqüência do pacote sendo transmitido Número de acknowledgment Número de seqüência do último pacote recebido acrescido de 1 Comprimento do cabeçalho Comprimento do cabeçalho (em palavras de 32 bits)
Volnys B. Bernal (c) 10 Pacote TCP Flags: SYN Synchronize (pedido de conexão) FIN Finalize (dedido de término de conexão) ACK Acknowledgment (confirmação de recebimento) URG Urgent PSH RST Push Reset Tamanho da janela Utilizado no controle de fluxo Checksum do pacote TCP Ponteiro de urgência Opções (opcional)
Volnys B. Bernal (c) 11 Pacote TCP Empacotamento do pacote TCP em um pacote IP TCP code Cabeçalho (8 bits) Conteúdo TCP TCP IP Cabeçalho IP code (8 bits) Dados
Volnys B. Bernal (c) 12 TCP Socket Plug de comunicação Identifica um extremo da comunicação Representado por Endereço IP Porta Par de soquet Identifica um canal de comunicação Representadodo por Endereço IP Porta Endereço IP Porta IP Porta IP Porta
Volnys B. Bernal (c) 13 TCP Número de seqüênica Em uma conexão, cada entidade define um número inicial chamado número de seqüênicia, que é incrementado a cada segmento (pacote) trocado. Portanto, existem dois números de seqüência em uma conexão: Um número de seqüência do servidor Um número de seqüência do cliente
Estados Volnys B. Bernal (c) 14
Volnys B. Bernal (c) 15 Estados - Estabelecimento de conexão Cliente Servidor CLOSED Servidor realiza um Open Passivo CLOSED LISTEN
Volnys B. Bernal (c) 16 Estados - Estabelecimento de conexão CLOSED Cliente realiza um Open Ativo Cliente Servidor realiza um Open Passivo Servidor CLOSED LISTEN SYN_SENT SYN 4300038
Volnys B. Bernal (c) 17 Estados Estabelecimento de conexão Cliente realiza um Open Ativo Cliente Servidor realiza um Open Passivo Servidor LISTEN SYN_SENT SYN 4300038 SYN 5599901 ACK 4300039 SYN_RCVD
Volnys B. Bernal (c) 18 Estados Estabelecimento de conexão Cliente realiza um Open Ativo SYN_SENT Cliente ESTABLISHED Servidor realiza um Open Passivo SYN 4300038 SYN 5599901 ACK 4300039 ACK 4300039 Servidor LISTEN SYN_RCVD
Volnys B. Bernal (c) 19 Estados Estabelecimento de conexão Cliente realiza um Open Ativo SYN_SENT Cliente ESTABLISHED Servidor realiza um Open Passivo SYN 4300038 SYN 5599901 ACK 4300039 ACK 5599902 Servidor LISTEN SYN_RCVD ESTABLISHED Tree Way Handshake!!! (Negociação em 3 passos)
Volnys B. Bernal (c) 20 Estados Término de conexão Cliente ESTABLISHED Cliente realiza um Close Ativo Servidor ESTABLISHED FIN_WAIT FIN 4300050
Volnys B. Bernal (c) 21 Estados Término de conexão Cliente ESTABLISHED Cliente realiza um Close Ativo FIN_WAIT FIN 4300050 ACK 5599905 Servidor ESTABLISHED CLOSE_WAIT
Volnys B. Bernal (c) 22 Estados Término de conexão Cliente ESTABLISHED Cliente realiza um Close Ativo FIN_WAIT FIN_WAIT2 TIME_WAIT FIN 4300050 ACK 559905 FIN 4300051 ACK4300051 Servidor ESTABLISHED CLOSE_WAIT LAST_ACK CLOSE
Utilitários Volnys B. Bernal (c) 23
Volnys B. Bernal (c) 24 Utilitários netstat -a Permite verificar as conexões TCP estabelecidas e as portas TCP abertas aguardando conexões # netstat -a... Proto RecQ SendQ Local State,,, Remore
Bibliografia deste módulo Volnys B. Bernal (c) 25
Volnys B. Bernal (c) 26 Bibliografia deste módulo Referência principal TCP/IP Illustrated Volume 1: The Protocols. STEVENS, W. RICHARD. Addison-Wesley. 1994. Referênicas complementares Redes de Computadores: das LANs MANs e WANs às Redes ATM. SOARES, LUIZ F. G. Editora Campus. 1995 Computer Networks. TANENBAUM, ANDREW S. 3rd edition. Prentice Hall 1996.