2011-12-05 59 views
0

我有一个防火墙来检测所有连接。 当我从A连接到B时,我们会在A和B之间收到很多包,如果我们从B连接到A,我们也会收到相同的A-> B。如何检查IP标头或TCP/UDP标头是否处于连接状态?

我不知道如何检查每个数据包是否属于A创建或B创建的连接。

我已经捕获了IP头,TCP/UDP头,但我不知道什么是可以检查它的字段。

回答

0

序号字段是你需要的。

struct tcphdr { 
    unsigned short th_sport; /* source port */ 
    unsigned short th_dport; /* destination port */ 
    tcp_seq th_seq;   /* sequence number */ 
    tcp_seq th_ack;   /* acknowledgement number */ 
... 
}; 
 
    packet A -> B 

    A [th_seq=1] -> B 
    B [th_seq=2, th_ack=1] -> A 
    A [th_seq=3, th_ack=2] -> B 
相关问题