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
Download

Programação TCP/IP Protocolos TCP e UDP