Вы находитесь на странице: 1из 9

UNIVERSIDADE FEDERAL DE SO JOO DEL-REI

CAMPUS ALTO PARAOPEBA


ENGENHARIA MECATRNICA

TCP

Abdon Francisco Aureliano Netto


134450067

Ouro Branco,
2015

1) Introduo
TCP (Transmission Control Protocol) um padro que define como se estabelecer e manter uma
conexo via rede na qual programas podem trocar dados. TCP trabalha com o Internet Protocol (IP), que
define como os computadores enviam dados uns para os outros. Juntos, TCP e IP so as regras bsica que
definem a internet.
TCP um protocolo orientado a conexo, o que significa que uma conexo estabelecida e mantida
at que os programas de aplicao em cada extremidade terminem de trocar as mensagens. Ele tambm
determina como, quebrar os dados em pacotes que a rede consiga entregar, envia pacotes para e recebe
pacotes da camada de redes, gerencia o controle de fluxo, e lida com a retransmisso de pacotes perdidos
ou danificados, bem como o reconhecimento de todos os pacotes que chegam. No modelo de comunicao
OSI (Open Systems Interconnection), o TCP abrange parte da camada de transporte e parte da camada de
sesso.

2) Objetivo
Estudar e desenvolver uma aplicao do Protocolo de Controle de Transmisso (TCP).

3) Metodologia
Para estudar e explorar melhor o TCP, usaremos como software auxiliar, o software Wireshark. O
esperado procedimento a ser adotado ser de capturar uma trajetria de uma conexo TCP que envia um
montante moderado de dados para melhor entendimento do procedimento. Muitas aplicaes usam TCP
como transporte, incluindo navegadores de internet. Ento a ideia aqui de simplificar a performance de
um download/upload para exercer uma conexo TCP. No entanto, note que TCP capaz de transferir dados
em ambos os sentidos e ao mesmo tempo, porm o contedo de download s enviado do servidor remoto
para o computador local (aps o pedido inicial).
A estrutura do TCP representada na Figura1. O TCP aceita dados de um fluxo de um fluxo de
dados e os divide em pedaos(pacotes), e adiciona um cabealho TCP (TCP header) criando um segmento
TCP. O segmento TCP ento encapsulado dentro de um datagrama IP e trocado com seus pares. Um
segmento TCP consiste em um cabealho e uma seo de dados (Payload Data). O cabealho contm 10
grandes campos obrigatrios e um campo de extenso opcional(Options).

Figura 1 - Estrutura do TCP

Tabela 1 - Estrutura do segmento TCP

Nome
Porta de Origem (Source Port)
Porta de Destino (Destination Port)

Tamanho(Bits)
16
16

Nmero de Sequncia
(Sequence Number)

32

Nmero de reconhecimento
(Acknowledgment Number)
Tamanho do Cabealho (Data offset)

32
4

Reservado (Reserved)

Flags (ECN e Control Bits)

Tamanho da janela (Window)

16

Checksum

16
16

Dados Urgentes (Urgent Pointer)

Tamanho Varivel
Opes (Options)

Preenchimento (Padding)

Tamanho Varivel

Funo
Identifica a porta de envio
Identifica a porta de recebimento
Duas funes:
Se a flag SYN est ativada (1), ento esse
o nmero de sequncia inicial.
Se a flag SYN est desativada (0), ento
esse o nmero de sequncia acumulado
do primeiro bit dos dados atuais.
Quando o bit ACK ativado (1), esse segmento
serve como reconhecimento e esse campo contm
o nmero de sequncia, a fonte est esperando o
prximo destino para enviar.
Especifica o tamanho do cabealho TCP em uma
palavra de 32-bits.
Reservada para uso futuro qualquer e deve ser
definida como zero.
Contm 9 flags de 1 bit:
NS (1 bit) Proteo oculta exclusiva do ECN
(Explicit Congestion Notification)
CWR (1 bit) Janela de Congestionamento
Reduzido, indica que foi recebido um segmento
TCP com a flag ECE ativada.
ECE (1 bit) Se o flag SYN est ativado (1) o par TCP
ECN capaz.
URG (1 bit) Indica que o campo de ponteiro
urgente significativo.
ACK (1 bit) Indica que o campo de
reconhecimento est preenchido.
PSH (1 bit) Funo empurro. Pede para
empurrar os dados em buffer para os aplicativos
de recebimento.
RST (1 bit) Reestabelece a conexo.
SYN (1 bit) Sincroniza o s nmeros de sequncia.
FIN (1 bit) Sem mais dados do transmissor.
Especifica o nmero de unidades de tamanho de
janela(bytes) que o transmissor do atual segmento
est disposto a receber.
Campo usado para checagem de erros de
cabealho e dados.
Se a flag URG est ativada, ento esse campo de
16 bits um compensador do nmero de
sequncia indicando o ultimo byte de dados
urgentes.
O tamanho desse campo determinado pelo
campo compensador de dados. Opes pode ter
at trs campos: Tipo (1 byte), Tamanho (1 byte) e
Dados (varivel).
O preenchimento de cabealho do TCP usado
para ter certeza que o cabealho TCP termina e os
dados comeam com um limite de 32 bits.

A Tabela 1 acima, contm dados mais explicados do segmento de estrutura TCP (Wikipedia,
s.d.).

Para estabelecer uma conexo, o TCP usa um handshake de trs vias. O TCP handshake de trs
vias um mtodo usado pelo TCP para configurar uma conexo TCP/IP sobre um IP em uma rede. Esse
handshake conhecido como SYN, SYN-ACK, ACK porque essa so as trs mensagens transmitidas
pelo TCP para negociar e comear uma sesso TCP entre dois computadores, estipulando os
parmetros de rede, conexo TCP socket antes de transmitir dados como por exemplo HTTP dos
navegadores. (Tolle, 2001)

Figura 2 - Handshake TCP

Etapas:
1234567-

O Host A (Cliente) envia um pacote TCP SYN de sincronizao para o host b (Servidor).
O servidor recebe o SYN vindo do cliente.
O servidor envia um reconhecimento de sincronizao SYN-ACK.
O cliente recebe o SYN-ACK do servidor.
O cliente envia um protocolo de reconhecimento ACK
O servidor recebe o ACK do cliente,
Conexo TCP socket foi estabelecida.

4) Resultados e Discusso
Simulao e testes: Captura de uma transferncia TCP de um servidor remoto para meu
computador. Capturando dados vindo do Portal Didtico da UFSJ, baixando o arquivo
Trabalho_Pratico_Redes_Computadores_2_2015.pdf do professor Mrio Cupertino.
1. O navegador Google Chrome foi aberto e a pgina da UFSJ -> Portal Didtico -> Redes
Industriais de Computadores.

Figura 3 - Layout inicial da pgina acessada

2. Depois disso foi se encontrado o link para baixar o arquivo requisitado e a captura do
Wireshark foi iniciada. Clicando com o boto direito->Salvar como e salvando o arquivo na
pasta de arquivos da aula de Redes.

Figura 4 - Salvando o arquivo PDF

3. Com um print da captura no Wireshark possvel ver a minha mquina (IP: 192.168.1.8)
fazendo o handshake com o servidor do Portal Didtico UFSJ (IP: 200.17.67.175).

Figura 5 - Handshake entre meu computador e o servidor remoto da UFSJ

Analisando a Figura 5 possvel ver claramente a tentativa (com sucesso) do meu computador
comunicar-se com o servidor do Portal Didtico da UFSJ atravs do handshake. enviado um SYN da
minha mquina para o servidor pedindo que haja uma sincronizao de host (conexo), que retorna
depois um SYN-ACK de reconhecimento de sincronizao e ento minha mquina retornar um ACK de
reconhecimento. Logo aps isso uma mensagem GET contendo o arquivo baixado aparece, mostrando
que o arquivo foi baixado perfeitamente. Assim como explicado no final do tpico Metodologia.
Print de algumas consideraes importantes:

Figura 6 - Detalhes do pacote SYN-ACK

O pacote SYN-ACK tem Sequence Number = 0 e ACK = 1, pois a conexo ainda no foi concluda
apenas reconhecida. O nmero de sequncia comea com um valor igual a zero por default.

Figura 7 - Mensagem HTTP POST

Uma outra mensagem importante de se considerar a mensagem HTTP POST pois quando ela
ocorre o Sequence Number est ativado e uma mensagem com tamanho maior do que a mdia.
Uma outra analise importante o tempo necessrio para que um sinal seja enviado e o tempo
que leva para que uma mensagem de reconhecimento ACK daquele sinal seja recebido, conhecido
como RTT Round Trip Time. O Wireshrak fornece informaes dos RTT em Statistics -> TCP Stream
Graph -> Round Trip Time Graph.

Figura 8 - RTT da captura

Selecionando um segmento TCP enviado ao servidor podemos analisa-lo como Sequence


Number enviados versus tempo selecionando: Statistics -> TCP Stream Graph -> TimeSequence
Graph(Stevens).

Figura 9 - Grfico de sequncia de tempo de um segmento TCP da captura.

O Time-Sequence-Graph(Stevens) m grfico de uma sequncia de nmeros de um segmento


TCP versus o tempo. Ele ajuda a ver se o fluxo de dados transmitido est indo sem interrupes, perda
de pacotes ou longos atrasos. (Kristoff, 2000)
Uma outra anlise interessante de se fazer com o Wireshark a transferncia de dados, no
caso de nossa captura um download de um arquivo. Na barra Statistics -> IO Graph. Este grfico mostra
a taxa de pacotes ao longo do tempo, mas d para ajusta-lo para mostrar a taxa de download com as
entradas como na imagem abaixo:

Figura 10 - IO Graph da captura

No Graph 1 foi adicionado o filtro tcp.srcport==80 para que se possa ver apenas os pacotes
baixados e no Graph 2 em vermelho foi adicionado o filtro tcp.dstport==80 para ver a taxa de upload.
Nota-se que a taxa de upload foi muito pequena comparada ao de download visto que foi-se requerido
apenas o download de um arquivo, essa pequena taxa de upload pode ter sido feita por arquivos que
estavam funcionando em paralelo a captura (Algum torrent aberto, aplicativo de nuvem). O nmero
de porta 80 a porta padro de servidores de internet web.

5) Concluso
O TCP um protocolo bastante complexo que controla o peso da funcionalidade de uma rede
de comutao de pacotes, como a Internet, ajudando na entrega confivel de dados nela. Este
relatrio mostra apenas algumas funcionalidades na superfcie do TCP, ainda existe muitas outras
funcionalidades importantes a serem estudadas. O estudo do TCP uma rea de grande atividade e
existem muitos problemas a serem resolvidos. medida que a Internet continua a crescer, a nossa
dependncia de TCP vai se tornar cada vez mais importante. Portanto, importante para engenheiros
de rede, designers e pesquisadores continuem investindo em estudos do TCP.

6) Referncias Bibliogrficas

Desconhecido. (01 de Setembro de 2013). Inet Daemon. Fonte:


http://www.inetdaemon.com/tutorials/internet/tcp/3-way_handshake.shtml
Kristoff, J. (Maro de 2000). DePaul University. Fonte: DePaul University Web site:
https://condor.depaul.edu/jkristof/technotes/congestion.pdf
Tolle, E. (27 de Agosto de 2001). TechRepublic. Fonte:
http://www.techrepublic.com/article/understanding-tcp-ip-functionality/
Wikipedia. (s.d.). Wikipedia. Fonte:
https://en.wikipedia.org/wiki/Transmission_Control_Protocol#TCP_segment_structure

Вам также может понравиться