24
1 R&C I / ISTEC - 07/08 4ª Parte 4ª Parte Protocolo TCP Protocolo TCP

R&C 0401 07 1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: R&C 0401 07 1

1

R&C I / ISTEC - 07/08

4ª Parte4ª Parte

Protocolo TCPProtocolo TCP

Page 2: R&C 0401 07 1

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

Page 3: R&C 0401 07 1

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

Page 4: R&C 0401 07 1

4

R&C I / ISTEC - 07/084.1 – O protocolo TCP

1* 2

Principais características do protocolo TCP:

Page 5: R&C 0401 07 1

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

Page 6: R&C 0401 07 1

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

Page 7: R&C 0401 07 1

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

Page 8: R&C 0401 07 1

8

R&C I / ISTEC - 07/084.1 – O Protocolo TCP

Estrutura de Segmento TCP

Page 9: R&C 0401 07 1

9

R&C I / ISTEC - 07/084.2 – TCP: Connection-Oriented

Necessário pré-estabelecimento de conexão

ClienteServidor

Procedimentode estabelecimentode ligação

Page 10: R&C 0401 07 1

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

Page 11: R&C 0401 07 1

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

Page 12: R&C 0401 07 1

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

Page 13: R&C 0401 07 1

13

R&C I / ISTEC - 07/084.6 - Os extremos de uma conexão TCP

SocketIdentificadorde conexão

Page 14: R&C 0401 07 1

14

R&C I / ISTEC - 07/084.7 - Estabelecimento de uma conexão TCP

Procedimentode estabelecimentode ligação

Cliente Servidor

Page 15: R&C 0401 07 1

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.

Page 16: R&C 0401 07 1

16

R&C I / ISTEC - 07/084.7 - Estabelecimento de uma conexão TCP

SYN=1

1) Pedido de Ligação

Page 17: R&C 0401 07 1

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

Page 18: R&C 0401 07 1

18

R&C I / ISTEC - 07/084.7 - Estabelecimento de uma conexão TCP

3) Confirmação de pedido de Ligação

ACK=1

Page 19: R&C 0401 07 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

Page 20: R&C 0401 07 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

Page 21: R&C 0401 07 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

Page 22: R&C 0401 07 1

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

Page 23: R&C 0401 07 1

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

Page 24: R&C 0401 07 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