Você está na página 1de 40

Curso:Tcnico Integrado em Informtica

Disciplina : Redes de computadores

Protocolo TCP.

Prof. Credson Isaac

Objetivo
Situar

o protocolo TCP nos modelos


de camadas OSI/TCP-IP

Entender

o conceito de
comunicao orientada a conexo

Conhecer

as principais
caractersticas do protocolo TCP e
suas funcionalidades
2

Protocolo TCP
Introduo

Conceito de camadas
UDP x TCP
TCP x IP
Caractersticas do TCP
Fundamentos do protocolo TCP
Conexo IP
Consideraes Finais
3

Modelos de camadas

Modelos de camadas

TCP x UDP

O TCP fornece um circuito virtual entre


aplicaes do usurio final.

1.

Orientado para conexo


Confivel
Divide as mensagens enviadas em segmentos
Reagrupa as mensagens na estao de destino
Reenvia tudo o que no foi recebido
Reagrupa as mensagens a partir de segmentos
recebidos

2.
3.
4.
5.
6.

TCP x UDP

O UDP transporta dados sem confiabilidade entre


hosts.

1.

Sem conexo No confivel


Transmite mensagens (chamado de datagramas do
usurio)
No fornece verificao de software para a entrega da
mensagem (no confivel)
No reagrupa as mensagens de entrada
No usa confirmaes
No fornece controle de fluxo

2.
3.
4.
5.
6.

TCP x IP

Protocolo TCP

Caracterstica

Servio orientado a fluxo

Divide o fluxo de dados em seguimentos

Servio confivel
Garante a entrega do fluxo de dados na
seqncia correta e sem erros
Prev controle de erro, seqncia e fluxo

Servio orientado conexo


Negocia parmetros operacionais na abertura da
conexo
Conexes full-duplex

Fundamentos

Define a unidade de dados do servio de


circuito virtual, denominada seguimento
TCP

Multiplexa mensagens geradas pelos


processos no servio da camada de rede

Especifica o formato e a funo dos campos

Encapsula segmentos em datagramas IP

Demultiplexa segmentos para os


respectivos processos destino

Extrai mensagens dos segmentos


10

Fundamentos

Adota uma abordagem baseada em fluxo de


dados (data stream)
Trata o fluxo de dados como uma cadeia contnua
de bytes
Decide como agrupar bytes em segmentos

Adota uma abordagem orientada conexo


full-duplex
Estabelecimento da conexo
Transferncia de dados
Fechamento da conexo

11

Fundamentos
Define

mecanismos integrados de
controle de erro e seqncia
Asseguram

a entrega do fluxo de dados


na seqncia correta e sem erros

Define

fluxo

mecanismo de controle de

Regula

e compatibiliza a taxa de
transmisso das unidades envolvidas
Evita descarte de segmentos por falta de
recursos da estao destino
12

Fundamentos

Formato do segmento TCP

10

16

Source port

31

24
Destination port

Sequence number
Acknowledgement number
Hlen

Reserved Code bits


Checksum

Window
Urgent point

Options

Pad
Data
13

Fundamentos
Campos

do segmento

Hlen
Tamanho

bytes

do cabealho em unidades de 4

Reserved
Reservado

para uso futuro (No utilizado)

Checksum
Assegura

a integridade do segmento
Considera um pseudocabealho e pode
incluir um pad (0)
14

Fundamentos

Campos do segmento

Code bits

Indica propsito e contedo do segmento

Code bits

URG: Dados urgentes


ACK: reconhecimento
PSH: mecanismo de push
RST: abordo de conexo (reset)
SYN: Abertura de conexo
FIN: fechamento de conexo
0

URG

ACK

PSH

3
RST

4
SYN

5
FIN
15

Fundamentos

Campos do segmento

Options

Lista varivel de informaes opcionais

Torna o tamanho do cabealho varivel

Padding

MSS Maximum Segment Size

Bits 0 que tornam o segmento mltiplo de 32 bits

Data

Dados do segmento

16

Conexo TCP

Socket

Source port

Destination port

Porta associada ao processo de origem


Porta associada ao processo de destino

Endpoint
Definido pelo par (Endereo IP, porta)
Identifica de forma nica cada porta ou ponto de
comunicao na inter-rede
Tambm conhecido como Socket

17

Conexo TCP
Estabelecimento
Three

de conexes

way handshake

Negocia

e sincroniza o valor inicial dos


nmeros de seqncia em ambas as
direes
Baseado na arquitetura cliente-servidor
O servidor deve est com a porta aberta
em estado de escuta (Listening)

18

Conexo TCP

Estabelecimento de conexes

19

Conexo TCP

Transmisso de dados

Entrega de dados fora-de-banda

Campo Urgent Point


o transmissor transmite o dado urgente na rea de dados
e seta o bit URG (campo Codebits), indicando a posio no
segmento onde o dado urgente terminou
O receptor deve notificar a aplicao sobre a chegada do
dado urgente to logo quanto possvel

Mecanismo de Push
Aplicao avisa ao TCP para enviar o dado
imediatamente
Fora a gerao de um segmento com os dados j
presentes no Buffer
No aguarda o preenchimento do Buffer
Segmentos gerados pelo mecanismo de PUSH so
marcados com o flag PSH no campo codebits

20

Conexo TCP

Conexo (identificadores)

Cada conexo identificada por um par de endpoints


Tambm conhecida como Socket pair
Vrias conexes por estao

172.16.1.5

192.168.10.1

10.1.1.1

P1

P2

P3

P4

Porta 5000

Porta 80

Porta 25

Porta 1800

(172.16.1.5, 5000) e (192.168.10.1, 80)

(192.168.10.1, 80) e (10.1.1.1,


1800)

21

Conexo TCP

Cada endpoint local pode participar de diversas


conexes com endpoints remotos
Compartilhamento de endpoints
O Sistema Operacional deve garantir que o
par de endpoint da conexo nico

172.16.1.5

192.168.10.1

10.1.1.1

P1

P2

P5

P4

Porta 5000

Porta 80

Porta 80

Porta 2000

(172.16.1.5, 5000) e (192.168.10.1, 80)

(192.168.10.1, 80) e (10.1.1.1,


2000)

22

Conexo TCP

Direcionamento de menssagens

Segmentos recebidos so associados s


conexes, no apenas as portas
Avalia o par de endpoints da conexo
Portas origem e destino so obtidas do segmento
recebido
Endereo IP origem e destino so obtidos do
datagrama IP

Cada conexo possui um buffer de


transmisso e um Buffer de recepo em
cada extremidade
23

Conexo TCP
Controle

de seqncia

Fluxo

de dados tratado como uma


seqncia de bytes
Cada

byte possui um nmero de


seqncia
Numerao nem sempre comea em 0
(zero)
Negociado no estabelecimento da
conexo
Campo
150

151

...

... 348 349 350 351 ... 448


200o 201
Indica
nmero
de seqncia do
200
Segmento 350
primeiro Segmento
byte de
dados contido
no

198 199

Segmento 150

Sequence number
449
24

Conexo TCP
Controle

de seqncia

Nmeros de seqncia:
Nmero do primeiro byte
nos segmentos de dados
ACKs:
Nmero do prximo byte
esperado do outro lado
ACK cumulativo
P.: Como o receptor trata
segmentos fora de ordem?
A especificao do TCP no
define, fica a critrio do
implementador

25

Conexo TCP

Controle de erros

Reconhecimento positivo
Destino retorna uma mensagem indicando o
correto recebimento do segmento
Reconhecimento pode pegar carona no segmento
de dados do fluxo inverso

Reconhecimento cumulativo

150

151

...

198

Segmento 150

Diversos segmentos consecutivos podem ser


reconhecidos em uma nica mensagem

199

200

201

...

348

Segmento 200

349

350

351

...

448

Segmento 350

449
26

Conexo TCP

Controle de erros

Acknowledgment number
Indica o nmero de sequncia do prximo byte
que espera receber
Indica o correto recebimento dos bytes com
nmero de seqncia anterior
Bit ACK do Code Bits deve ser ativado

150

151

...

198

199

200

201

...

348

349

350

351

...

448

Seq. number 150

Seq. number 200

Seq. number 350

ACK number 200

ACK number 350

ACK number 450

449

27

Conexo TCP
Controle

de erros

Realizado

atravs de Retransmisso

Origem

adota um temporizador para


cada segmento enviado
Segmento retransmitido quando a
origem no recebe o reconhecimento
(ack) antes de expirar o temporizador
Temporizador reativado em cada
retransmisso
28

Conexo TCP

Controle de erros - Cenrios

Cenrio com perda


do ACK

Temporizao prematura,
ACKs cumulativos

29

Conexo TCP

Controle de erros - Cenrios

Cenrio de ACK cumulativo

30

Conexo TCP
Controle

de fluxo

31

Conexo TCP

Controle de fluxo

Objetivo

Transmissor no deve esgotar os buffers de


recepo enviando dados rpido demais

Implementao

Janela deslizante

Entidades negociam o nmero de bytes adicionais


que
podem ser recebidos a partir do ltimo
reconhecimento
Destino define o tamanho de sua janela de
recepo em cada segmento
Origem atualiza o tamanho de sua janela de
transmisso a cada reconhecimento
Reconhecimento deslocam a janela de
transmisso da origem para o primeiro byte
sem reconhecimento

32

Conexo TCP
lado receptor da conexo TCP
possui um buffer de recepo:

Controle de fluxo
Transmissor no deve esgotar
os buffers de recepo
enviando dados rpido demais

Servio de speed-matching:

encontra a taxa de envio


adequada taxa de vazo da
aplicao receptora

Processos de aplicao podem


ser lentos para ler o buffer

33

Conexo TCP
Receptor informa a rea
disponvel incluindo valor
RcvWindow nos segmentos
Transmissor limita os dados no
confimados ao RcvWindow
Garantia contra overflow no
buffer do receptor

Espao disponvel no buffer


= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]

34

Conexo TCP
Controle
Campo

de fluxo
Window

Sinaliza

o tamanho da janela de recepo


da entidade em cada segmento enviado

Applet

on-line

http://wps.aw.com/br_kurose_redes_3/40/

10271/2629597.cw/index.html
Jenela off-line

35

Conexo TCP

Fechamento de conexo (Liberao ordenada)

Ocorre separadamente em cada direo da conexo

36

Conexo TCP

Fechamento de conexo (Trmino abrupto)

37

Consideraes

Camada de Transporte
Servio orientado a conexo
Conexo TCP
Controle de seqncia
Controle de erros
Controle de fluxo

Laboratrio
38

Protocolo TCP

ATIVIDADE

1)Marque V para as afirmativas corretas e F para as afirmativas


falsas.

( ) A arquitetura Internet prev dois protocolos no nvel de transporte. O TCP e


o UDP,
ambos garantem a entrega de dados ao destino.
( ) O UDP mais rpido que o TCP por no prover garantia de entrega dos
pacotes ao
destino
( ) O nmero da porta do servidor tem que ser igual ao do cliente para eles
estabelecerem uma conexo
( ) O nmero de porta s necessrio com o protocolo TCP, j que o UDP no
tem
garantia de entrega de pacotes
( ) Para uma aplicao cliente se conectar a uma aplicao servidora ela
precisa
fornecer o nmero IP da mquina destino e a porta da mquina destino
( ) A transferncia de dados no TCP sempre feita no modo simplex
( ) No UDP, antes de enviar algum dado preciso estabelecer uma conexo
( ) O TCP faz controle de fluxo e de erros

39

Referncias

Comer, Douglas E., Interligao de Redes Com


Tcp/ip
James F. Kurose, Redes de Computadores e a
Internet
Escola Superior de Redes, Arquitetura e
Protocolos de Redes TCP/IP

40