MC833A Programação de Redes de Computadores

Documentos relacionados
Protocolos de Rede. Protocolos em camadas

Modelo de Referência OSI

Camada de Transporte Protocolos TCP e UDP

Serviços de Comunicações Capítulo 3

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

Funções da. Os principais serviços oferecidos pela camada de transporte são: Controle de conexão, Fragmentação, Endereçamento e Confiabilidade.

Resumo P2. Internet e Arquitetura TCP/IP

Agenda. Rede de Computadores (Técnico em Informática) Protocolo TCP Transmission Control Protocol. Introdução ao Protocolo TCP

Modelos de referência de arquiteturas de redes: OSI e TCP/IP Profsº Luciano / Roberto

Redes de Comunicação de Dados

Arquitetura de Redes de Computadores

Protocolos de Interligação de Redes Locais e a Distância Protocolos de Transporte. Thiago Leite

! Introdução! Pacote TCP! Número de Seqüência TCP! Estados TCP. " Estabelecimento de conexão " Troca de dados " Encerramento de conexão. !

Redes de Computadores. Protocolos TCP/IP

Nível de Transporte Portas, Protocolos UDP e TCP

Agenda. Protocolo TCP. Introdução ao Protocolo TCP. Introdução ao Protocolo TCP. Introdução ao Protocolo TCP. Introdução ao protocolo TCP: Exemplo

Protocolo TCP. Redes TCP-IP. Agenda. Protocolo TCP Transmission Control Protocol. Introdução ao Protocolo TCP. Introdução ao Protocolo TCP

Protocolos TCP e UDP. Protocolo TCP. Protocolo TCP. A necessidade de uma comunicação segura: Transmission Control Protocol

CURSO TÉCNICO EM INFORMÁTICA

Prof. Marcelo Cunha Parte 6

Redes de Computadores

Programação TCP/IP. Protocolos TCP e UDP

Arquitetura da Internet TCP/IP

Protocolos de Interligação de Redes Locais e a Distância Camada de Transporte

Tecnologia de Redes. Arquitetura de Rede de Computadores

Comunicação em Rede e Internet. Computação Aplicada à Comunicação e Artes Carlos Eduardo Ba9sta

Programação com Sockets

Modelo OSI x Modelo TCP/IP

Rede de computadores Protocolos UDP. Professor Carlos Muniz

REDES DE COMPUTADORES

Redes de Computadores Aula 5

REVISÃO - Questões de Redes em Concursos. Semestre: 2 Bimestre:2 Data: / / 2013

Módulo 08 - Protocolo IP Página 1. Tecnologia de Redes. Volnys B. Bernal Versão de 15/06/2000. Agenda. Tecnologia de Redes

REDES DE COMPUTADORES

Introdução a Redes e a Internet. Introdução ao Computador 2010/01 Renan Manola

Exercícios Redes de Comunicação de Dados

Instalação e Configuração de Servidores Linux Server Configuração de Rede. Prof. Alex Furtunato

Níkolas Timóteo Paulino da Silva Redes de Computadores I ADS 2ºTermo

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Modelo de Camadas. Redes de Computadores

Introdução à Programação Sockets

Camada de rede. Introdução às Redes de Computadores

Tecnologia de Redes. Protocolo TCP

Capítulo 6. A camada de transporte. slide 1 1 reservados.

Padrões (arquiteturas) de rede

Redes de Computadores

P L A N O D E D I S C I P L I N A

Funções da Camada de

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

Data and Computer Network Endereçamento IP

REDES DE COMPUTADORES

Redes de Computadores

Prof. Samuel Henrique Bucke Brito

Capítulo 5 Sumário. Formato das Mensagens ICMP. Tipos de Mensagens ICMP

Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Origem:

TCP/IP Protocolos e Arquiteturas

Arquitetura TCP/IP - Internet Protocolo IP Protocolo ICMP

Redes de Computadores

Reinaldo Gomes Conjunto de redes de escala mundial, ligadas pelo

Planificação Anual da disciplina de Comunicação de dados 12º 1PE

Redes de Computadores

Licenciatura em Engenharia Multimédia Redes e Internet I Obrigatória X

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO ERINALDO SANCHES NASCIMENTO O MODELO TCP/IP

Redes de Computadores

Jéfer Benedett Dörr

Arquitetura em Camadas. Profª. Dianne Scherly Varela de Medeiros

Redes de Computadores

Introdução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. Introdução à Programação Sockets

Arquitetura e Protocolos de Rede TCP/IP

Camadas do TCP/IP. Camada de Rede Protocolo IP. Encapsulamento dos Dados. O Protocolo IP. IP visto da camada de Transporte.

Protocolo ICMP Internet Control Message Protocol. Introdução ao Protocolo ICMP. Introdução ao Protocolo ICMP. Introdução ao Protocolo ICMP

Infra Estruturas Computacionais. Modelos de Referência. Modelos de Referência para Redes de Computadores. Arquitetura RM-OSI/ISO. O Modelo OSI da ISO

Introdução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. Introdução à Programação Sockets

Arquiteturas de Protocolos. Aplicação. Redes. Aplicações cliente-servidor. Aplicações peer-to-peer

MODELOS DE REFERENCIA OSI TCP/IP

Capítulo 5 & 6. A camada de Rede (fim do capítulo 5 e parte do capitulo 6) Provinha Store-and-Forward Packet Switching

Curso de Pós-Graduação Lato-Sensu em Redes de Computadores. Arquitetura TCP/IP. Hermes Senger DC/UFSCar 2012

Direto ou Indireto Monolítico ou Estruturado Simétrico ou Assimétrico Padronizado ou Não-Padronizado

Parte 3: Camada de Rede

Redes de Computadores

Redes de Computadores

Redes de Computadores e a Internet

Redes de Computadores. Prof. André Y. Kusumoto

Redes de Computadores. Camada de Transporte

Resumo. Redes de Computadores. História da Internet. História da Internet. História da Internet. História da Internet

Redes de Computadores Arquitetura TCP/IP. Prof. Alberto Felipe

REDES DE COMPUTADORES

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO RIO GRANDE DO NORTE DEPARTAMENTO ACADÊMICO DE TECNOLOGIA DA INFORMAÇÃO

: TMS M

Professor: Jarbas Araújo.

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

Redes de Computadores. Modelo TCP/IP. Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior

Prof. Mizael Cortez Modelo em camadas Arquitetura TCP/IP Modelo ISO/OSI

Visão Geral de Protocolos

Redes de Computadores e Aplicações

Capítulo 1 PROTOCOLOS FUNDAMENTAIS DA INTERNET

Prof. Edson Maia Graduado em Web Design e Programação Bacharel e Licenciado em Geografia Especialista em Gestão Ambiental Complementação para

Transcrição:

MC833A Programação de Redes de Computadores Professor Nelson Fonseca http://www.lrc.ic.unicamp.br/mc833/ 1

Roteiro Objetivo: revisar conceitos aprendidos em MC822 e uma breve introdução a programação com sockets (Capítulos 1 e 2 do livro texto) Arquitetura Internet Detalhes de uma comunicação via Internet TCP x UDP Portas e serviços Protocolos e serviços Sockets em SOs Unix-like Programas úteis no GNU/Linux Como seriam os algoritmos?

Arquitetura Internet (1)

Arquitetura Internet (2) TCP/IP Funções bem definidas Encapsulamento Abstração Facilidade na implementação Obs.: Foco em cliente-servidor

Cliente-Servidor

Passo-a-passo da comunicação - cliente Usuário acessa máquina pelo nome Protocolo de aplicação DNS descobre o endereço IP No acesso todas camadas envolvidas Pode haver cache Pode haver mais de um endereço IP Aplicação solicita serviço da camada de transporte Prepara conexão ou começa a enviar dados Define valores que garantem exclusividade na comunicação (cliente-servidor) Faz verificação de erro (na verdade em muitas camadas)

Passo-a-passo da comunicação - cliente Transporte solicita da rede o serviço de buscar o caminho Análise do endereço IP, máscara, gateway padrão Protocolo de roteamento Rede solicita ao enlace que identifique os pontos da comunicação Endereço de hardware Rede local Switches Enlace solicita da física que transmita os bits Volts, cabos, luz

Passo-a-passo da comunicação - servidor Física informa chegada de dados na placa de rede Luz, volts transformados em bits internamente Enlace verifica os dados de endereço físico e passa restante para a camada de rede Camada de rede verifica endereço IP e repassa para transporte Transporte verifica porta e repassa para aplicação (Aplicação descoberta) Aplicação detecta pedido do cliente e toma a ação necessária (DNS reverso, respostas, confirmação da conexão, negação)

Em resumo (1 cliente e 1 servidor)

Arquitetura Internet (visão geral) TCP/IP

Internet Protocol Tree Commonly Used Protocols Application-Layer Protocols BGP FTP Telnet SMTP POP3 HTTP NNTP NFS DNS DHCP RPC TFTP Mount RIP SNMPP Transport-Layer protocols OSPF TCP UDP Network-Layer protocols Physical+Data Link(Type of Network) ARP PPP RARP IP ICMP BOOTP Ethernet Wireless LAN xdsl OC-3 Chapter 1: Fundamentals 11

TCP Transferência confiável Um pipe entre dois processos remotos Entrega em ordem e garantida (buffers fazem um papel fundamental) Criado e mantido pela aplicação Controlado pelo sistema operacional processo socket TCP com buffers, variáveis internet processo socket TCP com buffers, variáveis Criado e mantido pela aplicação Controlado pelo sistema operacional 12

TCP Estabelecimento de conexão 3-way handshake Garantia de entrega ACK Controle de fluxo, controle de congestionamento Janelas deslizantes Crescimento exponencial, aditivo, decrescimento multiplicativo Full-duplex Cabeçalho: Porta fonte, Porta destino, Número de sequência, ACK, flags, janela, checksum, etc... Quais as vantagens? Garantia de entrega Network friendly Quais as desvantagens? Overhead no estabelecimento, fechamento e no cabeçalho Ideal para transferência de arquivos Em uma rede com muitas conexões TCP e datagramas UDP, algum protocolo é mais prejudicado? 13

TCP: Seq e ACK envia C A B cenário simples de telnet tempo 14

TCP: transferência confiável evento: dados recebidos da aplicação create e envia segmentos espera wait por for event evento evento: tempo limite para o segmento seq #y retransmita segmento evento: ACK recebido, com ACK #y Processa ACK 15

TCP: cenários de retransmissão Host A Host B Host A Host B Time out X perda Temp.p/ Seq=92 Timeout Seq=100 tempo ACKs duplicados tempo Timeout cedo 16

TCP: fechamento da conexão cliente servidor fechar fechar Para que o tempo de espera? Tempo de espera fechada 17

TCP: gerência da conexão 18

TCP: transição de estados 19

TCP diagrama de estados 20

UDP Serviço melhor esforço Segmentos UDP podem ser: Perdidos Entregues fora de ordem Sem conexão: Não há estabelecimento de conexão Cada mensagem é processada individualmente Cabeçalho: Porta fonte, Porta destino, comprimento e checksum Quais as vantagens? Sem o overhead do estabelecimento das conexões Sem overhead do cabeçalho maior Quais as desvantagens? Sem controle de congestionamento Sem controle de fluxo Ideal para multimídia Pode ser usado em transmissão de arquivos? 21

Números de portas IANA Portas bem conhecidas são de 0 a 1023 Em um SO Unix-like elas são acessíveis somente pelo root Arquivo /etc/services Portas IANA bem conhecidas Portas IANA registradas Portas IANA dinâmicas ou registradas 1 1023 1024 49151 49152 65535 Portas BSD reservadas Portas BSD temporárias Servidores BSD (sem privilégio) 1 1023 1024 3000 3001 65535 rresvport Portas Solaris temporárias 513-1023 32768 65535 22

Números de portas Como implementar a associação de portas temporárias? Quais os cuidados que devem ser tomados? 23

Aplicações e protocolos 24

Sockets API Sockets Em SOs Unix-like, tudo é arquivo! Socket = o arquivo para comunicação de programas via rede cliente/servidor Dois tipos de serviço de transporte via API Sockets Datagrama, entrega não confiável Fluxo de bytes, entrega confiável socket Uma interface ( porta ), local, criada e mantida pela aplicação e controlada pelo sistema operacional, que permite mandar e receber mensagens para processos remotos 25

Identificação de sockets <endereço IP local, porta local, endereço IP remoto, porta remota> 206.168.112.219 12.106.32.254 192.168.42.1 Client1 {206.168.112.219:1500, 12.106.32.254:21} Client2 {206.168.112.219:1501, 12.106.32.254:21} Server {* : 21,* : *} listening socket Server (child1) {12.106.32.254:21, 206.168.112.219:1500} Server (child 2) fork Connected socket {12.106.32.254:21, 206.168.112.219:1501} Connected socket 26

1.4 Open Source Implementations Open vs. closed Taxonomy of open source packages Software architecture in Linux systems Kernel modules Interface drivers Clients and daemon servers Chapter 1: Fundamentals 27

Open vs. Closed What to open: interface or implementation? Open: Internet (interface), Linux (implementation) Closed: IBM SNA (System Network Architecture), Microsoft Virtues to open interface Interoperability Virtues to open implementation World-wide contributors Fast updates and patches Better code quality Chapter 1: Fundamentals 28

Software Architecture in Linux Systems: Router User Space Routed (RIP) / gated or zebra (RIP, OSPF, BGP, etc.) Inetd (ftp, telnet, etc.) update Routing Table Kernel Space Protocol Driver Adapter Driver Adapter Driver Control Plane Data Plane Control Plane Data Plane Chapter 1: Fundamentals 29

Software Architecture in Linux Systems: Host Chapter 1: Fundamentals 30

Kernel Components User Programs & Applications Application Level System call Process Management Process Management Memory Management Memory Management File System File System Device Control Device Control Networking Networking Kernel Level Kernel Parts Concurrency Multitasking Architecture Dependent Architecture Dependent Code Code Virtual Memory Memory Manager Memory Manager Files & Directorys FS types FS types Block Device Block Device TTY & Device access Device Control Device Control Connectivity Network Subsystem Network Subsystem IF drivers IF drivers Features Implemented Software Support Hardware Control CPU CPU RAM RAM Disks & CDs Disks & CDs Console, Serial Console, Ports Serial Ports Network Interfaces Network Interfaces Hardware Level Chapter 1: Fundamentals 31

Clients and Daemon Servers Socket APIs: TCP, UDP, raw, link, routing Chapter 1: Fundamentals 32

Interface Drivers: In and Out Chapter 1: Fundamentals 33

Book Roadmap Packets Life in a Web Server Chapter 1: Fundamentals 34

Performance Matters: From Socket to Driver within a Server Chapter 1: Fundamentals 35 35

Kernel Space User Space Book Roadmap A Packet s Life in a Router Log and detect Intrusion by Snort (ch8) Routing by Zebra (ch4) to local process check input chain TX router NIC 2 ch2/ch3 check ouput chain IPv4 Dest. IP isn t local check forward chain masquerad routing for ip ing IP is local RX make routing decision Src. check post traffic control (ch7) Adapter Driver gateway Dest. IP is local check prerouting table for (1) transparency proxy(ch6) & (2) flow classification(ch7) version, len, and error chk Adapter Driver TX RX NIC 1 ch2/ch3 ch4 ch3 hub host Chapter 1: Fundamentals 36

Performance Matters: From Input Port to Output Port within a Router Chapter 1: Fundamentals 37

Algoritmos (Exercício) Escrever os algoritmos (alto nível) Cliente/servidor TCP Cliente/servidor UDP Laboratório de Teleprocessamento e Redes 38