11 Replies Latest reply on Mar 30, 2010 1:20 PM by Michael Thornburgh

    What does "NetConnection.AddressChange.Notify" mean?

    fmaas@incontext.nl

      Hi,

       

      One of our users gets a response "NetConnection.AddressChange.Notify" after opening the Stratus connection.

      He seems to get this reproducably short after opening the connection.

      What is the purpose and meaning of this event code?

      I wasn't aware of this event code so hadn't catered for it.

      Should I reconnect? Or give up?

       

      - Frans

        • 1. Re: What does "NetConnection.AddressChange.Notify" mean?
          Michael Thornburgh Adobe Employee

          Stratus sends this event if it detects that your (the client's) IP address or UDP port number changed while the connection is up.  this can happen if you are behind a NAT and it reboots or times out your translation, or if your computer actually changes IP addresses (for example, by switching from a wireless to a wired connection, or moving from one LAN to another).

           

          try being connected via wireless, then plug in or unplug your wired network connection, and watch for these events.  you may need to give it several seconds after changing your network for the change to be detected and reported by Stratus.

          • 2. Re: What does "NetConnection.AddressChange.Notify" mean?
            Michael Thornburgh Adobe Employee

            this event is informational, to let you know that an IP address mobility situation has occurred.  it can be ignored (that is, you don't need to reconnect or anything, everything's fine).

            • 3. Re: What does "NetConnection.AddressChange.Notify" mean?
              fmaas@incontext.nl Level 1

              We have a situation where this notification is sent by Stratus to two connected clients each every 90 seconds. Although we can simply ignore these, and it doesn't seem to cause any problems, I still want to let you know that there may be an issue in your software.

               

              The situation is that two clients are connected to the same wireless network router, which is connected to the internet through UMTS.

               

              The two clients constantly have the same network address (192.168.20.100 and 192.168.20.101).

               

              On the outside obviously these two clients show with same public IP address. This IP address is constant over the entire session.

               

              Both clients are in a p2p conversation, which works fine.

               

              But they receive this NetConnection.AddressChange.Notify every 90 seconds.

               

              The events are not received as long as only one client is connected to Stratus. As soon as the second connects, both begin to receive the spurious events.

               

              If these same two clients than switch to another wireless router, which is connected to the internet via a cable modem, these events are not received.

               

              - Frans

              • 4. Re: What does "NetConnection.AddressChange.Notify" mean?
                Michael Thornburgh Adobe Employee

                this event is generated by Stratus only in response to noticing that your address has changed.  your "address" is the combination of IP address *and* UDP port number.  so if your IP address remains the same but your port number changes, you will receive this event.  perhaps when you have two hosts sharing the same connection, the NAT is more aggressive about reclaiming ports or something.  i promise, though, that the server end isn't sending spurious events.

                 

                if you tell us the exact date and time you were connected and saw this, i can examine the logs and confirm what's happening.

                 

                -mike

                • 5. Re: What does "NetConnection.AddressChange.Notify" mean?
                  fmaas@incontext.nl Level 1

                  Thanks Mike. For me this is OK. If it doesn't ring any alarmbells with you, this is just fine.

                   

                  - Frans

                  • 6. Re: What does "NetConnection.AddressChange.Notify" mean?
                    wilhelmlee

                    if two nodes A and B create a NetStream A-B , when the external UDP port of A changed(with NAT gate), the NetStream of B would auto changed the peer's(A) UDP port ? and if A and B would would send heartbeat for every N second for this NetStream ?

                    thank you mike

                    regards

                    -whilehlm

                    • 7. Re: What does "NetConnection.AddressChange.Notify" mean?
                      Michael Thornburgh Adobe Employee

                      RTMFP's IP address mobility can detect and repair this case when possible.  each peer sends keep-alive packets from time to time, so either that or ordinary traffic can trigger session mobility.

                       

                      it's not always possible to repair the session when one end or the other changes.  in certain NAT and firewall situations in which an introducer and UDP hole-punching is necessary to get two peers connected, the connection may not survive an address change.  this is because the introducer is not used again once the P2P connection is established.

                       

                      RTMFP can keep peers talking to each other in many more address change scenarios than TCP can (since TCP handles zero of them). 

                       

                      -mike

                      • 8. Re: What does "NetConnection.AddressChange.Notify" mean?
                        fmaas@incontext.nl Level 1

                        Hi Mike,

                         

                        I think I have a case now where reproducably address changes don't get repaired, so we loose the p2p connection each time. This happens always about 3 to 4 minutes after establishing connection.

                         

                        Same peer ID's are rendered useless. A new connect to Stratus, getting new peer ID's, always works. But just for another 3 to 4 minutes.

                         

                        If you would like to inspect the logs, the following two events were logged:

                         

                        3/30/2010 15:04:55.906 [INFO] StratusProxy NetStream.Connect.Closed
                        3/30/2010 15:04:55.906 [INFO] StratusProxy NetStream.Connect.Closed
                        3/30/2010 15:05:00.546 [INFO] StratusProxy NetConnection.AddressChange.Notify

                         

                        3/30/2010 15:16:03.859 [INFO] StratusProxy NetStream.Connect.Closed
                        3/30/2010 15:16:03.859 [INFO] StratusProxy NetStream.Connect.Closed
                        3/30/2010 15:16:08.750 [INFO] StratusProxy NetConnection.AddressChange.Notify

                         

                        Timestamps are GMT+1 (CET).

                         

                        Any clue? Need more info?

                         

                        - Frans

                        • 9. Re: What does "NetConnection.AddressChange.Notify" mean?
                          Michael Thornburgh Adobe Employee

                          there are too many address change events in my logs to be able to see which ones correspond to these events.  if you can include the peerID or the IP address (the public address as it would appear to Stratus, not inside-NAT) i can search on that.

                           

                          i think you would find the same peerIDs/NetConnections would work again after a few minutes (once the old sessions timed out completely).

                           

                          if you're actively using these connections and your address is changing anyway, then your NAT is really not behaving properly.  and most likely the peer with which you are trying to communicate has a port-restricted or symmetric NAT, and/or a port-specific firewall, so P2P communications won't survive an address change.

                          • 10. Re: What does "NetConnection.AddressChange.Notify" mean?
                            fmaas@incontext.nl Level 1

                            Waiting a few minutes is not really an option.

                            And we would anyway have the same problem again after a few minutes.

                             

                            The peer id's related to the two events:

                             

                            3/30/2010 15:09:25.984 [INFO] TransportProxy Publishing stream 917004073e018ac4eab76d4e4e234b435372d6d97e937a02e1fd357e92e46d1a name = AV696

                             

                            3/30/2010 15:09:25.984 [INFO] TransportProxy Subscribing to stream 8c90c2d2ffb219d6bf8f8876cac8e58d7d871b999b081f75fc8ac6b8edc03656 name = AV341

                             

                            3/30/2010 15:11:02.421 [INFO] TransportProxy Publishing stream 3f76b766e49a52eb9fb13685fdd3f491e8c2e1360afd50f4d91539abe479b2f9 name = AV696

                             

                            3/30/2010 15:11:02.421 [INFO] TransportProxy Subscribing to stream edcb507a21bb8631bd0e94ad485146d7b10ae7ecc76512e9205d7e7659a988c7 name = AV341

                             

                            The client on the other end really is a proper cone nat which never has an issue.

                             

                            The client causing the problem is one behind aThomson gateway. We have configure cone nat as follows:

                             

                            To bind the CONE(UDP) ALG, carry out following command:

                            :connection bind application=CONE(UDP) port=3478

                             

                            Frans

                            • 11. Re: What does "NetConnection.AddressChange.Notify" mean?
                              Michael Thornburgh Adobe Employee

                              (note: i'm hiding the first two octets from your IP address; i'm sure you know what they are )

                               

                              for peerID 917004073e018ac4eab76d4e4e234b435372d6d97e937a02e1fd357e92e46d1a, i see an initial connection from x.x.26.97:56174.  six minutes and one second later, i see an address change to x.x.26.97:56215 (UDP port changed from 56174 to 56215).  the period for keepalive packets is 15 seconds for this connection to the server and 10 seconds to peers, so there was no period longer than 10 seconds with *no* traffic.

                               

                              for peerID 3f76b766e49a52eb9fb13685fdd3f491e8c2e1360afd50f4d91539abe479b2f9, i see an initial connection from x.x.26.97:56265, and six minutes and one second later i see an address change to x.x.26.97:56328 (UDP port changed from 56265 to 56328).  keepalive periods were again set to 15 (C-S) and 10 (peers) seconds.

                               

                              it looks like your NAT is changing your translation at right around 6 minutes even though your connection isn't quiescent.

                               

                              if your peer is behind a well-behaved NAT, then most likely it is a local firewall issue preventing your packets from your new UDP port number from getting through.