0
我有一个防火墙来检测所有连接。 当我从A连接到B时,我们会在A和B之间收到很多包,如果我们从B连接到A,我们也会收到相同的A-> B。如何检查IP标头或TCP/UDP标头是否处于连接状态?
我不知道如何检查每个数据包是否属于A创建或B创建的连接。
我已经捕获了IP头,TCP/UDP头,但我不知道什么是可以检查它的字段。
我有一个防火墙来检测所有连接。 当我从A连接到B时,我们会在A和B之间收到很多包,如果我们从B连接到A,我们也会收到相同的A-> B。如何检查IP标头或TCP/UDP标头是否处于连接状态?
我不知道如何检查每个数据包是否属于A创建或B创建的连接。
我已经捕获了IP头,TCP/UDP头,但我不知道什么是可以检查它的字段。
序号字段是你需要的。
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