Escolar Documentos
Profissional Documentos
Cultura Documentos
Endereamento em Subredes
A diviso de endereamento tradicional da Internet em classes, causou srios problemas de eficincia na distribuio de endereos. Cada rede na Internet, tenha ela 5, 200, 2000 ou 30 mquinas deveria ser compatvel com uma das classes de endereos. Desta forma, uma rede com 10 estaes receberia um endereo do tipo classe C, com capacidade de enderear 256 estaes. Isto significa um desperdcio de 246 endereos. Da mesma forma, uma rede com 2000 estaes receberia uma rede do tipo classe B, e desta forma causaria um desperdcio de 62000 endereos. O nmero de redes interligando-se Internet a partir de 1988 aumentou, causando o agravamento do problema de disponibilidade de endereos na Internet, especialmente o desperdcio de endereos em classes C e B. Desta forma, buscou-se alternativas para aumentar o nmero de endereos de rede disponveis sem afetar o funcionamento dos sistemas existentes. A melhor alternativa encontrada foi flexibilizar o conceito de classes - onde a diviso entre rede e host ocorre somente a cada 8 bits. A soluo encontrada foi utilizar a identificao de rede e host no endereamento IP de forma varivel, podendo utilizar qualquer quantidade de bits e no mais mltiplos de 8 bits conforme ocorria anteriormente. Um identificador adicional, a MSCARA, identifica em um endereo IP, que poro de bits utilizada para identificar a rede e que poro de bits para host. A mscara formada por 4 bytes com uma sequncia contnua de 1s, seguida de uma sequncia de 0s. A poro de bits em 1 identifica quais bits so utilizados para identificar a rede no endereo e a poro de bits em 0, identifica que bits do endereo identificam a estao. Obs. A mscara pode ser compreendida tambm como um nmero inteiro que diz a quantidade de bits um utilizados. Por exemplo uma mscara com valor 255.255.255.192, poderia ser representada como /26. Este tipo de notao empregada em protocolos de roteamento mais recentes Este mecanismo est representado na figura abaixo:
0 Octeto 1 7 Octeto 2 15 Octeto 3 23 Octeto 4 31
End.
Neste endereo 200.18.160.X, a parte de rede possui 26 bits para identificar a rede e os 6 bits restantes para identificar os hosts. Desta forma, o endereo 200.18.160.0 da antiga classe C, fornecido a um conjunto de redes pode ser dividido em quatro redes com as identificaes abaixo. Note que os 4 endereos de rede so independentes entre si. Elas podem ser empregadas em redes completamente separadas, e at mesmo serem utilizadas em instituies distintas.
200.18.160.[00XXXXXX] 200.18.160.[01XXXXXX]
MGNMAGNO VALOR 3,00 REDE PARTE 1 200.18.160.[10XXXXXX] e 200.18.160.[11XXXXXX] Em termos de identificao da rede, utiliza-se os mesmos critrios anteriores, ou seja, todos os bits de identificao da estao so 0. Quando os bits da estao so todos 1, isto identifica um broadcast naquela rede especfica. Desta forma temos as seguintes identificaes para endereo de rede: 200.18.160.0 200.18.160.64 200.18.160.128 e 200.18.160.192 Os endereos de broadcast nas redes so: 200.18.160.63 200.18.160.127 200.18.160.191 e 200.18.160.255 Os possveis endereos de estao em cada rede so: 200.18.160.[1-62] 200.18.160.[65-126] 200.18.160.[129-190] e 200.18.160.[193-254] O mesmo raciocnio de subrede pode ser usado para agrupar vrias redes da antiga classe C em uma rede com capacidade de endereamento de um maior nmero de hosts. A isto d-se o nome de superrede. Hoje, j no h mais esta denominao pois no existe mais o conceito de classes. Um endereo da antiga classe A, como por exemplo 32.X.X.X pode ser dividido de qualquer forma por meio da mscara.
0 Octeto 1 7 Octeto 2 15 Octeto 3 23 Octeto 4 31
End.
As mscaras das antigas classes A, B e C so um sub-conjunto das possibilidades do esquema utilizado atualmente, conforme mostrado abaixo: Classe A: mscara equivalente = 255.0.0.0 Classe B: mscara equivalente = 255.255.0.0 Classe C: mscara equivalente = 255.255.255.0
Flexibilidade de Endereamento
Uma concluso que pode-se obter da anlise acima que uma identificao de uma rede, composta de um endereo de rede e uma mscara (p.ex. 200.18.171.64 e mscara 255.255.255.192) , na verdade, um espao de endereamento, que pode ser usado da forma mais indicada. Por exemplo um espao de endereamento dado por Rede = 32.10.20.128 com mscara 255.255.255.192 pode enderear 64 endereos (62 endereos vlidos) em uma rede s. Mas podemos subdividi-lo em subredes, de tal forma que poderemos ter: 1 rede de 64 endereos (usando o endereo e a mscara como esto) 2 redes de 32 endereos (aumentando em mais um bit a mscara) Neste caso temos o endereo 32.10.20.128 dividido da seguinte forma: Rede 1 = 32.10.20.128 com mscara 255.255.255.224 e Rede 2 = 32.10.20.160 com mscara 255.255.255.224 Neste caso, cada rede formada pode ter at 30 endereos, pois deve-se sempre reservar os bits TODOS ZERO para o endereo de rede e os bits TODOS UM para o endereo de broadcast. Desta forma, os endereos de mquina em cada rede so: Rede 1: 32.10.20.[129-158] e Rede 2: 32.10.20.[161-190] Note que deve-se sempre respeitar o espao de endereamento original. Um dos erros mais comuns utilizar parte do endereamento vizinho, o que est errado pois pertence a outro espao de endereamento. 4 redes de 16 endereos (aumentando em dois bits a mascara original) Neste caso temos o endereo 32.10.20.128 dividido da seguinte forma: Rede 1 = 32.10.20.128 com mscara 255.255.255.240 Rede 2 = 32.10.20.144 com mscara 255.255.255.240 Rede 3 = 32.10.20.160 com mscara 255.255.255.240 Rede 4 = 32.10.20.176 com mscara 255.255.255.240 Neste caso, cada rede formada pode ter at 14 estaes Ento os endereos de mquina em cada rede so: Rede 1: 32.10.20.[129-142] Rede 2: 32.10.20.[145-158] Rede 3: 32.10.20.[161-174] Rede 4: 32.10.20.[177-190] Note que o espao de endereamento original sempre se manteve, variando de 128 a 191 8 redes de 8 endereos 16 redes de 4 endereos (onde 4 endereos so na verdade duas estaes, devido aos endereos reservados de rede e broadcast) E s ! pois 32 redes de 2 estaes no existe pois seria uma rede sem nenhuma estao pois os dois endereos disponveis j seriam utilizados para rede e broadcast.
MGNMAGNO VALOR 3,00 REDE PARTE 1 Entretanto, as formas acima ainda no so as nicas formas de diviso do espao de endereamento. Pode-se dividir em mais uma dezena de forma, utilizando-se divises do espao de endereamento de forma no homognea. Um exemplo claro pode ser dado por exemplo observando redes reais, onde a quantidade de estaes pode variar bastante entre cada uma. Po exemplo, supondo que o espao de endereamento acima com capacidade de enderear 64 estaes deva ser utilizado em uma empresa com 50 estaes. Estas 50 estaes esto divididas em 3 redes, sendo uma com 30 estaes e duas com 10 estaes. Pode-se observar que nenhuma das formas de diviso acima so aceitveis pois ou no comportam o nmero de redes necessrias (diviso em duas) ou no comportam o nmero de estaes (diviso em 4). A soluo realizar uma diviso do espao de endereamento de forma no homognea. Isto realizado de forma simples, utilizando metade do espao original para a rede de 30 estaes e dividindo o espao restante em duas redes de 16 endereos. De forma resumida, a diviso da seguinte forma: O espao original; dividido em dois, onde temos duas redes de 32 endereos: Rede 1 = 32.10.20.128 com mscara 255.255.255.224 Rede 2 = 32.10.20.160 com mscara 255.255.255.224 Utiliza-se a rede 1 que possui os endereos de estao 32.10.20[129-158] para a rede com 30 estaes. A rede 2 na verdade um outro espao de endereamento (!) dado por 32.10.20.160 com mscara 255.255.255.224. Pode-se ento dividir este espao de endereamento em duas rede, bastando aumentar um bit na mscara de rede: Rede 2 = 32.10.20.160 com mscara 255.255.255.240 Rede 3 = 32.10.20.176 com mscara 255.255.255.240 Ento, o resultado final so trs redes, onde a rede 2 possui os endereos de rede 32.10.20.[161-174] para estaes e a rede 3 possui os endereos 32.10.20.[177-190] para as estaes. A figura abaixo mostra um exemplo de redes de uma empresa que ao se ligar Internet, recebeu o espao de endereamento 200.18.171.0 com mscara 255.255.255.0 para ser utilizado em suas 3 redes internas. As rede possuem cada uma 50 estaes, de modo que a diviso mais adequada dividir o espao em 4 redes de 64 endereos. Neste caso o espao de endereamento 200.18.171.0 com mscara 255.255.255.0 foi dividido em trs subredes, cada uma com capacidade de enderear at 62 estaes (64 endereos retirando o [000000] e o [111111]). Note neste exemplo, que para a Internet, as trs redes so vistas como uma s pois as rotas na Internet sempre se referem rede 200.18.171.0 com mscara 255.255.255.0. Por isto os termos rede e espao de endereamento so utilizados de forma indistinta.
200.18.171.129
200.18.171.130...
200.18.171.2
200.18.171.65
200.18.171.66
A tabela de rotas do roteador inferior dada pela tabela abaixo: Rede Destino 200.18.171.0 200.18.171.64 200.18.171.128 default Mscara 255.255.255.192 255.255.255.192 255.255.255.192 0.0.0.0 Roteador (Gateway) 200.18.171.3 (eth0) 200.18.171.65 (eth1) 200.18.171.2 200.18.171.1 Hops 0 0 1 --
A mscara de rede faz parte de toda tabela de rotas. O algoritmo de Recepo de pacote IP e roteamento com a introduo da mscara de sub-rede fica alterado conforme abaixo:
1. Datagrama recebido da camada intra-rede, defragmentado e testado 2. Caso: 2.1 Endereo Destino = Endereo do Host, ou E.D. = outras interfaces do Host, ou E.D. = Broadcast 2.1.1 Passa datagrama para nveis superiores -> FIM 2.2 Caso: 2.2.1 Mquina que recebeu no roteador 2.2.1.1 Descarta datagrama -> FIM 2.2.2 Mquina roteador (possui mais de uma interface IP) 2.2.2.1 Caso: 2.2.2.1.1 Endereo de rede IP destino = Alguma das Redes IP com interface direta 2.2.2.1.1.1 Descobre o endereo fsico do destino (ARP) 2.2.2.1.1.2 Transmite datagrama pela interface respectiva -> FIM 2.2.2.1.2 Faz um AND lgico bit-a-bit do endereo IP com as mscaras de cada rede da tabela de rotas e compara com o endereo de rede da rota respectiva 2.2.2.1.3 Se algum conferir, descobriu uma rota 2.2.2.1.3.1 Verifica na tabela de rotas o endereo IP do roteador destino desta rota. 2.2.2.1.3.2 Descobre o endereo fsico do gateway (ARP) 2.2.2.1.3.3 Transmite o datagrama para o gateway -> FIM 3. Fim Sub-Redes no utilizveis:
Devido a motivos histricos do desenvolvimento de TCP/IP, a diviso em sub-redes tem algumas restries quanto a utilizao de algumas sub-redes. Basicamente, no se pode utilizar o endereamento que contm todos os bits UM da poro da sub-rede. As implementaes mais novas permitem que este endereamento seja utilizado. A figura abaixo ilustra esta restrio na utilizao da sub-rede com os dois bits 11, para o caso da mscara 255.255.255.192. No caso da utilizao da mscara 255.255.255.224, no se deve utilizar a sub-rede com bits 111.
Mscara: 255.255.255.0
netid
3 octetos
hostid
1 octeto
Mscara: 255.255.255.192
netid
3 octetos + 2 bits
hostid
6 bits
4 redes rede = 200.18.171.0 estaes de 1 a 62 rede = 200.18.171.64 estaes de 65 a 126 rede = 200.18.171.128 estaes de 129 a 190 rede = 200.18.171.192 estaes de 193 a 254
Protocolo ICMP
O protocolo ICMP um protocolo auxiliar ao IP, que carrega informaes de controle e diagnstico, informando falhas como TTL do pacote IP expirou, erros de fragmentao, roteadores intermedirios congestionados e outros. Uma mensagem ICMP encapsulada no protocolo IP, conforme ilustrado na figura abaixo. Apesar de encapsulado dentro do pacote IP, o protocolo ICMP no considerado um protocolo de nvel mais alto.
Cabealho ICMP Cabealho IP Dados ICMP
Mensagem ICMP
Datagrama IP
A mensagem ICMP sempre destinada ao host origem da mensagem, no existindo nenhum mecanismo para informar erros aos roteadores no caminho ou ao host destino. As mensagens ICMP possuem um identificar principal de tipo (TYPE) e um identificador de sub-tipo (CODE), conforme pode ser visto no formato de mensagem ilustrado abaixo:
0 Octeto 1 TYPE 7 Octeto 2 CODE 15 Octeto 3 23 Octeto 4 31
CHECKSUM
Tipo
Mensagem ICMP Echo Reply Destination Unreachable Source Quench Redirect Echo Request Router Advertisement (RFC 1256) Router Solicitation (RFC 1256) Time Exceeded for a Datagram Parameter Problem on a Datagram Timestamp Request Timestamp Reply Information Request (obsoleto) Information Reply (obsoleto) Address Mark Request Address Mark Reply
Categoria Controle Erro Controle Controle Controle Controle Controle Erro Erro Controle Controle Controle Controle Controle Controle
0 3 4 5 8 9 10 11 12 13 14 15 16 17 18
IDENTIFIER
Destination Unreacheable
Esta mensagem possui diversos sub-tipos para identificar o motivo da no alcanabilidade: os sub-tipos utilizados atualmente so: 0 : Network Unreachable - Rede destino inalcanvel 1 : Host Unreachable (ou falha no roteamento para subnet) - Mquina destino inalcanvel 2 : Protocol Unreachable - Protocolo destino desativado ou aplicao inexistente 3 : Port Unreachable - Porta destino sem aplicao associada 4 : Fragmentation Needed and DNF set - Fragmentao necessria mas bit DNF setado. Alterado tambm pela RFC 1191 para suporta o protocolo Path MTU Discovery 5 : Source Route Failed - Roteamento por rota especificada em opo IP falhou 6 : Destination Network Unknown 7 : Destination Host Unknown 8 : Source Host Isolated 9 : Communication with destination network administratively prohibited 10 : Communication with destination host administratively prohibited O sub-tipo Fragmentation Needed and DNF set utilizado como forma de um host descobrir o menor MTU nas redes que sero percorridas entre a origem e o destino. Por meio desta mensagem, possvel enviar pacotes que no precisaro ser fragmentados, aumentando a eficincia da rede. Esta tcnica, que forma um protocolo denominado de ICMP MTU Discovery Protocol, definido na RFC 1191. A operao simples. Todo pacote IP enviado marcado com o bit DNF (Do Not Fragment), que impede sua fragmentao nos roteadores. Desta forma, se uma pacote IP, ao passar por um roteador para chegar a outra rede com MTU menor, deva ser fragmentado, o protocolo IP no ir permitir e enviar uma mensagem ICMP Destination Unreacheable para o destino. Para suportar esta tcnica, a mensagem ICMP foi alterada para informar o MTU da rede que causou o ICMP. Desta forma, a mquina origem saber qual o valor de MTU que causou a necessidade de fragmentao, podendo reduzir o MTU de acordo, nos prximos pacotes. Esta mensagem est ilustrada abaixo:
15 Octeto 3
23 Octeto 4
31
...
Source Quench
Esta mensagem utilizada por um roteador para informar origem, que foi obrigado a descartar o pacote devido a incapacidade de rote-lo devido ao trfego.
0 Octeto 1 TYPE (4) 7 Octeto 2 CODE (0) 15 Octeto 3 23 Octeto 4 31
CHECKSUM
...
Redirect
Esta mensagem, uma das mais importantes do protocolo IP, utilizada por um roteador para informar ao host origem de uma mensagem que existe uma rota direta mais adequada atravs de outro roteador. O host, aps receber a mensagem ICMP, instalar uma rota especfica para aquele host destino:
0 Octeto 1 TYPE (5) 7 Octeto 2 CODE (0-3) 15 Octeto 3 23 Octeto 4 31
CHECKSUM
...
0 : Redirect datagrams for the Net (obsoleto) 1 : Redirect datagrams for the Host 2 : Redirect datagrams for the Type of Service and Net 3 : Redirect datagrams for the Type of Service and Host
A operao do ICMP Redirect ocorre conforme os diagramas abaixo. Note que a rota instalada uma rota especfica para host, com mscara 255.255.255.255, no servindo para outras mquinas na mesma rede. Se uma mquina se
MGNMAGNO VALOR 3,00 REDE PARTE 1 comunica com 10 mquinas em outra rede e se basear em ICMP Redirect para aprender as rotas, ele instalar pelo menos 10 entradas na tabela de rede, uma para cada mquina
139.82.18.44
139.82.16.2 139.82.19.1
139.82.18.44
139.82.16.2 139.82.19.1
Mensagem ICMP
5 1 CHECKSUM
139.82.17.1
139.82.19.55
IP HEADER + FIRST 64 BITS OF DATAGRAM
Na figura acima, a estao 139.82.17.22 instalou, aps a mensagem ICMP, a seguinte rota na tabela de rotas: Rede Destino 139.82.19.55 Mscara 255.255.255.255 Roteador (Gateway) 139.82.17.1 Hops 0
TTL Expired
Esta mensagem ICMP originada em um roteador informa ao host de origem que foi obrigado a descartar o pacote, uma vez que o TTL chegou a zero.
0 Octeto 1 TYPE (11) 7 Octeto 2 CODE (0-1) 15 Octeto 3 23 Octeto 4 31
CHECKSUM
...
MGNMAGNO VALOR 3,00 REDE PARTE 1 Esta mensagem utilizada pelo programa traceroute (ou tracert no Windows) para testar o caminho percorrido por um pacote. O programa funciona da seguinte forma: 1. enviada uma mensagem ICMP Echo Request para um endereo IP destino. Esta mensagem enviada com TTL = 1. 2. Quando chega ao primeiro roteador, este decrementa o valor de TTL da mensagem IP e retorna uma mensagem ICMP TTL Expired. O programa armazena o endereo IP do roteador que enviou a mensagem TTL Expired. 3. O programa envia outra mensagem ICMP Echo Request para o endereo IP destino. Esta mensagem enviada desta vez com TTL=2. 4. A mensagem atravessa o primeiro roteador e tem o TTL decrementado para 1. Quando chega ao segundo roteador, o TTL torna-se 0 e este roteador envia uma mensagem ICMP TTL Expired para a mquina origem. Esta armazena o endereo do segundo roteador. 5. Esta operao prossegue at que a mquina destino responda. Todos os roteadores no caminho so registrados. Note, entretanto, que devido diferenas de rotas seguidas pelos diversos pacotes, o caminho obtido no necessariamente nico. A execuo do programa traceroute mais de uma vez pode revelar rotas diferentes seguidas pelos pacotes.
CHECKSUM
RESERVADO
ROUTER ADDRESS 1
PREFERENCE LEVEL 1
...
MGNMAGNO VALOR 3,00 REDE PARTE 1 Esta mensagem pode conter a divulgao de diversos roteadores iniciada a partir de um que seja configurado para divulg-los. O nmero de preferncia a ordem de preferncia que estes roteadores podem ser utilizados pelas estaes.
Aplicao
Mensagens da aplicao
Transporte Inter-rede
Datagramas IP
Rede
HDLC, X.25, PPP, SLIP, Ethernet, Token-Ring, FDDI, ATM, LLC, NDIS, ...
Camada de Transporte
Esta camada rene os protocolos que realizam as funes de transporte de dados fim-a-fim, ou seja, considerando apenas a origem e o destino da comunicao, sem se preocupar com os elementos intermedirios. A camada de transporte possui dois protocolos que so o UDP (User Datagram Protocol) e TCP (Transmission Control Protocol). O protocolo UDP realiza apenas a multiplexao para que vrias aplicaes possam acessar o sistema de comunicao de forma coerente. O protocolo TCP realiza alm da multiplexao, uma srie de funes para tornar a comunicao entre origem e destino mais confivel. So responsabilidades do protocolo TCP o controle de fluco, o controle de erro, a sequenciao e a multiplexao de mensagens. A camada de transporte oferece para o nvel de aplicao um conjunto de funes e procedimentos para acesso ao sistema de comunicao de modo a permitir a criao e a utilizao de aplicaes de forma independente da implementao. Desta forma, as interfaces socket (ambiente Unix) e Winsock (ambiente Windows) fornecem um conjunto de funes-padro para permitir que as aplicaes possam ser desenvolvidas independentes do sistema operacional no qual rodaro.
Protocolo UDP
O protocolo UDP fornece uma forma simples de acesso ao sistema de comunicao, provendo um servio sem conexo, sem confiabilidade e sem correo de erros. A principal funo do nvel de transporte implementada em UDP a capacidade de multiplexao de acesso ao sistema de comunicao. Esta funo permite que vrios processos ou programas executando em um computador possam acessar o sistema de comunicao e o trfego de dados respectivo a cada um deles seja corretamente identificado, separado e utilize buffers individuais. Um processo o programa que implementa uma aplicao do sistema operacional, e que pode ser uma aplicao do nvel de aplicao TCP/IP.
MGNMAGNO VALOR 3,00 REDE PARTE 1 A forma de identificao de um ponto de acesso de servio (SAP) do modelo OSI a porta de protocolo em TCP/IP. A porta a unidade que permite identificar o trfego de dados destinado a diversas aplicaes. A identificao nica de um processo acessando os servios TCP/IP , ento, o endereo IP da mquina e a porta (ou portas) usadas pela aplicao. Cada processo pode utilizar mais de uma porta simultneamente, mas uma porta s pode ser utilizada por uma aplicao em um dado momento. Uma aplicao que deseje utilizar os servios de comunicao dever requisitar uma ou mais portas para realizar a comunicao. A mesma porta usada por uma aplicao pode ser usada por outra, desde que a primeira tenha terminado de utiliz-la. A forma de utilizao de portas mostra uma distino entre a parte cliente e a parte servidora de uma aplicao TCP/IP. O programa cliente pode utilizar um nmero de porta qualquer, j que nenhum programa na rede ter necessidade de enviar uma mensagem para ele. J uma aplicao servidora deve utilizar uma nmero de porta bemconhecido (Well-known ports) de modo que um cliente qualquer, querendo utilizar os servios do servidor, tenha que saber apenas o endereo IP da mquina onde este est executando. Se no houvesse a utilizao de um nmero de porta bem conhecido, a arquitetura TCP/IP deveria possuir um mecanismo de diretrio para que um cliente pudesse descobrir o nmero da porta associado ao servidor. Para evitar este passo intermedirio, utiliza-se nmeros de porta bem conhecidos e o cliente j possui pr programado em seu cdigo o nmero de porta a ser utilizado. Os nmeros de porta de 1 a 1023 so nmeros bem-conhecidos para servios (aplicaes) atribudos pela IANA (Internet Assigned Numbers Authority). Os nmeros de 1024 a 65535 podem ser atribudos para outros servios e so geralmente utilizados pelas programas-cliente de um protocolo (que podem utilizar um nmero de porta qualquer). Este conjunto de nmeros tem ainda a atribuio de alguns servios de forma no oficial, j que os primeiros 1024 nmeros no conseguem comportar todos os protocolos TCP/IP existentes. A figura abaixo ilustra a multiplexao/demultiplexao realizada pelo protocolo UDP, camada de transporte:
Aplicao 1 Aplicao 2
Porta 126
Porta 34
Porta 22
UDP
IP
Formato da mensagem UDP
0 Octeto 1 7 Octeto 2 15 Octeto 3 23 Octeto 4 31
Opcional (campo=0)
MGNMAGNO VALOR 3,00 REDE PARTE 1 A mensagem UDP representada pela figura acima. O dado carregado o pacote de nvel de aplicao. UDP acrescenta apenas mais 8 bytes que so a porta de protocolo origem a porta de protocolo destino, o tamanho da mensagem UDP e um checksum para averiguar a correo dos dados do cabealho UDP.
Protocolo TCP
O protocolo TCP trabalha no mesmo nvel que o protocolo UDP, mas oferece servios mais complexos, que incluem controle de erros e fluxo, servio com conexo e envio de fluxo de dados. TCP utiliza o mesmo conceito de porta de UDP. Para TCP, uma conexo formada pelo par (End. IP. Origem, Porta Origem) e (End. IP Destino, Porta Destino). O protocolo TCP oferece as seguintes caractersticas: Controle de Fluxo e Erro fim-a-fim Servio confivel de transferncia de dados Comunicao full-duplex fim-a-fim A aplicao basta enviar um fluxo de bytes Desassociao entre qtd. de dados enviados pela aplicao e pela camada TCP Ordenao de mensagens Multiplexao de IP, atravs de vrias portas Opo de envio de dados urgentes A conexo TCP ilustrada na figura abaixo:
Porta 22 Porta 2340
Inter-rede TCP/IP
Uma conexo TCP formada por trs fases: o estabelecimento de conexo, a troca de dados e o finalizao da conexo, conforme ilustrado na figura abaixo:
SYN/ACK ACK Transmite dados DADOS ACK DADOS ACK FIN ACK FIN ACK Recebe dados
Recebe dados
Transmite dados
Fecha conexo
Fecha conexo
A fase inicial de estabelecimento de conexo formada de trs mensagens, formando o three-wayhanshaking, conforme a figura abaixo:
SEQ 152
ACK 22
SEQ -
ACK 153
SEQUENCE NUMBER ACKNOWLEDGEMENT NUMBER HLEN RESERVED CODE BITS WINDOW URGENT POINTER PADDING DATA ... CHECKSUM OPTIONS (IF ANY)
MGNMAGNO VALOR 3,00 REDE PARTE 1 Estes campos so definidos da seguinte forma: TCP SOURCE PORT : Porta origem da mensagem TCP DESTINATION PORT : Porta destino da mensagem SEQUENCE NUMBER: nmero de sequncia dos dados sendo transmitidos face ao conjunto total de dados j transmitidos. Este nmero indica a posio do primeiro byte de dados sendo transmitido em relao ao total de bytes j transmitidos nesta conexo. O primeiro nmero de sequncia utilizado no zero ou um, mas comea de um valor aleatrio. Logo se um pacote est trasmitindo do 1234o. byte at o 2000o. byte de uma conexo e o SEQUENCE NUMBER inicial utilizado nesta conexo foi 10000, o campo SEQUENCE NUMBER conter o valor 11234. O sequence number em um sentido da conexo (mquina A para B) diferente do seuqnece number do sentido inverso, j que os dados transmitidos por um e outro lado so completamente distintos. ACKNOWLEDGE NUMBER: nmero que significa o reconhecimento dos dados recebidos at ento no sentido inverso. O ACK de um sentido transmitido em piggy-backing no outro sentido. O ACK contm o nmero do prximo byte do fluxo de dados recebido, que a origem deste pacote espera receber da outra mquina. Este valor leva em considerao o nmero de SEQUENCE NUMBER inicial praticado pela outra mquina. O valor de ACK informa sempre o prximo byte ainda no recebido do conjunto contguo de bytes recebidos do transmissor. CODE BITS : So formados por seis bits, URG, ACK, PSH, RST, SYN e FIN, cuja utilizao mostrada abaixo: URG: bit de Urgncia: significa que o segmento sendo carregado contm dados urgentes que devem ser lidos com prioridade pela aplicao. A aplicao origem responsvel por acionar este bit e fornecer o valor do URGENT POINTER que indica o fim dos dados urgentes. Um exemplo da utilizao desta facilidade o aborto de uma conexo (por exemplo por Control-C), que faz com que a aplicao destino examine logo o pacote at o fim da rea de urgncia, descubra que houve um Control-C e termine a conexo. ACK: bit de Reconhecimento: indica que o valor do campo de reconhecimento est carregando um reconhecimento vlido. PSH: bit de PUSH: Este mecanismo que pode ser acionado pela aplicao informa ao TCP origem e destino que a aplicao solicita a transmisso rpida dos dados enviados, mesmo que ela contenha um nmero baixo de bytes, no preeenchendo o tamanho mnimo do buffer de transmisso. RST : bit de RESET: Informa o destino que a conexo foi abortada neste sentido pela origem SYN: bit de Sincronismo: o bit que informa que este um dos dois primeiros segmentos de estabelecimento da conexo. FIN: bit de Terminao: indica que este pacote um dos dos pacotes de finalizao da conexo
WINDOW: Este campo informa o tamanho disponvel em bytes na janela de recepo da origem deste pacote. Por meio deste valor, o TCP pode realizar um controle adequando de fluxo para evitar a sobrecarga do receptor. Quando este valor igual a zero, o transmissor no envia dados, esperando receber um pacote com WINDOW maior que zero. O transmissor sempre vai tentar transmitir a quantidade de dados disponveis na janela de recepo sem aguardar um ACK. Enquanto no for recebido um reconhecimento dos dados transmitidos e o correspondente valor de WINDOW > 0, o transmissor no enviar dados. OPTIONS : O campo de opes s possui uma nica opo vlida que a negociao do MSS (Maximum Segment Size) que o TCP pode transmitir. O MSS calculado atravs do MTU ou atravs do protocolo ICMP Path MTU Discovery.