Decodificatore flag TCP
0x12, cioè 18, è SYN più ACK e non un SYN da solo: inserisca il byte in decimale, esadecimale o binario per vedere ogni bit di controllo per nome, oppure indichi nomi come SYN e ACK per ottenere di nuovo il byte. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Valore
- 0x12
- Modalità di calcolo
- Decode
- Valore decimale
- 18
- Valore in esadecimale
- 0x12
- Valore in binario
- 0b00010010
- Flag
- SYN, ACK
Un segmento TCP porta un ottetto compatto di flag che decide se il pacchetto apre una stretta di mano, conferma i dati, spinge un buffer, azzera un socket o segnala congestione. Le catture, le colonne di Wireshark e le tracce dei socket mostrano di solito quel byte in hex, mentre i manuali e le regole del firewall parlano di bit nominati come SYN, ACK, FIN, RST, PSH e URG. Tradurre a mano tra le due viste è dove si nascondono gli errori di uno: un SYN-ACK vale 0x12, non 0x03, e ACK è il bit 4, non il bit 0. Questo decodificatore di flag TCP accetta un byte in decimale, hex 0x o binario 0b e restituisce ogni bit di controllo nominato, oppure accetta un insieme di nomi e li ricodifica nello stesso byte.
Che cosa significa il byte dei flag TCP e quali bit questo decodificatore nomina
Il tredicesimo ottetto di un'intestazione TCP è il campo dei bit di controllo. RFC 793 ha definito sei flag nei bit bassi: FIN (0x01) chiude la metà trasmittente della connessione, SYN (0x02) sincronizza i numeri di sequenza all'inizio della stretta di mano, RST (0x04) interrompe un socket, PSH (0x08) chiede al ricevitore di consegnare il buffer senza indugio, ACK (0x10) marca un numero di riconoscimento valido, e URG (0x20) segnala i dati del puntatore urgente.
RFC 3168 ha poi destinato i due bit alti alla notifica esplicita di congestione: ECE (0x40) riecheggia un segno di congestione subita, e CWR (0x80) indica che il mittente ha ridotto la finestra di congestione. Quelle otto maschere riempiono del tutto il byte, quindi un valore da 0 a 255 è una codifica senza perdite dell'insieme. Il traffico classico di handshake a tre vie si riconosce appena i bit hanno un nome: un SYN isolato vale 0x02, la risposta SYN-ACK vale 0x12 e l'ACK finale vale 0x10.
Una chiusura ordinata è spesso FIN più ACK (0x11); un aborto è RST, talvolta con ACK. Questo decodificatore elenca i bit attivi nell'ordine RFC da FIN a CWR, emette hex e binario a otto bit, e stampa anche le lettere in stile tcpdump dove ACK è un punto, così S. è il glifo familiare di SYN-ACK. Il nonce NS di RFC 3540 vive nel nibble riservato del byte precedente, non in questo ottetto, e resta quindi fuori ambito.
Casi d'uso
Leggere un SYN-ACK da un dump esadecimale
Incolli 0x12 oppure 18 per confermare che il segmento è SYN più ACK, non un SYN isolato, prima di spiegare una stretta di mano a tre vie o una connessione rifiutata.
Costruire una maschera di flag per firewall o BPF
Codifichi nomi come SYN, ACK o RST nel byte esatto che pone accanto a una maschera in un filtro, poi decodifichi gli accoppiamenti per dimostrare che la regola ha visto i bit previsti.
Annotare pipeline di cattura e prove d'esame
Trasformi interi di flag memorizzati in nomi ordinati e lettere tcpdump per cruscotti, ticket e domande d'esame, senza spedire un dissettore di pacchetti completo.
Domande frequenti
Come si decodifica un byte di flag TCP in SYN, ACK e gli altri bit?
Imposti mode su decode e invii value come decimale 0–255, hex 0x o binario 0b. La risposta elenca ogni nome attivo in ordine RFC, più hex, binario, booleani e un glifo tcpdump.
Come si ricodificano SYN e ACK in un byte di flag?
Il ricodificatore combina le maschere con OR; SYN più ACK vale 0x12 (decimale 18).
Quali flag TCP sono supportati?
Gli otto bit dell'ottetto dei flag: FIN 0x01, SYN 0x02, RST 0x04, PSH 0x08, ACK 0x10, URG 0x20, ECE 0x40 e CWR 0x80. Il bit nonce NS non fa parte di questo byte.
Che cosa significa il campo tcpdump?
È la stringa compatta di lettere che tcpdump stampa per gli stessi bit: FIN è F, SYN è S, RST è R, PSH è P, ACK è un punto, URG è U, ECE è E e CWR è W. SYN-ACK compare quindi come S seguito da un punto.
Quali valori usa l'handshake TCP a tre vie?
Un SYN da solo vale 0x02, la risposta SYN-ACK vale 0x12 e l'ACK finale vale 0x10. Una chiusura ordinata è spesso FIN più ACK, 0x11, mentre una connessione interrotta mostra RST, a volte insieme ad ACK.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/dev/tcp-flags-decode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"decode"}'const res = await fetch("https://api.kit.forhosting.com/dev/tcp-flags-decode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mode": "decode"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/tcp-flags-decode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mode": "decode"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/tcp-flags-decode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mode":"decode"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mode":"decode"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/tcp-flags-decode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"mode": "decode"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.tcp_flags_decode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Contratto di ingresso, decodifica rispetto a codifica, e forma della risposta
Imposti mode su decode oppure encode. Il confronto ignora le maiuscole; sono accettati anche spazi, barre verticali e punti e virgola come separatori; i nomi duplicati vengono ignorati perché l'OR bit a bit è idempotente. Un array flags vuoto codifica il byte zero, insolito sul filo ma lecito come maschera. Le chiavi opzionali sono omesse anziché poste a null. La convalida fallita non viene fatturata. In mode decode, value è obbligatorio e può essere un numero JSON o una stringa: il decimale 18, l'esadecimale 0x12 o il binario 0b00010010 indicano lo stesso byte SYN-ACK. Interi fuori da 0 a 255, numeri non interi, stringhe vuote e testo senza prefisso falliscono con invalid_input indicando value. In mode encode, flags è obbligatorio e può essere una stringa separata da virgole come SYN,ACK oppure un array JSON di quei nomi. I token sconosciuti, compreso NS o soprannomi inventati, falliscono con invalid_input che elenca gli otto nomi leciti. In caso di successo il corpo include sempre mode, value_decimal, value_hex (due cifre minuscole), value_binary (otto bit), flags come array ordinato, flags_string con gli stessi nomi uniti da virgole, lettere tcpdump, otto campi booleani da fin a cwr, e una stringa formula che ribadisce i pesi dei bit. Esempio: decode 0x12 produce flags SYN e ACK, tcpdump S. e value_decimal 18; encode SYN,ACK produce il byte identico, così i due mode sono inversi esatti.
Dove un decodificatore di flag TCP merita davvero il proprio posto
I laboratori di protocollo e le esercitazioni da colloquio chiedono ancora agli studenti di leggere un dump hex e dire se un segmento è un SYN, un SYN-ACK o un RST isolato; un decodificatore condiviso è l'oracolo che valuta quelle risposte senza discutere la numerazione dei bit. Chi scrive firewall e BPF codifica un insieme di nomi nel byte che pone accanto a una maschera, poi decodifica gli accoppiamenti di produzione per confermare che la regola ha visto SYN e non SYN-ACK. Fissi l'hex, l'array ordinato di flags e il glifo tcpdump nelle prove, e otterrà un'aritmetica di handshake riproducibile per worker di bordo, quiz sui pacchetti e tracce di socket, senza erigere un'intera pila di dissettori solo per nominare otto bit. Le pipeline di cattura che già memorizzano l'ottetto dei flag TCP come intero possono chiamare questo endpoint per allegare nomi umani prima che un ticket o una cella di cruscotto sia mostrata all'ingegnere di turno. Poiché l'implementazione è parse pura di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello né rete in uscita.
Domande tecniche
Quanto costa il decodificatore di flag TCP?
Lo strumento nel browser è gratuito. Le richieste API usano il saldo KIT prepagato a $0.002 per chiamata riuscita; l'ingresso non valido non viene fatturato.