SLIP定义
SLIP的全称是Serial Line IP。它是一种在串行线路上封装IP包的简单形式。
SLIP协议出现在80年代中期,并被使用在BSD UNIX主机和SUN的工作站上,因为SLIP简单好用,所以后来被大量使用在线路速率从1200bps到19.2Kbps的专用线路和拨号线路上互连主机和路由器,到目前为止仍有问大部分UNIX主机保留对该协议的支持。在80年代末90年代初期,被广泛用于家庭中每台有RS232串口的计算机和调制解调器连接到Internet。SLIP是一种在点对点的串行链路上封装IP数据报的简单协议,它并非是Internet的标准协议。
SLIP的帧格式由IP包加上END字符组成。
通过在被发送IP数据报的尾部增加特殊的END字符(0xC0 )从而形成一个简单的SLIP的数据帧,而后该帧会被传送到物理层进行发送。为了防止线路噪声被当成数据报的内容在线路上传输,通常发送端在被传送数据报的开始处也传一个END字符。如果线路上的确存在噪声,则该数据报起始位置的END字符将结束这份错误的报文,这样当前正确的数据报文就能正确的传送了,而前一个含有无意义报文的数据帧会在对端的高层被丢弃。
END是判断一个SLIP帧是否结束的标志。如果要传送的IP包中正好有一个字符0xc0要传送,为了避免它被当作END字符,要用连续的两个字节0xdb和0xdc来代替它。如果要传送的是0xdb,那么就用连续传输两个字节0xdb和0xdd来代替它。
SLIP协议的缺点
SLIP只支持IP协议,对IPX等缺乏支持。并且,由于帧格式中没有类型字段,致使如果一条串行线路如果用于SLIP,就不能同时使用其它协议。
SLIP不提供纠错机制,错误只能依靠上层协议实现。
SLIP帧的封装格式非常简单,通信双方无需在数据报发送前协商任何配置参数选项(在PPP协议中需协商配置参数选项),所以双方IP层通信前必需先获知对方的IP地址,才能进行网络层的通信,否则链路层发送的数据帧在被送到对方网络层时将无法进行转发。
正是由于上面的诸多缺点,导致了SLIP很快的被后面要讲的PPP协议所替代。