Slide sem título
Download
Report
Transcript Slide sem título
Faculdade Senac Pelotas
Curso Superior em Tecnologia de Redes de Computadores
Unidade Curricular - Redes de Computadores II
Prof. Eduardo Maroñas Monks
Camada de Transporte:
Portas, Sockets, Aplicações
em Rede
Sumário
Endereçamento das aplicações
Sockets
Aplicações com sockets
Estudo de Casos
Referências Bibliográficas
2
Formas de endereçamento
Portas e Sockets:
O uso de Portas e Sockets como forma de
endereçamento possibilita a uniformidade e a
exclusividade da identidade da comunicação.
Para determinar qual processo em um
determinado host se comunica com
determinado processo em um host remoto e
com qual protocolo, são usadas Portas e
Sockets com os protocolos UDP e TCP.
3
Formas de endereçamento
Portas Conhecidas (Números 0 a 1023) - Esses números estão
●
reservados para serviços e aplicações. Eles são comumente usados para
aplicações como o HTTP (servidor web) POP3/SMTP (servidor de e-mail) e
Telnet. Através da definição destas portas conhecidas para aplicações de
servidor, aplicações de clientes podem ser programados para solicitar uma
conexão com essa porta específica e seu serviço associado.
•Portas Registradas (Números 1024 a 49151) - Estes números de portas
são designados para processos ou aplicações de usuário. Estes processos
são principalmente aplicações individuais que um usuário escolheu para
instalar em vez de aplicações comuns que receberiam uma Porta Conhecida.
Quando não usadas para um recurso de servidor, estas portas também
podem ser dinamicamente selecionadas por um cliente como sua porta de
origem.
•Portas Dinâmicas ou Privadas (Números 49152 a 65535) - Elas são
geralmente designadas dinamicamente a aplicações de cliente quando se
inicia uma conexão. Não é muito comum um cliente se conectar a um
serviço usando uma Porta Dinâmica ou Privada (embora alguns programas
de compartilhamento de arquivos peer-to-peer o façam).
4
Formas de endereçamento
Tipos de Portas:
É possível o uso de uma mesmo número de porta
para diferentes protocolos. E também é possível
o uso de protocolos diferentes para um mesmo
serviço, no mesmo número de porta.
Exemplo:
DNS -> TCP (53)
DNS -> UDP (53)
5
Sockets
Sockets:
API (Application Programming Interface) para
comunicação com os protocolos.
Conceito introduzido no sistema operacional
BSD 4.2
Padrão de fato para programação de
aplicações em rede
Possibilita a comunicação entre processos
em sistemas operacionais e arquiteturas de
hardware diferentes
6
Sockets
O que é um
Socket?
É um manipulador de arquivos usado por um
processo para requisitar serviços de rede do
sistema operacional.
Exemplo da declaração de um socket, para TCP, em Python:
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
7
Sockets
Forma de endereçamento de um socket:
Endereço: <protocolo, endereço local, processo
local>
Exemplo:
<tcp, 192.168.22.33, 12345>
8
Sockets
Conceitos relacionados a sockets:
Conversação: comunicação entre dois
processos;
Associação: tupla com 5 campos que define
completamente a conexão entre 2 processos:
<protocolo,endereço local, processo local,
endereço externo, processo externo>
Exemplos:
<tcp, 193.44.234.3, 1500, 193.44.234.5, 21>
<udp, 203.44.24.3, 1500, 191.42.2.5, 53>
9
Sockets
TCP Sockets:
Provê comunicação de fluxo de bytes de
forma bi-direcional entre dois processos;
A aplicação não precisa gerenciar este fluxo,
pois o gerenciamento é feito pelo protocolo
TCP;
Identificação:
<tcp, endereço IP, Número da Porta>
A comunicação entre dois processos, possui
identificação única:
<tcp, IP local, Porta Local, IP Remoto, Porta
Remota>
Obs.: Um servidor tem a capacidade de gerenciar
múltiplas conversações por uma única porta
(multiplexação).
10
Aplicações em Rede
Requisitos:
O mecanismo de sockets deve estar
disponível no sistema operacional
MS Windows, Linux, FreeBSD, MacOS,
Android…
A linguagem de programação deverá
possuir uma biblioteca de sockets
C, Java, Python, Perl, PHP, Ruby, C#,
.NET…
Uso da primitivas de comunicação
SEND, RECEIVE, OPEN, CLOSE
11
Aplicações em Rede
Requisitos:
A aplicação deverá utilizar um socket de
acordo com o protocolo
TCP – Fluxo de bytes (STREAM)
UDP – Datagrama (DATAGRAM)
Ao se definir o tipo de socket, TCP ou UDP, a
comunicação entre aplicações em cada host
obedecerão as funcionalidades do protocolo da
camada de transporte
Em caso de uso do UDP, não haverá
garantias de entrega, controle de fluxo ou
ordenação dos dados
Neste caso, estes controles deverão ser
implementados na aplicação
12
Aplicações em Rede
Requisitos:
O significado dos dados transportados
pelo UDP ou TCP, deverá ser garantido
por um protocolo da camada de
aplicação
Exemplo: HTTP
13
Aplicações em Rede
Exemplo de aplicação:
Conexão com TCP a um servidor de
HTTP (Python)
Servidor TCP simples (Python)
14
Aplicações em Rede
Servidor de Eco (TCP)
Cliente de Eco (TCP)
15
Aplicações em Rede
Servidor de Eco (UDP)
Cliente de Eco (UDP)
16
Estudos de Caso
Jogos em Rede
DemonStar
(http://www.mking.com/demonstar/index.html)
Jogo da Velha em Rede
(http://www.cs.ucr.edu/~ddreier/p2.html)
Little Fighter 2 (http://lf2.net/)
17
Bibliografia
TCP/IP Tutorial and Technical Overview – RODRIGUEZ,
Adolfo; GATRELL, John; KARAS, John; PESCHKE,
Roland - IBM Red Books – 2006 – Disponível em: http://
ibm.com /redbooks
FreeBSD Handkbook – disponível em:
http://www.freebsd.org/doc/en/books/developershandbook/book.html#SOCKETS
GOERZEn, John. Foundations of Python Network
Programming. Apress, 2004.
18