Post on 21-Dec-2014
description
1
R&C I / ISTEC - 07/08
4ª Parte4ª Parte
Protocolo TCPProtocolo TCP
2
R&C I / ISTEC - 07/08
Protocolo TCP (Transmission Control Protocol)* Connection-Oriented
• Estabelecimento de ligação extremidade-a-extremidade* Protocolo Fiável - Garante:
• Comunicação sem erros• Controlo de fluxo• Ordem cronológica
* Segmento - unidade básica de transmissão (tamanho max. = 64K)* Socket - Endereço Nível 4 = < Endereço IP : Nº de Porto >
• Ex. 205.218.156.56 : 80 , Porto 80 = serviço HTTP• 1 ligação identificada por (Socket Emissor, Socket Destino)
* Portos reservados para serviços nº < 256 Well Known Ports– nº 21 - FTP, nº 23 - Telnet
4.1 – O protocolo TCP
3
R&C I / ISTEC - 07/08
C:\WINDOWS>netstat -rn
Route Table
Active Routes:
Network Address Netmask Gateway Address Interface Metric 0.0.0.0 0.0.0.0 214.3.35.31 214.3.35.31 1 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 214.3.35.0 255.255.255.0 214.3.35.31 214.3.35.31 1 214.3.35.31 255.255.255.255 127.0.0.1 127.0.0.1 1 214.3.35.255 255.255.255.255 214.3.35.31 214.3.35.31 1 224.0.0.0 224.0.0.0 214.3.35.31 214.3.35.31 1 255.255.255.255 255.255.255.255 214.3.35.31 214.3.35.31 1
Active Connections
Proto Local Address Foreign Address State TCP 214.3.35.31:1384 64.58.76.87:80 ESTABLISHED
* Tabela de Routing de computador com ligação TCP activa
4.1 – O protocolo TCP
4
R&C I / ISTEC - 07/084.1 – O protocolo TCP
1* 2
Principais características do protocolo TCP:
5
R&C I / ISTEC - 07/08
Cabeçalho TCP
Numero de Sequencia
32 bits
Checksum
Opções (0 ou mais palavras)
Porto DestinoPorto Origem
Numero de Acknowledge
Urgent Pointer
TCPHeaderLength
URG
ACK
PSH
RST
SYN
FIN
6 bits livres Dimensão de Janela
4.1 – O protocolo TCP
6
R&C I / ISTEC - 07/08
* Porto Origem/Destino - Identificador de locais terminais da ligação* Numero de Sequencia - Identificador de segmento corrente* Numero de Acknowledge - Identificador do próximo byte esperado* Dimensão de Cabeçalho TCP -número de words (32 bits) do cabeçalho* Bit URG - Se=1, valida Urgent Pointer* Bit ACK - Se=1, valida Numero de Acknowledge* Bit PSH - Se=1, identifica dados como prioritários, não devendo por
isso ser armazenados em buffer* Bit RST - Se=1, reinicializar ligação (ex. crash de terminal)* Bit SYN - Se=1, Emissor pretende iniciar ligação / Receptor aceita
pedido de ligação* Bit FIN - Se=1, Emissor pretende finalizar ligação
4.1 – O protocolo TCP
7
R&C I / ISTEC - 07/08
* Dimensão de Janela - números de bytes que o destino pode receber. Máximo: 64K, tamanho dinâmica/ variável, em função de: * Disponibilidade de receptor* MTU (Maximum Transmission Unit) da rede:
* tamanho máximo de mensagens
* Checksum - Detecção de erros do cabeçalho e dados* Urgent Pointer - Indicador de offset, no conjunto de bytes, do
segmento corrente, a partir do qual os dados são urgentes Ex. utilizador premiu Ctrl-C e ligação será interrompida, dados previamente armazenados deverão ser apagados
* Opções - Possibilitar adicionar ao protocolo novas características, para melhorar o seu desempenho
4.1 – O protocolo TCP
8
R&C I / ISTEC - 07/084.1 – O Protocolo TCP
Estrutura de Segmento TCP
9
R&C I / ISTEC - 07/084.2 – TCP: Connection-Oriented
Necessário pré-estabelecimento de conexão
ClienteServidor
Procedimentode estabelecimentode ligação
10
R&C I / ISTEC - 07/084.3 – TCP: Fiabilidade
Dados entregues a aplicação sem erros e por ordem cronológica
ClienteServidor
Se detectados erros ouSe confirmação não chegar dentro de intervalo de tempo pré-definido Retransmitir Mensagem
11
R&C I / ISTEC - 07/084.4 - TCP: Data Stream
Dados aTransmitir
Cliente Servidor
Transferência de Fluxo de Dados entre Cliente / Servidor
Dados aTransmitir
12
R&C I / ISTEC - 07/084.5 – TCP: Controlo do fluxo de dados
ClienteServidor
Servidor informa Cliente de quando e que quantidade de dados pode receber
JanelaDeslizante
13
R&C I / ISTEC - 07/084.6 - Os extremos de uma conexão TCP
SocketIdentificadorde conexão
14
R&C I / ISTEC - 07/084.7 - Estabelecimento de uma conexão TCP
Procedimentode estabelecimentode ligação
Cliente Servidor
15
R&C I / ISTEC - 07/08
3 way handshake
SYN ; iSN=X
4.7 - Estabelecimento de uma conexão TCP
Cliente Servidor
SYN ; iSN=Y; ACK=X+1
ACK=Y+1
tempo
iSN = initial Seq. Numb.
16
R&C I / ISTEC - 07/084.7 - Estabelecimento de uma conexão TCP
SYN=1
1) Pedido de Ligação
17
R&C I / ISTEC - 07/084.7 - Estabelecimento de uma conexão TCP
ACK=1SYN=1
2) Resposta a pedido de Ligação
= SYNACK
18
R&C I / ISTEC - 07/084.7 - Estabelecimento de uma conexão TCP
3) Confirmação de pedido de Ligação
ACK=1
19
R&C I / ISTEC - 07/08
1) Pedido de Encerramento de conexão Cliente Servidor
4.7 - Encerramento de uma conexão TCP
FIN=1
20
R&C I / ISTEC - 07/08
2) Confirmação de pedido de Encerramento de conexão Cliente Servidor
4.7 - Encerramento de uma conexão TCP
ACK=1
21
R&C I / ISTEC - 07/084.7 - Encerramento de uma conexão TCP
3,4) Pedido de Encerramento de conexão Servidor Cliente
ServidorCliente
22
R&C I / ISTEC - 07/08
Processamento de dados normais:* 1) Dados armazenados em buffer de aplicação* 2) Dados fragmentados em segmentos
4.8 - Formação de segmentos TCP
23
R&C I / ISTEC - 07/084.8 - Formação de segmentos TCP
Processamento de dados prioritários:* 1) Dados não armazenados em buffer de aplicação* 2) Dados colocados em segmento
PSH=1
24
R&C I / ISTEC - 07/08
* Protocolo UDP (User Datagram Protocol)• Protocolo Nível 4 que tal como TCP corre sobre IP• Não Fiável• Connection-less Oriented• Utilizado em aplicações onde a prontidão é mais importante do
que a exactidão• Apropriado para pequenas quantidades de informação
• Cabeçalho UDP: 32 Bits
Porto Origem Porto Destino
Dimensão UDP Checksum UDP
4.9 – Protocolo UDP