Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

🌐 TCP/IP — modĂšle, couches, protocoles, routage, sĂ©curitĂ© & troubleshooting

TCP/IP n’est pas “juste TCP + IP” : c’est la pile rĂ©seau de l’Internet (modĂšle en couches), dĂ©finissant comment des machines adressent, routent, segmentent, transportent et sĂ©curisent des donnĂ©es. Le cƓur : IP (adressage + routage) + TCP/UDP (transport) + des protocoles applicatifs (HTTP, DNS, SSH
).

1.1

ModĂšle TCP/IP & couches

Link → Internet → Transport → Application. Comparaison OSI, encapsulation, PDU, MTU.

LayersEncapsulationOSI

IP (IPv4/IPv6) & adressage

CIDR, subnets, gateway, ARP/ND, routes, NAT, fragmentation, TTL/hop-limit.

IPv4IPv6CIDR

Routage (L3) & Internet

Tables de routage, métriques, BGP/OSPF, asymétrie, ICMP, traceroute, peering.

RoutingBGPICMP
1.2

Transport : TCP vs UDP (et QUIC)

Handshake, fiabilité, congestion control, windowing, retransmissions, ports. UDP + QUIC/HTTP3.

TCPUDPQUIC

DNS (résolution de noms)

Records, recursion, caching, TTL, authoritative, split-horizon, DNSSEC, DoT/DoH.

ResolverCachingDNSSEC

HTTP(S) : de TCP Ă  TLS

HTTP/1.1, keep-alive, HTTP/2, HTTP/3, TLS handshake, certs, ALPN, SNI.

TLSHTTP/2HTTP/3

Ports, sockets & états

4-tuple, listen/accept, ephemeral ports, TIME_WAIT, SYN backlog, half-open connections.

SocketsTIME_WAITBacklog

Sécurité réseau

FW/ACL, stateful vs stateless, NAT, segmentation, DDoS, TLS, mTLS, zero trust, VPN.

FirewallTLSDDoS

MTU, MSS & perf

PMTUD, fragmentation, jumbo frames, TCP MSS, latency vs throughput, bufferbloat.

MTUMSSPerf
2.1

Troubleshooting (méthode)

Diagnostiquer par couche : link → IP → TCP → DNS → TLS → HTTP. Outils : ping, traceroute, tcpdump, ss, dig.

Methodtcpdumpdig

Playbook “incident rĂ©seau”

Checklist rapide : résolution, connectivité, ports, TLS, routes, MTU, saturation, firewall. Runbook copy/paste.

RunbookIncidentsOps
★

Cheat-sheet TCP/IP

Ports connus, Ă©tapes d’un handshake, flags TCP, commandes Linux, erreurs classiques et interprĂ©tation.

CheatCommandsFlags
TCP/IP — overview (couches, flux, perf, sĂ©curitĂ©, diagnostic)
Mental model : encapsulation + chemin d’un paquet
App data
  -> (Transport) TCP/UDP header (ports, seq/ack...)
  -> (Internet)  IP header (src/dst, TTL, routing)
  -> (Link)      Ethernet/WiFi frame (MAC, VLAN...)
  -> medium (wire/air)
  -> reverse on receiver
          
“Quand ça casse”, diagnostic par couches
Link (L2)cñble/VLAN/MTU/ARP → “je vois le voisin ?”
Internet (L3)IP/routes/ICMP → “je rejoins la cible ?”
Transport (L4)ports → “connexion Ă©tablie ?”
DNSnom → IP → “rĂ©solution ? cache ?”
TLScert/SNI/ALPN → “handshake OK ?”
HTTPstatus/headers → “app rĂ©pond ?”
Le flux web moderne (résumé)
1) DNS resolve (A/AAAA)
2) TCP connect (SYN/SYN-ACK/ACK) OU QUIC (UDP)
3) TLS handshake (cert, SNI, ALPN)
4) HTTP request/response (keep-alive, multiplexing)
5) Observabilité : latency breakdown (DNS/TCP/TLS/TTFB)
          

Pour expliquer une lenteur, tu dois savoir si elle vient de DNS, TCP, TLS, HTTP ou du backend.

3 piÚges fréquents
  • MTU/MSS : black-hole si ICMP bloquĂ© (PMTUD cassĂ©).
  • DNS cache : TTL, resolver, split-horizon → “ça marche ici pas là”.
  • Stateful firewall/NAT : timeouts, conntrack saturĂ©, port exhaustion.
1.1 Modùle TCP/IP — couches, OSI, encapsulation, PDU, MTU
Les 4 couches TCP/IP (pratique)
CoucheRÎleExemplesUnités
Applicationprotocoles applicatifsHTTP, DNS, SSH, SMTPmessage
Transportports, fiabilité, congestionTCP, UDP, QUIC*segment/datagram
Internetadressage + routageIPv4/IPv6, ICMPpacket
Linklivraison localeEthernet, Wi-Fi, VLANframe

QUIC est un transport “au-dessus” d’UDP, utilisĂ© notamment par HTTP/3.

OSI vs TCP/IP (mapping utile)
OSITCP/IPExemples
7/6/5 App/Pres/SessionApplicationHTTP, TLS, DNS
4 TransportTransportTCP/UDP
3 NetworkInternetIP, ICMP
2/1 DataLink/PhysicalLinkEthernet, Wi-Fi
Encapsulation : “headers empilĂ©s”
[Ethernet][IP][TCP][HTTP]
   L2     L3  L4    L7

Chaque couche ajoute un header (et parfois un trailer) :
- L2 : MAC src/dst, VLAN tag
- L3 : IP src/dst, TTL/hop-limit
- L4 : ports, flags, seq/ack
- L7 : protocole applicatif
        

“Tracer un paquet” = comprendre l’empilement des headers et oĂč se produit la perte/latence.

MTU : taille max au niveau Link
MTU Ethernet classique : 1500 bytes
Jumbo frames : 9000 bytes (selon infra)
Impact :
- fragmentation (IPv4) ou PMTUD (IPv6)
- MSS TCP = MTU - headers (souvent 1460 sur MTU 1500)
        
IP — IPv4/IPv6 : adressage, CIDR, ARP/ND, NAT, fragmentation
Subnetting (CIDR) — l’essentiel
IPv4 : a.b.c.d/24
- /24 => 256 adresses (souvent 254 utilisables)
- gateway = route par défaut vers l'extérieur
- table de routage : “oĂč envoyer un paquet ?”
        
NotationTailleUsages typiques
/321 hostroute host, VIP
/24256LAN small/medium
/1665kgrand réseau, mais rarement conseillé
ARP (IPv4) / Neighbor Discovery (IPv6)
But : IP -> MAC (sur le LAN)
- ARP request : “who has 192.168.1.10 ?”
- ARP reply   : “192.168.1.10 is at aa:bb:cc:dd:ee:ff”
Diagnostics :
- arp -n / ip neigh
- captures : tcpdump -n arp
        

ARP/ND cassĂ© = symptĂŽmes “L2 OK mais rien ne passe” (ou intermitent).

NAT (Network Address Translation)
TypeIdéeEffetPiÚge
SNATsource translatesortie Internetport exhaustion
DNATdestination translatepublish servicestateful timeouts
PATports multiplexbeaucoup hostsconntrack saturation
IPv6 (résumé pragmatique)
- adresse 128 bits (ex: 2001:db8::1/64)
- pas de NAT nécessaire (théoriquement)
- Neighbor Discovery remplace ARP
- ICMPv6 important (PMTUD, ND) => ne pas bloquer “aveuglĂ©ment”
        

Beaucoup de pannes IPv6 viennent d’ICMPv6 filtrĂ© Ă  tort (MTU/ND).

Routage — table L3, ICMP, BGP/OSPF, traceroute, peering
Table de routage : “oĂč va le paquet ?”
RĂšgle : longest prefix match
Exemple :
- 10.0.0.0/8    via gwA
- 10.20.0.0/16  via gwB
=> 10.20.5.7 suit /16 (plus spécifique)
        
Asymétrie

Aller et retour peuvent prendre des chemins diffĂ©rents. Avec des firewalls stateful, l’asymĂ©trie peut casser des flux.

Default route

0.0.0.0/0 (ou ::/0) = “tout le reste”. Erreur classique : route dĂ©faut absente/mauvaise.

ICMP : diagnostic & contrĂŽle
ICMPUsageExemple
Echopingconnectivité
Time exceededtraceroutechemin
Destination unreachableerreur routage/portdiagnostic
Fragmentation neededPMTUD (IPv4)MTU path

Bloquer ICMP “en bloc” est une mauvaise idĂ©e : PMTUD/diagnostic en dĂ©pendent.

BGP/OSPF (vue trùs “ops”)
OSPF : routage interne (IGP) — convergence rapide, mĂ©triques intra-DC
BGP  : routage inter-domaines (Internet) — politiques, peering, annonces

En cloud / grandes infra :
- eBGP souvent utilisé en spine/leaf
- BGP communities pour policy
        
Outils routage
Linux :
- ip route
- ip rule / ip route get 
- traceroute / tracepath
- ping -M do -s  (tester MTU)
        
Transport — TCP vs UDP vs QUIC : fiabilitĂ©, congestion, ports, Ă©tats
TCP : pourquoi c’est “stable”
TCP fournit :
- connexion (state)
- ordre (sequence numbers)
- fiabilité (ACK + retransmission)
- contrĂŽle de flux (window)
- contrĂŽle congestion (cwnd)
Handshake :
SYN -> SYN-ACK -> ACK
        
ConceptButSymptĂŽme si mauvais
RTTlatencehandshake lent
Lossperteretransmissions, débit chute
Windowflowthroughput plafonné
Congestionstabilité réseaudébit variable
Flags TCP & états (niveau sysadmin)
Flags :
- SYN : ouverture
- ACK : acquittement
- FIN : fermeture propre
- RST : reset (refus/erreur)
- PSH : push (hint app)
- URG : urgent (rare)

États (courants) :
- LISTEN, SYN-SENT, SYN-RECV, ESTABLISHED
- FIN-WAIT-1/2, CLOSE-WAIT, TIME-WAIT
        

Beaucoup de TIME_WAIT = pas forcĂ©ment un problĂšme (comportement normal), mais peut conduire Ă  port exhaustion si extrĂȘme.

UDP : simple, rapide, mais pas fiable
UDP fournit :
- datagrammes (pas de connexion)
- faible overhead
Mais pas :
- d'ordre
- de retransmission
- de congestion control (au niveau UDP)
Usage :
- DNS, streaming, temps réel, QUIC
        
QUIC : transport moderne au-dessus d’UDP
QUIC :
- multiplexing (évite head-of-line blocking TCP)
- chiffrement intégré (souvent TLS 1.3)
- meilleur roaming (changement IP)
Utilisé par HTTP/3
        
DNS — records, recursion, caching, TTL, authoritative, DNSSEC, DoH/DoT
Résolution : recursion vs authoritative
Client -> Resolver (récursif) -> serveurs autoritatifs
Le resolver cache (TTL) pour accélérer et réduire la charge.
        
RĂŽleFait quoiExemples
Resolvercherche + cacheUnbound, systemd-resolved
Authoritativerépond pour une zoneBIND, NSD, cloud DNS
Records clés
RecordButExemple
AIPv4example.com -> 93.184.216.34
AAAAIPv6example.com -> 2606:...
CNAMEaliaswww -> app
MXmailmail routing
TXTmetadataSPF/DKIM/verify
NSdelegationserveurs zone
Cache & TTL : source de bugs “fantîmes”
SymptĂŽmes :
- "ça marche chez moi"
- propagation lente
- résolveurs différents (ISP vs corporate)

RĂšgles :
- TTL court avant migration, puis remonter
- vérifier cache local + resolver
Commandes :
- dig +trace / dig @resolver
- resolvectl query
        
DNSSEC, DoH, DoT
DNSSEC : signatures -> authenticité réponses
DoT : DNS over TLS (853)
DoH : DNS over HTTPS (443)
Attention :
- filtrage/monitoring plus complexe
- politique entreprise vs privacy
        
HTTP(S) & TLS — handshakes, versions, ALPN, SNI, perf
TLS : ce qu’il faut comprendre
TLS handshake :
- négociation version/ciphers
- échange clés
- certificat serveur (CA chain)
- validation hostname (SNI)

ALPN :
- choix protocole applicatif (h2 vs http/1.1)
        

Un problĂšme HTTPS est souvent un problĂšme TLS (cert, chain, SNI, time) avant mĂȘme d’ĂȘtre un problĂšme HTTP.

HTTP/1.1 vs HTTP/2 vs HTTP/3
VersionTransportCaractéristiqueNote
HTTP/1.1TCPkeep-alive, 1 req/connexion (pipelining rare)simple
HTTP/2TCPmultiplexing, compression headershead-of-line au niveau TCP possible
HTTP/3QUIC/UDPmultiplexing sans HoL TCPnécessite support infra
Performance : decomposition de latence
TTFB ≈ DNS + TCP handshake + TLS handshake + backend processing
Optimisations :
- keep-alive / pooling
- HTTP/2 multiplex
- TLS 1.3 / session resumption
- CDN
- réduire RTT (geo) + réduire payload
        
Outils TLS/HTTP
- curl -v https://host
- openssl s_client -connect host:443 -servername host
- ss -tnp / lsof -i
- tcpdump port 443
        
Ports & sockets — 4-tuple, ephemeral ports, backlog, TIME_WAIT
Le 4-tuple (identitĂ© d’un flux)
(src_ip, src_port, dst_ip, dst_port)
=> unique par connexion TCP
Les ports sources sont souvent "ephemeral"
          
Ephemeral ports & exhaustion
  • Un client ouvre beaucoup de connexions → consomme ports sources.
  • TIME_WAIT retient des ports → normal mais peut saturer si extrĂȘme.
  • Solutions : pooling/keep-alive, limiter concurrency, tuning sysctl (avec prudence).
Backlog & SYN flood (niveau pratique)
Serveur :
- LISTEN socket + backlog
- connexions entrantes en SYN-RECV (half-open)
Si backlog saturé :
- refus/drops
Mitigations :
- SYN cookies
- rate limit
- protection DDoS / load balancer
          

Beaucoup de SYN-RECV peut indiquer : SYN flood, loss réseau, ou serveur surchargé.

SĂ©curitĂ© rĂ©seau — firewall, segmentation, TLS/mTLS, VPN, DDoS, Zero Trust
Firewall / ACL : stateless vs stateful
TypeCaractéristiquePiÚge
Statelessfiltre paquet par paquetretour trafic doit ĂȘtre autorisĂ©
Statefulconntrack (suit connexions)conntrack saturé, asymétrie

Une panne “alĂ©atoire” est souvent un timeout conntrack/NAT ou une saturation state table.

TLS & mTLS
TLS :
- authentifie le serveur
- chiffre le trafic

mTLS :
- authentifie serveur ET client
- utile en microservices, zero trust
Impacts :
- gestion certs (rotation, CA interne)
        
DDoS (résumé)
Volumetric : saturer bande passante (L3/L4)
Protocol    : SYN flood, amplification DNS/NTP
Application : HTTP floods, bots

Mitigations :
- CDN / scrubbing
- rate limiting, WAF
- anycast, autoscaling
        
Zero Trust (réseau + identité)
  • Ne jamais “faire confiance” au rĂ©seau interne.
  • Authentifier/autoriser chaque appel (identity-aware).
  • Segmentation + mTLS + policy-as-code.
MTU/MSS & performance — PMTUD, fragmentation, jumbo frames, bufferbloat
PMTUD (Path MTU Discovery)
But : trouver la MTU max sur le chemin
- IPv4 : ICMP "frag needed" (DF set)
- IPv6 : routers ne fragmentent pas (l'hĂŽte adapte)
Si ICMP bloqué => black-hole (gros paquets perdus)
          

SymptĂŽme PMTUD cassĂ© : petites requĂȘtes OK, gros uploads/downloads cassent.

Perf : latency vs throughput
Throughput TCP ~ (MSS / RTT) * (1 / sqrt(loss))
=> RTT et loss dominent
Optimiser :
- réduire RTT (geo/CDN)
- réduire pertes (réseau)
- ajuster windowing (sysctl)
- éviter bufferbloat (queues)
          
Troubleshooting TCP/IP — mĂ©thode par couches + outils Linux (copy/paste)
Checklist par couche (ordre recommandé)
  1. L2 : interface up ? VLAN ok ? ARP/ND ok ? MTU ?
  2. L3 : IP correcte ? route défaut ? route vers subnet ? ICMP/traceroute ?
  3. L4 : port ouvert ? handshake TCP ? resets ? timeouts ?
  4. DNS : résolution correcte ? cache ? split DNS ?
  5. TLS : cert/chain/SNI/time ? ALPN ?
  6. HTTP : status codes, headers, backend time, load balancer.
Commandes essentielles (Linux)
Interfaces / IP :
- ip a
- ip link
- ethtool 

Routes :
- ip route
- ip route get 

DNS :
- dig 
- dig @ 
- resolvectl status

Connexions / ports :
- ss -lntup
- ss -tn state time-wait
- nc -vz host port
- curl -v https://host

ICMP :
- ping -c 3 host
- traceroute host / tracepath host

Capture :
- tcpdump -ni  host  and port 443
        
Symptîmes → hypothùses rapides
SymptÎmeHypothÚsesVérif
Timeoutfirewall drop, route, MTU, congestiontraceroute, tcpdump
RSTport fermé, app down, LB resetss, logs, curl -v
DNS NXDOMAINzone/record absent, resolverdig +trace
SSL errorcert/chain/SNI/timeopenssl s_client
lentRTT/loss, TLS, backendtiming DNS/TCP/TLS
Captures : lire ce qui se passe
Cas classiques :
- SYN sans SYN-ACK => drop/route
- SYN-ACK mais pas ACK => retour cassé / firewall state
- Retransmissions => loss
- TLS handshake alert => cert/cipher/SNI
- HTTP 5xx => backend
        

Un tcpdump bien filtrĂ© est souvent le moyen le plus rapide de “prouver” oĂč ça casse.

Playbook “incident TCP/IP” — runbook express (copy/paste)
Runbook 10 minutes
  1. Scope : 1 host ? 1 subnet ? global ? (impact)
  2. DNS : dig name → IP (A/AAAA) + vĂ©rifier resolver.
  3. IP : ping IP + traceroute/tracepath.
  4. Port : nc -vz host port + ss -lntup cÎté serveur.
  5. TLS : openssl s_client (cert/SNI).
  6. HTTP : curl -v + vérifier status/headers.
  7. Capture : tcpdump (SYN? RST? retrans?)
  8. Mitigation : rollback LB rule, bypass WAF, scale, route fix.
  9. Validation : SLO/latency/errors.
  10. Postmortem : cause + action (owner/date).
Snippet copy/paste
# 1) DNS
dig +short example.com
dig @1.1.1.1 example.com

# 2) Routes
ip route
ip route get 8.8.8.8

# 3) Port
nc -vz example.com 443
ss -lntup | head

# 4) TLS
openssl s_client -connect example.com:443 -servername example.com  and port 443
          

En prod : captures courtes, filtres stricts, et attention aux données sensibles.

Cheat-sheet TCP/IP — commandes, ports, erreurs, flags (one page)
Ports “classiques” (à connaütre)
ServicePortProtoNote
SSH22TCPadmin
HTTP80TCPweb
HTTPS443TCP/UDPHTTP/3 sur UDP
DNS53UDP/TCPzones sur TCP
SMTP25TCPmail
IMAP143/993TCPmail
PostgreSQL5432TCPDB
MySQL3306TCPDB
Flags TCP (mémo)
SYNopen
ACKack
FINclose
RSTreset/refuse
Commandes rapides
# IP / routes
ip a
ip route
ip route get 

# DNS
dig 
dig +trace 

# Connexions
ss -lntup
ss -tn

# Test port
nc -vz  

# HTTP/TLS
curl -v https://host
openssl s_client -connect host:443 -servername host  host  and port 

Interpréter vite
Timeout = drop/route/MTU
RST     = port fermé / app reset
TLS fail= cert/chain/SNI/time
HTTP 5xx= backend / upstream