• Nenhum resultado encontrado

1.2 Protocolos: Conceito e a Arquitetura da Rede

1.2.2 A camada de transporte

32 De acordo com Kurose e Ross (2013, p. 38), a camada de transporte “carrega mensagens da camada de aplicação entre os lados do cliente e servidor de uma aplicação”, sendo possível a utilização de dois protocolos: o TCP ou o UDP.

Mais a frente, estes mesmos autores (2013, p. 135 e 136) aprofundam mais sobre a funcionalidade do protocolo na camada de transporte, esclarecendo:

Um protocolo da camada de transporte fornece comunicação lógica entre processos de aplicação que rodam em hospedeiros diferentes.

Comunicação lógica nesse contexto significa que, do ponto de vista de uma aplicação, tudo se passa como se os hospedeiros que rodam os processos estivessem conectados diretamente; na verdade, eles poderão estar em lados opostos do planeta, conectados por diversos roteadores e uma ampla variedade de tipos de enlace. Processos de aplicação usam a comunicação lógica fornecida pela camada de transporte para enviar mensagens entre si, livres da preocupação dos detalhes da infraestrutura física utilizada para transportá-las.

Como já estabelecido anteriormente, a maior parte dos usuários da internet apenas notam as aplicações, isto é, aqueles elementos que lhe fornecem serviços por meio da internet. Sendo assim, o funcionamento em si deste ambiente não é de notório conhecimento.

Portanto, a rapidez com que os diversos usuários finais conseguem se comunicar, certamente, cria uma ilusão de que se trata de uma terra sem fronteiras, em que a informação pode chegar em qualquer local do globo em questão de segundos. Porém, isso não ocorre por acaso.

Para tanto, a camada de transporte se utiliza do protocolo TCP, que é o Transmission Control Protocol, ou o Protocolo de Controle de Transmissão, que, em razão de sua importância, está no nome da pilha de protocolos utilizada pela internet, o TCP/IP mencionado anteriormente. Os protocolos TCP e IP trabalham coordenadamente para manter as conexões seguras e completas, mas só veremos o segundo quando tratarmos da camada de rede.

Qualquer serviço que esteja sendo prestado, o usuário espera que ele ocorra de forma eficiente. No entanto, quando estamos tratando de um serviço que pode ser utilizado por qualquer pessoa, a qualquer tempo, é possível se questionar se aquele que o fornece, no caso de diversos acessos simultâneos, conseguirá suprir a demanda.

33 Com isso em mente, a internet se utiliza do protocolo TCP, que justamente busca “lost datagrams and handles the problem”29 (COMER, 2007, p. 139). Com relação ao termo datagrama, Kurose e Ross (2013, p. 138), preferem utilizar o termo segmento, tendo em vista a possível confusão que se pode ter em razão da utilização do primeiro na camada de rede. Sendo assim, adotaremos o termo utilizado por estes dois autores, ainda que nas citações de Comer ele use o primeiro termo.

O TCP, então, “oferece vários serviços adicionais às aplicações”, como a

“transferência confiável de dados”, em que o protocolo garante que os dados “sejam entregues do processo remetente ao processo destinatário corretamente e em ordem” (KUROSE; ROSS, 2013, p. 139).

Para expandir mais nesta função, a transferência confiável de dados garante que os dados enviados, nos dizeres de Kurose e Ross (2013, p. 177), não possuem lacunas, duplicações e estão devidamente sequenciados. Portanto, garante-se, em suma, que os dados recebidos por usuário sejam exatamente iguais àqueles que foram enviados por outro.

O TCP se utiliza de algumas ferramentas para fazer as necessárias verificações, como é o caso do uso de “timers and acknolowledgments”30, em que

“whenever data arrivers at its final destination, TCP software on the receiving machine sends na acknowledgment back to the source”31, considerando-se que “an acknowledgement is a short message that specifies which data arrived”32(COMER, 2007, p. 140).

De acordo com Comer (2007, p. 140 e 141), o temporizador funciona como um alarme, em que a partir do momento em que os dados são enviados, o tempo começa a ser contado. No caso de a confirmação chegar antes do tempo estimado pelo temporizador, reconhece-se que os dados chegaram de forma correta.

Entretanto, caso a confirmação não chegue, e o tempo estimado pelo temporizador seja ultrapassado, o TCP irá reenviar os dados, considerando que eles se perderam e, por algum motivo, não chegaram a seu destinatário.

29 Datagramas perdidos e cuida do problema (tradução livre).

30 Temporaizadores e reconhecedores, ou confirmadores (tradução livre).

31 Sempre que os dados chegarem em seu destino final, o software TCP na maquina que os recebeu manda uma confirmação para a fonte destes (tradução livre).

32 Uma confirmação é uma pequena mensagem que especifica quais dados chegarem (tradução livre).

34 O temporizador age de acordo com as nuanças da própria internet e a distância entre os usuários comunicantes, sendo este um dos aspectos mais importantes para o sucesso do TCP/IP, tendo em vista que “a communication protocol must change the timeout automatically to achieve eficient data transfer”33 (COMER, 2007, p. 141).

Outro serviço que o protocolo fornece, conforme Kurose e Ross (2013, p.

139), mas que não se destina em específico à aplicação, mas sim a toda internet, é o chamado “controle de congestionamento”, em que ele possibilita que “conexões TCP trafegando por um enlace de rede congestionado compartilhem em pé de igualdade a largura de banda daquele enlace”, o que é feito por meio da “regulagem da taxa”.

Isso significa que uma conexão TCP poderá ser regulada pela sua taxa de emissão, a partir do remetente, possibilitando que ela chegue ao seu destinatário, ainda que existam diversas outras conexões ocorrendo simultaneamente.

Por sua vez, o UDP se diferencia por não verificar “se o pacote de dados chegou ou não ao seu destino”, justificando-se porque “não é usado no transporte de dados importantes como, por exemplo, arquivos e e-mails” (TORRES, 2015).

Sendo assim, poderia se questionar qual a razão de se utilizar tal protocolo, tendo em vista que ele não possui a maior função proposta pelo TCP, que é justamente a transferência confiável de dados.

De acordo com Torres (2015), a vantagem de se utilizar o UDP é justamente a sua transmissão mais rápida de dados, em que os pacotes de dados transmitidos são menores e não existe o sistema de confirmação realizado pelo TCP.

Compreendido como é efetuado o transporte, há que se considerar, neste momento, como são direcionados os pacotes de dados, isto é, qual é o protocolo determinante para o envio dos dados ao destinatário correto.