|
Sending and Receiving Serial Data over the Internet
Note: The following article refers primarily to TCP-Com however the same concepts also apply to all "Serial Device Server" hardware
as well as all "Virtual Modem" software.
Most PCs that are connected
to the Internet are not connected in a manner where the PC's IP
Address is visible to the rest of the
Internet. In most cases the PC will be connected to a router that
is connected to the Internet and router will assign "Local IP
Addresses" to all PCs that are connected to it creating a "Local
Area Network". The router shields all the workstations in the
local area network from the rest of the Internet by not allowing
TCP/IP connections directly to the workstations within the network.
The router's IP Address is visible to the rest of the Internet, however
when you run software that connects to resources on the Internet
(web pages, email servers, etc.), the router actually establishes
all TCP/IP connections for you and "routes" all data between
the connected client workstations and the external servers out on
the Internet.
Since almost all TCP/IP connections
from a workstation are initiated as "Client" connections
where some client software is specifying the IP Address or URL
of the server that it wants to connect to,
no special configuration of the router needs to be performed because
the router will keep track of all outgoing client requests and
automatically "route" all
data received from a Server back to the specific client workstation
that established the connection. In other words, if you configure
TCP-Com as a TCP/IP "Client" where it will connect to
a specific IP Address and Port number for a Server located somewhere
on the Internet, you do not need to make any configuration changes
in your router.
It is only when you want to run TCP-Com
as a TCP/IP Server on a workstation that is behind a router that
you will need
to change
your router
configuration to allow this to happen.
All routers are configurable to support a feature called "Port
Forwarding". Port Forwarding is basically a way for a router
to map TCP/IP client connections that are established directly
to the IP Address of the router (i.e. the IP Address that is visible
to the rest of the Internet) and forward them on to a TCP/IP Server
running on a workstation within the local area network behind the
router (i.e. a workstation IP Address that is not visible to the
rest of the Internet). TCP-Com and Serial Device Server hardware
can both be used to send and receive serial data over the Internet
however you will almost
certainly need to re-configure your network router hardware to
make this possible.
For example, suppose that you want to
run TCP-Com as a TCP/IP Server where it is listening for connections
on Port
1000 on a workstation
that has a local IP Address of 192.168.1.100 and is connected to
the Internet through a router. The IP Address 192.168.1.100 is
a local IP Address that was assigned by your router and therefore
it
is not visible to the rest of the Internet. In order for a TCP/IP
Client that is not part of your local area network (i.e. a client
somewhere out on the Internet) to be able to connect to the Server
port that TCP-Com is listening for connections on, you would first
need to configure your router to "forward a port" from
the router's IP Address to port 1000 of the IP Address of the local
workstation where TCP-Com is running as the Server (in this case
192.168.1.100). You would then need to configure the TCP/IP Client
(located somewhere out on the Internet) to connect to the IP Address
of the router using the port number that was forwarded. This means
that you will also need to know the IP Address of the router, which
is typically assigned by your Internet Service Provider.
Fortunately
all routers are easily configurable to implement port forwarding
however they are not all the same therefore you will
normally need to learn how to configure your particular router
using whatever
documentation is available for it. Most routers are configurable
using any web browser and the configuration steps are fairly easy.
You should also be able to use the router's configuration interface
to find out the IP Address that the router is using for connection
to the Internet. You can also find out your router's IP Address
using the following web page: www.ipaddressworld.com To find out
your local
IP Address, open a Command Prompt window (select Start - Program
Files - Accessories - Command Prompt) and enter the command: IPCONFIG.
The
following web site is an excellent place to learn more about "port
forwarding" as well as to learn how to configure different
makes and models of routers: www.portforward.com
Other things that may affect your ability to connect to
TCP-Com across the Internet are Firewalls as well as the fact
that most
router IP Addresses are assigned dynamically by your Internet Service
Provider. If your router's IP address is assigned dynamically,
then the router's IP Address could change depending on how your
ISP implements the connections. You may be able to contact your
ISP and request a "Static IP Address" for your router
so that it's IP Address never changes. Another issue is that your
router may also be configured to dynamically assign local IP Addresses
to the workstations in your local area network. If this is the
case then the IP Address of your local workstation could also change.
To get around this, you should also be able to configure your router
or Windows to use a static IP Address for your PC instead of having
the router automatically assign a dynamic one.
Firewalls are either software or hardware based security systems
that are designed to block outside access to TCP/IP ports. Windows
XP has a built in firewall that will normally block access to TCP/IP
ports unless you specifically grant access to those ports in the
Firewall settings. Fortunately the Windows Firewall will normally
prompt you to grant outside access to a TCP/IP Server port as soon
as the TCP/IP server software starts "listening" for
client connections. For example, if you configure TCP-Com to run
as a TCP/IP Server, as soon as you activate it the first time,
the Windows XP Firewall software will pop open a window asking
you if you want to allow external connections to TCP-Com. Once
you allow connections to a specific application (like TCP-Com),
Windows will remember your selection so that you do not have to
enable connections each time you start a TCP/IP server. You can
also manually configure the Windows Firewall in your control panel
to allow external client connections to specific application programs.
The
following web site is an excellent place to learn more about
Firewalls including how they work and how to configure them to
allow connections to get through: www.firewalling.com
See Also:
A Very Basic Overview
of TCP/IP Communications
Interfacing RS232 serial instruments to
a TCP/IP network
TCP-Wedge
TCP-Com
WinWedge (Software Wedge for
Windows)
|