串列線路網際協定套用

SLIP協定是指串列線路網際協定(Serial Line Internet Protocol),是最早的、也是僅有的兩個串列IP協定之一,屬於異型IP協定。

SLIP協定實現了在串列通信線路上運行TCP/IP協定及其套用服務的功能,為千家萬戶上網提供了撥號IP模式,並且為行業用戶通過串列媒介傳輸IP datagram提供了專線IP模式。

串列線路網際網路協定SLIP(Serial Line Internet Protocol)是在串列通信線路上支持TCP/IP協定的一種點對點(Point-to-Point)式的鏈路層通信協定,不但能夠傳送和接收IP datagram,還提供了TCP/IP的各種網路套用服務(如rlogin、telnet、ftp、rtp等)。個人用戶可利用SLIP協定撥接,行業用戶則可通過租用SLIP專線遠程傳輸業務數據。

基本介紹

  • 中文名:串列線路網際協定套用
  • 外文名:Serial Line Internet protocol applications
  • 涉及學科:信息科學
  • 屬於:兩個串列IP協定之一
  • 實現:串列通信線路上運行TCP/IP協定
  • 縮寫:SLIP
名詞解釋,套用範圍,套用缺點,目前狀況,廣泛使用,壓縮,串列網際協定在記錄儀通信中的套用,硬體連線,鏈路層設計,

名詞解釋

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 頭部壓縮。這個壓縮過程顯著提高了互動式會話吞吐量。
如今,點對點協定(P2P)廣泛替代了 SLIP ,因為它有更多特性和更靈活。

套用範圍

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

套用缺點

SLIP是一種簡單的組幀方式,使用時還存在一些問題。首先,SLIP不支持在連線過程中的動態IP位址分配,通信雙方必須事先告訴對方IP位址,這給沒有固定IP位址的個人用戶上Internet網帶來了很大的不便;其次,SLIP幀中無協定類型欄位,因此他只能支持Ip協定;再有,SLIP幀中無校驗欄位,因此鏈路層上無法檢測出傳輸差錯,必須由上層實體或具有糾錯能力的MODEM來解決差錯問題。
SLIP是一種在串列線路上對I P數據報進行封裝的簡單形式,在RFC 1055[Romkey 1988]中有詳細描述。SLIP適用於家庭中每台計算機幾乎都有的RS-232串列連線埠和高速數據機接入Internet。
十六進制數
縮寫
描述
0xC0
END
幀結束符
0xDB
ESC
幀退出符
0xDC
ESC_END
幀結束轉義符
0xDD
ESC_ESC
幀退出轉義符
下面的規則描述了SLIP協定定義的幀格式:
1) IP數據報以一個稱作END(0xC0)的特殊字元結束。同時,為了防止數據報到來之前的線路噪聲被當成數據報內容,大多數實現在數據報的開始處也傳一個END字元(如果有線路噪聲,那么END字元將結束這份錯誤的報文。這樣當前的報文得以正確地傳輸,而前一個錯誤報文交給上層後,會發現其內容毫無意義而被丟棄)。
2) 如果I P報文中某個字元為END,那么就要連續傳輸兩個位元組ESC,ESC_END(0XDB,0xDC)來取代它。
0xDB這個特殊字元被稱作SLIP的ESC字元,但是它的值與ASCII碼的ESC字元(0x1B)不同。
3) 如果IP報文中某個字元為SLIP的ESC字元,那么就要連續傳輸兩個位元組ESC,ESC_ESC(0xDB,0xDD)來取代它。
SLIP是一種簡單的幀封裝方法,還有一些值得一提的缺陷:
1) 每一端必須知道對方的I P地址。沒有辦法把本端的I P地址通知給另一端。
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個位元組的數據需要20個位元組的IP首部和20個位元組的TCP首部,總數超過40個位元組。
既然承認這些性能上的缺陷,於是人們提出一個被稱作CSLIP(即壓縮SLIP)的新協定,它在RFC1144[Jacobson 1990a]中被詳細描述。CSLIP一般能把上面的4 0個位元組壓縮到3或5個位元組。它能在CSLIP的每一端維持多達16個TCP連線,並且知道其中每個連線的首部中的某些欄位一般不會發生變化。對於那些發生變化的欄位,大多數只是一些小的數字和的改變。這些被壓縮的首部大大地縮短了互動回響時間。現在大多數的SLIP產品都支持CSLIP。

串列網際協定在記錄儀通信中的套用

在簡要介紹記錄儀結構的基礎上,重點論述了採用串列網際協定(SLIP),在RS-232通信協定的物理層與用戶套用層間設計鏈路層的方法。鏈路層的引入提高了記錄儀上下位機通信的可靠性,應用程式的層次分明.結構清晰。
某記錄儀的硬體結構如圖1所示。下位機負責8路模擬信號的調理,採樣和實時上傳;兩路PID模擬輸出、16路開關量報警。上位機負責下位機上傳採樣值的處理、4路虛擬通道的組織、按鍵回響、顯示、PID控制、流量積算、存儲、列印等功能。因此,上位機80C320與下位機80C51之間的可靠通信是高品質記錄儀的關鍵技術之一。
串列線路網際協定套用

硬體連線

上下位機通信協定是RS-232,其硬體連線方式大致可分為無握手、有握手、循環握手三類記錄儀採用最簡單的無握手三線連線全雙工方式,見圖。
串列線路網際協定套用
由於上下位機距離短,省略電平轉換晶片,通過UART直接在TTL電平下進行數據收發。但RS-232串列通信只是定義在物理層的簡單協定,而工業現場環境複雜,信號在傳遞過程中常受到干擾,出現差錯是不可避免的。傳統的解決方案是在應用程式中加入通信糾錯模組,這種直接在物理層協定上開發應用程式的方案帶來兩方面的問題:
(1)程式結構混亂,給調試、維護、升級造成困難;
(2)軟體的通用性差,復用困難。
為解決上述問題,參照OSI(開放式系統互聯參考模型),借鑑串列線路網際協定(SLIP)〕在UNIX上的成功案例,在RS-232物理層上設計一個鏈路層。鏈路層包括兩部分內容:一是上下位機數據幀(包)的格式;二是差錯處理策略。基於物理層、鏈路層、套用層的上下位機通信模型如圖所示。
串列線路網際協定套用

鏈路層設計

SLIP是一個簡單的面向字元的協定,它的規則只有三個:
(1)在每一個數據包的頭尾各加上一個特殊的標誌位元組END,封裝成SLIP幀。也有少數SLIP實現僅把一個標識位元組END放在數據包的末尾。
( 2)如果在數據包中的某一個位元組恰好與標誌位元組END的編碼一樣,那么就要將這個位元組更換成DEL+END這樣的兩個位元組序列。這裡的DEL字元成為SLIP的轉義字元。
( 3)如果在數據包中的某一個位元組恰好和DEL一樣,則將它更換為DEL+DEL的兩個位元組序列。
必須指出,END和DEL只是兩個不同的字元而已。只要在實現過程中,通訊雙方的DEL和END字元保持一致就可以了。
傳送方根據累加和校驗以及SLIP協定裝配傳送數據幀,首先對待傳送的數據包求累加和,然後根據SLIP協定進行打包傳送。在接收中斷程式中,根據SLIP協定判斷那塊數據是一個完整的數據包,然後根據校驗和判斷這個數據包是否接收正確。如果校驗和出錯,則丟棄這個數據組。打包操作如圖3所示,解包操作是打包操作的逆操作,就不在圖示說明了。加SLIP封裝時,如果圖中P的數值等於DEL或者END中的一個則對它也要附加轉義字元DEL 。

相關詞條

熱門詞條

聯絡我們