𝖂𝖎ƙ𝖎𝖊

TCP/IP: mudanças entre as edições

imported>Caloni
Sem resumo de edição
imported>Caloni
Sem resumo de edição
Linha 1: Linha 1:
{{tradução}}
Os '''protocolos internet''' formam o grupo de [[protocolos de comunicação]] que implementa a pilha de protocolos sobre a qual a [[internet]] e a maioria das redes comerciais roda. Eles são algumas vezes chamados de '''protocolos TCP/IP''', já que os dois protocolos mais importantes desse modelo são: o protocolo TCP - ''Transmission Control Protocol'' ([[Protocolo de Controle de Transmissão]]) - e o IP - ''Internet Protocol'' ([[Protocolo Internet]]. Esses dois protocolos foram os primeiros a serem definidos.
Os '''protocolos internet''' formam o grupo de [[protocolos de comunicação]] que implementa a pilha de protocolos sobre a qual a [[internet]] e a maioria das redes comerciais roda. Eles são algumas vezes chamados de '''protocolos TCP/IP''', já que os dois protocolos mais importantes desse modelo são: o protocolo TCP - ''Transmission Control Protocol'' ([[Protocolo de Controle de Transmissão]]) - e o IP - ''Internet Protocol'' ([[Protocolo Internet]]. Esses dois protocolos foram os primeiros a serem definidos.


Linha 37: Linha 35:
Existe alguma discussão sobre como mapear o modelo TCP/IP dentro do modelo OSI. Uma vez que os modelos TCP/IP e OSI não combinam exatamente, não existe uma resposta correta para esta questão.
Existe alguma discussão sobre como mapear o modelo TCP/IP dentro do modelo OSI. Uma vez que os modelos TCP/IP e OSI não combinam exatamente, não existe uma resposta correta 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 entre redes) 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 [[ponte de rede|pontes de rede]] redundantes em [[idle]] enquanto elas são necessárias). Entretanto, eles são protocolos locais e operam debaixo da funcionalidade entre redes. Reconhecidamente colocar ambos os grupos (sem mencionar protocolos que são logicamente parte da camada entre redes, mas rodam em cima de um protocolo entre redes, como [[ICMP]]) todos na mesma camada pode ser um tanto confuso, mas o modelo OSI não é complexo o suficiente para fazer um trabalho melhor.
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 [[ponte de rede|pontes de rede]] redundantes em [[idle]] 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]]) todos na mesma camada pode ser um tanto confuso, mas o modelo OSI não é complexo o suficiente para fazer um trabalho 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 idéia 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.
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 idéia 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.


==As camadas==
==As camadas==
The following is a description of each layer in the IP suite stack.
O que segue é uma descrição de cada camada na pilha da suíte IP.


===A camada de enlace===
===A camada de enlace===
The Link layer is not really part of the Internet protocol suite, but is the method used to pass packets from the Internet layer of one device to the Internet layer of another. This process can be controlled both in the [[software]] [[device driver]] for the [[network card]], as well as on [[firmware]] or specialist [[chipsets]]. These will perform [[data link layer|data link]] functions such as adding a [[packet header]] to prepare it for transmission, then actually transmit the frame over a [[physical layer|physical]] [[transmission medium|medium]]. On the other end, the link layer will receive data frames, strip off the packet headers, and hand the received packets to the Internet layer.
A camada de enlace não é realmente parte do modelo TCP/IP, mas é o método usado para passar pacotes da camada de rede de um dispositivo para a camada de internet de outro. Esse processo pode ser controlado tanto em [[software]] ([[device driver]]) para a [[place de rede]] quanto em [[firmware]] ou [[chipset]]s especializados. Esses irão executar as funções da camada de enlace de dados como adicionar um ''header'' de pacote para prepará-lo para transmissão, então de fato transmitir o quadro através da camada física. Do outro lado, a camada de enlace irá receber quadros de dados, retirar os ''headers'' adicionados e encaminhar os pacotes recebidos para a camada de internet.


However, the link layer is not always so simple. It may also be a [[Virtual private network]] (VPN) or tunnel, where packets from the Internet layer, instead of being sent over a physical interface, are sent using a [[tunneling protocol]] and another (or the same) protocol suite. The VPN or tunnel is usually established ahead of time, and has special characteristics that direct transmission out a physical interface does not (for example, it may encrypt the data going over it). This [[recursion|recursive]] use of the protocol suite can be confusing since the link "layer" is now an entire network. But it is an elegant method for implementing often complex functions. (Though care is needed to prevent a packet that is wrapped and sent through a tunnel being repeatedly re-wrapped and sent down the tunnel again).
Entretanto, a camada de enlace não é sempre tão simples. Ela pode também ser um [[VPN]] (''Virtual Private Network'', Rede Privada Virtual) ou túnel, onde pacotes da camada de internet, ao invés de serem enviados através de uma interface física, são enviados usando um protocolo de ''[[tunneling]]'' e outra (ou a mesma) suíte de protocolos. O '''VPN''' ou túnel é usualmente estabelecido além do tempo, e tem características especiais que a transmissão direta por interface física não possui (por exemplo, ele pode encriptar os dados que passam através dele). Esse uso recursivo de suíte de protocolos pode ser confuso uma vez que a "camada" de enlace é agora uma rede inteira. Mas é um método elegante para implementar funções freqüentemente complexas. (Embora muito cuidado é necessário para prevenir um pacote que é empacotado e enviado através do túnel de ser re-empacotado e reenviado novamente através do túnel).


===A camada de rede===
===A camada de rede===
As originally defined, the [[Network layer]] solves the problem of getting packets across a single network. Examples of such protocols are [[X.25]], and the [[ARPANET]]'s [[Host/IMP Protocol]].
Como definido originalmente, 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]].


With the advent of the concept of [[Internet|internetworking]], additional functionality was added to this layer, namely getting data from the source [[computer network|network]] to the destination network. This generally involves routing the packet across a network of networks, known as an [[internet]].
Com o advento do conceito de [[internet]], adicional funcionalidade foi adicionada para essa camada, especialmente a obtenção de dados da rede origem para a rede destino. Isso geralmente envolve rotear o pacote através de uma rede para outras redes, estas conhecidas como uma [[internet]].


In the internet protocol suite, [[Internet Protocol|IP]] performs the basic task of getting packets of data from source to destination. IP can carry data for a number of different higher level protocols; these protocols are each identified by a unique ''IP Protocol Number''. ICMP and IGMP are protocols 1 and 2, respectively.
Na suíte de protocolos internet, o [[IP]] executa a tarefa básica de levar pacotes de dados da origem para o destino. O IP pode transmitir dados para diferentes protocolos de nível mais alto; esses protocolos são identificados cada um por um único '''número de protocolo IP'''. [[ICMP]] e [[IGMP]] são os protocolos 1 e 2, respectivamente.


Some of the protocols carried by IP, such as [[Internet Control Message Protocol|ICMP]] (used to transmit diagnostic information about IP transmission) and [[Internet Group Management Protocol|IGMP]] (used to manage [[multicast]] data) are layered on top of IP but perform internetwork layer functions, illustrating an incompatibility between the internet and OSI models. All routing protocols, such as [[Border Gateway Protocol|BGP]], [[OSPF]], and [[Routing information protocol|RIP]] are also really part of the internetwork layer, although they might seem to belong higher in the stack.
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 realmente parte da camada de internet, muito embora eles possam ser vistos como pertencentes à camadas mais altas na pilha.


===A camada de transporte===
===A camada de transporte===
The protocols at the [[Transport layer]] can solve problems like reliability ("did the data reach the destination?") and ensure that data arrives in the correct order. In the TCP/IP protocol suite, transport protocols also determine which application any given data is intended for.  
Os protocolos na camada de transporte podem resolver problema como confiabilidade ("o dado alcançou seu destino?") e assegurar que os dados cheguem na ordem correta. Na suíte de protocolos TCP/IP, os protocolos de transporte também determinam para qual aplicação um dado qualquer é destinado.


The dynamic routing protocols which technically fit at this layer in the TCP/IP Protocol Suite (since they run over IP) are generally considered to be part of the Network layer; an example is [[OSPF]] (IP protocol number 89).
Os protocolos dinâmicos de '''[[routing]]''' que tecnicamente cabem nessa camada do TCP/IP (desde que eles rodem sobre o IP) são geralmente considerados parte da camada de rede; um exemplo é o [[OSPF]] (protocolo IP número 89).


[[Transmission control protocol|TCP]] (IP protocol number 6) is a "reliable", [[connection-oriented]], transport mechanism providing a [[reliable byte stream]], which makes sure data arrives complete, undamaged, and in order. TCP tries to continuously measure how loaded the network is and throttles its sending rate in order to avoid overloading the network. Furthermore, TCP will attempt to deliver all data correctly in the specified sequence. These are its main differences from UDP, and can become disadvantageous in real-time streaming or routing applications with high [[internetwork layer]] loss rates.  
O [[TCP]] (''Transmission Control Protocol'', Protocolo de Controle de Transmissão) - número 6 do protocolo IP - é um mecanismo de transporte "confiável", orientado à conexão, que fornece um ''stream de bytes'' confiável, que garante que os dados cheguem íntegros, não danificados e em ordem. O [[TCP]] tenta continuamente medir o quão carregada a rede está e desacelera sua taxa de envio para evitar sobrecarga. Além disso, o TCP irá tentar entregar todos os dados corretamente na seqüência especificada. Essas são as principais diferenças dele para com o [[UDP]], e pode se tornar desvantajoso em ''streaming'' em tempo real ou aplicações de ''[[routing]]'' com altas taxas de perda na camada internet.


The newer [[Stream Control Transmission Protocol|SCTP]] is also a "reliable", [[connection-oriented]], transport mechanism. It is record rather than byte oriented, and provides multiple sub-streams multiplexed over a single connection. It also provides multi-homing support, in which a connection end can be represented by multiple IP addresses (representing multiple physical interfaces), such that if one fails the connection is not interrupted. It was developed initially for telephony applications (to transport [[SS7]] over [[Internet Protocol|IP]]), but can also be used for other applications.
O mais novo [[SCTP]] (''Stream Control Transmission Protocol'', Protocolo de Transmissão de Controle de ''Stream'') é também um mecanismo de transporte "confiável". Ele também provê suporte ''multi-[[homing]]'', em que o final de uma conexão pode ser representada por múltiplos endereços IP (representando múltimas interfaces físicas), de maneira que, se algum falhar, a conexão não é interrompida. Ele foi desenvolvido inicialmente para aplicações de telefonia (para transportar [[SS7]] sobre [[IP]]), mas também pode ser usado para outras aplicações.


[[User datagram protocol|UDP]] (IP protocol number 17) is a [[connectionless]] datagram protocol. It is a "best effort" or "unreliable" protocol - not because it is particularly unreliable, but because it does not verify that packets have reached their destination, and gives no guarantee that they will arrive in order. If an Application requires these characteristics, it must provide them itself, or use [[Transmission Control Protocol|TCP]].
O [[UDP]] (''User Datagram Protocol'') - número 17 do protocolo [[IP]] - é um protocolo de datagrama sem conexão. Ele é um protocolo de "melhor esforço" ou "não confiável". Não porque ele é particularmente não confiável, mas porque ele não verifica se os pacotes alcançaram seu destino, e não dá qualquer garantia que eles irão chegar na ordem. Se uma aplicação requer estas características, então ela mesma terá que provê-las ou usar o protocolo [[TCP]].


UDP is typically used for applications such as streaming media (audio and video, etc) where on-time arrival is more important than reliability, or for simple query/response applications like [[DNS]] lookups, where the overhead of setting up a reliable connection is disproportionately large.  
O UDP é tipicamente usado por aplicações como as de mídia de [[streaming]] (áudio, vídeo etc) onde a chegada na hora é mais importante do que confiabilidade, ou para aplicações de simples requisição/resposta como pesquisas [[DNS]], onde o [[overhead]] de configurar uma conexão confiável é desproporcionalmente largo.


[[DCCP]] is currently under development by IETF. It provides TCP's flow control semantics, while keeping UDP's datagram service model visible to the user.
O [[DCCP]] está atualmente em desenvolvimento pelo IETF. Ele provê controle de fluxo das semânticas do TCP, enquanto mantém o modelo de serviço de datagramas do UDP visível para o usuário.


Both TCP and UDP are used to carry a number of higher-level applications. The applications at any given network address are distinguished by their TCP or UDP ''[[port number]]''. By convention certain ''well known ports'' are associated with specific applications.
Tanto o TCP quanto o UDP são usados para transmitir um número de aplicações de alto nível. As aplicações em qualquer endereço de rede são distingüidas por seus endereços de [[porta]] TCP ou UDP. Por convenção, certas portas "bem conhecidas" estão associadas com aplicações específicas.
 
[[Real-time Transport Protocol|RTP]] is a datagram protocol that is designed for real-time data such as streaming audio and video.
RTP is a session layer that uses the UDP packet format as a basis yet is said to sit within the transport layer of the Internet protocol stack.


===A camada de aplicação===
===A camada de aplicação===
The [[Application layer]] is the layer that most common network-aware programs use in order to communicate across a network with other programs. Processes that occur in this layer are application specific; data is passed from the network-aware program, in the format used internally by this application, and is encoded into a standard protocol.
A camada de aplicação é a camada que a maioria dos programas de rede usam de forma a se comunicarem através de uma rede com outros programas. Processos que rodam nessa camada são específicos da aplicação; o dado é passado do programa de rede, no formato usado internamente por essa aplicação, e é codificado dentro do padrão de um protocolo.
 
Some specific programs are considered to run in this layer. They provide services that directly support user applications. These programs and their corresponding protocols include [[HTTP]] (The World Wide Web), [[File Transfer Protocol|FTP]] (File transport), [[Simple Mail Transfer Protocol|SMTP]] (Email), [[Secure shell|SSH]] (Secure remote login), [[DNS]] (Name <-> IP Address lookups) and many others.
 
Once the data from an application has been encoded into a standard application layer protocol it will be passed down to the next layer of the IP stack.


At the Transport Layer, applications will most commonly make use of TCP or UDP, and server applications are often associated with a [[TCP and UDP port numbers|well-known port number]]. Ports for server applications are officially allocated by the [[Internet Assigned Numbers Authority]] (IANA) but developers of new protocols today often choose the port numbers themselves. As it is rare to have more than a few server applications on the same system, problems with port conflicts are rare. Application software also generally allows users to specify arbitrary port numbers as [[runtime]] [[parameters]].
Alguns programas específicos são levados em conta nessa camada. Eles provêm serviços que suportam diretamente aplicações do usuário. Esses programas e seus correspondentes protocolos incluem o [[HTTP]] (navegação na ''Word Wide Web''), [[FTP]] (transporte de arquivos), [[SMTP]] (envio de email), [[SSH]] (''[[login]]'' remoto seguro), [[DNS]] (pesquisas nome <-> IP) e muitos outros.


Client applications connecting out generally use a random port number assigned by the operating system. Applications that listen on a port and then send that port to another copy of the application via a server to set up a peer-peer link (e.g. [[Direct Client-to-Client|dcc]] file transfers on [[Internet Relay Chat|IRC]]). May also use a random port but the applications usually allow specification of a specific port range to allow the ports to be mapped inwards through a router that implements [[network address translation]].
Uma vez que o dado de uma aplicação foi codificados dentro de um padrão de um protocolo da camada de aplicação ele será passado para a próxima camada da pilha IP.


==Desenvolvimento==
Na camada de transporte, aplicações irão em sua maioria fazer uso de TCP ou UDP, e aplicações servidoras são freqüentemente associadas com um '''número de porta'''. Portas para aplicações servidores são oficialmente alocadas pela [[IANA]] (''Internet Assigned Numbers Authority'') mas desenvolvedores de novos protocolos hoje em dia freqüentemente escolhem os números de portas por eles mesmos. Uma vez que é raro ter mais que alguns poucos programas servidores no mesmo sistema, problemas com conflito de portas são raros. Aplicações também geralmente permitem que o usuário especifique números de portas arbitrários através de parâmetros em tempo de execução.
The Internet protocol suite came from work done by [[DARPA]] in the early [[1970s]]. After building the pioneering [[ARPANET]], DARPA started work on a number of other data transmission technologies. In 1972, [[Robert E. Kahn]] was hired at the DARPA [[Information Processing Technology Office]], where he worked on both satellite packet networks and ground-based radio packet networks, and recognized the value of being able to communicate across them.  In the spring of 1973, [[Vinton Cerf]], the developer of the existing ARPANET Network Control Program (NCP) protocol, joined Kahn to work on open-architecture interconnection models with the goal of designing the next protocol for the ARPANET.


By the summer of [[1973]], Kahn and Cerf had soon worked out a fundamental reformulation, where the differences between network protocols were hidden by using a common [[internetwork protocol]], and instead of the network being responsible for reliability, as in the ARPANET, the hosts became responsible. (Cerf credits [[Hubert Zimmerman]] and [[Louis Pouzin]] (designer of the [[CYCLADES]] network) with important influences on this design.)
Aplicações cliente conectando para fora geralmente usam um número de porta randômico determinado pelo [[sistema operacional]]. Aplicações que escutam sobre uma porta e então enviam aquela porta para outra cópia da aplicação via um servidor para configurar um link '''par a par''' (e.g. transferências de arquivo '''dcc''' sobre [[IRC]]).
 
With the role of the network reduced to the bare minimum, it became possible to join almost any networks together, no matter what their characteristics were, thereby solving Kahn's initial problem. (One popular saying has it that [[TCP/IP]], the eventual product of Cerf and Kahn's work, will run over "two tin cans and a string", and it has in fact been [[IP over Avian Carriers|implemented using homing pigeons]].)  A computer called a ''gateway'' (later changed to ''[[router]]'' to avoid confusion with [[Gateway|other types of ''gateway'']]) is provided with an interface to each network, and forwards [[packet]]s back and forth between them.
 
The idea was worked out in more detailed form by Cerf's networking research group at Stanford in the [[1973]]&ndash;[[1974|74]] period. (The early networking work at [[Xerox PARC]], which produced the [[PARC Universal Packet]] protocol suite, much of which was contemporaneous, was also a significant technical influence; people moved between the two.)
 
DARPA then contracted with BBN, Stanford, and The University College London to develop operational versions of the protocol on different hardware platforms.  Four versions were developed -- TCP v1, TCP v2, a split into TCP v3 and IP v3 in the spring of 1978, and then stability with TCP/IP v4 -- the standard protocol still in use on the Internet today.
 
In 1975, a two-network TCP/IP communications test was performed between Stanford and University College London (UCL). In November, 1977, a three-network TCP/IP test was conducted between the U.S., U.K., and Norway.  Between 1978 and 1983, several other TCP/IP prototypes were developed at multiple research centres.  A full switchover to TCP/IP on the ARPANET took place January 1, 1983. [http://www.livinginternet.com/i/ii.htm]
 
In 1984, the US Department of Defense made TCP/IP the standard for all military computer networking.  In 1985, the Internet Architecture Board held a three day workshop on TCP/IP for the computer industry, attended by 250 vendor representatives, helping popularize the protocol and leading to its increasing commercial use.
 
On [[9 November]] [[2005]] Kahn and Cerf were presented with the [[Presidential Medal of Freedom]] for their contribution to American culture. [http://news.bbc.co.uk/1/hi/technology/4415326.stm]


==Como IP mata e come redes competitivas==
==Como IP mata e come redes competitivas==
In the long term, IP appears to replace other networks. Here's a brief explanation. IP transmits generic data.  The data can serve any purpose, and can easily replace data previously provided by proprietary data networks.  Here's the usual sequence:
Por um longo período, o IP parece substituir outras redes. Aqui está uma breve explicação. IP transmite dados genéricos. Os dados podem servir a qualquer propósito, e podem facilmente substituir dados fornecidos por redes proprietárias. Aqui está a seqüência usual:
#A proprietary data network is developed for a specialized purpose. If it works well, users will adopt it.
#IP service is provided as a convenience, often to get e-mail or chat, usually tunneling through the proprietary data service in some fashion. The tunneling method may be quite inefficient at first, because e-mail and chat require only low bandwidth.
#IP infrastructure is emplaced by gradual investment at the edges of the proprietary data network.
#A substitute for the proprietary service is developed using IP, often by a user.
#The IP substitute spreads over the entire internet, making the IP substitute more valuable (because of [[network effect]]s) than the original proprietary network.
#The proprietary network is deprecated.  Most users begin maintaining a duplicate facility that uses the IP substitute.
#IP packets have very low overheads, less than 1%, and therefore compete very effectively on cost.  An inexpensive transmission medium is developed that can carry IP to most of the users of the proprietary network.
#The proprietary network is removed by most users to cut costs.
#Die-hard users of the proprietary network are therefore forced to adopt.
*


==Implementações==
==Implementações==
Linha 123: Linha 91:
*[[lwIP]]
*[[lwIP]]


Today, most commercial operating systems include and install the TCP/IP stack by default, For most users, there is no need to look for implementations. TCP/IP is included in all commercial Unix and Linux distributions as well as with Mac OS X and Microsoft Windows and Windows Server.
Hoje, a maioria dos sistemas operacionais comerciais incluem e instalam a pilha TCP/IP por padrão. Para a maioria dos usuários, não há nenhuma necessidade de procurar por implementações. O TCP/IP é incluído em todas as versões comerciais do [[Unix]] e [[Linux]] assim como no '''Max OS X''', [[Microsoft Windows]] e '''Windows Server'''.


==Veja também==
==Veja também==
* [[OSI Model]]
* [[Modelo OSI]]
* [[DoD Model]]
* [[Modelo DoD]]
* [[TCP and UDP port numbers]]
* [[números de portas TCP e UDP]]


==Referências==
==Referências==
Linha 148: Linha 116:


{{esboço}}
{{esboço}}


[[ca:TCP/IP]]
[[ca:TCP/IP]]

Edição das 02h11min de 6 de março de 2006

Os protocolos internet formam o grupo de protocolos de comunicação que implementa a pilha de protocolos sobre a qual a internet e a maioria das redes comerciais roda. Eles são algumas vezes chamados de protocolos TCP/IP, já que os dois protocolos mais importantes desse modelo são: o protocolo TCP - Transmission Control Protocol (Protocolo de Controle de Transmissão) - e o IP - Internet Protocol (Protocolo Internet. Esses dois protocolos foram os primeiros a serem definidos.

O modelo TCP/IP - como muitos modelos de protocolos - pode ser visto como um grupo de camadas, em que cada uma resolve um grupo de problemas envolvendo a transmissão de dados e fornece um serviço bem definido para os protocolos da camada acima, que por sua vez se baseia em usar os serviços de algumas camadas abaixo. As camadas mais altas estão logicamente mais perto do usuário, lidam com dados mais abstratos e confiam nos protocolos das camadas mais baixas para traduzir dados em um formato que pode eventualmente ser transmitido fisicamente.

O modelo OSI descreve um grupo fixo de sete camadas que alguns fornecedores preferem e que pode ser comparado a grosso modo com o modelo TCP/IP. Essa comparação pode causar confusão ou trazer detalhes mais internos para o TCP/IP.

Camadas na pilha de protocolos dos protocolos internet

O modelo TCP/IP usa encapsulamento para fornecer abstração de protocolos e serviços para diferentes camadas na pilha. A pilha consiste de quatro camadas:

4 Aplicação
(camadas OSI 5 até 7)
e.g. HTTP, FTP, DNS
(protocolos de routing como BGP and RIP, que por uma variedade de razões roda sobre TCP e UDP respectivamente, podem também serem considerados parte da camada de rede)
3 Transporte
(camadas OSI 4 e 5)
e.g. TCP, UDP, RTP, SCTP
(protocolos como OSPF, que roda sobre IP, pode também ser considerado parte da camada de rede)
2 Rede
(camada OSI 3)
Para TCP/IP o protocolo é IP
(protocolos requeridos como ICMP e IGMP rodam sobre IP, mas podem ainda ser considerados parte da camada de rede; ARP não roda sobre IP)
1 Física
(camadas OSI 1 e 2)
e.g. Ethernet, Wi-Fi, MPLS etc.

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 deteçã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, ou não queiram, 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 UDP fornece integridade de dados (via um checksum) mas não garante entrega garantida; 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

Existe alguma discussão sobre como mapear o modelo TCP/IP dentro do modelo OSI. Uma vez que os modelos TCP/IP e OSI não combinam exatamente, não existe uma resposta correta 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 idle 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) todos na mesma camada pode ser um tanto confuso, mas o modelo OSI não é complexo o suficiente para fazer um trabalho 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 idéia 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.

As camadas

O que segue é uma descrição de cada camada na pilha da suíte IP.

A camada de enlace

A camada de enlace não é realmente parte do modelo TCP/IP, mas é o método usado para passar pacotes da camada de rede de um dispositivo para a camada de internet de outro. Esse processo pode ser controlado tanto em software (device driver) para a place de rede quanto em firmware ou chipsets especializados. Esses irão executar as funções da camada de enlace de dados como adicionar um header de pacote para prepará-lo para transmissão, então de fato transmitir o quadro através da camada física. Do outro lado, a camada de enlace irá receber quadros de dados, retirar os headers adicionados e encaminhar os pacotes recebidos para a camada de internet.

Entretanto, a camada de enlace não é sempre tão simples. Ela pode também ser um VPN (Virtual Private Network, Rede Privada Virtual) ou túnel, onde pacotes da camada de internet, ao invés de serem enviados através de uma interface física, são enviados usando um protocolo de tunneling e outra (ou a mesma) suíte de protocolos. O VPN ou túnel é usualmente estabelecido além do tempo, e tem características especiais que a transmissão direta por interface física não possui (por exemplo, ele pode encriptar os dados que passam através dele). Esse uso recursivo de suíte de protocolos pode ser confuso uma vez que a "camada" de enlace é agora uma rede inteira. Mas é um método elegante para implementar funções freqüentemente complexas. (Embora muito cuidado é necessário para prevenir um pacote que é empacotado e enviado através do túnel de ser re-empacotado e reenviado novamente através do túnel).

A camada de rede

Como definido originalmente, 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 do conceito de internet, adicional funcionalidade foi adicionada para essa camada, especialmente a obtenção de dados da rede origem para a rede destino. Isso geralmente envolve rotear o pacote através de uma rede para outras redes, estas conhecidas como uma internet.

Na suíte de protocolos internet, o IP executa a tarefa básica de levar pacotes de dados da origem para o destino. O IP pode transmitir dados para diferentes protocolos de nível mais alto; esses protocolos são identificados cada um por um único número de protocolo IP. ICMP e IGMP são os protocolos 1 e 2, respectivamente.

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 realmente parte da camada de internet, muito embora eles possam ser vistos como pertencentes à camadas mais altas na pilha.

A camada de transporte

Os protocolos na camada de transporte podem resolver problema como confiabilidade ("o dado alcançou seu destino?") e assegurar que os dados cheguem na ordem correta. Na suíte de protocolos TCP/IP, os protocolos de transporte também determinam para qual aplicação um dado qualquer é destinado.

Os protocolos dinâmicos de routing que tecnicamente cabem nessa camada do TCP/IP (desde que eles rodem sobre o IP) são geralmente considerados parte da camada de rede; um exemplo é o OSPF (protocolo IP número 89).

O TCP (Transmission Control Protocol, Protocolo de Controle de Transmissão) - número 6 do protocolo IP - é um mecanismo de transporte "confiável", orientado à conexão, que fornece um stream de bytes confiável, que garante que os dados cheguem íntegros, não danificados e em ordem. O TCP tenta continuamente medir o quão carregada a rede está e desacelera sua taxa de envio para evitar sobrecarga. Além disso, o TCP irá tentar entregar todos os dados corretamente na seqüência especificada. Essas são as principais diferenças dele para com o UDP, e pode se tornar desvantajoso em streaming em tempo real ou aplicações de routing com altas taxas de perda na camada internet.

O mais novo SCTP (Stream Control Transmission Protocol, Protocolo de Transmissão de Controle de Stream) é também um mecanismo de transporte "confiável". Ele também provê suporte multi-homing, em que o final de uma conexão pode ser representada por múltiplos endereços IP (representando múltimas interfaces físicas), de maneira que, se algum falhar, a conexão não é interrompida. Ele foi desenvolvido inicialmente para aplicações de telefonia (para transportar SS7 sobre IP), mas também pode ser usado para outras aplicações.

O UDP (User Datagram Protocol) - número 17 do protocolo IP - é um protocolo de datagrama sem conexão. Ele é um protocolo de "melhor esforço" ou "não confiável". Não porque ele é particularmente não confiável, mas porque ele não verifica se os pacotes alcançaram seu destino, e não dá qualquer garantia que eles irão chegar na ordem. Se uma aplicação requer estas características, então ela mesma terá que provê-las ou usar o protocolo TCP.

O UDP é tipicamente usado por aplicações como as de mídia de streaming (áudio, vídeo etc) onde a chegada na hora é mais importante do que confiabilidade, ou para aplicações de simples requisição/resposta como pesquisas DNS, onde o overhead de configurar uma conexão confiável é desproporcionalmente largo.

O DCCP está atualmente em desenvolvimento pelo IETF. Ele provê controle de fluxo das semânticas do TCP, enquanto mantém o modelo de serviço de datagramas do UDP visível para o usuário.

Tanto o TCP quanto o UDP são usados para transmitir um número de aplicações de alto nível. As aplicações em qualquer endereço de rede são distingüidas por seus endereços de porta TCP ou UDP. Por convenção, certas portas "bem conhecidas" estão associadas com aplicações específicas.

A camada de aplicação

A camada de aplicação é a camada que a maioria dos programas de rede usam de forma a se comunicarem através de uma rede com outros programas. Processos que rodam nessa camada são específicos da aplicação; o dado é passado do programa de rede, no formato usado internamente por essa aplicação, e é codificado dentro do padrão de um protocolo.

Alguns programas específicos são levados em conta nessa camada. Eles provêm serviços que suportam diretamente aplicações do usuário. Esses programas e seus correspondentes protocolos incluem o HTTP (navegação na Word Wide Web), FTP (transporte de arquivos), SMTP (envio de email), SSH (login remoto seguro), DNS (pesquisas nome <-> IP) e muitos outros.

Uma vez que o dado de uma aplicação foi codificados dentro de um padrão de um protocolo da camada de aplicação ele será passado para a próxima camada da pilha IP.

Na camada de transporte, aplicações irão em sua maioria fazer uso de TCP ou UDP, e aplicações servidoras são freqüentemente associadas com um número de porta. Portas para aplicações servidores são oficialmente alocadas pela IANA (Internet Assigned Numbers Authority) mas desenvolvedores de novos protocolos hoje em dia freqüentemente escolhem os números de portas por eles mesmos. Uma vez que é raro ter mais que alguns poucos programas servidores no mesmo sistema, problemas com conflito de portas são raros. Aplicações também geralmente permitem que o usuário especifique números de portas arbitrários através de parâmetros em tempo de execução.

Aplicações cliente conectando para fora geralmente usam um número de porta randômico determinado pelo sistema operacional. Aplicações que escutam sobre uma porta e então enviam aquela porta para outra cópia da aplicação via um servidor para configurar um link par a par (e.g. transferências de arquivo dcc sobre IRC).

Como IP mata e come redes competitivas

Por um longo período, o IP parece substituir outras redes. Aqui está uma breve explicação. IP transmite dados genéricos. Os dados podem servir a qualquer propósito, e podem facilmente substituir dados fornecidos por redes proprietárias. Aqui está a seqüência usual:

Implementações

Hoje, a maioria dos sistemas operacionais comerciais incluem e instalam a pilha TCP/IP por padrão. Para a maioria dos usuários, não há nenhuma necessidade de procurar por implementações. O TCP/IP é incluído em todas as versões comerciais do Unix e Linux assim como no Max OS X, Microsoft Windows e Windows Server.

Veja também

Referências

  • Internet History -- Pages on Robert Kahn, Vinton Cerf, and TCP/IP (reviewed by Cerf and Kahn).

Links externos

Livros sobre TCP/IP

  • Joseph G. Davies and Thomas F. Lee. Microsoft Windows Server 2003 TCP/IP Protocols and Services. ISBN 0735612919
  • Craig Hunt TCP/IP Network Administration. O'Reilly (1998) ISBN 1565923227
  • W. Richard Stevens. The Protocols (TCP/IP Illustrated, Volume 1). Addison-Wesley Professional; 1st edition (December 31, 1993). ISBN 0201633469
Wiki letter w.svg Este é um esboço. Você pode ajudar a Wikipédia expandindo-o. Editor: considere marcar com um esboço mais específico.

ca:TCP/IP cs:TCP/IP da:TCP/IP de:Internet-Protokoll-Familie en:TCP/IP es:TCP IP eo:TCP-IP fr:TCP/IP it:Suite di protocolli Internet hu:TCPIP ja:TCP/IP lb:Internet-Protokoll-Famill lv:TCP/IP nl:TCP/IP no:TCP/IP pl:TCP-IP ru:TCP/IP sl:TCP/IP sr:TCP/IP sk:Balík internetových protokolov fi:TCP/IP zh:TCP/IP

talvez você goste