communication breakdown led zeppelin
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 787
Internet Communications Engine 3.2
Internet Communications Engine is a modern object middleware solution. more>>
Ice, the Internet Communications Engine, is middleware for the practical programmer. A high-performance Internet communications platform, Ice includes a wealth of layered services and plug-ins. Ice means simplicity, speed, and power.
Ice is available under the terms of the GNU General Public License (GPL). Commercial licenses are available for customers who wish to use Ice with proprietary products. Please contact sales@zeroc.com for more information.
Ice is currently available for C++, Java, C#, Visual Basic, Python, and PHP, and is supported on various operating systems. Additional operating systems and languages will be supported in future releases.
Ice consists of the following packages:
Slice The Specification Language for Ice. Slice establishes a contract between clients and servers, and is also used to describe persistent data.
The Slice Compilers Tools to compile from Slice into target languages, such as C++ and Java, or to automatically generate documentation from Slice files.
Ice The Ice core library. Among many other features, the Ice core library manages all the communication tasks using a highly efficient protocol (including protocol compression and support for both TCP and UDP), provides a flexible thread pool for multi-threaded servers, and additional functionality that supports extreme scalability with potentially millions of Ice objects.
IceUtil A collection of utility functions, such as Unicode handling and thread programming. (C++ only.)
IceBox An application server specifically for Ice applications. IceBox can easily run and administer Ice services that are dynamically loaded as a DLL, shared library, or Java class.
IcePack A sophisticated server activation and deployment tool. With IcePack, the complex task of deploying applications in a heterogeneous computer network is dramatically simplified. Simply write a deployment descriptor in industry-standard XML, and IcePack handles the rest.
Freeze Freeze provides automatic persistence for Ice servants. With just a few lines of code, an application can incorporate a highly-scalable evictor that efficiently manages persistent objects.
FreezeScript It is common for persistent data types to change, especially in large software projects. In order to minimize the impact of these changes, FreezeScript provides inspection and migration tools for Freeze databases. The tools support an XML-based scripting capability that is both powerful and easy to use.
IceSSL A dynamic SSL transport plug-in for the Ice core. It provides authentication, encryption, and message integrity, using the industry-standard SSL protocol.
Glacier One of the most difficult challenges for object middleware systems is security and firewalls. Glacier, the firewall solution for Ice, greatly simplifies the deployment of secure applications. Glacier authenticates and filters client requests and allows callbacks to the client in a secure fashion. In combination with IceSSL, Glacier provides a powerful security solution that is both non-intrusive and easy to configure.
IceStorm A messaging service with support for federation. In contrast to most other messaging or event services, IceStorm supports typed events, meaning that broadcasting a message over a federation is as easy as invoking a method on an interface.
IcePatch A patching service for software distributions. Keeping software up-to-date is often a tedious task. IcePatch automates updating of individual files as well as complete directory hierarchies. Only files that have changed are downloaded to the client machine, using efficient compression algorithms.
Enhancements:
- Various additions, including redundant IceGrid registries.
<<lessIce is available under the terms of the GNU General Public License (GPL). Commercial licenses are available for customers who wish to use Ice with proprietary products. Please contact sales@zeroc.com for more information.
Ice is currently available for C++, Java, C#, Visual Basic, Python, and PHP, and is supported on various operating systems. Additional operating systems and languages will be supported in future releases.
Ice consists of the following packages:
Slice The Specification Language for Ice. Slice establishes a contract between clients and servers, and is also used to describe persistent data.
The Slice Compilers Tools to compile from Slice into target languages, such as C++ and Java, or to automatically generate documentation from Slice files.
Ice The Ice core library. Among many other features, the Ice core library manages all the communication tasks using a highly efficient protocol (including protocol compression and support for both TCP and UDP), provides a flexible thread pool for multi-threaded servers, and additional functionality that supports extreme scalability with potentially millions of Ice objects.
IceUtil A collection of utility functions, such as Unicode handling and thread programming. (C++ only.)
IceBox An application server specifically for Ice applications. IceBox can easily run and administer Ice services that are dynamically loaded as a DLL, shared library, or Java class.
IcePack A sophisticated server activation and deployment tool. With IcePack, the complex task of deploying applications in a heterogeneous computer network is dramatically simplified. Simply write a deployment descriptor in industry-standard XML, and IcePack handles the rest.
Freeze Freeze provides automatic persistence for Ice servants. With just a few lines of code, an application can incorporate a highly-scalable evictor that efficiently manages persistent objects.
FreezeScript It is common for persistent data types to change, especially in large software projects. In order to minimize the impact of these changes, FreezeScript provides inspection and migration tools for Freeze databases. The tools support an XML-based scripting capability that is both powerful and easy to use.
IceSSL A dynamic SSL transport plug-in for the Ice core. It provides authentication, encryption, and message integrity, using the industry-standard SSL protocol.
Glacier One of the most difficult challenges for object middleware systems is security and firewalls. Glacier, the firewall solution for Ice, greatly simplifies the deployment of secure applications. Glacier authenticates and filters client requests and allows callbacks to the client in a secure fashion. In combination with IceSSL, Glacier provides a powerful security solution that is both non-intrusive and easy to configure.
IceStorm A messaging service with support for federation. In contrast to most other messaging or event services, IceStorm supports typed events, meaning that broadcasting a message over a federation is as easy as invoking a method on an interface.
IcePatch A patching service for software distributions. Keeping software up-to-date is often a tedious task. IcePatch automates updating of individual files as well as complete directory hierarchies. Only files that have changed are downloaded to the client machine, using efficient compression algorithms.
Enhancements:
- Various additions, including redundant IceGrid registries.
Download (15MB)
Added: 2007-03-30 License: GPL (GNU General Public License) Price:
941 downloads
SAP R/3 Communications Suite 0.9 Beta1
SAP R/3 Communications Suite allows SAP R/3 servers to communicate with external devices such as fax and GSM modems. more>>
SAP R/3 Communications Suite allows SAP R/3 servers to communicate with external devices such as fax and GSM modems by sending and receiving a fax or SMS.
SAP R/3 Communications Suite provides an easy configuration through a Web interface and a JMX console.
<<lessSAP R/3 Communications Suite provides an easy configuration through a Web interface and a JMX console.
Download (28.6MB)
Added: 2006-07-28 License: GPL (GNU General Public License) Price:
702 downloads
Buni Meldware Communication Suite 1.0M8-final
Buni Meldware Communication Suite (MCS) is a platform-independent groupware package. more>>
Buni Meldware Communication Suite (MCS) is a platform-independent groupware package consisting of:
- Meldware Mail
- Meldware Calendar
- Meldware Webmail
- Meldware Secure Administration System
Together the package provides support for thousands of users concurrently to send and receive email and to schedule meetings. MCS uniquely allows you to store all messages and scheduling events in nearly any database and runs on nearly all popular software and hardware platforms.
MCS commitment to platform and database agnosticism aims to meet increasing business requirements to maximize ease and flexibility of managing and accessing data as well as putting a premium on interoperability.
Additionally, while the scheduling and calendaring services can be installed separately, the integrated feature set provides both a distinctive and powerful experience to both users and server-side Mail Based Applications and Collaboration Based Application Services.
The MCS platform provides security integration using LDAP sources including Microsoft Active Directory as well as flat-file and database sources.
Additionally, extensible security allows custom authentication/authorization sources.
Enhancements:
- This is the first milestone release with WCAP, freebusy for webmail, and mature IMAP all together.
- It has undergone extensive hardening, dogfooding, and QA testing.
- The WCAP protocol for calendaring now works well for Thunderbird and Lightning 0.3.
- Webmail calendaring was greatly improved.
- The abillity to download attachments has been added to the webmail interface.
- Numerous performance improvements have been made in SMTP, IMAP, and MIME parsing since 1.0-M7.
<<less- Meldware Mail
- Meldware Calendar
- Meldware Webmail
- Meldware Secure Administration System
Together the package provides support for thousands of users concurrently to send and receive email and to schedule meetings. MCS uniquely allows you to store all messages and scheduling events in nearly any database and runs on nearly all popular software and hardware platforms.
MCS commitment to platform and database agnosticism aims to meet increasing business requirements to maximize ease and flexibility of managing and accessing data as well as putting a premium on interoperability.
Additionally, while the scheduling and calendaring services can be installed separately, the integrated feature set provides both a distinctive and powerful experience to both users and server-side Mail Based Applications and Collaboration Based Application Services.
The MCS platform provides security integration using LDAP sources including Microsoft Active Directory as well as flat-file and database sources.
Additionally, extensible security allows custom authentication/authorization sources.
Enhancements:
- This is the first milestone release with WCAP, freebusy for webmail, and mature IMAP all together.
- It has undergone extensive hardening, dogfooding, and QA testing.
- The WCAP protocol for calendaring now works well for Thunderbird and Lightning 0.3.
- Webmail calendaring was greatly improved.
- The abillity to download attachments has been added to the webmail interface.
- Numerous performance improvements have been made in SMTP, IMAP, and MIME parsing since 1.0-M7.
Download (55.3MB)
Added: 2007-08-02 License: LGPL (GNU Lesser General Public License) Price:
815 downloads
Meldware Communication Suite 1.0M6
Meldware Communication Suite is a platform independent groupware package. more>>
Meldware Communication Suite is a platform independent groupware package consisting of:
Meldware Mail
Meldware Calendar
Meldware Webmail
Meldware Secure Administration System
Together the package provides support for thousands of users to concurrently send and receive email and schedule meetings. MCS uniquely allows you to store all messages and scheduling events in nearly any database and runs on nearly all popular software and hardware platforms.
Additionally, while the scheduling and calendaring services are able to be installed separately, the integrated featureset provides both a unique and powerful experience to both users and server-side Mail Based Applications and Collaboration Based Application Services.
The MCS platform provides security integration using LDAP sources including Microsoft Active Directory as well as flat-file and Database sources. Additionally, extensible security allows custom authentication/authorization sources.
Enhancements:
- IMAP is now stable with Mozilla Thunderbird and POP/SMTP are production ready.
- New Filestore code was implemented and many improvements were made in mailbox and storage code.
<<lessMeldware Mail
Meldware Calendar
Meldware Webmail
Meldware Secure Administration System
Together the package provides support for thousands of users to concurrently send and receive email and schedule meetings. MCS uniquely allows you to store all messages and scheduling events in nearly any database and runs on nearly all popular software and hardware platforms.
Additionally, while the scheduling and calendaring services are able to be installed separately, the integrated featureset provides both a unique and powerful experience to both users and server-side Mail Based Applications and Collaboration Based Application Services.
The MCS platform provides security integration using LDAP sources including Microsoft Active Directory as well as flat-file and Database sources. Additionally, extensible security allows custom authentication/authorization sources.
Enhancements:
- IMAP is now stable with Mozilla Thunderbird and POP/SMTP are production ready.
- New Filestore code was implemented and many improvements were made in mailbox and storage code.
Download (64.9MB)
Added: 2006-12-13 License: LGPL (GNU Lesser General Public License) Price:
1050 downloads
Interprocess Communication Server(unix) 1.07
Interprocess synchronization and communication primitives for C++ more>> RIPC is library providing interprocess synchronization and communication capabilities for processes running at different network nodes. RIPC provides wide set of standard primitives: semaphore, event, FIFO queue, barrier, shared memory, shared and exclusive locks.
Structure of RIPC package
RIPC package consists of two libraries:
ripcclient.lib
Provides stubs of RIPC primitives sending requests to the server
ripcserver.lib
Server implementation of RIPC primitives
RIPC supports local and remote sessions. Remote sessions created by RIPCClientFactory class establish connection with the server through TCP/IP stream socket. Server process should be started before clients. In this case primitives at local computer servers as stubs and redirect requests to the server. This mode is useful to provide synchronization and communication between several processes at the same or different computers.
Local sessions are created by RIPCServerFactory class. Them are useful to provide synchronization of threads within the same process (if you want to use more sophisticated synchronization primitives than standard synchronization facilities provided by OS). The single local session can be shared by all threads. No server process should be started in this case.
Quick start
Include files needed for use of RIPC package are located in inc directory. Libraries are located in lib directory. Version of RIPC for windows is provided with binaries of these librarier and server built by Visual C++ comiler. At all other system you will have to build these libraries yourself. Change directory to src and exceute make (for Visual C++ RIPC provides make.bat file which invokes MS nmake utility for makefile.mvc). By default static version of librarier are built. To produce dynamically linked librariers, edit makefile and assign set GENERATE_DLL=1. In case of using DLL libraries do not forget to include them in PATH (at Windows) or in LD_LIBRARY_PATH (at Unix).<<less
Download (106KB)
Added: 2009-04-16 License: Freeware Price: Free
190 downloads
Inter-Thread Communication 1.1.3
Inter-Thread Communication (ITC) aims to make it exceedingly easy to call functions in other threads. more>>
Inter-Thread Communication (ITC) aims to make it exceedingly easy to call functions in other threads.
The lexer does all the work, so just run the lexer on your headers, then call the stub functions.
In addition, it also provides a complete threading API, with the four threading primitives and a high speed threadsafe FIFO class.
Enhancements:
- It add support for GCC 4.x, and the build system is fixed.
<<lessThe lexer does all the work, so just run the lexer on your headers, then call the stub functions.
In addition, it also provides a complete threading API, with the four threading primitives and a high speed threadsafe FIFO class.
Enhancements:
- It add support for GCC 4.x, and the build system is fixed.
Download (0.41MB)
Added: 2006-07-06 License: GPL (GNU General Public License) Price:
1214 downloads
Libtubo Interprocess Communication 4.5.0
Libtubo Interprocess Communication is a small and simple library to run processes in the background and communicate via stdout. more>>
Libtubo Interprocess Communication is a small and simple library that can run processes in the background and communicate via the stdout, stderr, and stdin file descriptors.
The functionality of libtubo is similar to the glib function g_spawn_async_with_pipes(), except that all pipe setup and monitoring is taken care of.
The calling function only has to provide the functions with which to process the input/output of the remote process.
The library first appeared in the year 2000 in the xfce3 desktop as part of the xfsamba application, and is now available for use for other developers.
Enhancements:
- Some control bugfixes.
- The version has been updated to the xffm scheme, as this package is now distributed with xffm.
<<lessThe functionality of libtubo is similar to the glib function g_spawn_async_with_pipes(), except that all pipe setup and monitoring is taken care of.
The calling function only has to provide the functions with which to process the input/output of the remote process.
The library first appeared in the year 2000 in the xfce3 desktop as part of the xfsamba application, and is now available for use for other developers.
Enhancements:
- Some control bugfixes.
- The version has been updated to the xffm scheme, as this package is now distributed with xffm.
Download (0.35MB)
Added: 2006-05-25 License: LGPL (GNU Lesser General Public License) Price:
1251 downloads
OCERA Real Time Ethernet 0.3.1
The ORTE is an implementation of the RTPS communication protocol defined by Real Time Innovations. more>>
The ORTE is an implementation of the RTPS communication protocol defined by Real Time Innovations.
RTPS is an application layer protocol targeted to the real-time communication area. It is built on top of a standard UDP stack.
This protocol is being submitted to the IETF as an informational RFC and has been adopted by the IDA group.
<<lessRTPS is an application layer protocol targeted to the real-time communication area. It is built on top of a standard UDP stack.
This protocol is being submitted to the IETF as an informational RFC and has been adopted by the IDA group.
Download (1.6MB)
Added: 2005-11-03 License: GPL (GNU General Public License) Price:
1454 downloads
Clevo Mail LED Linux Driver 0.6
Clevo Mail LED Linux Driver operates the mail LED on the Clevo notebook model D4J. more>>
Clevo Mail LED Linux Driver operates the mail LED on the Clevo notebook model D4J.
Enhancements:
- The DMI_BOARD_VENDOR string has been corrected for D410V autodetection.
<<lessEnhancements:
- The DMI_BOARD_VENDOR string has been corrected for D410V autodetection.
Download (0.002MB)
Added: 2007-06-11 License: GPL (GNU General Public License) Price:
867 downloads
RealizationEngine Group Communicator 1.0.14rc3
Innovative, Web-based The RealizationEngine is designed from the ground up to facilitate group communication and collaboration. more>>
The RealizationEngine is designed from the ground up to facilitate group communication and collaboration.
It will store that communication to built and manage an institutional knowledge base. It is accessible from any Web browser or Web-enabled device.
Classified information is easily restricted to authorized individuals. Information can be compartmentalized, restricted, or published openly, as appropriate, all from the same system.
Ideas are coherently threaded, and every message is searchable in a single location and in the context of the messages related to it.
Main features:
- Communication base (completely replace e-mail or even Lotus Notes)
- Collaboration
- Idea Management
- Project Management
- Intranet
- Extranet
- Virtual meetings
- Online communities
- Virtual companies
- One or all of the above in a single installation
<<lessIt will store that communication to built and manage an institutional knowledge base. It is accessible from any Web browser or Web-enabled device.
Classified information is easily restricted to authorized individuals. Information can be compartmentalized, restricted, or published openly, as appropriate, all from the same system.
Ideas are coherently threaded, and every message is searchable in a single location and in the context of the messages related to it.
Main features:
- Communication base (completely replace e-mail or even Lotus Notes)
- Collaboration
- Idea Management
- Project Management
- Intranet
- Extranet
- Virtual meetings
- Online communities
- Virtual companies
- One or all of the above in a single installation
Download (0.060MB)
Added: 2005-04-19 License: GPL (GNU General Public License) Price:
1648 downloads
Hattrick Broadcasting Bot 0.4
Hattrick Broadcasting Bot is an eggdrop module which displays matches of the online game Hattrick live in IRC channels. more>>
Hattrick Broadcasting Bot is an eggdrop module which displays matches of the online game Hattrick live in IRC channels.
Enhancements:
- Support for multiple cookies (now needed to log in), compression of the communication with the server, matchflags to hide certain events, and some smaller fixes.
<<lessEnhancements:
- Support for multiple cookies (now needed to log in), compression of the communication with the server, matchflags to hide certain events, and some smaller fixes.
Download (0.043MB)
Added: 2007-02-28 License: GPL (GNU General Public License) Price:
977 downloads
OcamlSpread 0.0.1
OcamlSpread is a wrapper around the Spread group communication toolkit. more>>
OcamlSpread is a wrapper around the Spread group communication toolkit (http://www.spread.org) for the Objective Caml programming language.
OcamlSpread not only wraps Spread functions, but adds an object-oriented interface and other valuable features.
<<lessOcamlSpread not only wraps Spread functions, but adds an object-oriented interface and other valuable features.
Download (0.018MB)
Added: 2006-11-24 License: GPL (GNU General Public License) Price:
1064 downloads
NAT Check 1
Check Your Network Address Translator for Compatibility with Peer-to-Peer Protocols. more>>
Check Your Network Address Translator for Compatibility with Peer-to-Peer Protocols.
If you are accessing the Internet from behind a Network Address Translator (NAT) of some kind, I would appreciate your help in surveying the behavior of different NATs, in terms of how and whether they support a certain technique for enabling peer-to-peer communication between NATted hosts (particularly when both endpoints are behind NATs). Down, you can understand what NAT is.
Suppose there are three communicating hosts: A, B, and C. Host A is a "well-known" Internet server with a permanent IP address, which acts as an "introducer" for the other two nodes. (For example, Host A might be a well-known ultrapeer or a game catalog server of some kind.) Host B, using Host As "introduction" services, would like to establish a direct peer-to-peer connection with host C. Both B and C, however, are behind (probably different) network address/port translators, and neither of them has exclusive use of any public IP address.
To initiate a peer-to-peer connection with host C, host B first sends A a message requesting an "introduction" to host C. A sends B a reply message containing Cs IP address and UDP port number as reported by host C, in addition to Cs IP address and UDP port number as observed by A. (If C is behind a NAT, then these two address/port combinations will be different.) At the same time, host A sends host C a message containing Bs IP address and UDP port numbers - again, both the ones reported by B and the ones observed by A, which will be different if B is behind a NAT.
Now B and C each know that they want to initiate a connection with each other, and they know each others public (NATted) as well as original IP addresses and UDP port numbers. Both B and C now start attempting to send UDP messages directly to each other, at each of the available addresses. If B and C happen to be behind the same NAT, then they will be able to communicate with each other directly using their "originally reported" IP addresses and UDP port numbers.
In the more common case where B and C are behind different NATs, the "originally reported" addresses will be useless because they will both be private IP addresses in different addressing domains. Instead, the IP address/UDP port combinations observed by A can be used in this case to establish direct communication. Although Bs NAT will initially filter out any UDP packets arriving from Cs public (NATted) UDP port directed at Bs public port, the first UDP message B sends to C will cause Bs NAT to open up a new UDP session keyed on Cs public port, allowing future incoming traffic from C to pass through the NAT to B. Similarly, the first few messages from B to C may be filtered out by Cs NAT, but will be able to start passing through the firewall as soon as Cs first message to B causes Cs NAT to open up a new session. In this way, each NAT is tricked into thinking that its respective internal host is the "initiator" of this new session, when in fact the session is fully symmetrical and was initiated (with As help) simultaneously in each direction.
Required NAT Behavior
There is one important requirement that the NATs must satisfy in order for this technique to work: the NATs must be designed so that they assign only one (public IP address, public UDP port) pair to each (internal IP address, internal UDP port) combination, rather than allocating and assigning a new public UDP port for each new UDP session. Recall that a "session" in Internet terminology is defined by the IP addresses and port numbers of both communicating endpoints, so host Bs communication with host A is considered to be one session while host Bs communication with host C is a different session. If Bs NAT, for example, assigns one public UDP port for Bs communication with A, and then assigns B a different public UDP port for the new session B tries to open up with C, then the above technique for peer-to-peer communication will not work because Cs messages to B will be directed to the wrong UDP port.
RFC 3022 explicitly allows and suggests that NATs behave in the former, "desirable" fashion, by maintaining a single (public IP, public port) mapping for a given (internal IP, internal port) combination independent of the number of active sessions involving this mapping. This behavior is not only good for compatibility with UDP applications, but it also helps to conserve the NATs scarce pool of public port numbers. Maintaining a consistent public port mapping does not adversely affect security in any way, either, because incoming traffic can still be filtered on a per-session basis regardless of how addresses are translated. There in fact appears to be no good reason not to implement the desirable behavior in a NAT, except perhaps for the implementation simplicity of naively allocating a new public port for every new session. Unfortunately, RFC 3022 does not require NATs to implement the desirable behavior, which has led me to wonder just how many real NATs actually do, and hence this page.
What NAT Check Does
The program natcheck.c is basically just a program that "pings" a well-known UDP port at two different servers that are publically accessible on the Internet. Both of these servers run the program natserver.c, with the command-line arguments "1" and "2" respectively. In addition, there a third "conspiring" server runs natserver with the command-line argument "3". Whenever each of the first two servers receives a UDP request, it not only sends a reply directly to the sender of that request, but also sends a message to the third server, which in turn "bounces" the reply back to the original client. The effect is that the client will receive not only solicited "ping" replies from the server the request was directed to, but also "unsolicited" replies from the third server.
To determine if the network address translator in use is implementing the desirable behavior of maintaining a single (public IP address, public port) mapping for a given (client IP address, client port), the client program natcheck.c basically just initiates a sequence of simultaneous pings to the first two servers (in case some of the requests or replies are lost in transit) and checks that the clients address and UDP port as reported by both servers is the same. If the NAT naively allocates a new public port for each new session, then the source port as reported by the two servers will be different, and its time to upgrade your NAT.
The replies echoed from the third server are used only to check whether the NAT properly filters out unsolicited incoming traffic on a per-session basis. Since the client never sends any messages to the third server, if the NAT is properly implementing firewall functionality, the client should never see the third servers echoed replies even after opening up active communication sessions with the first two servers.
Enhancements:
- The NAT Check client no longer attempts to guess whether you have Basic NAT or Network Address/Port Translation (NAPT). It turns to be quite difficult to test for this property reliably, because many NAPTs attempt to bind a private UDP port to a public port with the same port number if that port number is available, causing NAT Check to falsely report Basic NAT. The only way to test for this property reliably would be to run NAT Check on at least two client machines simultaneously, and since this property isnt terribly important to P2P apps its just not worth the trouble.
- The NAT Check client now tests for one additional NAT feature, which I call loopback translation. If a NAT supports loopback translation, it means that a host on the private network behind the NAT can communicate with other hosts on the same private network using public (translated) port bindings assigned by the NAT. Most NATs probably do not support this feature yet, but it may become increasingly important in the future where P2P clients may be located behind a common ISP-deployed NAT as well as individual home NATs. More details on loopback translation will appear in the next version of my Internet-Draft, to be released soon.
- The NAT Check client program now has a command-line option, "-v", which turns on verbose messages during the test.
<<lessIf you are accessing the Internet from behind a Network Address Translator (NAT) of some kind, I would appreciate your help in surveying the behavior of different NATs, in terms of how and whether they support a certain technique for enabling peer-to-peer communication between NATted hosts (particularly when both endpoints are behind NATs). Down, you can understand what NAT is.
Suppose there are three communicating hosts: A, B, and C. Host A is a "well-known" Internet server with a permanent IP address, which acts as an "introducer" for the other two nodes. (For example, Host A might be a well-known ultrapeer or a game catalog server of some kind.) Host B, using Host As "introduction" services, would like to establish a direct peer-to-peer connection with host C. Both B and C, however, are behind (probably different) network address/port translators, and neither of them has exclusive use of any public IP address.
To initiate a peer-to-peer connection with host C, host B first sends A a message requesting an "introduction" to host C. A sends B a reply message containing Cs IP address and UDP port number as reported by host C, in addition to Cs IP address and UDP port number as observed by A. (If C is behind a NAT, then these two address/port combinations will be different.) At the same time, host A sends host C a message containing Bs IP address and UDP port numbers - again, both the ones reported by B and the ones observed by A, which will be different if B is behind a NAT.
Now B and C each know that they want to initiate a connection with each other, and they know each others public (NATted) as well as original IP addresses and UDP port numbers. Both B and C now start attempting to send UDP messages directly to each other, at each of the available addresses. If B and C happen to be behind the same NAT, then they will be able to communicate with each other directly using their "originally reported" IP addresses and UDP port numbers.
In the more common case where B and C are behind different NATs, the "originally reported" addresses will be useless because they will both be private IP addresses in different addressing domains. Instead, the IP address/UDP port combinations observed by A can be used in this case to establish direct communication. Although Bs NAT will initially filter out any UDP packets arriving from Cs public (NATted) UDP port directed at Bs public port, the first UDP message B sends to C will cause Bs NAT to open up a new UDP session keyed on Cs public port, allowing future incoming traffic from C to pass through the NAT to B. Similarly, the first few messages from B to C may be filtered out by Cs NAT, but will be able to start passing through the firewall as soon as Cs first message to B causes Cs NAT to open up a new session. In this way, each NAT is tricked into thinking that its respective internal host is the "initiator" of this new session, when in fact the session is fully symmetrical and was initiated (with As help) simultaneously in each direction.
Required NAT Behavior
There is one important requirement that the NATs must satisfy in order for this technique to work: the NATs must be designed so that they assign only one (public IP address, public UDP port) pair to each (internal IP address, internal UDP port) combination, rather than allocating and assigning a new public UDP port for each new UDP session. Recall that a "session" in Internet terminology is defined by the IP addresses and port numbers of both communicating endpoints, so host Bs communication with host A is considered to be one session while host Bs communication with host C is a different session. If Bs NAT, for example, assigns one public UDP port for Bs communication with A, and then assigns B a different public UDP port for the new session B tries to open up with C, then the above technique for peer-to-peer communication will not work because Cs messages to B will be directed to the wrong UDP port.
RFC 3022 explicitly allows and suggests that NATs behave in the former, "desirable" fashion, by maintaining a single (public IP, public port) mapping for a given (internal IP, internal port) combination independent of the number of active sessions involving this mapping. This behavior is not only good for compatibility with UDP applications, but it also helps to conserve the NATs scarce pool of public port numbers. Maintaining a consistent public port mapping does not adversely affect security in any way, either, because incoming traffic can still be filtered on a per-session basis regardless of how addresses are translated. There in fact appears to be no good reason not to implement the desirable behavior in a NAT, except perhaps for the implementation simplicity of naively allocating a new public port for every new session. Unfortunately, RFC 3022 does not require NATs to implement the desirable behavior, which has led me to wonder just how many real NATs actually do, and hence this page.
What NAT Check Does
The program natcheck.c is basically just a program that "pings" a well-known UDP port at two different servers that are publically accessible on the Internet. Both of these servers run the program natserver.c, with the command-line arguments "1" and "2" respectively. In addition, there a third "conspiring" server runs natserver with the command-line argument "3". Whenever each of the first two servers receives a UDP request, it not only sends a reply directly to the sender of that request, but also sends a message to the third server, which in turn "bounces" the reply back to the original client. The effect is that the client will receive not only solicited "ping" replies from the server the request was directed to, but also "unsolicited" replies from the third server.
To determine if the network address translator in use is implementing the desirable behavior of maintaining a single (public IP address, public port) mapping for a given (client IP address, client port), the client program natcheck.c basically just initiates a sequence of simultaneous pings to the first two servers (in case some of the requests or replies are lost in transit) and checks that the clients address and UDP port as reported by both servers is the same. If the NAT naively allocates a new public port for each new session, then the source port as reported by the two servers will be different, and its time to upgrade your NAT.
The replies echoed from the third server are used only to check whether the NAT properly filters out unsolicited incoming traffic on a per-session basis. Since the client never sends any messages to the third server, if the NAT is properly implementing firewall functionality, the client should never see the third servers echoed replies even after opening up active communication sessions with the first two servers.
Enhancements:
- The NAT Check client no longer attempts to guess whether you have Basic NAT or Network Address/Port Translation (NAPT). It turns to be quite difficult to test for this property reliably, because many NAPTs attempt to bind a private UDP port to a public port with the same port number if that port number is available, causing NAT Check to falsely report Basic NAT. The only way to test for this property reliably would be to run NAT Check on at least two client machines simultaneously, and since this property isnt terribly important to P2P apps its just not worth the trouble.
- The NAT Check client now tests for one additional NAT feature, which I call loopback translation. If a NAT supports loopback translation, it means that a host on the private network behind the NAT can communicate with other hosts on the same private network using public (translated) port bindings assigned by the NAT. Most NATs probably do not support this feature yet, but it may become increasingly important in the future where P2P clients may be located behind a common ISP-deployed NAT as well as individual home NATs. More details on loopback translation will appear in the next version of my Internet-Draft, to be released soon.
- The NAT Check client program now has a command-line option, "-v", which turns on verbose messages during the test.
Added: 2006-06-21 License: GPL (GNU General Public License) Price:
737 downloads
libparportled 0.5.1
libparportled library library is intended to control a LED device plugged on parallel port. more>>
libparportled library is intended to control a LED device plugged on parallel port.
A such device is composed of a number of LED (default is 8, maybe more is possible, I dont know) plugged on parallel port.
Usage:
gcc option: -lparportled
#include < parportled.h >
MAXLED is defined as the number of LED available.
(--with-maxled= in configure option)
BASEPORT is the IO address of parallel port
(--with-port= in configure option)
Functions available are:
int led_setperm();
Initialise the parallel port, MUST be root !
Return -1 on error.
void led_on_all();
Turn all LED on.
void led_off_all();
Turn all LED off.
int led_on(int led);
Turn LED number "led" on.
int led_off(int led);
Turn LED number "led" off.
int led_set_on(int *state);
State must be a int vector. If value is > 0, LED will be turned on.
int led_set_off(int *state);
Do the inverse of led_set().
int led_blink_on(int led, int us_time);
Start blinking LED number "led". us_time is the time in microsecond of
the state changement.
This function starts a new thread.
Please note that all LED are blinking with in a same interval, the first
us_time is used.
If you do:
led_blink_on(1, 10000);
led_blink_on(2, 2000);
10000 will be used for ALL blinking LED.
int led_blink_off(int led);
Stop blinking LED number led.
If no more led are blinking, thread exits.
Enhancements:
- Some bug fix
<<lessA such device is composed of a number of LED (default is 8, maybe more is possible, I dont know) plugged on parallel port.
Usage:
gcc option: -lparportled
#include < parportled.h >
MAXLED is defined as the number of LED available.
(--with-maxled= in configure option)
BASEPORT is the IO address of parallel port
(--with-port= in configure option)
Functions available are:
int led_setperm();
Initialise the parallel port, MUST be root !
Return -1 on error.
void led_on_all();
Turn all LED on.
void led_off_all();
Turn all LED off.
int led_on(int led);
Turn LED number "led" on.
int led_off(int led);
Turn LED number "led" off.
int led_set_on(int *state);
State must be a int vector. If value is > 0, LED will be turned on.
int led_set_off(int *state);
Do the inverse of led_set().
int led_blink_on(int led, int us_time);
Start blinking LED number "led". us_time is the time in microsecond of
the state changement.
This function starts a new thread.
Please note that all LED are blinking with in a same interval, the first
us_time is used.
If you do:
led_blink_on(1, 10000);
led_blink_on(2, 2000);
10000 will be used for ALL blinking LED.
int led_blink_off(int led);
Stop blinking LED number led.
If no more led are blinking, thread exits.
Enhancements:
- Some bug fix
Download (0.027MB)
Added: 2006-03-23 License: GPL (GNU General Public License) Price:
1314 downloads
Salvation Focus 0.99
Salvation Focus is a web application that allows you to focus your prayer on individuals who have not yet come to know Jesus. more>>
Salvation Focus project is a web application that allows you to focus your prayer on individuals who have not yet come to know Jesus Christ as Lord and Saviour.
The intent is to cycle through a list of prebelievers, as we like to call them, and pray for each one for as long as you feel led to pray.
Salvation Focus makes administration simple and allows you to keep track of the information of the people who submitted the prebelievers name for prayer. In this way, we hope that the list does not get filled up with people we have lost contact with or those we had little information for to begin with.
<<lessThe intent is to cycle through a list of prebelievers, as we like to call them, and pray for each one for as long as you feel led to pray.
Salvation Focus makes administration simple and allows you to keep track of the information of the people who submitted the prebelievers name for prayer. In this way, we hope that the list does not get filled up with people we have lost contact with or those we had little information for to begin with.
Download (0.10MB)
Added: 2007-02-09 License: MIT/X Consortium License Price:
988 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above communication breakdown led zeppelin search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed