Académique Documents
Professionnel Documents
Culture Documents
Camada de Aplicao
Mensagem Aplicao
Segmento Transporte
Datagrama IP Rede
Quadro Enlace
Bits Fisica
Cliente: resposta
Envia requisies para o servidor;
Mquina com baixo poder de aplicao
transporte
processamento rede
tipicamente solicita servio ao servidor; enlace
fsica
Conexo pode ser intermitente
Dois clientes no se comunicam
diretamente;
Nvel de Transporte
Nvel de Rede
2006 Vagner Sacramento / Ricardo Couto Antunes da Rocha 10
Comunicao Cliente-
Servidor
Porta Origem Porta Destino Dados
1024 1025 80 25
Porta aleatria
0
PORTAS RESERVADAS PARA SERVIOS
PADRONIZADOS
1023
1024
65535
2006 Vagner Sacramento / Ricardo Couto Antunes da Rocha 12
Portas
Processo Processo Processo Processo
APLICAO APLICAO
PORTA PORTA PORTA PORTA
TRANSPORTE TRANSPORTE TRANSPORTE
IP IP IP
REDE REDE
MAC MAC
ENLACE/FSICA ENLACE/FSICA
REDE
2006 Vagner Sacramento / Ricardo Couto Antunes da Rocha 13
Portas
Aplicao Aplicao
Definio de
portas SMTP FTP DNS NFS
Porta
Transporte TCP UDP
Protocolo
Rede
IP
Fsica Endereo IP
Placa de Rede / Fax Modem
2006 Vagner Sacramento / Ricardo Couto Antunes da Rocha 14
Comunicao Cliente-
Servidor
Porta Origem Porta Destino Dados
1024 1025 80 25
Porta aleatria
au pt com br Servidores de
domnio Nvel 2
www www
2006 Vagner Sacramento / Ricardo Couto Antunes da Rocha 21
Organizao dos
Domnios
O espao de domnio de nomes dividido
em duas reas principais:
Domnios Genricos:
3 caracteres para indicar a atividade.
.com, .edu, .gov, .int, .mil, .net, .org
.int: organizaes internacionais
.mil: organizaes militares
.org: organizaes no comerciais
Domnios Geogrficos:
2 caracteres para identificar o pas.
.br, .fr, .jp, etc.
com ufg
Zona ufg.br
com uminho yahoo ufg
Zona inf.ufg.b
www www
dns.brt.com.br www.ufg.br
a.root-server.net
a.root-server.net
cliente1.brt.com.br br NS ns.nic.br
www.ufg.br
www.ufg.br
ns.nic.br
ns.nic.br
ufg.br NS dns.ufg.br
200.137.221.69
www.ufg.br
dns.ufg.br
dns.ufg.br
www.ufg.br A 200.137.221.69
HTML da
Pgina formatada
pgina pelo browser
Linha de pedido
(comandos GET, POST, GET /somedir/page.html HTTP/1.0
HEAD ) User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
Linhas de Accept-language:fr
cabealho
(extra carriage return, line feed)
Carriage return,
line feed
indica fim da mensagem
o s
es
Uma semana depois:
ac
Cookie file usual HTTP request msg
especificao
amazon: 1678 cookie: 1678
do cookie
ebay: 8734 usual HTTP response msg
Th
3. Servidor converte linha para
letras maisculas e envia de
volta ao cliente
4. Cliente l a linha modificada
atravs do (inFromServer
stream)
Fechar
Fechar clientSocket
connectionSocket
sentence = inFromUser.readLine();
Envia linha
para o servidor outToServer.writeBytes(sentence + '\n');
clientSocket.close();
}
}
2006 Vagner Sacramento / Ricardo Couto Antunes da Rocha 72
Exemplo: servidor Java
(TCP)
import java.io.*;
import java.net.*;
class TCPServer {
public static void main( String argv[]) throws Exception
{
String clientSentence;
Cria String capitalizedSentence;
socket de aceitao ServerSocket welcomeSocket = new ServerSocket(6789
na porta 6789
while (true) {
Espera, no socket
de aceitao, por Socket connectionSocket = welcomeSocket.accept()
contato do cliente
BufferedReader inFromClient =
Cria stream de new BufferedReader( new
entrada ligado InputStreamReader(connectionSocket.getInputStre
ao socket
L datagrama clientSocket.receive(receivePacket);
do servidor
String modifiedSentence =
new String(receivePacket.getData());
System.out.println("FROM SERVER:" +
modifiedSentence);
clientSocket.close();
}
}
2006 Vagner Sacramento / Ricardo Couto Antunes da Rocha 79
Exemplo: servidor Java
(UDP)
import java.io.*;
import java.net.*;
class UDPServer {
public static void main (String args[]) throws Exception
Cria{
socket datagrama
na porta 9876 DatagramSocket serverSocket = new DatagramSocket(
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
while (true)
{
Cria espao para
DatagramPacket receivePacket =
datagramas recebidos new DatagramPacket(receiveData, receiveData.len
serverSocket.receive(receivePacket);
Recebe
datagrama
2006 Vagner Sacramento / Ricardo Couto Antunes da Rocha 80
Exemplo: servidor Java
(UDP)
Obtm endereo
IP String sentence = new String(receivePacket.getData());
e nmero da InetAddress IPAddress = receivePacket.getAddress();
porta
do transmissor int port = receivePacket.getPort();
String capitalizedSentence = sentence.toUpperCase
sendData = capitalizedSentence.getBytes();
Cria datagrama DatagramPacket sendPacket =
para enviar ao cliente new DatagramPacket(sendData, sendData.length, IPAddr
port);
Escreve o serverSocket.send(sendPacket);
datagrama para }
dentro do socket}
}
Termina o while loop,
retorna e espera por
outro datagrama
2006 Vagner Sacramento / Ricardo Couto Antunes da Rocha 81
Roteiro