SCTP是通过“四次握手”的方法来建立一个SCTP链接的。具体过程如下:首先请求端发送一个INIT消息到服务端;服务端收到这个INIT消息后,准备好建立本次连接所需要的相关信息,并将这些信息放在一个叫“State Cookie”的数据块中,接下来服务端给请求端发送一个INIT_ACK的消息,INIT_ACK中包含了这个“State Cookie”,同时服务端会把和本次链接相关的所有资源释放掉,不维护任何资源和状态;请求端收到INIT_ACK后会把里面的“State Cookie”信息取出来重新封装一个COOKIE_ECHO发往服务端;服务端收到COOKIE_ECHO消息后再次去除其中的“State Cookie”,依据“State Cookie”中存储的信息建立本次链接,并向请求端发送COOKIE_ACK消息。
由此可见SCTP为了避免SYN Flooding攻击采用了一种比较聪明的办法就是:服务端不维护半链接信息,而是把半链接信息发送给请求端(存放在“State Cookie”中),如果请求端确实需要建立这个链接,那么请求端需要再把半链接信息回送给服务端,这时服务端便可以根据返回的半链接信息建立连接了