Opened 3 years ago

Closed 3 years ago

#1656 closed defect (fixed)

Improve SSU introduction offers

Reported by: zzz Owned by: zzz
Priority: minor Milestone: 0.9.24
Component: router/transport Version: 0.9.21
Keywords: SSU Cc:
Parent Tickets:

Description

ref: http://i2p-projekt.i2p/en/docs/spec/ssu

We have nothing in the SSU session request message for Alice to ask for an introduction tag. Responder Bob in the session created message either sends one or not based on local conditions. This is before the RI exchange so in general Bob doesn't know if Alice needs it.

But Bob could check local netdb to guess. Decision is in EstablishmentManager?.receiveSessionRequest() line 480.

This is important because when a tag was offered by Bob, he keeps connection up for a while in case Alice uses it. Bob doesn't know if he's actually an introducer. Bob will offer to floodfills and others that don't need it. But Alice could transition to firewalled at any time, so perhaps still needs some in reserve. And there are a few firewalled floodfills.

Due to conn limits, introductions aren't offered to everybody, there's a cap, and it's also throttled more when close to conn limits. But this means that firewalled routers (especially new ones) struggle to find introducers which is a major cause of startup troubles. We have too few offers to those that need it and too many to those that don't.

Fixes:

  • Make per-router decisions on whether to offer a tag based on previous RI if any
  • Fix protocol to ask for tag in the session request message, and/or be able to ask and get one later, and/or cancel a tag later
  • Consider allowing floodfills to offer tags again, currently they don't

Subtickets

Change History (4)

comment:1 Changed 3 years ago by zzz

related/dup: #1352 #1465

comment:2 Changed 3 years ago by zzz

  • Milestone changed from 0.9.23 to 0.9.24

comment:3 Changed 3 years ago by zzz

  • Status changed from new to accepted

comment:4 Changed 3 years ago by zzz

  • Resolution set to fixed
  • Status changed from accepted to closed

Implemented in 0.9.24.

Note: See TracTickets for help on using tickets.