| # |
TCP Field |
Normalization Performed |
| 1 |
Seq Num |
Enforce data consistency in retransmitted segments. |
| 2 |
Seq Num |
Trim data to window. |
| 3 |
Seq Num |
Cold-start: trim to keep-alive. |
| 4 |
Ack Num |
Drop ACK above sequence hole. |
| 5 |
SYN |
Remove data if SYN=1. |
| 6 |
SYN |
If SYN=1 & RST=1, drop. |
| 7 |
SYN |
If SYN=1 & FIN=1, clear FIN. |
| 8 |
SYN |
If SYN=0 & ACK=0 & RST=0, drop. |
| 9 |
RST |
Remove data if RST=1. |
| 10 |
RST |
Make RST reliable. |
| 11 |
RST |
Drop if not in window. |
| 12 |
FIN |
If FIN=1 & ACK=0, drop. |
| 13 |
PUSH |
If PUSH=1 & ACK=0, drop. |
| 14 |
Header Len |
Drop if less than 5. |
| 15 |
Header Len |
Drop if beyond end of packet. |
| 16 |
Reserved |
Clear. |
| 17 |
ECE, CWR |
Optionally clear. |
| 18 |
ECE, CWR |
Clear if not negotiated. |
| 19 |
Window |
Remove window withdrawals. |
| 20 |
Checksum |
Verify, drop if incorrect. |
| 21 |
URG,urgent |
Zero urgent if URG not set. |
| 22 |
URG,urgent |
Zero if urgent > end of packet. |
| 23 |
URG |
If URG=1 & ACK=0, drop. |
| 24 |
MSS option |
If SYN=0, remove option. |
| 25 |
MSS option |
Cache option, trim data to MSS. |
| 26 |
WS option |
If SYN=0, remove option. |
| 27 |
SACK pmt'd |
If SYN=0, remove option. |
| 28 |
SACK opt |
Remove option if length invalid. |
| 29 |
SACK opt |
Remove if left edge of SACK block > right edge. |
| 30 |
SACK opt |
Remove if any block above highest seq. seen. |
| 31 |
SACK opt |
Trim any block(s) overlapping or continguous to cumulative acknowledgement point. |
| 32 |
T/TCP opts |
Remove if NIDS doesn't support. |
| 33 |
T/TCP opts |
Remove if under attack. |
| 34 |
TS option |
Remove from non-SYN if not negotiated in SYN. |
| 35 |
TS option |
If packet fails PAWS test, drop. |
| 36 |
TS option |
If echoed timestamp wasn't previously sent, drop. |
| 37 |
MD5 option |
If MD5 used in SYN, drop non-SYN packets without it. |
| 38 |
other opts |
Remove options. |