Buscar

TCP/IP

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

TCP/IP
Na ciência da computação, um protocolo é uma convenção que controla e possibilita uma conexão, comunicação, transferência de dados entre dois sistemas computacionais.
De maneira simples, um protocolo pode ser definido como "as regras que governam" a sintaxe, semântica e sincronização da comunicação. Os protocolos podem ser implementados pelo hardware, software ou por uma combinação dos dois.
O TCP/IP (também chamado de pilha de protocolos TCP/IP) é um conjunto de protocolos de comunicação entre computadores em rede. Seu nome vem de dois protocolos: o TCP (Transmission Control Protocol - Protocolo de Controle de Transmissão) e o IP (Internet Protocol - Protocolo de Internet, ou ainda, protocolo de interconexão). O conjunto de protocolos pode ser visto como um modelo de camadas (Modelo OSI), onde cada camada é responsável por um grupo de tarefas, fornecendo um conjunto de serviços bem definidos para o protocolo da camada superior. As camadas mais altas, estão logicamente mais perto do usuário (chamada camada de aplicação) e lidam com dados mais abstratos, confiando em protocolos de camadas mais baixas para tarefas de menor nível de abstração.
O TCP/IP foi desenvolvido em 1969 pelo U.S. Department of Defense Advanced Research Projects Agency, como um recurso para um projeto experimental chamado de ARPANET (Advanced Research Project Agency Network) para preencher a necessidade de comunicação entre um grande número de sistemas de computadores e várias organizações militares dispersas.
O objetivo do projeto era disponibilizar links (vínculos) de comunicação com alta velocidade, utilizando redes de comutação de pacotes. O protocolo deveria ser capaz de identificar e encontrar a melhor rota possível entre dois sites (locais), além de ser capaz de procurar rotas alternativas para chegar ao destino, caso qualquer uma das rotas tivesse sido destruída.
O objetivo principal da elaboração de TCP/IP foi na época, encontrar um protocolo que pudesse tentar de todas as formas uma comunicação caso ocorresse uma guerra nuclear. A partir de 1972 o projeto ARPANET começou a crescer em uma comunidade internacional e hoje se transformou no que conhecemos como Internet. Em 1983 ficou definido que todos os computadores conectados ao ARPANET passariam a utilizar o TCP/IP. No final dos anos 1980 a Fundação Nacional de Ciências em Washington, D.C, começou a construir o NSFNET, um backbone para um supercomputador que serviria para interconectar diferentes comunidades de pesquisa e também os computadores da ARPANET. Em 1990 o NSFNET se tornou o backbone das redes para a Internet, padronizando definitivamente o TCP/IP.
Beneficios do protocolo TCP/IP
O TCP/IP sempre foi considerado um protocolo bastante pesado, exigindo muita memória e hardware para ser utilizado. Com o desenvolvimento das interfaces gráficas, com a evolução dos processadores e com o esforço dos desenvolvedores de sistemas operacionais em oferecer o TCP/IP para as suas plataformas com performance igual ou às vezes superior aos outros protocolos, o TCP/IP se tornou um protocolo indispensável. Actualmente ele é tido como “The Master of the Network” (O Mestre das Redes), pois a maioria das LANs exige a sua utilização para acesso ao mundo externo.
Beneficios 
Padronização: um padrão, um protocolo roteável que é o mais completo e aceito protocolo disponível atualmente. Todos os sistemas operacionais modernos oferecem suporte para o TCP/IP e a maioria das grandes redes se baseia em TCP/IP para a maior parte de seu tráfego.
Interconectividade: uma tecnologia para conectar sistemas não similares. Muitos utilitários padrões de conectividade estão disponíveis para acessar e transferir dados entre esses sistemas não similares, incluindo FTP (File Transfer Protocol) e Telnet (Terminal Emulation Protocol).
Roteamento: permite e habilita as tecnologias mais antigas e as novas a se conectarem à Internet. Trabalha com protocolos de linha como PPP (Point to Point Protocol) permitindo conexão remota a partir de linha discada ou dedicada. Trabalha como os mecanismos IPCs e interfaces mais utilizados pelos sistemas operacionais, como Windows sockets e NetBIOS.
Protocolo Robusto: escalável, multiplataforma, com estrutura para ser utilizada em sistemas operacionais cliente/servidor, permitindo a utilização de aplicações desse porte entre dois pontos distantes.
Internet: é através da suíte de protocolos TCP/IP que obtemos acesso a Internet. As redes locais distribuem servidores de acesso a Internet (proxy servers) e os hosts locais se conectam a estes servidores para obter o acesso a Internet. Este acesso só pode ser conseguido se os computadores estiverem configurados para utilizar TCP/IP.
Funcionamento
TCP-IP possui 4 camadas sendo que o início se dá com o programa conversando na camada de aplicação. Nesta camada você vai encontrar protocolos como o SMTP (para e-mail), FTP (para transferência de arquivos) e HTTP (para navegar na internet) e cada tipo de programa fala para um protocolo diferente da camada de Aplicação, dependendo do propósito do programa.
Depois de processar a requisição, o protocolo na camada de Aplicação vai falar com outro protocolo na camada de Transporte, usualmente o TCP. Esta camada é responsável por pegar o dado enviado pela camada de Aplicação, dividindo este dado em pacotes a fim de enviar ele para a camada inferior, a da Internet. Também, durante o recebimento do dados, a camada de Transporte é responsável por colocar os pacotes de dados recebidos da camada de Internet em ordem (os dados podem ser recebidos fora de ordem) e também checar se o conteúdo dos pacotes estão intactos.
Na camada da Internet, nós temos o IP (Internet Protocol), que pega os pacotes recebidos da camada de Transporte e adiciona uma informação de endereço virtual. Exemplo: adiciona o endereço do computador que está enviando dados e o endereço do computador que vai receber estes dados. Estes endereços virtuais são chamados de endereços IP. Então o pacote é enviado para a camada inferior, Interface de Rede e quando dos dados chegam nesta camada, eles são chamados de datagramas.
A Interface de Rede vai pegar os pacotes enviados pela camada de Internet e enviar através da rede (ou receber da rede, se o computador estiver recebendo dados). O que vai ter dentro desta camada vai depender do tipo de rede que o computador estiver inserido. Hoje em dia, o tipo de rede mais utilizado para comunicação entre computadores é a Ethernet (que é avaliada em diferentes faixas de velocidade) e pode ser cabeada (cabo de par trançado CAT5 ou CAT6) ou WI-FI (sem fio). Ainda dentro da camada de Interface de Rede Ethernet, você deve encontrar camadas Ethernet como a LLC (Logic Link Control), MAC (Media Access Control) e a Física que é o meio físico (cabo por exemplo). Os pacotes transmitidos através da rede são chamados de quadros.
Camada da pilha dos Protocolos internet
O modelo ou arquitetura TCP/IP de encapsulamento busca fornecer abstração aos protocolos e serviços para diferentes camadas de uma pilha de estruturas de dados .
No caso do modelo inicial do TCP/IP, a pilha possuía quatro camadas:
	Camada
	Exemplo
	4 - Aplicação
(5ª, 6ª e 7ª camada OSI)
	HTTP, HTTPS, FTP, DNS
Essa parte contém todos os protocolos para um serviço específico de comunicação de dados em um nível de processo-a-processo (por exemplo: como um web browser deve se comunicar com um servidor da web). [protocolos de routing como BGP e RIP, que, por uma variedade de razões, são executados sobre TCP e UDP respectivamente, podem também ser considerados parte da camada de aplicação]
	3 - Transporte
(4ª camada OSI)
	TCP, UDP, SCTP
Essa parte controla a comunicação host-a-host. [protocolos como OSPF, que é executado sobre IP, podem também ser considerados parte da camada de rede]
	2 - Internet
(3ª camada OSI)
	Para TCP/IP o protocolo é IP, MPLS
Essa parte é responsável pelas conexões entre as redes locais, estabelecendo assim a interconexão. [protocolos requeridos como ICMP e IGMP é executadosobre IP, mas podem ainda ser considerados parte da camada de rede; ARP não roda sobre IP]
	1 - Enlace (Interface com Rede)
(1ª e 2ª camada OSI)
	Essa é a parte conhecida como física pois trata-se das tecnologias usadas para as conexões como: Ethernet, Wi-Fi, Modem, etc. No modelo OSI, essa camada também é física, porém, é dividido em duas partes: física e enlace de dados. A física é a parte do hardware e a enlace de dados é a parte lógica do hardware; mac address.
As camadas mais próximas do topo estão logicamente mais perto do usuário, enquanto aquelas mais abaixo estão logicamente mais perto da transmissão física do dado. Cada camada tem um protocolo de camada acima e um protocolo de camada abaixo (exceto as camadas da ponta, obviamente) que podem usar serviços de camadas anteriores ou fornecer um serviço, respectivamente.
Enxergar as camadas como fornecedores ou consumidores de serviço é um método de abstração para isolar protocolos de camadas acima dos pequenos detalhes de transmitir bits através, digamos, de ethernet, e a detecção de colisão enquanto as camadas abaixo evitam ter de conhecer os detalhes de todas as aplicações e seus protocolos.
Essa abstração também permite que camadas de cima forneçam serviços que as camadas de baixo não podem fornecer. Por exemplo, o IP é projetado para não ser confiável e é um protocolo best effort delivery. Isso significa que toda a camada de transporte deve indicar se irá ou não fornecer confiabilidade e em qual nível.
O TCP (Transmission Control Protocol - Protocolo de Controle de Transmissão), é um protocolo orientado a conexões confiável que permite a entrega sem erros de um fluxo de bytes.
O UDP fornece integridade de dados (via um checksum) mas não fornece entrega garantida; já o TCP fornece tanto integridade dos dados quanto garantia de entrega (retransmitindo até que o destinatário receba o pacote).
Comparação com o modelo OSI
	Modelo OSI
	Camada
	Protocolo
	7.Aplicação
	HTTP, RTP, SMTP, FTP, SSH, Telnet, SIP, RDP, IRC, SNMP, NNTP, POP3, IMAP, BitTorrent, DNS ...
	6.Apresentação
	XDR, TLS ...
	5.Sessão
	NetBIOS ...
	4.Transporte
	NetBEUI, TCP, UDP, SCTP, DCCP, RIP ...
	3.Rede
	IP (IPv4, IPv6), IPsec, ICMP, ARP, RARP, NAT...
	2.Enlace
Subcamada LLC
Subcamada MAC
	Ethernet, IEEE 802.1Q, HDLC, Token ring, FDDI, PPP, Switch, Frame relay, ATM ...
	1.Física
	Modem, , 802.11 Wi-FiRDIS, RS-232, EIA-422, RS-449, Bluetooth, USB, 10BASE-T, 100BASE-TX, ISDN, SONET, DSL...
Existe a discussão de como mapear o modelo TCP/IP convencionalmente de 4 camadas dentro do modelo OSI que possui o padrão de 7 camadas. Como os modelos TCP/IP e OSI não combinam exatamente, não existe uma única resposta para esta questão.
Além do mais, o modelo OSI não é realmente rico o suficiente nas camadas mais baixas para capturar a verdadeira divisão de camadas; é necessário uma camada extra (a camada internet) entre as camadas de transporte e de rede. Protocolos específicos para um tipo de rede que rodam em cima de estrutura de hardware básica precisam estar na camada de rede. Exemplos desse tipo de protocolo são ARP e o Spanning Tree Protocol (usado para manter pontes de rede redundantes em "espera" enquanto elas são necessárias). Entretanto, eles são protocolos locais e operam debaixo da funcionalidade internet. Reconhecidamente, colocar ambos os grupos (sem mencionar protocolos que são logicamente parte da camada internet, mas rodam em cima de um protocolo internet, como ICMP) na mesma camada pode ser um tanto confuso, mas o modelo OSI não é complexo o suficiente para apresentar algo melhor.
Geralmente, as três camadas mais acima do modelo OSI (aplicação, apresentação e sessão) são consideradas como uma única camada (aplicação) no modelo TCP/IP. Isso porque o TCP/IP tem uma camada de sessão relativamente leve, consistindo de abrir e fechar conexões sobre TCP e RTP e fornecer diferentes números de portas para diferentes aplicações sobre TCP e UDP. Se necessário, essas funções podem ser aumentadas por aplicações individuais (ou bibliotecas usadas por essas aplicações). Similarmente, IP é projetado em volta da ideia de tratar a rede abaixo dele como uma caixa preta de forma que ela possa ser considerada como uma única camada para os propósitos de discussão sobre TCP/IP.
O modelo TCP/IP está dividido em quatro camadas
Camada de aplicação (FTP, SMTP, TELNET, HTTP, HTTPS, etc)
Camada de transporte (TCP, UDP, etc)
Camada de rede (IP)
Camada física (Ethernet, etc)
Semelhanças:
Ambos têm camadas;
Ambos têm camadas de aplicação, embora incluam serviços muito diferentes;
Ambos têm camadas de transporte e de rede comparáveis;
A tecnologia de comutação de pacotes (e não comutação de circuitos) é presumida por ambos;
Os profissionais da rede precisam conhecer ambos.
Diferenças:
TCP/IP combina os aspectos das camadas de apresentação e de sessão dentro da sua camada de aplicação;
TCP/IP combina as camadas física e de enlace do OSI em uma camada;
TCP/IP parece ser mais simples por ter menos camadas;
Os protocolos do TCP/IP são os padrões em torno dos quais a Internet se desenvolveu, portanto o modelo TCP/IP ganha credibilidade apenas por causa dos seus protocolos. Em contraste, nenhuma rede foi criada em torno de protocolos específicos relacionados ao OSI, embora todos usem o modelo OSI para guiar seu raciocínio.
Protocolo de Camada de Aplicao 
Em um modelo de comunicação, como o TCP/IP, as camadas mais inferiores têm a função de transmitir os dados enviados pela camada de aplicação de maneira confiável, mas não fornecem serviços diretos aos usuários. Já a camada de aplicação, fornece diretamente estes serviços, sendo assim, a camada de aplicação é “a razão de ser de uma rede de computadores”. No modelo TCP/IP não há as camadas de seção e apresentação, que na maioria das aplicações são pouco usadas. 
Para que dois processos se comuniquem, eles devem trocar mensagens. Porém, é necessário haver regras que padronizem como serão trocadas e tratadas essas mensagens. Por isso, existem os protocolos da camada de aplicação. Como em Tanenbaum, "mesmo na camada de aplicação existe a necessidade de protocolos de suporte, a fim de permitir que as aplicações funcionem." É necessário definir os tipos de mensagens a serem trocadas, a sintaxe dos vários tipos de mensagens, a semântica dos campos que compõem as mensagens e as regras que determinam quando e como um processo envia e responde as mensagens. No entanto, como explica Kurose, é importante não confundir os protocolos de camada de aplicação com as aplicações. São conceitos diferentes, apesar de os protocolos serem uma parcela significativa de uma aplicação. Uma aplicação é a interface com o usuário, ou seja, aquilo que é realmente acessado. Os protocolos se responsabilizam por definir como os processos irão se comunicar e como irão tratar as mensagens, para expor o que foi solicitado pelo usuário em sua aplicação. Por exemplo, para acessar uma página Web, um usuário executa um programa Browser e solicita uma página. O Browser usa o protocolo HTTP para enviar o pedido da página, assim como o servidor usa o mesmo protocolo para aceitar a requisição e devolver a página solicitada. O Browser interpreta a mensagem vinda do servidor e apresenta a página.
Dentre os protocolos de aplicação, pode-se citar: HTTP (HyperText Transfer Protocol), HTTPS (HyperText Transfer Protocol over Secure Socket Layer), FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol), Telnet, POP3 (Post Office Protocol version 3), e muitos outros.
camada de transporte
A camada de transporte, dentro do modelo OSI, localiza-se abaixo da camada de aplicação e acima da camada de rede (Internet). A principal finalidade dessa camada é manter a comunicação entre dois hosts, ou seja, ela é responsável pela transferência fim-a-fim, de maneira eficiente, confiável e econômica de dados entre uma máquina de origem e uma máquina de destino. A camada de transporte prevê dois protocolos, o primeiro deles é oTCP (Transmission Control Protocol — protocolo de controle de transmissão), que é um protocolo orientado a conexões confiáveis, ou seja, ele permite a entrega sem erros de dados de uma determinada máquina a outra máquina da rede. O outro protocolo, o UDP (User Datagram Protocol - protocolo de datagramas do utilizador) corresponde a um protocolo não orientado a conexão, ou seja, sem confiabilidade, já que não há garantia de envio/recebimento de pacotes.
O serviço de transporte mantém um relacionamento muito próximo com o destinatário do serviço. Portanto, deve ser fácil de usar. Podemos relacionar algumas primitivas que os provedores deste tipo de serviço devem adotar, de modo a oferecer um serviço orientado a conexão com um mínimo de funcionalidade (em geral, basta permitir requisições de estabelecimento, uso e encerramento de uma conexão). Primitivas: LISTEN, CONNECT, SEND DATA, RECEIVE e DISCONNECT.
Uma ilustração do serviço provido pela camada de trasporte. Observe a implementação de um serviço de transporte confiável de dados sobre uma camada não confiável.
Multiplexação e Demultiplexação
Enquanto que a camada de rede provê uma comunicação host a host, a camada de transporte provê uma comunicação processo a processo. Para realizar essa ampliação do serviço provido pela camada de redes, a camada de transporte utiliza o conceito de portas, que é, na verdade, um número que identifica qual processo deverá se encarregar da informação trazida por aquele pacote. Na prática, o aplicativo informa ao sistema operacional que estará escutando uma determinada porta e então todos os pacotes daquele protocolo (UDP ou TCP) serão repassados àquele processo.
O método de receber os dados do processo utilizando uma determinada porta, colocar um cabeçalho e enviar a um determinado processo de outro host é chamado de multiplexação.
O método de receber um pacote vindo de outro host e repassar as informações ao processo correto é chamado de demultiplexação.
Abaixo segue uma ilustração do funcionamento da Multiplexação/Demultiplexação, na qual dois clientes usam o mesmo números de porta destino (80) para se comunicar com a mesma aplicação do servidor web.
Protocolo UDP
O protocolo UDP é um dos protocolos utilizados pela camada de transporte. A idéia central do protocolo é receber os dados de um processo e entregar ao processo de destino. Não leva em consideração o congestionamento da rede, ou uma entrega confiável dos dados, apenas a multiplexação e demultiplexação.
A grande vantagem do UDP em relação ao TCP (outro protocolo da camada de transporte) está na velocidade de transmissão, relevando a confiabilidade na entrega dos pacotes. Nas aplicações onde velocidade é mais importante do que a ordem em que os pacotes são recebidos, como jogos, vídeos e músicas, o UDP é preferível.
Observe o Cabeçalho UDP, podemos notar a tamanha simplicidade deste protocolo, bem como uma ilustração da idéia do UDP, que é a de transmitir (busca pelo tempo real, velocidade), independentemente da chegada ou não dos pacotes no destinatário (sem garantia de envio/ recebimento).
Protocolo TCP
O protocolo TCP é outro protocolo utilizado pela camada de transporte. A idéia central deste protocolo é prover confiabilidade no transporte dos dados, não deixando de lado o tráfego na rede (controle de congestionamento) e a multiplexação e demultiplexação.
A grande vantagem do TCP em relação ao UDP está na confiabilidade em que os dados são entregues ao remetente. Este protocolo provê mecanismos que garantem que todos os dados repassados a camada de aplicação não estão corrompidos. Desta forma um host A pode enviar um arquivo ao host B tendo a certeza de que o arquivo, caso seja entregue á camada de aplicação do host B, está íntegro.
O Tcp é orientado a conexão, isto é, um host estabelece uma conexão com outro host, de forma que um pode enviar dados para o outro em modo full duplex.
O TCP, portanto, provê transferência confiável de dados entre processos rodando em sistemas finais. A comunicação entre os dois aplicativos se dá como se eles estivessem fisicamente interligados por um cabo, embora ambos possam estar a milhares de quilômetro de distância um do outro.
Observe uma representação do cabeçalho TCP, uma simples demonstração do propósito do TCP. Percebe-se a complexidade de um pacote TCP, o que reflete toda a confiabilidade e garantia oferecidos por este protocolo. O TCP não está preocupado em apenas enviar os pacotes (velocidade, tempo real), mas sim dar a garantia ao destinatário de que o pacote enviado pelo remetente tenha sido entregue.
A camada de rede
Como definido anteriormente, a camada de rede resolve o problema de obter pacotes através de uma rede simples. Exemplos de protocolos são o X.25 e o Host/IMP da ARPANET.
Com o advento da internet novas funcionalidades foram adicionadas nesta camada, especialmente para a obtenção de dados da rede de origem e da rede de destino. Isso geralmente envolve rotear o pacote através de redes distintas que se relacionam através da internet.
Na suíte de protocolos para a internet, o IP executa a tarefa básica de levar pacotes de dados da origem para o destino. O protocolo IP pode transmitir dados para diferentes protocolos de níveis mais altos, esses protocolos são identificados por um único número de protocolo IP.
Alguns dos protocolos transmitidos por IP, como o ICMP (usado para transmitir informação de diagnóstico sobre a transmissão IP) e o IGMP (usado para gerenciar dados multicast) são colocados acima do IP mas executam funções da camada internet. Isso ilustra uma incompatibilidade entre os modelos da internet e OSI. Todos os protocolos de routing, como o BGP, o OSPF e o RIP são também parte da camada de internet, muito embora eles possam ser vistos como pertencentes a camadas mais altas na pilha.
O PDU (Protocol Data Unit) descreve um bloco de dados que é transmitido entre duas instâncias da mesma camada. O PDU da camada de rede é geralmente conhecido como "pacote". Lembrando que todas as camadas tem seu PDU que variam o nome em:
Dados (Aplicação),
Segmento (Transporte),
Pacote (Rede),
Quadros (Enlace) e
Bits (Física e LLC que é sub-camada de enlace).

Outros materiais

Outros materiais