What's new? 'cFos' ISDN Driver Family --------------------------------------------------------------------------- Legend: * New feature + Minor improvement ! Software-change requires modification of your configuration x Bugfix - Information only Revision history: --------------------------------------------------------- cFos 7.52 build 3065 -- 28-Feb-2008 + cFos now uses less allocations and thus less CPU load. x cFos didn't load under Windows 2000 for PPPoE. Fixed. x Fixed a spurious crash that could happen when connection connections were lost. Thanks to Andreas Mydlarz for the cash dump. x Fixed error in connection report. cFos 7.50 build 3045 -- 18-Jan-2008 * Added rx-priorisation. It works as follows: Each class (high, default, low, lowest) has a weight assigned. Furthermore, all TCP streams are mapped to a certain class (this only applies for bulk data; e.g. ACKs are always sent out in the higher class), according to filter rules. The class weight is used when TCP windows for rx-shaping are computed. A TCP stream with weight 100 gets a window that is about 4 times bigger than a stream with weight 25. This should *usually* translate into more speed on that stream, but not necessarily (e.g. the sending server might not be fast enough). The pre-set weights are: class high -weight 400 class default -weight 100 class low -weight 25 class lowest -weight 6 I.e. regular browser downloads (class default) should get about 16 times the speed than Torrents (class lowest). The weighting needs some time (some seconds) to be through, so a newly created higher-than-average TCP stream needs these seconds to come to full speed. * Now you can set MAXimum rx-speed and tx-speed! Just use "cfo set rx_limit" resp. "cfo set tx_limit ". The value is in bytes as cFos calculates them. This might be up to some percent more than what your software shows you. It's best to look at maxrx resp. maxtxraw ("cfo set maxrx" resp. "cfo set maxtxraw") and then set the limit accordingly. The value is automatically saved. To set no limit, set it to "inf" (like "cfo set rx_limit inf"). The tx_limit is quite accurate, but the rx_limit is only met statistically, i.e. it's possible you receive more than the limit, but shortly afterwards you'll receive less. It is a good idea to give your client one full blast upload and download before setting one of those limits. Otherwise, it will have problems calculating, because it doesn't know the "true" line speeds. * Speeded DSL transmit/receive speed and lowered CPU utilisation. + ctrace.txt is now in UTF-8 coding, but without a byte-order marker at the beginning. Use e.g. notepad for viewing. + Added a way to change and save rtt_tab's. Thanks to Darko Grskovic for inspiration. + Increased way too small buffer limits from 32k to 512k. + Added "cfo ati " command to see the ATIx modem command outputs. and improved ATI7 PPP statistics. + Variable shaper will regain full speed quicker after it slowed down when congestion was detected. + Added "cfo cperf" command to switch on or off class traffic dumping. By setting "cfo cperf on" cFos will dump about once per second how many bytes were sent in what priority class. This can help in testing filter rules or finding performance problems. + When cFos' variable shaper is sending slow because of tx congestion and that congestion goes away, cFos will now return to its old tx speed quicker. + Now UDP checksums are checked as well. + Added "cfo timerstyle" command to query (just "cfo timerstyle"), set "cfo timerstyle " or list supported values ("cfo timerstyle -?"). Changes to timerstyle are only active after a restart of cFos. + Added layer-7 protocols SSL_S_BULK and SSL_C_BULK. Switching of SSL sessions between bulk and regular mode is done automatically based on speed and packet sizes. Added l7-protocol SSH_BULK. SSH sessions are automatically switched to this protocol, if they transfer mostly data in large blocks, so we presume they are doing some file transfer. Thanks to ghorvath for inspiration. + Added gset variable fwlog. Setting it to 0 ("cfo gset fwlog 0 -save") will disable fwlog.txt logging of firewalled packets. Thanks to danny for inspiration. + Straightened evaluation of which filter rules determine the class of a connection. Now rules like -tcp-dport, etc. work as well. The third column of a "cfo filter" output is 'c' for rules that set the class. + Added additional column with MSS to "cfo cons". It is included in "cfo -speed", can be added with "-mss" option and has the column key 'm' for -show, -addshow resp. -sort parameters. Added additional columns for average tcp segment size (ass) to "cfo cons". They are included in "cfo -speed", can be added with "-ass" option and have the column keys 'a' for tx ass and 'A' for rx ass for -show, -addshow resp. -sort parameters. + Now the class of UDP pseudo-connections is displayed, too, when you use "cfo cons -class" or the "current connections" dialog. + Added global option 'relaxed_discr' to relax the check of discriminators of Multilink-PPP (MPPP) bundles. It's set to 1 by default. With this option on, only the class must match, not the whole discriminator. + Now you can display the class most packets of a TCP connection are classified to (higher, high, default, low or lowest). Use "cfo cons -class" or -show:c, -addshow:c or -sort:c options. See other "cons" or "-sort:" entries here in whatsnew.txt for more details. The "current connections" dialog show the class as well. + Added a proper "cfo cons -?" help screen. + New filter rules -tcp-seq and -tcp-cnt to match on bytes of sequence space transmitted or number of packets in this connection, respectively. Thanks to pogowurst for inspiration. + More changes in rx-shaping: cFos should now work much better with very many connections, like with BitTorrent. Please report if it works for you! + Added an experimental new way to detect if cfosdnt.exe is running on "the" console. cfosdnt.exe on "the" console is the one that e.g. loads capi2032.dll and makes it available to kernelmode cfosnt.sys. To use this alternative method, open cfos.ini and in section [cfos] set new_console_detect=1. You need to restart cfosdnt.exe afterwards. x Buttons in the icon skins where not working under Windows Vista. Fixed. x Fixed a skin problem. x Fixed warning that is displayed if too many connections cause rx-shaping to be inefficient. It was displayed regardless of the number of connections. x Fixed a problem where downloads would be slowed too much. Thanks to FR. x FTPS (FTP with SSL, FTP with TLS) command sessions are now identified as FTPCMD in layer-7 detection. Thanks to ghorvath. x Changing l7-protocol priority to "Normal" didn't work. Fixed. x Fixed two possible causes for non-MSS aligned RWINs. x Fixed problems with main_class display. x Fixed a problem under Vista where skin settings would not be written to disk after modification. - Discontinued support of Windows 9x/Me and Windows NT 4.0. Now at least Windows 2000 is required. - FTPDATA protocol can now be set to high or higher priority, regardless of its packet sizes. - Removed tracing of minimal RTT ping packets. - Module "ackfilter" is now disabled by default. Set "ackfilter=1" in section [param] in cfos.ini to enable it again. This does only switch off the filtering of presumably superfluous TCP ACKs, not the regular priorisation of TCP ACKs. cFos 7.20 build 3003 -- 02-Apr-2007 * All cFos executables and drivers are now digitally signed. This is a requirement for Windows Vista x64, but comes in handy for all other operating systems. If you download a version without a digital signature of "cFos Software GmbH" it has been tampered with and is not from us. In that case, download an original version from http://www.cfos.de/download + Added gset variable save_in_session. If set to 0, it will prevent cFos from saving data.ini, budget and traffic stats every 10 minutes. However, ctrace.txt is still saved if output is printed to it. Thanks to Paszczak for the feature request. + Increased time cFos wait for CAPI2032.DLL to load dynamically (if you use -v0 -kr) to 3 seconds, so slow loading LAN CAPIs will have enough time. + When lowering msslimit this is now enforced on existing connections as well. Before that, it only worked on new connections. + Added both media and methods frame_count and cable_mixed. + "cfo perf" output is now scaled with K or M postfixes if values become too high. + Added -dscp filter condition. You can give a range of DSCP values as "-dscp x:y" or a single values like "-dscp x". See RFC2474 for details on DSCP and http://www.cfos.de/speed/documentation/filter_expressions.shtml for details on filter expressions. Thanks to Knarf for inspiration. + Added -dscp option to class command to set a DSCP value to all outgoing packets of a class. See RFC2474 for details on DSCP. + Added parameters to "cfo cons": -time to also show the duration of connections and -addshow:... to also show some columns; columns are selected like with -show. + Changed rx-shaping so that it allows for faster speed recovery when rx speed is too low. + Until now -l7-prot rule didn't accept the protocol "unknown", this has been fixed. Now you can write "filter=-tx -l7-prot unknown -c lowest" to match all packets with no recognised l7-protocol. + cFos now keeps RTTs of each TCP connection. We have to see how useful that turns out to be. View them with "cfo cons -rtt". The column key for rtts is 'i'. + More switches for cfo cons: -win, -all, -speed to add window limit, all variables resp. all speed critical variables to display. x Fixes in rx-shaping for slow speeds (like ISDN). x Fixed a rare problem with license keys when re-installing cFos. x Fix for a crash at deinstallation. x cFos now doesn't CAPI_RELEASE or closes the CAPI at all. This seems to lock up some Vista machines. x Fixed a bug where layer-7 detection sometimes confused http streaming server with client. x Various fixes for Vista: don't display the tip of the day (caused trouble with Windows Defender); fixed key registration problem; fixed missing program names for connections; don't change TcpWindowSize or RWIN parameter (it's no longer supported thanks to TCP/IP auto-tuning). x Fixed dynamic loading of CAPI2032.DLL, which sometimes wasn't working. Thanks to Günter Niedermeier. x Trace output of process names for some OSes was trashed. Fixed. x Sometimes not all settings were loaded from DATA.INI when a port was opened. Fixed. x Fixed a problem where V.110 and V.120 would not be available when CAPI2032.dll was used. Thanks to Olaf Krebs. x Upload speed was sometimes too low when low-latency mode was activated. Fixed. x Fixed IP checksum check, which sometimes let packets with bad IP checksums pass. This bug was introduced in build 7.05.2990. x Fixed a rare crash in DSL reception code. Thanks to Novad Protikin for the dump file. - When connecting to the Internet with DSL the default setting of S83 (PPP LCP Echo-Req generation timer) is now 0, i.e. the Echo-Req generation is switched off. If you want to switch it back on, just add some extra initialisation string like "ATS83=5 S84=24". - Again a hint to heavy downloaders: limit the number of your download connections. This ensures more stable download rates and in the end faster downloads. 20-40 seems to be a good value. - cFos now accepts new language files: just place a file named cfosml_XX.txt (replace XX with some language abbreviation) into cFos' homedir. Set the #language of that file to a yet unused number. In CFOS.INI, set the fulllangid key in the [cFos] section to that number and restart your computer (or only cfosdnt.exe). - TCP window size is now adjusted to allow 25 Mbit/s downloads. cFos 7.04 build 2968 -- 30-Aug-2006 x New cFos installations had empty settings.hta dialog. Fixed. cFos 7.02 build 2967 -- 28-Aug-2006 + Added display of budget level in skins that support it. + Added context menu entry to switch latency setting. + cFosSpeed default skin now has a nice explanatory "panel" that pops up when you hover over one of the active areas. + Recoded RX (downstream) traffic shaping. This should help especially BitTorrent users with improved download speed and better ping times. To further increase your download speed, limit the number of receiving connections. 400 seem to be normal with Azureus, but 50 result in better download speed. This fix could as well help users that had the effect of dropping TX rates over time. + RX (downstream) traffic shaping can now be switched on or off by setting "cfo gset rx_shape 1" resp. "0". In the same way traffic shaping can now be totally switched on or off by setting "cfo gset shape 1" resp. "0". + "cfo cons" output can now be sorted and only specific columns can be printed. Use -sort: to sort and -show: to specify the columns to be printed. Column keys are case significant. -noudp and -notcp will not print UDP resp. tcp connections. Column keys are: p Protocol (TCP or UDP) (only display, no sort) l Local IP:port number o Remote IP:port number g Program name 7 L7-protocol r RX volume t TX volume R Current RX speed T Current TX speed d Duration of connection - To reverse the sorting order Example: "cfo cons -sort:-d -show:lod -noudp" shows all TCP connections and displays local and remote IP:ports and their connection time, oldest first. + HTA dialogs are now existent only once and pull their language specific texts from the regular ml-file cfosml.txt. Translators now only have to translate cfosml.txt and no longer work on the HTA files as well. Dialogs are available in all our previously supported languages, which are: German, English, Spanish, Hungarian, Turkish and traditional Chinese. + "Current Connections" has a new design and can now be sorted. + Added "medium /?", "set medium /?" and "set method /?" with a list of available settings. x cFos runs now under Vista x64. Thanks to Paul Mercer for his help. x Small HTA fixes for IE7. x Settings entry in context menu is now again visible under Win2000. x Fixed an endless loop when changing firewall setting (through command line or 'Settings' menu). x Fixed dump_sessions 4. Thanks to martin winkler. :) x Now cFos properly distinguishes between http media downloads and streamed plays. x Fixed Kademlia detection. - Switched off tooltip display for skin windows. - Status windows show speeds now based on transmitted IP packet volume. Thanks to Vigil for inspiration. - Context menu entries "Clear calibration data" and "Send calibration pulse" are now reduced to one entry. cFos 7.00 build 2944 -- 31-May-2006 * Major feature: Added Protocol Layer 7 Detection. From now on, cFos analyzes traffic based on the transferred data rather than the port number used. This gives cFos precise traffic analysis capabilities and thereby allows you fine-grained control over your traffic. cFos detects the following protocols: Commonly used: HTTP, FTP, POP3, SMTP, IMAP4 Voice-over IP: RTP, RTCP, SIP Special protocols: Telnet, SSH, SSL, IRC, DNS, (S)NTP, RPC Filesharing: eDonkey, Kazaa, Bittorrent, Kademlia, Gnutella(2), Direct Connect Streaming Media: HTTP-Streams with various Media-Players and RTSP For each protocol cFos distinguishes between client and server mode. All protocols can be prioritized individually. In addition there is a "Connections console" giving you real-time information about the current connections and their detected protocols. User data of these connections can also be recorded into a log file for analysis, see session dumping below. As a by-product you can now use internet connection sharing to connect several computers to the Internet and still have e.g. filesharing traffic prioritized low. The next major release will have additional bandwidth negotiation for multiple PCs connected to a single router. * New Technology: cFos is now available as 64-bit version for Windows XP x64 Edition. Driver, Status Window and Setup are true 64-bit programs! The 64-bit version has all the features of the 32-bit version. ISDN support works with CAPI2064.DLL and kernelmode CAPI. * Added support for ISDN. From now on ISDN users also benefit from cFos Traffic Shaping! This makes your ISDN connections more responsive by reducing ping times. All the advantages of the broadband Traffic Shaping are now available for ISDN. * cFos is now able to traffic shape VJ-compressed connections as well. * Added UDP pseudo-connection tracking. UDP packets between two peers are believed to belong to the same connection if they arrive less 10 seconds apart. The pseudo-connections are displayed under "cfo cons" as well. The timeout can be adjusted by the udp_timeout gset variable (the variable is in milliseconds). * Added session dump: you can now dump TCP sessions and UDP pseudo-sessions in their own files. This way you can have all packets of one session in one file (and not more). Activate it with "cfo gset dump_sessions 2" and switch on TCP payload dumping with "cfo gset dump_tcp_data 1" (without TCP data dumps there won't be anything interesting for us to see). The maximum file size is set to 100k, if you want to change it use "cfo gset max_session_dump_size 200k" (change "200k" to your liking). All in one line that is: cfo gset dump_sessions 2; gset dump_tcp_data 1 "cfo gset dump_sessions" accepts the following values: 0 don't dump sessions 2 dump, but delete dump file if there was no data except TCP SYNs 3 dump like 2, but delete also if l7-protocol is known. 4 dump and never delete dump file + Azureus.exe has been added to program prios. Unfortunately, the new Azureus release uses encryption which makes detection hard. Therefore, these streams are not yet detected by our layer7 detection. + Protocols and programs that are set to "normal" prio are not matched at all (since there is no longer a filter rule for normal prio). Especially, packets of protocols that are set to normal can be matched by later program filters (usually protocols are matched first and only if no match was found, programs are matched). + Added "cfo fstat" command to display which filters matched how often. Use it to check if your filters are working. "cfo fstat -clear" clears the stats. + Added traditional chinese and turkish HTA dialogs. + Added "click-through" mode to skin windows. If you activate it, mouse clicks are processed by the window beneath the cFos skin window. + Added support for dynamic loading of CAPI2032.DLL. Also, cFos will now try to load CAPI2032.DLL when you open a port if it could not be loaded earlier. + Added new skin variable "latency_mode" and a new action to execute cfo commands via skin buttons. Thus our skins now allow you to switch to low latency mode. The additional variable "latency" indicates if low latency mode is actually on. + Added new cfo command "cfo connections" or "cfo cons". This will show a list of all tcp connections with traffic, uptime and program, one per line. + Now tray icons are re-displayed after explorer restarts. + Errors while doing a "cfo reload" are now printed on the console as well (not only to the ctrace.txt file). + The new gset parameter "strict_rtp_check=0" in the [Param] section of cfos.ini can now turn off strict checking of RTP packets. With strict checking RTP packets must contain a source ID, previously introduced by a corresponding RTCP packet. Disable this check if you use Voice over IP Software which doesn't generate RTCP packets, like VoIPBuster. Default is 1 (enabled). + Better ping times in "Favour Ping Time" mode, since we limit the MSS there to 536 bytes, if your connection is slower than about 20-30 kb/sec. + Rx shaping should more smooth now, i.e. you should experience less fluctuations in the ping time. + Improved accuracy of downstream speed calculation. + "method" set variable can now be entered and displayed symbolically. + Added IP fragmentation support. + Better Multilink PPP support, now fully supports MP fragmentation and VJ compression. + Reintroduced TCP checksums: if a packet doesn't check out, it will be ignored by cFos. + Added -mp-header, -mp-begin, -mp-end filter, -mp-frag, -rand rules. See filter_expressions.txt for details. + The rule that caused a packet to be dropped is now printed to FWLOG.TXT. + Some internal changes and speed improvements. + Added "cfo dump ip" to dump IP packets (possibly fragmented, but after MP-reassembly and VJ-decompression) and "cfo dump ipr" to dump IP datagrams (after IP reassembly) when they are handled by cFos. + AT&F now reads its settings from cfos.ini section factory (if existent). AT&WF can be used to write this section. AT&F1 can be used to really reset to internal "factory" defaults. + Increased number of internal buffers for PPPoE. This should fix "Internal structures full" messages in ctrace.txt. + Added differential statistics to "cfo pingstat". The numbers in brackets are the counts starting after the last time a ping worked. This should help diagnose problems where pings work but at some time stop doing so. + TCP RWIN is now set so that DSL-6000 (and other 6mbit fast connections) will work with full speed. Thanks to graf for the hint. + New S76=2 setting allows you to set ISDN protocol for incoming calls regardless of LLC/HLC signalling. + Fixed problems with HTA dialogs related to registry permissions. + "cfo cstat" now shows txspeed and max_queue_size as well. + Added modem command AT#L to simulate a login event for test purposes. + cFos now handles (i.e. mainly ignores) the GSM AT commands +CBST, CPIN and +CREG. + TCP data retransmissions of packets that are still queued are no longer sent out. This can save some 1% tx volume. + Improved the way ping messages are sent out. This helps the shaping algorithm to run more smoothly. x Fixed a bug where PPPoE login would not work reliably when more than one PPPoE server answered. x Fixed a rare problem where cFos would not detect incoming calls. x Changes to fix problems when displaying taskbar icon. x Fixed a rare crash. x Fixed a semi-rare crash. x Another fix for VJ-compression in only one direction was needed. x Fixed a crash when VJ-compression was used in only one direction. x Fixed problem with missing import for certain NT4 systems. x Shaping is now only activated when it is switched on in feature setup (i.e. if -x80 is set to something other than zero.) Until now, even with -x80=0 a connection listed under [connections] in cfos.ini would have been shaped. x Now tcp_warn and strict_mp switches are properly read from [Param] section of cfos.ini and properly inited. x Fixed a problem where .ini files could not be accessed due to sharing violations. x Fixed a rare UNEXPECTED_KERNEL_MODE_TRAP crash. Thanks to Samuel Lee for a minidump and testing. x On connections with low-downstream bandwidth rx shaping might have taken some seconds to effectively kick in. Fixed. x Too many packets were logged to FWLOG.TXT. Fixed. x Final fix for that RTP crash. Thanks to Armin Schöffmann for testing. x The cFosSpeed-style skins in cFos didn't show the red arrows that indicate incoming data. Fixed. Thanks to Joshua Lee for the report. x It seems that some routers reassemble TCP streams. This resulted in some unwanted "method 1 to 2" switches. Fixed. x Fixed a bug that caused the ACK-filter to filter way too many ACKs, thus degrading download performance. Thanks to AlexV for his help. x Fixed a missing external "SHGetSpecialFolderPathW under NT4. x Fix which prevents RINGING indication on already used COM ports. x Fixed a spurious crash. Thanks to Dirk Schoen for his help. x Fixed DSL code for the detection of network cards. This should fix problems users were having in connecting with nForce 4 cards. x The burst code should be more stable now. x cFos sometimes waited a longer time for CAPI messages than needed. This may have slowed communications on many ports simultaneously. Thanks to Frank Auerswald for testing. x Fixed an occasional crash at shutdown when data kept pouring in. x Fixed a bug which could result in wrong amounts of "Segments w/o connection". This could have been the cause for processes sending too fast, even with low(est) priorisation. x Fixed some more "unverified RST" warnings. Strange TCP segments travel the Internet! :) - Removed filter_expressions.txt from distribution. See http://www.cfos.de/speed/documentation/filter_expressions.shtml instead. - Firewall can now be switched on/off in context-menu > settings while cFos is running. - Tracing is now on by default, i.e. there is always a CTRACE.TXT file created with some basic info on your system and connections. If you are reporting bugs, please attach this file to your mail. - Changed speed reported to Windows on PPPoE connections to 100 mbps. - New design of HTML files. cFos 6.10 build 2875 -- 07-Jul-2005 ... If you're interested in even older history, get it from our FTP server as CFOSHIST.ZIP. ------------------------ End of file ---------------------------