串列線路網際協議

Windows遠程訪問的舊工業標準

SLIP(Serial Line Internet Protocol,串列線路網際協議),該協議是Windows遠程訪問的一種舊工業標準,主要在Unix遠程訪問伺服器中使用,現今仍然用於連接某些ISP。因為SLIP協議是面向低速串列線路的,可以用於專用線路,也可以用於撥號線路,Modem的傳輸速率在1200bps到19200bps。

名詞解釋


SLIP:Serial Line IP
串列線路 IP (SLIP)用於運行 TCP/IP 的點對點串列連接。 SLIP 通常專門用於串列連接,有時候也用於撥號,使用的線路速率一般介於 1200bps 和 19.2Kbps 之間。 SLIP 允許主機和路由器混合連接通信(主機 - 主機、主機 - 路由器、路由器 - 路由器都是 SLIP 網路通用的配置),因而非常有用。
SLIP 只是一個包組幀協議,僅僅定義了在串列線路上將數據包封裝成幀的一系列字元。它沒有提供定址、包類型標識、錯誤檢查 / 修正或者壓縮機制。
SLIP 定義了兩個特殊字元: END 和 ESC。 END 是八進位300 (十進位 192), ESC 是八進位 333 (十進位 219)。發送分組時, SLIP 主機只是簡單地發送分組數據。如果數據中有一個位元組與 END 字元的編碼相同,就連續傳輸兩個位元組 ESC 和八進位 334 (十進位 220)。如果與 ESC 字元相同,就連續傳輸兩個位元組 ESC 和八進位 335 (十進位 221)。當分組的最後一個位元組發出后,再傳送一個 END 字元。
因為沒有“標準的” SLIP 規範,也就沒有 SLIP 分組最大長度的實際定義。可能最好是接受 Berkeley UNIX SLIP驅動程序使用的最大分組長度: 1006 位元組,其中包括 IP 頭和傳輸協議頭(但不含分幀字元)。
壓縮串列線路 IP (CSLIP)在傳送出的 IP 分組上執行 Van Jacobson 頭部壓縮。這個壓縮過程顯著提高了互動式會話吞吐量。
如今,點對點協議(PPP)廣泛替代了 SLIP ,因為它有更多特性和更靈活。

應用範圍


在Windows中要設置SLIP協議,比如在Windows 98中,假設已經創建了“撥號連接”,右鍵單擊該連接,選擇“屬性”。接著,在打開的屬性窗口中,選擇“伺服器類型”選項卡,在“撥號網路伺服器類型”中選擇“SLIP:Unix連接”。最後,單擊“確定”按鈕即可。

應用缺點


SLIP是一種簡單的組幀方式,使用時還存在一些問題。首先,SLIP不支持在連接過程中的動態IP地址分配,通信雙方必須事先告訴對方IP地址,這給沒有固定IP地址的個人用戶上Internet網帶來了很大的不便;其次,SLIP幀中無協議類型欄位,因此他只能支持IP協議;再有,SLIP幀中無校驗欄位,因此鏈路層上無法檢測出傳輸差錯,必須由上層實體或具有糾錯能力的MODEM來解決差錯問題。
SLIP是一種在串列線路上對IP數據報進行封裝的簡單形式,在RFC 1055[Romkey 1988]中有詳細描述。SLIP適用於家庭中每台計算機幾乎都有的RS-232串列埠和高速數據機接入Internet。
十六進位數縮寫描述
0xC0END幀結束符
0xDBESC幀退出符
0xDCESC_END幀結束轉義符
0xDDESC_ESC幀退出轉義符
下面的規則描述了SLIP協議定義的幀格式:
1) IP數據報以一個稱作END(0xC0)的特殊字元結束。同時,為了防止數據報到來之前的線路雜訊被當成數據報內容,大多數實現在數據報的開始處也傳一個END字元(如果有線路雜訊,那麼END字元將結束這份錯誤的報文。這樣當前的報文得以正確地傳輸,而前一個錯誤報文交給上層后,會發現其內容毫無意義而被丟棄)。
2) 如果IP報文中某個字元為END,那麼就要連續傳輸兩個位元組ESC,ESC_END(0XDB,0xDC)來取代它。
0xDB這個特殊字元被稱作SLIP的ESC字元,但是它的值與ASCII碼的ESC字元(0x1B)不同。
3) 如果IP報文中某個字元為SLIP的ESC字元,那麼就要連續傳輸兩個位元組ESC,ESC_ESC(0xDB,0xDD)來取代它。
SLIP是一種簡單的幀封裝方法,還有一些值得一提的缺陷:
1) 每一端必須知道對方的IP地址。沒有辦法把本端的IP地址通知給另一端。
2)數據幀中沒有類型欄位(類似於乙太網中的類型欄位)。如果一條串列線路用於SLIP,那麼它不能同時使用其他協議。
3 ) SLIP沒有在數據幀中加上檢驗和(類似於乙太網中的CRC欄位)。如果SLIP傳輸的報文被線路雜訊影響而發生錯誤,只能通過上層協議來發現(另一種方法是,新型的數據機可以檢測並糾正錯誤報文)。這樣,上層協議提供某種形式的CRC就顯得很重要。

目前狀況


廣泛使用

儘管存在這些缺點, SLIP仍然是一種廣泛使用的協議。它主要被用於支持TCP/IP網路控制協議(network control protocol,NCP)。
SLIP的歷史要追溯到1 9 8 4年,Rick Adams第一次在4.2BSD系統中實現。儘管它本身的描述是一種非標準的協議,但是隨著數據機的速率和可靠性的提高,SLIP越來越流行。現在,它的許多產品可以公開獲得,而且很多廠家都支持這種協議。

壓縮

由於串列線路的速率通常較低(19200 b/s或更低),而且通信經常是互動式的(如Telnet和Rlogin,二者都使用TCP),因此在SLIP線路上有許多小的TCP分組進行交換。為了傳送1個位元組的數據需要2 0個位元組的IP首部和40個位元組的TCP首部,總數超過40個位元組。
既然承認這些性能上的缺陷,於是人們提出一個被稱作CSLIP(即壓縮SLIP)的新協議,它在RFC 1144[Jacobson 1990a]中被詳細描述。CSLIP一般能把上面的40個位元組壓縮到3或5個位元組。它能在CSLIP的每一端維持多達16個TCP連接,並且知道其中每個連接的首部中的某些欄位一般不會發生變化。對於那些發生變化的欄位,大多數只是一些小的數字和的改變。這些被壓縮的首部大大地縮短了交互響應時間。現在大多數的SLIP產品都支持CSLIP。