Nível de Transporte Portas, Protocolos UDP e TCP · § Associação do T-SAP ao SAP de rede ......

34
Departamento de Ciência da Computação - UFF Nível de Transporte Portas, Protocolos UDP e TCP Profa. Débora Christina Muchaluat Saade [email protected] Disciplina : Redes de Computadores

Transcript of Nível de Transporte Portas, Protocolos UDP e TCP · § Associação do T-SAP ao SAP de rede ......

Departamento de Ciência da Computação - UFF

Nível de Transporte Portas, Protocolos UDP e TCP

Profa. Débora Christina Muchaluat Saade

[email protected]

Disciplina: Redes de Computadores

3

Redes de Computadores

Nível de Transporte

5

Redes de Computadores

Camada de Transporte

Aplicação

Apresentação

Sessão

Transporte

Rede

Enlace

Físico

Rede

Enlace

Físico

Rede

Enlace

Físico

Aplicação

Apresentação

Sessão

Transporte

Rede

Enlace

Físico

Host B Aplicação

Apresentação

Sessão

Transporte

Rede

Enlace

Físico

Host A

comunicação fim-a-fim

6

Redes de Computadores

Camada de Transporte

§  Fornece meios para estabelecer, manter e liberar conexões de transporte no serviço orientado à conexão

§  Transporte de unidades de dados do serviço de transporte (SDUs ou mensagens)

§  Segmentação e blocagem §  Detecção e correção de erros fim a fim §  Sequenciação §  Controle do fluxo de dados nas conexões de

transporte §  Multiplexação ou splitting

Aplicação

Apresentação

Sessão

Transporte

Rede

Enlace

Físico

7

Redes de Computadores

Services Provided to the Upper Layers

The network, transport, and application layers.

8

Redes de Computadores

Transport Service Primitives (2)

The nesting of TPDUs, packets, and frames.

10

Redes de Computadores

Addressing

TSAPs, NSAPs and transport connections.

11

Redes de Computadores

Endereçamento

§  Associação do T-SAP ao SAP de rede •  endereço hierárquico

– O endereço do SAP de rede pode ser um campo do endereço do SAP de transporte

• Endereço horizontal – Servidor de nomes

17

Redes de Computadores

Estabelecimento de Conexão Indevida

E1 E2

PC(1)

PC(2)

PC(2)

CC(2) CC(2)

D(1)

D(2) D(2)

PC(1)

CC(1) CC(1)

D(1)

PC - Pedido de Conexão CC - Confirmação da Conexão D - Dados

Timeout

18

Redes de Computadores

Estabelecimento de Conexões Utilizando Three-way Handshake

E1 E2

PC(a)

PC(a)

CC(b,a) CC(b,a)

D(a,b) D(a,b)

PC(i) = Pedido de conexão (seq=i) CC(j,i) = Confirmação de conexão (seq=j, ack=i) D(i,j) = Dados (seq=i, ack=j)

19

Redes de Computadores

R(j) = Rejeita conexão (ack=j) E1 E2

PC(a)

PC(b)

PC(b)

CC(c,b) CC(c,b)

D(b,c)

D(b,c) D(b,c)

PC(a)

CC(k,a) CC(k,a)

D(b,c) R(k)

R(k)

Timeout

Estabelecimento de Conexões Utilizando Three-way Handshake

22

Redes de Computadores

Protocolos de Transporte

§  Mesmas técnicas do nível de enlace agora aplicadas fim-a-fim

§  Controle de Fluxo

•  Stop-and-Wait •  Sliding Windows

§  Controle de Erro

•  ARQ Automatic Repeat Request •  Selective Repeat •  Go Back N

32

Redes de Computadores

Nível de Transporte na Arquitetura TCP/IP

Portas

33

Redes de Computadores

Inter-rede

Intra-rede Int. de adaptação

Dados encapsulados pelo datagrama IP

AP2 AP1

•  Em geral, uma aplicação é o destinatário

final de uma mensagem

Identificação do destinatário final

§  Protocolo IP não possui um mecanismo próprio para endereçar mais de uma aplicação destino na mesma máquina •  IP oferece um único SAP de rede •  Solução: uma aplicação só acessa a rede via

camada de transporte

35

Redes de Computadores

Transporte TCP UDP

Inter-rede

Aplicação

Camada de Transporte

Função básica: multiplexação/ demultiplexação

36

Redes de Computadores

Multiplexação e Demultiplexação

Aplicação 1

IP

Aplicação 2

Porta 34 Porta 22

TCP/UDP Porta 126

37

Redes de Computadores

Identificação do destinatário final

§  Utilizar um esquema próprio para a camada de transporte e independente dos SOs •  Camada de transporte fornece às aplicações um

conjunto de portas que dão acesso ao SC provido pelo IP

•  Aplicação origem deve conhecer end. IP do host onde está a aplicação destino e porta a qual a aplicação está ligada

–  (End. IP, Porta) em TCP/IP ⇔ T-SAP no OSI

38

Redes de Computadores

apl

apl

apl

apl

apl apl

apl

apl

apl

Aplicações Distribuídas

Endereçamento hierárquico em TCP/IP

G

Inter-rede

Rede B

Rede C

Rede A H

H

H

H

H H

H

H

39

Redes de Computadores

Portas

§  Identificadores numéricos de 16 bits (0 a 65535) §  Antes de utilizar o UDP ou TCP, a aplicação deve

se associar a um número de porta (bind) •  Identificação (End. IP, Porta) é comumente

chamada de socket •  Berkeley sockets (Unix) e Winsock (Windows):

APIs que possibilitam a criação e uso de sockets em uma aplicação

UDP ou TCP 5 10 11 25 221 2430

40

Redes de Computadores

Protocolos de Transporte

§  Serviço sem conexão não confiável • Protocolo UDP

§  Serviço orientado a conexão confiável • Protocolo TCP

41

Redes de Computadores

Protocolo UDP

42

Redes de Computadores

Protocolo UDP (User Datagram Protocol)

§  Fornece serviço sem conexão fim-a-fim não confiável utilizando os serviços do protocolo IP diretamente

§  Permite a multiplexação/demultiplexação do SAP IP entre várias aplicações por meio de portas

§  Ideal para aplicações que não precisam de conexão • Menor tráfego e mais eficiência

43

Redes de Computadores

Formato da mensagem UDP

0 7 15 23 31

Octeto 1 Octeto 2 Octeto 3 Octeto 4

UDP SOURCE PORT UDP DESTINATION PORT UDP MESSAGE LENGTH UDP CHECKSUM

DATA . . .

46

Redes de Computadores

Porta 34 Porta 22

UDP Porta 126

Aplicação 1

IP

Aplicação 2

Multiplexação e demultiplexação UDP

§  Em um mesmo host, duas aplicações distintas podem usar a mesma porta (em tempos diferentes) •  Portas UDP ⇔ Filas de

mensagens

§  Se a fila correspondente à porta estiver cheia, a mensagem UDP é descartada

§  Se uma mensagem UDP for endereçada a uma porta não utilizada no momento, a mesma é descartada e é gerada uma mensagem ICMP Port Unreachable

47

Redes de Computadores

Uso de portas UDP

§  Aplicações devem entrar em acordo quanto às portas a serem utilizadas

§  Abordagem 1: •  Números bem-conhecidos para serviços, atribuídos pela IANA

–  Portas < 1024 (Well-Known Ports - WKPs)

•  Geralmente utilizada por servidores – Exemplos:

53 DNS Server 69 TFTP 67/68 DHCP Server/Client

§  Abordagem 2: •  Alocação dinâmica de portas (em geral, controlada de forma

aleatória pelo SO)

48

Redes de Computadores

Protocolo TCP

50

Redes de Computadores

Protocolo TCP (Transmission Control Protocol)

§  Multiplexação do SAP IP por meio de portas §  Serviço orientado a conexão (circuito virtual) e confiável

•  Sequenciação •  Controle de fluxo e erro fim-a-fim

§  Transmissão de fluxos de bits •  Menor unidade de transmissão: octeto

§  Desassociação da qtd. de dados enviados pela aplicação •  Segmentação e blocagem

§  Conexão full-duplex •  Fluxos independentes nas duas direções

52

Redes de Computadores

Conexão =

(139.82.17.10,22) + (139.82.55.3,2340) TCP

IP

TCP

IP

Porta 22 Porta 2340

Host 139.82.17.10 Host 139.82.55.3 Inter-rede

Multiplexação e demultiplexação TCP

§  Para o TCP, não basta associar uma porta a uma aplicação. É necessário o estabelecimento de uma conexão entre a aplicação origem e a aplicação destino •  Uma conexão é identificada por um par de sockets •  Uma porta pode ser compartilhada entre várias conexões em

um mesmo host simultaneamente

53

Redes de Computadores

Espera conexão (passiva) Estabelece conexão (ativa)

Requisição de estabelecimento

Resposta de requisição Bin

d c/

po

rta

OR

IG

Bind c/

porta DEST

Após o estabelecimento da conexão, as aplicações podem transmitir fluxos de dados entre si,

independentemente da passividade ou atividade das mesmas durante o estabelecimento

Estabelecimento de conexões

§  Quem inicia o estabelecimento da conexão? •  Aplicação ativa X Aplicação passiva

54

Redes de Computadores

Uso de portas TCP

§  Bind da aplicação ativa: alocação dinâmica de portas

§  Bind da aplicação passiva: Well-Known Ports – Exemplos:

20 FTP-DATA 79 Finger 21 FTP Control 80 HTTP 23 Telnet 110 POP3 25 SMTP 161 SNMP 53 DNS Server 443 HTTPS

55

Redes de Computadores

Aplicação Transmissora

IP

Porta 126

TCP Em geral, o tamanho máx. de um segmento

TCP corresponde a um datagrama IP que não sofra fragmentação na origem. Isso não

significa que os segmentos relativos a uma conexão precisem ter sempre o mesmo

tamanho.

Fluxo de bits original

Segmentação e blocagem no transmissor

Segmentos TCP enviados Padrão gerado pela escrita

da aplicação

56

Redes de Computadores

Aplicação Receptora

IP

Porta 126

TCP

Segmentação e blocagem no receptor

Fluxo de bits original

Segmentos TCP recebidos Padrão gerado pela leitura

da aplicação

Aplicação receptora recebe os bits do fluxo original na mesma ordem em que

foram enviados pela aplicação transmissora

58

Redes de Computadores

Formato do segmento TCP

Octeto 1 Octeto 2 Octeto 3 Octeto 4 0 7 15 23 31

TCP DESTINATION PORT TCP SOURCE PORT

DATA (IF ANY) ...

WINDOW HLEN

SEQUENCE NUMBER

RESERVED CODE BITS

ACKNOWLEDGEMENT NUMBER

URGENT POINTER CHECKSUM

PADDING OPTIONS (IF ANY)

60

Redes de Computadores

Sequenciação, controle de erro e de fluxo

§  Controle de segmentos perdidos, recebidos fora de ordem ou duplicados •  Cada segmento possui um número de seqüência

§  Detecção de erros •  Checksum (em caso de erro, segmento é descartado) •  Reconhecimento de segmentos

§  Correção de erros (por perda ou descarte) •  Retransmissão de segmentos não reconhecidos

§  Controle de fluxo •  Mecanismo de janelas deslizantes (Sliding Windows)