How to insulate the client from poor network reliability?

We are developing some in-house ERP applications, that will use an WinForms UI and an IIS-hosted Web Service.  The clients will be using a wireless network that is prone to alot of interference.  I wish to ensure that the request and response are not corrupted due to network interference.  What would be the best way to accomplish this

I imagine some form of checksum on the SOAP messages would suffice.  Is something like this built into web services via VS 2005   If not and I have to implement it myself, what would be the best way to go about accomplishing this

FYI, I am accessing the web services via a proxy class generated from wsdl.exe utility.  The web services are implemented as ASMX services via the [WebMethod()] attributes in VS.



Answer this question

How to insulate the client from poor network reliability?

  • JEEA

    Another contributing factor may be that the client device is mobile, and although it should always be using the one access point that is closest to it, as it moves around it may be trying to switch to a different access point.  I don't know the nitty gritty of how this works, but I would assume a new TCP connection would be negotiated when this happens.
  • niceguysfinishlast

    As you noted, you may want to post this specific question about SOAP to the Web services forum. 

  • CLM10270

     Mike Flasko wrote:
    As noted above, TCP/IP takes care of lost or corrupt packets for the lifetime of a TCP connection.  That said, if the TCP connection gets dropped due to some extended outage (ex=unplug a network cable) then TCP will not be able to recover for you.  In such a case, I believe you would have to implement some form of payload verification. 

    Yes that's what I thought.  Does SOAP have any mechanism to do this built-in   What would be the best way to do this   (this might be better answered in the Web Services forum where it was originally posted).


  • Sherif Allam

    As noted above, TCP/IP takes care of lost or corrupt packets for the lifetime of a TCP connection.  That said, if the TCP connection gets dropped due to some extended outage (ex=unplug a network cable) then TCP will not be able to recover for you.  In such a case, I believe you would have to implement some form of payload verification. 

  • Qsac

    I think some of this is done for you already.

     

    as I recall from the whole OSI model and how TCP/IP works the folllowing things apply:

    1)  HTTP is based on TCP

    2) TCP ensures that packets are delivered and will re-send packets not ack'ed by the reciver.

    3) TCP / HTTP packets have seqence numbers to order them and I think they also have a checksum along with packet size and that is all at the TCP layer.

     

    so I think you will be more concerned with losing the HTTP connection / the WiFi connection than the data beeing corrupted.


  • RameshPa

     Mike Flasko wrote:
    As you noted, you may want to post this specific question about SOAP to the Web services forum. 

     

    Alright, I'll repost a new thread in web services.  One more quick question though.  Would the client moving from one wireless access point zone to another cause the tcp connection to drop


  • _Damir_

    That's what I thought too, but I have an ASP.Net web application that is occassionally receiving incomplete HTML pages from the server (only happens when accessing over the wireless network).

    I am assuming this is because the TCP connection is being dropped entirely and a new connection is renegotiated.  I'm thinking that when this happens TCP can no longer ensure reliable and complete delivery of the message, so that will need to be implemented at a higher level (eg. HTTP or SOAP).

    If I'm wrong about this please correct me, or let me know what you would do in this scenario

    Thanks,

    Dylan


  • Oran Dennison

    I think your question might be better answered in the Networking web forum, so I'm moving this thread there.

    Daniel Roth



  • How to insulate the client from poor network reliability?