Escolar Documentos
Profissional Documentos
Cultura Documentos
O que um Socket?
Voc j deve ter ouvido falar sobre Sockets e talvez esteja imaginando do que se trata exatamente. Bem, resumindo: atravs de Sockets nos comunicamos com outros programas usando discritores de arquivos Unix padro. O que? Tudo bem. Voc deve ter ouvido algum guru em Unix dizer,"Tudo no Unix umarquivo!". O que esta pessoa esta querendo dizer, na verdade, o fato de que quando sistemas Unix realizam qualquer tipo de E/S(Entrada/Sada), eles o fazem lendo ou escrevendo atravs de um descritor de arquivo.Um descritor de arquivo simplesmente um inteiro associado a um arquivo aberto.Mas(e aqui est o detalhe), este arquivo pode ser uma conexo de rede,um FIFO, um pipe, um terminal, um arquivo no disco, ou qualquer outra coisa.Tudo no Unix(Linux) um arquivo!.Assim quando voc quiser se comunicar com outro programa na internet voc vai usar um descritor de arquivo.Apartir dai, voc realiza chamadas de socket send() e recv(). "Mas,pera!", voc deve estar pensando. "Se um descritor de arquivo, porque no usar as chamadas read() e write() para se comunicar atravs de um Socket?"a resposta ,"Voc pode!"a resposta completa ,"Voc pode, mas send() e recv() oferecem melhor controle sobre a transmisso de dados". "T bom, e da?"Que tal isto: existem vrios tipos de Sockets.Tem o DARPA(Sockets de Internet), Sockets Unix, CCITT X.25 e provavelmente outros dependendo da sua verso Unix. Este artigo abordar somente o primeiro: Sockets de Internet.
transferncias pacote por pacote de informaes. Alguns aplicativos que utilizam UDP: tftp, bootp,etc. "Chega!", voc diz. "Como estes programas funcionam se um pacote pode se perder na rota?"Bem, meu caro amigo, cada um tem se prprio protocolo acima do UDP. Por exemplo, o protocolo tftp diz que para cada pacote que enviado, o receptor tem que enviar um pacote de volta que diz, "Eu recebi!"(um pacote "ACK") Se o emissor do pacote original no receber uma resposta, digamos, em cinco segundos , ele ir retransmitir o pacote at que receba um "ACK". Este procedimento muito importante quando voc for implementar aplicaes que utilizam "SOCK_DGRAM".
de de de de
Aplicao (Application Layer) Transporte (TCP,UDP) Internet (IP) Acesso de Rede (Ethernet, ATM)
Nesse momento voc provavelmente deve estar imaginando como estas camadas correspondem ao encapsulamento dos dados. Veja quanto trabalho para construir um simples pacote? E voc ainda tem que digitar os cabealhos do pacote usando "cat"!. Brincadeirinha. Tudo que voc tem que fazer para utilizar "Sockets Streams" enviar (send()) os dados. Com relao aos "Sockets Datagram" empacotar os pacotes num mtodo de sua escolha e enviar(sendto()) os dados. O kernel constri a Camada de Transporte e a Camada de Internet pra voc e o hardware cuida das camadas mais baixas. Bem aqui termina nossa breve introduo em teoria de redes. AH, esqueci de mencionar alguma coisa sobre roteamento: nada! Isso mesmo , no irei falar sobre isso. O roteador retira o cabealho IP, consulta a tabela de roteamento , etc,etc.