Bilindiği üzere TCP protokol olarak çok
        kullanılmaktadır. ftp, telnet vs.
        TCP paketleri ile yapılacak olan veri aktarımlarında
        ise TCP'nin üç-koşullu-onaylama (three way
        hanshaking) olarak adlandırılan yöntemi kullanılır.
      
        Yöntem bir bağlantı isteği (active open olarak geçer) ile
        işlemeye başlar.
      
        İstemci makina sunucuya SYN (syncronise)
        sayısı içeren bir paket gönderdiğinde sunucu buna SYN
        ve ACK (acknowledgement) ile cevap
        verir.
      
        Üçüncü adım olarak da istemciden sadece bir ACK geri
        döner (passive open).
      
        Daha fazla ayrıntısına girmeyeceğim bu iletişim bir TCP
        bağlantısı başlatır. Biz eğer makinamıza giren TCP
        isteklerini kontrol etmek istersek (bu sekilde TCP
        kullanan tüm servisler kontrol edilir; ftp,
        telnet, ssh, finger
        www vs.) ipchains'in
        -y parametresi yardımımıza koşar.
      
        Bu parametre ile içinde SYN biti 1 olan ve aynı
        zamanda ACK ve FIN bitleri 1'e
        eşit olan (SYN=1 && ACK=0 && FIN=0 durumu) paketler
        yakalanabilir.
      
        Parametrenin ! (tersi) seçeneği de vardır. (bit durumlarının tersi değil
        koşul sağlanmasının tersi). Ve de doğal olarak sadece TCP
        protokolü için kullanılır.
      
# ipchains -A input -p tcp -s 0/0 -d 155.223.3.202/32 -y -j DENY
        Komutu ile makinaya gelen tüm SYN_REQ'ler kabul
        edilmemiş olur. Böylece dışardan hiçbir şekilde makinaya
        TCP bağlantısı yapılamaz.
      
        Ve de bizim dışarıya TCP bağlantısı isteklerimiz de
        bundan etkilenmez. (çünkü bizim başlattığımız TCP'lerde
        de bu bitler kullanılır ne kadar sadece output kümesini ilgilendiriyor
        görünse de TCP'nin çift taraflı özelliğinden ötürü
        input kümesi de olaya girer. Ama belirttiğimiz gibi
        -y parametresi bizim başlattığımız
        TCP bağlantılarını görmez).