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

Copyright 2006 Alcatel

Objetivo
Esta apostila tem como objetivo fornecer os fundamentos necessrios compreenso do funcionamento de redes baseadas no conjunto de protocolos TCP/IP. Familiariza o tcnico com a terminologia e conceitos bsicos dos servios e protocolos TCP/IP. Explora e administra redes baseadas em protocolos TCP/IP.

Copyright 2006 Alcatel

Esta apostila foi elaborada por Severino Pereira da Silva, sendo expressamente proibida a sua reproduo, utilizao ou divulgao total ou parcial para qualquer propsito que no seja a aplicao para a qual foi fornecido. Esta restrio, contudo, no se aplica ao uso das informaes contidas, que claramente foram extradas de outras fontes, de domnio publico.

As descries, especificaes, desenho tcnico, material ilustrativo, listagens de componentes e outras informaes desta natureza, presente nesta apostila, so fornecidos com a finalidade tcnica/informativa sobre o equipamento contratado, para o pessoal qualificado da contratante e/ou treinamento de pessoal da mesma, no sendo permitido a sua divulgao a terceiros sem a expressa autorizao por escrito do autor, O auto se reserva o direito de, sem qualquer aviso prvio, fazer as alteraes que julgarem necessrias.

O autor agradece qualquer contribuio ou critica que possa melhora a qualidade desta apostila e facilitar o entendimento do equipamento que a mesma descreve.

Florianpolis Santa Catarina 14 Agosto de 2006 V 01.1

Copyright 2006 Alcatel

INDICE

A Camada de Transporte Qualidade de Servio (QoS) Os servios da Camada de Transporte Primitivas de Servios TCP da Internet Protocolos da Camada de Transporte Protocolo TCP Modelo de Servio Header Segmentos, streams de dados e nmeros de seqncia Tamanho de janela varivel e controle de fluxo Formato do segmento TCP Transferncia de Dados Interface com o usurio Segurana Endereamento Idia de Janelas Deslizantes Controle de Fluxo Deteco de Duplicatas Mquina de Estado Portas e pontos terminais Conexo Estabelecimento, Nmeros de Seqncia e Trmino Colises UDP O Futuro do TCP Concluso

05 05 06 07 07 07 08 09 09 10 11 13 13 14 14 14 14 16 16 18 18 20 21 22 23

Copyright 2006 Alcatel

A Camada de Transporte
A camada de transporte permite que aplicaes sejam escritos usando um padro de primitivas de maneira a no se preocupar com as diferentes interfaces de sub-rede que existe. Esta camada tem a funo de promover uma transferncia de dados confivel entre mquinas, independente da rede fsica em uso, oferecendo confiabilidade, pois a camada de transporte fim a fim. Apesar das camadas inferiores fornecerem verificaes confiveis, a camada fim a fim faz outra verificao para se certificar de que nenhuma mquina falhou no meio da transferncia. Abaixo se segue a figura 1 que indica as camadas.
Aplica o

Aplica o Apresenta o Sesso Transporte Red e Enlac e Fsic a

Transporte Inter-Redes Host/Rede Fsic a

Qualidade de Servio (QoS)


Uma maneira de olhar para a camada de transporte sob o ponto de vista de sua funo primria que melhorar a Qualidade de Servio (QoS) proporcionada pela camada de rede. A camada de transporte define alguns parmetros associados qualidade do transporte de dados, que so negociados no estabelecimento da conexo. permitido ao usurio especificar valores desejados, aceitveis e mnimos para estes parmetros. Os principais parmetros so: Vazo (bytes/s) (throughput) Atraso de propagao (ms) (transit delay) Jitter (ms) Tempo para estabelecimento de conexo (ms) Probab. de falha no estabelecimento da conexo (ms) Taxa de erro residual Tempo para encerramento da conexo (ms)

Copyright 2006 Alcatel

Os principais parmetros so (cont.): Probabilidade de falha no trmino de conexo Proteo Prioridade Confiabilidade

Os Servios da Camada de Transporte


Os protocolos da camada de transporte devem prover servios fim-a-fim de transferncias de dados entre os usurios. O principal objetivo oferecer um servio confivel, eficiente e econmico a seus usurios, para isso a camada de transporte utiliza servios oferecidos da camada de rede. A camada de transporte pode oferecer dois tipos de servios: Servio de transporte orientado a conexo Servio de transporte sem conexo. O servio de transporte orientado a conexo possui trs estados, o primeiro onde estabelecido conexo, o segundo onde existe a transferncia de dados e o ltimo estado onde encerrada a conexo. A interface entre programas aplicativos e o servio TCP/IP de transmisso confivel pode ser representado por cinco caractersticas: 1 orientao de stream o servio de transferncia da mquina de destino passa para o receptor exatamente a mesma seqncia de bytes que o transmissor passa para ele na mquina de origem 2 conexo de circuito virtual Antes que a transferncia inicie, os programas aplicativos do transmissor e do receptor interagem com seus sistemas operacionais respectivos, informando-os sobre a inteno de efetuar uma transferncia de dados. Quando os detalhes estiverem sidos estabelecidos, os mdulos de protocolos informam aos aplicativos que uma conexo foi estabelecida e que pode ser iniciada uma transferncia. Durante a transferncia, os protocolos das duas mquinas continuam a se comunicar para verificar se os dados recebidos so os corretos. Utiliza-se o termo datagrama virtual para descrever essas conexes, embora os aplicativos considerem a conexo um circuito de hardware dedicado. 3 transmisso bufferizada Os aplicativos enviam um fluxo de dados atravs do circuito virtual. Durante a transferncia de stream de dados, cada aplicativo utiliza quaisquer tamanhos que achar adequado. Ao final da recepo, o protocolo entrega os dados na mesma ordem que foram enviados. O protocolo livre para dividir em pacotes os dados, independente das partes que o programa aplicativo transfere. Para que a transferncia seja mais eficaz, e para minimizar o trfego de rede, as implementaes coletam de um fluxo de dados suficientes para preencher um datagrama razoavelmente extenso, antes de transmiti-lo por uma interligao em redes. Para aplicativos onde os dados devero ser transmitidos, ainda que no preencham um buffer, o servio de stream fornece um mecanismo PUSH que os aplicativos utilizam para forar uma

Copyright 2006 Alcatel

transferncia. Quando alcana o lado do receptor, o PUSH leva o TCP a tornar os dados disponveis para o aplicativo, sem intervalo. 4 fluxo desestruturado importante compreender que o servio de stream TCP/IP no reconhece os fluxos de dados estruturados. 5 conexo full duplex As conexes fornecidas pelo servio stream TCP/IP permitem transferncia em ambas s direes. Essas conexes so denominadas full duplex. Do ponto de visto de um aplicativo, uma conexo full duplex consiste em dois stream independente fluindo em direes opostas, sem qualquer operao aparente.

Primitivas de Servio TCP da Internet


As primitivas de servio de transporte permitem que os usurios da camada de transporte tenham acessos aos servios oferecidos pela camada. Cada servio tem suas prprias primitivas. O grupo de primitivas que iremos analisar agora as primitivas de transporte usadas na Berkeley UNIX para TCP, so primitivas SOCKET. As primitivas so: SOCKET BIND LISTEN ACCEPT CONNECT SEND RECEIVE CLOSE

Protocolos da Camada de Transporte


A Internet em dois protocolos principais na camada de transporte. O protocolo TCP e o protocolo UDP. O TCP foi projetado especificadamente para oferecer um fluxo de bytes fim a fim confivel em uma inter-rede-no-confivel.

Protocolo TCP
O TCP um protocolo de comunicao, e no um software. A diferena entre um protocolo e o software que o implementa semelhante diferena entre a definio de uma linguagem de programao e um compilador. Como ocorre no mundo das linguagens de programao, a distino entre a definio e implementao s vezes obscura. As pessoas encontram o software TCP com muito mais freqncia do que encontram a especificao do protocolo; assim, natural considerar uma implementao especial um padro. Como o TCP complexo, o protocolo especifica o formato dos dados e das confirmaes que dois trocam para oferecer uma transferncia confivel e, tambm, os procedimentos de que os computadores para assegurar que os dados cheguem corretamente. Ele especifica como o software TCP confirma mltiplos destinos em determinada mquina e como as mquinas recuperam-se de erros como pacotes
Copyright 2006 Alcatel

duplicados ou perdidos. O protocolo tambm especifica como dois computadores iniciam uma transferncia de stream TCP e como concordam quando a transferncia estiver concluda. Embora a especificao TCP descreva como os programas aplicativos utilizam o TCP em termos gerais, ela no impe os detalhes da interface entre o programa aplicativo e o TCP. Isso significa que a documentao do protocolo trata apenas das operaes que o TCP oferece. J que o TCP pouco entende do sistema de comunicao bsico, ele pode ser utilizado com uma variedade de sistemas de transmisso de pacotes, inclusive o servio de transmisso de datagramas IP. O TCP pode, por exemplo, ser implementado para utilizar linhas telefnicas por discagem, rede local, rede de fibra tica de alta velocidade, ou uma rede de longas distancia de velocidade mnima. Na realidade, um dos pontos fortes do TCP a grande variedade de sistemas de transmisso que ele pode usar.

Modelo de Servio
O servio TCP obtido atravs de pontos de acesso a servio criados na origem e no destino, chamados sockets. Cada socket tem um nmero (endereo) de socket, que consiste do endereo IP do host e um nmero de 16 bits local ao host chamado porta. Porta o nome TCP para TSAP. Para obter o servio TCP, deve ser estabelecida uma conexo entre o socket na mquina que deseja enviar e na mquina que deve receber dados. Um socket pode ser utilizado por mais de uma conexo ao mesmo tempo As conexes TCP so identificadas pelos sockets dos dois lados (socket1, socket2). Nmeros de portas abaixo de 256 so chamados Well-Known Ports e so reservados para servios padronizados. A seguir so listados alguns exemplos: 21 = FTP 23 = TELNET 25 = SMTP 79 = FINGER 80 = HTTP Todas as conexes TCP so full-duplex, ponto-a-ponto, no suportando multicast e broadcast.
Socket Camada 4 Camada 3 Camada 2 Camada 1 Portas Endereo de Rede

Copyright 2006 Alcatel

Header
O cabealho tem um formato fixo de 20 bytes. O cabealho fixo pode ser seguido por opes de cabealho. Depois das opes, pode haver 65.515 bytes de dados, onde os 20 primeiros se referem ao cabealho IP e os outros 20 ao cabealho TCP. Analisaremos o cabealho TCP campo a campo.

Segmentos, streams de dados e nmeros de seqncia.


O TCP considera o stream de dados uma seqencial de octetos ou bytes que ele divide em segmentos para transmisso. Normalmente, cada segmento trafega na interligao em redes em um nico datagrama IP. O TCP utiliza um mecanismo especializado de janela deslizante para resolver dois problemas importantes: transmisso eficaz e controle de fluxo. Como o protocolo de janela deslizante descrito anteriormente, o mecanismo de janela TCP torna possvel enviar segmentos mltiplos antes que uma confirmao chegue. Isso aumenta o throughtput total, j que mantm a rede ocupada. O formato TCP de um protocolo de janela deslizante tambm resolve o problema de controle de fluxo fim-a-fim, ao permitir que o receptor restrinja a permisso at que haja espao suficiente no buffer para aceitar mais dados. O mecanismo de janela deslizante TCP opera em nvel de octetos, e no de pacotes ou segmentos. Os octetos do stream de dados so numerados seqencialmente, e um transmissor mantm trs ponteiros associados a cada conexo. Os ponteiros definem uma janela deslizante, confirme ilustrado na figura. O primeiro ponteiro marca a esquerda da janela deslizante, separando os octetos que tenham sido enviados e confirmados dos octetos ainda por enviar. Um segundo ponteiro marca a direita da janela deslizante e define o maior octeto da seqencial que poderes enviado antes que mais confirmaes sejam recebidas. O terceiro ponteiro marca o limite interno da janela que separa os octetos j enviados daqueles que ainda no o foram. O protocolo envia todos os octetos na janela sem intervalos de modo que o limite dentro da janela quase sempre segue da esquerda para a direita, rapidamente.

Janela atual 1 2 3 4 5 6 7 8 9 10 11 . . .

- Exemplo de uma janela deslizante TCP. Os octetos at dois foram enviados e confirmados, os de trs at seis foram enviados, mas no confirmados, os de sete at nove no foram enviados, mas o sero se, intervalo, e octetos a partir de dez no podem ser enviados at que a janela se mova.

Copyright 2006 Alcatel

Descrevemos como a janela TCP do transmissor desliza e mencionamos que o receptor precisa manter uma janela semelhante para reunir o fluxo outra vez. importante compreender, entretanto, que, como as conexes TCP so full duplex, duas transferncias ocorrem simultaneamente em cada conexo, uma em cada direo. Considerando as transferncias completamente independentes, porque em qualquer ocasio os dados podem fluir pela conexo em uma direo, ou em ambas as direes. Assim, o software TCP de cada extremidade mantm duas janelas por conexo (para um total de quatro): uma desliza no stream de dados que est sendo enviado e a outra desliza medida que os dados so recebidos.

Tamanho de janela varivel e controle de fluxo


Uma diferena entre o protocolo de janela deslizante TCP e o protocolo simplificado de janela deslizante, apresentado anteriormente, ocorre porque o TCP permite que o tamanho da janela varie com o passar do tempo. Cada confirmao que especifica quantos octetos foram recebidos contm um notificador de janela que define quantos octetos de dados adicionais o receptor est preparado para aceitar. Considerando o notificador da janela o especificador do tamanho do buffer atual do receptor. Em resposta a um aviso de janela aumentada, o transmissor aumenta o tamanho de sua janela deslizante e continua a enviar octetos que no tenham sido confirmados. Respondendo ao notificador de janela diminuda, o transmissor reduz o tamanho de sua janela e interrompe o envio de octetos para alm do limite. O software TCP no deve contradizer notificaes anteriores, encurtando a janela at posies anteriormente aceitveis do stream de octetos. Em vez disso, notificadores menores acompanham confirmaes, de modo que o tamanho da janela muda ela desliza. A vantagem de utilizar uma janela de tamanho varivel que ela fornece o controle de fluxo e uma transferncia confivel. Se os buffers do receptor comeam a ficar cheios, a janela no poder suportar mais pacotes, e, ento enviar um notificador de janela menor. Em casos extremos, o receptor indica um tamanho zero de janela para interromper todas as transmisses. Mais tarde, quando o espao do buffer torna-se disponvel, o receptor indicar um tamanho de janela diferente de zero para iniciar o fluxo de dados novamente. Possuir um mecanismo para controle de fluxo essencial em um ambiente de interconexo de dados, onde mquinas de vrias velocidades e tamanhos comunicam-se atravs de redes e de roteadores de vrias velocidades e capacidades. H realmente dois problemas isolados de fluxo de dados. Primeiro os protocolos de interconexo de dados precisam de um controle de fluxo fim-a-fim, entre a origem e o destino final. Quando, por exemplo, um microcomputador comunica-se com um grande mainframe, o primeiro precisa regular o influxo de dados, ou o protocolo seria superado rapidamente. Assim, o TCP precisa implementar um controle de fluxo fim-a-fim para garantir uma transmisso confivel. Segundo protocolos de interconexo de dados precisa de um mecanismo de controle de fluxo que permite que sistemas intermedirios (ou seja, roteadores) controlem uma origem que envie mais trfego do que a mquina possa tolerar. Quando mquinas intermedirias tornam-se sobrecarregadas, a condio denominada congestionamento. Os mecanismos para resolver o problema so denominados controle de congestionamentos. O TCP utiliza seu esquema de janela deslizante para resolver o problema de controle de fluxo fim-a-fim e no possui um mecanismo explicito para controle de congestionamento. A implementao TCP cuidadosamente programada pode detectar um congestionamento e recuperar-se dele, enquanto uma implementao ineficaz pode torn-la pior. Em especial, embora um
Copyright 2006 Alcatel

10

esquema de retransmisso cuidadosamente escolhido possa ajudar a evitar congestionamento, um esquema mal escolhido pode exacerb-los.

Formato do segmento TCP


A unidade de transferncia entre o software TCP de duas mquinas denominada segmento. Os segmentos so trocados para estabelecer conexes, transferir dados, enviar confirmaes, informar tamanhos de janelas e encerrar conexes. J que o TCP utiliza piggyback, uma confirmao que trafega da mquina A para a mquina B pode trafegar no mesmo segmento que os dados que trafegam da mquina A para a B, embora a confirmao refira-se aos dados enviados de B para A. PORTA DE ORIGEM PORTA DE DESTINO NMERO DE SEQUENCIA NMERO DE RECONHECIMENTO HLEN RESERVADO BITS DE JANELA CDIGO SOMA DE VERIFICAO PONTEIRO URGENTE OPES (se houver) ENCHIMENTO DADOS ...

O formato de um segmento TCP com o cabealho TCP seguido de dados. Os seguimentos so utilizados para estabelecer conexes e para transportar dados e confirmaes. Cada segmento dividido em duas partes: um cabealho seguido de dados. O cabealho, conhecido como cabealho TCP, transporta a identificao esperada e as informaes de controle. Os campos PORTA DE ORIGEM e PORTA DE DESTINO contm nmeros de portas TCP que identificam os programas aplicativos nas extremidades da conexo. O campo NMERO DE SEQUENCIA identifica a posio do stream de bytes do transmissor de dados no segmento. O campo NMERO DE RECONHECIMENTO identificao nmero do octeto que a origem espera receber depois. Observe que o nmero seqencial refere-se ao stream que segue na mesma direo que o segmento, enquanto que o nmero de reconhecimento refere-se ao stream que segue em direo oposta ao segmento. O campo HLEN contm um nmero inteiro que especifica o comprimento do cabealho do segmento, medido em mltiplos de 32 bits. Isso necessrio porque o campo OPES varia em comprimento, dependendo de quais opes foram includas.Assim, o tamanho do cabealho TCP varia de acordo com as opes selecionadas. O campo de seis bits, marcado como RESERVADO, reservado para utilizao futura. Alguns segmentos transportam apenas uma confirmao, enquanto alguns transportam dados. Outros transportam solicitaes para estabelecer ou encerrar uma conexo. O software TCP utiliza o campo de seis bits denominado CODEBITS para determinar a finalidade e o contedo do segmento. Os seis bits indicam como interpretar outros campos do cabealho, de acordo com a tabela.

Copyright 2006 Alcatel

11

Bit (da esquerda para a direita)

Significado se o bit for 1

URG ACK PSH RST SYN

Campo de ponteiro urgente vlido Campo de reconhecimento vlido Este segmento requer push Restabelecer a conexo Sincronizar os nmeros de seqncia

Bits do campo CODE no cabealho TCP O software TCP informa quantos dados est esperando receber sempre que envia um segmento, ao especificar o tamanho de seu buffer no campo WINDOW. O campo contm um nmero inteiro, no marcado, de 16 bits, em uma ordem de bytes no padro de rede. Os notificadores de janela fornecem outro exemplo de piggyback, porque eles acompanham todos os segmentos, inclusive aqueles que transportam dados, e tambm os que transportam somente uma confirmao. O Campo SOMA DE VERIFICAO do cabealho TCP contm uma soma de verificao de nmero inteiro de 16 bits utilizada para checar a integridade dos dados e tambm do cabealho TCP. Para calcular a soma de verificao, adotado um pseudocabealho para o segmento, acrescenta bits zero suficientes para tornar o segmento um mltiplo de 16 bits e calcula a soma de verificao. Tal como ocorre em outras somas de verificao, o TCP utiliza uma aritmtica de 16 bits e toma o complemento do algarismo um da soma de complemento do algarismo um. O pseudocabealho permite que o receptor verifique se o segmento alcanou seu destino correto, o qual incluiu um endereo IP do host e um nmero de porta de protocolo. Ambos os endereos IP de origem e de destino so importantes para o TCP, porque ele precisa utiliz-los para identificar uma conexo qual o segmento pertence. Embora o TCP seja um protocolo baseado em stream, as vezes importante que um programa situado em uma extremidade da conexo envie dados urgentes, sem esperar que o programa da outra extremidade da conexo consuma octetos j no stream. O campo PONTEIRO URGENTE utilizado para sinalizar dados urgente. Ou seja, usado um mecanismo para marcar os dados urgentes, atravs do bit de cdigo URG. Com isso, o TCP do receptor, que deve ser notificado de sua chegada o mais rpido possvel, quando notificado, o TCP receptor deve notificar qual programa aplicativo est associado a conexo, a fim de passar para o modo urgente. Assim que todos os dados urgentes forem consumados, o TCP diz ao programa aplicativo para voltar ao modo normal. Logicamente, os detalhes exatos de como o TCP informa ao programa aplicativo sobre os dados urgentes depende do Sistema Operacional do computador. Nem todos os segmentos enviados atravs de uma conexo tero o mesmo tamanho. No entanto, as duas extremidades precisam concordar sobre o segmento mximo que

Copyright 2006 Alcatel

12

iro transferir. O software TCP utiliza o campo OPES para negociar como software TCP da outra extremidade da conexo, e uma das opes permite que o software TCP especifique o MSS (maximum segmentsize) que pretende receber. Por exemplo, um sistema embutido com somente algumas centenas de bytes de espao no buffer conectase a um grande computador, assim ele pode negociar um MSS que restrinja os segmentos, de modo que possam caber no buffer. Transferncia de Dados Dissemos que um servio de transmisso de dados confivel garante a entrega dos dados enviados de uma mquina outra, sem duplicao ou perdas. A maioria dos protocolos confiveis utiliza uma tcnica nica e fundamental conhecida como confirmao positiva com retransmisso. A tcnica exige que um receptor comuniquese com a origem, retornando uma mensagem de confirmao (ACK), medida que recebe os dados. O transmissor mantm um registro de cada pacote que envia e espera uma confirmao antes de enviar o prximo pacote. O transmissor tambm inicia um temporizador quando envia um pacote, e retransmite um pacote se esse temporizador se completar antes que chegue uma confirmao. O problema final da confiabilidade de transferncia de dados surge quando um sistema bsico de entrega de pacotes duplica os mesmos. Tambm pode ocorrer duplicao quando h intervalos longos nas redes que provocam uma retransmisso prematura. Como indica a figura abaixo.

Interface com o usurio


Ainda no est muito claro como pode ser padronizado o mecanismo de interface do usurio para o protocolo de transporte. No entanto existem idias de como ele pode ser otimizado. Os exemplos abaixo descrevem como um servio de uma entidade de transporte pode ser chamada : Chamadas de procedimentos Passando dados e parmetros para um processo atravs de uma caixa de correio. Uso direto do DMA (acesso direto memria) entre o host usurio e o computador que contm a entidade de transporte.
Copyright 2006 Alcatel

13

Segurana
A camada de transporte pode prover uma grande variedade de servios de segurana. O controle de acesso pode ser provido em forma de verificao local pelo remetente e verificao remota pelo receptor. O servio de segurana pode tambm incluir um mecanismo para encriptar e decriptar dados quando necessrio. A camada de transporte pode tambm ser capaz de rotear por linhas ou hosts seguros, se o servio estiver disponvel.

Endereamento
O mtodo usado definir os endereos de transporte que os processos podem ouvir para receber solicitaes de conexo. Na Internet, essas extremidades (endereo IP, porta local) formam pares.

A idia de janelas deslizantes


A fim de alcanar confiabilidade, o transmissor transmite um pacote e depois aguarda uma confirmao antes de transmitir outro. Os dados fluem entre mquinas apenas em uma direo, a qualquer tempo, ainda que a rede seja capaz de promover uma comunicao simultnea em ambas as direes. A rede pode ficar completamente inativa durante o tempo em que a mquina retarda as respostas. Se imaginarmos uma rede com grandes intervalos entre as transmisses, o problema torna-se claro: Um protocolo simples, de confirmao, gasta uma substancial quantidade de largura de banda, por que precisa retardar a transmisso de um novo pacote, at que receba uma confirmao sobre o anterior. No TCP, o controle de fluxo assegurado via estratgia de janela deslizante, com o tamanho da janela varivel. Quando o transmissor envia um segmento, ele inicia um timer. Quando o segmento for recebido pelo receptor, este deve enviar outro segmento informando ao transmissor que aquele TPDU foi aceito, com o nmero do reconhecimento e o prximo nmero de seqncia esperado. Se o timer do transmissor acabar antes deste receber o ACK, o TPDU deve ser reenviado.

Controle de Fluxo
Uma das principais funes da camada de Transporte o controle de fluxo. Uma estratgia deve ento ser implementada, para poder suprir a realidade de que redes mistas possuem transmissores e receptores com diferentes velocidades de entrada e sada dos dados. Na camada de enlace de dados, o transmissor deve bufferizar os frames enviados, pois eles podem ser reenviados. Se a subrede no prov um servio confivel, ento a entidade de transporte tambm dever bufferizar os TPDUs, assim como na camada de enlace de dados. Em servios confiveis, essa abordagem pode mudar. Se o transmissor sabe que o receptor sempre possuir espao de alocao de buffers, no haver

Copyright 2006 Alcatel

14

necessidade de guardar os TPDUs que enviar. Entretanto, um ponto crtico pode ser levantado: O TPDU pode ser bufferizado pelo receptor, mas no aceito. A alocao de buffers deve ser realizada dinamicamente, assim que as conexes so estabelecidas e assim que o nvel de trafego mude. funo da camada de transporte permitir que o receptor pea ao receptor a alocao dos buffers. O receptor pode informar ao transmissor sobre a situao dos buffers alocados, assim como mudar esta situao ao longo do tempo. Um problema comum o tamanho dos buffers. Se os TPDUs so possuem quase o mesmo tamanho, seria interessante organizar os buffers com tamanhos iguais, e um TPDU por buffer. Se os tamanhos variam muito, isso geraria problemas, pois seria necessrio especificar um valor arbitrrio acima da mdia para o tamanho de buffer, ocorrer desperdcio de espao. E, se um TPDU for maior que o buffer, vrios deles sero necessrio para abrigar o TPDU. A soluo vem da alocao de tamanho varivel dos buffers, o que acarretar num gerenciamento complicado dos buffers. A estratgia, concluindo, depende do tipo de trafego da rede. Portanto, para redes de alto trafego, banda larga, a soluo bufferizar no receptor. Para redes de baixa banda, e alto trafego, a bufferizao deve ocorrer no transmissor. Nas redes TCP/IP, as mensagens de controle de fluxo entre as unidades pares tambm informam a quantidade de bytes enviados pelo pacote, e, em seu ACK, o receptor informa o tamanho do buffer disponvel, possibilitando ao transmissor enviar um TPDU adequado ao tamanho do buffer disponvel. Veja a figura abaixo:

Copyright 2006 Alcatel

15

Quando o receptor envia um ACK informando que o buffer est cheio, o transmissor fica bloqueado at a chegada de outro ACK informand oque o buffer foi liberado. Excepcionalmente, o transmissor pode enviar TPDUs de urgncia, a fim de verificar a situao do receptor.

Deteco de Duplicatas
Quando os pacotes chegam ao receptor, este deve enviar um ACK ao transmissor. Estas mensagens de ACK de TPDUs podem vir a se perder na rede. O transmissor fica esperando este ACK, e caso no chegue, retransmite.Pode acontecer o caso em que o receptor receba dois TPDU idnticos, ou seja, trata-se de uma duplicata. O receptor deve ser capaz de identificar estes TPDUs duplicados. Uma das mais simples estratgias numerar os segmentos. O nmero de seqncia deve ser grande o suficiente para no permitir que ocorram duplicatas de nmeros.

Mquina de Estado
A operao do TCP pode ser melhor explicada com um modelo terico denominado mquina de estado final. A figura mostra a mquina de estado final TCP, com crculos representando estados e setas representando transies entre eles. O rtulo em cada transio mostra o que o TCP recebe para provocar a transio e o que envia em resposta. Por exemplo, o software TCP de cada ponto terminal comea no estado CLOSED. Os programas aplicativos precisam transmitir um open passivo. Um open ativo fora uma transio do estado CLOSED para o estado SYN SENT. Quando o TCP segue a transio, transmite um segmento SYN. Quando o TCP segue a transio, transmite um segmento SYN. Quando a outra extremidade retorna um segmento que contenha um SYN e uma ACK, o TCP passa para o estado ESTABLISHED e inicia a transferncia de dados.

Copyright 2006 Alcatel

16

algo/recuperao

incio

CLOSED

encerramento abertura

LISTEN abertura syn/syn +ack Encerrament recuperao


SYN RECVD

syn/syn +ack
SYN

ACK

Syn + ack/ack

encerramento / fim
FIN WAIT-1

ESTABLI

Fim / ack

Fim / ack

CLOSE WAIT

Fim ack/ack ACK


FIN WAIT-2

CLOSING

ACK
LAST ACK

ACK

Fim / ack

TIMED WAIT

Copyright 2006 Alcatel

Time-out aps permanncia de 2 segmentos 17

O Estado TIMED WAIT revela como o TCP trata alguns dos problemas relativos entrega no-confivel. O TCP mantm uma noo de tempo de vida mximo, que o tempo mximo em que um segmento antigo permanece ativo em uma interligao em redes. Para evitar que os segmentos de uma conexo anterior interfiram no atual, o TCP passa para o estado TIMED WAIT depois de encerrar uma conexo. Ele permanece nesse estado o dobro do tempo de vida mxima antes de excluir seu registro de conexo mxima. Se quaisquer segmentos duplicados chegam a conexo durante o intervalo de timeout, o TCP os rejeitar. Entretando para tratar situaes em que a ultima confirmao foir perdida, ele confirma os segmentos vlidos e reinicia o temporizador. J que o temporizador premite que o TCP diferencie as conexes antigas das novas, ele impede que o TCP responda com um RST (reset) se a outra extremidade retransmitir uma solicitao FIN.

Portas e pontos terminais


O TCP posiciona-se acima do IP no esquema de diviso em camadas do protocolo. O TCP permite que programas aplicativos mltiplos, de determinada mquina, comuniquem-se simultaneamente, e ele multiplexa o trfego TCP de entrada entre os programas aplicativos. Como o TCP utiliza numero de porta de protocolo para identificar o destino final em uma mquina. A cada porta atribudo um nmero inteiro baixo para identifica-la. A portas TCP so complexas, por que determinado nmero delas no corresponde a um objeto nico. Ao contrario, o TCP foi estruturado na abstrao de conexo, em que os objetos a serem identificados so conexes de circuito virtual, e no portas isoladas. O TCP utiliza a conexo, e no a porta de protocolo, como sua abstrao principal. As conexes so identificadas por um par de pontos terminais. O TCP define o ponto terminal como um par de nmeros inteiros (host, porta), onde host o endereo IP para um host, e porta uma porta TCP naquele host. O ponto terminal (128.10.2.3, 25), por exemplo identifica na mquina a porta TCP 24, com o endereo IP 128.10.2.3. J que o TCP identifica uma conexo por meio de um par de pontos terminais, determinado nmero de portas TCP pode ser compartilhado por vrias conexes na mesma mquina. Significa que um programador pode criar um programa que fornea servios simultneos a vrias conexes, sem precisar de nmeros exclusivos de portas locais para cada conexo.

Conexo Estabelecimento, Nmeros de Seqncia e Trmino.


Para estabelecer uma conexo, como indica a figura 5.1, o TCP utiliza o handshake de trs vias. O primeiro segmento de um handshake pode ser identificado por que ele possui um conjunto de bits que representa sincronizao, conhecido como SYN, no capo cdigo. A segunda mensagem possui ambos os conjuntos de bits SYN e ACK, identificando que confirma o primeiro segmento SYN e continua o handshake. A mensagem final de handshake apenas uma confirmao e utilizada simplesmente para informar ao destino que ambos os lados concordam em que uma conexo foi estabelecida.
Copyright 2006 Alcatel

18

Normalmente o software TCP de uma mquina espera passivamente pelo handshake e o software TCP de outra mquina o inicia. Entretanto, o handshake cuidadosamente projetado para funcionar mesmo se ambas as mquinas tentarem de qualquer extremidade ou de ambas simultaneamente. Quando a conexo tiver sido estabelecida, os dados podem fluir igualmente bem nas duas direes. No h mestre ou escravo. O handshake de 3 vias necessrio e suficiente para a sincronizao correta entre as duas extremidades da conexo. Este protocolo de trs vias cumpre duas funes importantes. Garante que ambas as extremidades estejam prontas para transferir dados, e permite que ambas concordem quanto aos nmeros de seqncias iniciais. Os nmeros de seqncia so enviados e confirmados durante o handshake. Cada mquina precisa escolher aleatoriamente um nmero dessa natureza, que ele usar para identificar bytes em um stream que estiver enviando. Os nmeros de seqncia nem sempre comeam com o mesmo valor. Para verificar como as mquinas podem concordar em nmeros de seqncia para dois stream aps apenas trs mensagens, A mquina que inicia o handshake chamado de A passa seu nmero de seqncia inicial x no campo de seqncia do primeiro seguimento SYN do handshake de trs direes. A segunda mquina, B, recebe o SYN grava o numero de seqncia inicial x e responde enviando seu nmero de seqncia inicial no campo de seqncia bem como uma confirmao que especifica que B aguarda o prximo byte x +1. Na mensagem final do handshake, A confirma ter recebido de B todos os bytes at y. Dois programas que utilizam o TCP para se comunicar podem facilmente encerrar a comunicao usando a operao close. Internamente o TCP utiliza o handshake de 3 vias modificados para encerrar conexes. Quando um programa aplicativo diz ao TCP que no h mais dados a serem enviados, o TCP escolher a conexo em uma direo. Para encerrar metade de uma conexo, o TCP transmissor completa a transmisso dos dados restantes, espera que o receptor os confirme e, a seguir, envia um segmento com o conjunto de bits FIN. O TCP receptor confirma com o segmento FIN e informa ao programa aplicativo de sua extremidade que no h dados disponveis.

Quando uma conexo tiver sido concluda em determinada direo, como indica a figura, o TCP se recusar a aceitar mais dados para essa direo. Enquanto isso, os dados podem continuar a fluir na direo oposta at que o transmissor a encerre. Quando ambas as direes tiverem sido concludas, o software TCP utilizar um handshake de trs vias modificado para encerrar a conexo. A diferena entre o handshake de trs vias usados para estabelecer e interromper conexes ocorre depois que uma mquina recebe um segmento FIN inicial. Em vez de gerar um segundo segmento FIN imediatamente, o TCP envia uma confirmao e, a seguir, informa ao aplicativo sobre a s solicitao a ser encerrada. Informar ao

Copyright 2006 Alcatel

19

programa aplicativo sobre a solicitao e obter uma resposta pode levar um tempo considervel. A confirmao evita a retransmisso do segmento FIN inicial durante a espera. Finalmente, quando o programa aplicativo instrui o TCP para encerrar a conexo, o TCP envia o segundo segmento FIN e o site original responde com uma terceira mensagem, uma ACK.

Cliente FIN, seq = x Segmento n ACK

Servidor

x+1 y+1

Segmento

n+1 n+2

FIN, seq = y, ACK x+1

Segmento

n+3

ACK

Segmento

Colises
Em uma rede, quando o fluxo de dados maior que a rede suporta h o que chamamos de congestionamento. Este problema tratado em grande parte pelo protocolo TCP. O congestionamento pode ser evitado usando-se a idia de que um pacote novo no deve entrar na rede at que um antigo saia. O protocolo TCP consegue atingir esta idia manipulando o tamanho da janela. A primeira idia para evitar-se o congestionamento a deteco do mesmo. Esta tarefa no fcil, pois nas linhas pode haver rudos e pacotes perdidos ou descartados. A deteco est centrada na idia do time-out (fatia de tempo pr-determinado que se esgotou), sendo que muitas vezes o time-out ocorre devido ao congestionamento.

As figuras ilustram o problema do congestionamento. O fator predominante no a capacidade do balde, mas sim a capacidade de transmisso da rede, j que se a taxa de

Copyright 2006 Alcatel

20

transmisso na primeira figura for adequada no causar perda de gua e na segunda figura percebe-se que mesmo com o receptor maior, se a taxa de entrega for pequena, o enchimento do balde ser mais demorado. O emissor ir ocupar-se com duas janelas: uma para o receptor e outra, chamada janela de congestionamento. Cada janela representa um nmero de bytes, que a quantidade que o emissor pode enviar. No estabelecimento da conexo, o emissor envia um segmento do mximo (do maior tamanho disponvel), caso o emissor receba a confirmao antes do time-out, a janela de congestionamento ter seu tamanho duplicado. Este crescimento continuar, exponencialmente at que ocorra um time-out. Conforme o tamanho da rajada, a transmisso funciona bem, porm, ao chegar a certo patamar, a confirmao no ir chegar a tempo (ocorrer o time-out), da utiliza-se o tamanho de janela anterior perda. Esse algoritmo de controle chamado Slow-Start (pois o crescimento ser exponencial), e deve ser aceito por todos TCP implementados. O algoritmo utilizado na Internet o Threshold, que inicialmente disponibiliza 64k a mais para as janelas. Quando acontece um time-out o Threshold criado como sendo de metade da janela de congesto e esta levada a um nvel mximo. Ento o Slow-Start usado para determinar o que a rede transmitir. A partir da a janela de congestionamento cresce linearmente por um segmento mximo por rajada. Assim, percebe-se que este algoritmo reduz a congesto pela metade. O segmento mximo de 1024 bytes. Inicialmente o tamanho da janela de congesto era de 64k, o time-out ocorreu ento foi reduzido 32k e a janela de congesto (Threshold) foi a 1k na transmisso de nmero 0. Ento a janela cresce exponencialmente at o valor de 32k, a partir deste ponto seu crescimento torna-se linear. Na transmisso 13 ocorre um time-out, ento o Threshold divido pela metade do tamanho da janela de congesto, novamente, e a janela que era de 40k vai 20k e o ciclo recomea.

UDP
Em contra partida ao TCP, existe um protocolo em nvel de transporte, que normalmente tratado como sendo parte do protocolo TCP/IP, o UDP.

Copyright 2006 Alcatel

21

O significado da sigla UDP (user datagram protocol) j deixa claro o fato deste ser um protocolo que oferece servios sem conexo. A caracterstica bsica do UDP, o fato de que ele no garante a entrega e a duplicidade das informaes a serem entregues. No entanto, mesmo parecendo que este protocolo no possui nenhuma vantagem, podemos destacar uma em especial: o overhead gerado por este protocolo pequeno. Este fato torna o uso deste protocolo muito interessante de alguns casos. O cabealho de um protocolo UDP possui apenas o porta de onde sai e a porta do destino. O checksum de um protocolo UDP usa o mesmo algoritmo de um protocolo TCP/IP. No caso do UDP adicionado ao segmento, um pseudo-cabealho colocado antes do cabealho do protocolo e calculado da mesma maneira que no TCP. Caso seja detectado algum erro, o segmento descartado e nenhuma ao posterior ser tomada. Um outro fato relativo ao checksum do UDP, que ele opcional. Caso seja tomada uma deciso de no utiliz-lo, ele setado como zero. Se nenhum checksum for usado, no ser feito nenhuma checagem dos dados do usurio. Bit 0 16 31 Porta fonte Porta destino Comprimento Checksum * Cabealho do UDP
O Futuro doTCP/IP

A evoluo da tecnologia TCP/IP est interligada evoluo global. Primeiramente sendo a Internet a maior interligao em redes TCP/IP, muitos problemas relacionados com o crescimento surgem na Internet. A tecnologia TCP/IP funcionou bem durante mais de uma dcada. Os desenvolvimentos que estimulam a evoluo de TCP/IP e da arquitetura da Internet recaem em quatro categorias: - Novas tecnologias de computador e de comunicao - Novos aplicativos - Aumentos em tamanho e da carga - Novas polticas Novas tecnologias de computador e de comunicaes, os pesquisadores e engenheiros que trabalham em protocolos TCP/IP mantm um vvido interesse pelas novas tecnolgicas. Com a disponibilidade de sistemas de computadores de alta velocidade, eles so usados como hosts e roteadores. O surgimento de novas tecnologias de rede fez com que eles fossem usados para transportar datagrama IP.

Copyright 2006 Alcatel

22

Novos aplicativos, uma das mais notveis fronteiras de pesquisa e desenvolvimento da Internet, os novos aplicativos freqentemente criam uma demanda por recursos ou servios que os protocolos atuais no podem oferecer. Por exemplo, um surto de interesse na multimdia criou a demanda por protocolos que pudessem transferir som e imagens com eficcia. De modo semelhante, o interesse pela comunicao de udio e vdeo em tempo real criou a demanda por protocolos que pudessem garantir a entrega de informaes dentro de um retardo fixo de transmisso, bem como protocolos que pudessem sincronizar correntes de dados de vdeo e udio. Aumentos em tamanho e da carga, a internet global experimentou muitos anos de crescimento exponencial ininterrupto, duplicando em tamanho a cada nove meses. Em princpios de 1994, um novo host aparecia, em mdia, a cada 30 segundos e esse ndice foi crescendo de forma drstica. O volume de trafego da Internet aumentou mais rpido do que o numero de redes. Os aumentos no trfego podem ser atribudos a vrias causas, um dos motivos so os novos aplicativos que transferem imagens e vdeo em tempo real, que geram mais trfego do que os aplicativos que transferem texto. Outro motivo a ferramenta de busca automtica que geram um volume substancial de trfego. Novas Polticas, medida que a Internet se expande dentro de novos mercados de trabalho e novos pases, ela se transforma se uma maneira fundamental: ganha novas jurisdies administrativas. As mudanas nas polticas administrativas e impe novos mecanismos para executar essas polticas. Quando diversas organizaes se interconectam em redes privativas TCP/IP, elas se deparam com problemas semelhantes ao tentar definir polticas para a interao e ento encontrar mecanismos para executar aquelas polticas. Assim, muitos dos esforos de pesquisa e engenharia envolvendo TCP/IP continuam se concentrando na busca de formas de conciliar novos grupos administrativos.

Concluso
O TCP define um servio importante de transmisso confivel de fluxo de dados. O TCP proporciona uma conexo full duplex entre duas mquinas, permitindo que troquem grandes volumes de dados com eficcia. J que utiliza um protocolo de janela deslizante, o TCP pode usar uma rede com eficincia. Como faz algumas suposies sobre o sistema bsico de entrega, o TCP suficientemente flexvel para operar em uma ampla variedade de sistemas de entrega. E como oferece um controle de fluxo, permite que sistemas de velocidades amplamente variveis se comuniquem. A unidade bsica de transferncia utilizada pelo TCP o segmento. Os segmentos so utilizados para transferir dados ou controlar informaes. O TCP implementa o controle de fluxo levando o receptor a informar a quantidade de dados que espera aceitar. Severino Pereira da Silva Supervisor de Gerencia de SDH Alcatel CO & M Florianpolis SC
Alcatel Telecomunicaes S.A

severino.pereira@om.netpoint.com.br (048) 9973 - 2254

Copyright 2006 Alcatel

23

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