TCP SYN flooding is often used in conjunction with IP spoofing.
The main aim of a TCP SYN flood is to send a TCP SYN packet to a host inside your network from a spoofed IP address. The TCP SYN ACK is then sent to a machine that is not expecting one, or a machine that doesn’t exist. This causes a ‘half-opened’ connection (Embryonic Connection) to exist since the 3-way handshake has not completed with a ACK.
A Cisco router is only capable of having a certain amount of connections open to it (This is different depending on the router model) so if an attacker was to send thousands of spoofed TCP SYN packets the router would reach maximum allowed connections, even though the connections are not complete. This would prevent the router from allowing legitimate connections been created.
In order to completely fix this problem, a firewall that supports dynamic embryonic connections would need to be installed, however a router can prevent the flood of TCP SYN packets by disallowing connections from the outside coming into your network.
This means that only connections that were created from inside your network would work and all connections from the outside would be denied.
Here is the configuration breakdown. (FastEthernet 0/0 is the outside network)
AOIP.ORG(config)# access-list 101 permit tcp any 192.168.1.0 0.0.0.255 established
AOIP.ORG(config)# access-list 101 deny ip any any log
AOIP.ORG(config)# interface fa0/0
AOIP.ORG(config-if)# ip access-group 101 in