Port knocking is normally TCP and UDP although there are a number of implementations with ICMP. It wouldn't be much harder to do with UDP but that means that a client would be required as I don't know of any(standard) unix programs that can send custom TCP or UDP packets. I'm looking at fixing a few of the things in the script like the timeout <shudder/> so I might throw in an option for TCP/UDP and a small client.