TCP的状态检测tcp_conntracks的问题
static const enum tcp_conntrack tcp_conntracks[2][6][TCP_CONNTRACK_MAX] = {
{
...........
/* sNO, sSS, sSR, sES, sFW, sCW, sLA, sTW, sCL, sLI */
/*ack*/ { sES, sIV, sES, sES, sCW, sCW, sTW, sTW, sCL, sIV },
.........
我的问题是:
当old_state为sNO,index为ack时,为何new_state会为sES(established)?这个状态对于TCP的一般情况来说难以理解,一般来说要先:发一个syn->收到syn ack->发ack,这样三次握手后连接才能建立。为何这里在sNO的情况下可以直接发ack却认为established?