Forum Discussion

AA_2646's avatar
AA_2646
Icon for Nimbostratus rankNimbostratus
Apr 28, 2009

F5 and NetTcpBinding (WCF)

I have WCF service, which uses NetTcpBinding.

 

 

If I by-pass F5 and directly go to Application server, the response is much faster.

 

 

But if I use F5 (Virtual IP) to route my request to one of the application server, then there is significant time delay (close to 1000 millisecond).

 

 

 

Any ideas?

9 Replies

  • What kind of virtual server do you have defined to pass the traffic? Can you post an anonymized copy of the config by running 'b VIP_NAME list'? If you capture a tcpdump of the client and server side traffic, where is the latency being introduced? You can get tips for using tcpdump by searching for this term on AskF5.com.

     

     

    Aaron
  • Aaron, what you asked is difficult for me to get, as I work for application development and do not have any control over network administration.

     

     

  • I think you'll need to have someone who has admin access to the BIG-IP help troubleshoot the issue with you.

     

     

    Aaron
  • NB to LTM. Trying to get my Web App using NetTCP to WCF.

     

     

    I'm getting this error.

     

     

    13:16:30.896814 802.1Q vlan4094 P0 10.35.53.72.57622 > 10.35.53.60.9000: . ack 4143693100 win 64240 (DF)

     

    13:16:30.896814 802.1Q vlan4094 P0 truncated-ip - 16 bytes missing! 10.35.53.72.57622 > 10.35.53.60.9000: P 0:82(82) ack 1 win 64240 (DF)

     

     

    Any help in setting up the LTM to pass nettcp much appreciated.
  • I think that message is just from tcpdump because the snaplength (length of the packet to capture) was smaller than the packets being sent (Click here -> Click here). You can add a -s 0 flag to the tcpdump command to capture the full packet size. In general, you can try searching AskF5.com for error messages you see on an F5 product. If you don't find anything there, try a search engine as it might be a non-F5 component.

     

     

    Aaron
  • Aaron,

     

     

    How do I setup F5 LTM to pass NetTCP binding traffic?
  •  

    Aaron,

     

     

    I found the following at http://msdn.microsoft.com/en-us/library/ms730128.aspx

     

    Would you like to comment??

     

     

     

    Load Balancing the Net.TCP Binding

     

     

    The NetTcpBinding can be load balanced using IP-layer load balancing techniques. However, the NetTcpBinding pools TCP connections by default to reduce connection latency. This is an optimization that interferes with the basic mechanism of load balancing. The primary configuration value for optimizing the NetTcpBinding is the lease timeout, which is part of the Connection Pool Settings. Connection pooling causes client connections to become associated to specific servers within the farm. As the lifetime of those connections increase (a factor controlled by the lease timeout setting), the load distribution across various servers in the farm becomes unbalanced. As a result the average call time increases. So when using the NetTcpBinding in load-balanced scenarios, consider reducing the default lease timeout used by the binding. A 30-second lease timeout is a reasonable starting point for load-balanced scenarios, although the optimal value is application-dependent. For more information about the channel lease timeout and other transport quotas, see Transport Quotas.

     

     

    For best performance in load-balanced scenarios, consider using NetTcpSecurity (either Transport or TransportWithMessageCredential).

     

  • In regards to the following at http://msdn.microsoft.com/en-us/library/ms730128.aspx

     

     

    I would also be interested in your comments. Does the F5 support nettcp based load balancing the same way, or similar to, NLB? Do the lease timeouts work if the F5 is in control of the underlying connections? Are sessions supported effectively creating "sticky" endpoint for the calling client?

     

     

    please advise,

     

    Thanks.

     

    Tim

     

  • We have the same Problem.

     

    It takes 400 ms, when we use the F5.

     

     

    We switched the Virtual Server from Type Standard to Performance (Layer 4).

     

    Now it es nearly as fast as the Nodes.

     

     

    What we didn't fix is a health monitor for NetTcpBinding.

     

    tcp works, but does only recognice when we block that port in the firewall.

     

     

    We could stop the Pool or the IIS (7.5) site, tcp doesn't recognice that.

     

     

     

    Any idea?