18
Camada de Transporte: Camada de Transporte: Portas, Sockets, Aplicações Portas, Sockets, Aplicações em Rede em Rede Faculdade Senac Pelotas Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular - Redes de Computadores II Unidade Curricular - Redes de Computadores II Prof. Eduardo Maroñas Monks Prof. Eduardo Maroñas Monks

Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Embed Size (px)

Citation preview

Page 1: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Camada de Transporte:Camada de Transporte:Portas, Sockets, Aplicações Portas, Sockets, Aplicações

em Redeem Rede

Faculdade Senac PelotasFaculdade Senac Pelotas

Curso Superior em Tecnologia de Redes de ComputadoresCurso Superior em Tecnologia de Redes de Computadores

Unidade Curricular - Redes de Computadores IIUnidade Curricular - Redes de Computadores II

Prof. Eduardo Maroñas MonksProf. Eduardo Maroñas Monks

Page 2: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Sumário

Endereçamento das aplicaçõesEndereçamento das aplicações SocketsSockets Aplicações com socketsAplicações com sockets Estudo de CasosEstudo de Casos Referências BibliográficasReferências Bibliográficas

22

Page 3: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Formas de endereçamentoFormas de endereçamento

Portas e Sockets:Portas e Sockets:

O uso de Portas e Sockets como forma de O uso de Portas e Sockets como forma de endereçamento possibilita a uniformidade e a endereçamento possibilita a uniformidade e a exclusividade da identidade da comunicação.exclusividade da identidade da comunicação.

Para determinar qual processo em um Para determinar qual processo em um determinado host se comunica com determinado host se comunica com determinado processo em um host remoto e determinado processo em um host remoto e com qual protocolo, são usadas Portas e com qual protocolo, são usadas Portas e Sockets com os protocolos UDP e TCP.Sockets com os protocolos UDP e TCP.

33

Page 4: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Formas de endereçamentoFormas 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).

44

Page 5: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Formas de endereçamentoFormas 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)

55

Page 6: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

SocketsSockets

Sockets:Sockets:

API (API (Application Programming InterfaceApplication Programming Interface) ) para comunicação com os protocolos. para comunicação com os protocolos. Conceito introduzido no sistema Conceito introduzido no sistema operacional operacional BSD 4.2BSD 4.2Padrão de fato para programação de Padrão de fato para programação de aplicações em redeaplicações em redePossibilita a comunicação entre processos Possibilita a comunicação entre processos em sistemas operacionais e arquiteturas de em sistemas operacionais e arquiteturas de hardware diferenteshardware diferentes

66

Page 7: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

SocketsSockets

O que é um O que é um Socket?Socket?

É um manipulador de arquivos usado por um É um manipulador de arquivos usado por um processoprocesso para requisitar serviços de rede do para requisitar serviços de rede do sistema operacional.sistema operacional.

77

Exemplo da declaração de um socket, para Exemplo da declaração de um socket, para TCPTCP, em Python:, em Python:

serversocket = socket.socket(socket.AF_INET, serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)socket.SOCK_STREAM)

Page 8: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

SocketsSockets

Forma de endereçamento de um socket:Forma de endereçamento de um socket:

Endereço: <protocolo, endereço local, Endereço: <protocolo, endereço local, processo local>processo local>

Exemplo:Exemplo:<tcp, 192.168.22.33, 12345><tcp, 192.168.22.33, 12345>

88

Page 9: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

SocketsSockets

Conceitos relacionados a sockets:Conceitos relacionados a sockets:

Conversação: comunicação entre dois Conversação: comunicação entre dois processos;processos;Associação: tupla com 5 campos que define Associação: tupla com 5 campos que define completamente a conexão entre 2 processos:completamente a conexão entre 2 processos:

<protocolo,endereço local, processo local, <protocolo,endereço local, processo local, endereço externo, processo externo>endereço externo, processo externo>

Exemplos:Exemplos:<tcp, 193.44.234.3, 1500, 193.44.234.5, 21><tcp, 193.44.234.3, 1500, 193.44.234.5, 21>

<udp, 203.44.24.3, 1500, 191.42.2.5, 53><udp, 203.44.24.3, 1500, 191.42.2.5, 53>

99

Page 10: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

SocketsSockets

TCP Sockets:TCP Sockets: Provê comunicação de fluxo de bytes de Provê comunicação de fluxo de bytes de forma bi-direcional entre dois processos;forma bi-direcional entre dois processos;A aplicação não precisa gerenciar este A aplicação não precisa gerenciar este fluxo, pois o gerenciamento é feito pelo fluxo, pois o gerenciamento é feito pelo protocolo TCP;protocolo TCP;Identificação:Identificação:

<tcp, endereço IP, Número da Porta><tcp, endereço IP, Número da Porta>A comunicação entre dois processos, possui A comunicação entre dois processos, possui identificação única:identificação única:

<tcp, IP local, Porta Local, IP Remoto, <tcp, IP local, Porta Local, IP Remoto, Porta Remota>Porta Remota>

Obs.: Um servidor tem a capacidade de gerenciar Obs.: Um servidor tem a capacidade de gerenciar múltiplas conversações por uma única porta múltiplas conversações por uma única porta

(multiplexação).(multiplexação).

1010

Page 11: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Aplicações em RedeAplicações em Rede

Requisitos:Requisitos:O mecanismo de sockets deve estar O mecanismo de sockets deve estar disponível no sistema operacionaldisponível no sistema operacional

MS Windows, Linux, FreeBSD, MS Windows, Linux, FreeBSD, MacOS, Android…MacOS, Android…

A linguagem de programação deverá A linguagem de programação deverá possuir uma biblioteca de socketspossuir uma biblioteca de sockets

C, Java, Python, Perl, PHP, Ruby, C, Java, Python, Perl, PHP, Ruby, C#, .NET…C#, .NET…

Uso da primitivas de comunicaçãoUso da primitivas de comunicaçãoSEND, RECEIVE, OPEN, CLOSESEND, RECEIVE, OPEN, CLOSE

1111

Page 12: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Aplicações em RedeAplicações em Rede

Requisitos:Requisitos:A aplicação deverá utilizar um socket de A aplicação deverá utilizar um socket de acordo com o protocoloacordo com o protocolo

TCP – Fluxo de bytes (STREAM)TCP – Fluxo de bytes (STREAM)UDP – Datagrama (DATAGRAM)UDP – Datagrama (DATAGRAM)

Ao se definir o tipo de socket, TCP ou UDP, a Ao se definir o tipo de socket, TCP ou UDP, a comunicação entre aplicações em cada host comunicação entre aplicações em cada host obedecerão as funcionalidades do protocolo obedecerão as funcionalidades do protocolo da camada de transporteda camada de transporte

Em caso de uso do UDP, não haverá Em caso de uso do UDP, não haverá garantias de entrega, controle de fluxo ou garantias de entrega, controle de fluxo ou ordenação dos dadosordenação dos dadosNeste caso, estes controles deverão ser Neste caso, estes controles deverão ser implementados na aplicação implementados na aplicação

1212

Page 13: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Aplicações em RedeAplicações em Rede

Requisitos:Requisitos: O significado dos dados transportados O significado dos dados transportados pelo UDP ou TCP, deverá ser garantido pelo UDP ou TCP, deverá ser garantido por um protocolo da camada de por um protocolo da camada de aplicaçãoaplicação

Exemplo: Exemplo: HTTPHTTP

1313

Page 14: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Aplicações em RedeAplicações em Rede

Exemplo de aplicação:Exemplo de aplicação: Conexão com TCP a um servidor de Conexão com TCP a um servidor de HTTP (Python)HTTP (Python)

Servidor TCP simples (Python)Servidor TCP simples (Python)

1414

Page 15: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Aplicações em RedeAplicações em Rede

Servidor de Eco (TCP)Servidor de Eco (TCP) Cliente de Eco (TCP)Cliente de Eco (TCP)

1515

Page 16: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Aplicações em RedeAplicações em Rede

Servidor de Eco (UDP) Cliente de Eco Servidor de Eco (UDP) Cliente de Eco (UDP)(UDP)

1616

Page 17: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

Estudos de CasoEstudos de Caso

Jogos em RedeJogos em RedeDemonStar DemonStar ((http://www.mking.com/demonstar/index.html))

Jogo da Velha em Jogo da Velha em Rede Rede ((http://www.cs.ucr.edu/~ddreier/p2.html))

Little Fighter 2Little Fighter 2 ((http://lf2.net/))

1717

Page 18: Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular

BibliografiaBibliografia

TCP/IP Tutorial and Technical Overview – TCP/IP Tutorial and Technical Overview – RODRIGUEZ, Adolfo; GATRELL, John; KARAS, John; RODRIGUEZ, Adolfo; GATRELL, John; KARAS, John; PESCHKE, Roland - IBM Red Books – 2006 – PESCHKE, Roland - IBM Red Books – 2006 – Disponível em: Disponível em: http:// ibm.com /redbookshttp:// ibm.com /redbooksFreeBSD Handkbook – disponível em:FreeBSD Handkbook – disponível em: http://www.freebsd.org/doc/en/books/developers-handbook/book.html#SOCKETS GOERZEn, John. Foundations of Python Network GOERZEn, John. Foundations of Python Network Programming. Apress, 2004. Programming. Apress, 2004.

1818