Post on 27-Jun-2020
Camada de Transporte
Nelson Luís Saldanha da FonsecaCampinas
14/11/2007
Programa
• 1.Introdução: Conceito de redes de computadores, arquitetura em camadas, o que é a Internet? Modelos de referência (RM-OSI/ISSO e pilha TCP/IP).
• 2.Camada Física: meios de transmissão, multiplexação, redes de acesso.
• 3.Camada de Enlace de dados: enquadramento, controle de erro, compartilhamento do meio, protocolos de acesso ao meio (protocolos de acesso randômico e de passagem de permissão).
• 4.Camada de Redes: circuitos virtuais e roteamento datagramapuro, roteamento unicast e multicast, o protocolo IP, roteadores, controle de congestionamento.
• 5. Camada de Transporte: tipos de serviços de transporte, gerenciamento de conexões de transporte, o protocolo TCP, o protocolo UDP, controle de congestionamento do TCP, controle de fluxo.
• 6.Camada de aplicação: protocolos de aplicação, http, FTP, SMTP,DNS, protocolos para aplicações multimídia.
Objetivos
• Conceituar a função da camada de transporte;
• Conceituar os serviços oferecidos pelacamada de transporte;
• Apresentar os diferentes protocolos queimplementam os serviços oferecidos pelacamada de transporte.
Roteiro
• Camada de Transporte;
• A Camada de Transporte na Internet;
• Novas Propostas de Variantes dos ProtocolosUDP e TCP.
• Considerações finais
Camada de Transporte
• Redes de computadores
• Organizacao das redes em camadashierarquica
• Protocolos
• Funcao da camada de transporte
• A camada de redes
• Servicos da camada de transporte
• Controle de congestionamento e de fluxo
Redes de Computadores
ISP local
redecoorporativa
ISP regional
roteador estação
servidormóvel
Periferia da Rede
O Núcleo da Rede
Não so computadores, não sódados…
O menor servidor Web do mundo
http://www-ccs.cs.umass.edu/~shri/iPic.html
Porta retratos IP
http://www.ceiva.com/
Tostadeira habilitada para a Web +
Previsão do tempo
http://dancing-man.com/robin/toasty/
O porquê de se Organizar Redesem Camadas Hierárquicas
O porquê de se Organizar Redesem Camadas Hierárquicas
Interface entre Camadas
Camadas Hierárquicas
Aplicação
Apresentação
Sessão
Transporte
Rede
Enlace
Física
Internet
X Transporte
Host-to-network
Aplicação
Função daCamada de Transporte
Protocolos
Oi
Oi
Que horassão?
2:00
Resposta de conexão TCP
Get http://gaia.cs.umass.edu/index.htm
<arquivo>
tempo
Solicitação de conexão TCP
Camadas: Comunicação Lógicaaplicaçãotransporteredesenlacefísica
aplicaçãotransporteredesenlacefísica
aplicaçãotransporteredesenlacefísica
aplicaçãotransporteredesenlacefísica
redeenlacefísica
Camadas: Comunicação Lógicaaplicaçãotransporteredesenlacefísica
aplicaçãotransporteredesenlacefísica
aplicaçãotransporteredesenlacefísica
aplicaçãotransporteredesenlacefísica
redesenlacefísica
dados
dados
dados
transporte
transporte
ack
Camadas: Comunicação Físicaaplicaçãotransporteredesenlacefísica
aplicaçãotransporteredesredesfísica
aplicaçãotransporteredesenlacefísica
aplicaçãotransporteredesenlacefísicaa
redesenlacefísicol
dados
dados
Encapsulamento
aplicaçãotransporteredesenlacefísica
aplicaçãotransporteredesenlacefísica
origem destino
M
M
M
M
Ht
HtHnHtHnHl
M
M
M
M
Ht
HtHn
HtHnHl
mensagem
segmento
datagramaquadro
Comutacao de Pacotes
Atraso
Enfileiramento nos Roteadores
Enfileiramento nos Roteadores
Roteamento em Redes comComutação de Pacotes
Circuitos virtuais
Roteamento
Datagrama puro
Circuitos Virtuais
aplicaçãotransporte
redeenlacefísica
aplicaçãotransporte
redeenlacefísica
1. inicia chamada 2. chegada de chamada
3. chamada aceita4. conexão completa5. começa fluxo de dados 6. dados recebidos
Roteamento Datagrama Puro
aplicaçãotransporte
redeenlacefísica
aplicaçãotransporte
redeenlacefísica
1. envia dados 2. recebe dados
Serviços Oferecidos pelaCamada de Transporte
Entrega confiável
• Seviços orientadosà conexao
Entrega ordenada
• Servicos não orientados à conexao
Conexão de Transporte
Serviços Orientados à Conexão
Entrega Confiável
• Pacote de Reconhecimento(acknowledgement);
• Numeração dos pacotes;
• Temporização para recebimento de reconhecimento;
Entrega Confiável
Entrega Confiável
Transmissão Para e Espera
Protocolo Para e Espera
• Exemplo: enlace de 1 Gbps, 15 ms de atraso de propagação, pacotes de 1 KB:
Ttransmis
são
= 8 kb/pkt
10**9 b/s= 8 microseg
Usender =
.008
30.008 = 0.00027
microseco
L / R
RTT + L / R =
L (tamanho do pacote em bits)
R (taxa de transmissão, bps)=
Um pacote de 1 KB cada 30 ms -> 33 kB/s de vazão sobre um canal de 1 Gbps
Envio de Pacotes em Rajadas
Envio de Pacotes em Rajada
Janela de Transmissão
Janela TransmissorJanela Receptor
Janela TransmissorJanela Receptor
Estabelecimento de Conexão
Estabelecimento de Conexão
Estabelecimento de Conexão
Encerramento de Conexão
Encerramento de Conexão
Encerramento de Conexão
Encerramento de Conexão
Endereçamento
Porta de Transporte
Portas de Espera
Serviços não Orientados à Conexão
Controle de Fluxo
Controle de Congestionamento
Controle de Congestionamento em Nivel da Camada de Redes
Controle de Congestionamento em Nivel da Camada de Transporte
Roteiro
• Camada de Transporte;
• A Camada de Transporte naInternet;
• Variantes dos Protocolos UDP e TCP.
• Considerações finais
A Camada de Transporte na Internet
• A Internet• A pilha de protocolos da Internet• Servicos de transporte• O protocolo UDP• O protocolo TCP• O protocolo SCTP• O protocolo DCCP• Sockets
A Internet
Estatística Usuários na Internet
• Número de usuários mundiais ~ 1.500.000.000 (17% população do planeta)
• Número de usuários no Brasil ~ 40.000.000 (21% da população)
fonte: http://www.InternetWordStats.com , acessado em Julho de 2007
Número de Estações na Internet
A Internet
A Internet
Princípios da Internet
�Minimalismo, autonomia, não hánecessidade de mudança interna parainterconexão;
�Modelo de serviço melhor esforço(best effort);
� Roteadores sem estado;
� Controle descentralizado;
Breve Histórico
• 1967: concepção da ARPAnet pela ARPA (Advanced Reearch Projects Agency);
• 1969: entra em operação o primeiro nó da ARPAnet;
• 1972:
– Demosntração pública da ARPAnet;
– NCP (Network Control Protocol) - primeiroprotocolo host-host;
– primeiro programa de e-mail;
– ARPAnet com 15 nós;
Breve Historico
• 1974: Cerf e Kahn - arquitetura para a interconexão de redes;
• 1983: implantação do TCP/IP;• 1988: controle de congestionamento do TCP;
• 1991: NSF remove restrições ao uso comercial da NSFnet (desativada em 1995);
• 1990 : WWW – Mosaic;
Pilha de Protocolos da Internet
aplicação
transporte
rede
enlace
física
Serviços de Transporte na Internet
• Serviços orientados à conexão –Transmission Control Protocol (TCP);
• Serviços não orientados à conexão –User Datagram Protocol (UDP);
Requisitos do Serviço de Transportede Aplicações Comuns
Aplicação
transferência de arqscorreio
documentos WWWáudio/vídeo de
tempo realáudio/vídeo gravado
jogos interativosapls financeiras
Perdas
sem perdassem perdassem perdastolerante
tolerantetolerantesem perdas
Banda
elásticaelásticaelásticaáudio: 5Kb-1Mbvídeo:10Kb-5Mbcomo anterior> alguns Kbpselástica
Sensibilidadetemporal
nãonãonãosim, 100’s mseg
sim, alguns segssim, 100’s msegsim e não
Protocolos de Aplicação e Protocolos de Transporte na Internet
Aplicação
correio eletrônicoaccesso terminal remoto
WWW transferência de arquivos
streaming multimídia
servidor de arquivo remototelefonia Internet
Protocolo dacamada de apl
smtp [RFC 821]telnet [RFC 854]http [RFC 2068]ftp [RFC 959]proprietário(p.ex. RealNetworks)NSFproprietário(p.ex., Vocaltec)
Protocolo de transporte usado
TCPTCPTCPTCPTCP ou UDP
TCP ou UDPtipicamente UDP
Protocolos de Aplicação e Protocolos de Transporte na Internet
UDP: User Datagram Protocol [RFC 768]
• Transmissao não-confiavel
• Não há estabelecimento de conexao
• Não implementa controle de fluxo
• Não tem associado a ele controle de congestionamento
porta origem porta dest.
32 bits
Dados de aplicação(mensagem)
Formato segmento UDP
comprimento checksum
TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581
• ponto a ponto;
• fluxo de bytes, ordenados, confiável;
• Dutado;
• transmissão full duplex;
• orientado à conexão;
• fluxo controlado.
socket
doorTCP
send buffer
TCP
receive buffer
socket
door
segment
application
writes dataapplication
reads data
TCP: Estrutura do Segmento
no. porta origem no. porta dest
32 bits
dados daaplicação
(tam. variável)
número de seqüência
número de reconhecimento
janela receptor
ptr dados urg.checksum
FSRPAUtam.cab.
semuso
Opções (tam. variável)
URG: dados urgentes(pouco usados)
ACK: no. ACKválido
PSH: envia dados já(pouco usado)
RST, SYN, FIN:gestão de conexão
(comandos deestabelecimento,
liberação)
no. bytes rcpt queraceitar
contagemde dadospor bytes (não segmentos!)
checksum Internet
(como UDP)
TCP: nos. de seq. e ACKsEstação A Estação B
Seq=42, ACK=79, data = ‘C’
Seq=79, ACK=43, data = ‘C’
Seq=43, ACK=80
Usuáriotecla‘C’
A reconhecechegadado ‘C’ecoado
B reconhecechegada de ‘C’, ecoa
‘C’ de volta
tempo
cenário simples de telnet
TCP: cenários de retransmissão
Estação A
Seq=92, 8 bytes de dados
ACK=100
perdatemporização
tempo cenário doACK perdido
Estação B
X
Seq=92, 8 bytes de dados
ACK=100
Host A
Seq=100, 20 bytes de dados
ACK=100
Tem
p.p/ Seq=92
temporização prematura,ACKs cumulativos
Host B
Seq=92, 8 bytes de dados
ACK=120
Seq=92, 8 bytes de dados
Tem
p. p/ Seq=100
ACK=120
tempo
Estimativa Intervalo Temporizacao
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
RT
T (
mil
lise
con
ds)
SampleRTT Estimated RTT
RTT_estimado = (1-αααα)* RTT_estimado + x*RTT_amostra
Desvio = (1- ββββ)* Desvio + ββββ *|RTT_amostra - RTT_estimado|
Temporização = RTT_estimado + 4*Desvio
TCP: Estrutura do Segmento
no. porta origem no. porta dest
32 bits
dados daaplicação
(tam. variável)
número de seqüência
número de reconhecimento
janela receptor
ptr dados urg.checksum
FSRPAUtam.cab.
semuso
Opções (tam. variável)
URG: dados urgentes(pouco usados)
ACK: no. ACKválido
PSH: envia dados já(pouco usado)
RST, SYN, FIN:gestão de conexão
(comandos deestabelecimento,
liberação)
no. bytes rcpt queraceitar
contagemde dadospor bytes (não segmentos!)
checksum Internet
(como UDP)
Estabelecimento de Conexão
cliente
syN
servidor
Syn ACK
ACK+dados
Encerramento de Conexãocliente
FIN
servidor
ACK
ACK
FIN
fechar
fechar
fechada
espera
temporizada
TCP: Gerenciamento de Conexões
cliente
FIN
servidor
ACK
ACK
FIN
fechando
fechando
fechada
espera
temporizada
fechada
TCP: Gerenciamento de Conexões
TCP: Gerenciamento de Conexões
Ciclo de vidade cliente TCP
Ciclo de vidade servidor TCP
TCP: Estrutura do Segmento
no. porta origem no. porta dest
32 bits
dados daaplicação
(tam. variável)
número de seqüência
número de reconhecimento
janela receptor
ptr dados urg.checksum
FSRPAUtam.cab.
semuso
Opções (tam. variável)
URG: dados urgentes(pouco usados)
ACK: no. ACKválido
PSH: envia dados já(pouco usado)
RST, SYN, FIN:gestão de conexão
(comandos deestabelecimento,
liberação)
no. bytes rcpt queraceitar
contagemde dadospor bytes (não segmentos!)
checksum Internet
(como UDP)
Opções
• Fator de escala para a janela do TCP;
• Timestamp;
• Tamanho máximo do segmento –maximum segment size (MSS).
TCP: Estrutura do Segmento
no. porta origem no. porta dest
32 bits
dados daaplicação
(tam. variável)
número de seqüência
número de reconhecimento
janela receptor
ptr dados urg.checksum
FSRPAUtam.cab.
semuso
Opções (tam. variável)
URG: dados urgentes(pouco usados)
ACK: no. ACKválido
PSH: envia dados já(pouco usado)
RST, SYN, FIN:gestão de conexão
(comandos deestabelecimento,
liberação)
no. bytes rcpt queraceitar
contagemde dadospor bytes (não segmentos!)
checksum Internet
(como UDP)
TCP: Controle de Fluxo
TCP: Controle de Fluxo
TCP: Controle de Congestionamento
Partida lenta
Fases
Congestion contol
Janela (conwin)
Variaveis
Limiar (Threshold)
Fast Recover, Fast Retransmit
1 2 3 4 5 6
1 2 3
Pacotes
Reconhecimentos
7
3 3 3
TCP: Controle de Congestionamento
Partida Lentahospedeiro A
um segmento
RTT
hospedeiro B
tempo
dois segmentos
quatro segmentos
TCP AIMD
TCP Tahoe
SStempo
CA
SS: Slow Start
CA: Congestion Avoidance
TCP Reno
SStempo
W
CA
SS: Slow Start
CA: Congestion AvoidanceFast retransmission/fast recovery
TCP: Controle de Congestionamento
• Quando CongWin está abaixo do limite (Threshold), o transmissor em fase de slow-start, a janela cresceexponencialmente.
• Quando CongWin está acima do limite (Threshold, o transmissor em fase de congestion-avoidance, a janelacresce linearmente.
• Quando ocorrem três ACK duplicados, o limiar(Threshold)é ajustado em CongWin/2 e CongWin é ajustado para Threshold.
• Quando ocorre tempo de confirmação, o Threshold é ajustado para CongWin/2 e o CongWin é ajustadopara 1 MSS.
Equidade de banda
R
R
compartilhamento igual da banda
Vazão da conexão 1
Vazã o
daconexão
2
Deficiências do TCP Reno
• Recuperação de múltiplas perdas uma janela;
• Perdas como sinalização de congestionamento;
• Penalização de conexões com RTTs longos;
• Vazão inversamente proporcional a perdas;
• Comportamento oscilatório da janela de transmissão;
Múltiplas Perdas em uma ÚnicaJanela de Transmissão
Variantes do TCPAprimoramentos do TCP-Reno
• TCP-Vegas;
• TCP Sack;
• TCP New-Reno;
• TCP com limitação das retransmissões.
TCP Vegas
decréscimo linear acréscimo linear
αβ << RTT) imojanela/min da (tamanho - esperada vazao
TCP Vegas
• Slow start – crescimento exponencial a cadadois RTTs;
• Vazao esperada – (tamanho da janela / RTT mínimo) < g congestion avoidance
• RTT > timeout e 1 ACK duplicataretransmissão
TCP Vegas
SStempo
CA
TCP Sack– TCP with Acknowledgement;
– Opcao negociavel;
– receptor pode informar ao emissor quais pacotes recebeu com sucesso;
– Retransmissao se receptor informa a não-recepcao de segmento transmitido, se numero segmentos em transito menor que tamanho da janela.
TCP Sack
TCP FACK
• Forward Acknowledgement
• Quantidade de dados enviado –quantidade de dados reconhecidos + quantidade de dados retransmitidos emtransito < 1 segmento
TCP New Reno
reconhecimento parcial
retransmissao
TCP com Limitação Transmissão
• Transmite novos dados ao receber doisacks duplicados a fim de anteciparalgoritmo fast retransmit.
Diff < γ
Cwnd=
ssthres
Cwnd=
ssthres
Cwnd=
ssthres
(pode
ser
estimad
o)
Cwnd=
ssthresCwnd =
ssthres
Mudança partida
lenta para
congestion
avoidance
Diff<α
Increm
ento
linear
Diff > βdecresc
imo
linear
Cwnd+
1/cwnd
Cwnd+
1/cwnd
Cwnd+
1/cwnd
Cwnd+
1/cwndCwnd+
1/cwnd
No congestion
avoidance
A cada
RTT
Cwnd+
1
Cwnd+
1
Cwnd+
1
Cwnd+
1Cwnd+
1
Na partida lenta,
cwnd atualizadao a
cada ACK
VegasFACKSACKNew
RenoRenoTahoe
ACKSACKSACKACKACKACK
Formato
ACK
Retransmi
te com
ACK
duplicado
ou RTT >
timeout
Envia
enquanto
dados
pendente
s<cwnd
Continua
com ACK
parcial se
pipe <
cwnd
Continua
com ACK
parcial
Termina
som ACK
parcial ou
total
nenhum
Fast
Recovery
VegasFACKSACKNew
Reno
RenoTahoe
Stream Control Transmission Protocol
• Entrega confiavel e ordenada opcionalmente;• Transporte de mensagens;• Controle de congestionamento;• Múltiplos fluxos (multi-streaming)• Múltiplos endereços IP (Multi-homed);• Dados enviados em “pedaços” (chunk);• Proteção contra ataques (SYN flood);• Seleção de caminho e monitoramento.
Estabelecimento ConexaoPonto final A Ponto final Z
INIT
INIT-ACK
COOKIE-ECHO
COOKIE-ACK
*
*
* --pode conter dados dos usuarios
Associacaoestabelecida
Associacaoestabelecida
Transferência de Mensagem Longa
Ponto final A Ponto final Z
3800octets
PMTU=512 octets
SCTP SCTP
TSN 1*
Transferência de Mensagem Longa
Ponto final A Ponto final Z
PMTU=512 octets
SCTP SCTP
TSN 2 TSN 1*
Transferência de Mensagem Longa
Ponto final A Ponto final Z
PMTU=512 octets
SCTP SCTP
TSN 3 TSN 1*TSN 2
Transferência de Mensagem Longa
Ponto final A Ponto final Z
PMTU=512 octets
SCTP SCTP
TSN 4 TSN 1*TSN 2TSN 3
Transferência de Mensagem Longa
Ponto final A Ponto final Z
PMTU=512 octets
SCTP SCTP
TSN 5
TSN 1*
TSN 2TSN 3TSN 4
Transferência de Mensagem Longa
Ponto final A Ponto finalZ
PMTU=512 octets
SCTP SCTP
TSN 6
TSN 1*
TSN 2TSN 3TSN 4TSN 5
Transferência de Mensagem Longa
Ponto final A Ponto final Z
PMTU=512 octets
SCTP SCTP
TSN 7
TSN 1*
TSN 2
TSN 3TSN 4TSN 5TSN 6
Transferência de Mensagem Longa
Ponto final A Ponto final Z
PMTU=512 octets
SCTP SCTP
TSN 8
TSN 1*
TSN 2
TSN 3
TSN 4
TSN 5TSN 6TSN 7
Transferência de Mensagem Longa
Ponto final A Ponto final Z
PMTU=512 octets
SCTP SCTP
TSN 9+
TSN 1*
TSN 2
TSN 3
TSN 4
TSN 5
TSN 6TSN 7TSN 8
Transferência de Mensagem Longa
Ponto final A Ponto final Z
PMTU=512 octets
SCTP SCTP
TSN 9+
TSN 1*
TSN 2
TSN 3
TSN 4
TSN 5
TSN 6
TSN 7TSN 8
Transferência de Mensagem Longa
Ponto final A Ponto final Z
PMTU=512 octets
SCTP SCTP
TSN 9+
TSN 1*
TSN 2
TSN 3
TSN 4
TSN 5
TSN 6
TSN 7
TSN 8
Transferência de Mensagem Longa
Ponto final A Ponto final Z
PMTU=512 octets
SCTP SCTP
TSN 9+
TSN 1*
TSN 2
TSN 3
TSN 4
TSN 5
TSN 6
TSN 7
TSN 8
Transferência de Mensagem Longa
Ponto final A Ponto final Z
3800octets
PMTU=512 octets
SCTP SCTP
Cabeçalho SCTP
SCTP Common Header
Chunk 1
Chunk N
...
Cabeçalho SCTP
Source Port Destination Port
Verification Tag
CRC-32c Checksum
Chunk Type Chunk Flags Chunk Length
Chunk Data
Exemplos de Chunks
DATA
INITIATION
SELECTIVE-ACKNOWLEDGMENT HEARTBEAT
ABORT
SHUTDOWN
EXPLICIT CONGESTION NOTIFICATION ECHO
CONGESTION WINDOW REDUCE
Múltiplos fluxos
Sd-queue
Ro-queue
Ro-queue
Sd-queue
Multihoming
EP-1 EP-2IP NetworkIP-3
IP-2
IP-1
IP-4X
Sockets
Socket()
#include <sys/socket.h>
int socket (int family, int type, int protocol);
Returns: non-negative descriptor if OK, -1 on error
Connect ()
#include <sys/socket.h>
int connect(int sockfd, const struct sockaddr *servaddr, socklen_t addrlen);
Returns: 0 if OK, -1 on error
struct in_addr {
in_addr_t s_addr; /* 32-bit IPv4 address */
/* network byte ordered */
};
struct sockaddr_in {
uint8_t sin_len; /* length of structure (16) */ sa_family_t sin_family; /* AF_INET */
in_port_t sin_port; /* 16-bit TCP/UDP portnumber */
/* network byte ordered */
struct in_addr sin_addr; /* 32-bit IPv4 address */ /*network byte ordered*/
char sin_zero[8]; /* unused */ };
Generic Socket Address Structure
Cliente TCP1 #include "unp.h"
2 int
3 main(int argc, char **argv)
4 {
5 int sockfd;
6 struct sockaddr_in servaddr;
7 if (argc != 2)
8 err_quit("usage: tcpcli <IPaddress>");
9 sockfd = Socket(AF_INET, SOCK_STREAM, 0);
10 bzero(&servaddr, sizeof(servaddr));
11 servaddr.sin_family = AF_INET;
12 servaddr.sin_port = htons(SERV_PORT);
13 Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
14 Connect(sockfd, (SA *) &servaddr, sizeof(servaddr));
15 str_cli(stdin, sockfd); /* do it all */
16 exit(0);
17 }
Cliente UDP1 #include "unp.h"
2 void
3 dg_cli(FILE *fp,int sockfd,const SA
*pservaddr,socklen_t,servlen)
4 {
5 int n;
6 char sendline[MAXLINE], recvline[MAXLINE + 1];
7 while (Fgets(sendline, MAXLINE, fp) != NULL) {
8
Sendto(sockfd,sendline,strlen(sendline),0,pservaddr,servlen)
;
9 n = Recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL);
10 recvline[n] = 0; /* null terminate */
11 Fputs(recvline, stdout);
12 }
13 }
Cliente UDP1 #include "unp.h"
2 void
3 str_cli(FILE *fp, int sockfd)
4 {
5 char sendline[MAXLINE], recvline[MAXLINE];
6 while (Fgets(sendline, MAXLINE, fp) != NULL) {
7 Writen(sockfd, sendline, strlen (sendline));
8 if (Readline(sockfd, recvline, MAXLINE) == 0)
9 rr_quit("str_cli: server terminated
prematurely");
10 Fputs(recvline, stdout);
11 }
12 }
Sockets em Java• import java.io.*;
• import java.net.*;
• class TCPClient {
• public static void main(String argv[]) throws Exception
• {
• String sentence;
• String modifiedSentence;
• BufferedReader inFromUser =
• new BufferedReader(new InputStreamReader(System.in));
• Socket clientSocket = new Socket("hostname", 6789);
• DataOutputStream outToServer =
• new DataOutputStream(clientSocket.getOutputStream());
•
Roteiro
• Camada de Transporte;
• A Camada de Transporte na Internet;
• Novas Propostas de Variantes dos Protocolos UDP e TCP.
• Considerações finais
Variantes do Protocolo UDP
• UDP Lite
• Datagram Congestion Control Protocol (DCCP)
UDP Lite
Datagram Congestion Control Protocol (DCCP)
• Aplicações multimídia streaming e de telefonia;
• Aplicações que necessitam de semânticabaseada em fluxo mas que não necessitamentrega confiável e ordenada como TCP e quenão precisam do conceito de múltiplos fluxoscomo no SCTP;
• Orientado à conexão.
DCCP
• Controle de congestionamento possivelmentenegociável, não necessariamente o mesmoempregado no TCP;
• Encorajar o uso de mecanismos amigáveis aoTCP evitando a necessidade de implementaçãona camada de aplicação;
• Motivar o uso de Explicit Control Notification (ECN).
Omissões do DCCP
• Controle de Fluxo;
• Entrega confiável;
• Fluxos (stream);
• Transmissão ponto-multiponto.
Datagrama DCCP
DCCP
• Mecanismos de Controle de congestionamento sem a necessidade de implementação na camada de aplicação, não necessariamente mecanismo do TCP;
Amigável ao TCP
Vazão =pRTT 2
31
Controle Congestionamento DCCP
• Reservado (CCID 0)
• Definido pelo usuario (CCID 1)
• TCP-Like (CCID 2)
• TRFC (CCID 3)
Controle Congestionamento DCCPTFRC (CCID 3)
• Vazão =
• b –segmentos por reconhecimento
• T0 – duração de período de perda
( )2
0 3218
33 ,1min
3
2
1
ppbp
Tbp
RTT +
+
Amigável ao TCP
Dependenteda camada
mediamúltiplataxamulticastMDLA
Dependenteda camada
altamúltiplataxamulticastLTS
Dente de serramédiamúltiplajanelamulticastRLC
Dente de serrabaixaúnicajanelamulticastMTCP
Dente de serraaltaúnicataxaunicastLDA
Dente de serrabaixaúnicataxaunicastRAP
Característicada taxa
ComplexidadeTaxa
Mecanismocontrole
congestiona-mento
Unicast/
multicast
Protocolo
Características Protocolos de Transporte
simnaonaonaostreaming
simsimsimnaoControle de congestionamento
simnaosimnaoControle de fluxo
opcionalsimsimnaoEntrega ordenada
simnaosimnaoARQ
simsimsimsimDeteccao de erros
simsimsimsimPortas numeradas
datagramadatagramasegmentodatagramaPDU
8 bytes + cabecalhovariavel do chunk
variado20 bytes8 bytesTamanhocabecalho
SCTPDCCPTCPUDP
Variantes TCP
• Redes com alto produto banda atraso;
• Redes sem fio.
Redes com Alto Produto Banda Atraso
Banda (passante) X Atraso
Redes de alta velocidade Satélite
(alta capacidade)
TCP para Redes de Alta Velocidade
• Janela de Congestionamento TCP Reno cresce lentamente e
• Seu tamanho e drasticamente reduzidoem eventos de perda
• Ineficiência para operar em redes de alta velocidade
TCP para Redes de Alta Velocidade
• Para que uma conexaodo TCP Reno,
• segmentos de 1500bytes em
• enlace de 10Gbps e 100 ms de atraso de propagacao,
• Tamanho de janelapara utilizar toda a capcidade do enlace em uma hora e meia, o que implica
• taxa de perda de 10-11,
High Speed TCP (HS-TCP)• Incremento em um
RTT
• Decremento em um
RTT
)(2
)()(2)(
2
wb
wpwbwwa
−=
5.0)5.0()/log(
)/log()( +−= high
lowhigh
low bww
wwwb
TCP para Redes de Alta Velocidade
Propriedades Desejáveis:
• Justiça intra-protocolo;
• Amigável ao TCP-Reno;
• Rápido em reação;
• Estável;
• Facil difusão.
Aditive Increase and
Binary Search Increase,
Multiplicative Descrease
(AIBIMD)
Busca dinâmica para
tamanho de janelaBIC
Multiplicative Increase
Multiplicative Decrease
(MIMD)
Utilização eficiente
independente de
capacidade do canal
Scalable-TCP
Baseado no Atraso
Quatro modos
independentes:
estimação, controle de
dados, controle de janela
e controle de rajadas
FAST-TCP
Dois modos: TCP-Reno
AIMD e Crescimento
Rapido (Fast Increase)
Relação linear em uma
escala log-log entre taxa
de transmissão e evento
denotando
congestionamento
HS-TCP
Mecanismo de controle
de congestionamentoPrincipal CaracterísticaVariante
AIMD
Amigável a RTT,
componentes para
controle de: justiça,
estimação capacidade,
rajadas, escalabilidade e
estabilidade
TCP-Libra
AIMD e Crescimento
Rápido (Fast Increase)
Rápida convergencia
para equilíbrio de
compartilhamento de
banda
H-TCP
AIMD e Crescimento
rápidoBaseado no Atraso
TCP-Africa
AIMD e baseado no
atrasoAbordagem híbrida
Compound-TCP
Additive increase and
cubic decrease,
multiplicative decrease
(AICIMD)
Busca dinâmica para
estabelecr tamanho da
janela
CUBIC
Mecanismo de controle
de congestionamentoPrincipal CaracterísticaVariante
TCP sobre Satélite
(a)
(b)
terrestrial
lineIP network 1 IP network
2
intersatellite
links
IP network
2IP network 1 IP network 3
TCP sobre Satélite
1 a 50 gbps128 Mbps –10Gbps
128 Mbps –10Gbps
Capacidade
NuncaInfrequenteFrequenteHandover
250 a 280 100 a 130 5 a 20
Atrasopropaga-ção
(ms)
3 a 410 a 15> 32Coberturaglobal
36.00010.000 a 15.000
700 a 2000Altitude (km)
GEOMEOLEO
TCP sobre SatéliteLongos Atrasos
TCP sobre SatéliteImpacto no Desempenho
• Assimetria de banda
• Atrasos Variáveis;
• LEO Handoff;
• Meio ruidoso;
• Segurança;
TCP Peach
TCP Westwood
• Estimação de banda passante
• Limiar (threshold) = estmação da taxa de transmissão X RTT mínimo
TCP Hybla
• Justiça RTT;
• Crescimento da janela independente do RTT da conexão.
TCP sobre SatéliteSoluções Adotadas
• Descoberta de caminho com MTU compativel
• Fator Multiplicativo de Janela;
• Multiplas conexoes
• T/TCP (TCP for Transaction);
• TCP com reconhecimentos (ACKs) envolvendo contabilidade de bytes.
TCP sobre SatéliteSoluções Adotadas - Splitting
TCP Redes sem Fio
TCP sobre Redes sem FioDificuldades
• Alta taxa de erro de bits (bit error rate);
• Handoff;
• Apagão;
• Energia limitada;
TCP sobre Redes sem Fio
Soluções
Gerenciamento tratamento
Conexão de perdas
Segmentação fim-a-fim localização notificação
Segmentação Conexão
Nó Fixo- FH
Rede com Fio
Nó Móvel- MH
TCP PadrãoTCP Móvel
Estação Base - BS
M-TCP
Nó Móvel - MH
Nó Supervisor - SHNó Supervisor - SH
Estação Supervisor Móvel- MSS
Células compartilhas por
ambos SH
Nó Móvel - MH
Nó Fixo
Rede com Fio
TCP PadrãoM-TCPNó Supervisor
- SH
Nó Móvel - MH
M-TCP SH-TCP
Segmentação de Conexão
Pacotes pequenos
Trata erro sem fio
Não tolera disconexoes
Altos atrasos handoff
TCP para rede
cabeada e simple
transport protocol para
enlace sem fio
METP
Recuperacao rápida de
perdas
Atrasos pequenos de
handoff
Buffers grandes SH
Separação na SHM-TCP
Recuperação rápida de
perdas
Buffers grandes BS
Altos atrasos handoff
Separação na BSI-TCP
Limitações
Vantagens
Característica
Gerenciamento Conexoes Fim-a-Fim
Robusto
Não lida com
desconexões
Detecta
congestionamento
usando jitter
JTCP
Discrimina erro por
congetionamento e por
enlace sem fio
Ajusta partida lenta de
acodo com nível de
congestionamento
TCP-Veno
Economia de energia
Desempenho degradado
com altos valores BER
Probing e recuperação
imediata
TCP-Probing
Lida inteligentemente
com handoff
Nao consegue
diferenciar erro sem fio
Handoff e disconexões
Transmissor congela
relógios e para
transmissão
Freeze TCP
Limitações
Vantagens
Característica
Localizacao da perdaProtocolo Snoop
Nó Fixo - FH
Rede com Fio
Nó Móvel - MH Estação Base
- BSRetransmissão Local
Snooping dos ACK'sArmazenamento dos
dados
Conexão TCP Fim-a-fim
Localizacao de Perda
Recupera múltipals
perdas
Agente snoop e
consciente de opção
SACK
TCP-SACK Aware
Snoop
Atrapalha recuperação
de congestionamento
Atrasa terceiros e
subsequentes DUPACK
DDA
Atrasos handoff
Rapida recuperação
erros enlace sem fio
Grandes buffers na BS
Suprime DUPACKs.
Envia cada pacote via
multicast para BS mais
perto
Snoop
Limitações
Vantagens
Característica
Notificação
Descrimina erros enlace
sem fio e
congestionamento
Quando enlace sem fio
problemático BS envia
EBSN para a fonte
EBSN
Não e fim-a-fim
Evita temporizacao
Detecação de perda no
enlace sem fio na
camada de enlace
ELN
Autonomia fim-a-fim
violada
Congestioanemnto
incipiente
ECN
Limitções
Vantagens
Características
TCP sobre Redes sem Fio
nãosimsimnãoAutonomia
fim-a-fim
difícilfácildifícilfácilDifusão
simBS inoperante
alta quantidade
MH
simBS inoperante
alta quantidade
MH
Escalabilidade
simsimsimsimDistinção de
erro
nãonãonaoSim mas a
custo alto
Mobilidade
NotificaçãoLocalizaçãoFim-a-fimSegmentacão
TCP sobre Redes Ad Hoc
Características que influenciam oTCP sobre Redes Ad Hoc
• Alta taxa de erro;• Incapacidade de distinguir entre perda porcongestionamento, por perda de rota e devidoa canal sem fio;
• Assimetria de caminhos• Restricoes de energia• Recomputação e perda da rota;• Particionamento da rede• Terminal oculto.
Recomputação e Perda da Rota
Particionamento da Rota
Terminal Oculto
TCP-F
• Quando agente de roteamento de um nódetecta rompimento de rota, envia umanotificação (Route Failure Notification RFN);
• TCP congela variáveis e para de enviardados;
• Retoma transmissão quando recebenotificação de restauração da rota(Route Re-establishment Notification RRN);
TCP sobre Redes Ad Hoc
trataNão trataNão trataNão trata
Transmissão
confiável
mengame
controle
Antiga janela e
RTO
Reset para
cada nova rota
Janela antiga e
RTO
Janela antiga e
RTO
Janela e RTO
após RR
Não tratatrataNao trataNão trataReordenação
pacote
Retorna estadoMecanismo
probing
Mecanismo
Probing
Retoma estadoRecontrução de
rota
Congela estadoMensagem
ICMP, destino
não encontrado
Congela estadoCongela estado
TCP
Rompimento de
rota
Não tratatrataNão trataNão trataAlta taxa de
erro
TCP-BusATCPELFNTCP-F
Roteiro
• Camada de Transporte;
• A Camada de Transporte na Internet;
• Variantes do Protocolo TCP para redesespecificas.
• Considerações finais
Considerações Finais
• Resumo conclusivo
• Conclusões
Resumo Conclusivo
• Função – abstrair para os processos queimplementam as aplicações a existênciade uma rede entre os mesmos;
• Serviços – orientado a conexão, queinclui entrega confiável e não orientadoà conexão sem entrega confiável;
Resumo Conclusivo
• Protocolos – Na Internet, o TCP ofereceserviços orientados à conexão e, consequentemmente alto overhead. Alémde ter associado a ele controle de fluxoe de congestionamento. O protocolo UDPnão é orientado à conexão e possui as vantagens e desvantagens opostas aoTCP.
Conclusões
• A camada de transporte deve oferecerserviços com e sem entrega confiável. Os seusprotocolos devem ser amigáveis para evitarinanição de recursos. Os mecanismos para osprotocolos devem ser auto-contidos na camadade transporte, orientados a características do meio e independentes do processo par conectado