You are on page 1of 112

Introduo s Redes de Computadores/Protocolo TCP

De Wikiversidade

< 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

[editar] A conexo TCP


TCP(Transmission Control Protocol) um protocolo da camada de transporte, orientado a conexo. Ele responsvel pela diviso da mensagem em datagramas, reagrupamento e retransmisso no caso de datagramas perdidos. Dentre suas principais vantagens, podemos destacar a segurana quanto reposio de pacotes perdidos e ordenao desses pacotes.

[editar] Estrutura do segmento TCP [3]


O segmento TCP dividido em partes. Didaticamente representado pelo bloco abaixo ilustrado, porm na prtica enviado sequencialmente. Cada linha da tabela um bloco de 32 bits, sendo que o bit inicial de nmero 0. O protocolo TCP permite que seu cabealho tenha tamanho varivel, conforme as necessidades das estaes comunicantes e especifidades do enlace. A estrutura bsica possui valores bem definidos, como as portas de origem (16 bits) e de destino (16 bits). Partes importantes no TCP so o nmero de seqncia (32 bits) e o nmero de reconhecimento (32 bits), pois estes campos garantem a confiabilidade da transferncia.H tambm outros campos, como comprimento do cabealho (4 bits), que indica qual tamanho do cabealho em palavras de 32 bit, as flags (6 bits), que podem ser de 6 tipos:

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]

[editar] Estimativa do tempo de viagem de ida e volta e de esgotamento de temporizao


O TCP utiliza um mecanismo de controle de temporizao/retransmisso para recuperar segmentos perdidos. Em um protocolo real como o TCP, surgem problemas de implementao de um mecanismo de controle de temporizao/retransmisso como por

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).

[editar] Estimativa do tempo de viagem de ida e volta - RTT [6]


O RTT para um segmento, denominado RTTamostra, a quantidade de tempo transcorrido entre o momento em que o segmento enviado (isto , passado ao IP) e o momento em que recebido um reconhecimento para o segmento. Ao invs de medir um RTTamostra para cada segmento transmitido, a maioria das implementaes de TCP executa apenas uma medio de RTTamostra por vez. Isto , em qualquer instante, o RTTamostra estar sendo estimado para apenas um dos segmentos transmitidos mas ainda no reconhecidos, o que resulta em um novo valor de RTTamostra para aproximadamente cada RTT. E mais, o TCP nunca computa um RTTamostra para um segmento que foi retransmitido; apenas mede-o para segmentos que foram transmitidos uma vez. Os valores de RTTamostra sofrero variao de segmento para segmento devido a congestionamento nos roteadores e a variaes de carga nos sistemas finais. Por causa dessa variao, qualquer dado valor de RTTamostra pode ser atpico. Portanto, para estimar um RTT tpico, natural tomar alguma espcie de mdia dos valores de RTTamostra. O TCP mantm uma mdia, denominada RTTestimado, dos valores de RTTamostra. Ao obter um novo RTTamostra, o TCP atualiza RTTestimado de acordo com a seguinte frmula: RTTestimado = (1 - a) * RTTestimado + a * RTTamostra Esta frmula est escrita sob a forma de um comando de linguagem de programao. O valor recomendado de a a = 0,125 (isto , 1/8) [RFC 2988], caso em que essa frmula de torna: RTTestimado = 0,875 * RTTestimado + 0,125 * RTTamostra Onde RTTestimado uma mdia ponderada dos valores de RTTamostra. Essa mdia ponderada atribui um peso maior s amostras recentes do que s amostras antigas. Observao: O valor de "a" determina o peso das amostras mais recentes no clculo da mdia, por exemplo, se "a" vale 0,125, a ltima amostra analisada ter peso de 12,5% no valor de RTTestimado. Alm de ter uma estimativa do RTT, tambm valioso ter uma medida de sua variabilidade. O [RFC 2988] define a variao do RTT, RTTdesvio, como uma estimativa do desvio tpico entre RTTamostra e RTTestimado: RTTdesvio = (1 - b) * RTTdesvio + b * | RTTamostra - RTTestimado | Onde RTTdesvio uma MMEP (Mdia Mvel Exponencial Pura) da diferena entre RTTamostra e RTTestimado. Se os valores de RTTamostra apresentarem pouca variao, ento RTTdesvio ser pequeno; por outro lado, se houver muita variao, RTTdesvio ser grande. O valor recomendado para b 0,25.

[editar] Estabelecimento e gerenciamento da temporizao de retransmisso


Considerando-se dispor dos valores RTTestimado, RTTamostra e RTTdesvio, podese estabelecer um valor para a temporizao de retransmisso do TCP (IntervaloTimeOut). Este valor deve ser maior ou igual a RTTestimado, caso contrrio seriam enviadas retransmisses desnecessrias, porm no deve ser muito maior pois se houver perda de algum segmento, o TCP no o retransmitiria rapidamente, o que resultaria em grandes atrasos de transferncia de dados. Dessa forma, desejvel que o valor estabelecido para a temporizao seja igual a RTTestimado mais uma certa margem, que dever ser grande quando houver muita variao nos valores de RTTamostra e pequena quando houver pouca variao. Assim, o valor de RTTdesvio deve ser considerado: IntervaloTimeOut = RTTestimado + (4 * RTTdesvio)

[editar] Transferncia confivel de dados


Usa reconhecimentos positivos, temporizadores,nmeros de seqncia e paralelismo
Recuperao de perdas de segmentos Retransmisso rpida

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

[editar] Controle de fluxo [editar] Gerenciamento da conexo TCP


A maior parte dos ataques Web, atualmente, exploram vulnerabilidades apresentadas no gerenciamento das conexes TCP. Alm disso, importante observar, que o estabelecimento da conexo TCP interfere, significativamente, nos atrasos percebidos em nossa navegao. Portanto, saber como as conexes TCP so estabelecidas e finalizadas, possibilitando gerenci-las, bastante importante para garantia da confiabilidade inerente ao protocolo TCP. Para envio de pacotes entre hospedeiros, via TCP, necessrio, previamente, o estabelecimento de uma conexo entre cliente e servidor. Para tanto, so necessrias trs etapas, comumente chamada de apresentao de 3 vias (3 way handshake), conforme detalhado abaixo.

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.

Encerramento da conexo TCP

O que uma Rede de Computadores?


A primeira coisa que devemos entender ao comear a estudar redes entender o que uma rede. Quando falamos em redes de computadores, a maioria das pessoas pensa em uma srie de computadores ligados entre si por meio de cabos para trocarem dados ou ento pensa em grandes redes como a internet. A disciplina de Redes de Computadores de fato estuda estas coisas, mas ela tambm estuda muito mais coisas, pois o assunto de redes de computadores algo bastante amplo e possui uma quantidade enorme de aplicaes. Uma boa definio de Rede de Computadores' : Uma rede de computadores um conjunto de dois ou mais dispositivos (tambm chamados de ns) que usam um conjunto de regras em comum para compartilhar recursos (hardware, dados, troca de mensagens) uns com os outros atravs de uma rede. Perceba que qualquer tipo de dispositivo capaz de enviar ou trocar dados pode ajudar a compor uma rede, no apenas um computador. Por essa razo, quando falamos em componentes de rede, nos referimos eles como ns, e no computadores. Como exemplo de Redes de Computadores, podemos citar:

A Internet Uma rede local de uma empresa Uma rede de telefonia

Como exemplo de ns que vemos com freqncia conectados uma rede, podemos citar:

Terminais de computadores Impressoras Computadores Repetidores Pontes Roteadores Chaves

Nas prximas partes desse curso veremos em detalhes o que so cada uma destas coisas.

[editar] Conceitos Bsicos


Abaixo veremos alguns termos e expresses que so essenciais para que possamos estudar redes de computadores:

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.

[editar] Tipos Bsicos de rede


[editar] Classificao de redes pela rea Ocupada
Com relao rea que ocupam, uma rede pode ser classificada em:

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.

Alm destas duas classificaes principais, existem outras:

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.

[editar] Classificao de redes pela Topologia

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.

Obtido em "http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_ %C3%A0s_Redes_de_Computadores/Defini %C3%A7%C3%B5es_das_Redes_de_Computadores"

Arquitetura de Redes de Computadores


[editar] Descrio detalhada
O termo redes de computadores est cada vez mais em desuso com as novas tecnologias e dispositivos que esto sendo interconectados na internet pblica. Estes dispositivos conhecidos como sistemas finais no so unicamente compostos de computadores de mesa mas tambm de uma grande variedade de equipamentos que incluem telefones celulares, sistemas de automao residencial ou industrial, computadores portteis e aparelhos eletrnicos diversos. Estes sistemas finais so interconectados e percorrem uma rota ou caminho que passa por enlaces de comunicao (cabos, ondas, fibras pticas etc) e tambm por comutadores de pacotes (switches, hubs, roteadores etc). O primeiro o meio fsico responsvel pela transmisso em si enquanto o segundo faz o encaminhamento dos pacotes aos seus destinos. Os sistemas finais acessam a internet por meio de ISPs (provedores de servio de internet) de nvel baixo que so interconectados por ISPs de nvel alto, compostos por roteadores e sistemas de fibra ptica de altssima velocidade, obedecendo certas convenes de nomeao e endereo a fim de padronizar o acesso rede. Os protocolos controlam o envio e recebimento das informaes e envolvem todos os dispositivos que compem a internet, sendo o mais famoso deles o conjunto de protocolos conhecido como TCP/IP. Este protocolo, cujo nome vem dos protocolos mais importantes de pilha, TCP e IP, foi desenvolvido originalmente pela Universidade da Califrnia para o Departamento de Defesa dos EUA (DoD). Atualmente o TCP/IP o protocolo padro para redes locais e remotas.

[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:

Topologia em barramento: Topologia Anel: Topologia em estrela;

[editar] Tipos de cabo


Existem 3 tipos de cabo de rede: Cabo de par tranado no blindado (UTP - Unshielded Twisted Pair), cabo de par tranado blindado(STP - Shielded Twisted Pair), cabo de fibra ptica e cabo coaxial, que usado em redes antigas.

[editar] Camadas da pilha de protocolos TCP/IP


O TCP/IP foi implementado em uma arquitetura de pilhas, onde cada camada interage com a camada superior ou inferior a ela. A diviso superficial em camadas e alguns protocolos TCP/IP so mostrados abaixo: Camada Protocolo

4. Aplicao FTP, TORRENT, SMTP,POP3,HTTP 3. Transporte TCP,UDP,DCCP 2. Rede 1. Fsica ARP,RARP,IPv4,IPv6 BLUETOOTH,USB,ETHERNET

[editar] Descrio do servio


Atravs da internet os sistemas finais executam aplicaes distribudas (navegao na web, compartilhamento de arquivos, jogos em rede, troca de mensagens, adio, vdeo etc) que podem se comunicar entre si e dois servios so oferecidos a essas aplicaes: servio confivel orientado para conexo e servio no confivel no orientado para conexo. O primeiro geralmente mais lento que o segundo, mas oferece mais garantia quanto a integridade dos pacotes a serem transmitidos. Um dos problemas que a internet enfrenta que no h garantia de tempo que os pacotes levaro para ser transmitidos. O usurio pode apenas aumentar a velocidade de trfego entre sua rede e seu provedor de acesso, geralmente pagando mais ao seu provedor.

Protocolos de Rede - Conceitos


Podemos pensar em rede de computadores como diversas mquinas interligadas fisicamente entre si onde seus usurios promovem a troca de informao de seu interesse. Entretanto, uma rede no pode ser bem estabelecida considerando apenas o hardware como preocupao principal como nas primeiras redes, atualmente o software considerado uma das partes mais importantes na concepo de novas tecnologias de redes de computadores.

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).

[editar] Funes dos Protocolos


Uma das funes dos protocolos pegar os dados que sero transmitidos na rede, dividir em pequenos pedaos chamados pacotes, na qual dentro de cada pacote h informaes de endereamento que informam a origem e o destino do pacote. atravs do protocolo que as fases de estabelecimento, controle, trfego e encerramento,

componentes da troca de informaes so sistematizadas. O protocolo desempenha as seguintes funes:

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.

[editar] Servios de Rede


Um servio de rede um conjunto de operaes implementado por um protocolo atravs de uma interface, e oferecido camada imediatamente superior. Ele define o

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.

[editar] Classificao de servios

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/Meios fsicos de transmisso


De Wikiversidade

< 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

[editar] Meios Magnticos


Uma forma muito barata de se transportar dados de um lugar para o outro atravs de fitas magnticas ou discos flexveis. Apesar de simples muito confivel e, dependendo da maneira como feita, pode ser mais eficaz que muitos meios de transmisso guiados. Por exemplo, vamos supor que um usurio queira fazer um back-up de seu HD em outro computador localizado algumas quadras de distncia. Um HD de 80 GB porttil leva algumas horas para ser completamente preenchido em um computador e levando para outro. No entanto, transmitir 80GB em uma Internet ADSL comum levaria muito mais tempo.

[editar] Cabo Coaxial


O cabo coaxial formado por dois condutores separados e envoltos por um material isolante. O primeiro condutor, normalmente o cobre, mais rgido e est envolto pelo segundo condutor, este em forma de malha e normalmente de alumnio. Este segundo condutor, alm de ajudar na transmisso tambm responsvel por proteger o primeiro condutor contra interferncias magnticas. O cabo coaxial pode ser classificado de duas formas dependendo do material do condutor em malha. Quando este material o alumnio o cabo dito Cabo Coaxial Grosso (Resistncia de 75 ohms, transmisso numa velocidade de at 10 mbps a uma freqncia de 10 Ghz). Quando esse material cobre o cabo dito Cabo Coaxial Fino (Resistncia de 50 ohms, transmisso numa velocidade de at 10 mbps a uma freqncia de 2 Ghz).

[editar] Cabo de Par Tranado


O cabo de par tranado formado por pares de fios condutores entrelaados separados por material isolante. Cada par composto por um positivo e um negativo. Isso o que garante a proteo contra interferncias eletromagnticas. Os cabos de par tranado tambm podem ser divididos em duas subcategorias de acordo com a blindagem externa. Os cabos de par tranado sem blindagem externa so chamados de UTP. Os que possuem essa blindagem so os STP. Esse meio de transmisso muito utilizado em redes de computadores.

[editar] Fibra ptica


Os cabos de fibra ptica so filamentos de vidro ou de materiais polimricos com capacidade de transmitir sinais digitais sob a forma de sinais luminosos. Tal filamento pode apresentar dimetros variveis, dependendo da aplicao, indo desde dimetros nfimos, da ordem de micrmetros (mais finos que um fio de cabelo) at vrios milmetros. Graas a essa caracterstica, so cabos que conseguem ter uma velocidade ilimitada, se comparados com cabos eltricos. Tambm torna seu uso desejvel quando

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] Multimodo Degrau


Primeiro tipo de fibra ptica que surgiu, tambm o mais simples dos trs. Aqui, o ncleo e o revestimento esto claramente definidos. O ncleo formado por um nico tipo de material, tendo ento ndice de refrao constante, e dimetro varivel. Os raios de luz refletem no revestimento em vrios ngulos, resultando em comprimentos de caminhos diferentes para o sinal. Isto causa o espalhamento do sinal ao longo do cabo e limita a largura de banda do cabo. Este fenmeno chamado de disperso modal. A atenuao alta, fazendo com que essas fibras sejam utilizadas em transmisso de dados em curtas distncias e iluminao. Banda: at 35 Mhz.km Ncleo: entre 50 e 400 mm Atenuao: maior que 5 dB/km

[editar] Multimodo Refrao Gradual


Neste tipo de fibra ptica, a interface entre o ncleo e o revestimento alterada para propiciar ndices de refrao diferentes dentro do ncleo e do revestimento. Os sinais luminosos viajam no eixo do cabo encontrando uma grande refrao, tendo uma velocidade de transmisso baixa. Os raios que viajam na mesma direo do cabo tem um ndice de refrao menor e so propagados mais rapidamente. Com isso, todos os modos do sinal podero viajar a uma mesma velocidade efetiva no cabo, de maneira a reduzir a disperso modal. normalmente empregada nas telecomunicaes. Banda: at 500 Mhz.km Ncleo:entre 125 e 50 mm Atenuao: 3 dB/km

[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

[editar] Transmisso via rdio


Neste tipo de transmisso utilizamos varias caractersticas fsicas que as ondas de rdio podem oferecer. Elas so fceis de serem geradas, atravessam paredes, contornam objetos, so refletidas pela atmosfera e percorrem longas distancias. muito til quando se quer construir uma rede em regies onde esticar cabos coisa complicada, como em uma cidade cheia de prdios, ou dentro de um prdio ou em regies montanhosas. A desvantagem de utilizar ondas de rdio que elas podem causar interferncia em outros equipamentos, so absorvidas por obstculos, por exemplo, chuva e podem sofrer interferncia por motores ou outros equipamentos eltricos.

[editar] Ondas infravermelhas


As ondas infravermelhas so largamente utilizadas em controles remotos, por exemplo. Uma caracterstica importante desta onda que ela no pode atravessar objetos slidos. Assim, com essa tecnologia pede-se construir LAMs mais seguras contra espionagem eletrnica. Contudo, essas transmisses esto limitadas a 30 metros e possui largura de banda de at 30Mbps.

[editar] Outros meios


As redes tambm podem ser construdas por outros meios, que agora esto conquistando mercado. Entre eles:

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.

PLC (Power Line Communications)

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.

USB (Cabo de rede USB)

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/Comutao de circuitos e de pacotes


De Wikiversidade

< 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.

[editar] Comutao por Circuitos


A comutao por circuitos exige que as estaes comunicantes possuam um caminho dedicado exclusivo, que pode ser estabelecido de quatro maneiras: 1. Circuito fsico 2. Frequency Division Multiplexing (FMD - multiplexao por canais de frequncia) 3. Time Division Multiplexing (TMD - multiplexao por canais de tempo) 4. Statistical Time Division Multiplexing (STDM - multiplexao estatstica por canais de tempo) Este paradigma de comunicao executado em trs passos distintos e especficos:

Estabelecimento do circuito Troca de informaes Desconexo ponto a ponto

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.

[editar] Circuitos fsicos

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.

[editar] FDM - Frequency Division Multiplexing


Imagem de FDM disponvel no Flickr. Autor: David Sudjiman Website: davidsudjiman.info.

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.

[editar] TDM - Time Division Multiplexing


Imagem de TDM disponvel no Flickr. Autor: David Sudjiman Website: davidsudjiman.info.

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.

[editar] STDM - Statistical Time Division Multiplexing


Imagem de STDM disponvel no Flickr. Autor: David Sudjiman Website: davidsudjiman.info.

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] Comutao por Pacotes


A comutao por pacotes no exige o estabelecimento de um circuito dedicado para a comunicao, o que implica menores custos com meios fsicos. Este paradigma utiliza a idia da segmentao de dados em partes discretas, compostas de cabealho (com bits de verificao de integridade), corpo e rodap (onde realizada a verificao cclica de redundncia), que so denominados pacotes [4](ou outros nomes, como quadro, bloco, clula, segmento, dependendo do contexto). Neste tipo de comutao usada a multiplexao estatstica (STDM). Diferentemente do paradigma rival (por circuitos), neste o tempo alocado para os terminais mais ativos prioritariamente, porm sem o risco da quebra da conexo. Um exemplo so as conexes Ethernet, que comutam por pacotes e no perdem conexo. Os comutadores de pacotes utilizam uma das trs tcnicas seguintes: 1. Cut-through [5](corte de caminho) 2. Store-and-foward [6](armazena e passa adiante) 3. Fragment-free [7](livre de fragmentos)

[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] Circuitos Virtuais [8]


Cada roteador grava em uma tabela seus circuitos virtuais (VCs) e os identifica unicamente (para este comutador, dois roteadores podem referenciar um terceiro por identificadores diferentes). As tabelas so montadas por ordem hierrquica, ou seja, dos mais abrangentes para os menos. Aps a identificao e montagem das tabelas, necessrio primeiramente o comutador estabelecer um circuito para ento iniciar a transferncia de dados. O circuito implica que todos os pacotes seguiro o mesmo caminho durante a conexo. H uma grande desvantagem neste mtodo, pois ele vulnervel a pontos cegos. Caso um comutador saia do ar e este faa parte do circuito virtual h uma perda da conexo. O funcionamento assemelha-se ao sistema de uma transportadora, onde so definidas rotas para a entrega de mercadorias.

[editar] SVC Switched Virtual Circuit[9]


O circuito estabelecido dinamicamente, sob demanda, e encerrado assim que finda a transmisso. Seu estabelecimento segue os mesmos passos de uma comutao por circuitos. A alocao temporria de banda permite a disponibilidade quase constante de recursos, uma vez que assim que concluda a comunicao encerrada a conexo. No entanto, h um alto consumo de banda no estabelecimento e no encerramento dos circuitos, pois necessrio percorrer todos os ns.

[editar] PVC Permanent Virtual Circuit[10]


Nesta implementao, o circuito virtual entre dois pontos finais de servio estabelecido permanentemente, ficando dedicado transferencia de dados. Os circuitos virtuais permanentes (PVC) so bastante utilizados por fornecedores de servios pblicos ATM para criar e estabelecer uma complexa infra-estrutura baseada em ATM para as respectivas redes internas. Em muitos casos, a infra-estrutura interna ATM da rede construda utilizando PVCs com ligaes ponto a ponto que ocorrem em circuitos vituais comutados (SVC, switched virtual circuit). H tambm um menor consumo de banda no estabelecimento e encerramento da conexo, no entanto a alocao permanente satura a rede por garantir banda e trfego constantes. E muito utilizada em aplicaes que exigem fluxo constante de informaes.

[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)

[editar] Comutao de circuitos vs. Comutao de pacotes [12]


A comutao de circuitos e a comutao de pacotes diferem em diversos aspectos. Nesta seo, faremos uma comparao entre estas duas tcnicas, no que diz respeito a configurao de chamada, forma de envio de dados/pacotes, suscetibilidade a falhas, congestionamento, transparncia e tarifao. Na comutao de circuitos, necessrio estabelecer, previamente, um caminho fim-afim, para que os dados possam ser enviados. Isso garante que, aps a conexo ter sido efetuada, no haver congestionamento e os dados sero enviados de forma ordenada. Entretanto, configurar um caminho com antecedncia provoca reserva e provvel desperdcio de largura de banda. Esse tipo de comutao no muito tolerante a falhas, sendo que na inatividade de um switch, os circuitos que o utilizam sero encerrados. Os bits fluem continuamente pelo fio e a tranmisso de dados feita de forma transparente, ou seja, o transmissor e o receptor determinam a taxa de bits, formato ou mtodo de enquadramento, sem interferncia da concessionria de comunicaes, o que proporciona, por exemplo , a coexistncia de voz, dados e mensagens de fax no sistema telefnico. J na comutao de pacotes, no necessrio estabelecer uma comunicao previamente. Assim sendo, diferentes pacotes podero seguir caminhos distintos, dependendo das condioes da rede no momento em que forem enviados, no chegando, necessariamente, ao receptor de forma ordenada. Existe, entretanto, a possibilidade de atraso/congestionamento em todos os pacotes, uma vez que no reservada, antecipadamente, largura de banda para a transmisso. Esta tcnica mais tolerante a defeitos e, em caso de inatividade de um switch, os pacotes so roteados de modo a contornar os inativos. utilizada a transmisso store-and-forward, na qual os pacotes so reservados na memria de um roteador, e depois de inspecionados em busca de erros, so enviados ao roteador seguinte. Por fim, essa transmisso no se d de forma

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/Pilha de protocolos da Internet


De Wikiversidade

< 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

[editar] Protocolos e Camadas


Para que duas mquinas se comuniquem, necessrio haver um certo grau de cooperao. "Em vez de implementar a lgica para isso como um nico mdulo, a tarefa dividida em subtarefas, cada qual implementada separadamente."[3]. Ento desenvolveu-se a arquitetura da Internet em camadas. A modularizao facilita o entendimento das funes e tambm a deteco de erros. Cada camada tem caractersticas prprias. Assim, surgiu a pilha de protocolos da Internet (ou pilha TCP/IP), que formada pelos protocolos que regem a comunicao na Internet. Nessa arquitetura em forma de pilha, as camadas inferiores fornecem servios s camadas superiores, de forma que estas no

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] Modelos OSI e TCP/IP


Quando a Internet surgiu, no existia ainda um modelo padro para suas aplicaes, ela simplesmente "funcionava". Ento, criaram o modelo OSI (Open Systems Interconnection - Interconexo de Sistemas Abertos), que descreve toda a comunicao em 7 camadas: Aplicao, Apresentao, Sesso, Transporte, Rede, Enlace de Dados e Fsica. Esse modelo descreve e separa cada parte da comunicao, porm, trata-se de um modelo complexo, que no realmente implementado pela Internet. Surgiu ento o modelo para descrev-la, o modelo TCP/IP, baseado em seus dois principais protocolos (o TCP e o IP). O modelo TCP/IP em si no muito utilizado, mas mais prximo realidade da comunicao na grande rede mundial. Ser explicado aqui as camadas do modelo TCP/IP, com algumas adies, fornando o modelo Hbrido, pois este une a didtica de um lado, e a utilizao prtica da internet do outro.

[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.

[editar] Enlace de Dados


A camada de Enlace responsvel por dar acesso ao meio fsico de comunicao. Como uma camada bem prxima transferncia de bits, ela tambm fornece correo de erros, atravs da Checagem Cclica de Redunncia (CRC - Cyclic Redundancy Checksum). Tambm responsvel por fazer o controle do fluxo de bits, de forma que o receptor possa receber os dados a uma velocidade que possa processar. Essa camada

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] Endereo MAC (MAC Address)


O endereo MAC (Media Access Control) o endereo fsico nico de uma interface de rede. Todos os dispositivos que esto conectados rede local Ethernet, possuem interfaces endereadas: estaes de trabalho, impressoras, roteadores e switches, etc. O IEEE controla o espao de endereamento Ethernet e distribui faixas de endereos aos fabricantes. Cada faixa consiste de um identificador de 24 bits ( 3 primeiros dos 6 bytes - pares hexadecimais), chamado Organizationally Unique Identifier (OUI). Cada fabricante adquire um ou mais OUIs e produz interfaces de rede cujos endereos so compostos do seu OUI concatenado com um nmero de 24 bits ( 3 ltimos bytes) que identifica a interface. Apesar de ser nico, praticamente todo hardware hoje permite a alterao do endereo MAC. Isso acontece devido ao fato de as interfaces de rede terem o MAC gravado em memria ROM, a qual depois copiada para a RAM, com a inicializao da placa de rede, o que abre brechas para sua modificao. Tal modificao conhecida como MAC spoofing, uma tcnica em que se altera o endereo MAC, muitas vezes para fins maliciosos.

[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]

Introduo s Redes de Computadores/Histria da Internet

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.

[editar] A Proliferao de Redes 1980-1990


Ao final da dcada de 1970, aproximadamente 200 mquinas estavam conectadas ARPAnet, ao final da dcada de 1980, o nmero de mquinas ligadas a internet pblica, uma confederao de redes muito parecida com a internet de hoje, alcanaria 100 mil. A dcada de 1980 seria uma poca de formidvel crescimento. Grande parte daquele crescimento foi consequncia de vrios esforos distintos para criar redes de computadores para interligar universidades. A BITNET processava emails e fazia transferncia de arquivos entre diversas universidades do nordeste dos Estados Unidos. A CSNET (computer science network rede da cincia de computadores) foi formada para interligar pesquisadores de universidades que no tinham acesso a ARPAnet. Em 1986, foi criada a NSFNET para prover acesso a centros de super-computao patrocinados pela NFS. Partindo de uma velocidade inicial de 56 kbps, ao final da dcada o backbone da NSFNET estaria funcionando a 1.5 Mbps e servindo como backbone primrio para interligao de redes regionais. Na comunidade da ARPAnet, j estavam sendo encaixados muitos dos componentes finais da arquitetura da internet de hoje. No dia 1 de janeiro de 1983, o TCP/IP foi adotado oficialmente como o novo padro de protocolo de maquinas para a ARPAnet (em substituio ao protocolo NCP). Devido a importncia do evento, o dia da transio do NCP para o TCP/IP foi marcado com antecedncia a partir daquele dia toda as maquinas tiveram de adotar o TCP/IP. No final da dcada de 1980, foram agregadas importante extenses ao TCP para implementao do controle de congestionamento baseado em hospedeiros. Tambm foi desenvolvido o sistema de nomes de domnios (DNS) utilizado para mapear nomes da internet fceis de entender para endereos IP de 32 bits. Paralelamente ao desenvolvimento da ARPAnet (que em sua maior parte devese aos Estados Unidos), no inicio da dcada de 1980 os franceses lanaram o projeto Minitel, um plano ambicioso para levar as redes de dados para todos os lares. Patrocinado pelo governo francs, o sistema Minitel consistia em uma rede publica de comutao de pacotes (baseada no conjunto de protocolos X.25, que usava circuitos virtuais), servidores Minitel e terminais baratos com modens de baixa velocidade embutidos. O Minitel transformou-se em um enorme sucesso em 1984, quando o governo francs forneceu, gratuitamente, um terminal para toda residncia francesa que quisesse. O sistema Minitel inclua sites de livre acesso como o da lista telefnica e tambm sites particulares, que cobravam uma taxa de cada usurio baseada no tempo de utilizao. No seu auge, em meados de 1990, o Minitel oferecia mais de 20 mil servios, que iam desde home banking ate bancos de dados especializados para pesquisa. Era usado por mais de 20% da populao da Frana, gerava receita de mais de um bilho de dlares por ano e criou dez mil empregos. Estava presente em grande parte dos lares franceses dez anos antes de a maioria dos norte-americanos ouvir falar em internet.

Introduo s Redes de Computadores/Protocolos de aplicao princpios gerais


De Wikiversidade

< 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

[editar] Arquiteturas de aplicao


Uma Arquitetura de Aplicao define a estrutura de comunicao entre os utilizadores da aplicao. Existem basicamente trs tipos de arquitetura: Cliente-Servidor, Peer-toPeer e uma arquitetura hbrida, que uma mescla das outros duas. Ao contrario de uma arquitetura de rede, que fixa, ou seja, prov um conjunto especfico de servios as aplicaoes, a arquitetura de aplicao deve ser escolhida pelo desenvolvedor da aplicao, determinando o modo que a aplicao vai se comportar nos sistemas finais em uma rede. Com essa classificao segundo a arquitetura (cliente-servidor, P2P ou hbrida) pode-se entender melhor como se comportam as aplicaes em uma rede. Em qualquer uma dessas arquiteturas, uma aplicao se comunica atravs de pares de processos, onde um rotulado cliente e outro servidor. Mesmo em uma aplicao do tipo P2P, o par que

solicita um arquivo de outra mquina, denominado cliente, e o outro que fornece o servidor.

[editar] Cliente e Servidor


Este modelo praticamente ocupava a nica possibilidade e acabava assumindo como unanimidade o posto de arquitetura de aplicao, isso ocorria devido a computadores poderosos, com muita memria, serem muito caros. Com isso, a tendncia era que existissem computadores potentes que centralizassem esses efeitos, por isso MainFrames eram utilizados para armazenar dados de clientes para fazer operaes remotas. Na atualidade, apesar do avano da tecnologia, trazendo computadores pessoais com maior possibilidade de processamento e de memria, com custo baixo, esse modelo ainda se apresenta com muita fora e aparentemente ter foras para continuar por muito tempo ainda. No modelo de arquitetura Cliente-Servidor, existem dois processos envolvidos, um no host cliente e um outro no host servidor. A comunicao acontece quando um cliente envia uma solicitao pela rede ao processo servidor, e ento o processo servidor recebe a mensagem, e executa o trabalho solicitado ou procura pelos dados requisitados e envia uma resposta de volta ao cliente, que estava aguardando. Nesta arquitetura o servidor tem uma aplicao que fornece um determinado servio e os clientes tem aplicaes que utilizam este servio. Uma caracterstica desta arquitetura, que um cliente no se comunica com outro cliente, e o servidor, que tem um endereo fixo, esta sempre em funcionamento. Quase sempre um nico servidor incapaz de suportar as requisies de todos os clientes, devido a isso, na maioria dos casos so utilizados vrios servidores que constituem um servidor virtual (server farm). Um exemplo claro de aplicao Cliente-Sevidor a comunicao entre um browser, que usado para visualizar pginas da internet, em um servidor web. Neste tipo de aplicao o cliente (browser) e o servidor (servidor web) comunicam-se trocando mensagens atravs do protocolo HTTP.

[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.

[editar] A Comunicao entre os Processos


Na Internet, as aplicaes devem "conversar" entre si, ou seja, o que o usurio deseja deve ser entendido pela outra mquina e respondido. Essa comunicao feita entre os processos, atravs da troca de mensagens. O remetente cria mensagens com seus

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.

[editar] Protocolos de Camada de Aplicao


Para que dois processos se comuniquem, eles devem trocar mensagens. Porm, necessrio haver regras que padronizem como sero trocadas e tratadas essas mensagens. Por isso, existem os protocolos da camada de aplicao. Como em Tanenbaum[2], "mesmo na camada de aplicao existe a necessidade de protocolos de suporte, a fim de permitir que as aplicaes funcionem." necessrio definir os tipos de mensagens a serem trocadas, a sintaxe dos vrios tipos de mensagens, a semntica dos campos que compem as mensagens e as regras que determinam quando e como um processo envia e responde as mensagens. No entanto, como explica Kurose, importante no confundir os protocolos de camada de aplicao com as aplicaes. So conceitos diferentes, apesar de os protocolos serem uma parcela significativa de uma aplicao. Uma aplicao a interface com o usurio, ou seja, aquilo que realmente acessado. Os protocolos se responsabilizam por definir como os processos iro se comunicar e como iro tratar as mensagens, para expor o que foi solicitado pelo usurio em sua aplicao. Por exemplo, para acessar uma pgina Web, um usurio executa um programa Browser e solicita uma pgina. O Browser usa o protocolo HTTP para enviar o pedido da pgina, assim como o servidor usa o mesmo protocolo para aceitar a requisio e devolver a pgina solicitada. O Browser interpreta a mensagem vinda do servidor e apresenta a pgina. Dentre os protocolos de aplicao, pode-se citar: HTTP (HyperText Transfer Protocol), HTTPS (HyperText Transfer Protocol over Secure Socket Layer), FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol), Telnet, POP3 (Post Office Protocol version 3), e muitos outros.

[editar] O protocolo de Transporte para uma Aplicao


Uma aplicao necessita escolher um tipo de protocolo da camada de transporte, para que as mensagens sejam entregues a aplicao de destino. Uma vez feito essa escolha, a

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.

Introduo s Redes de Computadores/WWW e HTTP


De Wikiversidade

< Introduo s Redes de Computadores Ir para: navegao, pesquisa

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

7.4 Utilizao dos Cookies

[editar] Protocolo HTTP


O protocolo HTTP, Hypertext Transfer Protocol ou Protocolo de Transferncia de Hipertexto, um protocolo da camada de aplicao do TCP/IP cuja funo de

proporcionar a transferncia de hipertexto. Este protocolo usado desde 1990, atualmente est na verso 1.1.

[editar] Caractersticas do Protocolo HTTP


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.

[editar] Passos para uma comunicao HTTP


1. 2. 3. 4. 5. estabelecida uma conexo TCP entre o programa cliente e o servidor. O cliente envia uma requisio HTTP para sua interface socket. O TCP leva essa mensagem para a interface socket do servidor. O servidor envia uma resposta HTTP para sua interface socket. O TCP leva essa resposta para a interface socket do cliente.

[editar] Conexes Persistentes e No Persistentes


A verso HTTP/1.0 utiliza conexes TCP no persistentes na comunicao clienteservidor. J a verso 1.1 deste protocolo utiliza conexes persistentes.

[editar] Conexes No Persistentes


Neste tipo de conexo, cada objeto requisitado pelo cliente ao servidor transportado por uma conexo TCP, que se encerra imediatamente aps a confirmao do recebimento do objeto. Desta forma, se um documento HTML, por exemplo, referenciar outros n objetos, como arquivos JPEG, GIF, entre outros, n conexes TCP devero ser estabelecidas para transferncia destes arquivos, alm da conexo para obteno do prprio arquivo HTML. Os browsers podem ter interpretaes diferentes, pois o HTTP define apenas o protocolo de comunicao entre o cliente e o servidor. Podem ser configuradas conexes paralelas reduzindo o tempo de resposta. Por padro, os browsers utilizam entre 5 e 10 conexes paralelas.

[editar] Conexes Persistentes


As conexes do tipo persistente so caracterizadas pelo fato da conexo TCP permanecer aberta aps o envio da resposta, ou seja, a conexo persiste durante o recebimento de todos os objetos referenciados. A requisio e a resposta utilizam-se da mesma conexo, esta fechada quando no usada por um tempo configurvel. Desta forma, apenas uma conexo TCP necessria para o recebimento completo de uma pgina Web. Alm disso, outras pginas Web que estejam no mesmo servidor podem

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] Formato da Mensagem HTTP


Existem dois tipos de mensagem HTTP: requisio e resposta.

[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.

[editar] Cache WEB ou Servidores Proxy


Nos ltimos anos o nmero de usurios da Internet aumentou de maneira significativa e esse nmero cresce a cada ano. Com isso, se nenhum mecanismo de controle de banda ou constante aumento dessa banda, o tempo de resposta em uma requisio de um cliente a um servidor pode demorar muito. Para amenizar o impacto desses usurios na rede um mecanismo barato que tem sido largamente implementado o cache web. A ideia do cache web ou servidor proxy muito simples: o cliente web se conecta ao cache web para obter determinado contedo. Se o cache web no tiver o contedo solicitado armazenado, ele faz requisio ao servidor web de destino. O contedo ento repassado primeiro ao cache web, que o armazena e s ento repassado ao cliente web de destino. Pode-se dizer ento que o proxy tanto um servidor quanto um cliente. Nesse processo tem-se um notvel ganho de desempenho quando uma mesma pgina requisitada vrias vezes por clientes web, pois o contedo solicitado est armazenado numa maquina local. Outro benefcio que tento o servidor web quanto a rede externa

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] Funcionamento dos Cookies


A comunicao do cookie acontece basicamente em trs etapas: 1. O Navegador solicita uma pgina 2. O Servidor responde com a pgina + o cookie 3. O Navegador pede outra pgina j utilizando o cookie

[editar] Parmetros dos Cookies


Todo arquivo de cookie, tem alguns paramtros bsicos. Dentre eles: 1. 2. 3. 4. Nome Valor Tempo de Vida Domnio

[editar] Utilizao dos Cookies


Como exemplo de servios que utilizam os cookies em larga escala, temos: 1. 2. 3. 4. 5. Comrcio Eletrnico Google Accounts Redes Sociais Bancos On-Line Blogs

Obtido em "http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_ %C3%A0s_Redes_de_Computadores/WWW_e_HTTP"

Introduo s Redes de Computadores/FTP


De Wikiversidade

< Introduo s Redes de Computadores Ir para: navegao, pesquisa

[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.

[editar] Comandos FTP


No RFC 959 so definidos 33 comandos, que podem ser utilizados por um usurio em um terminal, embora seja mais comum que as aplicaes tenham interfaces que blindem o usurio destas linhas de comando. As instrues so no formato ASCII, de 7 bits, em caracaters maisculos, com ou sem argumentos. Alguns dos comandos mais comuns so USER username, PASS password, RETR filename etc. Os nomes so auto-explicativos. USER usado para o usurio especificado no argumento se conectar ao servidor FTP. RETR usado para recuperar um arquivo, especificado pelo argumento filename, e assim sucessivamente. Outros comandos so mostrados na tabela abaixo: Comando ascii BIN CD GET HASH PUT QUIT ou BYE Descrio Transfere arquivos no modo ASCII. Neste modo, h converso de formatos, caso os sistemas operacionais envolvidos sejam diferentes. Transfere arquivos no modo binrio, no alterando nenhum bit do arquivo Permite mudar o diretrio remoto Transfere um arquivo da mquina remota para a local. Para transferir mais de um arquivo usa-se mget Imprime "#" a cada 1024 bytes transferidos. importante para a visualizao do progresso de transferencia de arquivos Transfere um arquivo da mquina local para a remota. Para transferir mais de um arquivo usa-se mput Levam ao encerramento da conexo de controle levando ao trmino da conexo do FTP

LR ou DIR Listam o contedo do diretrio atual

Introduo s Redes de Computadores/Correio eletrnico


De Wikiversidade

< Introduo s Redes de Computadores Ir para: navegao, pesquisa

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

[editar] Correio Eletrnico


[editar] Introduo

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.

[editar] Arquitetura e servios [2]


Os sistemas de correio eletrnico so organizados em dois subsistemas: agentes de usurio, responsveis pela leitura e envio das mensagens e agentes de trasnferncia/transporte de mensagem. Os agentes de usurio so programas locais, cujos mtodos podem ser baseados tanto em comandos como em menus/grficos, o que permite interao com o sistema de correio eletrnico. Os agentes de transferncia, por sua vez, so responsveis por executar tarefa em 2 plano, ou seja, pela movimentao das mensagens por todo o sistema. Um sistema tpico de correio eletrnico apresenta 5 funes bsicas, quais sejam:

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.

[editar] Protocolos de envio


Geralmente so utilizados pelos MTAs para envio de mensagens, e executam as transferencias de dados.

[editar] UUCP [6][7]


O primeiro protocolo de transferencia desenvolvido foi o UUCP (Unix to Unix CoPy), sob regncia do RFC 976. Surgiu e foi bastante difundido por volta dos anos 80. Inicialmente foi utilizado na ARPANET, para troca de mensagens entre Universidades. Como funcionava sobre redes comutadas por circuitos (e portanto a tarifao era por tempo de conexo), e ainda por ser necessrio uma conexo entre cada cliente, que muitas vezes estavam em outros pases, era comum implantar um sistema concentrador de atividades.

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.

[editar] SMTP [8][9]


SMTP, ou simple mail transfer protocol, conforme define o RFC 2821, o protocolo mais utilizado atualmente para transmisso de mensagens de correio eletrnico. O protocolo utilizado pelo MTA para transferir a mensagem, e ele serve justamente para definir padres de como entregar, e como interpretar os ados enviados. O padro exige a codificao de binrio em ASCII, e decodificao ASCII para binrio na passagem ao MDA. Em geral, uma transferencia SMTP direta entre o servidor de origem e o de destino, no passando por nenhum intermedirio. Os servidores armazenam as mensagens caso no possam ser entregues de imediato, por qualquer falha ou impedimento. A conexo feita na porta TCP 25. A comunicao entre servidores SMTP estabelecida sobre o protocolo TCP/IP, com a identificao dos conectantes. Aps estabelecida a conexo, h a troca de comandos entre o cliente e o servidor, iniciando-se com a identificao do remetente, aps do destinatrio, e por fim a mensagem.

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

[editar] MIME [10]


MIME no um protocolo de transmisso de e-mails. um formato de codificao dos caracteres utilizados na escrita do e-mail, ele serve para que letras em outros padres de codificao diferentes do ASCII no sejam truncadas, e para transmisso de dados multimdia. Significa Multipurpose Internet Mail Extensions, e regido pelas RFC 2045 e RFC 2046. MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1_ad752a574aae1a24143bb0f4add1f60d" --b1_ad752a574aae1a24143bb0f4add1f60d Content-Type: text/plain; charset = "iso-8859-1" Content-Transfer-Encoding: quoted-printable Exemplo de cabealho MIME O cabealho MIME utiliza-se basicamente de dois elementos fundamentais: contenttype e content-transfer-encoding. O content-transfer-encoding indica qual codificao foi utilizada para transformar o contedo da mensagem em ASCII para o envio por SMTP. Sem este dado a mensagem

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] Protocolos de recebimento


Os protocolos de recebimento permitem ao usurio pegar arquivos e mensagens de sua caixa postal para seu computador local. Os protocolos utilizados para este fim so basicamente trs: HTTP, IMAP E POP3.

[editar] POP3 [11][12]


Protocolo de acesso extremamente simples, definido pelo RFC 1939. Seu nome vem da abreviao de Post Office Protocol verso 3. H basicamente tr~es passos que devem ser executados: autenticao, transao e atualizao. Na autenticao, aps estabelecida a conexo, o cliente fornece um nome de usurio e um senha, sem nenhuma obfuscao. Aps, h duas opes para a transao: ler-e-apagar, e ler-e-guardar, o que influencia nos comandos que devem ser passados ao servidor. Na fase de atualizao, que ocorre aps o trmino da conexo, o servidor apaga ou marca como lida as mensagens, conforme definido na fase de transao. Embora seja a 3 verso deste protocolo, ele muito simples. Utiliza-se basicamente de 6 comandos: user, pass, list, retr, dele e quit. Responde basicamente de duas formas: err quando um comando est incorreto, e ok quando o comando foi compreendido. A conexo feita na porta TCP 110. Embora simples, o mais indicado para pessoas que acessam e-mail de apenas um local.

[editar] IMAP [13]


O protocolo IMAP (Internet Message Access Protocol) mais robusto que o POP, e est em sua quarta verso, primeira reviso., definido na RFC 3501. Seu poder aumentou sua complexidade relativamente ao POP. O IMAP ideal para usurio nmades, que acessam de diversos pontos, pois permite a gerncia remota de aes, inclusive entre sesses. No entendeu? Voc organiza sua mensagens na pasta local e elas so organizadas similarmente na sua caixa postal, com comandos do usurio. H tambm a vantagem de poder receber somente determinada parte de uma mensagem, nos casos de uma conexo lenta, estreita, ou muito cara (como celular por exemplo). Neste caso o usurio pode filtrar para receber parte da mensagem, escolher quais contedos baixar, ou seomente mensagens pequenas. O poder que este protocolo confere imenso. Vale a pena ler a RFC 3501.

[editar] Protocolos hbridos

[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.

Introduo s Redes de Computadores/DNS


De Wikiversidade

< Introduo s Redes de Computadores Ir para: navegao, pesquisa

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

[editar] Domain Name Service - DNS


Na internet as pginas web so geralmente conhecidas pelo seu apelidos ou nome de hospedeiro (hostname). Embora sejam quase que exclusivamente conhecidas por esse nome, todos os hospedeiros so identificados tambm pelo seu endereo IP. O endereo IP formado por 4 bytes e possui uma estrutura hierrquica rgida, de forma que quando examinamos este endereo da esquerda pra direita vamos obtendo cada vez mais informaes sobre sua localizao na internet, coisa que no possvel examinando apenas seu nome de hospedeiro. Enquanto as pessoas preferem identificar esses hospedeiros pelo seu nome por serem mais fceis de serem lembrados, os roteadores preferem identific-los pelo seu endereo

IP, mais fceis de serem processados por no possuirem caracteres alfanumricos de tamanhos variveis.

[editar] Histria do DNS [1]


O DNS foi criado a partir da necessidade existente de traduzir os complicados nmeros IP para um tipo de mais alto nvel, que poderia ser relembrado com facilidade por pessoas comuns. Com certeza foi um ponto de apoio para o crescimento exponencial que a rede sofreu. Sua criao data do ano de 1983 pelo americano Paul Mockapetris, que fez o trabalho a pedido de Jonathan Postel, um grande personagem que esteve presente na criao da ARPANET e foi editor dos RFCs. Paul descreveu o sistema de nomes nas RFCs 882 e 883, posteriormente o protocolo foi reformulado nas RFCs 1034 e 1035. A primeira implementao do DNS foi criada por um grupo de quatro estudantes da Universidade da Califrnia Berkeley. Essa implementao foi melhorada no ano seguinte, dando vida ao software que at hoje mais conhecido servidor de domnios, o BIND (Berkeley Internet Name Domain). Todo o restante a saber o roberto j escreveu...

[editar] Servios fornecidos pelo DNS [2]


A tarefa de traduzir um nome de hospedeiro para endereo IP feita pelo DNS (domain name system - sistema de nomes de domnio), que basicamente um conjunto de servidores distribuidos de forma hierrquica que recebe o nome de hospedeiro que o usurio deseja e devolve o endereo IP correspondente. O protocolo DNS utiliza o protocolo UDP e a porta 53 para comunicao. Alm de ser identificado pelo seu nome de hospedeiro, um hospedeiro pode tambm ser identificado por um ou mais apelidos que simplificam um nome de hospedeiro complicado ou muito grande. O DNS pode ser chamado neste caso para obter o nome de hospedeiro (tambm conhecido como nome cannico) e o endereo IP correspondente ao apelido fornecido, assim como para certos servidores de correio que possuem apelido para simplificar o seu nome cannico. O DNS tambm pode ser usado para fazer distribuio de carga entre servidores web ou de e-mail replicados, principalmente para sites movimentados que rodam em vrios servidores e possuem endereos IP diferentes.

[editar] Modo de funcionamento do DNS [3]


Os servidores DNS so distribudos de forma hierrquica entre vrios servidores por todo o mundo, de forma que no concentre todo o processo em um nico servidor, o que sobrecarregaria o mesmo, tornaria o processo mais lento e mais sujeito a falhas. Os servidores DNS dividem-se em trs classes:

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.

[editar] Registros e Mensagens DNS


As informaes sobre o DNS so armazenadas em zonas. Em uma zona pode haver informaes sobre um ou mais domnios. As informaes so adicionadas em uma zona do DNS, atravs da criao de registros de recursos (RR). Um RR corresponde a uma tupla composta basicamente de quatro elementos (nome, valor, tipo e TTL-Tempo de vida til do RR) e ele fornece mapeamentos de hospedeiros para endereos IP. Cada mensagem de resposta DNS carrega um ou mais registros de recursos. Abaixo segue uma descrio dos principais tipos de RRs:

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/Programao com sockets


De Wikiversidade

< 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.

[editar] Programao de aplicaes TCP


Inicialmente o cliente deve contactar o servidor. Para isso, o processo servidor j deve estar executando o programa antes de ser contactado alm de j ter criado o socket (porta) que aceita o cotato do cliente. O cliente contacta o servidor criando um socket TCP local e especifica o endereo IP e o nmero da porta do processo servidor. Quando o servidor contactado o servidor cria um novo socket para se comunicar com o cliente,

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.

Socket connectionSocket = welcomeSocket.accept();

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.

BufferedReader infoDoCliente = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()); String mensagemDoCliente = infoDoCliente.readLine();

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();

[editar] Programao de sockets com UDP


A comunicao entre processos tambm possvel por UDP. Entretanto, UDP um servio sem conexo. Com isso, no h o three-way handshaking (ou apresentao de trs vias)inicial, e assim no h um canal pr-estabelicido entre os processos. Para que a comunicao entre os processos seja possvel, deve-se incorporar ao conjunto de bytes enviados tanto o endereo IP do destino quanto a porta do processo de destino. Este conjunto (bytes + endereo IP + porta) recebe o nome de pacote. Com o pacote criado, ele colocado na rede atravs do socket. O processo receptor dever abrir o pacote para retirar as informaes pertinentes. Sendo o UDP um servio sem conexo, no h garantias de que o pacote realmente chegar ao seu destino. Na comunicao por TCP, no necessrio que todas as cadeias de bytes recebam endereo IP e nmero de porta, j que existe uma tubulao virtual, pela qual as cadeias fluem, que possui estas informaes adicionais. J na comunicao por UDP, no havendo esta tubulao virtual, torna-se necessrio que as cadeias de bytes sejam organizados em pacotes, todos com endereo IP e nmero de porta. Abaixo segue uma exemplo de programao em socket com UDP. Assim como dito anteriormente, o objetivo aqui no ensinar java, mas sim exemplificar programao com sockets. Comecemos pela parte do servidor.
DatagramSocket serverSocket = new DatagramSocket(9876);

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) { ... }

Loop infinito, onde o servidor fica esperando o recebimento de pacotes.


DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.receive(receivePacket);

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();

int port = receivePacket.getPort();

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];

Estes dois vetores armazenaro os dados enviados e recebidos respectivamente.


DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAdress, 9876);

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"

Introduo s Redes de Computadores/Introduo camada de transporte


De Wikiversidade

< Introduo s Redes de Computadores Ir para: navegao, pesquisa

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

[editar] Introduo Camada de Transporte


A camada de transporte, dentro do modelo TCP/IP, localiza-se abaixo da camada de aplicao e acima da camada de rede (Internet). A principal finalidade dessa camada manter a comunicao entre dois hosts, ou seja, ela responsvel pela transferncia fima-fim, de maneira eficiente, confivel e econmica de dados entre uma mquina de origem e uma mquina de destino. A camada de transporte prev dois protocolos, o primeiro deles o TCP (Transmission Control Protocol protocolo de controle de transmisso), que um protocolo orientado a conexes confivel, ou seja, ele permite a

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.

[editar] Multiplexao e Demultiplexao


Enquanto que a camada de rede prov uma comunicao host a host, a camada de transporte prov uma comunicao processo a processo. Para realizar essa ampliao do servio provido pela camada de redes, 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. O mtodo de receber os dados do processo utilizando uma determinada porta, colocar um cabealho e enviar a um determinado processo de outro host chamado de multiplexao.

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.

[editar] Protocolo UDP


O protocolo UDP um dos protocolos utilizados pela camada de transporte. A idia central do protocolo receber os dados de um processo e entregar ao processo de destino. No leva em considerao o congestionamento da rede, ou uma entrega confivel dos dados, apenas a multiplexao e demultiplexao. A grande vantagem do UDP em relao ao TCP (outro protocolo da camada de transporte) est na velocidade de transmisso, relevando a confiabilidade na entrega dos pacotes. Nas aplicaes onde velocidade mais importante do que a ordem em que os pacotes so recebidos, como jogos, vdeos e msicas, o UDP prefervel. Abaixo, segue uma breve apresentao do Cabealho UDP, no qual podemos notar a tamanha simplicidade deste protocolo, bem como uma ilustrao da idia do UDP, que a de transmitir (busca pelo tempo real, velocidade), independentemente da chegada ou no dos pacotes no destinatrio (sem garantia de envio/ recebimento).

[editar] Protocolo TCP


O protocolo TCP outro protocolo utilizado pela camada de transporte. A idia central deste protocolo prover confiabilidade no transporte dos dados, no deixando de lado o trfego na rede (controle de congestionamento) e a multiplexao e demultiplexao. A grande vantagem do TCP em relao ao TCP est na confiabilidade em que os dados so entregues ao remetente. Este protocolo prov mecanismos que garantem que todos os dados repassados a camada de aplicao no esto corrompidos. Desta forma um host A pode enviar um arquivo ao host B tendo a certeza de que o arquivo, caso seja entregue camada de aplicao do host B, est ntegro. O Tcp orientado a conexo, isto , um host estabelece uma conexo com outro host, de forma que um pode enviar dados para o outro em modo full duplex. O TCP, portanto, prov transferncia confivel de dados entre processos rodando em sistemas finais. A comunicao entre os dois aplicativos se d como se eles estivessem fisicamente interligados por um cabo, embora ambos possam estar a milhares de quilmetro de distncia um do outro.

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/Multiplexao e demultiplexao


De Wikiversidade

< 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

[editar] Multiplexao e Demultiplexao na camada de transporte


Sabe-se que o servio de multiplexao e o de demultiplexao de extrema importncia para todas as redes de computadores. No entanto, aqui ser enfatizado seu uso na camada de transporte. A camada de transporte, em um hospedeiro de destino, recebe segmentos da camada de rede que fica abaixo dela( isso acontece, analisando uma abordagem top-down), a qual tem o dever de entregar todos os dados desses segmentos ao processo da camada de aplicao, que tambm roda nesse hospedeiro. Porm, o que acontece na realidade que a camada de transporte no entrega os segmentos a um processo, mas sim em um socket(porta) intermedirio. Onde cada socket tem um identificador exclusivo, que depende de o socket ser TCP ou UDP. O direcionamento a uma porta correta de um segmento, feito a partir da anlise de um conjunto de campos que se localiza no segmento. Nesse campo encontra-se a porta destinatria, a qual o segmento ser direcionado pela camada de transporte. Esse direcionamento a porta correta denominado de demultiplexao. Define-se multiplexao como sendo a tarefa de reunir pedaos de dados, vindos de diferentes portas (no hospedeiro de origem), encapsulando esses pedaos com o conjunto de campos para criar segmentos e entreg-los a camada de rede. A transferncia de dados pode ser feita por: UDP (no orientada para conexo) ou TCP (orientada para conexo). Caso seja feita por UDP, o socket UDP identificado por uma tupla com dois elementos: endereos IP de destino e um nmero de porta de destino; por outro lado seja feita por TCP, o socket TCP identificado por uma tupla com quatro elementos: endereo IP de origem, nmero da porta de origem, endereo IP de destino e nmero da porta de destino.

[editar] Multiplexao/demultiplexao no orientada para conexo


A porta UDP pode ser criada a partir de uma implementao, na qual pode se designar um nmero de porta especfico ou mesmo deixar que seja designado um nmero de porta ao socket pela camada de transporte. Logicamente isso, depender da escolha do implementador. Em geral, o lado servidor de uma aplicao designa um nmero de porta especfico, enquanto o lado cliente da aplicao deixa essa escolha livre e transparente para a camada de transporte. Com isso, entende-se que mesmo que dois ou mais segmentos tenham endereos IP ou nmero de porta fonte diferentes eles podero

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.

[editar] Trasnporte Orientado Para Conexao: TCP


O protocolo TCP , sem dvidas, um dos mais importantes protocolos utilizados atualmente. Esse protocolo fornece um servio de entrega de pacotes confivel e orientado para conexo, ou seja, todos os aplicativos que utilizam o TCP como protocolo de transporte estabelecem uma conexo antes de comear a trocar dados alem de contar com servios como deteco de erros, retransmisses, reconhecimento cumulativo, temporizadores e campos de cabealho para nmeros de seqncia e de reconhecimento. Ao contrario do UDP para mandar dados atravs do TCP necessrio a abertura de uma conexo fim-a-fim, ou seja o TCP suporta comunicao apenas entre dois hosts por vez. Uma sesso TCP inicializada atravs de um processo conhecido como um tree-way handshake que consiste em tres pacotes de estabelecimento de conexo sendo um pacote SYN enviado pelo cliente que consiste em um segmento TCP especial que no contem nenhum dado da camada de aplicao mas com o flag SYN ativado. Alem disso o cliente escolhe aleatoriamente um numero de seqncia inicial e coloca esse numero no campo de numero de seqncia do segmento SYN inicial. Quando o servidor recebe o segmento SYN ele aloca buffers e variveis TCP necessrias a conexo e envia um segmente de aceitao de conexo ao TCP cliente. Esse segmento tambm chamado de segmento SYNACK. Ao receber o segmento SYNACK o cliente tambm reserva buffers e variveis para a conexo. O cliente ento envia ao servidor mais um segmento que reconhece o segmento de confirmao da conexo do servidor, o bit SYN ajustado para 0 e a conexo j esta estabelecida. Esse processo sincroniza os nmeros de seqncia e oferece informaes de controle necessrias para estabelecer uma conexo virtual entre os dois hosts. Depois de concludo o tree-way handshake inicial, os segmentos so enviados e confirmados de forma seqencial entre os hosts remetente e destinatrio. Um processo de handshake semelhante usado pelo TCP antes de fechar a conexo para verificar se os dois hosts acabaram de enviar e receber todos os dados. O TCP recebe os dados de aplicao e processa esses dados como um conjunto de bytes e esses bytes so agrupados em segmentos que o TCP numera em seqncia para a entrega. Apos receber os dados de aplicao o TCP direciona esses dados para um buffer de envio da conexo (reservado durante o estabelecimento da conexo) e vai criando segmentos e enviando para a rede. A quantidade mxima retirada do buffer e colocada em um segmento limitada pelo MMS (tamanho mximo do segmento). O TCP utiliza o conceito de portas, que permite que vrios programas estejam em funcionamento, ao mesmo tempo, no mesmo computador, trocando informaes com um ou mais servios/servidores. Algumas das principais caractersticas do TCP e que faz com que ele seja tao utilizado so citadas a seguir: Garante a entrega de datagramas IP: Esta talvez seja a principal funo do TCP, ou seja, garantir que os pacotes sejam entregues sem alteraes, sem terem sido corrompidos e na ordem correta. O TCP tem uma srie de mecanismos para garantir esta entrega. Garante o seqenciamento adequado e entrega ordenada de dados segmentados: Esta caracterstica refere-se a funo de dividir grandes arquivos em pacotes menores e transmitir cada pacote separadamente. Os pacotes podem ser enviados por caminhos diferentes e chegar fora de ordem. O TCP tem mecanismos para garantir que, no destino, os pacotes sejam ordenados corretamente, antes de serem

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.

[editar] Transporte No Orientado Para Conexao: UDP


O UDP um protocolo usado para o transporte rpido de dados entre hosts TCP/IP. Porm o UDP no fornece garantia de entrega e nem verificao de dados. De uma maneira simples, podemos dizer que o protocolo UDP manda os dados para o destino sem a necessidade de apresentao entre as unidades remetentes e destinatria antes de enviar o segmento, porem se vai chegar ou se vai chegar corretamente, sem erros (o UDP fornece verificao de erro porem nada faz para corrigir o erro, e apenas informa a aplicao que o pacote esta com erro), impossvel saber. O UDP no garante a entrega ou verifica o seqenciamento para qualquer pacote. Uma outra soluo bastante utilizada ultimamente a insero da confiabilidade na prpria aplicao (adicionando mecanismos de reconhecimento e de transmisso embutidos na aplicao) permitindo assim que ela tire proveito de ambas as alternativas, ou seja, os processos de aplicao se comunicam de maneira confivel sem ter que se sujeitar as limitaes da taxa de transmisso impostas pelo mecanismo de controle de congestionamento impostas pelo TCP. Alguns dos principais motivos pelo qual o UDP pode ser prefervel so:

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

Algumas das aplicaes mais importantes que utilizam o UDP so:


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.

[editar] Mecanismos de Controle de Congestionamento


Podemos distinguir mecanismos de controle de congestionamento conforme a camada de rede oferea ou no assistncia explicita a camada de transporte com finalidade de controle de congestionamento. Sabendo que Janela de Congestionamento um parmetro que impe uma limitao a taxa a qual o remetente pode enviar trafego para dentro da rede (especificamente a quantidade de dados no reconhecidos em um hospedeiro no pode exceder o mnimo da janela de congestionamento) podemos dividir o controle de congestionamento em dois modos: Controle de congestionamento fim-afim: Nesse mtodo a camada de rede no fornece nenhum suporte explicito a camada de trasporte e o congestionamento da rede intuda pelos sistemas finais com base na observao do comportamento da rede (perda de pacotes). Esse o metodo utilizado pelo protocolo TCP. Controle de congestionamento assistido pela rede: com esse mtodo os roteadores fornecem realimentao de informaes ao remetente a respeito do congestionamento da rede. O controle de congestionamento assistido pela rede tem dois modos de operao. So eles:

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

[editar] Servidores Web e o TCP


Este um cenrio bastante interessante para se entender os princpios da multiplexao e demultiplexao no TCP. A figura abaixo ilustra uma situao tpica, onde vrios clientes se conectam a um servidor WEB atravs da porta 80.

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.

[editar] Algoritimo de Controle de Congestionamento


O principal objetivo do controle de congestionamento reduzir a taxa em que um remetente envia pacotes na rede. Normalmente isso conseguido diminuindo o tamanho

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.

Introduo s Redes de Computadores/Protocolo UDP


De Wikiversidade

< Introduo s Redes de Computadores Ir para: navegao, pesquisa

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

4.1 Exemplos de Servios que usam UDP

[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] Comparao entre TCP e UDP


[editar] Melhor controle no nvel da aplicao
Quando um processo passa dados, o UDP empacota e repassa para a camada de rede. No caso do TCP, o remetente limitado pelo controle de congestionamento. Alm disso, o TCP reenvia os segmentos at a recepo ser conhecida.

[editar] No h estabelecimento de conexo


O TCP usa a apresentao de trs vias antes de transferir dados. O UDP simplesmente os envia, garantindo maior velocidade. Por esse motivo o DNS roda sobre UDP. J no caso do HTTP, para maior preciso na apresentao de pginas de texto, por exemplo, usado o TCP.

[editar] No h estados de conexo


O TCP mantm o estado da conexo: buffers de envio e recebimento, parmetros de controle de congestionamento, parmetros numricos de seqncia e de reconhecimento. O UDP no mantm estado, dessa forma, suporta mais clientes ativos.

[editar] Pequena sobrecarga de cabealho


Alm dos dados de cada segmento, apresentam as seguintes sobrecargas de cabealho de pacote: TCP = 20 bytes, UDP = 8 bytes.

[editar] Estrutura do Segmento UDP


O segmento UDP contm quatro campos de cabealho com 16bts cada, como mostrado no figura abaixo. A porta da fonte um campo opcional que permite ao destinatrio identificar o processo no remetente (demultiplexao) e a porta de destino identifica o processo de destino do segmento UDP. O campo da mensagem contm os dados da aplicao que est usando o segmento. Vamos observar mais detalhadamente o campo Checksum. + Bits 0 - 7 8 - 15 16 - 23 24 - 31 0 Source address 32 Destination address 64 Zeros Protocol UDP length 96 Source Port Destination Port 128 Length Checksum 160 Data

[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.

[editar] Checksums Simples


Os algortmos mais simples de checksum quebram os dados em "palavras" com um nmero fixo de bits, e depois conta o bit do "exclusive or" de todas essas palavras. O resultado muda quando um nico bit dos dados est ao contrrio, e tambm quando dois ou mais bits em posies diferentes da palavra, esto trocados. Porm, esse algortimo de checksum no muito sensvel a erros comuns como:

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.

[editar] Checksums Avanados


Alguns algortmos mais sofisticados com verificao reduntante, icluindo os algortimos como:Fletcher's checksum, Adler-32, and cyclic redundancy checks (CRCs), e eles so construdos para enderear essas fraquezas atravs da considerao nao s o valor de cada byte, mas tambm a sua posio.O custo dessa habilidade de detectar mais tipos de erros uma maior complexidade computacional ao fazer a verificao redundante de valores. O Objetivo dos algortimos de checksum detectar modifiaes acidentais como corrompimento de dados gravados ou erros de comunicao de canais Eles no so construdos para detectar corrompimentos intencionais por agentes maliciosos. Por isso, muitos algortimos de checksum pode ser facilmente invertidos, no sentido de que algum pode facilmente modificar os dados para preservar o seu checksum Para se proteger de modificaes maliciosas, pode-se usar um hash de criptografia.

[editar] Um exemplo de Algortimos de Checksum (em ingls)


Um exemplo de Checksum Simples:

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).

[editar] Quando Utilizar o Protocolo UDP


Fluxo de Dados em Real Time: Multicasting: Broadcasting; E no geral, servios que admitem certa perda de dados;

[editar] Exemplos de Servios que usam UDP


Youtube, e outros servios de streming tanto de udio, quando de udio e vdeo.: P2P: Skype, e inmeros servios de VOIP;

Introduo s Redes de Computadores/Transmisso de dados confivel


De Wikiversidade

< Introduo s Redes de Computadores Ir para: navegao, pesquisa

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

[editar] Transferncia confivel de dados


Dentre todos os problemas que existem para a implementao de redes de computadores, podemos dizer que a tranferncia confivel de dados um dos principais. Essa tarefa ainda mais complexa, pois a implementao do Protocolo de tranferncia confivel de dados feita em um canal confivel, porm possui a camada de rede logo abaixo um canal no confivel. Por exemplo: o TCP um protocolo de tranferncia de dados confivel implementado sobre uma camada de rede fim-a-fim no confivel (IP). Tranferncia Confivel de dados (Fonte: Rede de Computadores e a Internet, 3 Edio, James F. Kurose) A figura do link acima ilustra como implementado o servio de tranferncia confivel de dados. Os pacotes so enviados do remetente ao destinatrio vindo das camadas superiores at as inferiores. O protocolo de tranferncia confivel de dados implementado na camada de transporte. rdt a sigla para Reliable Data Transfer que significa transferncia confivel de dados. Na figura, rdt_send() chamada vinda da

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.

[editar] rdt1.0: Transferncia confivel de dados sobre canais perfeitamente confiveis


Primeiro considerado um caso mais simples, na qual nao h erro de bits na transmisso e tambm no h perdas de pacotes. As FSMs so separadas para transmissor e receptor na qual transmissor envia dados para o canal subjacente receptor l os dados do canal subjacente. Como no a erro de bits ou perdas de pacotes o papel do remetente simplesmente aguardar o pedido de envio da camada superior e enviar o pacote, voltando ao seu estado de espera de nova solicitao. O lado do destinatrio fica em estado de espera de chegada de pacotes da camada inferior, recebe os dados, extrai e os envia para a camada superior. RDT1.0 A figura acima ilustra a especificao da FSM do protocolo em questo.

[editar] rdt2.0: Canal com erros de bit


J o rdt2.0 prev envio de dados que podem chegar com erros ou comrrompidos. Para solucionar tal problema, implementado o conceito de resposta pelo destinatrio ao remetente. Dessa forma o protocolo usa como resposta reconhecimento positivo (ACK) e reconhecimento negativo (NAK). Nos reconhecimentos (ACKs)o destinatrio avisa explicitamente ao remetente que o pacote foi recebido corretamente e nos reconhecimentos negativos (NAKs)o destinatrio avisa explicitamente ao remetente que o pacote tem erros. Quando o remetente recebe um NAK ele faz o reenvio do pacote. RDT2.0 A figura acima ilustra a especificao da FSM do protocolo em questo.

[editar] rdt2.1: Soluo para ACKs/NAKs perdidos


O rdt2.1 uma verso que soluciona um problema que pode acontecer no rdt2.0 e na qual este nao soluciona. Trata-se do sequenciamento dos pacotes e dos reconhecimentos positivos e negativos emitidos pelo destinatrio. Dessa forma evitado a tranferncia desnecessria de arquivos (duplicidade) e confuses em determinar para qual pacote foi enviado o reconhecimento. RDT2.1 REMETENTE RDT2.1 DESTINATRIO As figuras acima ilustram a especificao da FSM do protocolo em questo. Notamos que agora o remetente e o destinatrio possui duas vezes a mais o nmero de estados.

[editar] rdt2.2: Uso somente de ACKs


O rdt2.2 possui a mesma funcionalidade do rdt2.1, porm usando somente ACKs. Ao invs de enviar NAK, o destinatrio envia um ACK para o ltimo pacote recebido sem erro incluindo explicitamente o nmero de seqncia do pacote sendo reconhecido. O recebimento de ACKs duplicados no remetente resulta na mesma ao do NAK, ou seja, a retransmisso do pacote corrente. Dessa forma nota-se uma maior simplicidade no FSM com relao ao rdt2.1

[editar] Protocolo rdt3.0


O que vimos at agora foi:

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.

[editar] Transferncia confivel de dados utilizando paralelismo


Com a utilizao do protocolo rdt3.0 j so corrigidos os principais problemas que ocorrem em uma transferncia de dados. Resta-nos agora melhorarmos seu desempenho. Por ser do tipo pare-e-espere o protocolo rdt3.0 envia apenas um pacote por vez, e s envia o prximo quando receber a confirmao de recebimento do mesmo. Introduziremos ento o conceito de paralelismo. Sero enviados vrios pacotes sequencialmente(apesar do nome indicar, os pacotes no so enviados ao mesmo tempo), mesmo sem a recepo dos pacotes anteriores. Isso implica em maiores nmeros de seqncia e na utilizao de buffers do lado remetente, e tambm do lado destinatrio no caso da repetio seletiva, para mais de um pacote. Sero apresentados dois protocolos que utilizam a idia de paralelismo,Go-Back-N e Repetio Seletiva.

[editar] Protocolo Go-Back-N


Para solucionar os problemas causados pelo comportamento pare e espere dos protocolos anteriores, foi desenvolvido o protocolo Go-Back-N. Este permite o envio de um determinado nmero de pacotes sem que os anteriores tenham sido reconhecidos. Para um melhor entendimento vamos analisar a seguinte figura:

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:

Dados recebidos da camada de cima

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:

[editar] Repetio Seletiva


O protocolo o Go-Back-N ou (GBN) resolveu um problema de vital importncia para a transferncia de dados, que a questo do aproveitamento e da utilizao do canal. Com o GBN h envio de mais de um pacote sem a obrigatoriedade de confirmao de recebimento do pacote anterior, ou seja, ele enche o canal com pacotes, N pacotes (um numero finito), tendo assim um melhor aproveitamento do canal, da largura de faixa do canal. Porm a forma como foi feito o GBN existem ainda algumas questes que prejudicam a transferncia eficiente de dados. Estas questes so: o tamanho da janela grande e/ou o produto entre atraso e largura de faixa tambm grande. Pensemos sobre a janela, que o mesmo conceito de janela do GBN. Vamos supor uma janela de tamanho para 100 pacotes. Se houver qualquer erro, pode ser perca do pacote enviado ou perca do ACK enviado pelo destinatrio, ter que ser reenviado o pacote. O problema surge do fato que todos os pacotes posteriores ao que foi perdido tero de ser tambm reenviados. Se houver erro no 10 pacote, todos os 90 restantes juntamente com o 10 tero de ser reenviados, ou seja, haver muitos reenvios desnecessrios, tendo desta forma uma utilizao tambm ineficiente, apesar de j ter melhorado. Imagine agora uma janela com 1000 pacotes! Quanto maior a janela, mais o problema se agrava. Se, tambm, o canal contiver uma taxa de erros alta, implica em maiores repeties. Como sabemos, os canais reais no transmitem sem erros. Por mais que o canal seja confivel e com baixa taxa de erros, esses erros existiro!

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).

Obtido em "http://pt.wikiversity.org/wiki/Introdu%C3%A7%C3%A3o_ %C3%A0s_Redes_de_Computadores/Transmiss%C3%A3o_de_dados_confi %C3%A1vel"

Introduo s Redes de Computadores/Protocolo TCP


De Wikiversidade

< 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

[editar] A conexo TCP


TCP(Transmission Control Protocol) um protocolo da camada de transporte, orientado a conexo. Ele responsvel pela diviso da mensagem em datagramas, reagrupamento e retransmisso no caso de datagramas perdidos. Dentre suas principais vantagens, podemos destacar a segurana quanto reposio de pacotes perdidos e ordenao desses pacotes.

[editar] Estrutura do segmento TCP [3]


O segmento TCP dividido em partes. Didaticamente representado pelo bloco abaixo ilustrado, porm na prtica enviado sequencialmente. Cada linha da tabela um bloco de 32 bits, sendo que o bit inicial de nmero 0. O protocolo TCP permite que seu cabealho tenha tamanho varivel, conforme as necessidades das estaes comunicantes e especifidades do enlace. A estrutura bsica possui valores bem definidos, como as portas de origem (16 bits) e de destino (16 bits). Partes importantes no TCP so o nmero de seqncia (32 bits) e o nmero de reconhecimento (32 bits), pois estes campos garantem a confiabilidade da transferncia.H tambm outros campos, como comprimento do cabealho (4 bits), que indica qual tamanho do cabealho em palavras de 32 bit, as flags (6 bits), que podem ser de 6 tipos:

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]

[editar] Estimativa do tempo de viagem de ida e volta e de esgotamento de temporizao


O TCP utiliza um mecanismo de controle de temporizao/retransmisso para recuperar segmentos perdidos. Em um protocolo real como o TCP, surgem problemas de implementao de um mecanismo de controle de temporizao/retransmisso como por

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).

[editar] Estimativa do tempo de viagem de ida e volta - RTT [6]


O RTT para um segmento, denominado RTTamostra, a quantidade de tempo transcorrido entre o momento em que o segmento enviado (isto , passado ao IP) e o momento em que recebido um reconhecimento para o segmento. Ao invs de medir um RTTamostra para cada segmento transmitido, a maioria das implementaes de TCP executa apenas uma medio de RTTamostra por vez. Isto , em qualquer instante, o RTTamostra estar sendo estimado para apenas um dos segmentos transmitidos mas ainda no reconhecidos, o que resulta em um novo valor de RTTamostra para aproximadamente cada RTT. E mais, o TCP nunca computa um RTTamostra para um segmento que foi retransmitido; apenas mede-o para segmentos que foram transmitidos uma vez. Os valores de RTTamostra sofrero variao de segmento para segmento devido a congestionamento nos roteadores e a variaes de carga nos sistemas finais. Por causa dessa variao, qualquer dado valor de RTTamostra pode ser atpico. Portanto, para estimar um RTT tpico, natural tomar alguma espcie de mdia dos valores de RTTamostra. O TCP mantm uma mdia, denominada RTTestimado, dos valores de RTTamostra. Ao obter um novo RTTamostra, o TCP atualiza RTTestimado de acordo com a seguinte frmula: RTTestimado = (1 - a) * RTTestimado + a * RTTamostra Esta frmula est escrita sob a forma de um comando de linguagem de programao. O valor recomendado de a a = 0,125 (isto , 1/8) [RFC 2988], caso em que essa frmula de torna: RTTestimado = 0,875 * RTTestimado + 0,125 * RTTamostra Onde RTTestimado uma mdia ponderada dos valores de RTTamostra. Essa mdia ponderada atribui um peso maior s amostras recentes do que s amostras antigas. Observao: O valor de "a" determina o peso das amostras mais recentes no clculo da mdia, por exemplo, se "a" vale 0,125, a ltima amostra analisada ter peso de 12,5% no valor de RTTestimado. Alm de ter uma estimativa do RTT, tambm valioso ter uma medida de sua variabilidade. O [RFC 2988] define a variao do RTT, RTTdesvio, como uma estimativa do desvio tpico entre RTTamostra e RTTestimado: RTTdesvio = (1 - b) * RTTdesvio + b * | RTTamostra - RTTestimado | Onde RTTdesvio uma MMEP (Mdia Mvel Exponencial Pura) da diferena entre RTTamostra e RTTestimado. Se os valores de RTTamostra apresentarem pouca variao, ento RTTdesvio ser pequeno; por outro lado, se houver muita variao, RTTdesvio ser grande. O valor recomendado para b 0,25.

[editar] Estabelecimento e gerenciamento da temporizao de retransmisso


Considerando-se dispor dos valores RTTestimado, RTTamostra e RTTdesvio, podese estabelecer um valor para a temporizao de retransmisso do TCP (IntervaloTimeOut). Este valor deve ser maior ou igual a RTTestimado, caso contrrio seriam enviadas retransmisses desnecessrias, porm no deve ser muito maior pois se houver perda de algum segmento, o TCP no o retransmitiria rapidamente, o que resultaria em grandes atrasos de transferncia de dados. Dessa forma, desejvel que o valor estabelecido para a temporizao seja igual a RTTestimado mais uma certa margem, que dever ser grande quando houver muita variao nos valores de RTTamostra e pequena quando houver pouca variao. Assim, o valor de RTTdesvio deve ser considerado: IntervaloTimeOut = RTTestimado + (4 * RTTdesvio)

[editar] Transferncia confivel de dados


Usa reconhecimentos positivos, temporizadores,nmeros de seqncia e paralelismo
Recuperao de perdas de segmentos Retransmisso rpida

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

[editar] Controle de fluxo [editar] Gerenciamento da conexo TCP


A maior parte dos ataques Web, atualmente, exploram vulnerabilidades apresentadas no gerenciamento das conexes TCP. Alm disso, importante observar, que o estabelecimento da conexo TCP interfere, significativamente, nos atrasos percebidos em nossa navegao. Portanto, saber como as conexes TCP so estabelecidas e finalizadas, possibilitando gerenci-las, bastante importante para garantia da confiabilidade inerente ao protocolo TCP. Para envio de pacotes entre hospedeiros, via TCP, necessrio, previamente, o estabelecimento de uma conexo entre cliente e servidor. Para tanto, so necessrias trs etapas, comumente chamada de apresentao de 3 vias (3 way handshake), conforme detalhado abaixo.

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.

Encerramento da conexo TCP

Introduo s Redes de Computadores/Controle de congestionamento


De Wikiversidade

< Introduo s Redes de Computadores Ir para: navegao, pesquisa

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

[editar] Controle de congestionamento


[editar] As causas e custos do congestionamento
Antes de conhecer os principais mecanismos de controle de congestionamento devemos entender por que o congestionamento acontece e as consequncias do mesmo, analizando trs possveis cenrios. Cenrio 1: dois remetentes, um roteador com buffers infinitos Supondo que tenhamos dois hospedeiros A e B que estejam enviando dados para os hospedeiros C e D. No h retransmisso de dados perdidos, controle de fluxo e nem controle de congestionamento e o roteador tem capacidade de armazenamento infinita. A vazo no destinatrio (nmero de bytes por segundo) ser igual velocidade do envio do remetente at um certo ponto em que no importa o quo rpido se envie os pacotes a vazo ser limitada pelo enlace de comunicao compartilhado entre os dois hospedeiros remetentes A e B, e quanto mais a velocidade de envio se aproxima desse limite maior ser o atraso mdio, tendendo a infinito. Analizando esse cenrio vemos um custo do congestionamento que so os atrasos quando a velocidade de envio se aproxima da capacidade do enlace. Cenrio 2: dois remetentes, um roteador com buffers finitos

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.

[editar] Mecanismos de controle de congestionamento


Dizemos que o controle fim-a-fim quando a camada de rede (roteadores) no oferece suporte camada de transporte no controle de congestionamento. O controle ser feito pelos sistemas finais observando o comportamento da rede atravs de informaes como perda de pacotes ou atraso. O protocolo TCP adota esse tipo de controle de congestionamento. O controle de congestionamento assistido pela rede conta com ajuda dos roteadores da camada de rede para fornecer informaes a respeito de congestionamento. O roteador poder passar essa informao de congestionamento direto para o remetente ou marcando um pacote para que o destinatrio perceba o congestionamento e sinalize para o remetente. O principal controle deste tipo que temos o controle ATM ABR, usado na arquitetura ATM de comunicao de dados.

[editar] Controle de congestionamento ATM ABR


A arquitetura ATM baseada no conceito de circuito virtual de comutao de pacotes (clulas, na terminologia ATM). O comutador (roteador) est sempre monitorando o comportamento de remetentes individuais e interferindo na conexo afim de se controlar congestionamentos.

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.

[editar] Controle de congestionamento TCP


O TCP usa controle de congestionamento fim-a-fim. Isto significa que o remetente limita ou aumenta a taxa de entrega de dados para conexo em funo do congestionamento percebido por ele, por isso dizemos que o TCP auto-regulado. A conexo TCP composta de um buffer de recepo, um buffer de envio e de diversas variveis. Dentre essas variveis temos a CongWin (janela de congestionamento), que limitar a taxa de envio de pacotes de um remetente TCP. Ao incio de cada RTT (tempo de ida e volta) o remetente enviar seus pacotes de acordo com o tamanho da CongWin estabelecido, e ao final recebe reconhecimento para os dados, um sinal de que todos os pacotes foram enviados corretamente. Quando ocorre um evento de perda ou de trs ACKs duplicados (ocasionando desperdcio de pacotes) o remetente reduzir sua CongWin utilizando a chamada diminuio multiplicativa, reduzindo o valor da CongWin metade. Porm existe um limite mnimo do tamanho dessa janela, que de 1 MSS (maximum segment size). O TCP reconhece que no h congestionamento na rede quando recebe ACKs (reconhecimento de pacotes), ento aumentar a CongWin lentamente a cada tempo de ida e volta (aumento aditivo). Esse comportamento do TCP de estar sempre aumentando a janela de congestionamento lentamente e depois reduzindo metade bruscamente gera um comportamento parecido com dentes de serra, se visualizado graficamente. Durante o incio de uma conexo TCP temos a fase de partida lenta, quando o remetente transmite a uma taxa lenta (normalmente 1 MSS) e depois aumenta sua taxa exponencialmente, duplicando o valor de CongWin a cada tempo de ida e volta at acontecer um evento de perda. O remetente TCP tambm pode entrar em fase de partida lenta aps um evento de esgotamento de temporizao, ajustando a janela de congestionamento para 1 MSS e aumentando exponencialmente at que a CongWin alcance metade do valor que tinha antes do evento (Threshold, em portugus, patamar).