Professional Documents
Culture Documents
Redes de Computadores
CAMADA DE TRANSPORTE
Hana Karina S. Rubinsztejn hana@facom.ufms.br
Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Fluxo
Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Fluxo
Camada de Transporte
Arquitetura TCP/IP
APLICAO TRANSPORTE REDE ENLACE/FSICA
Caractersticas
Comunicao fim-a-fim entre aplicaes
Canal virtual de comunicao entre aplicaes em computadores distintos
Caractersticas
Servios fim-a-fim usuais
garante entrega da mensagem entrega mensagens na mesma ordem em que foram enviadas entrega no mximo uma cpia de cada mensagem aceita mensagens arbitrariamente grandes deteco e correo de erro fim-a-fim aceita sincronismo entre fonte e destino permite que o receptor controle o fluxo do emissor admite mltiplos processos de aplicao em cada host
Caractersticas
Mecanismos de identificao de processos O nvel de transporte oferece:
servios sem conexo (datagramas) servios orientados conexo (circuitos virtuais)
Controle do fluxo de dados fim-a-fim Controle de erro deteco e correo de erro fim-a-fim Controle de sequncia (sequenciao) Diviso de mensagens em segmentos
Caractersticas
servios sem conexo (datagramas)
Ex: UDP mapeia os pedidos de transmisso para servios oferecidos pela camada de rede Apresenta baixo overhead No implementa nenhum mecanismo de confiabilidade
Deteco de erro Controle de fluxo Sequenciao
Caractersticas
Servios orientados conexo (circuitos virtuais)
Ex: TCP Etapas:
Estabelecimento da conexo Transferncia de dados Encerramento da conexo
Caractersticas
Etapas dos Servios orientados conexo
estabelecimento da conexo
Three-Way Handshake Define o tamanho da janela de transmisso Define nmero de seqncia
Caractersticas
Etapas dos Servios orientados conexo
transferncia de dados
Deteco e correo de erros Sequenciao controle de fluxo
Caractersticas
Etapas dos Servios orientados conexo
Encerramento da conexo
Um problema presente evitar que dados sejam perdidos depois que um dos lados encerrou a conexo Uma entidade de transporte ao pedir uma desconexo deve aguardar por um tempo antes de fechar a conexo, podendo receber dados durante esse perodo Uma conexo termina apenas depois de decorrido um certo tempo sem que chegue nenhuma T-PDU (unidade de dados do protocolo de transporte) Dessa forma, se um lado desconectar, o outro vai notar a falta de atividade e tambm se desconectar
Caractersticas
Etapas dos Servios orientados conexo
Encerramento da conexo
Para evitar que uma conexo seja desfeita, os participantes devem assegurar o envio de T-PDUs peridicas informando que esto vivos, quando no tm dados para transmitir; Caso muitas T-PDUs se percam durante uma conexo, um dos lados pode fechar a conexo indevidamente;
Caractersticas
Protocolos de Transporte
Mesmas tcnicas do nvel de enlace agora aplicadas fim-a-fim Controle de fluxo
Stop-and-Wait (bit alternado) Sliding window (Janela deslizante)
Controle de erro
ARQ Automatic Repeat Request (Stop and Wait = bit alternado na camada de enlace) janela n com retransmisso integral - Go back N janela n com retransmisso seletiva - Selective Repeat
Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Fluxo
Portas
Identificam os processos origem e destino Viabilizam a comunicao fim-a-fim Permite envio e recepo de datagramas de forma independente
Portas
Como o protocolo de transporte identifica para qual processo ele tem que entregar as informaes na camada de aplicao?
Atravs das portas
Porta 1 Porta 2 Porta n
Nvel de Transporte
Nvel de Rede
Portas
SO oferece interface de acesso Pressupe buffers de recepo e transmisso
Comunicao Cliente-Servidor
Porta Origem Porta Destino Dados
Porta aleatria
Portas
Exemplo: Protocolo TCP ou UDP
Portas so nmeros inteiros de 16 bits Padronizao da IANA (Internet Assigned Number Authority) A IAB (Internet Activity Board) define o nmero da porta que cada servio da Internet deve estar associado 0 1023 1024 PORTAS UTILIZADAS POR CLIENTES E SERVIOS NO PADRONIZADOS PORTAS RESERVADAS PARA SERVIOS PADRONIZADOS
65535
Portas
Servidores tm portas bem conhecidas
/etc/services (linux), \win*\services (win*)
Portas
Processo Processo Processo Processo
APLICAO
PORTA PORTA
APLICAO
PORTA PORTA
TRANSPORTE IP
ENLACE/FSICA
REDE
Portas
Aplicao
Aplicao
Definio de portas
SMTP TCP
FTP
Port
DNS UDP
Protocol
NFS
Transporte
Rede Fsica
IP
Endereo IP Placa de Rede / Fax Modem
Portas
Aplicao
Aplicao
Definio de portas
SMTP TCP
FTP
Port
DNS UDP
Protocol
NFS
Transporte
Pergunta:
Como decidido qual protocolo Rede de transporte uma aplicao deve utilizar?? Fsica
IP
Endereo IP Placa de Rede / Fax Modem
Comunicao Cliente-Servidor
Porta Origem Porta Destino Dados
Como definida/atribuda uma porta para uma aplicao? Porta bem conhecida Internet Explorer 1024 1025 Porta aleatria Servidor WWW Servidor de email 80 25
Outlook
Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Fluxo
Protocolos
UDP (User Datagram Protocol):
Servio no orientado a conexo Baixo overhead No confivel
Deteco de erro opcional Sem controle de seqncia Nenhum controle de fluxo
UDP
Formato do Datagrama UDP
Source/Destination Port:
Portas usadas pelos processos
Length:
Tamanho do datagrama (octetos)
0 PortaOrg Tamanho
31
Checksum:
Verificao de erro no datagrama (opcional). Normalmente este no implementado; cabealho UDP + pseudo-cabealho + dados
Data:
Dados do usurio
Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Fluxo
TCP
Caractersticas:
Baseado em Stream:
Seqncia de bytes no estruturada
Controle de fluxo por janela deslizante: evita que emissor ultrapasse a capacidade do receptor Controle de congestionamento: evita que o emissor inunde a rede
TCP
Segmentos:
TCP manipula o stream de dados como uma seqncia de octetos divididos em segmentos Cada segmento encapsulado dentro de um datagrama IP
Nmeros de Seqncia:
Segmentos no stream de dados so numerados seqencialmente;
Processo da aplicao Escreve bytes TCP
Buffer envio
Segmento
Segmento
Segmento
Transmite segmentos
TCP
Confiabilidade:
Implementa confiabilidade atravs de reconhecimento positivo e retransmisso (caso ocorra erro/falha) Utiliza Piggybacking no reconhecimento Confirmao enviada junto com a parte de dados Retransmisso baseada em timeout
TCP
O TCP ao transmitir os dados de um segmento
Guarda uma cpia na fila de retransmisso Aguarda a chegada de um reconhecimento Se timeout estourar, o segmento da fila de retransmisso enviado
TCP
Host A
Host B
Timer Expires Retransmit Seg 1 Start Timer Receive ACK 1 Cancel Timer
TCP
Sliding Window:
Permite o transmissor enviar mltiplos segmentos antes de receber reconhecimento Eficincia de transmisso e controle de fluxo dinmico
informado junto com o reconhecimento o nmero de segmentos que o receptor tem capacidade de receber.
1 2 1 2
3 4 5 3 4 5
6 7 8 6 7 8
9 10 ... 9 10 ...
TCP
Ex. com Janela de transmisso = 3
Host A Send Seg 1 Send Seg 2 Host B Receive Seg 1 Send ACK 1 Receive Seg 2 Send ACK 2 Receive Seg 3 Send ACK 3 Receive Seg 4
Send Seg 3 Receive ACK 1 Send Seg 4 Receive ACK 2 Send Seg 5 Receive ACK 3
TCP
0 4 10 Source Port 16 Destination Port 31
TCP
Campos do Segmento:
Source/Destination Port:
Identificam os processos origem e destino da conexo
Sequence Number:
Posio/Nmero do segmento dentro do stream de dados
Ack Number:
Reconhecimento (ACK) - nmero do prx byte que o receptor espera receber Pacote que vai em um sentido confirma ltimo pacote recebido no sentido contrrio (piggybacking)
TCP
TCP
Campos do Segmento:
Hlen:
Tamanho do cabealho (unidade: 4 octetos)
Code Bits:
URG: Campo Urgent Pointer vlido ACK: Confirmao do pedido de conexo PSH: Segmento requer entrega imediata (push) RST: Reseta a conexo trmino devido a erro SYN: Estabelecimento de conexo
sincroniza nmeros de seqncia
TCP
Campos do Segmento:
Window Advertisement:
Especifica o tamanho da janela
Possibilita controle de fluxo Evita a sobre-escrita de buffers Informa o tamanho da janela disponvel no receptor Transmissor no pode enviar dados alm do que o receptor pode receber
Checksum:
Verificao de erro no segmento
Urgent Pointer:
Posio dos dados urgente no segmento (se existirem)
TCP
Campos do Segmento:
Options:
Tamanho de Segmento Mximo (MSS)
Pacote de pesquisa pelo MSS Visa evitar fragmentao IP
Timestamp
Permite reconhecer pacotes que tenham se extraviado pela rede durante conexes muito rpidas
Transferncia de dados
Comunicao full-duplex Interface de servio uma seqncia de bytes
Trmino da conexo
TCP garante a entrega de todos os dados antes de fechar uma conexo a pedido da aplicao
192.168.75.1
192.168.75.2
TCP
Three-way Handshake
192.168.75.1
192.168.75.2
TCP
Three-way Handshake
192.168.75.1
192.168.75.2
TCP
Three-way Handshake
Aps estabelecer a conexo, todos os segmentos de dados trocados entre os hosts envolvidos tm o bit ACK = 1
Conexo estabelecida
192.168.75.1
192.168.75.2
TCP
Three-way Handshake
Host A
SYN seq=x
SYN/ACK
seq=y ACK=x
TCP
Flag ACK
Uma conexo TCP sempre se inicia com o cliente enviando um pacote com o flag SYN = 1 e ACK= 0.
SYN = 1 e ACK=0
SYN = 1 e ACK=1
ACK=1 ACK=1
...
tempo tempo
TCP
Trmino da conexo
Host A FIN seq=x FIN seq=x ACK=x DATA DATA ACK x FIN seq=y ACK=x FIN seq=y ACK=x ACK=y ACK=y Host B
Resumindo:
TCP Maximum Segment Size = IP Maximum Datagram Size - 40
Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Erros e de Fluxo
Controle de Erros
Deteco de erro
Checksum CRC Cyclic Redundancy Code
Stop-and-Wait - ARQ
TRANSMISSOR Q0 ACK0 Q1 time-out Q1 E time-out Q1 ACK0 RECEPTOR Q0 ACK0 E
Q1 ACK1 Q1 ACK0
tempo
O transmissor ao receber o ACK do segmento n conclui que ele, e os segmentos antes dele, foram recebidos corretamente.
Controle de Fluxo
Controle de fluxo fim-a-fim
Regula o fluxo de mensagens (pacotes) entre transmissor e receptor; Resolve o problema da diferena entre velocidade de transmisso e recepo; No permite que uma estao transmissora mais rpida sobrecarregue uma estao receptora; Tcnicas:
Stop-and-Wait == Bit Alternado Sliding Window (Janela deslizante)
ltimoByteEscrito
ltimoByteLido
ltimoByteConfirmado
ltimoByteEnviado
ProxByteEspeado
ltimoByteRecebido
Lado emissor
ltimoByteConfirmado < = ltimoByteEnviado ltimoByteEnviado < = ltimoByteEscrito buffer de bytes entre: ltimoByteConfirmado e ltimoByteEscrito
Lado receptor
ltimoByteLido < PrxByteEsperado PrxByteEsperado < = ltimoByteRecebido +1 buffer de bytes entre: ltimoByteLido e ltimoByteRecebido
Controle de fluxo
Tamanho do buffer de envio: BufferEnvioMx Tamanho do buffer de recepo: BufferRecMx Lado receptor ltimoByteRecebido - ltimoByteLido < = BufferRecMx JanelaAnunciada = BufferRecMx (PrxByteEsperado - ltimoByteLido)
Bytes no lidos
Se o processo local l os dados to rpido quanto eles chegam , a janela anunciada permanece aberta (JanelaAnunciada = BufferRecMx) Caso contrrio a janela pode at ser reduzida a zero Sempre envia ACK em resposta chegada do segmento de dados
Controle de fluxo
Lado emissor ltimoByteEnviado - ltimoByteConfirmado < = JanelaAnunciada Qtos dados ainda podem ser enviados JanelaEfetiva = JanelaAnunciada (ltimoByteEnviado - ltimoByteConfirmado) ltimoByteEscrito - ltimoByteConfirmado < = Para evitar overflow local BufferEnvioMx bloqueia emissor se (ltimoByteEscrito ltimoByteConfirmado) + y > BufferEnvioMx
Novos dados do emissor
Persiste no envio de 1 byte (de tempos em tempos) quando JanelaAnunciada = 0 Por que ???
Tempo at a quebra 6,4 horas 57 minutos 13 minutos 6 minutos 4 minutos 55 segundos 28 segundos
Disparando a transmisso
Aplicaes escrevem fluxos bytes (byte-stream) Quando o TCP deve enviar um segmento?
Assim que MSS for atingido
Segmento mximo que no causa fragmentao
Emissor
Receptor
Algoritmo de Karn/Partridge
Emissor Receptor Emissor Receptor
(a)
(b)
Notas
algoritmo to bom quanto a granularidade do clock (500ms no Unix) mecanismo de timeout importante para controle de congestionamento (mais tarde)
Roteiro
Caractersticas Portas de Comunicao Cliente e Servidor UDP TCP
Controle de Fluxo
Temporizao
Algumas aplicaes (ex.: telefonia Internet, jogos interativos) exigem baixos atrasos para serem efetivos
Banda passante
Algumas aplicaes (ex.: multimdia) exigem uma banda mnima para serem efetivas Outras aplicaes (aplicaes elsticas) melhoram quando a banda disponvel aumenta
Sensvel ao atraso no no no sim, 100s mseg sim, segundos sim, 100s mseg sim
Servio UDP:
Transferncia de dados no confivel entre os processos transmissor e receptor No oferece: estabelecimento de conexo, confiabilidade, controle de fluxo e de congestionamento, garantia de temporizao e de banda mnima.
Referncias
Captulo 5:
Redes de Computadores: Uma abordagem de sistemas. Larry Peterson e Bruce Davie. 3 ed. Editora Campus, 2004.
TCP
RFC793: http://www.faqs.org/rfcs/rfc793.html
No XP: http://support.microsoft.com/kb/314053