TCP/IP protocol implementation in Attain

Dear all, I need explanation how NC_TCP.dll implements TCP/IP stack. We have client-server TCP/IP connection and 256K leased line between offices in two countries. We got very strange situation: low speed on client, only 5-7 4000-byte packages per second using Navision Performance test, and absolutely free channel. Seems, something wrong in the driver program, because two Cisco on both sides adjusted for best performance and compression. How we can impove the performance? Is any software adjustments available? Thanks in advance,

4000 Bytes = 32000 Bits, multiply that by 7 and you get 224000 Bits/Second, pretty close. The only thing you can do to increase the speed is to change some parameters in the registry, especially the receive window size. Check the following web site and follow the recommendations: You can also search the web for “registry tweaks modem”. You may also want to consider using Windows Terminal Services in Windows 2000 and above. This way Navision client runs on Windows 2000 Server itself, and the screen is sent to the client who would be running a program called Windows Terminal Services Client to interact with Navision remotely. This saves in bandwidth. Instead of moving a lot of records across the WAN link when doing a report, only screen updates are sent, and these are a few.

Naji is right. Navision Client generates heavy network traffic, because almost all of the data processing is done on the client side. 256K is not sufficient bandwidth to have a normal working environment when using direct Client To Server Connection. Using Citrix ot even Windows Terminal Services will greatly improve the performance.

Hi, guys. Yes, you are absolutely right that using terminal clients will increase performance. We have office in Finland, and server in Russia. Finnish office need data on their computers, and i’d prefer to increase channel capacity to work as normal client-server. First, i’ve checked if 256Kbps enough for normal operations. We arranged two VLANS in Moscow and cut bandwith up to 256K for modelling. Responce time on client was very reasonable. We have normal Frame Relay channel from Sonera and 40ms as minimal pinging results. Pinging time for 32Byte packets is 320ms. Cisco 1721 and Cisco 805 connected on both sides and maximum compression turned on. I am wondering, why we cannot get normal 4-x compression. The only reason is that Cisco use compression only if channel load close to critical. It means that we have some non-optimal package flow, otherwise we’d see 3-4 time increase. We have standard MTU size and i do not think it will affect. So the question is the same - is any tricks with TCP/IP driver on server possible? Or may be some adjustments with cache? Regards,

I suggest that you use the following program, which monitors TCP/IP traffic and display the packets in real time so you have some idea how much bandwidth you need. Displaying a Customer Card and doing Look-Ups(F5) is very fast in Navision. Navision does not send the whole customer list to the client, only what the user is seeing, when the user presses Page Down, the next group of records are retrieved. Reports are slow, I suggest you try some of them, especially summary and statistics reports.

Yes, i must agrre, at low cost, Terminal Server is an optimal solution. Otherwise, you might consider others, like Cytrix. Definitely, the client-server connection across a wan is deprecable at all. [:p]

OK, Thank you, But i am sure protocol driver is the weak place here. If i will prove it i will let you know. BR.

Yeah, maybe it is weak, but there’s not really anything that you can do about it. There are no “secret miracle settings” which will improve tremendously the speed over a 256kBit connection. You can do the math by yourself. Let say that you can use the whole connection bandwidth which is about 32 KBytes/sec. Let say that the rec size of an entry in the Value Entry is about 0.5 KByte/and it can easily exceed these/. Let the user runs then Item Valuation Report /which actualy passes through all Item Ledger/Value Entries/. Let say you have the minimal case with 20’000 Value Entries /which are not so many - we have clients with well more then 1-2 million Value Entries/ Then there are 20000 * 0.5 Kb = 10 000 Kb divided by max throughput 32kb this equals an approximate of 5 MINUTES, which in terms of performance is a LOT of time for report on 20000 records /and I am not taking into account Item Ledger Entries AND Items, which are processed in this report as well/. The same example is valid for schrolling or searching/filtering on a non-indexed field in the Item List Form -Item Description for example. On a normal 100MBit network, if using full capacity it’ll take less than a second /based on the same calculations/. What I wanted to pinpoint here is that what we are sharing here is mostly got by experience /plus extensive testing and studying various sources of information/ and at least my humble one shows that unless you got minimum 10MBit LAN it is always a good idea to use Terminal Services or Citrix to have a good performance. This proved to be true from ver. Navision Financials 2.0, which was the first time I had to configure and set-up a remote connection and it was quite long ago. In any case good luck.

Connections over WAN have remained the weakest links in our implementations. Bandwidth is expensive in India, there are no benchmarks for bandwidth requirement for each type of Navision transaction and each new prospective client demands advice on bandwidth requirement. We can advice out of experience but since there is no standard data available, lose out to solutions who have benchmarked their requirements and performances. Is there any such benchmark data available anywhere? Thanks in advance Amit

Finally in our case we used Citrix, and i was absolutely satisfied with the results. I think nobody can predict the bandwith needed in Client-server connection, because every self-made report can cause performance problems on client due to non-optimal programming. Plus, point-to-point connection sometimes not configured for best performance by provider. BR

Citrix is the way to go. An average of 19/20 KByte per user should be more than enough for normal operations. After all you’re tranfering only screenshots and keyboard/mouse movements. Worst case will be occasional transfer of a long report, which can slow the things a bit, but nothing serious. …and at the end Navision is not realy the best client/server implementation at all, given that almost all processing and calculations are done on the client side. And especially the MS SQL server optiong which is using exclusively cursors, well known for the their worst performance among all other SQL objects. This is processor, disk and memory consuming thing. Taken this into account plus the limited scaling possibilities - only scaling up (e.g. adding processors, memory and faster drives), and no chance for adding more servers (e.g. scaling out) with the way Navision is developed - this limits quite a lot the opportunities for bigger and more data-intensive implementations.

Please let me clarify, we are usig Citrix, WTS on WAN and Client-Server, WTS on LAN. Performance is still a problem over WAN in most cases. The bandwidth made available has been 64kbps for 3-4 users. Citrix has no data available for Navision though it provides the same for SAP and other major business solutions. Neither is a WTS - Navision study available with Microsoft or MBS. The point is Navision is no longer a single location solution and its functionality can span across locations for Inventory. Navision also is present in huge geographies like India, Brazil, Canada and USA. So a starting point advise or minimum bandwidth requirements for the solution with products like Citrix or say WTS (WTS and Navision is same company now!!)would do much good for people like us. Or Maybe .NET would give the answer.Any inputs? Thanks


Any inputs?

Bandwidth requirement for WTS (or Citrix) are application-independent since only screenshots, keystrokes and mouse movements are actually transmited. The key factor in these environments is # of simultaneous users. Doesn’t matter whether they use Navision, MS Office or Tetris. For WTS, a good rule-of-thumb is around 8-10 KBps (not Kbps) per user, for optimal performance. The system remains useable down to 5 KBps per user. Below that, latency goes sky high and useability drops down. Citrix requirements are somewhat lower, but bandwidth is not that expensive nowadays to justify the extra investment (IMHO). Also, bandwidth availability is not the only factor. Latency is even more important. Even with a full T1 line available, if round-trip times between me and the server are over 250-300ms, I will see a noticeable delay in system response. Santiago