# Camada 4

### *A Camada da Confiabilidade, Controle e Ordem*

A **Camada 3 (Rede)** determina **para onde** os pacotes devem ir. Mas não garante **entrega, ordem, conexão ou fluxo**.

A **Camada 4 (Transporte)** resolve esses problemas.

Ela é responsável por:

| Função                           | Descrição                                           |
| -------------------------------- | --------------------------------------------------- |
| **Multiplexação**                | Permite que vários aplicativos usem a mesma conexão |
| **Controle de Fluxo**            | Ajusta envio para não sobrecarregar o receptor      |
| **Controle de Congestionamento** | Ajusta taxa quando a **rede** está sobrecarregada   |
| **Ordenação de Pacotes**         | Reconstrói dados mesmo que cheguem fora de ordem    |
| **Confiabilidade**               | Reenvia pacotes perdidos (se necessário)            |

A camada 4 é onde **a comunicação se torna comunicação de verdade**.

***

## 🎯 **Protocolos Principais da Camada 4**

| Protocolo | Tipo                              | Característica                               | Uso Típico                    |
| --------- | --------------------------------- | -------------------------------------------- | ----------------------------- |
| **TCP**   | Conexão, confiável                | Garantia de entrega, ordenação, ACKs         | Web, VoIP control, SSH, Email |
| **UDP**   | Sem conexão, não confiável        | Baixa latência, sem overhead                 | DNS, Streaming, Jogos         |
| **SCTP**  | Híbrido (associação multi-stream) | Tolerância a falhas, subfluxos independentes | Telecom (SS7/IP), 5G Core     |

***

## 1) **UDP – Transporte Direto, Sem Garantias**

```
+--------+--------+--------+--------+
| SrcPort| DstPort| Length | Checksum|
+--------+--------+--------+--------+
|               Payload               |
+-------------------------------------+
```

### Características:

* Sem handshake
* Sem retransmissão
* Sem controle de fluxo
* Sem ordenação

> Se perdeu, **perdeu**.

### Por quê usar?

→ **Velocidade e Latência** são mais importantes que perfeição.

| Aplicação              | Motivo                        |
| ---------------------- | ----------------------------- |
| Jogos Online           | Atraso importa mais que perda |
| Streaming (VoIP, Live) | Áudio não pode parar          |
| DNS                    | Consulta curta, barata        |

***

## 2) **TCP – A Máquina da Confiabilidade**

### **Conexão orientada a estado**

Requer **handshake** antes de transmitir.

### Estrutura do Segmento TCP:

```
 SrcPort | DstPort | SeqNumber | AckNumber
 DataOffset | Flags | WindowSize
 Checksum | UrgentPtr
 Options...
 Payload
```

### Flags Importantes

| Flag | Função                         |
| ---- | ------------------------------ |
| SYN  | Solicitar conexão              |
| ACK  | Confirmar recebimento          |
| FIN  | Encerrar conexão               |
| RST  | Derrubar conexão imediatamente |

***

## 🔗 **Estabelecimento de Conexão – 3-Way Handshake**

```
Cliente → Servidor: SYN
Servidor → Cliente: SYN+ACK
Cliente → Servidor: ACK
```

No final, ambos **concordam** com:

* Sequência inicial
* Janela de recepção
* Parâmetros da sessão

### **Por que isso importa?**

Permite **sincronizar estados** → confiabilidade nasce aqui.

***

## 🔁 **Controle de Fluxo (Flow Control)**

Através do campo **Window Size**:

* Receptor informa ao emissor **quanto consegue receber**
* Evita sobrecarregar buffers da aplicação

### Exemplo:

Se window = 8192 bytes → transmissor só envia até 8 KB sem ACK novo.

***

## 🌧️ **Controle de Congestionamento (Congestion Control)**

A rede pode congestioná-la **mesmo que o receptor esteja ok**.

TCP ajusta sua velocidade baseado em **perda e RTT**.

### Fases Clássicas:

1. **Slow Start** Crescimento exponencial da janela (CWND)
2. **Congestion Avoidance** Crescimento linear controlado
3. **Fast Retransmit** Se receber 3 ACKs duplicados → retransmite segmento sem esperar timeout
4. **Fast Recovery** Reduz CWND e retoma crescimento gradual

Isso é o que **evita que a internet colapse**.

***

## 🔪 **Ordenação e Reconstrução**

Cada byte transmitido tem um **Sequence Number**.

Se o fluxo chegar assim:

```
SEG 1 → ok
SEG 2 → ok
SEG 4 → ok
SEG 3 → atrasado
```

O receptor **não entrega ao app** até completar na ordem.

TCP mantém **buffers**, reconstrói, entrega **limpo**.

***

## 🌍 **Multiplexação: Portas**

| Tipo              | Intervalo   | Uso                                       |
| ----------------- | ----------- | ----------------------------------------- |
| Well-known        | 0–1023      | Serviços padrão (HTTP=80, DNS=53, SSH=22) |
| Registered        | 1024–49151  | Apps e serviços definidos                 |
| Dynamic/Ephemeral | 49152–65535 | Portas temporárias de clientes            |

### Exemplo:

```
Usuário acessa www.google.com:
Cliente usa porta → 59,230 (dinâmica)
Servidor responde da porta → 443 (TLS HTTPS)
```

***

## 🧠 **Analogia de Alto Impacto**

Imagine uma **rodovia**:

| Camada             | Representação                                   | Papel                |
| ------------------ | ----------------------------------------------- | -------------------- |
| 1 – Física         | Asfalto e faixas                                | Canal de transmissão |
| 2 – Enlace         | Identificação dos carros                        | MAC Address          |
| 3 – Rede           | Sinalização e intermunicipais                   | IP e Roteamento      |
| **4 – Transporte** | **Velocidade, Regras de Tráfego, Fiscalização** | TCP/UDP              |

Se a camada 3 diz **qual caminho**, a camada 4 diz **como dirigir**.

***

## 🎤 **Exemplos Reais**

| Aplicação            | Protocolo      | Motivo                                   |
| -------------------- | -------------- | ---------------------------------------- |
| Netflix/YouTube      | UDP + FEC      | perda tolerável, atraso não              |
| SSH / Banco de Dados | TCP            | confiabilidade e ordem crítica           |
| DNS                  | UDP            | rápido, pequeno, simples                 |
| HTTP/3               | QUIC sobre UDP | baixa latência com confiabilidade tunada |

***

## 🔥 **Resumo Mortal**

```
Camada 4 = Onde a comunicação se torna humana.
TCP = confiabilidade, ordem, controle.
UDP = velocidade, simplicidade.
SCTP = telecom + missão crítica.
Sem camada 4:
→ A internet funciona, mas é caótica.
Com camada 4:
→ A internet é possível.
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://0xmorte.gitbook.io/bibliadopentestbr/conceitos/redes/modelo-osi/camada-4.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
