0

私の理解では、TCP セッションは として識別され <ServerIP, ServerPort, ClientIP, ClientPort>ます。

たとえば、セッション<192.168.0.1, 80, 192.168.0.2, 1000>は から分離されて<192.168.0.1, 80, 192.168.0.2, 1001>おり、これら 2 つのセッションはホスト上で同時に共存できます。

ただし、OPNET では が確立済みの場合<192.168.0.1, 80, 192.168.0.2, 1000><192.168.0.1, 80, 192.168.0.2, 1001>192.168.0.1 のポート 80 がすでに使用されているため、確立できません。

このモデルでは、192.168.0.1:80 で HTTP サービスをホストしようとすると、一度に 1 つのサーバーにしか接続できず、シミュレーション機能が大幅に制限されます。

モデルに本当に問題があるのか​​、見落としがないか確認してください。また、回避策も非常に高く評価されます。

4

1 に答える 1

1

OPNET TCP モデルのソース コードを掘り下げたところ、バグが見つかりました。

まず第一に、OPNET は<192.168.0.1, 80, 192.168.0.2, 1000><192.168.0.1, 80, 192.168.0.2, 1001>を 2 つの別個の独立したセッションと見なし、. を使用してそれらを区別できますsession_key

ただし、モデルには小さなバグがあります。PASSIVEオープン リクエストが TCP モデル レイヤー ( (リッスン) または(接続) のいずれか)に発行されるとACTIVE、モデルはローカル ポートが使用されているかどうかを確認します。ローカル ポートが使用されている場合、オープン リクエストのタイプに関係なくエラー信号が返されますが、正しいアクションはACTIVEオープンをチェックすることだけです。

ACTIVE解決策は、未解決のケースでのみ機能するようにチェック手順を変更することです。予備テストでは、現在、同じリスニング ポートで複数の接続を確立できることが示されています。

于 2015-05-08T07:44:33.460 に答える