如何检查连接中的IP头或TCP/UDP头?

如何检查连接中的IP头或TCP/UDP头?,tcp,header,udp,ip,Tcp,Header,Udp,Ip,我有一个防火墙来检测所有的连接。 当我从a连接到B时,我们会收到a和B之间发送的许多数据包。如果我们从B连接到a,我们也会收到相同的结果a->B 我不知道如何检查每个数据包是否属于A或B创建的连接 我已经捕获了IP头、TCP/UDP头,但我不知道可以检查它的字段是什么。序列号字段是您需要的 struct tcphdr { unsigned short th_sport; /* source port */ unsigned short th_dport; /* des

我有一个防火墙来检测所有的连接。 当我从a连接到B时,我们会收到a和B之间发送的许多数据包。如果我们从B连接到a,我们也会收到相同的结果a->B

我不知道如何检查每个数据包是否属于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