在上的OMNeT ++的顶部运行INET例如项目“ARPTest”,似乎1兆字节的数据被从每个三个主机的转移通过以太网电缆给服务器512 Mb/s的和100Mb/s的带宽。在现实生活中,这个数据传输似乎不到一秒钟。但是,当全速运行模拟时,模拟运行500秒,仍然没有完成。有人可以解释有关模拟器时间的这种差异,或者我错过了什么?所有的在INET,为什么ARPTest例如网络需要超过500秒的运行?
0
A
回答
2
首先,经常检查日志输出,看看有什么模拟实际做的事情。在Express模式下运行模拟的问题是跳过了日志输出,因此您不会看到实际发生的情况。现在
,看着你的问题,有仿真时间和数据传输的实际传输时间之间没有差异。
500秒的仿真时间是仿真时间限制的,通过sim-time-limit = 500s
在omnetpp.ini
中设置。 的OMNeT ++将停止在500秒仿真时间的仿真,而不管其它事件来处理的。
为了完整起见,我会后,最终的日志输出为ARPtest:
** Event #385441 t=5.831682347368 ARPTest.server.tcp (TCP, id=257) on ACK (inet::tcp::TCPSegment, id=499229)
DETAIL (TCP)ARPTest.server.tcp: Connection 10.0.0.14:1000 to 10.0.0.1:1025 on app[0], connId=8 in LAST_ACK
INFO (TCP)ARPTest.server.tcp: Seg arrived: .1025 > .1000: ack 2347163 win 7504
DETAIL (TCP)ARPTest.server.tcp: TCB: snd_una=2346444 snd_nxt=2346980 snd_max=2347163 snd_wnd=7504 rcv_nxt=1298578 rcv_wnd=7504 snd_cwnd=536 rto=2 ssthresh=3728
DETAIL (TCP)ARPTest.server.tcp: Processing ACK in a data transfer state
DETAIL (TCP)ARPTest.server.tcp: ACK acks our FIN
INFO (TCP)ARPTest.server.tcp: Updating send window from segment: new wnd=7504
INFO (TCP)ARPTest.server.tcp: ACK acks all outstanding segments, cancel REXMIT timer
INFO (TCP)ARPTest.server.tcp: cwnd <= ssthresh: Slow Start: increasing cwnd by one SMSS bytes to cwnd=1072
INFO (TCP)ARPTest.server.tcp: Last ACK arrived
INFO (TCP)ARPTest.server.tcp: Transition: LAST_ACK --> CLOSED (event was: RCV_ACK)
DEBUG (TCP)ARPTest.server.tcp: tcp: LAST_ACK --> CLOSED (on RCV_ACK)
INFO (TCP)ARPTest.server.tcp: Notifying app: CLOSED
INFO (TCP)ARPTest.server.tcp: Deleting TCP connection
** Event #385442 t=5.831682347368 ARPTest.server.tcpApp[0] (TCPEchoApp, id=256) on CLOSED (omnetpp::cMessage, id=499231)
** Event #385443 t=245.831667258618 ARPTest.client.tcp (TCP, id=30) on selfmsg 2MSL (omnetpp::cMessage, id=87)
DETAIL (TCP)ARPTest.client.tcp: Connection 10.0.0.1:1025 to 10.0.0.14:1000 on app[0], connId=7 in TIME_WAIT
DETAIL (TCP)ARPTest.client.tcp: 2MSL timer expired
INFO (TCP)ARPTest.client.tcp: Transition: TIME_WAIT --> CLOSED (event was: TIMEOUT_2MSL)
DEBUG (TCP)ARPTest.client.tcp: tcp: TIME_WAIT --> CLOSED (on TIMEOUT_2MSL)
INFO (TCP)ARPTest.client.tcp: Deleting TCP connection
** Event #385444 t=500 on endsimulation (omnetpp::cEndSimulationEvent)
<!> Simulation time limit reached -- at t=500s, event #385444
** Calling finish() methods of modules
INFO (TCPSessionApp)ARPTest.client.tcpApp[0]: ARPTest.client.tcpApp[0]: ARPTest.client.tcpApp[0]: received 2097152 bytes in 3447 packets
INFO (TCP)ARPTest.client.tcp: ARPTest.client.tcp: ARPTest.client.tcp: finishing with 0 connections open.
INFO (TCP)ARPTest.server.tcp: ARPTest.server.tcp: ARPTest.server.tcp: finishing with 1 connections open.
在日志输出,你可以清楚地看到,各地5.83秒,用于数据传输的最后确认到达并且TCP连接最终关闭。之后,计时器在245秒左右到期,在500秒后,模拟退出(由于模拟时间限制)。
仿真将继续,直到所有的定时器期满或没有进一步的事件需要处理(无论是本例中,第一种情况)。
相关问题
- 1. 网络运行每半秒
- 2. 为了在iText中运行ParseHtml8示例,需要什么jar?
- 3. 为什么在主线程中需要运行骆驼示例
- 4. 为什么rails需要JavaScript运行时?
- 5. HttpURLConnection.getOutputStream()需要20秒。为什么?
- 6. 循环功能运行超过需要
- 7. 为什么我们需要神经网络中的偏差?
- 8. 如果网络连接超时,Java需要很长时间才能运行
- 9. 为什么需要通过getErrorStream()来运行一个进程?
- 10. 运行速度超过15ms的秒表
- 11. 为什么我需要使用超时?
- 12. 仅当AJAX调用需要超过500毫秒时才显示“加载”框
- 13. 一个线程需要2秒,10个线程需要16-18秒。为什么?
- 14. 执行visual studio 2005网络测试需要什么?
- 15. 什么是QTcpSocket在网络过载时的行为?
- 16. 为什么iOS网络服务呼叫需要IP地址?
- 17. 为什么网络应用需要后端语言?
- 18. MySQL连接器网络为什么我们需要它?
- 19. 为什么我们需要网络套接字?
- 20. 为什么Laravel认证需要'网络'后卫?
- 21. 为什么神经网络需要权重和偏差?
- 22. 为什么卷积网络需要多个特征映射?
- 23. 提高查询运行时间(需要超过20秒来加载页面)
- 24. 什么我需要运行哨兵我的Django的网站
- 25. 为什么我的网站需要SSL?
- 26. SQL Server查询需要超过50秒才能执行
- 27. 如何在5秒内运行cron触发器超过过程
- 28. 网络中有这么多不同的协议需要什么?
- 29. 查询查询运行超过5秒
- 30. Perl:如何在X秒后获取IO :: Socket :: INET超时?