Serial Line Internet Protocol (SLIP)


O protocolo SLIP define dois caracteres especiais: END e ESC. END é o octal 300 (192 decimal) e ESC é o octal 333 (219 em decimal),não deve ser confundido com o ESC do codigo ASCII; para evitar confusões o caracter ESC referenciado neste documento será o ESC do protocolo SLIP.Para enviar um pacote, um host SLIP simplesmente inicia enviando os dados no pacote. Se algum byte dos dados for o mesmo código do caracter END, uma seqüência de dois bytes ESC e o octal 334 (220 decimal) será enviado em seu lugar. Se o mesmo ocorrer com o caracter ESC, uma seqüência de dois bytes ESC e o octal 335 (221 decimal) será enviada em seu lugar. Quando o último byte no pacote for enviado, um caracter END será transmitido.

Phil Karn sugere uma simples alteração no algoritmo, o qual iniciaria e terminaria o pacote com o caracter END. Isto eliminaria quaisquer caracteres errados gerados pelos ruidos na linha. Em situações normais, o receptor simplesmente verá dois caracteres END seguidos, os quais geram um pacote IP errado.Se a implementação SLIP não verifica pacotes com tamanho zero, a implementação IP certamente o fará. Se houver ruido na linha o pacote recebido deverá ser descartado, sem afetar o pacote seguinte.

Por isso, não havendo especificação SLIP "padrão", não há realmente um tamanho máximo definido de pacote para SLIP. É provavelmente melhor aceitar o tamanho máximo de pacote usado pelos "drivers" SLIP do UNIX da Berkeley: 1006 bytes incluindo os cabeçalhos IP e do protocolo de transporte (não incluindo os caracteres de frame)Portanto, qualquer nova implementação de SLIP deverá estar preparada para aceitar um "datagrama" de 1006 bytes e não deverá enviar mais do que 1006 bytes em um "datagrama".