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 10.1.1.1, TCP, 1027 10.1.1.3, TCP, 23 Cliente Telnet 1 para Servidor 10.1.1.1, TCP, 1028 10.1.1.3, TCP, 23 Cliente FTP para Servidor FTP 10.1.1.2, TCP, 1027 10.1.1.3, TCP, 21 Cliente WEB para Servidor WEB 10.1.1.2, TCP, 1029 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 Servidor Web ACK=4000 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 transporte: que usam o UDP para • 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 Nome Comentário 7 echo Serviço Echo do ICMP 20 ftp-data Porta de dados do FTP 21 ftp Protocolo de Transferência de Arquivos (FTP) 22 ssh Serviço Secure Shell (SSH) 23 telnet O serviço Telnet 25 smtp SMTP- Simple Mail Transfer Protocol 42 nameserver Serviço de Nomes da Internet 53 domain serviços de nome de domínio (Ex: BIND) 67 bootps Servidor Bootstrap (BOOTP); Também usado pelo Servidor DHCP 29 Portas Bem Conhecidas 68 bootpc 69 tftp TFTP - Trivial File Transfer Protocol 80 http Protocolo HTTP para serviços WWW 110 pop3 Versão 3 do Protocolo do Post Office 161 snmp SNMP - Simple Network Management Protocol 162 snmptrap Armadilhas SNMP 163 cmip-man CMIP - Common Management Information Protocol 164 cmip-agent CMIP - Common Management Information Protocol 194 irc 443 https Cliente Bootstrap (BOOTP); Também usado pelo Cliente DHCP Internet Relay Chat (IRC) HTTPS - Secure Hypertext Transfer Protocol 30 15