06 - Encerramento de Conexão (Four-Way, FIN)
video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione
video: https://youtu.be/... no frontmatter da nota.Encerramento de Conexão (Four-Way, FIN)
1. Definicao
Encerramento de Conexão (Four-Way, FIN) e um componente da Camada de Transporte (Layer 4 do modelo OSI). A Camada de Transporte e responsavel pela comunicacao fim-a-fim entre processos em hosts distintos.
Os protocolos dominantes sao:
- TCP (RFC 793): Confiavel, orientado a conexao.
- UDP (RFC 768): Nao confiavel, sem conexao.
2. Identificacao de Processos
Portas TCP/UDP
16 bits (0-65535), classificadas por IANA:
| Faixa | Nome | Exemplos |
|---|---|---|
| 0-1023 | Well-known | 22 SSH, 80 HTTP, 443 HTTPS |
| 1024-49151 | Registradas | 3306 MySQL, 5432 PostgreSQL |
| 49152-65535 | Dinamicas | Clientes outbound |
Socket
Socket = (IP_origem, Porta_origem, IP_destino, Porta_destino, Protocolo)
3. UDP (User Datagram Protocol)
Caracteristicas
- Nao orientado a conexao: Sem handshake.
- Nao confiavel: Sem ACK, sem retransmissao.
- Sem controle de fluxo ou congestionamento.
- Sem ordenacao: Datagramas podem chegar fora de ordem.
- Header: 8 bytes.
Datagrama UDP
+--------+--------+--------+--------+
| Source Port | Destination Port|
| 2 bytes | 2 bytes |
+--------+--------+--------+--------+
| Length | Checksum |
| 2 bytes | 2 bytes |
+--------+--------+--------+--------+
| Data (variavel) |
+--------+--------+--------+--------+
Aplicacoes
- DNS (53): Queries pequenas.
- DHCP (67/68): Configuracao automatica.
- VoIP (RTP): Tempo real.
- Streaming de video.
4. TCP (Transmission Control Protocol)
Caracteristicas
- Orientado a conexao: Three-way handshake.
- Confiavel: ACKs, retransmissoes.
- Ordenado: Cada byte numerado.
- Controle de fluxo: Sliding window.
- Controle de congestionamento: Slow start, AIMD.
- Full-duplex.
- Header: 20-60 bytes.
Flags TCP
| Flag | Funcao |
|---|---|
| SYN | Sincroniza (inicia conexao) |
| ACK | Confirma recebimento |
| FIN | Finaliza conexao |
| RST | Reset (aborta) |
| PSH | Push (envia imediatamente) |
| URG | Urgent |
5. Three-Way Handshake
Cliente Servidor
| |
| ---- SYN (seq=x) ------------> | SYN-RCVD
| |
| <--- SYN-ACK (seq=y, ack=x+1)-- | ESTABLISHED
| |
| ---- ACK (seq=x+1, ack=y+1)-> | ESTABLISHED
| |
| ===== Dados =================> |
Passo 1: SYN (Cliente)
- Flags: SYN=1, ACK=0.
- Seq: ISN aleatorio (x).
- Estado: SYN-SENT.
Passo 2: SYN-ACK (Servidor)
- Flags: SYN=1, ACK=1.
- Seq: ISN do servidor (y).
- Ack: x+1 (confirma SYN do cliente).
- Estado: SYN-RECEIVED.
Passo 3: ACK (Cliente)
- Flags: SYN=0, ACK=1.
- Seq: x+1.
- Ack: y+1.
- Estado: ESTABLISHED.
6. Encerramento (Four-Way)
Cliente Servidor
| |
| ---- FIN (seq=x) ------------> | CLOSE-WAIT
| <--- ACK (ack=x+1) ----------- |
| <--- FIN (seq=y) -------------- | LAST-ACK
| ---- ACK (ack=y+1) ----------> | CLOSED
| |
| (TIME-WAIT 2*MSL) |
| CLOSED |
7. Controle de Fluxo (Sliding Window)
Receptor informa quantos bytes pode receber (campo Window):
Cliente Servidor
| ---- Dados (1000 bytes) -----> |
| ---- Dados (1000 bytes) -----> |
| <--- ACK (Window=0) ---------- | (buffer cheio)
| (Espera...) |
| <--- ACK (Window=2000) ------ | (buffer liberado)
| ---- Dados (2000 bytes) -----> |
8. Controle de Congestionamento
Slow Start
cwnd = 1 MSS. Dobra a cada ACK recebido. Crescimento exponencial ate ssthresh.
Congestion Avoidance (AIMD)
Apos ssthresh, cwnd cresce 1 MSS por RTT. Additive Increase, Multiplicative Decrease.
Fast Retransmit
3 ACKs duplicados = perda. Retransmite sem esperar timeout.
9. Comparacao TCP vs UDP
| Caracteristica | TCP | UDP |
|---|---|---|
| Conexao | Orientado (handshake) | Nao orientado |
| Confiabilidade | Garantida | Nao garantida |
| Ordenacao | Garantida | Nao garantida |
| Controle de fluxo | Sliding window | Nao |
| Controle de congestionamento | Sim | Nao |
| Header | 20-60 bytes | 8 bytes |
| Aplicacoes | Web, email, SSH | DNS, VoIP, streaming |