2016-08-10 19 views
0

INETモジュールを使用して3層データセンターモデルを設計しようとしています。私はネットワーク、TCPソケットが作成され、その後たびに実行し、私は以下のようなエラーが出るときしかし:omnet ++/inetモジュールの宛先アドレスを解決できません

starting session 
issuing OPEN command 
cannot resolve destination address: 

マイNEDファイルは以下の通りです:

ネッド・ラック用

import inet.nodes.inet.Router; 
import inet.nodes.inet.StandardHost; 
import inet.nodes.ethernet.Eth10M; 
import inet.networklayer.autorouting.ipv4.IPv4NetworkConfigurator; 


module Rack 
{ 

    parameters: 
     //int N @prompt(“Nodes per rack”); 
     int N = default(10) 

     @display("bgb=392,190"); 
    gates: 
     inout iogate[]; 

    submodules: 
     ComputingServer[N]: StandardHost { 
      @display("p=120,91"); 
     } 
     AccessRouter: Router { 

      @display("p=289,91"); 
     } 
     configurator: IPv4NetworkConfigurator; 

connections: 

     for i=0..N-1 { 
      AccessRouter.ethg++ <--> Eth10M <--> ComputingServer[i].ethg++; 
     } 
     AccessRouter.ethg++ <--> iogate++; 
     AccessRouter.ethg++ <--> iogate++; 
} 
ネットワーク

import inet.nodes.inet.Router; 
import inet.nodes.inet.StandardHost; 
import inet.nodes.ethernet.Eth100M; 
import inet.networklayer.autorouting.ipv4.IPv4NetworkConfigurator; 

network Basic_dcn_tcp 
{ 
    parameters: 
     int N = default(4); 
     int AGR = default(4); 
     int CR = default(2); 

    submodules: 

     AGRouter[AGR]: Router { 
      @display("p=131,167"); 
     } 
     CRouter[CR]: Router { 
      @display("p=204,52"); 
     } 
     Racks[N]: Rack { 
      @display("p=131,304"); 
     } 
     configurator: IPv4NetworkConfigurator; 

    connections allowunconnected: 

     for i=0..CR-1, for j=0..AGR-1 { 
      CRouter[i].ethg++ <--> Eth100M <--> AGRouter[j].ethg++; 
     } 

     for i=0..1, for j=0..1 { 
      AGRouter[i].ethg++ <--> Eth100M <--> Racks[j].iogate++; 
     } 

     for i=2..3, for j=2..3 { 
      AGRouter[i].ethg++ <--> Eth100M <--> Racks[j].iogate++; 
     } 
} 

iniファイルのための

ネッドは以下の通りです:

[Config basic_dcn] 
network = Basic_dcn_tcp 

**.tcpType = "TCP" 
**.tcp.advertisedWindow = 65535 
**.tcp.delayedAcksEnabled = false 
**.tcp.increasedIWEnabled = false 
**.tcp.limitedTransmitEnabled = false 
**.tcp.mss = 1452 
**.tcp.nagleEnabled =true 
**.tcp.receiveQueueClass = default 
**.tcp.recordStats = true 
**.tcp.sackSupport = false 
**.tcp.sendQueueClass = default 
**.tcp.tcpAlgorithmClass = default 
**.tcp.timestampSupport = true 
**.tcp.windowScalingSupport = false 


**.numTcpApps = 1 
**.tcpApp[*].typename="TCPBasicClientApp" 
**.tcpApp[*].localAddress = "" 
**.tcpApp[*].localPort = -1 
**.tcpApp[*].connectPort = 80 
**.tcpApp[*].startTime = 0s 
**.tcpApp[*].requestLength = 350B 
**.tcpApp[*].replyLength = 5MiB 
**.tcpApp[*].numRequestsPerSession = 1 
**.tcpApp[*].thinkTime = 3s 
**.tcpApp[*].idleInterval = 10s 
**.tcpApp[*].reconnectInterval = 50s 


**.tcpApp[*].dataTransferMode = "object" 

エラーを修正するのを手伝ってください。私はちょうどinetでコーディングを始めました。

答えて

1

2つのミスがあります。

  1. は、TCP接続が非対称である、それは、クライアントとサーバが必要です。 TCPBasicClientAppクライアントアプリケーションのみです。サーバーとしてはTCPGenericSrvApp、refを使用する必要があります。 INET Manual
  2. TCP接続の宛先アドレスを書き込んでいませんでした。どのホストがサーバーになるか(つまり、着信接続を待機する)、どのホストが接続を行う(つまりクライアントとして動作するか)を決定する必要があります。

例えば:

[Config basic_dcn] 
network = Basic_dcn_tcp 

**.tcpType = "TCP" 
**.tcp.advertisedWindow = 65535 
**.tcp.delayedAcksEnabled = false 
**.tcp.increasedIWEnabled = false 
**.tcp.limitedTransmitEnabled = false 
**.tcp.mss = 1452 
**.tcp.nagleEnabled =true 
**.tcp.receiveQueueClass = default 
**.tcp.recordStats = true 
**.tcp.sackSupport = false 
**.tcp.sendQueueClass = default 
**.tcp.tcpAlgorithmClass = default 
**.tcp.timestampSupport = true 
**.tcp.windowScalingSupport = false 


**.numTcpApps = 1 
**.tcpApp[*].startTime = 0s 
**.tcpApp[*].requestLength = 350B 
**.tcpApp[*].replyLength = 5MiB 
**.tcpApp[*].numRequestsPerSession = 1 
**.tcpApp[*].thinkTime = 3s 
**.tcpApp[*].idleInterval = 10s 
**.tcpApp[*].reconnectInterval = 50s 

**.tcpApp[*].dataTransferMode = "object" 

# Racks[0].ComputingServer[0] listens on port 80 
*.Racks[0].ComputingServer[0].tcpApp[*].typename = "TCPGenericSrvApp" 
*.Racks[0].ComputingServer[0].tcpApp[*].localPort = 80 
*.Racks[0].ComputingServer[0].tcpApp[*].localAddress = "" 

# all other hosts connect to Racks[0].ComputingServer[0] 
*.Racks[*].ComputingServer[*].tcpApp[*].typename = "TCPBasicClientApp" 
*.Racks[*].ComputingServer[*].tcpApp[*].localPort = -1 
*.Racks[*].ComputingServer[*].tcpApp[*].connectAddress = "Basic_dcn_tcp.Racks[0].ComputingServer[0]" 
*.Racks[*].ComputingServer[*].tcpApp[*].connectPort = 80 

手がかり:Racks[0]ComputingServer[0]がサーバであり、それは、ポート番号80をリッスンし、他のすべてのホストがそれに接続すると仮定して、あなたのomnetpp.iniは次のようになりますでINETホスト名をIPアドレスとして使用できます。
また、すべてのオブジェクト(同じ種類の)を同じ場所に作成するため、NEDファイルからすべての@display()ディレクティブを削除することをお勧めします。 @display()のないシミュレーション環境では、各モジュールの適切な位置が選択されます。

関連する問題