SLIP y PPP son dos protocolos de nivel 2 ampliamente utilizados; en especial para realizar conexiones caseras entre un PC y el proveedor de acceso a Internet; donde se requiere un protocolo punto a punto de enlace de datos. Son sencillos y pequeños; pensando tal vez en su fácil implementación; y en la baja velocidad de los enlaces telefónicos.
SLIP
SLIP viene de Serial Line IP; es una forma muy simple de encapsulación para datagramas IP en lineas seriales; diseñado en 1984 por Rick Adams para conectar estaciones de trabajo SUN a Internet a travésde una línea de discado usando un Modem.
Se ha vuelto muy popular para conectar sistemas caseros a Internet. a través del puerto serial RS-232 que se encuentra en casi todos los computadores y modems.
Formato:
- Cada datagrama IP es terminado por el carácter especial C0. Para prevenir ruido de línea se acostumbra mandar uno al principio también; de modo que se de por terminada cualquier tipo de conexión errónea anterior.
- Si el carácter C0 se presenta en el contenido del datagrama; se utiliza la secuencia de dos bytes DB, DC el carácter DB es el carácter de escape de SLIP (distinto al valor ASCII de ESC –1B–).
- Si en el contenido se presenta el carácter de escape; se reemplaza por la secuencia DB, DD.
SLIP deja a las capas superiores la detección y recuperación de marcos perdidos.
· CSLIP
Teniendo en cuenta el gran tamaño del header de IP y TCP, aun para enviar muy poca información, se creó una nueva versión de SLIP llamada CSLIP (compressed SLIP). Este reduce el header típico de 40 bytes a 3 o 5 bytes, ayudándose del hecho de que muchos de los campos del header no varían durante una conexión.
PPP
El PPP es el producto del grupo de trabajo IETF (Internet Engineering Task Force), y es básicamente un protocolo de enlace de datos para líneas punto a punto.
PPP provee un protocolo de encapsulación tanto sobre enlaces sincrónicos orientados a bits, como sobre enlaces asincrónicos con 8 bits de datos sin paridad.
PPP puede operar a través de cualquier interfaz DTE/DCE. Estos enlaces deben ser Full-Duplex pero pueden ser dedicados, o de circuitos conmutados.
Lo conforman básicamente 3 aspectos:
- Un método de encapsulado sin ambigüedades que identifica claramente el inicio de un datagrama y el final del anterior.
- Un protocolo de control de enlace, para activar y probar líneas; negociar opciones y desactivar el enlace ordenadamente cuando ya no es necesario.
- Una familia de NCPs (Network Control Protocols) para negociar opciones de la capa de red con independencia del protocolo de red usado.
El procedimiento típico de conexión es el siguiente:
· El PC llama al enrutador del proveedor a través de un modem.
· El modem del enrutador contesta y establece una conexión física.
· El PC y el enrutador intercambian una serie de paquete LCP para
seleccionar los parámetros PPP por usar.
· Se envía una serie de paquetes NCP para configurar la capa de red.
· Se asigna al PC una dirección IP a través de NCP para IP.
· El enlace continua configurado para comunicaciones, hasta que LCP,
NCP , o algún evento externo lo tumbe.
· Se usa NCP para desmantelar la conexión en la capa de red y liberar la
dirección IP.
· Se usa LCP para eliminar la conexión a nivel de enlace.
· El modem cuelga liberando la capa física.
El formato de un marco de PPP es muy similar al formato de marco de HDLC; con la diferencia que PPP es orientado a caracteres y no a bits; todos los marcos tienen un número entero de bytes.
Cada marco comienza y termina con un byte "bandera" 7E; para evitar que la aparición de este byte en los campos de información cause confusiones; se utiliza bit stuffing si el enlace es sincrónico. Si el enlace es asincrónico se utiliza el carácter 7D como carácter de escape. Cada vez que este carácter aparece en un marco PPP indica que el siguiente carácter tiene su sexto bit complementado.
Si en el campo de información se presenta un byte 7E; sería transmitido como
7D 5E; y el escape del carácter de escape sería 7D 5D .
Por defecto cualquier valor que corresponda a un carácter ASCII de control es escapado, ya que en algunos casos estos caracteres son interpretados de manera especial por los modems.
Es posible determinar por LCP cuales de los 32 caracteres de control son escapados; por defecto todos lo son.
Luego viene el campo de dirección que siempre vale FF; indicando a todas las estaciones que deben aceptar el marco, de este modo se evita tener que asignar direcciones a nivel de enlace.
Viene después el campo de control; con valor predeterminado 03, que indica que es un marco no-numerado.
Por omisión PPP no proporciona transmisión confiable usando números de secuencia y acuses; pero puede ser implementada en ambientes particularmente ruidosos.
El siguiente campo es el de protocolo; que indica que tipo de carga está en el campo de información. Se definen valores válidos por ejemplo para LCP,NCP, IP, IPX y Appletalk.
Este byte siempre es impar, el bit menos significativo siempre es 1. Si el bit mas significativo del marco es un cero, se trata de un protocolo de nivel de red (IP, IPX, OSI CLNP, XNS); el primer bit en uno indica otros protocolos como LCP y un NCP particular para cada protocolo de nivel 3 admitido. Los desarrolladores de nuevos protocolos deben obtener un número válido del IANA (Internet Assigned Numbers Authority)
La longitud de este campo (2 bytes) puede reducirse a través de LCP.
Los valores asignados (para 1992) son los siguientes:
Valor (en hexa) Protocolo
0001 a 001f reserved (transparency inefficient)
0021 Internet Protocol
0023 OSI Network Layer
0025 Xerox NS IDP
0027 DECnet Phase IV
0029 Appletalk
002b Novell IPX
002d Van Jacobson Compressed TCP/IP
002f Van Jacobson Uncompressed TCP/IP
0031 Bridging PDU
0033 Stream Protocol (ST-II)
0035 Banyan Vines
0037 reserved (until 1993)
00ff reserved (compression inefficient)
0201 802.1d Hello Packets
0231 Luxcom
0233 Sigma Network Systems
8021 Internet Protocol Control Protocol
8023 OSI Network Layer Control Protocol
8025 Xerox NS IDP Control Protocol
8027 DECnet Phase IV Control Protocol
8029 Appletalk Control Protocol
802b Novell IPX Control Protocol
802d Reserved
802f Reserved
8031 Bridging NCP
8033 Stream Protocol Control Protocol
8035 Banyan Vines Control Protocol
c021 Link Control Protocol
c023 Password Authentication Protocol
c025 Link Quality Report
c223 Challenge Handshake Authentication Protocol
El campo de información es de longitud variable, con un máximo predeterminado de 1500 bytes pero alterable también a través de LCP.
Luego viene el campo para CRC (suma de comprobación) que permite identificar errores a nivel de enlace.
Comparación:
SLIP | PPP |
Fácil de implementar.
| Más complejo.
|
Adiciona muy pocos bytes de overhead | Mayor overhead |
Utilizado por muchas aplicaciones | Su uso está en crecimiento |
Efectúa compresión de overhead (CSLIP) | Puede configurarse para que use compresión de overhead. |
No estándar | Estándar |
No efectúa detección ni corrección de errores. | Suma de verificación (CRC) en cada marco. |
Solo reconoce IP | Múltiples protocolos |
Debe conocerse el IP de cada extremo. | Permite la asignación dinámica de IP. |
No confiable | Transmisión confiable opcional. |
Estático | Configurable a través de LCP. |
BIBLIOGRAFIA
Redes de computadores. Tanenbaum, Andrew S.
TCP/IP illustrated Volume 1. Stevens, W.Richard.
RFC 1331, Network Working Group, Simpson, W.
RFC 1055, Network Working Group, Romkey, J.
PPP white paper, Morning Star Technologies.
Autor:
javier villegas