Documente Academic
Documente Profesional
Documente Cultură
TCP/ IP
2008/2009
Introdução TCP/IP
2
Introdução TCP/IP
3
Introdução TCP/IP
4
Estrutura do TCP/IP
5
Estrutura do TCP/IP
6
Estrutura do TCP/IP
Os protocolos da camada aplicações de rede implementam pelo
menos os seguintes serviços do TCP/IP (existem mais):
FTP ( File Transfer Protocol ): Este serviço/protocolo permite
transferir ficheiros entre dois computadores diferentes em
qualquer dos sentidos. Usualmente e por medida de segurança,
é pedido um username e uma password.
Telnet: Este serviço/protocolo permite a um utilizador abrir uma
sessão de trabalho numa máquina remota. Ao utilizarmos este
serviço é pedido um username e uma password como no serviço
anterior.
Mail: Este serviço permite o envio de mensagens a outros
utilizadores dispersos pela rede. Normalmente a gestão do mail é
feita um servidor próprio, tornando-se neste caso a aplicação de
mail do computador onde se encontra o utilizador um mero
interface entre o computador e o servidor de mail.
7
Estrutura do TCP/IP
8
Arquitectura Protocolar TCP/IP
Arquitectura dominante
Os protocolos da família TCP/IP foram especificados e
implementados antes da maior parte dos protocolos baseados no
modelo OSI
WWW usa TCP/IP
Filosofia TCP/IP
As funções de comunicação são estruturadas em módulos
Entidades comunicam com entidades homólogas (peer)
noutros sistemas
Num sistema uma entidade
– Usa serviços de outras entidades
– Fornece serviços a outras entidades
– Serviços podem ser fornecidos a camadas não adjacentes (ao
contrário do modelo OSI)
9
Pilha Protocolar TCP/IP
Aplicação – serviços de utilizador
– Comunicação entre processos ou aplicações
– Modelo cliente-servidor
– HTTP, FTP, telnet
Transporte (TCP/UDP)
– Transmissão de mensagens extremo a extremo
– Independente do serviço de sub(redes) físicas
– Pode incluir transferência fiável (TCP)
Internet (IP)
– Encaminhamento através de múltiplas (sub)redes
interligadas (internetworking)
– Implementado em computadores (hosts) e nós
intermédios (routers)
Acesso a uma rede (subrede)
– Acesso a uma (sub)rede e comunicação entre
estações (hosts / routers) ligadas à mesma (sub)rede
física
Físico
– Características eléctricas e mecânicas do acesso à
(sub)rede (níveis de sinal, débitos de transmissão,
conectores, etc.)
10
Algumas Características do TCP/IP
O IP (Internet Protocol) é
implementado em todos os
computadores e routers
Cada computador tem um
endereço IP único em cada
subrede a que pertence
Cada processo num
computador tem um endereço
único (porta)
11
IP – Internet Protocol
RFC 791
Entidade da pilha TCP/IP
Protocolo de interligação de redes mais usado
IP especificado em duas partes
Serviços oferecidos aos níveis superiores
Protocolo e formato do datagrama
12
Protocolo IP
» Version – versão do protocolo (v4)
» IHL – comprimento do cabeçalho
(em palavras de 32 bits); 20..60
octetos
» Type of Service – tipo de serviço a
fornecer pela rede
» Total Length – comprimento total
do datagrama (máx. 65535 octetos)
» Identification – identificador
comum a todos os fragmentos de um » Protocol – protocolo da camada de
datagrama transporte
» DF – Don’t Fragment encapsulado (exemplo: TCP, UDP)
» MF – More Fragments » Source Address – endereço do emissor
» Fragment Offset » Destination address – endereço do
» Time To Live (TTL) – limita a vida destinatário
de um pacote; decrementado de cada » Options – 1 octeto identifica a opção; 1
vez que passa por um router; quando octeto
atinge o valor 0 o pacote é eliminado contém o comprimento (opcional); exemplo:
Record Route
13
Protocolos TCP/IP
14
TCP – Transmission Control Protocol
RFC 793
Características
assegura o fluxo de octetos extremo a
extremo, fiável, sobre um suporte não
fiável
protocolo orientado às ligações
ligações full-duplex
confirma os dados
recupera de perdas e erros
(retransmissões)
entrega ordenada dos dados
controlo de fluxo e de
congestionamento
Estabelecimento de ligação
3 way handshake
modelo cliente-servidor
15
Cabeçalho do pacote TCP
16
Cabeçalho do pacote TCP
Portos origem e destino: identificam múltiplos canais
virtuais dentro da mesma ligação entre 2 máquinas.
Porto destino é normalmente usado para identificar a aplicação
servidor destino que irá receber a ligação.
Cada ligação é determinada pelos pares (host, porto)
das 2 máquinas.
Só pode existir uma única ligação entre quaisquer 2
portos;
Mas podem existir múltiplas ligações a partir de um
único porto origem para vários destinos.
Número de sequência: especifica a ordem do primeiro
byte no pacote, de modo a garantir a ordenação dos
dados.
17
Cabeçalho do pacote TCP
Acknowledgement Number: confirmação do último
byte recebido. Referido como “ack”. Este valor
especifica o último byte recebido correctamente na
ligação.
Flags: sinalizam condições ou estados especiais.
Exemplo:
inicialização de comunicação através de um “three
way handshake”:
SYN, SYN-ACK, ACK
18
User Datagram Protocol
(UDP)
Serviço não orientado à conexão para aplicações
Não fiável
Controlo de entrega e duplicação não garantido
Baixo custo de comunicação
Serviço básico comum a todos tipos de comunicações
Utilização:
Recolha ou disseminação de informação
Modelo de comunicação pedido-resposta
Aplicações com necessidade de tempo-real
19
Cabeçalho Pacote UDP
20
Camada Transporte no Mod. OSI
21
Protocolos de Transporte
22
Protocolo de Transporte Orientado
à Conexão
Estabelece um canal virtual ou lógico entre aplicações
nas 2 máquinas terminais.
Responsável por estabelecer, manter e terminar a
conexão lógica.
São mais complexos quando implementados sobre
protocolos de rede sem serviço fiável
No protocolo IP os datagramas podem-se perder, duplicar ou
ser entregues por uma ordem diferente pela qual foram
enviados.
23
Propriedades de um Protocolo de
Transporte fiável
Entrega ordenada de pacotes:
Cada segmento de dados é numerado sequencialmente
O TCP usa granularidade do byte, e usa a numeração do
primeiro byte como o número de sequência do pacote
Retransmissão de pacotes:
Pacote extraviou-se no percurso
Implica capacidade do destinatário lidar com pacotes
duplicados
Emissor não detecta a falha na entrega, por isso o
receptor deve sinalizar a recepção com sucesso ACK.
Quando o emissor não recebe a confirmação da
recepção do pacote, o emissor reenvia novamente o
pacote.
24
Propriedades de um Protocolo de
Transporte fiável
Definição de um período fixo de time-out (tempo de
espera até retransmitir):
Não se adapta a mudanças de carga na rede que podem fazer
com que durante um curto espaço de tempo todos os pacotes
se atrasem a chegar ao destino;
Quando é muito pequeno, pequenos atrasos na comunicação
causam re-envios desnecessários dos pacotes;
Quando é muito grande, o canal demora bastante tempo a
recuperar da perda de um pacote;
Idealmente este período deve ser um pouco maior do que o
“round-trip time”: o tempo médio que demora ao envio e
recepção de mensagens entre duas máquinas.
25
Aplicação do TCP/IP (mail)
Como já foi referido o TCP/IP é um conjunto de
protocolos organizados por camadas, o que pode ser
evidenciado através da análise de uma aplicação
típica.
Neste caso analisaremos o serviço de mail, para o qual
existe um protocolo que define o conjunto de
comandos e a estrutura das mensagens a enviar.
O protocolo de mail foi especificado de forma a utilizar
as facilidades do TCP ( Transport Control Protocol ) e
do IP ( Internet Protocol ), o protocolo de mail parte do
princípio que existe um meio fiável de comunicação
entre o emissor e receptor.
26
Aplicação do TCP/IP (mail)
O serviço de mail pertence à camada de aplicações de
rede, esta camada utiliza o serviço fornecido pela
camada TCP/UDP.
A camada TCP/UDP utiliza os serviços da camada IP,
que por sua vez utiliza os serviços de uma camada
inferior neste caso a Ethernet.
Normalmente as aplicações TCP/IP utilizam 4
camadas.
27
Aplicação do TCP/IP (mail)
O TCP/IP assume um modelo onde considera a
existência de várias redes independentes ligadas entre
si por gateways, e onde o utilizador pode aceder a
qualquer outro recurso em qualquer das redes.
Os datagramas passarão por várias redes antes de
atingirem o seu destino final pelo que terá de existir
uma forma de orientar os datagramas.
Esta forma de orientação deverá ser invisível ao
utilizador que só precisa de conhecer o nome (ou
endereço IP) do computador a que quer aceder.
28
Aplicação do TCP/IP (mail)
O conjunto de protocolos TCP/IP é baseado no
conceito sem ligação (connectionless), o que significa
que a a informação é transferida como uma sequência
de datagramas independentes.
Um datagrama é o equivalente a um telegrama no
serviço postal corrente uma vez que possui um
remetente, um destinatário e uma mensagem.
Cada datagrama é enviado individualmente através da
rede, por ligações previamente definidas.
29
Aplicação do TCP/IP (mail)
Dependendo do tamanho da mensagem esta poderá
ter que ser dividida por vários datagramas, pelo que os
vários datagramas serão tratados pela rede como não
tendo nenhuma relação entre eles.
Para se transferir pela rede um ficheiro de 15000
octetos haveria o problema de algumas redes que
estão entre o emissor e o receptor não suportarem
datagramas de 15000 octetos.
Neste caso o TCP divide o ficheiro em vários
datagramas com 30-500 octetos cada um, que serão
enviados para a rede.
30
Aplicação do TCP/IP (mail)
A camada TCP do receptor terá a responsabilidade de
reagrupar os datagramas por forma a reconstituir o
ficheiro inicial de 15000 octetos.
Enquanto os datagramas estão em trânsito entre os
dois pontos a rede não tem qualquer indicação da
ligação que existe entre esses pontos, sendo possível
ao datagrama 100 chegar antes do 99.
Por vezes ocorrem erros na rede que provocam a
perda de datagramas, neste caso existe um
mecanismo de protecção que pede o reenvio do
datagrama.
31
Aplicação do TCP/IP (mail)
Os termos datagrama e pacotes são muitas vezes
confundidos.
Datagrama é o termo que se deve utilizar quando se
descreve o TCP/IP, é também a unidade de dados com
que os protocolos trabalham.
Pacote é um termo aplicado a algo que é físico, um
pacote aparece na Ethernet ou num fio.
Na maior parte dos casos um pacote contém apenas
um datagrama, sendo a diferença nula.
32
Aplicação do TCP (mail)
De seguida é exemplificado o que acontece a um
ficheiro que vai ser enviado pela rede:
1. Inicialmente temos um ficheiro que queremos enviar para outro computador,
ele é composto por n conjuntos de octetos P1, P2, P3, ..., Pn.
Cada conjunto de octetos P será constituido da seguinte forma, onde O1, O2, ...,
Oj são octetos,
Se tivermos um ficheiro com 15000 octetos e supondo que cada datagrama TCP
pode levar 500 octetos de dados, então teríamos um ficheiro composto por 30
conjuntos de 500 octetos. Ou seja, o valor para n seria de 30 (n/j=15000/500=30) e
o j seria 500.
33
Aplicação do TCP (mail)
2. O que o TCP faz é dividir o ficheiro inicial em partes fáceis de gerir (TCP tem de
determinar qual o tamanho máximo do datagrama que a rede suporta), a seguir o
TCP parte o ficheiro em partes cujo tamanho é suportado pela ligação.
34
Aplicação do TCP (mail)
Todos os datagramas têm um numero de sequência para garantir a sua
correcta ordenação no destino, permitindo assim descobrir se há algum
datagrama em falta. O TCP numera os octetos e não os datagramas, assim
se existirem 500 octetos de dados em cada datagrama ao primeiro datagrama
é posto o numero 0 no respectivo campo, enquanto ao segundo é atribuido o
numero 500, terceiro 1000, etc.
35