Você está na página 1de 13

Redes de computadores

Programao de Sistemas : Sockets

Sockets introduo net


r

r
r r

Modelo de comunicao na rede de computadores: O mais divulgado a Internet. Baseada numa pilha de protocolos com 4 nveis, nveis mais elevados so mais abstratos e mais prximos do utilizador nveis mais baixos so prximos das transferncias de bits entre computadores. Cada nvel usa servios oferecidos pelo nvel imediatamente inferior.

r r

Leonard Kleinrock, chefe do laboratrio da UCLA que desenvolveu e instalou primeiro encaminhador da ARPANET. Primeira mensagem enviada da UCLA para SRI/Stanford em Setembro 1969

r r

1: Introduo

Sockets introduo net


r

r r

r r

Nvel aplicao (application): contm as aplicaes teis para os utilizadores. Objectivos: converter dados na representao local para representao cannica e implementar modelo de comunicao. Exemplos de aplicaes muito divulgadas: WWW (World Wide Web), baseado no protocolo HTTPHypertext Transfer Protocol. Correio electrnico (EmailElectronic Mail), baseado no protocolo SMTP-Simple Mail Transfer Protocol. Transferncia de ficheiros, baseado no protocolo FTP-File Transfer Protocol. DNS (Domain Name Service): transcrio de nomes lgicos (nomes definidos numa hierarquia em rvore) para endereos de ns da rede.

r r

r r

Nvel transporte (transport): Objetivos: transferir todos os dados ponto a ponto (ns da rede de computadores, que podem no se encontrar diretamente ligados entre si). Protocolos mais usados: TCPTCP--Transmission Control Protocol, de transferncia fivel eTransmission Control Protocol, de transferncia fivel e ordenada de uma sequncia de dados de qualquer dimenso. UDP-User Datagram Protocol, de transferncia no fivel de datagramas (bloco formatado de dados, com comprimento mximo).

1: Introduo

Sockets introduo net


r r

r r r

Nvel rede (network): Objectivos: encaminhamento de pacotes (designados aqui por datagramas) de uma rede para outra. Protocolos mais usados: IP-Internet Protocol. IPSec, que permite estabelecer em cima do IP uma rede segura (com mecanismos de cifra e autenticao). Nvel ligao (link): Objetivos: encapsular bits em tramas (frame), com detector de erros de transmisso, e enviar as tramas de um computador para outro. Exemplos: Ethernet, numa rede local, 802.11b, para Wi-Fi Wireless Fidelity

r r

r r

Ns intermdios: ns que implementam a transmisso de pacotes de um n terminal (PC, servidor,...) para outro. Hub- que interliga computadores de uma rede local, - Switch- olham para os endereos fonte/ destino dos pacotes para serem transmitidos apenas pelas ligaes necessrias. -Router- encaminha pacotes entre redes (ex: entre uma LAN-rede local e uma WAN-rede alargada).

r r r

1: Introduo

Sockets introduo
r

Os sockets, introduzidos por volta 1981 e definem os pontos de acesso das aplicaes segundo o paradigma cliente/servidor.

r r r r r r r

r
r r r

Programao de sockets mais complexa que E/S de ficheiros mais parmetros mais chamadas de sistema Principal diferena entre E/S de sockets e a E/S de ficheiros a forma como a aplicao abre os descritores de sockets.

r r

Os processos lem e escrevem nos descritores de sockets pelas mesmas operaes read e write dos descritores de ficheiros. Servios disponibilizados pelos sockets [analogia]: A. socket() - definio [telefone] B. bind() associao do socket a um endereo [atribuir nmero ao telefone] C. listen() - escutar [destinatrio espera pelo toque da campanha] D. connect() iniciar conexo [origem digita nmero do destinatrio] E. accept() - estabeler conexo [destinatrio aceita chamada, levantando o ascultador] F. send(),recv() - envio/recepo de dados [falar] G. close() - fecho de conexo [pousar ascultador]

1: Introduo

Sockets endereamento de ns
r r

r
r

r r

No protocolo IP, cada n possui um endereo nico. O formato dos endereos depende da verso (IPv4 ou IPv6) IPv4: atualmente em uso, norma rfc791 (1981) a. Espao para endereo: 32 bits (4 Bytes), com limite terico de 4G ns. b. Representao de um endereo: notao mais usada a notao pontodecimal, cada Byte indicado em decimal. Ex: o servidor da rea Cientfica de Computadores do ISPB tem endereo 193.136.143.1( hipotese) IPv6: em fase de instalao, norma rfc2373 (1998) a. Espao para endereo: 128 bits (16 Bytes), com limite terico de 3.4*10 38 ns. b. Representao de um endereo: notao mais usada dado por 8 grupos de 4 dgitos hexadecimais, separados por dois pontos (:). Uma nica sub-sequncia de quatro 0s pode ser compactada por um par de dois pontos.

Translaco de endereos (NATNetwork Address Translation) por uma Firewall entre a rede privada e local. Os endereos da rede interna so trocados pelo endereo externo da Firewall. Aluguel de endereos por servio DHCP-Dynamic Host Configuration Protocol
Usado quando um PC em casa se liga a um ISP-Internet Service Provider. Tempo de aluguel varia com o tipo de equipamento (ex: 2 dias para computador fixo e 1 hora para computador mvel) e pode ser estendido depois de gasto 50% do tempo de aluguer.

r r

r r r r

A procura de endereos IP provm de diversos fatores: Aumento de utilizadores de Internet. Popularidade de equipamentos mveis (portteis, PDAs, telemveis). IANA prev para 2010 o esgotamento dos endereos IPv4

r Ex:

r
r r r

2001:0db8:0000:0000:0000:0000:1428:57 ab e 2001:db8::1428:57ab so endereos IPv6. [Exemplo] [rgc@asterix ~]$ host ipv6.l.google.com ipv6.l.google.com has IPv6 address 2001:4860:0:1001::68 Nota 1: as pilha de protocolos IPv4 e IPv6 so incompatveis Nota 2: IPv6 foi disponibilizado no ncleo 1: Introduo do Linux 2.6.10.

Tipos de Sockets

1: Introduo

Localizao dos sockets em Linux

1: Introduo

criao de sockets

1: Introduo

10

Resumindo
r

Socket uma interface de comunicao bidirecional entre processos atravs de uma rede de computadores .Essa mesma interface permite que essa comunicao utilize diversas famlias de protocolos (Unix domain , Internet domain , Xerox NS domain ). Sockets so representados como descritores de arquivos e podem permitir a comunicao entre processos distintos na mesma mquina ou em mquinas distintas, atravs de uma rede. Os sockets so a base da comunicao em redes TCP/IP e tambm so muito usados em comunicaes entre processos no interior de um mesmo computador.Essa comunicao baseada no paradigma cliente servidor . Eles normalmente so identificados como uma interface entre a camada de aplicao e a camada de transporte que tambm tem a funo de servir como interface de programao pela qual as aplicaes de rede so inseridas na Internet ( = Interface de Programao de Aplicao API ) Sockets podem trabalhar com RPCs e assim terem a funo de implementar numa aplicao as funes de rede, mas fazem isto de maneiras diferentes. Em documentos de RFC (Request for Comments) relacionado a TCP ou UDP, um socket em um computador definido como a combinao de um endereo IP, um protocolo, e o nmero da porta do protocolo. Um socket pode ainda ser visto como um tipo de dispositivo mecnico instalado em uma placa-me, destinado a receber a CPU - o processador, sua nomenclatura refere-se ao nmero de pinos que o mesmo poder receber. Ex.: PGA 370 - s admite processadores com 370 pinos. 1: Introduo

11

Resumindo
r

r r r r r r r

A interface padronizada de soquetes surgiu originalmente no sistema operacional Unix BSD (Berkeley Software Distribution); portanto, eles so muitas vezes chamados de Berkeley Sockets. tambm uma abstrao computacional que mapeia diretamente a uma porta de transporte (TCP ou UDP) e mais um endereo de rede. Com esse conceito possvel identificar unicamente um aplicativo ou servidor na rede de comunicao IP. Para identificar uma conexo ente dois computadores, um socket deve ser definido, por meio das seguintes informaes: -Endereo IP do servidor; -Porta onde se encontra o servio solicitado; -Endereo IP do cliente; -Porta atravs da qual o cliente solicita o servio. Um bom exemplo de um estabelecimento de uma conexo entre computadores atravs de socket seria o acesso uma pgina da Internet. Um servidor Web tem a porta 80 como porta padro de comunicao entre os clientes. Quando digitamos um endereo de um site no Internet Explorer do Windows, automaticamente esse endereo convertido em seu respectivo endereo IP. Se estamos numa rede, nosso micro tem um nico endereo IP. E finalmente, junto deste processo, uma porta em seu computador disponibilizada dinamicamente, sendo um nmero maior que 1024, para esta conexo.Ento, temos todas as informaes necessrias para estabelecer a conexo, tendo assim um socket. O cliente, no caso de uma conexo uma pgina da Internet, quem a solicita atravs de um browser (Internet Explorer, por exemplo), e o servidor quem disponibiliza a pgina para ser acessada.

12

1: Introduo

13