View Javadoc

1   // Copyright 2003-2005 Arthur van Hoff, Rick Blair
2   // Licensed under Apache License version 2.0
3   // Original license LGPL
4   
5   package javax.jmdns.impl.constants;
6   
7   /**
8    * DNS constants.
9    *
10   * @author Arthur van Hoff, Jeff Sonstein, Werner Randelshofer, Pierre Frisch, Rick Blair
11   */
12  public final class DNSConstants {
13      // http://www.iana.org/assignments/dns-parameters
14  
15      // changed to final class - jeffs
16      public static final String MDNS_GROUP                     = "224.0.0.251";
17      public static final String MDNS_GROUP_IPV6                = "FF02::FB";
18      public static final int    MDNS_PORT                      = Integer.parseInt(System.getProperty("net.mdns.port", "5353"));
19      public static final int    DNS_PORT                       = 53;
20      public static final int    DNS_TTL                        = 60 * 60;                                                      // default one hour TTL
21      // public static final int DNS_TTL = 120 * 60; // two hour TTL (draft-cheshire-dnsext-multicastdns.txt ch 13)
22  
23      public static final int    MAX_MSG_TYPICAL                = 1460;
24      public static final int    MAX_MSG_ABSOLUTE               = 8972;
25  
26      public static final int    FLAGS_QR_MASK                  = 0x8000;                                                       // Query response mask
27      public static final int    FLAGS_QR_QUERY                 = 0x0000;                                                       // Query
28      public static final int    FLAGS_QR_RESPONSE              = 0x8000;                                                       // Response
29  
30      public static final int    FLAGS_AA                       = 0x0400;                                                       // Authorative answer
31      public static final int    FLAGS_TC                       = 0x0200;                                                       // Truncated
32      public static final int    FLAGS_RD                       = 0x0100;                                                       // Recursion desired
33      public static final int    FLAGS_RA                       = 0x8000;                                                       // Recursion available
34  
35      public static final int    FLAGS_Z                        = 0x0040;                                                       // Zero
36      public static final int    FLAGS_AD                       = 0x0020;                                                       // Authentic data
37      public static final int    FLAGS_CD                       = 0x0010;                                                       // Checking disabled
38  
39      // Time Intervals for various functions
40  
41      public static final int    SHARED_QUERY_TIME              = 20;                                                           // milliseconds before send shared query
42      public static final int    QUERY_WAIT_INTERVAL            = 225;                                                          // milliseconds between query loops.
43      public static final int    PROBE_WAIT_INTERVAL            = 250;                                                          // milliseconds between probe loops.
44      public static final int    RESPONSE_MIN_WAIT_INTERVAL     = 20;                                                           // minimal wait interval for response.
45      public static final int    RESPONSE_MAX_WAIT_INTERVAL     = 115;                                                          // maximal wait interval for response
46      public static final int    PROBE_CONFLICT_INTERVAL        = 1000;                                                         // milliseconds to wait after conflict.
47      public static final int    PROBE_THROTTLE_COUNT           = 10;                                                           // After x tries go 1 time a sec. on probes.
48      public static final int    PROBE_THROTTLE_COUNT_INTERVAL  = 5000;                                                         // We only increment the throttle count, if the previous increment is inside this interval.
49      public static final int    ANNOUNCE_WAIT_INTERVAL         = 1000;                                                         // milliseconds between Announce loops.
50      public static final int    RECORD_REAPER_INTERVAL         = 10000;                                                        // milliseconds between cache cleanups.
51      public static final int    RECORD_EXPIRY_DELAY            = 1;                                                            // This is 1s delay used in ttl and therefore in seconds
52      public static final int    KNOWN_ANSWER_TTL               = 120;
53      public static final int    ANNOUNCED_RENEWAL_TTL_INTERVAL = DNS_TTL * 500;                                                // 50% of the TTL in milliseconds
54  
55      public static final long   CLOSE_TIMEOUT                  = ANNOUNCE_WAIT_INTERVAL * 5L;
56      public static final long   SERVICE_INFO_TIMEOUT           = ANNOUNCE_WAIT_INTERVAL * 6L;
57  
58      public static final int    NETWORK_CHECK_INTERVAL         = 10 * 1000;                                                    // 10 secondes
59  
60  }