SLIP的全称是Serial Line IP。它是一种在串行线路上对 IP数据报进行封装的简单形式。 S L I P适用于家庭中每台计算机几乎都有的 R S - 2 3 2串 行端口和高速调制解调器接入 Internet。
下面的规则描述了SLIP协议定义的帧格式: 1) IP数据报以一个称作 E N D(0 x c 0)的特殊字符结束。 同时, 为了防止数据报到来之前 的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个 E N D字符(如果有线 路噪声,那么 E N D字符将结束这份错误的报文。 这样当前的报文得以正确地传输, 而前一个 错误报文交给上层后,会发现其内容毫无意义而被丢弃)。
2) 如果I P报文中某个字符为 E N D, 那么就要连续传输两个字节 0 x d b和0 x d c来取代它。 0xdb这个特殊字符被称作SLIP的ESC字符,但是它的值与ASCII码的ESC字符(0x1b)不同。
3) 如果I P报文中某个字符为 S L I P的E S C字符,那么就要连续传输两个字节 0 x d b和0 x d d来 取代它。
图1中的例子就是含有一个 E N D字符和一个E S C字符的I P报文。 在这个例子中, 在串行 线路上传输的总字节数是原 IP报文长度再加4个字节。
SLIP是一种简单的帧封装方法,还有一些值得一提的缺陷:
1) 每一端必须知道对方的IP地址。没有办法把本端的 IP地址通知给另一端。
2) 数据帧中没有类型字段(类似于以太网中的类型字段)。如果一条串行线路用于 S L I P, 那么它不能同时使用其他协议。
3 ) S L I P没有在数据帧中加上检验和(类似于以太网中的 C R C字段)。如果S L I P传输的报 文被线路噪声影响而发生错误, 只能通过上层协议来发现(另一种方法是, 新型的调制解调 器可以检测并纠正错误报文)。这样,上层协议提供某种形式的 C R C就显得很重要。
尽管存在这些缺点, SLIP仍然是一种广泛使用的协议。
SLIP的历史要追溯到1984年,Rick Adams第一次在4.2BSD系统中实现。尽管它本 身的描述是一种非标准的协议,但是随着调制解调器的速率和可靠性的提高, SLIP越 来越流行。现在,它的许多产品可以公开获得,而且很多厂家都支持这种协议。
由于串行线路的速率通常较低( 19200 b/s或更低),而且通信经常是交互式的(如 Te l n e t 和Rlogin,二者都使用TCP),因此在SLIP线路上有许多小的TCP分组进行交换。为了传送 1个 字节的数据需要20个字节的IP首部和20个字节的TCP首部,总数超过40个字节。
既然承认这些性能上的缺陷,于是人们提出一个被称作 C S L I P(即压缩S L I P)的新协议。 CSLIP一般能把上面的40个字节压缩到3或5个 字节。它能在CSLIP的每一端维持多达16个TCP连接,并且知道其中每个连接的首部中的某些 字段一般不会发生变化。 对于那些发生变化的字段, 大多数只是一些小的数字和的改变。 这 些被压缩的首部大大地缩短了交互响应时间。
现在大多数的SLIP产品都支持CSLIP。