Skip to content

2 TCP / IP

TCP / IP

TCP/IP es una familia de protocolos desarrollados para permitir la comunicación entre cualquier par de ordenadores de cualquier red o fabricante, respetando los protocolos de cada red individual. Esta familia de protocolos tiene cuatros capas o niveles de abstracción:

  • Capa de aplicación: En este nivel se encuentran las aplicaciones disponibles para los usuarios, como por ejemplo HTTP, FTP, etc.
  • Capa de transporte: Suministra a la capa de aplicación servicio de comunicaciones de extremo a extremo utilizando dos tipos de protocolos: TCP (Transmission Control Protocol), orientado a conexión, y UDA (User Datagram Protocol), no orientado a conexión.
  • Capa de red: Da servicio a la capa de transporte. Selecciona la mejor ruta para enviar paquetes por la red. Su protocolo principal es IP (Internet Protocol).
  • Capa de enlace o de interfaz de red: Es la interfaz de la red real. Recibe los paquetes de la capa de red y los transmite al hardware de la red.

Pilas de capas TCP/IP

Figura 2 - Pilas de capas TCP/IP

La cantidad de información enviada puede acabar superando ampliamente la cantidad de datos originales, ya que cada capa añade información extra que será útil para la gestión. El proceso inverso en el que la información recibida asciende desde las capas bajas sufre una transformación similar pero al revés. Es decir, a cada paso se elimina la parte de información específica del nivel en cuestión y sólo se pasa a la capa superior la información que le es propia. Los datos extras se localizan en una cabecera para que sea fácil de añadir, eliminar y de leer.

Datos agregados por cada capa TCP/IP

Figura 3 - Datos agregados por cada capa TCP/IP

Para que no nos tengamos que preocupar de las distintas capas, Java proporciona una serie de clases para trabajar con redes. Estas clases tienen distintos niveles de abstracción. Por un lado tenemos la clases de bajo nivel de abstracción, que nos van a permitir gestionar las direcciones IP, los sockets y las interfaces de red. Por otro lado, clases de más alto nivel de abstracción, como las que nos van a permitir representar URIs, URLs o conexiones con una URL. Comenzaremos por estudiar las de bajo nivel y posteriormente pasaremos a las de alto nivel.