Skip to content

Refactor/fix tracker #76

@rmarx

Description

@rmarx

Large parts needs to be refactored/fixed, this issue is just a list of things that need to be done, more or less in order of importance:

Main:

  • Flow control: most pressing, doesn't really work atm. Make it composition instead of inheritance based, rename variables, make sure we only flow-control the things that need to be flow controlled, revisit _BLOCKED frame generation logic, etc.
  • ACK packets create a BigNum instance for each included packet number, which gets slow quickly. Works with ranges and see if string comparisons aren't faster (oh the irony)
  • Logging: move everything from VerboseLogging to this.logger. Remove dependeny on log4js. Allow passing parameters instead of having to stringify everything.
  • Command line parameters: properly named parameters and other high-level switches through environment vars

Additional:

  • Aead: move everything inside the CryptoContext instead of with separate functions: lots of duplicate code there (but beware: lots of small discrepancies as well!)
  • Loss detection and retransmission logic: we retransmit too soon, too often
  • Congestion control logic: somehow our cc window never goes up again after failing once
  • Packet flow: how packets are created and how/where we currently call connection.sendPackets is -not proper-
  • Frame encode/decode: either all in the frame-specific classes, or all in the factory, not both!
  • Experimentation code in congestion controller: move to dynamic packet pipeline.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions