[maven-release-plugin] prepare release nl.openfortress.socket6bed4-0.2.3
[socket6bed4] / README
1 Socket6bed4 README
2 ==================
3
4 Socket6bed4 is a Java package that introduces an IPv6 tunnel as a socket subclass.
5 There is no need to configure anything, just adapt your datagram factory to the
6 new tunnel and you will be able to use IPv6.
7
8
9 Purpose
10 -------
11
12 Java is used in many places, including some that will remain IPv4-only for years
13 to come.  The 6bed4 tunnel is a zero-config tunnel that eliminates dependency on
14 your ISP so you can assume that IPv6 is always available.  Or better even, you
15 can distribute Java software that is IPv6-only by using 6bed4 as a fallback for
16 users that don't have native IPv6 yet.
17
18
19 About 6bed4
20 -----------
21
22 The design of 6bed4 is intended to support zero-config operation.  You are welcome
23 to setup your private 6bed4 server though; it will still be able to communicate
24 with the rest of the IPv6 world, native as well as 6bed4.
25
26 The design of 6bed4 also explicitly supports peer-to-peer communication.  It will
27 attempt to setup direct links between clients, which are therefore referred to as
28 peers instead of clients.  The tunnel server is a fallback service, and will only
29 be used in practice if a symmetric NAT is used anywhere between the peers.  This
30 means that 6bed4 is suitable for realtime media streaming between directly
31 connected peers.  The disadvantages of IPv4 are not transferred to IPv6 through
32 this tunnel mechanism!
33
34 Until 6bed4 is a formal IETF standard, something that we are indeed working
35 towards, there is a serious chance that the addresses used will change in the
36 future.  This means that you should keep an eye on such changes and keep the
37 software using 6bed4 up to date.  To help you with that, announcements of
38 such an infrastructural nature are sent to an extremely low-traffic list,
39
40 https://lists.sourceforge.net/lists/listinfo/tun6bed4-infra
41
42 More information about the 6bed4 tunnel is concentrated at
43
44 http://devel.0cpm.org/6bed4
45
46 Specifically for this module, you will find information on
47
48 http://devel.0cpm.org/6bed4/java-socket6bed4
49
50
51 Using Socket6bed4 on a peer or client
52 -------------------------------------
53
54 We prefer to speak of 6bed4 endpoints as peers, rather than clients.  This is to
55 emphasise that they are normally connected to each other, instead of to an
56 intermediate server.
57
58 Peer use of 6bed4 is straightforward.  You should adapt the code that generates
59 your DatagramSocket to create an instance of nl.openfortress.DatagramSocket6bed4
60 instead.  That's all.  If you are already using a factory, you have to do this in
61 one place only.
62
63 If you have access to a native IPv6 address, you probably want to prefer using
64 that.  We will not enforce that however -- as we can imagine that you would want
65 to run native IPv6 and 6bed4 in parallel, to approach other 6bed4 peers in
66 parallel with yours.
67
68
69 Using Socket6bed4 on a server
70 -----------------------------
71
72 Every run of Java will normally create a different IPv6 address.  This address
73 contains the external IPv4 address and UDP port for use with the server.  These
74 will change every restart of the Socket6bed4 stack, so a server-side address
75 would not be fixed.  This may present a problem; let us know if this is important
76 for you.
77
78
79 Feedback
80 --------
81
82 We would like to hear what you use Socket6bed4 for.
83