48
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

  • Upload
    lynne

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

Introdução ao TCP/IP História. 1969 - A dvanced R esearch P roject A gency (ARPA) financia a pesquisa e o desenvolvimento de uma rede experimental de comutação de pacotes (ARPANET) - PowerPoint PPT Presentation

Citation preview

Page 1: Introdução ao TCP/IP História

Introdução ao TCP/IPHistó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

Page 2: 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/IPHistória

Page 3: Introdução ao TCP/IP História

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/IPHistória 1983

Page 4: 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/IPHistória

Page 5: 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/IPHistória

Page 6: 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

Introdução ao TCP/IPHistória

Page 7: Introdução ao TCP/IP História

TCP/IPDefined

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.

Page 8: Introdução ao TCP/IP História

TCP/IPIn a Nutshell:

Um conjunto de protocolos que permite que computadores possam se comunicar, não importando o fabricante ou o sistema operacional

Page 9: Introdução ao TCP/IP História

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

Page 10: Introdução ao TCP/IP História

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

Page 11: Introdução ao TCP/IP História

Network Layer (Internet Layer)

Gerencia o movimento (comutação) e o roteamento dos pacotes na rede.

Os 4 níveis do TCP/IP

Page 12: Introdução ao TCP/IP História

Nível de TransporteProporciona 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

Page 13: Introdução ao TCP/IP História

Nível de AplicaçãoEste 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

Page 14: Introdução ao TCP/IP História

Os 4 níveis do TCP/IP

EncapsulamentoQuando 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

Page 15: Introdução ao TCP/IP História

Encapsulamento no TCP/IP

IP Layer

Link Layer

Application Layer

TCP Layer

User Data

ApplicationHeader User Data

TCPHeader Application Data

TCPHeader Application Data

IPHeader

Application DataTCP

HeaderIP

HeaderEthernetHeader

EthernetTrailer

TCP Segment

IP Datagram

Ethernet Frame46 to 1500 bytes

Ethernet

Encapsulamento

Page 16: Introdução ao TCP/IP História

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

Page 17: Introdução ao TCP/IP História

TCP/IP Networking Protocols

Page 18: Introdução ao TCP/IP História

Internet ProtocolIP - 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

Page 19: Introdução ao TCP/IP História

Datagrama IP

Page 20: Introdução ao TCP/IP História

•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

Page 21: Introdução ao TCP/IP História

• 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

Page 22: Introdução ao TCP/IP História

• 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

Datagrama IP

Page 23: Introdução ao TCP/IP História

Internet ProtocolPacket Analysis

IP Header Version: 4 Header Length: 20 bytes Service Type: 0x00 Datagram Length: 40 bytes Identification: 0x5850 Flags: MF=off, DF=on Fragment Offset: 0 TTL: 32 Encapsulated Protocol: TCP Header Checksum: 0x9658 Source IP Address: 172.16.10.2 (broken) Destination IP Address: 172.16.10.5 (testbed)

Page 24: Introdução ao TCP/IP História

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

Page 25: Introdução ao TCP/IP História

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

Page 26: Introdução ao TCP/IP História

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.

Page 27: Introdução ao TCP/IP História

Transmission Control ProtocolTCP - 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

Page 28: Introdução ao TCP/IP História

Transmission Control ProtocolTCP - 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

Page 29: Introdução ao TCP/IP História

Números de SeqüênciaPacket Analysis

Packet 49 TCP: port ftp-data -> 26410 seq=1326731397 ack=1518678629DATA: 1460 bytes---------------------------------------------------------------------------Packet 50 TCP: port ftp-data -> 26410 seq=1326732857 ack=1518678629DATA: 1460 bytes---------------------------------------------------------------------------Packet 51 TCP: port ftp-data -> 26410 seq=1326734317 ack=1518678629DATA: 1460 bytes---------------------------------------------------------------------------Packet 52 TCP: port ftp-data -> 26410 seq=1326735777 ack=1518678629DATA: 1460 bytes

ftp transfer tcpdump output

Page 30: Introdução ao TCP/IP História

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

Page 31: Introdução ao TCP/IP História

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

Page 32: Introdução ao TCP/IP História

Transmission Control Protocol

Page 33: Introdução ao TCP/IP História

Transmission Control ProtocolTCP 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

Page 34: Introdução ao TCP/IP História

Transmission Control ProtocolTCP Header

• Flags: usados para negociar e gerenciar uma conexão:

URG: Indica que segmento enviado tem caráter de urgênciaACK: Indica que o ack no segmento é válidoPSH: (PUSH) indica que os dados devem ser passados para a

aplicação assim que possívelRST: Reseta a conexãoSYN: 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.

Page 35: Introdução ao TCP/IP História

Transmission Control ProtocolTCP 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

Page 36: Introdução ao TCP/IP História

Transmission Control Protocol Packet Analysis

TCP Header Source Port: 22 (ssh) Destination Port: 1714 (<unknown>) Sequence Number: 1937534412 Acknowledgement Number: 0104479939 Header Length: 20 bytes (data=0) Flags: URG=off, ACK=on, PSH=off RST=off, SYN=off, FIN=off Window Advertisement: 32736 bytes Checksum: 0xD102 Urgent Pointer: 0

Page 37: Introdução ao TCP/IP História

TCP - Estabelecendo uma conexãoThree Way Handshake

1: Envia SYN ISN=x

2: Envia SYN ISN=y, ACK x+1

3: Envia ACK ISN y+1

Client

Server

SYN

ACK

SYN / ACK

4: Conexão estabelecida

Page 38: Introdução ao TCP/IP História

TCP Three Way HandshakePacket 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).

Page 39: Introdução ao TCP/IP História

TCP Three Way HandshakePacket Analysis - Parte 2

---------------------------------------------------------------------------Packet 2TIME: 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=0DATA: <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.

Page 40: Introdução ao TCP/IP História

TCP Three Way HandshakePacket Analysis - Parte 3

---------------------------------------------------------------------------Packet 3TIME: 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=0DATA: <No data>---------------------------------------------------------------------------

The client acknowledges the servers SYN and sends an ACK segment with the Servers ISN plus one.

Page 41: Introdução ao TCP/IP História

User Datagram ProtocolUDP - Características

UDP é um protocolo de transporteNã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

Page 42: Introdução ao TCP/IP História

User Datagram Protocol

Page 43: Introdução ao TCP/IP História

User Datagram ProtocolUDP 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

Page 44: Introdução ao TCP/IP História

UDPPacket Analysis

UDP Header Source Port: 2167 (<unknown>) Destination Port: 53 (domain) Datagram Length: 37 bytes (Header=8, Data=29) Checksum: 0xD5B0

Page 45: Introdução ao TCP/IP História

Livros• TCP/IP Illustrated Volume 1W. Richard StevensAddison-Wesley1994ISBN:0-201-63346-9

• TCP/IP Network Administration - 2nd EditionCraig HuntO’Reilly & Associates1998ISBN: 1-56592-322-7

Introdução ao TCP/IPReferências

Page 46: Introdução ao TCP/IP História

Introdução ao TCP/IPReferências

WWW• TCP/IP FAQ Frequently Asked Questions (1999-07) Part 1 of

2http://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

Page 47: Introdução ao TCP/IP História

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

Page 48: Introdução ao TCP/IP História

Roteamento IP