没有办法在应用层检测碰撞?唔

No means of detecting collision at the application layer? Hmm

鉴于人们对这两个教程的无用程度的期望

https://inet.omnetpp.org/docs/tutorials/wireless/doc/step5.html

和手册页:

https://doc.omnetpp.org/omnetpp/manual/#sec:ned-lang:warmup:network

如何在应用层建模碰撞?

您没有找到教程如何在应用层建模碰撞,因为在应用层不会发生碰撞
通常,当许多元素不能同时访问某些介质(或层)时,可能会发生冲突。但是,应用层没有这样的限制。应用程序可以随时发送一个数据包,该数据包将由传输层(TCP 或 UDP)处理,然后发送到网络层。网络层有缓冲区,所以在两个或多个应用程序同时发送数据包的情况下不会发生冲突。

根据您问题中提供的详细信息:

  • hostSink怎么判断hostA或者hostB是否还在发包[原:signals]?答:hostSink无法判断hostA是否还在发送数据包。模拟反映了真实网络的行为,真实网络中的主机不知道另一台主机是否仍在发送数据包。
  • 时间如何在模拟中“流逝”?答案:OMNeT++ 是离散事件模拟器,根据模拟手册:

A discrete event system is a system where state changes (events) happen at discrete instances in time, and events take zero time to happen.

表示模拟内部维护了一个名为currentSimtime的变量。开头currentSimtime=0。当第一个事件(例如发送ARP包)被安排在,例如,t=0.003s,currentSimtime设置为0.003s并执行发送ARP包。