Programação TCP/IP Protocolos TCP e UDP Tecnologia em Redes de Computadores Unicesp Campus I Prof. Roberto Leal Visão Geral da Camada de Transporte 2 1
Protocolo TCP Transmission Control Protocol Protocolo de Controle de Transmissão Transferência de dados Multiplexação Controle de erros (Confiabilidade) Controle de fluxo de dados Janelamento Estabelecimento e término da conexão Segmentação e Remontagem dos dados 3 Protocolo TCP Protocolo de entrega de dados: Protocolo confiável, orientado à conexão com transferência ordenada de dados, com recursos de controle de fluxo e retransmissão de dados Oferece serviços para a camada superior Aplicação Como se pode estabelecer uma conexão TCP? Número da porta Endereço IP Nome do protocolo da camada de Transporte 4 2
Protocolo TCP SOQUETE São formados usando: Número da porta Endereço IP Nome do protocolo da camada de Transporte Uma conexão TCP Um par de Soquetes de Origem e de Destino Aplicativos usam serviços TCP ao abrir um soquete 5 Protocolo TCP SOQUETE Máquina Servidora Portas bem conhecidas Máquina Cliente Outras portas MULTIPLEXAÇÃO As portas em um mesmo cliente devem ser exclusivas para uma conexão Uma mesma porta em um servidor pode atender a dois clientes diferentes 6 3
Protocolo TCP MULTIPLEXAÇÃO Conexão Soquete Cliente Soquete Servidor Cliente Telnet 1 para Servidor Cliente Telnet 1 para Servidor Cliente FTP para Servidor FTP Cliente WEB para Servidor WEB 10.1.1.1, TCP, 1027 10.1.1.1, TCP, 1028 10.1.1.2, TCP, 1027 10.1.1.2, TCP, 1029 10.1.1.3, TCP, 23 10.1.1.3, TCP, 23 10.1.1.3, TCP, 21 10.1.1.3, TCP, 80 7 Protocolo TCP Combinação TCP/IP IP Protocolo Camada 3 Serviço sem conexão Melhor esforço de entrega TCP Protocolo Camada 4 Serviço orientado à conexão Controle de fluxo e confiabilidade 8 4
9 10 5
Protocolo TCP Campos do cabeçalho TCP/IP Porta de origem número da porta que fez a chamada Porta de destino número da porta chamada Número de seqüência usado para garantir a seqüência correta dos dados de chegada Número de confirmação próximo octeto TCP esperado 11 Protocolo TCP HLEN número de palavras de 32 bits no cabeçalho Reservado definido como zero Bits de código funções de controle como configuração e encerramento de uma sessão Janela número de octetos que o remetente está disposto a aceitar 12 6
Protocolo TCP Checksum checksum calculado do cabeçalho e dos campos de dados Indicador de urgência indica o final dos dados urgentes Opção tamanho máximo do segmento TCP Dados dados do protocolo da camada superior 13 Protocolo TCP Recuperação de Erros Para transferência de dados confiável Numeração do campo Sequência Numeração do campo Acknowledgement ACK Confirmação de entrega Usa Confirmação Positiva Informa próximo byte a ser recebido Solicita reenvio de segmento perdido TCP reenvia apenas segmento perdido 14 7
15 16 8
17 Protocolo TCP Controle de fluxo Uso do JANELAMENTO Numero máximo de bytes em transmissão Se janela cheia Remetente deve aguardar Assim controla o fluxo de dados Janela deslizante Inicia pequena e aumenta até ocorrência de erros Então desliza para cima e para baixo (dependendo da performance da rede) Inicia pequena e aumenta até ocorrência de erros 18 9
Acknowledgement TCP com erros SEQ=1000 SEQ=2000 SEQ=3000 ACK=2000 Cliente Web SEQ=2000 ACK=4000 Servidor Web 19 20 10
21 Estabelecimento da conexão TCP SEQ=200 SYN, DPORT=80, SPORT=1027 SEQ=1450, ACK=201 SYN, ACK, DPORT=1027 SPORT=80 Cliente Web SEQ=201, ACK=1451 ACK, DPORT=80, SPORT=1027 Servidor Web 22 11
Protocolo TCP Protocolos que usam o TCP para transporte HTTP (Hiper Text Transfer Protocol) FTP (File Transfer Protocol) SMTP (Simple Mail Transport Protocol) DNS (Sistema de Nomes de Domínio) TELNET (Terminal Virtual) 23 Protocolo UDP User Datagram Protocol Protocolo de Datagrama do Usuário Não confiável Sem conexão e sem garantia de entrega Transmite mensagens (datagramas do usuário) Sem confirmação e sem controle de fluxo Não reagrupa as mensagens de entrada 24 12
25 Protocolo UDP User Datagram Protocol Protocolos que usam o UDP para transporte: TFTP (Trivial File Transfer Protocol) SNMP (Simple Network Management Protocol) DHCP (Dynamic Host Control Protocol) DNS (Sistema de Nomes de Domínio) 26 13
27 28 14
Portas Bem Conhecidas Porta 7 20 21 22 23 25 42 53 67 Nome echo ftp-data ftp ssh telnet smtp nameserver domain bootps Porta de dados do FTP Protocolo de Transferência de Arquivos (FTP) Serviço Secure Shell (SSH) O serviço Telnet Comentário Serviço Echo do ICMP SMTP- Simple Mail Transfer Protocol Serviço de Nomes da Internet serviços de nome de domínio (Ex: BIND) Servidor Bootstrap (BOOTP); Também usado pelo Servidor DHCP 29 Portas Bem Conhecidas 68 69 80 110 161 162 163 164 194 443 bootpc tftp http pop3 snmp snmptrap cmip-man cmip-agent irc https Cliente Bootstrap (BOOTP); Também usado pelo Cliente DHCP TFTP - Trivial File Transfer Protocol Protocolo HTTP para serviços WWW Versão 3 do Protocolo do Post Office SNMP - Simple Network Management Protocol Armadilhas SNMP CMIP - Common Management Information Protocol CMIP - Common Management Information Protocol Internet Relay Chat (IRC) HTTPS - Secure Hypertext Transfer Protocol 30 15