Buscar

Introdução TCPIP

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*
*
Introdução ao TCP/IP
História
1969 - Advanced Research Project Agency (ARPA) financia a pesquisa e o desenvolvimento de uma rede experimental de comutação de pacotes (ARPANET)
O objetivo era estudar técnicas para implementar sistemas de comunicação de dados robustos e independentes de fornecedores
*
*
*
Introdução ao TCP/IP
História
ARPANET foi tão bem sucedida que várias organizações ligadas à rede passaram a usá-la cotidianamente
1975 - ARPANET deixa o caráter experimental, transformando-se em uma rede operacional, quando a Defense Communications Agency (DCA) assume o seu controle
*
*
*
Introdução ao TCP/IP
História 1983
Os protocolos TCP/IP foram desenvolvidos como padrões militares.Todos os hosts na rede tiveram que se converter para os novos protocolos
DARPA financiou a implementação do TCP/IP na versão Berkley (BSD) Unix
O termo internet se popularizou
*
*
*
Introdução ao TCP/IP
História
1983 - ARPANET divide-se em MILNET e uma nova (e menor) ARPANET
1985 - A National Science Foundation (NSF) cria a NSFNet e a conecta a internet
1987 - NSF cria um novo e mais rápido backbone e uma topologia em três camadas que incluem o backbone, redes regionais e redes locais
*
*
*
Introdução ao TCP/IP
História
1990 - ARPANET encerra suas atividades
1995 - NSFNet deixa de ser o principal backbone da Internet
*
*
*
Introdução ao TCP/IP
História
O que hoje é conhecido como a Internet originou-se de um experimento usado principalmente por cientistas e desenvolvedores
O crescimento da Internet ultrapassou todas as expectativas dos seus criadores
As agências e redes envolvidas na criação da Internet não representam um papel importante, hoje 
*
*
*
TCP/IP
Defined
Transmission Control Protocol/Internet Protocol:
	Uma família de protocolos de rede que foram usados para construir a Internet. Também conhecidos como a suíte de protocolos DoD ou ARPANET.
*
*
*
TCP/IP
In a Nutshell:
Um conjunto de protocolos que permite que computadores possam se comunicar, não importando o fabricante ou o sistema operacional
*
*
*
Os 4 níveis do TCP/IP
Aplicação
Transporte
Rede (network)
Enlace (data link)
Telnet, FTP, mail, etc
TCP, UDP
IP, ICMP, IGMP
 Device Driver e placa de rede
*
*
*
Os 4 níveis do TCP/IP
Link layer (Data link layer)
	
	Este nível abrange o driver de dispositivo no SO e a correspondente placa de rede. Trata dos detalhes de hardware necessários para o interfaceamento físico com a rede
*
*
*
Os 4 níveis do TCP/IP
Network Layer (Internet Layer)
	
	Gerencia o movimento (comutação) e o roteamento dos pacotes na rede.
*
*
*
Os 4 níveis do TCP/IP
Nível de Transporte
	Proporciona um fluxo de dados entre dois hosts, para o nível de aplicação. Dois protocolos de transporte podem ser empregados:
	TCP: Confiável. Sequencia os dados recebidos do nível de aplicação, agrupando-os em segmentos. Estabelece conexões (three way handshake). Confirma recepção dos segmentos enviados. 	UDP: Não-confiável. Envia pacotes de dados (datagramas) de um host para outro, sem garantia de entrega. A sobrecarga desse protocolo é menor que a do TCP
*
*
*
Os 4 níveis do TCP/IP
Nível de Aplicação
	Este nível trata dos detalhes específicos de cada aplicação. Algumas aplicações padrão em TCP/IP incluem:
Telnet
FTP
SMTP
SNMP
*
*
*
Os 4 níveis do TCP/IP
Encapsulamento
	Quando uma aplicação envia dados usando TCP/IP, ela os envia através de cada nível da pilha de protocolos.
Cada nível adiciona sua informação aos dados da camada superior.
No final, os dados são enviados como uma seqüência de bits, pela rede
*
*
*
Encapsulamento no TCP/IP
User Data
46 to 1500 bytes
Ethernet
Encapsulamento
*
*
*
The 4 layers of TCP/IP 
Demultiplexação
Quando um quadro ethernet é recebido por um host ele começa a subir nas camadas de protocolos
Cada camada procura seu respectivo cabeçalho e decide o que fazer com os dados, antes de passá-los para o próximo nível
Clique para editar o estilo do título mestre
Clique para editar o estilo do subtítulo mestre
*
*
*
TCP/IP Networking Protocols
*
*
*
Internet Protocol
IP - Features
O protocolo padrão (nível de rede) empregado pela suíte de protocolos TCP/IP
IP define as regras para encapsular o tráfego da rede em datagramas, assim como a movimentação (roteamento) desse tráfego
IP também é responsável pela fragmentação dos dados, quando necessário, e pela reconstrução dos datagramas no destino
*
*
*
Datagrama IP
*
*
*
Datagrama IP
 •	Version (versão): Indica qual é a versão do IP que está sendo usado. (normalmente IPv4)
 •	Header Length (comprimento do cabeçalho): Indica quantas palavras de 4 bytes existem no cabeçalho
 • Type of Service-TOS (tipo de serviço): Indica o nível de serviço associado ao datagrama (*)
 • Datagram Length (comprimento do datagrama): comprimento, em bytes, do datagrama - incluindo o cabeçalho (max 65,535 bytes)
 • Datagram Identification (identificação do datagrama): Identifica, univocamente, um datagrama enviado para um host
(*) http://www.iana.org/assignments/ip-parameters
*
*
*
Datagrama IP
 • Flags: bits indicadores. O primeiro não é usado. O Don’t Fragment (DF) e More Fragment (MF) controlam o modo como um datagrama é fragmentado
 • Fragment Offset: Indica qual é o fragmento 
 • Time to Live (TTL): Indica por quantos roteadores um datagrama pode passar antes de ser descartado (max TTL é 255)
 • Protocol: Indica qual é o protocolo de camada superior que usa o datagrama IP
 • Header Checksum: Armazena o resultado de um cálculo efetuado sobre os bits do cabeçalho. Tem por objetivo permitir que o destino averigue a integridade dos dados recebidos
*
*
*
Datagrama IP
 • Source/Destination IP Addresses (Endereços IP fonte/destino): Endereços IP (32bits) do host que envia o datagrama (fonte) e do host que receberá o datagrama (destino)
 • Options (opções): As opções (*) atualmente definidas raramente são usadas. Existem opções para segurança, armazenamento de rota, roteamento mandatório, timestamp, etc.
 • Data (dados): São os dados transportados pelo datagrama IP. São atribuídos pelos protocolos de camadas superiores
(*) http://www.iana.org/assignments/ip-parameters
*
*
*
Internet Protocol
Packet Analysis
*
*
*
Traceroute
Não existe garantia de que dois datagramas IP seguirão o mesmo caminho, da origem ao destino, embora usualmente isto aconteça
Traceroute é uma ferramenta que ajuda a traçar o caminho seguido pelos datagramas IP, de um host a outro
*
*
*
Traceroute - How it works
Envia um datagrama IP com TTL igual a 1 para o host destino
O primeiro roteador a lidar com esse datagrama, decrementa o TTL para 0, descarta o datagrama e envia uma mensagem ICMP (time exceeded) para o host origem
Traceroute então envia um outro datagrama, com TTL igual a 2, permitindo alcançar um outro roteador
Esse processo continua, até que os datagramas alcancem o host destino
*
*
*
Traceroute
Exemplo de saída de um traceroute:
# traceroute victim.com
traceroute to victim (172.16.1.10), 30 hops max, 40 byte packets
1 satan (172.16.1.66) 20ms 10ms 10ms
2 victim (172.16.1.10) 120ms 120ms 120ms
Para cada TTL, 3 datagramas serão enviados. Os tempos são registrados na saída do traceroute.
*
*
*
Transmission Control Protocol
TCP - Características
TCP é um protocolo de transporte (nível 4) 
Oferece uma conexão confiável entre dois hosts
Proporciona um ‘circuito virtual’ entre dois hosts
Toda comunicação exige confirmação (acknowledge) de recepção
*
*
*
Transmission Control Protocol
TCP - Features
TCP empacota os dados em segmentos, que contém os dados e informação de controle de sessão
Os segmentos podem chegar fora da ordem em que foram enviados
Números de seqüência são empregados para reordenar os segmentos
*
*
*
Números de Seqüência
Packet Analysis
Packet 49
 TCP: port ftp-data -> 26410 seq=1326731397 ack=1518678629
DATA: 1460 bytes
---------------------------------------------------------------------------
Packet 50
 TCP: port ftp-data -> 26410 seq=1326732857 ack=1518678629
DATA: 1460 bytes
---------------------------------------------------------------------------
Packet 51
 TCP: port ftp-data -> 26410 seq=1326734317 ack=1518678629
DATA: 1460 bytes
---------------------------------------------------------------------------
Packet 52
 TCP: port ftp-data -> 26410 seq=1326735777 ack=1518678629
DATA: 1460 bytes
ftp transfer tcpdump output
*
*
*
Transmission Control Protocol
Maximiza a performance de uma conexão, assegurando-se que os segmentos não sejam muito pequenos ou muito grandes
CONFIÁVEL
*
*
*
Transmission Control Protocol
Circuitos Virtuais - Conexões TCP comportam-se como uma conexão full-duplex
Conexões confiáveis - Segmentos TCP tem garantia de entrega. Se a entrega não for possível, a aplicação é notificada
Otimização de performance - TCP pode modificar variáveis de transmissão, de acordo com as condições da rede
*
*
*
Transmission Control Protocol
*
*
*
Transmission Control Protocol
TCP Header
 •	Source Port/Destination Port: 16-bit port number do host origem e do host destino
 • Sequence Number: 4-byte number assinalado pelo TCP, começando com um valor randômico. 
 • Acknowledgement Number: Confirma o último segmento enviado pelo host 
 • Header Length: Tamanho do cabeçalho em palavras de 4-bytes
 
*
*
*
Transmission Control Protocol
TCP Header
 • Flags: usados para negociar e gerenciar uma conexão:
URG: Indica que segmento enviado tem caráter de urgência
ACK: Indica que o ack no segmento é válido
PSH: (PUSH) indica que os dados devem ser passados para a aplicação assim que possível
RST: Reseta a conexão
SYN: Sincroniza número de seqüência para iniciar uma conexão.
FIN: Encerramento normal de conexão
 • 16-Bit Window Size: O número de bytes que o receptor está disposto a aceitar, sem confirmação. 
 
*
*
*
Transmission Control Protocol
TCP Header
 • 16-Bit TCP Checksum: um checksum do segmento TCP
 • 16-Bit Urgent Pointer: usado somente se o flag URG estiver acionado
 • Options: A opção mais comum é o Maximum Segment Size (MSS) que determina o maior tamanho de segmento que o host origem pode receber
 • Data: opcional. Quando conexões estão sendo estabelecidas, nenhum dado é enviado
*
*
*
Transmission Control Protocol 
Packet Analysis
*
*
*
TCP - Estabelecendo uma conexão
Three Way Handshake
1: Envia SYN ISN=x
2: Envia SYN ISN=y, ACK x+1
3: Envia ACK ISN y+1
4: Conexão estabelecida
*
*
*
TCP Three Way Handshake
Packet Analysis - Parte 1
---------------------------------------------------------------------------
 Packet 1
 TIME: 19:50:32.912582 (0.040960)
 LINK: 00:40:05:E3:09:D0 -> 00:00:C5:38:0D:27 type=IP
 IP: strife -> testbed hlen=20 TOS=00 dgramlen=44 id=2864
 MF/DF=0/0 frag=0 TTL=64 proto=TCP cksum=E641
 TCP: port 24616 -> ftp seq=2735221453 ack=0000000000
 hlen=24 (data=0) UAPRSF=000010 wnd=512 cksum=FBEC urg=0
 DATA: <No data>
---------------------------------------------------------------------------
The requesting client sends a SYN (synchronize) segment specifying the port number of the server it wishes to connect to and the client’s ISN (Initial Sequence Number).
*
*
*
TCP Three Way Handshake
Packet Analysis - Parte 2
---------------------------------------------------------------------------
Packet 2
TIME: 19:50:32.912792 (0.000210)
LINK: 00:00:C5:38:0D:27 -> 00:40:05:E3:09:D0 type=IP
 IP: testbed -> strife hlen=20 TOS=00 dgramlen=44 id=5FF4
 MF/DF=0/1 frag=0 TTL=64 proto=TCP cksum=6EB1
 TCP: port ftp -> 24616 seq=2809565737 ack=2735221454
 hlen=24 (data=0) UAPRSF=010010 wnd=17520 cksum=7FCB urg=0
DATA: <No data>
---------------------------------------------------------------------------
The server responds with a SYN segment including the servers own ISN. An ACK (acknowledge) is also sent with the clients ISN plus one.
*
*
*
TCP Three Way Handshake
Packet Analysis - Parte 3
---------------------------------------------------------------------------
Packet 3
TIME: 19:50:32.913768 (0.000976)
LINK: 00:40:05:E3:09:D0 -> 00:00:C5:38:0D:27 type=IP
 IP: strife -> testbed hlen=20 TOS=00 dgramlen=40 id=2865
 MF/DF=0/1 frag=0 TTL=64 proto=TCP cksum=A644
 TCP: port 24616 -> ftp seq=2735221454 ack=2809565738
 hlen=20 (data=0) UAPRSF=010000 wnd=32120 cksum=5E80 urg=0
DATA: <No data>
---------------------------------------------------------------------------
The client acknowledges the servers SYN and sends an ACK segment with the Servers ISN plus one.
*
*
*
User Datagram Protocol
UDP - Características
UDP é um protocolo de transporte
Não detecta erros, não tem confirmação de entrega, não estabelece conexões
proporciona uma entrega sem conexão entre dois hosts
UDP tem um baixo overhead
*
*
*
User Datagram Protocol
*
*
*
User Datagram Protocol
UDP Formato do Datagrama
 • Source Port Number: 16-bit port number do host origem. Usa portas randômicas (acima de 1024)
 • Destination Port Number: 16-bit port number do host destino. Usa portas conhecidas
 • 16-Bit UDP Length: Indica o comprimento do datagrama UDP, incluindo o cabeçalho
 • 16-Bit UDP Checksum: checksum calculado a partir de todo datagrama UDP
 
*
*
*
UDP
Packet Analysis
UDP Header
 Source Port: 2167 (<unknown>)
 Destination Port: 53 (domain)
 Datagram Length: 37 bytes (Header=8, Data=29)
 Checksum: 0xD5B0 
*
*
*
Introdução ao TCP/IP
Referências
Livros
• TCP/IP Illustrated Volume 1
W. Richard Stevens
Addison-Wesley
1994
ISBN:0-201-63346-9
• TCP/IP Network Administration - 2nd Edition
Craig Hunt
O’Reilly & Associates
1998
ISBN: 1-56592-322-7
	
	
*
*
*
Introdução ao TCP/IP
Referências
WWW
• TCP/IP FAQ Frequently Asked Questions (1999-07) Part 1 of 2
http://www.cis.ohio-state.edu/hypertext/faq/usenet/internet/tcp-ip/tcp-ip-faq/part1/faq.html
• TCP/IP FAQ Frequently Asked Questions (1999-07) Part 1 of 2
http://www.cis.ohio-state.edu/hypertext/faq/usenet/internet/tcp-ip/tcp-ip-faq/part1/faq.html
*
*
*
Ferramentas
• ethereal
É uma ferramenta que permite colocar uma placa de rede em modo promíscuo, capturando tráfego de rede para posterior exibição.
Existem versões para Win32 e os mais variados sabores de *ix, incluindo Linux.
www.ethereal.com
*
*
*
Roteamento IP

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais