Differences

This shows you the differences between two versions of the page.

Link to this comparison view

content:tech:mdp_port_number [02/05/2014 14:05] (current)
Andrew Bettison created
Line 1: Line 1:
 +====== MDP port number ======
 +
 +[[MDP]] uses 32-bit port numbers to multiplex many different applications and sessions over the packet channel between any two [[mesh network]] nodes.
 +
 +=== Well-known "service" port numbers ===
 +Each service provided over the mesh network is available at its own, fixed MDP port number which is built into the [[Serval DNA]] software.  These numbers are currently assigned by [[:content:dev:Senior developer|senior developers]] on an as-needed basis as new uses of the Serval mesh network are created.
 +
 +Some well-known MDP service port numbers are:
 +  * **1** -- identity management, used for:
 +    * revealing a node's [[SAS]] so that other nodes can send it signed but unencrypted packets
 +    * forcing the node to close (lock) a given [[SID]], which is broadcast by a node immediately prior to unlocking the same SID, to ensure that there are no duplicate identities that could confuse [[mesh routing]]
 +  * **2** -- used by [[mesh routing]] to exchange routing state information between nodes
 +  * **4** and **5** -- used for a [[http://en.wikipedia.org/wiki/NAT_traversal|NAT traversal]] protocol similar to [[http://en.wikipedia.org/wiki/STUN|STUN]]
 +  * **6** -- used by [[mesh routing]] to originate ECHO requests for testing of working links
 +  * **7** -- ECHO service, simply returns the payload to the sender
 +  * **8** -- TRACE service, similar to ECHO but each node traversed appends its [[SID|SID]] to the payload so the originator can discover the route taken
 +  * **10** -- [[DNA]]
 +  * **12** -- [[VoMP]]
 +  * **13** and **14** -- [[Rhizome]] bundle transfer
 +  * **15** -- [[SDS]]
 +  * **16** -- [[Rhizome]] manifest request
 +  * **17** -- [[Rhizome]] sync
 +  * **63** -- no reply
 +
 +=== Temporary port numbers ===
 +Most port numbers used as //source ports// are allocated temporarily, on the fly, by mesh applications that wish to connect to a remote port.  When the application closes the connection, the port number is released and may be re-used by another application. 
  

Login