2011-12-05 7 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