En esta secci�n vamos a explorar una de las caracter�sticas m�s interesantes de Java: su capacidad para integrarse en redes TCP/IP. Esto permite usar este lenguaje para construir aplicaciones distribuidas en muy poco tiempo.
A lo largo de esta secci�n asumiremos que el lector ya conoce suficientemente los aspectos de Java relacionados con Entrada/Salida, trabajo con flujos de datos, manejo de excepciones, etc.
Los pasos que seguiremos ser�n los siguientes: primero presentaremos los conceptos b�sicos de los protocolos de Internet, necesarios para la discusi�n posterior; a continuaci�n veremos la forma que tiene Java de implementar dichos conceptos; finalmente analizaremos peque�os programas que nos muestren la mejor forma de utilizar las herramientas que Java pone a nuestra disposici�n.
Nota:Este cap�tulo no pretende ser una introducci�n gen�rica al funcionamiento de la pila de protocolos TCP/IP. Por ello recomendamos la lectura de obras de referencia que cumplen este objetivo. Para el lector interesado exclusivamente en el funcionamiento interno de TCP/IP, sugerimos "Internetworking with TCP/IP", de Douglas E. Comer. Para el que busque un texto m�s did�ctico y que cubra el tema desde un punto de vista m�s generalista, es interesante "Computer Networks", de Andrew S. Tanenbaum. Ambos editados en ingl�s por Prentice Hall.
Toda la documentaci�n original sobre los protocolos utilizados se encuentran disponibles como documentos RFC y STD en Internet. Uno de los "mirrors" espa�oles se encuentra en RedIris.
�Conceptos b�sicos
�Direcciones IP
Como el lector sabr�, todas las m�quinas conectadas a una red IP (Internet Protocol), bien sea la red p�blica Internet o una red privada, se distinguen por su direcci�n IP. Esta direcci�n IP es un n�mero de 32 bits, que por comodidad suele expresarse en forma de 4 n�meros decimales separados por puntos. Cada uno de estos n�meros se corresponde con 8 bits de la direcci�n IP. Por ejemplo: 209.41.57.70 es una direcci�n IP.
Esta direcci�n IP puede ser fija o puede ser distinta cada vez que la m�quina se conecta a la red. Esto es lo que ocurre a casi todos los usuarios que se conectan a Internet a trav�s de la l�nea telef�nica.
�Nombres de dominio
Para facilitar todav�a m�s el trabajo con direcciones IP, existen los nombres de dominio. Estos nombres de dominio son cadenas alfanum�ricas, m�s f�ciles de recordar, y que suelen tener una �nica direcci�n IP asociada. Siguiendo con el ejemplo anterior, akal.com es el nombre de dominio asociado con la direcci�n IP 209.41.57.70.
Los encargados de traducir los nombres de dominios en direcci�n IP son los servidores DNS (Domain Name Server). Estos servidores DNS mantienen unas tablas de correspondencias entre direcciones y dominios. Estas tablas se actualizan peri�dicamente a medida que los distintos servidores DNS intercambian sus datos entre s�.
�Puertos
La forma general de establecer una comunicaci�n a trav�s de Internet es: 1) Indicar la direcci�n IP de la m�quina con la que queremos conectar y 2) especificar el n�mero de puerto dentro de esa m�quina a trav�s del cual queremos establecer la comunicaci�n.
Para que la comunicaci�n se pueda establecer debe haber un proceso en esa m�quina "escuchando" en el puerto especificado. Generalmente, cada m�quina tiene una serie de servicios escuchando en ciertos puertos standard: el servidor HTTP (servidor Web) en el puerto 80, el servidor FTP en el puerto 21, el puerto 25 para SMTP (correo electr�nico), etc. Estos puertos est�n asignados en el standard RFC 1700.
�Circuitos y Paquetes
La forma m�s com�n de transmitir informaci�n a trav�s de Internet es mediante los protocolos de transporte TCP (Transport Control Protocol) y UDP (User Datagram Protocol). Estos protocolos se diferencian principalmente en que TCP (definido en RFC 793) est� orientado a la conexi�n (es decir, necesita el establecimiento de una conexi�n entre ambos extremos y realiza un complejo control de errores), mientras que UDP (definido en RFC 768) se basa en el env�o de paquetes individuales, sin establecimiento previo de una conexi�n y sin control de errores.
Obviamente, cada tipo de comunicaci�n tiene sus ventajas e inconvenientes, y ser� necesario decidirse por un protocolo u otro en funci�n de las necesidades de cada aplicaci�n.