Вы находитесь на странице: 1из 29

Arquitetura TCP/IP

UNICAMP
Centro de Computao
Rubens Queiroz de Almeida 01 Junho 2000

Histrico TCP/IP
Criado pelo DARPA em meados de 1970 Surgimento da ARPANET e da MILNET Integrao ao UNIX/BSD Surgimento da NSFNET Comit Organizador - IAB (Internet Activities Board) Documentao - RFCs e IENs SRI-NIC

Introduo Arquitetura TCP/IP

Fluxo de Mensagens

Fluxo de Mensagens

Encapsulamento TCP/IP-Ethernet

Endereos Ethernet
Endereo nico no mundo, estabelecido pelo IEEE 6 bytes Codificado por hardware Ex. 00-00-1D - 00-26-A3 00-00-1D identifica o fabricante 00-26-A3 identifica o nmero de srie

Anncios

Endereamento IP (1)
Distribudos pelo SRI-NIC Representados em notao decimal Intervalo de 0.0.0.0 a 255.255.255.255 Nmero IP: Atribudo pelo InterNIC Nmero Computador: Atribudo localmente, pelo administrador de redes [End. IP]=[No. Rede]+[No. Computador]

Endereos Especiais
Todos 0s: Este computador nesta rede

Todos 1s: Todas as redes ou todos os computadores Loopback: Processamento de dados no sistema local (127.0.0.1)

Classes de Redes (1)

Classes de Redes IP (2)

Classes IP Reservadas
Parte do espao de endereamento reservada para uso interno, sem conectividade direta com a

Internet global 10.0.0.0 172.16 a 172.31 (16 classes B) 192.168.0 a 192.168.255 (256 classes C contguas)

Subnetting (1)
Mscara separa parte "rede" da parte "mquina" e segue o mesmo padro numrico do nmero IP Nmero de rede e de mquina com valor 0 so invlidos 127.0.0.1 reservado para teste de loopback Qualquer poro do endereo formada por 1s considerada um broadcast

Subnetting (2)
[Nmero Rede] [Nmero Subrede] [Nmero Computador] Interpretado apenas na rede local Transparente a redes remotas Escolha do administrador de redes

Mscaras e Subnetting (1)


Permite que se divida a poro de mquina em 2 partes: mais bits para rede menos bits para mquinas

Utiliza-se uma nova mscara para identificar a nova parte de redes A nova poro do endereo usada para rede conhecida como subnet

Tipos de Subredes
Estticas - mscara fixa Fcil de se implementar e manter Desperdcio de endereos Variveis - mscara varivel,Variable Length Subnetting roteadores com suporte a mscaras variveis

Subnetting - Exemplos

Mscaras e Subnetting (2)


Dado o nmero IP 143.106.20.45 e a mscara 255.255.0.0 Endereo de rede: 143.106.0.0 Dada a mscara 255.255.255.192 e endereo de rede: 143.106.20.0 Endereo da rede: 143.106.20.0

Broadcast nesta rede: 143.106.255.255

Broadcast nesta rede: 143.106.20.63

Subnetting - Equao Genrica


Equao genrica: nmero de mquinas/subredes na rede: 2 **n-2 ,onde n igual ao nmero de bits para subnet ou nmero de bits de mquina

Subnetting - Classe B

Subnetting - Classe B

Subnetting - Classe B

Subredes/Computadores - Classe B
+---------+---------------+--------+--------+------+ |# de bits| Mascara |Mascara |Subredes|Hosts | | | Decimal | Hexa | | |

+---------+---------------+--------+--------+------+ |2 |255.255.192.0 |FFFFC000| 2|16382 | |3 |255.255.224.0 |FFFFE000| 6| 8190 | |4 |255.255.240.0 |FFFFF000| 14| 4094 | |5 |255.255.248.0 |FFFFF800| 30| 2046 | |6 |255.255.252.0 |FFFFFC00| 62| 1022 | |7 |255.255.254.0 |FFFFFE00| 126| 510 | |8 |255.255.255.0 |FFFFFF00| 254| 254 | |9 |255.255.255.128|FFFFFF80| 510| 126 | |10 |255.255.255.192|FFFFFFC0| 1022| 62 | |11 |255.255.255.224|FFFFFFE0| 2046| 30 | |12 |255.255.255.240|FFFFFFF0| 4094| 14 | |13 |255.255.255.248|FFFFFFF8| 8190| 6 | |14 |255.255.255.252|FFFFFFFC| 16382| 2 | +---------+---------------+--------+--------+------+

Subredes/Computadores - Classe C
+---------+---------------+--------+-------+------+ |# de bits| Mscara | Mscara|Subnets|Hosts | | | Decimal | Hexa | | | +---------+---------------+--------+-------+------+ |2 |255.255.255.192|FFFFFFC0| 2| 62 | |3 |255.255.255.224|FFFFFFE0| 6| 30 | |4 |255.255.255.240|FFFFFFF0| 14| 14 | |5 |255.255.255.248|FFFFFFF8| 30| 6 | |6 |255.255.255.252|FFFFFFFC| 62| 2 | +---------+---------------+--------+-------+------+

Repetidores
nvel 1 OSI estende um segmento de rede regenera os sinais recebidos mximo 2 repetidores ( 4 em IRLs)

Pontes (Bridges)

nvel 2 OSI Armazena os frames Analisa o endereo de destino Transmite apenas se necessrio Transparente a protocolo de rede

Roteadores
nvel 3 OSI recebe somente frames a ele endereados toma deciso baseado no endereo de rede do pacote

Protocolos da Famlia TCP/IP

tcpdump
tcpdump tcpdump -i eth0 tcpdump -i eth0 [ip|tcp|udp|icmp|arp|rarp] tcpdump -i eth0 port 23 tcpdump -i eth0 dst port 23 tcpdump -i eth0 src port 23

IP
Internet Protocol No confivel: entrega no garantida, sem controle de sequenciamento, no detecta erros nem informa o transmissor Connectionless: cada pacote tratado independentemente dos outros Bem intencionado: os pacotes s so descartados quando todos os recursos so exauridos Unidade bsica: datagrama - que quebrado em fragmentos para se adequar ao MTU do hardware

Cabealho Pacotes IP

TTL: Time to Live


Campo que diz que aps determinado tempo o datagrama pode ser descartado Cada gateway decrementa 1 ao receb-lo e a cada segundo TTL=0, datagrama retornado

Estabelecimento de Sesses TCP

ICMP (1)
Internet Control Message Protocol ICMP permite que gateways enviem mensagem de erro ou de controle para outros gateways ou mquinas Prov comunicao entre o protocolo Internet (IP) em uma mquina e o IP em outra

ICMP (2)
Muitas vezes no ajuda a localizar onde est o erro, pois ele responde apenas mquina que originou o pacote errneo e o erro pode estar em algum gateway no caminho. Pode ser perdido como qualquer outro pacote IP PING : pacote ICMP do tipo "echo request" e "echo reply "

ICMP - Traceroute
Determinao da rota que datagramas IP seguem de um computador a outro Baseado sobre os protocolos UDP e ICMP Modificao do campo TTL

Pontos intermedirios: ICMP Time Exceeded Destino: ICMP Port Unreachable

Traceroute - Exemplo
# traceroute www.unicamp.br traceroute to obelix.unicamp.br (143.106.10.2), 30 hops max, 40 byte packets 1 super-gw (143.106.20.65) 1.118 ms 1.040 ms 0.961 ms 2 ccuec-gw (143.106.80.1) 1.859 ms 1.810 ms 1.749 ms 3 corp-gw.unicamp.br (143.106.2.52) 3.139 ms 2.037 ms 2.061 ms 4 obelix.unicamp.br (143.106.10.2) 2.645 ms * 2.567 ms

ICMP - Ping
# tcpdump -i eth0 icmp Kernel filter, protocol ALL, datagram packet socket tcpdump: listening on eth0 09:29:55.307166 > paris.unicamp.br > abc.unicamp.br: 09:29:55.308212 < abc.unicamp.br > paris.unicamp.br: 09:29:56.300823 > paris.unicamp.br > abc.unicamp.br: 09:29:56.302057 < abc.unicamp.br > paris.unicamp.br: 09:29:57.300683 > paris.unicamp.br > abc.unicamp.br: 09:29:57.301930 < abc.unicamp.br > paris.unicamp.br: 09:29:58.300653 > paris.unicamp.br > abc.unicamp.br: 09:29:58.301904 < abc.unicamp.br > paris.unicamp.br: 8 packets received by filter

icmp: icmp: icmp: icmp: icmp: icmp: icmp: icmp:

echo echo echo echo echo echo echo echo

request reply request reply request reply request reply

Aplicaes de Rede
Processos clientes X servidores Servidores esto sempre ativos esperando conexes Clientes so criados assincronamente

Portas
Cada processo que deseja se comunicar com outro se identifica aos protocolos TCP/IP por meio de uma ou mais portas Portas so nmeros de 16 bits para identificar a qual aplicao ou protocolo de alto nvel as mensagens devem ser entregues Dois tipos: bem conhecidos (well known) e efmeros

Sockets (1)
Tipo especial de arquivo utilizado para solicitar servios de rede do sistema operacional Exemplo: [prot:end. local:proc. local] TCP/IP: [tcp:143.106.20.10:12345]

Sockets (2)
Associao: [prot:end. local:proc. local:end. remoto:proc. remoto] TCP/IP: [tcp:143.106.20.10:12345:200.200.20.10:25] Dois processos se comunicam atravs de sockets TCP

netstat -an
Conexes Internet Ativas (servidores e estabelecidos) Proto Recv-Q Send-Q Endereo Local Endereo Remoto tcp 1 0 143.106.20.75:3861 143.106.80.3:80 tcp 1 0 143.106.20.75:3860 143.106.80.3:80 tcp 1 0 143.106.20.75:3859 143.106.80.3:80 tcp 1 0 143.106.20.75:3857 143.106.80.3:80 tcp 63 0 143.106.20.75:3819 143.106.80.3:993 Estado ESPERANDO_FECHAR ESPERANDO_FECHAR ESPERANDO_FECHAR ESPERANDO_FECHAR ESPERANDO_FECHAR

tcp tcp tcp tcp tcp tcp tcp tcp tcp

0 81 0 53 0 0 0 0 0

0 0 0 0 0 0 0 0 0

143.106.20.75:3815 143.106.20.75:3758 143.106.20.75:1019 143.106.20.75:2000 0.0.0.0:80 0.0.0.0:443 0.0.0.0:3306 143.106.20.75:1021 143.106.20.75:1020

143.106.80.3:993 143.106.10.22:21 143.106.80.3:22 143.106.10.7:119 0.0.0.0:* 0.0.0.0:* 0.0.0.0:* 143.106.10.2:22 143.106.80.3:22

ESTABELECIDA ESPERANDO_FECHAR ESTABELECIDA ESPERANDO_FECHAR OUA OUA OUA ESTABELECIDA ESTABELECIDA

Cabealho TCP

Configuraa de Aplicaes TCP/IP


Porta destino: Well-known ports Porta origem: alocao dinmica Arquivos: /etc/services /etc/inetd.conf

/etc/services

tcpmux echo echo discard discard systat daytime daytime netstat qotd msp msp chargen chargen ftp-data

1/tcp 7/tcp 7/udp 9/tcp 9/udp 11/tcp 13/tcp 13/udp 15/tcp 17/tcp 18/tcp 18/udp 19/tcp 19/udp 20/tcp

# TCP port service multiplexer sink null sink null users

quote # message send protocol # message send protocol ttytst source ttytst source

/etc/inetd.conf
# [service_name] [sock_type] [proto] echo stream tcp echo dgram udp discard stream tcp discard dgram udp daytime stream tcp daytime dgram udp # ftp stream tcp nowait root telnet stream tcp nowait root [flags] nowait wait nowait wait nowait wait [user] root root root root root root [server_path] [args] internal internal internal internal internal internal in.ftpd -l -a in.telnetd

/usr/sbin/tcpd /usr/sbin/tcpd

UDP e TCP
UDP - User Datagram Protocol TCP - Transmission Control Protocol Nvel de transporte (sobre o IP)

TCP
Transmission Control Protocol Multiplexao: uso de portas de protocolo

Transferncia de dados contnua (stream) Confivel Controle de fluxo: janelas deslizantes, temporizao

Conexes lgicas Full Duplex

Comunicao entre Processos

Transmisso de Dados

TCP - Janelas Deslizantes (1)

TCP - Janelas Deslizantes (2)

TCP - Janelas Deslizantes (3)

UDP

User Datagram Protocol UDP no orientado a conexo e no tem tratamento de erros Utiliza portas de protocolo para identificar os processos comunicantes de maneira unvoca Protocolo leve, porm transfere a recuperao de erros para a aplicao NFS, DNS, NIS, TFTP, RPC, SNMP, LDAP

Cabealho UDP

ARP - Address Resolution Protocol


A quer enviar mensagem para B, com endereo IP(B) Envia requisio broadcast Obtm endereo fsico de B, F(B) Guarda F(B) em cache Envia mensagem para F(B)

ARP

ARP
% arp -a gilda.unicamp.br (143.106.30.16) at 8:0:5a:cd:56:f6 [ethernet] roma.unicamp.br (143.106.30.9) at 14:3:10:6:30:0 [ethernet] panoramix.unicamp.br (143.106.30.11) at 8:0:20:9:71:6f [ethernet]

ARP - Exemplo

# tcpdump -i eth0 arp Kernel filter, protocol ALL, datagram packet socket tcpdump: listening on eth0 09:36:36.427377 > arp who-has nbc.ccuec.unicamp.br tell paris.ccuec.unicamp.br (0:0:b4:3a:f9: 09:36:36.428096 < arp reply nbc.ccuec.unicamp.br is-at 0:40:5:1a:c9:f (0:0:b4:3a:f9:21)

RARP
Reverse Address Resolution Protocol enviam requisio broadcast recebe endereo IP fornecido por

mquinas diskless precisam saber seu nmero IP servidores RARP possuem banco de dados com mapeamento IP X Ethernet

um servidor RARP armazena em memria at o prximo reboot

Roteamento IP

Roteamento IP

netstat -r
Tabela de Roteamento IP do Kernel Destino Roteador MscaraGen. Opes 143.106.20.75 * 255.255.255.255 UH 143.106.20.64 143.106.20.75 255.255.255.192 UG 143.106.20.64 * 255.255.255.192 U 143.106.20.0 super-gw.ccuec. 255.255.255.192 UG 143.106.20.192 super-gw.ccuec. 255.255.255.192 UG 143.106.20.128 super-gw.ccuec. 255.255.255.192 UG 143.106.30.0 super-gw.ccuec. 255.255.255.192 UG 143.106.80.64 super-gw.ccuec. 255.255.255.192 UG 143.106.80.0 super-gw.ccuec. 255.255.255.192 UG 143.106.30.64 super-gw.ccuec. 255.255.255.192 UG 143.106.30.128 super-gw.ccuec. 255.255.255.192 UG 143.106.80.192 super-gw.ccuec. 255.255.255.192 UG 143.106.80.128 super-gw.ccuec. 255.255.255.192 UG 143.106.30.192 super-gw.ccuec. 255.255.255.192 UG 192.168.1.0 192.168.1.1 255.255.255.0 UG 192.168.1.0 * 255.255.255.0 U 127.0.0.0 * 255.0.0.0 U default super-gw.ccuec. 0.0.0.0 UG default super-gw.ccuec. 0.0.0.0 UG MSS 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Janela 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 irtt 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Iface eth0 eth0 eth0 eth0 eth0 eth0 eth0 eth0 eth0 eth0 eth0 eth0 eth0 eth0 eth0 eth0 lo eth0 eth0

Sistemas Autnomos

TELNET
Estabelece uma sesso de login remoto interativa Utiliza a porta 23 TCP O cliente ignora caracteres de controle com exceo de um que funcionar como escape Permite independncia de tipos de terminais Desvantagem: ineficincia. Cada caractere transmitido fora vrias trocas de contexto de processos dentro do sistema operacional local e remoto.

FTP

File Transfer Protocol Filosofia Cliente-Servidor Acesso Interativo Usurio especifica mquina destino, username e password Eficiente

FTP
Transferncia nem sempre pode ser revertida Duas portas de protocolo: Porta 20: Processo de transferncia dos dados Porta 21: Processo de controle (baseado em telnet) FTP annimo para arquivos pblicos

Bibliografia
Interneworking with TCP/IP - Douglas E. Comer TCP/IP Tutorial and Technical Overview - http://www.redbooks.ibm.com Netscape Open Directory: http://dmoz.org/Computers/Internet/Protocols/ TCP/IP Illustrated, Volume 1, W. Richard Stevens

Perguntas??

Вам также может понравиться