A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "Camada de Transporte: Portas, Sockets, Aplicações em Rede Faculdade Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular."— Transcrição da apresentação:

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

2 Sumário Endereçamento das aplicações Endereçamento das aplicações Sockets Sockets Aplicações com sockets Aplicações com sockets Estudo de Casos Estudo de Casos Referências Bibliográficas Referências Bibliográficas 2

3 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. 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. 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

4 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 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 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

5 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

6 Sockets Sockets: API (Application Programming Interface) para comunicação com os protocolos. API (Application Programming Interface) para comunicação com os protocolos. Conceito introduzido no sistema operacional BSD 4.2 Conceito introduzido no sistema operacional BSD 4.2 Padrão de fato para programação de aplicações em rede 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 Possibilita a comunicação entre processos em sistemas operacionais e arquiteturas de hardware diferentes 6

7 Sockets O que é um Socket? É um manipulador de arquivos usado por um processo para requisitar serviços de rede do sistema operacional. 7 Exemplo da declaração de um socket, para TCP, em Python: serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

8 Sockets Forma de endereçamento de um socket: Endereço: Endereço: Exemplo: 8

9 Sockets Conceitos relacionados a sockets: Conversação: comunicação entre dois processos; Conversação: comunicação entre dois processos; Associação: tupla com 5 campos que define completamente a conexão entre 2 processos: Associação: tupla com 5 campos que define completamente a conexão entre 2 processos: Exemplos: 9

10 Sockets TCP Sockets: Provê comunicação de fluxo de bytes de forma bi-direcional entre dois processos; 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; A aplicação não precisa gerenciar este fluxo, pois o gerenciamento é feito pelo protocolo TCP; Identificação: Identificação: A comunicação entre dois processos, possui identificação única: A comunicação entre dois processos, possui identificação única: Obs.: Um servidor tem a capacidade de gerenciar múltiplas conversações por uma única porta (multiplexação). 10

11 Aplicações em Rede Requisitos: O mecanismo de sockets deve estar disponível no sistema operacional O mecanismo de sockets deve estar disponível no sistema operacional MS Windows, Linux, FreeBSD, MacOS, Android… MS Windows, Linux, FreeBSD, MacOS, Android… A linguagem de programação deverá possuir uma biblioteca de sockets A linguagem de programação deverá possuir uma biblioteca de sockets C, Java, Python, Perl, PHP, Ruby, C#,.NET… C, Java, Python, Perl, PHP, Ruby, C#,.NET… Uso da primitivas de comunicação Uso da primitivas de comunicação SEND, RECEIVE, OPEN, CLOSE SEND, RECEIVE, OPEN, CLOSE 11

12 Aplicações em Rede Requisitos: A aplicação deverá utilizar um socket de acordo com o protocolo A aplicação deverá utilizar um socket de acordo 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 comunicação entre aplicações em cada host obedecerão as funcionalidades do protocolo da camada de transporte 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 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 Neste caso, estes controles deverão ser implementados na aplicação 12

13 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 O significado dos dados transportados pelo UDP ou TCP, deverá ser garantido por um protocolo da camada de aplicação Exemplo: HTTP 13

14 Aplicações em Rede Exemplo de aplicação: Conexão com TCP a um servidor de HTTP (Python) Conexão com TCP a um servidor de HTTP (Python) Servidor TCP simples (Python) Servidor TCP simples (Python) 14

15 Aplicações em Rede Servidor de Eco (TCP) Cliente de Eco (TCP) 15

16 Aplicações em Rede Servidor de Eco (UDP) Cliente de Eco (UDP) 16

17 Estudos de Caso Jogos em Rede DemonStar (http://www.mking.com/demonstar/index.html) DemonStar (http://www.mking.com/demonstar/index.html)http://www.mking.com/demonstar/index.html Jogo da Velha em Rede (http://www.cs.ucr.edu/~ddreier/p2.html) Jogo da Velha em Rede (http://www.cs.ucr.edu/~ddreier/p2.html)http://www.cs.ucr.edu/~ddreier/p2.html Little Fighter 2 (http://lf2.net/) Little Fighter 2 (http://lf2.net/)http://lf2.net/ 17

18 Bibliografia TCP/IP Tutorial and Technical Overview – RODRIGUEZ, Adolfo; GATRELL, John; KARAS, John; PESCHKE, Roland - IBM Red Books – 2006 – Disponível em: ibm.com /redbooks TCP/IP Tutorial and Technical Overview – RODRIGUEZ, Adolfo; GATRELL, John; KARAS, John; PESCHKE, Roland - IBM Red Books – 2006 – Disponível em: ibm.com /redbooks FreeBSD Handkbook – disponível em: handbook/book.html#SOCKETS FreeBSD Handkbook – disponível em: handbook/book.html#SOCKETS handbook/book.html#SOCKETS handbook/book.html#SOCKETS GOERZEn, John. Foundations of Python Network Programming. Apress, GOERZEn, John. Foundations of Python Network Programming. Apress,


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

Apresentações semelhantes


Anúncios Google