cc_sim

  • o9_998254
    了解作者
  • 113.5KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-19 10:25
    上传日期
cc_sim 离散事件模拟器,用于快速建立拥塞控制算法的原型。 执行 cargo run -- release -- path - to - config - file 首选释放模式,因为它执行速度更快。 创建配置文件 我们的建议是直接在example_config.yaml之后创建一个YAML文件。 另一个选择是在Rust中创建一个配置文件。 例如,可以通过以下方式创建example_config.yaml : use config :: { CCConfig, Config, ConfigLog, ConfigTopo, DelayConfig, LinkTraceConfig, LogType, SenderGroupConfig, }; use simulator :: Time; use base :: BufferSize; fn main () {
cc_sim-master.zip
  • cc_sim-master
  • src
  • rtt_window.rs
    3.2KB
  • copa.rs
    2.3KB
  • main.rs
    3.3KB
  • config.rs
    4.1KB
  • transport.rs
    26KB
  • tracer.rs
    18.6KB
  • topology.rs
    3.8KB
  • base.rs
    13.3KB
  • random.rs
    936B
  • simulator.rs
    9.9KB
  • cc.rs
    16.5KB
  • copa2.rs
    8.9KB
  • analysis
  • instant_tcp_design.ipynb
    93.3KB
  • stable_linear_tcp_design.ipynb
    29KB
  • tests
  • scratch.json
    882B
  • test-5.yaml
    957B
  • test-4.yaml
    448B
  • agg.json
    896B
  • test-6.yaml
    530B
  • test-1.yaml
    443B
  • test_cases
  • run_tests.py
    10.1KB
  • Cargo.toml
    411B
  • Cargo.lock
    12.7KB
  • example_config.yaml
    584B
  • README.md
    2.3KB
  • .gitignore
    60B
内容介绍
# cc_sim A discrete-event simulator that allows for rapid prototyping of congestion control algorithms. ## Execution ```rust cargo run --release -- path-to-config-file ``` Release mode is preferred because of its faster execution speed. ## Creating Config Files Our suggestion is to directly create a YAML file following *example_config.yaml*. Another option is to create a config file within Rust. For example, *example_config.yaml* can be created by: ```rust use config::{ CCConfig, Config, ConfigLog, ConfigTopo, DelayConfig, LinkTraceConfig, LogType, SenderGroupConfig, }; use simulator::Time; use base::BufferSize; fn main() { // Four variants of links to choose from let _c_link_trace = LinkTraceConfig::Const(1_500_000.); let _r_link_trace = LinkTraceConfig::Random(RandomVariable { dist: CustomDistribution::Poisson(1_000_000.), offset: 14_000_000., }); let _p_link_trace = LinkTraceConfig::Piecewise(vec![ (1_500_000., Time::from_secs(20)), (15_000_000., Time::from_secs(20)), ]); let _m_link_trace = LinkTraceConfig::MahimahiFile("traces/TMobile-LTE-driving.up".to_string()); // Configure senders let mut sender_groups = Vec::new(); for i in 0..2 { sender_groups.push(SenderGroupConfig { num_senders: 1, delay: DelayConfig::Const(Time::from_millis(50)), cc: CCConfig::AIMD, start_time: Time::from_secs(i * 2), tx_length: TcpSenderTxLength::Infinite, }); } // Create configuration let config = Config { pkt_size: 1500, sim_dur: Some(Time::from_secs(100)), topo: ConfigTopo { link: _r_link_trace, bufsize: BufferSize::Finite(100), sender_groups, }, log: ConfigLog { out_terminal: "png".to_string(), out_file: "out.png".to_string(), cwnd: LogType::Plot, rtt: LogType::Plot, sender_losses: LogType::Ignore, timeouts: LogType::Ignore, link_rates: LogType::Plot, link_bucket_size: Time::from_micros(1_000_000), }, random_seed: 0, }; let config_str = serde_yaml::to_string(&config)?; std::fs::write("config.yaml", config_str).expect("Unable to write to YAML config file."); } ```
评论
    相关推荐
    • rust-soundchange:在 Rust 中实现声音变化算法的工具
      实现声音变化算法的工具。 这是严格按照 Mark Rosenfelder 的建模的,并对 Rust 的宏系统进行了必要的调整。 典型用法及与原SCA规则对比: #[macro_use] extern crate soundchange; #[macro_use] extern crate ...
    • 使用对齐算法比较二进制文件-Rust开发
      为此,它使用了rust-bio库中的生物信息学算法(通常用于DNA序列比对)。 biodiff使用对齐算法比较二进制文件。 这是什么这是用于二进制比较的工具。 该工具能够并排显示两个二进制文件,以便相似的位置在两侧都位于...
    • geo:Rust的地理空间基元和算法
      geo:Rust的地理空间基元和算法
    • freeverb-rs:Freeverb算法Rust实现
      Freeverb算法Rust实现。 关于自由词 Freeverb最初由“ Jezar at Dreampoint”用C ++编写,并于2000年6月发布到公共领域。现在,它已在多种软件的各种版本中广泛使用。 关于freeverb-rs Rust中Freeverb的这种实现...
    • spiril:用于遗传算法Rust
      Spiril是遗传算法的一种实现,该遗传算法用于通过突变和自然选择来获得任务的最佳变量(遗传)。 API使您可以指定一组初始单元,这些单元将充当所有后续单元的原始父级。 单位类型实现适应度函数和繁殖函数,以将新...
    • Rust:在Rust中实现的所有算法
      Rust:在Rust中实现的所有算法
    • redcentipede:Rust 中的遗传算法项目
      Rust 中的遗传算法项目 该项目的概念大量借鉴了。 红蜈蚣的一般博弈论 那里存在: 世界 部分代理 一些资源 时间单位 世界- 世界是一个具有 X、Y 坐标的二维网格。 存在的代理和资源都有一个 X 和一个 Y,它们指的是...
    • metaheuristics-rs:Rust中元算法的实现
      元启发式 Rust中元算法的实现。
    • isosurface:等值面提取的Rust算法
      Rust中实现的等值面提取算法。 包括经典的行进立方体和双重轮廓技术,以及主题上的更多现代变化。 为了教育的目的,每种提取算法的文档都链接到相关的学术论文。 范例程序 cargo run --example sampler将执行采样...