Professional Documents
Culture Documents
De Wikiversidade
Ir para: navegao, pesquisa Transporte orientado para conexo: TCP, protocolo de transporte confivel da camada de transporte, orientado para conexo, da Internet.[1] O TCP (Transmission Control Protocol - Protocolo de Controle de Transmisso) um dos protocolos[2], sob os quais assenta o ncleo da Internet nos dias de hoje. A versatilidade e robustez deste protocolo tornou-o adequado para redes globais, j que este verifica se os dados so enviados de forma correta, na sequncia apropriada e sem erros, pela rede.
Tabela de contedo
[esconder]
1 A conexo TCP 2 Estrutura do segmento TCP [3] 3 Estimativa do tempo de viagem de ida e volta e de esgotamento de temporizao o 3.1 Estimativa do tempo de viagem de ida e volta - RTT [6] o 3.2 Estabelecimento e gerenciamento da temporizao de retransmisso 4 Transferncia confivel de dados 5 Controle de fluxo 6 Gerenciamento da conexo TCP 7 Referncias
URG urgncia ACK nmero ack vlido PSH push (envio imediato de dados) RST reset (reincio da conexo) SYN sync (estabelecimento de conexo) FIN finalizar conexo
H tambm a janela de recepo (16 bits) que indica o tamanho da janela para controle de fluxo (figura acima), o checksum (16 bits) que verifica a integridade dos dados de todo o pacote, como um hash; o ponteiro para dados urgentes (16 bits) que indica que determinado dado deve ser entregue no mesmo instante, as opes (quantidade varivel
de bits), que podem alocar mais banda do enlace para a transmisso dentre outras possibilidades, e os dados, cuja quantidade definida no MSS.
A conexo TCP, por ser confivel, exige o estabelecimento de uma conexo, embora no seja necessrio alocar exclusividade de enlace (circuito dedicado[4]). necessrio existir um cliente e um servidor, porm como um protocolo full-duplex, um terminal pode ser simultaneamente servidor e cliente. A confiabilidade da transmisso se deve ao nmero de seqncia e ao nmero de reconhecimento. O primeiro indica qual o primeiro byte do segmento de daos, e o segundo indica o primeiro byte do prximo segmento de dados. Isso permite que os dados sejam agrupados corretamente, mesmo que pacotes tenham sofrido atrasos na transmisso. O nmero de sequncia escolhido aleatoriamente no servidor e no cliente, e so independentes entre si, ou seja, no exigncia que o nmero de sequncia do servidor seja o mesmo do cliente. Mas ento como feita a comunicao? Para isto utilizada a flag ACK. Esta flag faz a sincronizao dos nmeros de sequncia, como mostrado na figura a seguir.
[5]
exemplo, estimar o tempo de viagem de ida e volta da conexo - RTT (a durao dos intervalos de controle deve ser maior do que o RTT, evitando o envio de retransmisses desnecessrias).
Ignora os ACKs duplicados Ignora controle de fluxo e de congestionamento RFC 2581: Trs ACKs duplicados retransmite o segmento que Falta Reconhecimento cumulativo evita a retransmisso do primeiro segmento
Etapa 1: o lado cliente do TCP encapsula e envia ao servidor, em um datagrama IP, um segmento contendo um bit de flag SYN ativado em 1 (requisio de estabelecimento de conexo) e um nmero de sequncia inicial escolhido aleatoriamente pelo prprio cliente. Esse segmento chamado TCP SYN. Etapa 2: o servidor, por sua vez, ao receber datagrama IP, extrai o segmento TCP SYN, aloca buffers e variveis para conexo TCP e envia um segmento de aceitao de conexo, chamado SYNACK, contendo um bit de flag SYN ainda ativado em 1 e um ACK de reconhecimento do nmero de sequncia inicial do cliente, juntamente com a informao de sequncia inicial do servidor. Etapa 3: por fim, o cliente recebe o SYNACK, reserva buffers e variveis para a conexo TCP, enviando um segmento contendo um ACK de reconhecimento do nmero de sequncia inicial do servidor, o prximo nmero de sequncia do cliente e um bit de flag SYN ajustado em zero (conexo j estabelecida).
Pode acontecer, entretanto, situaes em que o segmento TCP SYN recebido pelo hospedeiro apresenta nmero de porta e/ou IP incompatveis com as portas nele existentes. Neste caso, no h o reconhecimento do segmento TCP SYN e, ento, o hospedeiro (servidor) retorna ao cliente um segmento contendo um bit de sinalizao RST, ativado em 1, para reenvio/reinicializao da conexo. Se essas trs etapas forem bem sucedidas, os dados podem ser enviados entre um cliente e um servidor em hospedeiros diferentes. Quando no se deseja continuar enviando pacotes, a conexo TCP pode ser finalizada pelo cliente ou pelo servidor. O encerramento acontece em 4 passos. Em suma, inicialmente o cliente envia, ao servidor, um segmento TCP FIN, com um bit de flag FIN ajustado em 1, requisitando a finalizao da conexo. O servidor recebe e envia, ao cliente, um ACK de reconhecimento (etapa 2). Posteriormente, o servidor envia um segmento FIN, tambm ativado em 1, ao cliente. Quando o cliente o recebe, responde com um ACK de reconhecimento e, ento, a conexo encerrada e os recursos (buffers e variveis) alocados para a conexo TCP so liberados.
Como exemplo de ns que vemos com freqncia conectados uma rede, podemos citar:
Nas prximas partes desse curso veremos em detalhes o que so cada uma destas coisas.
Endereamento: Isso significa alocar um endereo para cada n conectado uma rede. Um exemplo o usado pelas redes de telefonia, onde cada aparelho de telefone possui o seu prprio nmero.
Meio: O ambiente fsico usado para conectar os ns de uma rede. O meio de uma rede pode ser algum tipo de cabo ou atravs de ondas de rdio ou outro tipo de radiao eletromagntica. Protocolo: Um protocolo so algumas regras que os ns devem obedecer para se comunicarem uns com os outros. O que eles fazem criar uma linguagem comum entre diferentes mquinas. De forma geral, ele um conjunto de regras, especificaes e procedimentos que devem governar entidades que se comunicam entre si. Por exemplo, quando ns conversamos com algum, devemos sempre esperar a pessoa terminar de falar para que possa vos dizer algo tambm. No permitido comear falar ao mesmo tempo que outra pessoa. Isso um exemplo de protocolo usado por humanos para que eles possam conversar. Da mesma forma, tambm somos obrigados a seguir protocolos diferentes em festas, ocasies formais ou reunies executivas. Como exemplos de protocolos que regem a comunicao entre computadores, podemos citar o TCP/IP (Transmission Control Protocol/ Internet Protocol') - um protocolo para controle de transmisso e para a internet, o FTP (File Transfer Protocol) - um protocolo para a transmisso de arquivos entre computadores, HTTP (HyperText Transfer Protocol) - protocolo de transmisso de hiper-textos e a ApleTalk conjunto de protocolos de rede usado pela Apple. Protocolos so to importantes que s vezes comum chamarmos uma rede pelo nome de seu protocolo. Roteamento: Rotear significa determinar qual o caminho que um pacote de dados deve tomar ao viajar entre os ns de origem e destino. Em redes em lao completo no qual todas as mquinas esto conectadas entre si, isto uma tarefa fcil. Mas no caso de redes mistas, por exemplo, esta pode ser uma tarefa complicada. Para fazer este servio, costuma-se usar unidades de hardware dedicadas chamadas roteadores.
Rede Local: (LAN - Local Area Network) Qualquer rede com um raio de 10 Km ou menos. Elas so bastante usadas para conectar computadores em uma sala, prdio ou campus universitrio. Rede de Longa Distncia: (WAN - Wide Area Network) Qualquer rede que seja maior do que uma Rede Local descrita acima. Muitas delas so usadas para conectar mquinas entre diferentes cidades, estados ou pases.
Rede Metropolitana: (MAN - Metropolitan Area Network) Uma rede que conecta mquinas ao longo de uma rea metropolitana. por exemplo, considere uma empresa com sedes em vrios pontos ao longo dee uma metrpole cujos computadores estejam em rede.
Rede Pessoal: (PAN - Personal Area Network) Uma rede domstica que liga recursos diversos ao longo de uma residncia. Rede Global: (GAN - Global Area Network) Colees de redes de longa distncia ao longo do globo Rede de Armazenamento de Dados (SAN - Storage Area Network) Redes destinadas exclusivamente a armazenar dados.
Diversas topologias de rede. Outra forma muito usada de se classificar redes pela sua topologia. Ou seja, a forma pela qual os computadores se conectam entre si. De acordo com a topologia, elas podem ser classificadas em:
Rede Ponto-a-Ponto: Neste tipo de rede, cada mquina s tem a capacidade de se comunicar com mquinas adjacentes entre si. Por exemplo, suponha que existem os ns A, B e C. A s pode se comunicar com B, B pode se comunicar com A e C enquanto C s pode se comunicar com B. Nessa rede, se o n A deseja se comunicar com C, a sua mensagem deve obrigatoriamente passar por B. Esta uma rede ponto-a-ponto. No desenho mostrado ao lado, todas as redes so ponto-a-ponto, com exceo da ltima. Existem alguns tipos especiais de redes deste tipo: o Rede em Estrela: Neste tipo de rede, existe um n central que adjacente todos os outros. J os outros ns, no possuem adjacncia entre si, somente com o n central. O dispositivo que costuma ser usado como n central deste tipo de rede o Hub. A terceira rede mostrada no desenho ao lado uma rede deste tipo. o Rede em Lao: Semelhantes s Redem e Estrela, mas nelas no existe um n central. Ele substitudo por um cabeamento dedicado. Um tipo de Rede em Lao a Rede em Anel. Nela, todas as mquinas ligam-se outras duas formando um circuito fechado. As informaes podem ser passadas tanto em sentido horrio, como anti-horrio. Com isso, a rede no destruda mesmo que um cabo seja destrudo. Outro tipo de Rede em Lao o Lao Completo. Nela, todas as mquinas ligam-se entre si. Ela um tipo de rede cara, mas bastante confivel Mesmo que um punhado de cabos sejam destrudos, ela pode continuar funcionando. A primeira e ltima rede mostrada no desenho acima uma Rede em Lao. o Rede em rvore: uma rede na qual os ns esto dispostos de forma hierrquica. Existe um n-raiz que se conecta com ns de segundo nvel. Estes, por sua vez, conectam-se ns de terceiro nvel e assim por diante. Um exemplo a rede do meio da linha de baixo mostrada no desenho acima.
Redes de Difuso: Neste tipo de rede, sempre que uma mquina envia uma mensagem, esta se propaga ao longo da rede de forma que todos os ns escutem a mensagem. Uma vantagem deste tipo de rede que podemos classificar as suas mensagens em trs diferentes tipos: mensagens nicas destinadas um nico n, mltipla para um certo nmero de ns e ampla para todos os ns da rede. Como exemplos deste tipo de rede podemos citar: o Redes em Barramento: Nesta rede, existe um barramento por onde toda a informao passa e toda vez que algum coloca uma informao no barramento, as mquinas conectadas ele recebem a mensagem. Um exemplo a ltima rede mostrada no desenho acima. o 'Redes via Satlite: Neste tipo de rede, existe um satlite capaz de transmitir dados em rbita ao redor da terra. Em uma determinada regio geogrfica, todas as mquinas sintonizadas ele so capazes de receber os dados.
[editar] Topologia
A topologia da rede define o modo como diversos dispositivos computacionais (ns) esto ligados um ao outro. A topologia de rede mais simples a que representa dois ns interligados. Esta a topologia Ponto a Ponto, que pode ser utilizada tambm na conexo entre mais de dois ns. Alm da ligao Ponto a Ponto h outros exemplos de topologias, como:
4. Aplicao FTP, TORRENT, SMTP,POP3,HTTP 3. Transporte TCP,UDP,DCCP 2. Rede 1. Fsica ARP,RARP,IPv4,IPv6 BLUETOOTH,USB,ETHERNET
PROTOCOLO o conjunto de regras sobre o modo como se dar a comunicao entre as partes envolvidas
Protocolo a "lngua" dos computadores, ou seja, uma espcie de idioma que segue normas e padres determidados. atravs dos protocolos que possivel a comunicao entre um ou mais computadores.Os protocolos de rede nasceram da necessidade de conectar equipamentos de fornecedores distintos, rodando sistemas distintos, sem ter que escrever a cada caso programas especficos. Ambos os computadores devem estar configurados com os mesmos parmetros e obedecer aos mesmos padres para que a comunicao possa ser realizada sem erros. Existem diversos tipos de protocolos de rede, variando de acordo com o servio a ser utilizado. De maneira geral h dois tipos de protocolos: Abertos e Especficos. Os protocolos Abertos so os protocolos padres da internet. Eles podem comunicar com outros protocolos que utilizam mesmo padro de protocolo. Um exemplo seria o TCP/IP, pois ele pode comunicar com vrias plataformas como Windows, Linux, Mac e outros. J os protocolos Especficos so feitos para ambiente especficos (da vem o nome), pois ele s se pode comunicar com uma s plataforma padro. Exemplos desse tipo de procolo: IPX/SPX, NETBIOS e outros. So exemplos de protocolos de rede: IP (Internet Protocol), DHCP (Dynamic Host Configuration Protocol), TCP (Transmission Control Protocol), HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol), Telnet (Telnet Remote Protocol), SSH (SSH Remote Protocol), POP3 (Post Office Protocol 3), SMTP (Simple Mail Transfer Protocol), IMAP (Internet Message Access Protocol).
Endereamento: especificao clara do ponto de destino da mensagem Numerao e seqencia: individualizao de cada mensagem, atravs de nmero seqencial Estabelecimento da conexo: estabelecimento de um canal lgico fechado entre fonte e destino Confirmao de recebimento : confirmao do destinatrio, com ou sem erro, aps cada segmento de mensagem; Controle de erro : deteco e correo de erros Retransmisso : repetio da mensagem a cada recepo de mensagem Converso de cdigo : adequao do cdigo s caractersticas do destinatrio Controle de fluxo :manuteno de fluxos compatveis com os recursos disponveis
[editar] Hierarquia
Como j foi visto um protocolo um conjunto de regras sobre o modo como se dar a comunicao entre as partes envolvidas. Com o intuito de reduzir a complexidade do projeto, a maioria das redes foi organizada como uma srie de nveis ou camadas, que so colocadas uma sobre a outra. O nmero, o nome, o contedo e a funo de cada camada difere de uma rede para outra. Em todas as redes, no entanto, o objetivo de cada camada oferecer determinados servios para as camadas superiores. A camada n de uma mquina se comunica com a camada n da outra mquina. Para isso acontecer, ela se baseia em um conjunto de convenes e regras que vo permitir gerenciar esta comunicao na qual foi nomeada de protocolo da camada n, ou, simplesmente, protocolo n.
As entidades que ocupam as mesmas camadas em diferentes mquinas so chamadas de PARES. So os pares que se comunicam utilizando o protocolo. Os dados no so transferidos diretamente entre os pares, pois no existe meio fsico entre eles. Ento cada camada transfere os dados para a camada inferior a ela, at alcanar a ltima camada. Aps a ltima camada est o meio fsico (meio de transmisso) atravs do qual se d a comunicao. Em cada par de camadas adjacentes, h uma INTERFACE (Define as operaes e servios que a camada inferior tem a oferecer para a camada superior a ela). Ao conjunto das camadas compondo uma rede d-se o nome de arquitetura da rede. As especificaes da arquitetura devem conter informaes suficientes para permitir o correto desenvolvimento da rede, tanto do ponto de vista do software quanto do hardware. Por outro lado, os detalhes de implementao dos mecanismos em cada camada, assim como as especificaes detalhadas das interfaces no fazem parte da definio da arquitetura da rede. Resumindo o procolo um conjunto de regras que controlam o formato e o significado das informaes trocadas pelas entidades pares contidas em uma camada,sendo que as entidades utilizam protocolos com a finalidade de implementar suas definies de servios e as entidades tm a liberdade de trocarem os seus protocolos, desde que no alterem o servio visvel para seus usurios.
que uma camada capaz de executar sem se preocupar com a maneira pela qual as operaes sero executadas. Cada servio utilizado por aplicaes diferentes, podendo uma aplicao utilizar vrios servios, como, por exemplo, um browser como o Mozilla Firefox. Este utiliza, por exemplo, HTTP, SHTTP, DNS. Os servios podem ser orientados a conexo ou no. Servios relacionados famlia TCP so orientados a conexo, enquanto servios relacionados ao protocolo UDP so sem conexo.
Servios orientados a conexo: o servio TCP. Antes do envio de dados, um processo conhecido como handshaking cria uma conexo fraca entre os hosts. Basicamente, esse processo prepara o receptor para a o recebimento de pacotes. Esta conexo prvia possibilita controlar se todos os pacotes iro chegar corretamente ao destino, e em caso negativo, solicitar o reenvio dos mesmos (quando o receptor recebe um pacote, ele envia uma mensagem de confirmao ao transmissor. Se a confirmao no chegar, o pacote reenviado), gerando uma transfrncia de dados confivel. Tambm pode-se fazer um controle de fluxo e congestionamento, para casos em que o receptor no suporta a velocidade de recebimento de pacotes, ou quando algum roteador na rede est congestionado ( enviada uma mensagem ao transmissor, reduzindo ou interrompendo a velocidade de envio de pacotes). Algumas aplicaes que usam TCP: HTTP, FTP, Telnet. Servios sem conexo: o servio UDP (Protocolo de Datagrama de Usurio). No h o processo de handshaking. Assim, uma aplicao apenas envia dados para um host, e com isso no h como saber se todos os pacotes chegaram. mais rpido, mesmo por no haver a etapa da handshaking, mas menos confivel, alm de no possuir a possibilidade de controle de fluxo e congestionamento presentes no TCP. Algumas aplicaes que usam o UDP: conferncia de vdeo e telefone por internet.
Existem outros tipos de servios, como o DHCP, que automaticamente determina um endereo IP vlido a cada host conectado Internet e o DNS, que possibilita o que o usurio utilize strings, ao invs de endereos IP para se conectar a outros servidores. O DNS mantm um banco de dados que relaciona cada string a um endereo IP. Obtido em "http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_ %C3%A0s_Redes_de_Computadores/Protocolos_e_servi%C3%A7os_de_rede"
< Introduo s Redes de Computadores Ir para: navegao, pesquisa Para definir os meios fsicos necessrio entender o comportamento dos bits. Um bit viaja a partir de um sistema atravs de uma srie de links e roteadores at atingir o sistema de destino. Nesse caminho, o bit transmitido diversas vezes. O sistema de origem transmite o bit, o primeiro roteador recebe o bit e o transmite e assim por diante. Enquanto viaja da origem para o destino, o bit passa por uma srie de transmissores e receptores. Cada bit enviado pela propagao de ondas eletromagnticas ou pulsos pticos atravs de um meio fsico. Os meios fsicos podem ter formas distintas e no precisam ser do mesmo tipo em todo o caminho. Exemplos de meios fsicos incluem par-tranado, cabo coaxial, cabo de fibra-ptica, espectro de rdio terrestre, e, espectro de rdio por satlite. Os meios fsicos dividem-se em duas categorias: meios encapsulados e no encapsulados. Nos meios encapsulados, as ondas percorrem um material slido. Os exemplos desse tipo de meio so: cabo de fibra-ptica, par-tranado e cabo coaxial. Nos meios no encapsulados, as ondas propagam-se na atmosfera e no espao. Exemplos: LAN wireless e canal digital de satlite. O custo do link fsico relativamente baixo comparado a outros custos da rede. O custo de instalao do link fsico pode ser muito superior ao custo do material. Por essa razo, muitos construtores instalam tipos variados de cabos em todas as salas de um edifcio. Mesmo que, inicialmente, s um meio seja usado, existe uma boa chance de outro meio ser usado no futuro. Dessa forma, economiza-se dinheiro evitando a colocao de fios no futuro.
Tabela de contedo
[esconder]
1 Meios Magnticos 2 Cabo Coaxial 3 Cabo de Par Tranado 4 Fibra ptica o 4.1 Tipos 4.1.1 Multimodo Degrau 4.1.2 Multimodo Refrao Gradual 4.1.3 Monomodo 5 Transmisso via rdio 6 Ondas infravermelhas 7 Outros meios
existe a necessidade de transmitir dados a grandes distncias. Outra caracterstica interessante destes tipos de cabos que eles no sofrem interferncia de campos eletromagnticos. So cabos com custo mais alto, e com certa dificuldade de manuseio. Entretanto, seu uso vem se disseminando cada vez mais, com a necessidade cada vez maior de velocidades mais altas. Seu custo tambm diminui dia aps dia, e a matriaprima para a construo do cabo abundante. Os cabos de fibra ptica so compostos por dois fios(um para a recepo e outro para a transmissso) formados por minsculos cilindros de vidro. Possui duas camadas: Ncleo (vtreo) e Revestimento (Silicone).
[editar] Tipos
[editar] Monomodo
Com um dimetro de ncleo diminuto, o ndice ncleo/revestimento permite que apenas um modo seja propagado atravs da fibra, o que diminui a disperso do pulso luminoso. A emisso de sinais em fibras do tipo monomodo s possvel com a utilizao de laser. Contudo, o equipamento como um todo mais caro que o dos sistemas multimodo. Esse tipo de fibra possui grande emprego em sistemas telefnicos. Banda: at 100 GHz.km Ncleo: 8 micrometros (m) Atenuao: entre 0,2 dB/km e 0,7 dB/km
Bluetooth
As redes bluetooth (chamadas de rede PicoNet) tem suas vantagens e desvantagens. Dentre suas vantagens, est o preo bem acessvel dos adaptadores bluetooth, baixo consumo de energia, e a possiblidade de usar esses mesmos adaptadores para fazer a conexo com diversos gadgtes do dia-a-dia. Como desvantagem, a velocidade da conexo bluetooth raramente passa de 700kb/s, o alcance do no mximo 10 metros, e s podem ser ligados 8 acessos simultneos.
Pensando na enorme rede eltrica que j existe em todo o mundo, foi desenvolvida essa tecnologia para a transferncia de dados e vez pela rede eltrica. Outras vantagem a fcil instalao desse tipo de rede. Agora, como desvantagens, temos a quantidade de interferncia que ainda existe nesse meio, e o imenso compartilhamento dele.
As portas Universal Serial Bus mais conhecidas como USB, esto presentes em todos os computadores atuais, alm de ser a interface mais utilizada pelos outros perifricos. Para montar uma rede via USB, necessrio um cabo especial, que possui um hardware controlador de rede, que ser o responsvel pela criao de uma rede virtual entre os computadores. Apesar de ter uma alta taxa de transferncia, as redes USB so limitadas a conectar apenas duas mquinas. Obtido em "http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_ %C3%A0s_Redes_de_Computadores/Meios_f%C3%ADsicos_de_transmiss %C3%A3o"
< Introduo s Redes de Computadores Ir para: navegao, pesquisa Comutao segundo o dicionrio Michaelis [1] significa permutao, substituio. Em computao, a Comutao de circuitos[1] e pacotes [2] utilizada, por exemplo, em sistemas de comunicao onde o trfego constante. Uma imagem sobre comutao pode ser encontrada neste link. Autor: David Sudjiman Website: davidsudjiman.info.
Tabela de contedo
[esconder]
1 Histrico 2 Comutao por Circuitos o 2.1 Circuitos fsicos o 2.2 FDM - Frequency Division Multiplexing o 2.3 TDM - Time Division Multiplexing o 2.4 STDM - Statistical Time Division Multiplexing 3 Comutao por Pacotes o 3.1 Cut-through o 3.2 Store-and-forward o 3.3 Fragment-free o 3.4 Circuitos Virtuais [8] 3.4.1 SVC Switched Virtual Circuit[9] 3.4.2 PVC Permanent Virtual Circuit[10] o 3.5 Datagramas o 3.6 Vantagens o 3.7 Desvantagens 4 Comutao de circuitos vs. Comutao de pacotes [12] 5 Referncias
[editar] Histrico
Inicialmente as redes comutadas surgiram por uma necessidade da rea de telecomunicaes. Com o surgimento e ampliao das redes telefnicas, houve a necessidade de interligar os pontos. A princpio eram interligadas uma a uma, mas esta opo gradativamente tornou-se invivel devido grande quantidade de fios exigida. Iniciou-se ento a comutao manual onde cada telefone era interligado a uma central com um telefonista e este era encarregado de transferir a ligao. Porm, era tambm inconveniente pois alm de ter a demora natural do operador, ainda perdia-se a privacidade, uma vez que o operador poderia ouvir toda a conversa. Observando a necessidade de um mecanismo mais eficiente, em 1891 foi criada a primeira central telefnica automaticamente comutada. Para seu funcionamento, foi necessria a adaptao da aparelhagem. Os telefones passaram a ter o sinal decdico, que representavam os nmeros de 0 a 9. A interpretao dos sinais pelos comutadores gerava uma cascata interligada destes at o estabelecimento da ligao. Entre 1970 e 1980 houve o desenvolvimento e implantao de centrais telefnicas eletrnicas, ou seja, os comutadores operados eletromecanicamente foram substitudos por sistemas digitais operados computacionalmente, tudo graas s tecnologias de digitalizao da voz. A expanso dos conceitos para transmisso de dados foi quase imediata, gerando os paradigmas de comunicao comutada existentes.
Caso uma destas etapas tenha problemas, h quebra da conexo. Um exemplo claro uma ligao telefnica, onde h a necessidade de um canal dedicado em ambos terminais. Outro exemplo a internet discada.
As vantagens dos circuitos fsicos so a exclusividade do canal que agiliza a velocidade de troca de informaes e consequentemente o tempo. A contrapartida um mtodo oneroso, que exige manuteno individual constante, com uso excessivo de fiao. interessante seu uso somente para pequenas aplicaes em distncias curtas, pois sua expanso trabalhosa.
A diviso em canais de frequencia cria circuitos virtuais com banda mais estreita que o canal do comutador com a rede, de forma que a soma de todos circuitos somados so iguais ou inferiores banda do comutador. A grande vantagem o uso de menos fiao para promoo do servio, porm o problema a rpida saturao dos canais. Conforme a figura ilustra (autor David Sudjiman), os canais necessitam uma banda de comunicao e uma faixa de segurana. Outro problema est na expanso do sistema: ser necessrio reconfigurar todos os terminais para as novas larguras de banda. Em geral, utiliza-se FDM em sinais analgicos.
A diviso de canais no tempo gera circuitos virtuais entre os terminais e o roteador. Este possui um ciclo de tempo em que deve se comunicar com todas estaes. Para tanto, o tempo alocado igualmente para cada terminal comunicar-se. Este mtodo exclui parcialmente o problema da expansibilidade, j que no exige reconfigurao, apenas disponibilidade de recursos. A disputa ocorre somente no momento da conexo, aps estabelecida no h problemas. O grande problema no
entanto que, conforme a rede aumenta, os recursos so alocados e o tempo de resposta aumenta aritmeticamente. Em geral, utiliza-se TDM em sinais digitais.
O mtodo STDM[3] funciona identicamente o mtodo TDM, porm soluciona parcialmente o problema do tempo de resposta. Ele utiliza mtodos estatsticos e diferencia as estaes ativas das ociosas. O segundo passo alocar recursos somente s estaes ativas, e escutar as ociosas, de forma que no seja perdida a conexo com as mesmas. No entanto, quando todas as estaes esto ativas o tempo de resposta se mantm igual ao TDM. Este procedimento foi denominado Fast Connect Circuit Switching. Um problema do STDM a perda de conexo. Caso uma estao ociosa fique ativa e o roteador no possua recursos livres, a conexo perdida.
[editar] Cut-through
Este comutador recebe e armazena apenas parte do cabealho (6 primeiros bytes), para saber qual receptor do pacote, e j encaminha os dados diretamente. A princpio, h um enorme ganho em velocidade. No entanto, por no haver nenhuma verificao de erros (neste caso a verificao ocorre nos terminais), frequentemente necessrio o reenvio do pacote. Na prtica muito pouco utilizado sozinho.
[editar] Store-and-forward
O comutador recebe e armazena os dados at possuir completamente o pacote em um buffer de entrada. Aps, efetua verificao por erros cclicos e outros, passa o pacote para o buffer de sada e retransmite o pacote para o outro comutador ou o terminal. Caso ele encontre algum erro, descarta o pacote. Este tipo de comutador mais robusto e eficiente, porm devido ao grande nmero de requisies geralmente ocorrem muitos choques de pacotes a atrasos. A implementao mista do store-and-forward e do cut-through a configurao mais utilizada.
[editar] Fragment-free
O funcionamento deste comutador muito semelhante ao cut-through, porm ele armazena os 64 primeiros bytes antes de enviar. Esta implementao baseada em observaes estatsticas: a grande maioria dos erros, bem como todos os choques de pacotes, ocorrem nos primeiros 64 bytes.
O deslocamento dos pacotes n a n (e no fim a fim como na por circuito), sendo que cada passagem para o prximo n denominada hop. A cada hop o terminal ou comutador transmite apenas um pacote e aguarda para transmitir o restante. H basicamente duas implementaes: circuitos virtuais e datagramas.
[editar] Datagramas
A implementao por datagramas permite aos pacotes serem enviados por caminhos diferentes. A cada pacote determinada uma rota individual, com base na tabela de roteamento presente em cada comutador e no endereo de destino. No garantida a chegada dos pacotes em ordem, sendo necessrio a reorganizao aps a chegada. A transmisso dos dados inicia-se imediatamente aps hop, e devido ao fato de cada pacote possuir um caminho distinto os roteadores [11](comutadores) ficam menos sobrecarregados, alm de prevenir a perda de conexo. O funcionamento semelhante a uma viagem, sabendo o destino e partindo do mesmo local muitos carros podem fazer diversas rotas e chegarem, sem garantias de ordem de chegada.
[editar] Vantagens
Melhor uso do meio de transmisso Melhor eficincia de linha Melhora a confiabiliadde da transmisso de dados
Pode no haver tempos de estabelecimento e desconexo de circuito(datagramas) Baixo tempo de transmisso desde a origem ao destino Os erros no precisam chegar no terminal para serem recuperados Possibilidade de armazenar pacotes (transmisso e recepo assncronos) Alterao de encaminhamento em caso de congestionamento Possibilidade de aceitar pacotes em situaes de trafego intenso, com posterior envio
[editar] Desvantagens
Disputa por banda n a n Congestionamento excessivo (choque de pacotes e atraso) Sem garantia de banda Tempos de atraso entre origem e destino variveis no tempo Possibilidade de chegada de pacotes ao destino por ordem diferente da de emisso (datagramas)
transparente sendo que os parmetros bsicos, tais como taxa de bits, formato e mtodo de enquadramento, so determinados pela concessionria de comunicaes. No sistema como um todo, a comutao de pacotes mais eficiente que a comutao de circuitos. Aps estas comparaes, podemos chegar a seguinte concluso: de uma lado temos um servio garantido, porm com desperdcio de recursos (comutao de circuitos); de outro, temos servio no garantido, porm com velocidade maior e sem desperdcio de recursos (comutao de pacotes).
< Introduo s Redes de Computadores Ir para: navegao, pesquisa Segundo Kurose, "a Internet um sistema extremamente complicado e que possui muitos componentes."[1]. Para que um sistema to complexo possa permitir a comunicao de usurios, independente da plataforma de Software utilizada, ou meio fsico de transmisso, ou mesmo de hardware usado, foi necessrio criar padres e regras. Com isso, surgiram os protocolos de rede. Segundo definio da CISCO, "um protocolo uma descrio formal de um conjunto de regras e convenes que governam a maneira de comunicao entre os dispositivos em uma rede."[2]
Tabela de contedo
[esconder]
1 Protocolos e Camadas 2 Modelos OSI e TCP/IP 3 TCP/IP o 3.1 Aplicao o 3.2 Transporte o 3.3 Inter-Redes o 3.4 Host/Rede o 3.5 Enlace de Dados 3.5.1 Endereo MAC (MAC Address) o 3.6 Fsica 4 Referncias
precisem saber o funcionamento de uma camada inferior, apenas conhecer os seus servios. Na pilha TCP/IP, o TCP o principal protocolo da camada de transporte, enquanto que o IP o responsvel pela camada de redes. Um exemplo tpico da relao entre esses protocolos a comunicao entre duas pessoas. Uma pessoa pensa em algo para falar e "processa" o que quer dizer. O cerbro ordena a movimentao das cordas vocais, e depois da boca. O ar o responsvel por enviar a mensagem at os ouvidos de outra pessoa. A mensagem ento levada ao crebro, processada, e essa segunda pessoa capaz de compreender o que foi dito pela primeira. Para o outro responder, feito o mesmo processo realizado pela primeira pessoa. As regras para redes, ou protocolos, so criadas e mantidas por diferentes organizaes e comits, como: Institute of Electrical and Electronic Engineers (IEEE), American National Standards Institute (ANSI), Telecommunications Industry Association (TIA), Electronic Industries Alliance (EIA) e International Telecommunications Union (ITU), anteriormente conhecida como Comit Consultatif International Tlphonique et Tlgraphique (CCITT).
[editar] TCP/IP
A pilha TCP/IP formada por quatro camadas. Estas camadas, juntas, formam o modelo TCP/IP. Este modelo apresenta uma soluo prtica ao modelo OSI que nunca chegou a ser implementado. As camadas que formam o TCP/IP so:
[editar] Aplicao
Na camada superior, a Aplicao, funcionam os servios que so diretamente fornecidos ao usurio da Internet. Nesta camada funcionam protocolos como HTTP, DNS, DHCP, MSN Messenger e outros. implementada simplesmente por software. Sua principal funcionalidade padronizar a forma com que os programas consigam conversar entre si, definindo regras que devem ser obedecidas por todos os softwares que implementem tal servio.
[editar] Transporte
A camada seguinte responsvel por criar uma comunicao fim-a-fim, ou seja, ela faz uma conexo virtual entre a origem e o destino. Os principais protocolos dessa camada so o TCP (Transmission Control Protocol - Protocolo de Controle de Transmisso) e o UDP (User Datagram Protocol - protocolo de datagramas do usurio). O TCP (descrito na RFC 793) prov uma transmisso confivel, garantindo que o que foi mandado chegue ao destino, como o uso de pacotes ACK(confirmao) e janelamento. O TCP garante que os dados so entregues livres de erro, em seqncia e sem perdas ou duplicao. O lema do TCP "transmitir com segurana". Portanto, esse protocolo mais usado em aplicaes em que necessria a garantia de entrega dos pacotes de forma ordenada e sem erros, como acessos a pginas WEB, por exemplo. O UDP (descrito na RFC 768) corresponde a um protocolo no orientado a conexo, sem confiabilidade, j que no h garantia de envio/ recebimento de pacotes, quer dizer,
o UDP no implementa nenhum mecanismo de controle de congestionamento, de fluxo ou de erros. Geralmente utilizado por aplicaes que necessitam de velocidade (o UDP um protocolo bastante leve) e dispensam a confirmao de que as informaes foram recebidas (como videoconferncias). Essa camada trabalha com endereamento baseado em portas. Cada servio fornecido pela camada de aplicao possui um endereo de porta, e a camada de transporte faz a coneco entre porta de origem e porta de destino. Segundo Tanenbaum: "A Camada de Transporte no simplesmente outra camada. Ela o ncleo de toda hierarquia de protocolos...Sem a camada de transporte, todo o conceito de protocolos em camada faria pouco sentido."(Andrew S. Tanenbaum, Redes de Computadores). Nessa camada, os dados vindos da camada de Aplicao so agrupados em segmentos.
A figura acima mostra as partes do cabealho TCP. Esta exibio apenas uma representao esquemtica. Na analogia com a realidade, deve-se considerar uma disposio horizontal, com a segunda linha aps a primeira e, assim sucessivamente, at a ltima. Source port / Destination port: parte que identifica as portas das camadas de aplicao da origem e do destino. Sequence number: normalmente especifica o nmero assinalado para o primeiro byte de dados na mensagem corrente. Na fase de estabelecimento de uma conexo, pode ser usado como uma identificao da transmisso.
Acknowledgment number: contm o nmero seqencial do prximo byte de dados que o dispositivo de origem espera receber. Data offset: o nmero de palavras de 32 bits do cabealho TCP. Reserved: reservado para uso futuro. Flags: usado para uma variedade de informaes de controle, como SYN e ACK para estabelecer conexo e FIN para terminar. Window: especifica o tamanho da parte de memria (buffer) disponvel para os dados a receber. Checksum: verificao da integridade do cabealho. Urgent pointer: aponta para o primeiro byte urgente de dados no pacote. Options: especifica vrias opes do TCP. Data: contm cabealho e dados da camada superior, isto , a de aplicao. O seu comprimento varivel, podendo ser bem mais que os 32 bits indicados na tabela.
[editar] Inter-Redes
A camada de Redes est relacionada com o transporte dos pacotes da origem at o destino. Quando se fala nisso, se fala em roteadores, que so os responsveis por esse trabalho. Eles devem conhecer a localizao de cada endereo na rede e em redes distantes. Os protocolos dessa camada devem garantir que pacotes possam ser roteados pela rede, ou seja, protocolos que contenham endereamento de origem e destino (IP, IPX/SPX, etc.) e protocolos que conheam a rede e os respectivos endereos nela (RIP, OSPF, EIGRP, IS-IS, etc.), alm de utilizarem algoritmos de roteamento para determinar o caminho de menor custo. O principal protocolo dessa camada o IP (Internet Protocol). Nessa camada, os segmentos da camada superior (transporte) so agrupados em datagramas.gfgdfg
[editar] Host/Rede
O modelo de referncia TCP/IP no define muito bem esse protocolo, somente deve ser garantido que os pacotes IP trafeguem de algum modo, independentemente do protocolo e do meio fsico, at o destino. Por isso, para explicar essa parte, costuma-se usar o modelo hbrido de referncia, que composto pelas camadas: Aplicao, Transporte, Rede, Enlace de Dados e Fsica.
trata as topologias de rede e engloba dispositivos como Switch, placas de rede, interfaces, etc. Os pacotes de dados, nessa camada, so denominados quadros. Exemplos de protocolos da camada de enlace so o Ethernet e o PPP, e nessa camada onde so adicionados cabealhos e trailers MAC. Isso permite que seja feita a anlise do MAC Address em um dado aplicativo. Uma breve descrio a respeito do MAC Address feita abaixo.
[editar] Fsica
Em uma rede, uma informao controlada, manipulada e processada por um agente especfico, e sinais so a materializao dessas informaes. O meio onde esses sinais se propagam pode ser descrito pela camada Fsica. Resumidamente, essa camada inclui o elemento condutor e os parmentos que definem a transmisso. Muitas vezes chamada de PHY, essa a camada que conecta um dispositivo de link ao meio de transmisso, onde os dados realmente trafegam. A camada fsica trata da distncia mxima dos cabos (por exemplo, no caso do UTP onde so 100m), de conectores fsicos (tipo BNC do coaxial ou RJ45 do UTP), dos pulsos eltricos (no caso de cabo metlico) ou pulsos de luz (no caso da fibra tica). Na transmio de qualquer tipo de sinal, pode-se usar cabos par-tranado, cabos coaxiais, fibras-pticas ou at mesmo o ar (wireless). O papel dessa camada, portanto, apenas permitir que os dados saiam do transmissor e cheguem ao receptor, no provendo nenhum servio de segurana, nem integridade.
[editar]
De Wikiversidade
< Introduo s Redes de Computadores Ir para: navegao, pesquisa A abordagem histrica sempre vlida, mesmo quando se trata de tecnologia, que nos termos atuais, se moderniza e evolui em ritmo frentico. Devemos recorrer histria para resgatar as motivaes, o contexto histrico e a evoluo por trs de cada inveno. Portanto, no podemos ignorar a histria daquilo que se tornou um componente central da infra-estrutura mundial de telecomunicaes [1], a Internet. interessante notar que uma srie de pesquisas e motivaes nasciam na dcada de 60, e que tinham em comum a idealizao de uma grande rede de comunicao: a necessidade da descentralizao geogrfica da informao durante a Guerra Fria, as primeiras pesquisas sobre comutao de pacotes e a idealizao de estudiosos (J.C.R. Licklider, do MIT) de construir uma grande rede de onde qualquer pessoa pudesse acessar arquivos e programas, so exemplos das motivaes que surguiram naquela dcada. Foram nos anos 60 que surgiram os primeiros estudos sobre comutao de pacotes, com a inteno de criar uma forma de comunicao mais eficiente e robusta que a comutao de circuitos. Neste perodo temos 3 institutos que se destacam em suas contribuies (pesquisas realizadas em paralelo, sem conhecimento mtuo). Seriam estes o MIT, Rand Institute e o National Physical Laboratory. Muito do que foi pesquisado teve o propsito de atender a necessidades militares, pois o contexto poltico do mundo era a Guerra Fria. Mas pesquisadores, como J.C.R. Licklider do MIT, em 1962, j discutia o conceito de Rede Galtica (Galactic Network), e j idealizava um conceito de redes de computadores que basicamente o modelo de internet que temos hoje. O primeiro livro sobre a teoria da comutao de pacotes foi lanando em 1964, por Leonard Kleinrock. Em 1965, depois que Lawrence G. Roberts, trabalhando com Thomas Merril, colocaram em funcionamento a primeira (pequena) rede WAN usando a rede telefnica, concluiu-se que a comutao por circuito era ineficiente para este propsito, confirmando definitivamente, que a soluo estava na comutao por pacotes. Em 1968 criado o primeiro comutador de pacotes, chamado Interface Message Processors (IMPs), para compor a arquitetura da ARPANet. Em 1969, trs IMPs so instalados na universidade de Stanford, Santa Brbara e Utah, configurando assim, uma rede com 4 ns. Em 1972 a ARPANet j contava com 15 ns. Neste mesmo ano o primeiro protocolo tipo host-to-host foi criado, e a primeira aplicao de e-mail foi apresentada. A dcada seguinte, 70, foi a responsvel pelo desenvolvimento do TCP, inicialmente especificado por Vint Cerf, em 1974. O objetivo era obter um protocolo que transmitisse de forma eficiente e confivel ,pacotes em redes de longa distncia. Posteriormente, Robert Kahn definiu algumas regras que norteariam o desenvolvimento do novo protocolo, como por exemplo: retransmisso dos pacotes em caso de perda, cada rede distinta se conecta internet sem depender da sua arquitetura, caixas-pretas (posteriormente chamados de gateways e roteadores) fariam a conexo entre as redes
sem reter informao sobre os pacotes e no haveria um controle global no nvel de operao. Os anos 80 marcam a proliferao das redes conectadas Internet e finalmente, com a criao da Web , e dos browsers com interface grfica na dcada de 90, temos a incluso do usurio domstico na rede, e o incio do fenmeno comercial e cultural que se tornou a Internet.
< Introduo s Redes de Computadores Ir para: navegao, pesquisa Em um modelo de comunicao, como o TCP/IP, as camadas mais inferiores tm a funo de transmitir os dados enviados pela camada de aplicao de maneira confivel, mas no fornecem servios diretos aos usurios. J a camada de aplicao, fornece diretamente estes servios, sendo assim, a camada de aplicao a razo de ser de uma rede de computadores[1]. No modelo TCP/IP no h as camadas de seo e apresentao, que na maioria das aplicaes so pouco usadas. Essas duas camadas esto incluidas na camada de aplicao.
Tabela de contedo
[esconder]
1 Arquiteturas de aplicao o 1.1 Cliente e Servidor o 1.2 Peer-to-Peer o 1.3 Hbrida 2 A Comunicao entre os Processos 3 Protocolos de Camada de Aplicao 4 O protocolo de Transporte para uma Aplicao 5 Referncias
solicita um arquivo de outra mquina, denominado cliente, e o outro que fornece o servidor.
[editar] Peer-to-Peer
A arquitetura P2P (Peer-to-Peer) consiste em uma comunicao direta entre os clientes, no existe nenhuma diviso fixa entre cliente e servidor. Cada par (peer) ativo requisita e fornece dados a rede, desta forma no existe a dependncia do servidor, isso aumenta significativamente a largura de banda e a reduo de recursos. Esse tipo de arquitetura utilizado principalmente por aplicaes de compartilhamento de contedo, como arquivos contendo udio, vdeo, dados ou qualquer coisa em formato digital. Outras aplicaes orientadas a comunicaes de dados, como a telefonia digital, videotelefonia e rdio pela internet tambm utilizam esta arquitetura. Como exemplo podemos citar o protocolo BitTorrent que utiliza a arquitetura peer-to-peer para compartilhamento de grandes quantidades de dados. Neste exemplo um cliente capaz de preparar e transmitir qualquer tipo de ficheiro de dados atravs de uma rede, utilizando o protocolo BitTorrent. Um peer (par) qualquer computador que esteja executando uma instncia de um cliente. Para compartilhar um arquivo ou grupo de arquivos, um n primeiro cria um pequeno arquivo chamado "torrent" (por exemplo, Meuarquivo.torrent). Este arquivo contm metadados sobre os arquivos a serem compartilhados e sobre o tracker, que o computador que coordena a distribuio dos arquivos. As pessoas que querem fazer o download do arquivo devem primeiro obter o arquivo torrent, e depois se conectar ao tracker, que lhes diz a partir de quais outros pares que se pode baixar os pedaos do arquivo.
[editar] Hbrida
Com uma pesquisa realizada pela empresa Xerox, foi detectado que pelo menos 70% dos usurios de P2P no compartilhavam arquivo, enquanto apenas 1% compartilhavam 50% destes, ou seja, a teoria que se tinha de diviso de trabalho pelos clientes, no
valia na prtica. Para isso ento, buscou-se uma soluo, e esta soluo, representou a utilizao da arquitetura do tipo hbrida. Uma hbrida, mescla das outras duas: cliente-servidor/P2P. Esta arquitetura utiliza, por exemplo, para transferncia de arquivos o P2P e a arquitetura cliente/servidor para pesquisar quais peers contm o arquivo desejado. Uma aplicao muito utilizada neste tipo de arquitetura a de mensagem instantnea. O Windows Live Messenger e o aMSN so bons exemplos, onde usurios podem bater papo online instantaneamente em tempo real. A comunicao desta aplicao tipicamente P2P, no entanto, para iniciar uma comunicao, um usurio registra-se em um servidor, e verifica quem da sua lista de contatos tambm est registrado, para a partir de ento comear uma comunicao. Essas aplicaes tambm disponibilizam transferncia de arquivos, suporte a grupos, emoticons, histrico de chat, suporte a conferncia, suporte a Proxy, e outras ferramentas.
pedidos ao destinatrio, que recebe e gera as suas mensagens para responder (ou no) a solicitao. Por exemplo, numa comunicao Web, o cliente solicita uma pgina da Internet, atravs de um determinado tipo de mensagem (no caso, uma requisio HTTP). O servidor recebe a requisio, e envia uma mensagem com a pgina para o cliente (atravs de uma resposta HTTP). Porm, se ocorre um erro, o servidor envia mensagens dizendo ao cliente que ouve algum erro. Geralmente, a comunicao consiste em pares de processos, onde um processo em cada lado envia mensagens para o outro. Isso ocorre na rede atravs dos sockets, que so os "porta-vozes" de cada host para uma determinada aplicao. Para que haja essa comunicao, necessrio que os hosts se identifiquem. Para isso, usam o endereo IP. Porm, necessrio tambm identificar qual processo naquela mquina ir levar as mensagens aplicao, e essa identificao chamada de nmero (ou endereo) de porta.
camada de transporte tem a responsabilidade de levar as mensagens pela rede. A internet oferece dois protocolos para a camada de transporte, o TCP (Transmission Control Protocol) e o UDP (User Datagram Protocol). Para efetuar uma boa escolha, o desenvolvedor da aplicao deve fazer uma escolha atentando-se a necessidade de sua aplicao. Com relao ao transporte, podemos citar, por exemplo, a necessidade de transporte sem perdas, a necessidade de largura de banda na comunicao, a temporizao, no que se refere a aplicaes interativas em tempo real, a necessidade de mecanismos de controle de congestionamento e controle de fluxo (ou seja, compatibilidade de velocidades do remetente e do receptor), entre outras. O protocolo TCP oferece um servio confivel de transferncia de dados, ou seja, ele garante a entrega do dados do socket emissor ao socket receptor, na ordem e sem perdas, ou seja, ao iniciar a comunicao entre dois hosts com esse protocolo, feito uma "conexo virtual" entre as portas dos hosts. O TCP utiliza o three-way-handshake para iniciar a comunicao. Portanto, aplicaes que envolvem transferncia de arquivos, como correio eletrnico, aplicaes financeiras, visualizador de pginas da Web (browsers) e ate mesmo conexes remotas a computadores e mensagens instantneas, que necessitam de confiabilidade na entrega dos dados, ou seja, que no haja perdas, utilizam o protocolo TCP. O TCP tambm oferece um servio orientado para conexo, ou seja, ele faz com que o cliente e o servidor troquem mensagens sobre informaes de controle da camada de transporte, antes da transferncia de dados propriamente dita, e isso garante uma transferncia orientada para conexo. O protocolo UDP oferece um transporte simples e menos confivel, pois no orientado para conexo, ou seja, no existem procedimentos de verificao de envio e recebimento de dados. No entanto, pode haver checagem de integridade e se algum pacote no for recebido, a aplicao do host de destino pode no fazer uma nova solicitao. Essa caracterstica de "bombear" os dados para o destino velocidade que quiser, faz do protocolo UDP mais rpido e ideal para certos tipos de aplicaes. Existem aplicaes que prefervel entregar os dados o mais rapidamente possvel, mesmo que algumas informaes se percam no caminho. o caso, por exemplo, das transmisses de vdeo pela internet, onde a perda de um pacote de dados no interromper a transmisso. Por outro lado, se os pacotes no chegarem ou demorarem a chegar, haver congelamentos na imagem, causando irritao ao usurio. O mesmo acontece com aplicaes de videoconferncia, jogos em redes e telefonia pela internet. Nem o TCP, nem o UDP oferecem garantia quanto a atrasos, ou seja, o TCP pode at garantir que os dados cheguem, porm no garante um tempo mnimo para que isso ocorra. O UDP tambm: os dados podem ser aceitos mais rpido que TCP, porm atrasos na rede podem tornar o servio intil.
Tabela de contedo
[esconder]
1 Protocolo HTTP 2 Caractersticas do Protocolo HTTP 3 Passos para uma comunicao HTTP 4 Conexes Persistentes e No Persistentes o 4.1 Conexes No Persistentes o 4.2 Conexes Persistentes 5 Formato da Mensagem HTTP o 5.1 Requisio o 5.2 Resposta 6 Cache WEB ou Servidores Proxy 7 Cookies o 7.1 Principais objetivos o 7.2 Funcionamento dos Cookies o 7.3 Parmetros dos Cookies
o
proporcionar a transferncia de hipertexto. Este protocolo usado desde 1990, atualmente est na verso 1.1.
um protocolo de camada de aplicao da WEB implementado em dois programas: Cliente e Servidor O HTTP quem define a estrutura da mensagem que o cliente vai trocar com o servidor e utiliza TCP como seu protocolo de transporte Protocolo sem estado. O que significa que ele no mantm memria sobre suas aes. Ou seja se um cliente fizer uma requisio identica a uma anterior a qualquer momento, o HTTP no sabe informar sobre esse histrico.
ser completamente recebidas pelo cliente atavs desta mesma conexo TCP. Existem duas verses de conexes persistentes: sem paralelismo e com paralelismo. Na primeira, uma nova requisio s feita aps a resposta da anterior, portanto, requer um RTT para cada objeto e pode permanecer ociosa aguardando outra requisio. Naquelas com paralelismo, o cliente emite requisies assim que encontra referncias, ou seja, no aguarda respostas das requisioes anteriores. Nesse caso, necessita apenas um RTT para todos os objetos e fica ociosa uma frao menor de tempo.
[editar] Requisio
Uma mensagem de requisio formada por uma linha de requisio, as linhas de cabealho e o corpo da mensagem. A linha de requisio formada pelo mtodo, a URL e a verso http, todos separados por um espao. O mtodo o tipo de ao que a mensagem requer. Exemplos de mtodos que so muito usados em mensagens http so GET, POST e HEAD. A URL o objeto sobre o qual a mensagem quer realizar a ao(mtodo) requisitada. E a verso http se refere verso requisitada pela mensagem. As linhas de cabealho devem conter detalhes sobre a requisio para o servidor. Podemos encaixar o cabealho das mensagens de requisio em trs tipos.
Gerais: contm informaes referentes principalmente prpria mensagem, e so usadas para controlar seu processamento e prover o receptor com informaes extras. Requisio: fornecem para o servidor mais informaes sobre a natureza da requisio do cliente, e do ao cliente mais controle sobre como a requisio gerenciada. Podem tambm contar quais formatos ou cdigos o cliente consegue processar. Entidade: descrevem a entidade contida no corpo da mensagem, se existir alguma.
Normalmente a mensagem de requisio no ir possuir cabealhos de entidade, pois dificilmente uma mensagem de requisio trar consigo um corpo de mensagem. No corpo de mensagem, quando o mesmo existir numa mensagem de requisio, haver uma entidade, que pode ser um arquivo de msica, uma imagem, uma pgina html, etc.
[editar] Resposta
Uma mensagem de resposta formada por uma linha de estado, as linhas de cabealho e o corpo da mensagem. Na linha de estado, teremos a verso http, o cdigo da resposta, e uma mensagem associada ao cdigo. A verso http se refere verso da mensagem de resposta. O
cdigo da resposta e a mensagem associada a ele traro a informao sobre os resultados do processamento da requisio do cliente. O cdigo de resposta um nmero de trs dgitos que indica o resultado formal que o servidor est comunicando ao cliente. J a mensagem associada opcional, e um texto descritivo que pode ser mostrado para o usurio humano do cliente http, que poder ento saber o que o servidor respondeu. Exemplos de Cdigos de estado:
200 OK: Requisio bem sucedida. 301 Moved Permanently: o objeto requisitado foi movido, e a resposta retornar uma nova URL, com a localizao do objeto. 400 Bad Request: o servidor no entendeu a requisio do cliente. 404 HTTP Not Found: O servidor no encontrou o objeto requisitado. 505 HTTP Version Not Supported: o servidor no suporta a verso http requisitada.
As linhas de cabealho devem trazer informaes extras sobre a mensagem de resposta. Podemos encaixar o cabealho das mensagens de resposta em trs tipos.
Gerais: assim como nas mensagens de requisio, devero conter informaes referentes principalmente prpria mensagem, no tazendo informaes sobre o corpo da mensagem. Resposta: provem informao complementar visando ampliar as informaes da linha de estado. O servidor poder tambm retornar informaes extras no corpo da mensagem, principalmente se ocorrerem erros. Entidade: descrevem a entidade contida no corpo da mensagem, se existir alguma. So mais frequentes nas mensagems de resposta.
No corpo de mensagem, quando o mesmo existir numa mensagem de requisio, haver uma entidade, que pode ser um arquivo de msica, uma imagem, uma pgina html, etc.
tambm so desafogados, j que a requisio do cliente no chegar at eles. De uma forma mais global, os servidores proxy tambm melhoram o desempenho da Internet como um todo.
[editar] Cookies
[editar] Principais objetivos
Os cookies so pequenos arquivos gravados nos computadores clientes, com determinadas informaes sobre sesses do navegador. A principal funo desses arquivos a da persistncia das sesses HTTP. Outras funes do cookie a restrio de acesso a determinados servios e a identificao de usurios.
[editar] Histria
O primeiro protocolo a definir mecanismos para transferncia de arquivos foi proposto em 1971, desenvolvido para ser implementado em hosts do M.I.T. Em 1972, com a especificao RFC 354, o File Transfer Protocol FTP ento usado como o protocolo de transferncia de arquivos da rede ARPAnet. Seu objetivo era transferir dados confiavelmente e eficientemente, alm de permitir o uso de armazenamento remoto de arquivos. A partir de ento, foram feitas algumas correes de erros, aprimorados pontos que demandavam mais nfase e adicionadas funcionalidades. Em 1973, como RFC 454, foi publicado o documento oficial do FTP, permanecendo a estrutura original j concebida, mas incluindo mudanas importantes. Nos anos que se seguiram, vrios comentrios, discusses e pequenas revises foram publicados. Em 1980, motivado pela transio do protocolo NCP para o TCP da rede ARPAnet, o FTP foi ento especificado para ser usado com o protocolo TCP. O ltimo documento de especificao deste protocolo o RFC 959.
Os objetivos do FTP so: promover o compartilhamento de arquivos, programas de computadores e/ou dados; promover o acesso a computadores remotos; blindar o usurio da variao dos tipos de sistema de armazenamento de arquivos entre os diversos hosts e finalmente, transferir dados de forma confivel e eficiente. Apesar do FTP poder ser usado diretamente pelo usurio em um terminal, ele foi projetado para ser usado por programas principalmente. um dos protocolos mais usados para se
transferir arquivos na Internet. Envolve tanto transferncia de arquivos quanto acesso a sistemas de arquivos remotos. Independe do hardware ou do sistema operacional e utiliza conexo TCP para estabelecimento da conexo entre cliente e servidor. Faz uso de duas conexes paralelas para transferir um arquivo: uma conexo de controle (informaes de usurio e senha, comandos como GET ou PUT etc.) e uma conexo de dados (usada para enviar, efetivamente, o arquivo). Devido a essa caracterstica, dizemos que este protocolo possui controle fora da Banda. A conexo de controle dita persistente, ou seja, uma vez estabelecida a sesso, ela permanece ativa durante toda a conexo. J a conexo de dados dita no persistente, ou seja, a cada nova transferncia, estabelece-se uma conexo, que fechada aps o trmino da tarefa.
Tabela de contedo
[esconder]
1 Correio Eletrnico o 1.1 Introduo o 1.2 Arquitetura e servios [2] o 1.3 Definies o 1.4 Protocolos de envio 1.4.1 UUCP [6][7] 1.4.2 SMTP [8][9] 1.4.2.1 MIME [10] o 1.5 Protocolos de recebimento 1.5.1 POP3 [11][12] 1.5.2 IMAP [13] o 1.6 Protocolos hbridos 1.6.1 Webmail
o
1.7 Referncias
O correio eletrnico, comumente chamado de email, foi utilizado inicialmente no meio acadmico nos anos 80. Em duas dcadas, tornou-se bastante popular e sua utilizao cresceu exponencialmente. Os primeiros sistemas de correio eletrnico consistiam apenas em protocolos de transferncia de arquivos(mensagens). Ficou convencionado que a 1 linha de cada mensagem devia conter o endereo do destinatrio. Essa tcnica, aos poucos, se mostrou bastante deficitria e limitada, inviabilizando sua utilizao no envio de mensagens a um grupo de pessoas, por exemplo. Alm disso, vrias foram as crticas a esses sistemas, dentre as quais destacamos:[1]
as mensagens no apresentavam uma estrutura interna no havia garantia de entrega da mensagem a interface no era integrada ao sistema de transmisso, ou seja, usurio editava a mensagem, saa do editor e rodava um software para transferncia da mensagem. impossvel enviar mensagem integrando texto, desenhos, voz, etc.
Aps isso, foram propostos sistemas de correio eletrnico mais elaborados e completos. Em 1982, um grupo de estudantes props o sistema de correio eletrnico da ARPANET, cujas propostas foram publicadas nas RFC821 e RFC822, as quais tratavam de protocolos de transmisso e formatos de mensagens, respectivamente.
Composio: processo de criar mensagens e respostas Trasnferncia: deslocamento de mensagens entre remetente e destinatrio, de forma transparente para o usurio. Gerao de relatrios: confirmao de entrega de mensagens Exibio: necessria para leitura das mensagens recebidas Disposio: Refere-se s possibilidades existentes para o destinatrio aps receber uma mensagem. Ex: apagar, mover, etc
[editar] Definies
Para melhor entendimento, necessrio saber o significado de algumas siglas.
E-mail: Eletronic Mail, sinnimo de correio eletrnico. tambm o nome dado mensagem eletrnica enviada atravs do correio eletrnico.
MUA [3]: Mail User Agent, o software utilizado pelo cliente para gerenciar seus e-mails. responsvel por receber da caixa de entrada e repassar ao MTA para envio. MTA [4]: Mail Transfer Agent, realiza a transferncia das mensagens. Recebe elas do MUA ou de outro MTA, e com base no cabealho define a forma que entregar a mensagem ao MDA. MDA [5]: Mail Delivery Agent, promove a entrega das mensagens. As recebe do MTA e realiza a entrega na caixa de mensagens do destinatrio.
Alm disso, os e-mails so compostos de basicamente duas partes: cabealho (ou header, definido pela RFC 822) e corpo (ou body), onde o cabealho contm as informaes do protocolo utilizado, do remetente, data, hora, assunto, domnios, e diversas outras informaes, enquanto o corpo contm a mensagem propriamente dita. Received: by intranet.sender.com (Postfix, from userid 33) id 65BDC5B7CF; Thu, 28 Aug 2008 12:35:02 -0300 (BRT) To: fulano@recipient.com Subject: Um teste Date: Thu, 28 Aug 2008 12:35:02 -0300 From: Ciclano <ciclano@sender.com> A grande maioria dos webmails e dos MUAs ocultam o cabealho completo, exibindo apenas informaes bsicas, como remetente, destinatrios, data e hora e assunto. Cada campo received indica um servidor SMTP que foi visitado no trajeto da mensagem. Cada conta de e-mail uma caixa postal, onde seu proprietrio pode criar novas mensagens, ler antigas, apagar, classificar, dentre outros recursos, dependendo do servidor de e-mail.
Este concentrador sincronizava-se com os clientes e armazenava as funes pedidas, como envio de e-mails e transferencia de arquivos, e em determinada hora conectava-se e realizava as funes da fila. Aps concludo, desconectava-se e voltava a armazenar as funes. Este comportamento conferia uma certa desvantagem por no sem em tempo real, com atrasos de vrias horas, mas com certeza havia grande vantagem sobre os correios convencionais, que demoravam dias ou meses. Os e-mails conforme esta tecnologia eram formados pelo nome da mquina seguido de exclamao e do nome do usurio (Exemplo: dominio.com.br!nome.de.usuario. Neste tipo de protocolo, era extremamente comum o uso de servidores intermedirios, o que barateava a comunicao. Em geral, um servidor s possua acesso aos seus adjacentes. Se eu fosse mandar um e-mail para a China por exemplo, deveria utilizar o endereo de destinatrio ServidorBrasil! ServidorEuropa!ServidorLesteEuropa!ServidorChina!usurio. Esta prtica aumentava ainda mais o atraso com que as mensagens chegavam. Como esta definio de rotas estticas era bastante trabalhosa, comearam a ser implantados na rede hops, que eram mquinas capazes de interpretar as rotas e reescrever outras mais rpidas e menos congestionadas, o que melhorou a velocidade da comunicao e reduziu custos. Atualmente este protocolo ainda utilizado em redes corporativas e alguns sistemas devido ao baixo custo, gerenciamento no-persistente de filas, porm com adaptaes para uso sobre o protocolo TCP/IP. Gradativamente, no entanto, ela vem sido substituda por tcnicas mais modernas. A tecnologia utilizada pela NASA para comunicao com suas sondas e satlites similar UUCP.
Por se tratar de uma conexo persistente, podem ser enviadas diversas mensagens sequencialmente, bastando apenas especificar o remetente, destinatrio e mensagem dos demais emails antes do comando de encerrar a conexo (quit). S: 220 www.example.com ESMTP Postfix C: HELO mydomain.com S: 250 Hello mydomain.com C: MAIL FROM: sender@mydomain.com S: 250 Ok C: RCPT TO: friend@example.com S: 250 Ok C: DATA S: 354 End data with <CR><LF>.<CR><LF> C: Subject: test message C: From: sender@mydomain.com C: To: friend@example.com C: C: Hello, C: This is a test. C: Goodbye. C: . S: 250 Ok: queued as 12345 C: quit S: 221 Bye Exemplo de transmisso SMTP
fica truncada, pois no se sabe como decodificar a mesma. H diversos tipos de codificao, sendo uma das mais comuns a quoted-printable. O content-type define que tipo de contedo possui a mensagem, e indica ao MUA como tratar o determinado contedo. Podem ser desde contedos multimdia at textos simples.
[editar] Webmail
O webmail ou e-mail sobre HTTP uma funcionalidade excelente para usurios em trnsito. A transmisso das mensagens para o servidor e da caixa de entrada ao usurio so feitas atravs do protocolo HTTP, que permite o acesso atravs de qualquer browser. Isto confere maior agilidade e portabilidade ao uso do e-mail. importante lembrar que as trocas entre servidores de webmail continuam sendo feitas atravs de SMTP. O webmail pode ser considerada a modalidade de acesso a e-mails mais utilizada atualmente. Muitos webmails utilizam scripts que conferem funcionalidades IMAP ao usurio.
Tabela de contedo
[esconder]
1 Domain Name Service - DNS o 1.1 Histria do DNS [1] o 1.2 Servios fornecidos pelo DNS [2] o 1.3 Modo de funcionamento do DNS [3] o 1.4 Registros e Mensagens DNS
o
1.5 Referncias
IP, mais fceis de serem processados por no possuirem caracteres alfanumricos de tamanhos variveis.
Servidores de nomes raiz: h 13 servidores de nomes raiz no mundo, responsveis por passar uma lista de servidores TLD correspondentes ao endereo IP desejado;
Servidores TLD (nomes de domnio de alto nvel): so responsveis por domnios de alto nvel como com, org, net ,edu, gov, uk, fr, jp, br e outros; Servidores de nomes com autoridade: so a parte final do processo, geralmente as prprias organizaes, responsveis por passar o endereo IP em si correspondente ao nome de hospedeiro informado.
Tambm h o servidor DNS local contido em cada ISP (internet service provider provedor de servios de internet). Este no integra a hierarquia de servidores DNS, apenas faz o repasse do nome de hospedeiro e recebe o endereo IP correspondente dos servidores que integram a hierarquia. Para que um host acesse uma URL qualquer ("www.amazon.com", por exemplo) na internet, primeiramente ele envia uma mensagem de requisio para o servidor de nomes local. O servidor local envia uma consulta ao DNS raiz, o qual percebe o sufixo 'com' e responde uma lista de endereos IP para o DNS local contendo servidores TLD que so reponsveis por 'com'. Em seguida, o DNS local faz requisio para um desses servidores TLD, o qual percebe o sufixo 'amazon.com' e envia ao DNS local o endereo IP do servidor DNS com autoridade para a Amazon. Finalmente, o DNS local consulta o servidor com autoridade e esse responde com o endereo do hospedeiro 'www.amazon.com'. Assim, o DNS local responde ao hospedeiro o IP do nome solicitado. A partir do processo relatado acima, vemos que h consultas recursivas e iterativas. Entre o hospedeiro e o DNS local, a consulta recursiva, uma vez que o hospedeiro pede que o DNS local obtenha o mapeamento em seu nome. Enquanto que as outras trs consultas (DNS local com DNS raiz, TLD e autoridade) so iterativas, j que as respostas so retornadas diretamente ao DNS local. Em teoria, qualquer consulta DNS pode ser iterativa ou recursiva, porm, na prtica, as consultas geralmente so feitas conforme o padro exposto acima. A figura abaixo ilustra o caminho de uma consulta DNS para resolver o endereo IP de determinado nome, similarmente ao que foi apresentado acima: Os servidores DNS, sejam eles de qualquer tipo, podem fazer uso de cache de DNS para agilizar o processo. Quando feito uma requisio ao servidor, este armazena em sua memria a resposta correspondente, de forma que quando a mesma requisio feita novamente ele dar a resposta imediatamente, no necessitando fazer toda a procura novamente. Essa informao fica armazenada por um certo perodo de tempo, geralmente 2 dias, at ser atualizada novamente em uma outra requisio.
A: o tipo mais utilizado, faz o mapeamento de um nome DNS para um endereo IP verso 4, de 32 bits. Exemplo: host1.example.microsoft.com. IN A 127.0.0.1 AAAA: Faz o mapeamento de um nome DNS para um endereo IP verso 6, de 128 bits. Exemplo: ipv6_host1.example.microsoft.com. IN AAAA 4321:0:1:2:3:4:567:89ab CNAME: (Canonical Name)- Mapeia um alias (apelido) ou nome DNS alternativo. Por exemplo, suponha que o site da empresa esteja no servidor srv01.abc.com.br. Porm na internet, os usurios iro utilizar o nome www.abc.com.br. Neste caso basta criar um alias www que faz referncia ao nome srv01.abc.com.br. Pronto, quando os usurios digitarem www.abc.com.br estaro acessando, na verdade, o endereo srv01.abc.com.br. Porm para o usurio, tudo ocorre transparentemente, como se o nome fosse realmente www.abc.com.br. Exemplo: www.abc.com.br. CNAME srv01.abc.com.br. NS: utilizado para relacionar um nome DNS com o seu dono, ou seja, o servidor que a autoridade para o nome DNS. Ou em outras palavras, o servidor DNS onde est a zona primria associada ao nome. Exemplo: example.microsoft.com. IN NS nameserver1.example.microsoft.com MX: Fornece informaes utilizadas pelos servidores de e-mail, para o roteamento de mensagens. Cada host definido em um registro MX deve ter um correspondente registro do tipo A em uma zona vlida, no servidor DNS. Exemplo: example.microsoft.com. MX 10 mailserver1.example.microsoft.com Nota : O nmero de dois dgitos aps o MX, um indicativo da ordem de preferncia quando mais de um registro MX configurado na mesma zona.
PTR: utilizado em zonas reversas, para fazer o mapeamento reverso, ou seja, o mapeamento de um nmero IP para um nome. Ao criar um registro do tipo A, em uma zona direta, voc pode criar, automaticamente, o registro PTR associad, se j houver uma zona reversa configurada. Exemplo: 10.20.20.10.in-addr.arpa. PTR host.example.microsoft.com. HINFO: Utilizado para armazenar informaes sobre o hardware do servidor DNS, tais como tipo de CPU, tipo e verso do sistema operacional e assim por diante. Estas informaes pode ser utilizadas por protocolos como por exemplo o ftp, o qual utiliza procedimentos diferentes, para diferentes sistemas operacionais Exemplo: my-computer-name.example.microsoft.com. HINFO INTEL-386 WIN32 As duas nicas espcies de mensagens DNS existentes so a de consulta e resposta DNS. Esses dois tipos de mensagens possuem o mesmo formato e so compostas da seguinte maneira:
O cabealho formado por 12 bytes, dos quais 16 bits so designados a identificar a consulta. Esse identificador copiado para a mensagem de retorno consulta da qual ele foi originado. Assim, a partir da propagao desse identificador, vemos que possvel que o cliente combine respostas recebidas com consultas enviadas. O cabealho ainda composto basicamente por mais cinco campos. So eles: Flags, que indica se uma mensagem de consulta ou resposta e tambm se o servidor de nomes indicado na mensagem de resposta se trata de um servidor com autoridade ou no, dentre outras funes; e quatro campos "nmeros de" (Perguntas, Respostas, Autoridade e Informao adicional). A seo de pergunta contm informaes a respeito de uma consulta que est sendo feita e inclui um campo para nome de quem est sendo consultado e outro que indica o tipo de pergunta que est sendo feita sobre o nome. Uma outra seo, chamada seo de resposta, possui os registros de recursos para os nomes referentes s consultas. Como possvel que um mesmo hospedeiro tenha diversos endereos IP (como em servidores WEB replicados), uma resposta pode retornar vrios RRs. A seo de autoridade aquela que, como o prprio nome induz, contm registros de servidores com autoridade. J a seo adicional contm outros registros teis, como por exemplo, conter o registro do tipo A que fornece o endereo IP para o nome cannico do servidor de correio.
Abaixo, temos uma ilustrao de como a composio de uma mensagem DNS, conforme foi descrito acima:
< Introduo s Redes de Computadores Ir para: navegao, pesquisa Inicialmente preciso conceituar o que socket. A comunicao entre processos de software tornou-se indispensvel nos sistemas atuais. O elo de ligao entre os processos do servidor e do cliente o socket. Ele a porta na qual os processos enviam e recebem mensagens. De acordo com JAMES F KUROSE: socket a interface entre a camada de aplicao e a de transporte dentro de uma mquina. Ento foram desenvolvidas diversas aplicaes cliente/servidor onde cliente(s) e servidor poderiam estar em mquinas diferentes, distantes umas das outras. Os aplicativos do cliente e do servidor utilizam protocolos de transporte para se comunicarem. Quando um aplicativo interage com o software de protocolo, ele deve especificar detalhes, como por exemplo se um servidor ou um cliente. Alm disso, os aplicativos que se comunicam devem especificar detalhes adicionais (por exemplo, o remetente deve especificar os dados a serem enviados, e o receptor deve especificar onde os dados recebidos devem ser colocados). Analisando o esquema acima percebemos que tudo acima da interface do socket, na camada de aplicao, controlado pelo criador da aplicao. O controle da camada de transporte feito pelo Sistema Operacional.
Temos dois tipos de servios de transporte via socket: o confivel orientado a cadeia de bytes (byte steam) e os datagramas no confiveis. O protocolo na qual implementado o primeiro o TCP, j o segundo implementado no protocolo UDP.
[editar] Histrico
Na dcada de 1980 nos Estados Unidos a ARPA (Advanced Research Projects Agency of the Department of Defense) deu Berkeley, Universidade da California a responsabilidade de construir um sistema operacional que pudesse ser utilizado no suporte ARPAnet, que o antecessor da internet atual. Neste sentido, foi desenvolvida uma interface e adicionada ao sistema operacional, Unix BSD (Berkeley Software Distribution). Tal interface tinha justamente a funo de suporte a comunicao em rede. Esta interface ficou ento conhecida como Berkeley Sockets Interface, e a base para a maioria das interfaces entre protocolos de internet TCP/IP existente. Existe uma nomenclatura especfica para se referir a cada lado da comunicao. Temos o servidor, que fica esperando por conexes de entrada e que fornece certos tipos de servios outra parte. J o Cliente vem a ser quem solicita a conexo ao servidor para fazer alguma requisio, algum pedido. importante dizer que no o computador que distingue quem servidor e quem cliente, mas sim a forma como certo programa usa os sockets. s vezes tambm se faz confuso no fato de se pensar que um servidor precisa ser um mainframe. Desktops como os que usamos em casa funcionam tanto como cliente quanto como servidor, e o que ocorre freqentemente. Cada socket tem um endereo nico na internet. Este endereo formado por um nmero IP e por um nmero de porta. Devido s grandes dimenses da internet, no h como uma pessoa, ou mesmo uma mquina, saber o endereo de todas as outras. Para resolver este problema foi criado protocolo DNS (Domain Name Service). Este protocolo tem a funo de traduzir os nomes ou endereos de alto nvel das mquinas para o seu respectivo nmero IP. Assim, ao se passar o endereo de um socket de um servidor, no se passa diretamente seu nmero IP, mas sim um nome mais fcil de recordar e ento o DNS traduz para o endereo real, ou endereo IP. Os sockets podem ser usados para comunicao via qualquer um dos protocolos UDP ou TCP. Assim, possvel termos tanto comunicao orientada a conexo (via TCP), quanta no orientada a conexo (via UDP). O socket abstrai esse conceito, permitindo assim a utilizao de qualquer um dos meios.
permitindo assim a liberao do socket de boas-vindas para que possa ser contactado por outros clientes. Abaixo temos uma ilustraco: Ficheiro:Socket tcp.JPG Do ponto de vista da aplicao, a conexo TCP um fluxo cotnuo de dados, a mensagem fragmentada em pacotes, no h duplicao, ele garante a entrega e a ordem dos pacotes. A conexo ponto-a-ponto: um remetente e um destintario conectado por sockets. Abaixo ilustrado uma aplicao cliente-servidor em Java: Ficheiro:Cliente servidor tcp java.JPG Este texto no tem como objetivo o aprendizado da linguagem Java, portanto s sero demonstradas e explicadas as linhas de cdigos referentes s instrues que so utilizadas no programa exemplificado pela ilustrao acima. Comeando com a aplicao que ser hospedada no Servidor. No incio do programa, dever ser inserida essas linhas que importam a biblioteca que contm as classes que so utilizadas em uma aplicao com Socket(java.net.*) e as classes de recepo de informao do teclado ou Socket do cliente ou servidor(java.io.*).
import java.io.*; import java.net.*;
Aqui criamos um objeto welcomeSocket o socket do lado do servidor, numero_da_porta dever ser substituido pelo nmero da porta pela qual a aplicao cliente usar para conectar com o servidor. Este socket esperar a requisio de conexo de um cliente.
ServerSocket welcomeSocket = new ServerSocket(numero_da_porta);
Como o programa servidor normalmente fica funcionando por tempo indefinido, coloca-se o restante das instrues dentro de um loop infinito, como segue:
while(true) { ... }
A prxima instruo cria um objeto connectionSocket do tipo Socket quando um cliente conectar ao servidor. O TCP encarregar de criar uma conexo virtual direta entre esse socket e o socket do cliente de forma que todos os bytes sero enviados ao servidor na ordem certa.
No caso do envio de um objeto do tipo String do cliente para o servidor, utilizamos as seguintes instrues para receber os dados do cliente.
Depois de processar a informao enviada pelo cliente, queremos enviar um outro objeto(mensagem_para_cliente) do tipo String de volta para o cliente, como um mensagem de dado recebido ou algo do tipo.
DataOutputStream infoParaCliente = new DataOutputStream(connectionSocket.getOutputStream()); infoParaCliente.writeBytes(mensagem_para_cliente);
Com isso termina-se o programa do lado do Servidor. Agora analisaremos o programa cliente. Como no caso do programa servidor, o cdigo inicia com a importao das bibliotecas que contm as classes de sockets e de envio de informaes.
import java.io.*; import java.net.*;
Primeiramente, criamos o socket que conectar com o servidor. O primeiro parmetro passado ao construtor o nome do servidor, por exemplo, 127.0.0.1 se a aplicao servidor estiver rodando no mesmo computador que a aplicao cliente. O segundo parmetro o nmero da porta que informado ao socket servidor.
Socket clientSocket = new Socket("nome_do_servidor", numero_da_porta);
Aps a criao do socket cliente, temos que criar os objetos de cadeia que sero ligados ao socket. O objeto infoParaServidor ser a cadeia que enviar informaes para o servidor e o objeto infoDoServidor ser a cadeia que receber informaes do servidor.
DataOutputStream infoParaServidor = new DataOutputStream(clientSocket.getOutputStream()); BufferedReader infoDoServidor = new BufferedReader(new InputStreamReader(client.getInputStream()));
Utilizaremos o mesmo caso do servidor, e enviaremos(mensagem_do_cliente) e receberemos(mensagem_para_cliente) dois objetos do tipo String para exemplificar.
infoParaServidor.writeBytes(mensagem_do_cliente); String mensagem_para_cliente = infoDoServidor.readLine();
Agora j podemos fechar o socket, e tambm a conexo TCP entre cliente e servidor.
clientSocket.close();
Diferentemente do TCP, aqui criamos um objeto do tipo DatagramSocket e no ServerSocket. Os dados que sero enviados e recebidos pelo servidor passaro todos atravs deste socket do tipo DatagramSocket. No se faz necessrio a criao de um objeto DatagramSocket para cada nova conexo. Todas as conexes dos clientes passaro por esse nico socket serverSocket. Isto no um problema porque cada vez que recebe um pacote, o servidor responde e fica livre novamente, pois inexiste conexo entre ambos. O socket escuta na porta 9876.
while (true) { ... }
O objeto receivePacket aloca memria onde sero salvos os dados de entrada, recebidos pelo servidor. O mtodo receive fica esperando o recebimento e armazena o pacote em receviePacket.
String sentence = new String(receivePacket.getData()); InetAddress IPAdress = receivePacket.getAddress();
Estas linhas desmontam o pacote, retirando informaes necessrias retransmisso. O objeto sentence recebe os dados. IPAdress o nmero de IP do cliente, que necessrio para mandar a resposta assim como o nmero de porta port. Todos estes dados foram enviados pelo cliente. Aps o processamento a resposta enviada para o respectivo endereo IP e nmero de porta. Do lado do cliente temos a criao do socket pelo qual ser enviado um pacote da seguinte forma:
DatagramSocket clientSocket = new DatagramSocket();
Note que a nica diferena entre o socket cliente e o servidor de que para o servidor foi necessrio especificar um nmero de porta, e para o cliente no. Este comando no cria conexo alguma e nem contata o servidor, e justamente por isso que no se faz necessrio especificar nome do servidor nem seu numero de porta.
InetAddress IPAddress = InetAddress.getByName(hostname);
Aqui criamos um objeto para armazenar o nmero de IP do Server. Hostname o nome (apelido) do servidor. O mtodo getByName() faz uma consulta ao servidor DNS para saber qual o nmero IP do server.
byte[] sendData new byte[1024]; byte[] receiveData = new byte[1024];
Esta linha cria o pacote que ser enviado ao Server. Nele esto gravados os dados em si, sendData, o tamanho dos dados, sendData.length, o numero de IP do Server, IPServer, e o numero da porta onde o Server espera, 9876.
clientSocket.send(sendPacket);
Depois de pronto, enviamos o pacote atravs do mtodo send do socket clientSocket. Enviado o pacote o cliente fica esperando uma resposta.
clientSocket.receive(receivePacket);
Quando ocorre o recebimento do pacote, ele armazenado em receivePacket. Obtido em "http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_ %C3%A0s_Redes_de_Computadores/Programa%C3%A7%C3%A3o_com_sockets"
Tabela de contedo
[esconder]
1 Introduo Camada de Transporte o 1.1 Multiplexao e Demultiplexao o 1.2 Protocolo UDP o 1.3 Protocolo TCP 2 Referncias
entrega sem erros de dados de uma determinada mquina a outra mquina da rede. O outro protocolo, o UDP (User Datagram Protocol - protocolo de datagramas do utilizador) corresponde a um protocolo no orientado a conexo, ou seja, sem confiabilidade, j que no h garantia de envio/recebimento de pacotes. O servio de transporte mantm um relacionamento muito prximo com o destinatrio do servio. Portanto, deve ser fcil de usar. Podemos relacionar algumas primitivas que os provedores deste tipo de servio devem adotar, de modo a oferecer um servio orientado a conexo com um mnimo de funcionalidade (em geral, basta permitir requisies de estabelecimento, uso e encerramento de uma conexo). Primitivas: LISTEN, CONNECT, SEND DATA, RECEIVE e DISCONNECT. Uma ilustrao do servio provido pela camada de transporte pode ser observada na figura abaixo. Observe a implementao de um servio de transporte confivel de dados sobre uma camada no confivel.
O mtodo de receber um pacote vindo de outro host e repassar as informaes ao processo correto chamado de demultiplexao. Abaixo segue uma ilustrao do funcionamento da Multiplexao/Demultiplexao, na qual dois clientes usam o mesmo nmeros de porta destino (80) para se comunicar com a mesma aplicao do servidor web.
Seguem abaixo figuras referentes ao TCP, sendo a primeira uma representao do cabealho TCP e a segunda uma simples demonstrao do propsito do TCP. Na ilustrao do cabealho, percebe-se a complexidade de um pacote TCP, o que reflete toda a confiabilidade e garantia oferecidos por este protocolo. J a figura posterior demonstra que, ao contrrio do UDP, o TCP no est preocupado em apenas enviar os pacotes (velocidade, tempo real), mas sim dar a garantia ao destinatrio de que o pacote enviado pelo remetente tenha sido entregue.
< Introduo s Redes de Computadores Ir para: navegao, pesquisa Situada entre as camadas de aplicao e de rede, a camada de transporte prov uma comunicao processo a processo. Para tal, a camada de transporte utiliza o conceito de portas, que , na verdade, um nmero que identifica qual processo dever se encarregar da informao trazida por aquele pacote. Na prtica, o aplicativo informa ao sistema operacional que estar escutando uma determinada porta e ento todos os pacotes daquele protocolo (UDP ou TCP) sero repassados quele processo. A Demultiplexao a entrega dos dados de um segmento da camada de transporte porta correta. "O trabalho de reunir, no hospedeiro de origem, pores de dados provenientes de diferentes portas, encapsular cada poro de dados com infomaes do cabealho (que mais tarde sero usadas na demultiplexao) para criar segmentos, e passar esses segmentos para a camada de rede denominado multiplexao".(KUROSE; ROSS, 2006, p. 148).
Tabela de contedo
[esconder]
1 Multiplexao e Demultiplexao na camada de transporte 2 Multiplexao/demultiplexao no orientada para conexo 3 Trasnporte Orientado Para Conexao: TCP 4 Transporte No Orientado Para Conexao: UDP 5 Mecanismos de Controle de Congestionamento 6 Servidores Web e o TCP 7 Algoritimo de Controle de Congestionamento 8 Referncias
ser direcionados ao mesmo processo de destino, caso tenham o mesmo nmero IP e mesmo nmero de porta de destino pela mesma porta de destino.
entregues ao programa de destino. Verifica a integridade dos dados transmitidos: Usando clculos de soma de verificaao o TCP faz verificaes para garantir que os dados no foram alterados ou corrompidos durante o transporte entre a origem e o destino. Envia mensagens positivas dependendo do recebimento bem-sucedido dos dados. No destino, o TCP recebe os pacotes, verifica se esto OK e, em caso afirmativo, envia uma mensagem para a origem, confirmando cada pacote que foi recebido corretamente. Caso um pacote no tenha sido recebido ou tenha sido recebido com problemas, o TCP envia uma mensagem ao computador de origem, solicitando uma retransmisso do pacote. Com esse mecanismo, apenas pacotes com problemas tero que ser reenviados, o que reduz o trfego na rede e agiliza o envio dos pacotes. Oferece um mtodo preferencial de transporte de programas que devem usar transmisso confivel de dados baseada em sesses: Ou seja, o TCP muito mais confivel do que o UDP e indicado para programas e servios que dependam de uma entrega confivel de dados.
Melhor controle no nvel de aplicao sobre quais dados so enviados e quando: como ele no possui controle de congestionamento (como ocorre no TCP) no ocorre atraso no envio do pacote. No possui o servio de confirmao de recebimento que pode atrasar a transmisso se alguns pacotes forem perdidos e compatvel com aplicaes de tempo real onde a velocidade mais importantes que a confiabilidade na entrega No h estabelecimento de conexo: O UDP apenas envia os dados sem perder tempo tentando abrir conexes (como ocorre no TCP) esse pode ser o motivo pelo qual DNS roda sobre UDP No h estados de conexo: Usado pelo TCP para garantir a entrega confivel de dados (esses estados inclui buffers de envio e recebimento paramentos de controle de congestionamento e etc) por isso um servidor com uma aplicao especifica pode suportar um numero muito maior de clientes ativos quando a aplicao roda sobre UDP e no sobre TCP Pequena Sobrecarga de Cabealho de Pacote: O TCP possui 20 bytes de sobrecarga de cabealho enquanto o UDP so possui 8 bytes
Atualizao de tabelas de roteamento com protocolo RIP Transferir dados de gerenciamento de rede (que normalmente funcionam quando a rede esta sobrecarregada e difcil conseguir transferncia confivel devido ao controle de congestionamento. O DNS tambm roda sobre o UDP bastante utilizado em aplicaes multimdia como telefone por internet, vdeo conferencia em tempo real e recepo de udio e vdeo armazenados.
Realimentao Direta: Pacote enviados de um roteador da rede a um remetente (como se fosse um pacote de congestionamento dizendo: estou congestionado) Realimentao Indireta: Ocorre quando um roteador marca / atualiza um campo em um pacote que esta indo do remetente ao destinatrio para indicar o congestionamento e com isso o destinatrio informa ao remetente sobre o congestionamento. Esse mtodo possui a desvantagem de leva no mnimo o tempo de ida e volta de um pacote para avisa ao remetente sobre o congestionamento
Atravs deste exemplo, vemos que em virtude de o TCP ser identificado por uma tupla de 4 (quatro) elementos, todas as conexes ilustradas sero corretamente multiplexadas/demultiplexadas. Inicialmente, observe que os pacotes que saem dos hospedeiros clientes possuem sempre o IP de destino B e porta de destino 80. Isto exatamente o esperado em se tratando de servidores WEB. Consideremos primeiramente o processo cliente rodando no hospedeiro A. Apesar de este processo ter escolhido a mesma porta de origem do processo rodando em C (porta origem x), os pacotes de A e C sero corretamente demultiplexados, pois o servidor WEB ainda pode diferenciar os pacotes devido ao campo IP de origem. Analogamente, tambm no haver problema na identificao de pacotes de duas aplicaes rodando no mesmo hospedeiro cliente (como ocorre em C). Os pacotes sero diferenciados atravs do nmero da porta de origem, que deve ser diferente para cada um dos processos(neste exemplo, temos x e y). O servidor WEB, por sua vez, tem duas abordagens para gerenciar estas conexes. Ele pode, a cada nova requisio, criar um novo thread (inserido em um nico grande processo), ou criar um novo processo. Threads so mais eficientes, uma vez que exigem/alocam menos recursos de hardware para serem executados. Observe que nas duas abordagens, o servidor designar um socket nico a cada thread/processo, que na prtica, designa a porta pela qual os dados passam da aplicao camada de transporte.
da janela de congestionamento de todos os remetentes quando a rede esta congestionada (ocorre perdas de pacotes). Alguns dos principais algoritimos usados no controle de congestinamento so:
Diminuio Multiplicativa: Nessa abordagem o TCP diminui a janela de congestionamento pela metade toda vez que houver uma nova perda de pacotes. O valor da janela de congestionamento pode atingir um valor mnimo igual a 1 MSS. Aumento Aditivo: Esse mtodo utilizado toda vez que no h congestionamento, o principio desse mtodo que se nenhum congestionamento for detectado provavelmente h largura de banda disponvel e que pode ser usada adicionalmente pelo TCP. Nessas circunstancias o TCP aumenta sua janela de congestionamento lentamente para verificar se h largura de banda adicional disponvel no caminho fim-a-fim. Isso conseguido incrementando a janela de congestionamento cada vez que um novo reconhecimento recebido tendo como meta aumentar a janela de congestionamento de 1 MSS a cada tempo de viagem de ida e volta Partida Lenta: No inicio de uma conexo o TCP inicia o valor da janela de congestionamento em 1 MSS. Nesse caso a taxa de aumento da janela de congestionamento aumenta exponencialmente, duplicando seu valor de janela de congestionamento a cada RTT. Esse aumento exponencial continua ate ocorrer o primeiro evento de perda.
Tabela de contedo
[esconder]
1 Introduo 2 Comparao entre TCP e UDP o 2.1 Melhor controle no nvel da aplicao o 2.2 No h estabelecimento de conexo o 2.3 No h estados de conexo o 2.4 Pequena sobrecarga de cabealho 3 Estrutura do Segmento UDP o 3.1 Checksum 3.1.1 Checksums Simples 3.1.2 Checksums Avanados 3.1.3 Um exemplo de Algortimos de Checksum (em ingls) 4 Quando Utilizar o Protocolo UDP
o
[editar] Introduo
O protocolo de transporte UDP foi referenciado pela RFC 768 em 28 de agosto de 1980. O UDP, ao contrrio do que muitos crem, no um protocolo anterior ao TCP. Inicialmente, no havia uma separao entre a camada de rede e de transporte. Os protocolos TCP e IP eram referenciados como um nico protocolo. Entretanto, medida que se percebia as limitaes do protocolo para certas aplicaes, as especificaes foram mudando. Na verso 3(1978) do TCP/IP j haviam indcios de separao entre os protocolos, e na verso 4(1980), h a separao total entre eles. Por isso o protocolo IP comea na verso 4. O UDP nasce ento para servir como uma interface entre o IP e a camada de aplicao. Sua RFC possue apenas trs pginas e sua meta ser um protocolo simples e rpido. Nela tambm, definido que o UDP assume que est rodando sobre o protocolo IP. Em relao ao IP, adere poucos servios, entre eles a verificao de erros(Checksum), suporte multiplexao e demultiplexao e suporte a brodcast e multicast. Demais
servios, como entrega confivel de dados e controle de congestionamento podem ser implementados pela camada de aplicao, se o programador achar necessrio.
[editar] Checksum
Effect of a typical checksum function (the Unix cksum utility). O Checksum um campo de 16bts utilizado na deteco de erros fim-a-fim em UDP. Embora o UDP fornea verificao de erros, ele no recupera esse erro. Algumas implementaes de UDP simplesmente descartam o segmento danificado, outras passam o segmento errado aplicao acompanhado de algum aviso. O principio de funcionamento do Checksum muito simples. Do lado de remetente os dados so organizados em pequenos blocos de 16bits. Realiza-se a soma desses blocos e sobre o resultado feito o complemento de um que ento armazenado no campo do Checksum do segmento UDP. No lado do destinatrio o refaz-se o calculo feito no remetente e o resultado ento somado ao Checksum. Se o resultado for zero ento considera-se que no houve erros no segmento Vale lembrar que o Checksum um campo opcional. Sendo assim, entende-se do lado do destinatrio que se o Checksum estiver em zero, significa que a verificao no ocorrer. Contudo, possvel no lado do remetente que o resultado do complemento de um da soma dos bits enviados pode ser zero. Neste caso, se a aplicao estiver usando Checksum ento todos os 16bts sero marcados em um.
Mudar a ordem das palavras de dados; Inserir ou deletar palavras com todos os bits zerados; Trocar um nmero mpar de bits na mesma posio da palavra.
Given 4 bytes of data (can be done with any number of bytes): 0x25, 0x62, 0x3F, 0x52 Step 1: Adding all bytes together gives 0x118. Step 2: Drop the carry nibble to get 0x18. Step 3: Get the two's complement of the 0x18 to get 0xE8. This is the checksum byte. Step 4: To test the checksum byte simply add it to the original group of bytes. The result should be 0x100. Step 5: Drop the carry nibble again giving 0x00. Since it is 0x00, this means no error was detected (although an undetectable error could have occurred).
Fluxo de Dados em Real Time: Multicasting: Broadcasting; E no geral, servios que admitem certa perda de dados;
Youtube, e outros servios de streming tanto de udio, quando de udio e vdeo.: P2P: Skype, e inmeros servios de VOIP;
Tabela de contedo
[esconder]
1 Transferncia confivel de dados 2 rdt1.0: Transferncia confivel de dados sobre canais perfeitamente confiveis 3 rdt2.0: Canal com erros de bit 4 rdt2.1: Soluo para ACKs/NAKs perdidos 5 rdt2.2: Uso somente de ACKs 6 Protocolo rdt3.0 7 Transferncia confivel de dados utilizando paralelismo 8 Protocolo Go-Back-N 9 Repetio Seletiva
camada superior, (ex., pela aplicao). Passa dados para entregar camada superior receptora. udt_send() chamada pela entidade de transporte, para transferir pacotes para o receptor atravs do canal no confivel. rdt_rcv() chamada pela entidade da camada inferior quando o pacote chega ao lado receptor do canal e deliver_data() chamada pela entidade de transporte para entregar dados para camada superior. Consideraremos apenas o caso de trnaferncia unidirecional de dados, ou seja, do lado do remetente ppara o lado do destinatrio. Os diagramas utilizados para a exemplificao dos protocolos utilizam mquinas de estados finitos (FSM) para especificar o protocolo transmissor e o receptor. definido que estado quando neste estado o prximo estado fica unicamente determinado pelo prximo evento. FSM A figura acima ilustra a abordagem FSM.
Rdt1.0: um protocolo sobre um canal perfeitamente confivel; Rdt2.2: um protocolo mais real, onde h erro de bits.
Porm, h uma outra situao que normalmente ocorre em uma transferncia de arquivos e que precisa ser tratada: a perda de pacotes. Implementaremos ento um mecanismo para detectar um pacote perdido e retransmiti-lo. Tal mecanismo consiste da utilizao de um temporizador de contagem regressiva que ser acionado ao enviar cada pacote do remetente ao destinatrio. Uma ilustrao do mecanismo apresentado a seguinte:
um pacote pkt0 enviado ao remetente, e o temporizador relativo esse pacote acionado. pkt0 chega ao destinatrio e este envia o ACK0. se ACK0 chegar ao remetente, o temporizador de pkt0 parado e ser enviado o pkt1. Porm, caso o temporizador chegue a 0 antes do ACK0 ser recebido, pkt0 reenviado, e os passos anteriores so novamente repetidos.
Utilizando o temporizador, nem o remetente nem o destinatrio conseguem identificar o que houve com o pacote enviado. Ele pode ter sido perdido, a resposta ACK pode ter sido perdida, ou simplesmente houve lentido na rede, o que fez com que o temporizador zerasse antes do recebimento do pacote ou do ACK. A ltima situao resulta em pacotes duplicados, porm o protocolo rdt2.2 j corrige tal problema.
definido um nmero de pacotes que podem ser enviados sem que seja necessrio aguardar pelo reconhecimento de cada um deles. Esta quantidade de pacotes pode ser vista como uma "janela". Na figura, os pacotes pretos so pacotes que foram corretamente enviados e j receberam reconhecimento (receberam o ACK do destinatrio). Os pacotes azuis so pacotes que j foram enviados, mas ainda no foram reconhecidos, e os pacotes verdes so os prximos pacotes a serem enviados, j que
ainda esto dentro dos limites da janela. Os pacotes vermelhos esto fora do limite da janela, logo no podem ser enviados ainda. Nextseqnum o nmero de sequncia do prximo pacote a ser enviado. O pacote base o pacote no reconhecido com nmero de sequncia mais antigo. Quando este pacote for reconhecido, a janela ir se deslocar para a direita no espao de nmeros de sequncia dos pacotes, permitindo o envio de outros pacotes. A janela "desliza", e com isso o protocolo Go-Back-N tambm denominado protocolo de janela deslizante. O lado remetente deve ser capaz de responder a 3 situaes:
Antes de criar e enviar um pacote, o protocolo deve verificar se h espao na janela. Se no houver, os dados sero devolvidos, podendo ser enviados apenas quando um espao for liberado;
Recebimento de um ACK
Receber um ACK com nmero de sequncia n indica ao remetente que todos os pacotes com nmero de sequncia at n (inclusive) foram recebidos corretamente pelo destinatrio, e assim a janela desliza. O pacote com nmero de sequncia n+1 se torna a base;
Esgotamento de temporizao
usado um temporizador para o pacote base. Se um ACK chegar antes do temporizador se esgotar, ele reiniciado para o pacote seguinte. Se ele se esgotaro, todos os pacotes que foram enviados mas que ainda no foram reconhecidos so reenviados. O lado destinatrio, ao receber um pacote com nmero de sequncia n, que est na ordem esperada, envia um ACK correspondente e entrega os dados camada superior. Caso o pacote recebido no esteja na ordem, ele ser descartado e ser reenviado um ACK para o ltimo pacote recebido corretamente. Esta caracterstica garante que os pacotes sejam recebidos em ordem, mas descarta pacotes rebidos corretamente. Se por um lado isto gera um prejuzo na necessidade de retransmisso de dados (que ainda podem ser perdidos, gerando mais retransmisses), existe uma vantagem importante nesta opo: a simplicidade nos buffers do destinatrio. No ser preciso armazenar pacotes fora de ordem, mas apenas o nmero de sequncia esperado para o prximo pacote. As figuras a seguir, retiradas do livro Computer Networking: A Top-Down Approach Featuring the Internet, de James F. Kurose e Keith W. Ross, 3 edio, mostram as FSM do lado remetente e do destinatrio, e a operao geral do protocolo, respectivamente.
Lado remetente:
Lado destinatrio:
Operao do Go-Back-N:
A repetio seletiva veio justamente melhorar esta questo. Agora, como o prprio nome sugere, no havero reenvios desnecessrios. Apenas ser retransmitido o pacote que tiver algum problema. Com isto h um bom ganho de tempo nas transferncias de dados. Analisemos agora a viso que tanto o remetente quanto o destinatrio tm da janela, primeiramente para o remetente:
Em verde podemos ver os pacotes que foram enviados e seus ACKs j foram recebidos. Em amarelo so os que foram enviados, mas ainda no chegou a resposta (recebimento do ACK). Em azul so os pacotes que foram autorizados a serem enviados, mas ainda no foram. Em branco so os pacotes que ainda no foram autorizados ao envio. Veja que alguns pacotes j tiveram confirmao de recebimento mesmo que pacotes anteriores ainda no tenham sido confirmados. Isto uma grande diferena da janela do GBN, e justamente a isso que veio a Repetio Seletiva, permitir que o destinatrio reconhea pacotes fora de ordem, possibilitando assim retransmisses somente dos arquivos com algum problema.
Como no GBN, os pacotes medida que so recebidos da camada superior recebem um nmero de sequncia. Se este nmero estiver dentro da janela, ento este pacote pode ser enviado, que so justamente os pacotes em azul. Ao ser enviado sua classificao muda para amarelo, e finalmente ao receber confirmao de recebimento por parte do destinatrio o pacote passa a ser classificado como verde. Ao receber o ACK do pacote, se o pacote estiver no incio da janela, ento a janela pula uma ou mais posies frente conforme os pacotes posteriores forem verdes ou no. Outra questo quanto ao problema da perca de pacotes. Para isto usado temporizao, s que na repetio seletiva, cada pacote tem de ter sua prpria temporizao, uma vez que s ser retransmitido o pacote perdido. Agora analisemos o destinatrio. Os pacotes em lils j foram recebidos, veja que eles esto fora de ordem, uma vez que existem pacotes anteriores ainda no recebidos. Esta mais uma diferena, e uma causa da repetio seletiva. Esses pacotes ficaro em buffer no destinatrio. Em cinza temos os pacotes que so aguardados, mas ainda no recebidos. Em azul so pacotes aceitveis, que tambm so aguardados por estarem dentro da janela. Em branco so os pacotes no utilizados por estarem fora da janela. Como j dito, os pacotes j recebidos mas fora de ordem ficam armazenados em buffer. Ao receber um pacote e este pacote sendo o primeiro da janela, ele ser enviado camada superior juntamente com aqueles que j foram recebidos anteriormente e esto em sequncia com este primeiro. Ento a janela desliza direita por um numero de pacotes igual quantidade de pacotes que foram camada superior. Em caso de o destinatrio receber um pacote com nmero de sequncia anterior ao nmero de inicio da janela (rcv_base), ou seja, pacote j recebido, mesmo assim ser necessrio o envio de um ACK para que o remetente possa movimentar sua janela frente. Este fato pode ocorrer devido perca do ACK, pois desta forma o remetente nunca receber confirmao e ento reenviar o pacote, mas o pacote j foi recebido pelo destinatrio, porm o remetente no sabe disso, e por isso ele deve reenviar o ACK.
Na figura acima temos um exemplo de transmisso com a repetio seletiva. So enviados 4 pacotes (pkt0, pkt1, pkt2, pkt3). Porm o pacote pkt2 perdido e s chegam ao destinatrio os pacotes pkt0, pkt1 e pkt3. O destinatrio recebe normalmente os trs pacotes que chegaram, os armazena em buffer e envia seus respectivos ACKs. O remetente recebe confirmao para os pacotes pkt0 e pkt1 e envia ento os pacotes pkt4 e pkt5. Nesse ponto o tempo de vida do pacote pkt2 se esgota e ento ele reenviado. Os pacotes pkt4 e pkt5 so recebidos, armazenados em buffer e o destinatrio envias seus ACKs. S ento o pacote pkt2 recebido. Agora ento, como pkt2 est no inicio da janela ele enviado para a camada superior juntamente com pkt3, pkt4 e pkt5 que estavam em buffer e na sequncia de pkt2. ento enviado o ACK respectivo a pkt2 (ACK2).
< Introduo s Redes de Computadores Ir para: navegao, pesquisa Transporte orientado para conexo: TCP, protocolo de transporte confivel da camada de transporte, orientado para conexo, da Internet.[1] O TCP (Transmission Control Protocol - Protocolo de Controle de Transmisso) um dos protocolos[2], sob os quais assenta o ncleo da Internet nos dias de hoje. A versatilidade e robustez deste protocolo tornou-o adequado para redes globais, j que este verifica se os dados so enviados de forma correta, na sequncia apropriada e sem erros, pela rede.
Tabela de contedo
[esconder]
1 A conexo TCP 2 Estrutura do segmento TCP [3] 3 Estimativa do tempo de viagem de ida e volta e de esgotamento de temporizao o 3.1 Estimativa do tempo de viagem de ida e volta - RTT [6] o 3.2 Estabelecimento e gerenciamento da temporizao de retransmisso 4 Transferncia confivel de dados 5 Controle de fluxo 6 Gerenciamento da conexo TCP 7 Referncias
URG urgncia ACK nmero ack vlido PSH push (envio imediato de dados) RST reset (reincio da conexo) SYN sync (estabelecimento de conexo) FIN finalizar conexo
H tambm a janela de recepo (16 bits) que indica o tamanho da janela para controle de fluxo (figura acima), o checksum (16 bits) que verifica a integridade dos dados de todo o pacote, como um hash; o ponteiro para dados urgentes (16 bits) que indica que determinado dado deve ser entregue no mesmo instante, as opes (quantidade varivel
de bits), que podem alocar mais banda do enlace para a transmisso dentre outras possibilidades, e os dados, cuja quantidade definida no MSS.
A conexo TCP, por ser confivel, exige o estabelecimento de uma conexo, embora no seja necessrio alocar exclusividade de enlace (circuito dedicado[4]). necessrio existir um cliente e um servidor, porm como um protocolo full-duplex, um terminal pode ser simultaneamente servidor e cliente. A confiabilidade da transmisso se deve ao nmero de seqncia e ao nmero de reconhecimento. O primeiro indica qual o primeiro byte do segmento de daos, e o segundo indica o primeiro byte do prximo segmento de dados. Isso permite que os dados sejam agrupados corretamente, mesmo que pacotes tenham sofrido atrasos na transmisso. O nmero de sequncia escolhido aleatoriamente no servidor e no cliente, e so independentes entre si, ou seja, no exigncia que o nmero de sequncia do servidor seja o mesmo do cliente. Mas ento como feita a comunicao? Para isto utilizada a flag ACK. Esta flag faz a sincronizao dos nmeros de sequncia, como mostrado na figura a seguir.
[5]
exemplo, estimar o tempo de viagem de ida e volta da conexo - RTT (a durao dos intervalos de controle deve ser maior do que o RTT, evitando o envio de retransmisses desnecessrias).
Ignora os ACKs duplicados Ignora controle de fluxo e de congestionamento RFC 2581: Trs ACKs duplicados retransmite o segmento que Falta Reconhecimento cumulativo evita a retransmisso do primeiro segmento
Etapa 1: o lado cliente do TCP encapsula e envia ao servidor, em um datagrama IP, um segmento contendo um bit de flag SYN ativado em 1 (requisio de estabelecimento de conexo) e um nmero de sequncia inicial escolhido aleatoriamente pelo prprio cliente. Esse segmento chamado TCP SYN. Etapa 2: o servidor, por sua vez, ao receber datagrama IP, extrai o segmento TCP SYN, aloca buffers e variveis para conexo TCP e envia um segmento de aceitao de conexo, chamado SYNACK, contendo um bit de flag SYN ainda ativado em 1 e um ACK de reconhecimento do nmero de sequncia inicial do cliente, juntamente com a informao de sequncia inicial do servidor. Etapa 3: por fim, o cliente recebe o SYNACK, reserva buffers e variveis para a conexo TCP, enviando um segmento contendo um ACK de reconhecimento do nmero de sequncia inicial do servidor, o prximo nmero de sequncia do cliente e um bit de flag SYN ajustado em zero (conexo j estabelecida).
Pode acontecer, entretanto, situaes em que o segmento TCP SYN recebido pelo hospedeiro apresenta nmero de porta e/ou IP incompatveis com as portas nele existentes. Neste caso, no h o reconhecimento do segmento TCP SYN e, ento, o hospedeiro (servidor) retorna ao cliente um segmento contendo um bit de sinalizao RST, ativado em 1, para reenvio/reinicializao da conexo. Se essas trs etapas forem bem sucedidas, os dados podem ser enviados entre um cliente e um servidor em hospedeiros diferentes. Quando no se deseja continuar enviando pacotes, a conexo TCP pode ser finalizada pelo cliente ou pelo servidor. O encerramento acontece em 4 passos. Em suma, inicialmente o cliente envia, ao servidor, um segmento TCP FIN, com um bit de flag FIN ajustado em 1, requisitando a finalizao da conexo. O servidor recebe e envia, ao cliente, um ACK de reconhecimento (etapa 2). Posteriormente, o servidor envia um segmento FIN, tambm ativado em 1, ao cliente. Quando o cliente o recebe, responde com um ACK de reconhecimento e, ento, a conexo encerrada e os recursos (buffers e variveis) alocados para a conexo TCP so liberados.
Tabela de contedo
[esconder]
1 Controle de congestionamento o 1.1 As causas e custos do congestionamento o 1.2 Mecanismos de controle de congestionamento o 1.3 Controle de congestionamento ATM ABR o 1.4 Controle de congestionamento TCP
o
1.5 Referncia
Neste caso supomos que a capacidade de armazenamento do roteador seja finita, o que acarretar em descarte dos pacotes que chegam a um buffer que j est cheio e depois a retransmisso do mesmo. O desempenho ideal ocorreria se o remetente soubesse sempre quando o roteador est livre pois no haveria perca alguma, porm sabemos que isso impossvel na realidade. Na prtica, h sempre a necessidade de se retransmitir pacotes que foram perdidos durante a comunicao, e embora possamos usar de temporizadores para determinar se um pacote foi reconhecido ou no, pode ser que estes pacotes estejam perdidos e levem um tempo a mais para chegar ao destinatrio, levando o remetente a fazer retransmisses desnecessrias. Cenrio 3: quatro remetentes, roteadores com buffers finitos e trajetos com mltiplos roteadores Muitos roteadores implica em trajeto maior na transmisso de pacotes. O que pode ocorrer que a conexo estabelecida entre dois hospedeiros entre em competio com outra conexo estabelecida entre outros dois hospedeiros e medida que a transmisso de pacotes dentro de uma conexo fique maior, a outra conexo estabelecida tender a cair no limite do trfego pesado. Outro custo tambm do congestionamento ocorreria caso um pacote seja descartado no meio do caminho (no repasse de um roteador por exemplo), desperdiando toda a transmisso feita at o momento em que o mesmo foi descartado.
Nesta arquitetura, temos a presena de clulas de dados e das clulas de gerenciamento de recursos (clulas RM) durante a transmisso, sendo estas ltimas as que contm informaes sobre congestionamento entre hospedeiros e comutadores. As clulas de dados contm um bit EFCI (explicit forward congestion indication) que ser sempre modificado para o valor 1 quando um comutador detecta congestionamento. Ao receber esta informao o destinatrio poder modificar para 1 o valor do bit CI (congestion indication) da clula RM quando a situao do congestionamento for grave ou do bit NI (no increase) tambm da clula RM quando for mais leve. Alm dos bits CI e NI, a clula RM tambm possui um campo ER (explicit rate) de dois bytes, que estabelecer uma taxa mnima suportvel por todos os comutadores medida que o congestionamento aumente.