Establishing a Connection in TCP
To transmit data using the TCP protocol, a connection must first be established. A three-way handshake is used to establish the connection. During the connection establishment, both parties agree on a sequence number. The sequence and acknowledgment numbers are 32-bit values specified in the TCP header. To establish a connection, a TCP segment with flags set in the TCP header is sent. These are 8-bit values: CWR (Congestion Window Reduced), ECE (ECN-Echo), URG (Urgent), ACK (Acknowledgement), PSH (Push), RST (Reset), SYN (Synchronize), FIN.
The connection establishment occurs in three steps:
- The client sends a
SYNpacket with a sequence number (x), acknowledgment number 0 - The other party stores the sequence number (x) and responds with
SYN-ACK, setting its own sequence number (y) and the acknowledgment number to (x+1) - the next expected value - The client responds with
ACK, sequence number (x+1), acknowledgment number (y+1)

Terminating a Connection in TCP
The principles for terminating a connection are similar to those for establishing it. The most commonly used method is the four-way handshake, where each party independently closes the connection. The FIN sequence with an ACK response is used here.

Clanok fajn, ale prilis strucny.
Co by som privital:
1) Popis jednotlivych stavov spojenia - t.j. to co mi vypise netstat - TIME_WAIT, FIN_WAIT, SYN_SENT, SYN_RECV a pod. To by sa mohlo pridat k tym obrazkom.
2) Zacal si so sekvencnymi cislami... tak by sa mohlo doplnit nieco o syn food a ochrane syn cookies...
respond to [1]Marki: Děkuji za připomínky. Já se však pokouším sepsat základní informace o sítích, aby člověk získal obecný přehled a neodradilo ho to od čtení. Podrobných informací se dá na netu dohledat spousta, když už člověk ví co chce.
Bezpečnosti a útokům se také nevěnuji, jestli jsem pochopil dobře bod 2 a jedná se o Syn Flood.
Možná někdy později ;-) ...
respond to [2]Samuraj: Komu by to nestačilo najít přes Google, tak synflood je útok na paměť daného stroje, jelikož pro každé navázané spojení se vytváří v paměti místo, pamatuje se. Tedy až se paměť stroje vyčerpá, nemůže vůbec komunikovat.
Obrana proti tomu je více úrovňová, teď z hlavu mne napadá počet spojení (omezení) za daný časový interval a z dané ajpiny. Případně se předřazuje firewall, který je kapacitně odolnější.
Syncookies jsou efektivni ochrana proti syn floodu.
cr.yp.to/syncookies.html
btw pri takovejch utocich bejva vetsinou zdrojova ip nahodne generovana, tou se ridit nemuzes.
a co třeba :
- jak fungují sekvenční čísla a jaký k nim má vztah Acknowledge number
- změny Window size
- Jaké příznakové bity jsou nastaveny
diky moc..
@trivate napis ked vies... Su to pomerne zakladne veci aj ked sa musim priznat, ze ked som nasiel tuto stranku nemal som o nich ani sajn
zdravim, po jake dobe necinnosti mohu zjistit za jak dlouho se ukonci TCP spojeni? Ma to kazdy server jinak nastaven? Pokud ano tak jak a kde to zjistim?
Dekuji secik
Uvítal by som aj nejaké praktické ukážky, napríklad skript na ukladanie výpisu TCP spojení a ukončení.