mc833a programação de redes de computadores · camada de rede verifica endereço ip e repassa...
TRANSCRIPT
![Page 1: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/1.jpg)
1
MC833A – Programação de Redes de Computadores
Professor Nelson Fonseca
http://www.lrc.ic.unicamp.br/mc833/
![Page 2: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/2.jpg)
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?
![Page 3: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/3.jpg)
Arquitetura Internet (1)
![Page 4: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/4.jpg)
Arquitetura Internet (2)
“TCP/IP”
Funções bem definidas
Encapsulamento
Abstração
Facilidade na implementação
Obs.: Foco em cliente-servidor
![Page 5: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/5.jpg)
Cliente-Servidor
![Page 6: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/6.jpg)
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)
![Page 7: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/7.jpg)
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
![Page 8: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/8.jpg)
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)
![Page 9: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/9.jpg)
Em resumo (1 cliente e 1 servidor)
![Page 10: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/10.jpg)
Arquitetura Internet (visão geral) “TCP/IP”
![Page 11: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/11.jpg)
Chapter 1: Fundamentals 11
Internet Protocol Tree Commonly Used Protocols
Application-Layer Protocols
Transport-Layer protocols
Network-Layer protocols
Physical+Data Link(Type of Network)
FTP
Telnet SMTP
POP3
DNS RPC TFTP
NFS Mount
UDP TCP
BOOTP RARP ARP ICMP IP
Wireless LAN Ethernet xDSL OC-3
RIP
OSPF
HTTP NNTP
DHCP
BGP
SNMPP
PPP
![Page 12: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/12.jpg)
12
TCP
Transferência confiável
Um “pipe” entre dois processos remotos
Entrega em ordem e garantida (buffers fazem um papel fundamental)
processo
TCP com
buffers,
variáveis
socket
Criado e mantido
pela aplicação
Controlado pelo
sistema operacional
processo
TCP com
buffers,
variáveis
socket
Criado e mantido
pela aplicação
Controlado pelo
sistema operacional internet
![Page 13: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/13.jpg)
13
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?
![Page 14: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/14.jpg)
14
TCP: Seq e ACK A B
envia ‘C’
tempo cenário simples de telnet
![Page 15: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/15.jpg)
15
TCP: transferência confiável
wait
for
event
espera
por
evento
evento: dados recebidos da aplicação
evento: tempo limite para o segmento seq #y
evento: ACK recebido, com ACK #y
create e envia segmentos
retransmita segmento
Processa ACK
![Page 16: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/16.jpg)
16
TCP: cenários de retransmissão
Host A
perda
Tim
e out
tempo ACKs duplicados
Host B
X
Host A
Tem
p.p/ Seq=9
2
Timeout cedo
Host B
Tim
eout S
eq=10
0
tempo
![Page 17: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/17.jpg)
17
TCP: fechamento da conexão
cliente servidor
fechar
fechar
fechada
Tem
po
de e
spera
Para que o tempo de espera?
![Page 18: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/18.jpg)
18
TCP: gerência da conexão
![Page 19: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/19.jpg)
19
TCP: transição de estados
![Page 20: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/20.jpg)
20
TCP diagrama de estados
![Page 21: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/21.jpg)
21
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?
![Page 22: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/22.jpg)
22
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
Portas BSD reservadas
Portas BSD temporárias Servidores BSD (sem privilégio)
rresvport Portas Solaris temporárias
1 1023 1024 49151 49152 65535
1 1023 1024 3000 3001 65535
513-1023 32768 65535
![Page 23: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/23.jpg)
23
Números de portas
Como implementar a associação de portas temporárias?
Quais os cuidados que devem ser tomados?
![Page 24: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/24.jpg)
24
Aplicações e protocolos
![Page 25: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/25.jpg)
25
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
Uma interface (“porta”),
local,
criada e mantida pela
aplicação e controlada
pelo sistema operacional ,
que permite mandar
e receber mensagens para
processos remotos
socket
![Page 26: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/26.jpg)
26
Identificação de sockets <endereço IP local, porta local, endereço IP remoto, porta
remota>
Client1
Client2
Server
Server (child1)
Server (child 2)
206.168.112.219 12.106.32.254 192.168.42.1
{206.168.112.219:1500, 12.106.32.254:21}
{206.168.112.219:1501, 12.106.32.254:21}
{12.106.32.254:21, 206.168.112.219:1501}
{12.106.32.254:21, 206.168.112.219:1500}
{* : 21,* : *} listening socket
Connected socket
Connected socket
fork
![Page 27: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/27.jpg)
Chapter 1: Fundamentals 27
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
![Page 28: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/28.jpg)
Chapter 1: Fundamentals 28
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
![Page 29: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/29.jpg)
Chapter 1: Fundamentals 29
Software Architecture in Linux Systems: Router
Routed (RIP) / gated or zebra (RIP, OSPF, BGP, etc.)
Inetd (ftp, telnet, etc.)
Kernel Space
User Space
Routing Table
update
Protocol Driver
Adapter Driver
Adapter Driver
Control Plane
Data Plane
Control Plane
Data Plane
![Page 30: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/30.jpg)
Chapter 1: Fundamentals 30
Software Architecture in Linux Systems: Host
![Page 31: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/31.jpg)
Chapter 1: Fundamentals 31
Kernel Components
User Programs & Applications
Process Management
Process Management Memory
Management
Memory Management File System
File System Device Control
Device Control Networking
Networking
Architecture Dependent
Code
Architecture Dependent
CodeMemory Manager
Memory Manager
FS typesFS types
Device Control
Device Control
Block DeviceBlock Device
Network Subsystem
Network Subsystem
ConnectivityTTY & Device
accessFiles &
DirectorysVirtual Memory
Concurrency Multitasking
Application Level
Kernel Level
Kernel Parts
Features Implemented
IF driversIF drivers
Software Support
Hardware Control
Hardware Level
CPUCPU
RAMRAM
Disks & CDsDisks & CDs Console,
Serial Ports
Console, Serial Ports Network
Interfaces
Network Interfaces
System call
![Page 32: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/32.jpg)
Chapter 1: Fundamentals 32
Clients and Daemon Servers Socket APIs: TCP, UDP, raw, link, routing
![Page 33: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/33.jpg)
Chapter 1: Fundamentals 33
Interface Drivers: In and Out
![Page 34: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/34.jpg)
Chapter 1: Fundamentals 34
Book Roadmap Packets’ Life in a Web Server
![Page 35: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/35.jpg)
Chapter 1: Fundamentals
Performance Matters: From Socket to Driver within a Server
35 35
![Page 36: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/36.jpg)
Chapter 1: Fundamentals 36
hub
router NIC 2 ch2/ch3
TX Adapter Driver
Ke
rne
l S
pa
ce
ch4
ch3
NIC 1 ch2/ch3
RX Adapter Driver
check input chain
check ouput chain
check forward chain
to local process
check prerouting table for (1) transparency proxy(ch6)
& (2) flow classification(ch7)
host
masquerading
version, len, and error chk
make routing
decision
TX RX
Log and detect Intrusion by Snort (ch8) U
se
r S
pa
ce
Dest. IP is local
IPv4 Dest. IP isn’t local
Src. check post
routing for ip IP is local
traffic control (ch7)
gateway
Routing by Zebra (ch4)
Book Roadmap A Packet’s Life in a Router
![Page 37: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/37.jpg)
Chapter 1: Fundamentals 37
Performance Matters: From Input Port to Output Port within a Router
![Page 38: MC833A Programação de Redes de Computadores · Camada de rede verifica endereço IP e repassa para ... (DNS reverso, respostas, confirmação da conexão, ... DHCP SNMPP PPP. 12](https://reader030.vdocuments.site/reader030/viewer/2022020205/5c0289f309d3f248168b98d2/html5/thumbnails/38.jpg)
Laboratório de Teleprocessamento e Redes 38
Algoritmos (Exercício)
Escrever os algoritmos (alto nível)
Cliente/servidor TCP
Cliente/servidor UDP