Package | Description |
---|---|
net.i2p.router.transport.udp |
The UDP transport (also known as 'SSU transport') allows passing I2P messages on top of UDP.
|
Modifier and Type | Method and Description |
---|---|
static UDPPacket |
UDPPacket.acquire(I2PAppContext ctx,
boolean inbound) |
UDPPacket |
PacketBuilder.buildACK(PeerState peer,
List<ACKBitfield> ackBitfields)
Build the ack packet.
|
UDPPacket |
PacketBuilder.buildHolePunch(UDPPacketReader reader)
Sends an empty unauthenticated packet for hole punching
|
UDPPacket |
PacketBuilder.buildPacket(OutboundMessageState state,
int fragment,
PeerState peer,
List<Long> ackIdsRemaining,
List<ACKBitfield> partialACKsRemaining)
This builds a data packet (PAYLOAD_TYPE_DATA).
|
UDPPacket |
PacketBuilder.buildPeerTestFromAlice(InetAddress toIP,
int toPort,
SessionKey toIntroKey,
long nonce,
SessionKey aliceIntroKey)
Build a packet as if we are Alice and we either want Bob to begin a
peer test or Charlie to finish a peer test.
|
UDPPacket |
PacketBuilder.buildPeerTestFromAlice(InetAddress toIP,
int toPort,
SessionKey toCipherKey,
SessionKey toMACKey,
long nonce,
SessionKey aliceIntroKey) |
UDPPacket |
PacketBuilder.buildPeerTestToAlice(InetAddress aliceIP,
int alicePort,
SessionKey aliceIntroKey,
SessionKey charlieIntroKey,
long nonce)
Build a packet as if we are either Bob or Charlie and we are helping test Alice.
|
UDPPacket |
PacketBuilder.buildPeerTestToBob(InetAddress bobIP,
int bobPort,
InetAddress aliceIP,
int alicePort,
SessionKey aliceIntroKey,
long nonce,
SessionKey bobCipherKey,
SessionKey bobMACKey)
Build a packet as if we are Charlie sending Bob a packet verifying that we will help test Alice.
|
UDPPacket |
PacketBuilder.buildPeerTestToCharlie(InetAddress aliceIP,
int alicePort,
SessionKey aliceIntroKey,
long nonce,
InetAddress charlieIP,
int charliePort,
SessionKey charlieCipherKey,
SessionKey charlieMACKey)
Build a packet as if we are Bob sending Charlie a packet to help test Alice.
|
UDPPacket |
PacketBuilder.buildPing(PeerState peer)
We use this for keepalive purposes.
|
(package private) UDPPacket |
PacketBuilder.buildRelayIntro(RemoteHostId alice,
PeerState charlie,
UDPPacketReader.RelayRequestReader request) |
UDPPacket |
PacketBuilder.buildRelayRequest(InetAddress introHost,
int introPort,
byte[] introKey,
long introTag,
SessionKey ourIntroKey,
long introNonce,
boolean encrypt) |
UDPPacket[] |
PacketBuilder.buildRelayRequest(UDPTransport transport,
OutboundEstablishState state,
SessionKey ourIntroKey)
build intro packets for each of the published introducers
|
(package private) UDPPacket |
PacketBuilder.buildRelayResponse(RemoteHostId alice,
PeerState charlie,
long nonce,
SessionKey aliceIntroKey) |
UDPPacket |
PacketBuilder.buildSessionConfirmedPacket(OutboundEstablishState state,
int fragmentNum,
int numFragments,
byte[] identity)
Build a new SessionConfirmed packet for the given peer
|
UDPPacket[] |
PacketBuilder.buildSessionConfirmedPackets(OutboundEstablishState state,
RouterIdentity ourIdentity)
Build a new series of SessionConfirmed packets for the given peer,
encrypting it as necessary.
|
UDPPacket |
PacketBuilder.buildSessionCreatedPacket(InboundEstablishState state,
int externalPort,
SessionKey ourIntroKey)
Build a new SessionCreated packet for the given peer, encrypting it
as necessary.
|
UDPPacket |
PacketBuilder.buildSessionDestroyPacket(PeerState peer)
Build a destroy packet, which contains a header but no body.
|
UDPPacket |
PacketBuilder.buildSessionRequestPacket(OutboundEstablishState state)
Build a new SessionRequest packet for the given peer, encrypting it
as necessary.
|
UDPPacket[] |
OutboundMessageFragments.getNextVolley()
Fetch all the packets for a message volley, blocking until there is a
message which can be fully transmitted (or the transport is shut down).
|
UDPPacket |
UDPEndpoint.receive()
Blocking call to receive the next inbound UDP packet from any peer.
|
UDPPacket |
UDPReceiver.receiveNext()
Blocking call to retrieve the next inbound packet, or null if we have
shut down.
|
Modifier and Type | Method and Description |
---|---|
int |
UDPSender.add(UDPPacket packet)
Put it on the queue
|
int |
UDPSender.add(UDPPacket packet,
int blockTime)
Deprecated.
use add(packet)
|
void |
UDPPacketReader.initialize(UDPPacket packet) |
(package private) int |
UDPTransport.send(UDPPacket packet) |
int |
UDPEndpoint.send(UDPPacket packet)
Add the packet to the outobund queue to be sent ASAP (as allowed by
the bandwidth limiter)
|