Omnet++ 两种TCP拥塞控制算法的实现

Omnet++ 两种TCP拥塞控制算法的实现,omnet++,inet,Omnet++,Inet,首先,如果这不是解决这个问题的正确论坛,我深表歉意。我正试图在OMNeT/INET中实现两种tcp拥塞控制算法 第一个是TCP-FIT,我在上找到了它的伪代码。 另一个是TCP Illinois,我在上找到了它的linux实现 我无法理解如何在这两种机制中实现一些变量和方法,我将非常感谢您的帮助。也欢迎对变量类型提供一些帮助 简言之,对于TCP-FIT: epoch\u开始和更新\u epoch(我理解epoch可以是RTT的同义词) α(值) 是什么 RTT_cnt计算是否正确(在recei

首先,如果这不是解决这个问题的正确论坛,我深表歉意。我正试图在OMNeT/INET中实现两种tcp拥塞控制算法

第一个是TCP-FIT,我在上找到了它的伪代码。 另一个是TCP Illinois,我在上找到了它的linux实现

我无法理解如何在这两种机制中实现一些变量和方法,我将非常感谢您的帮助。也欢迎对变量类型提供一些帮助

简言之,对于TCP-FIT:

  • epoch\u开始和更新\u epoch(我理解epoch可以是RTT的同义词)
  • α(值)
  • 是什么
  • RTT_cnt计算是否正确(在receivedDataAck()下)
  • tcpFitUpdateN()函数是否正确
  • 我是否正确实现了伪代码
对于TCP伊利诺伊州:

  • snd_cwnd_cnt——我想这只是一个计数器,它显示了有多少数据包被确认
  • snd_cwnd_夹具——拥塞窗口的上限,我想我是对的
  • end_seq——这似乎是必需的,但我不理解if(在(ack,ca->end_seq){…}之后)中的“ack”参数,它来自函数tcp_illinois_cong_避免(struct sock*sk,u32 ack,u32 acked){…}
  • tp->snd\u nxt——它等同于OMNeT++state->snd\u nxt吗
  • sum_rtt和max_rtt——我计算这些值正确吗
据我所知,在阅读了linux实现中提供的文章后,TCP Illinois的运行方式与TCP NewReno相同,只是AIMD部分不同。我打赌这意味着我可以保持TCP NewReno的大部分代码完整,除了TCP-SACK部分和AIMD

我还希望得到关于实现的任何提示,当然还有关于代码正确性的任何评论。我目前几乎完整的实现可以在github上找到,网址是

如果您需要更多的细节或澄清,请随时打扰我


提前谢谢。

亲爱的G.罗格,你的帖子看起来更像是一条需要讨论的线索,而不是一个涉及具体问题的问题。只有非常熟悉协议的人才能回答你的问题。如果你没有明确的问题需要回答,我担心你的帖子会被标记为
主要是基于观点的
你运行过模拟吗?协议是否按照您的预期运行?你收集结果了吗?它们是否如预期的那样?