Inicio / Wikis / Monografías / El Kernel de Linux - Network Interface

El Kernel de Linux - Network Interface

(2 opiniones)
Monografía creado por Juan Carlos Inostroza. Extraido de: http://www.tux.cl/doku.php?id=articulos:linux:el_kernel_de_linux
02 de Marzo de 2006
Linux

6 - Network Interface

El sistema de red de Linux permite la conectividad entre distintas máquinas de una red y un modelo de conexión via sockets.

Existen dos tipos de sockets, los BSD y los INET.

Linux posee dos protocolos de transporte con distintos tipos de modelo de comunicación y calidad de servicio. Están los mensajes no confiables, basados en el protocolo UDP y los mensajes confiables basados en TCP. Estos dos están implementados sobre el protocolo de transporte y el protocolo IP.

El protocolo IP está por encima de los drivers. A los drivers se les provee distintas formas de comunicación: SLIP (Serial Link IP), PLIP (Parallel Line IP) y Ethernet. Un protocolo de resolución de direcciones media entre el protocolo IP y los drivers de Ethernet. Su tarea es resolver direcciones IP lógicas y convertirlas en direcciones físicas ethernet (de capa 3 a capa 2).

Los servicios de red son usados por los otros subsistemas y por el usuario a traves de la interfaz de sockets, que son creados y manipulados a traves de socketcall(). Los datos son leidos y escritos a través de read() y write() como si fuera un descriptor de archivo.

El modelo BSD de sockets es presentado a los procesos de usuario. El modelo es orientado a la conexión, se permite hacer streaming (flujo) y se permiten buffers. La implementacion BSD está por sobre la INET.

BSD maneja las tareas de forma similar al VFS (Virtual File System) y administra una estructura de datos general para las conexiones. Su propósito es la portabilidad a través de la abstracción de los detalles, a través de una simple interfaz. La interfaz BSD es usada por Unix y Windows.

El modelo INET administra los puntos finales de la comunicación para los protocolos TCP y UDP.

La lectura/escritura de red comienza por leer o escribir en un socket. Esto invoca a una llamada de sistema que es manejada por el VFS (o sea, las llamadas a archivo o sockets es simétrica). Desde ahí, se determina que la llamada BSD sock_write() es la que implementa la llamada al filesystem. Esta rutina maneja detalles administrativos (permisos) y pasa el control a inet_write(), para después llamar a una funcion de transporte, como tcp_write().

Las rutinas de escritura de la capa de transporte son las responsables de fragmentar los datos entrantes en paquetes de transporte. Estas rutinas pasan el control a ip_build_header() que construye una cabecera IP para ser insertada en el paquete a enviar. Luego, tcp_build_header() es llamada para crear una cabecera TCP. Una vez hecho esto, se envian los datos directamente al driver de red.

El sistema de red posee dos servicios de transporte diferentes.

UDP posee una comunicación no orientada a la conexión y no confiable. Está encargada de recibir paquetes de la capa IP y encontrar el socket de destino donde los datos deben ser enviados. Si no se encuentra el socket, se genera un error.

TCP, en cambio, es bastante mas complicado. Ademas del manejo de datos entre los procesos de recepción y envío, realiza complicadas tareas de administración de la conexión. TCP envia los datos al socket como un stream (flujo), en vez de una secuencia de datos (como UDP), pero garantiza una comunicación confiable.

El protocolo IP provee un servicio de transporte de paquetes. Dado un paquete y un destino, la capa de comunicación IP es responsable del enrutamiento del paquete al host que corresponda.

Para un flujo de datos saliente, IP es responsable de

  • Particionar el flujo en paquetes IP
  • Enrutar los paquetes a la dirección de destino
  • Generar una cabecera que será usada por los drivers de red
  • Seleccionar el dispositivo de red apropiado para enviar los datos

Para un flujo de datos entrantes, IP es responsable de

  • Verificar la validez de la cabecera
  • Comparar la dirección de destino con la dirección local y reenviarlo si no corresponde
  • Desfragmentar el paquete IP
  • Enviar los paquetes a la capa TCP o UDP según corresponda

El protocolo ARP (Address Resolution Protocol) es el responsable de convertir entre direcciones IP y direcciones de red reales. ARP soporta distintos tipos de hardware, Ethernet, FDDI, etc. Esta función es necesaria cuando los sockets se comunican con direcciones IP, ya que no pueden ser usadas directamente por los dispositivos de red.

El subsistema de red provee sus propios drivers para conexiones seriales, paralelas y ethernet. Posee una interfaz de abstracción para los dispositivos para ocultar las diferencias entre las comunicaciones de las capas mas bajas y mas altas de este subsistema.

Valora este capítulo: (2 opiniones)
Autor y licencia de 'El Kernel de Linux - Network Interface'
Juan Carlos Inostroza Extraído de: http://www.tux.cl/doku.php?id=articulos:linux:el_kernel_de_linux CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Opiniona sobre 'El Kernel de Linux - Network Interface' (2)

Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.

Opina sobre este monografía



* Valoración:
* Nombre:
* Correo electrónico:
* Título:
* Comentario:

Wikis relacionados con 'El Kernel de Linux - Network Interface'

Linux es en realidad un Kernel. Una distribución GNU/Linux es la mezcla de software GNU... Más »
En este documento se presenta la información acerca de la instalación, configuración, ejecución y mantenimiento... Más »
Esta es la primerísima edición del Linux en Castellano COMO. La audiencia a la que... Más »
Este documento pretende ser el punto de entrada de los hispanohablantes al mundo Linux, intentando... Más »
Este documento describe el soporte de sonido para Linux. Enumera el hardware de sonido soportado,... Más »
¿Estás seguro de que deseas eliminar este capítulo?