版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 組織:中國(guó)互動(dòng)出版網(wǎng)(http://www.china-pub.com/)</p><p> RFC文檔中文翻譯計(jì)劃(http://www.china-pub.com/compters/emook/aboutemook.htm)E-mail:ouyang@china-pub.com</p><p> 譯者:王安鵬(anpengwang anpengwang@26
2、3.net)</p><p> 譯文發(fā)布時(shí)間:2001-5-23</p><p> 版權(quán):本中文翻譯文檔版權(quán)歸中國(guó)互動(dòng)出版網(wǎng)所有。可以用于非商業(yè)用途自由轉(zhuǎn)載,但必須保留本文檔的翻譯及版權(quán)信息。</p><p> Network Working Group J. Romkey<
3、;/p><p> Request for Comments: 1055 June l988</p><p> 在串行線路上傳輸IP數(shù)據(jù)報(bào)的非標(biāo)準(zhǔn)協(xié)議</p><p> (RFC1055 A NONSTANDARD FOR TRANSMISSION OF IP DATAGRAMS OVER S
4、ERIAL LINES: SLIP)</p><p><b> 目錄</b></p><p><b> 簡(jiǎn)介1</b></p><p> 歷史(HISTORY)1</p><p> 可用性(AVAILABILITY)2</p><p> 協(xié)議(PROTOCOL
5、)2</p><p> 缺陷(DEFICIENCIES)2</p><p> SLIP驅(qū)動(dòng)程序(SLIP DRIVERS)3</p><p><b> 簡(jiǎn)介</b></p><p> TCP/IP協(xié)議組運(yùn)行在各種各樣的網(wǎng)絡(luò)媒介上:IEEE 802.3(以太網(wǎng))和802.5(令牌環(huán))局域網(wǎng)(LAN)、X.25
6、線路、衛(wèi)星鏈路以及串行線路。其中許多網(wǎng)絡(luò)已經(jīng)有IP分組的標(biāo)準(zhǔn)封裝格式,但沒(méi)有用于串行線路的標(biāo)準(zhǔn)。SLIP(串行線路IP)目前已成為事實(shí)上的標(biāo)準(zhǔn),廣泛地用于在點(diǎn)對(duì)點(diǎn)串行連接上運(yùn)行TCP/IP。這并不是一個(gè)Internet標(biāo)準(zhǔn),本備忘錄的發(fā)布不受限制。</p><p> 歷史(HISTORY)</p><p> SLIP源于80年代初期的3COM UNET TCP/IP實(shí)現(xiàn)。SLIP只是一
7、個(gè)分組分幀協(xié)議,僅僅定義了一系列在串行線路上構(gòu)造IP分組的字符。它沒(méi)有提供地址、分組類(lèi)型標(biāo)識(shí)、錯(cuò)誤檢查/修正或者壓縮機(jī)制。因?yàn)檫@個(gè)協(xié)議所作的工作這么少,通常很容易實(shí)現(xiàn)。</p><p> 大約在1984年,Rick Adam為4.2Berkeley Unix和Sun Microsystem工作站實(shí)現(xiàn)了SLIP并公之于眾,并作為一種使用串行線路連接TCP/IP主機(jī)和路由器的簡(jiǎn)單可靠的方法很快流行起來(lái)。</p
8、><p> SLIP通常專(zhuān)門(mén)用于串行連接,有時(shí)候也用于撥號(hào)網(wǎng)絡(luò),使用的線路速率一般介于1200bps和19.2Kbps之間。SLIP允許主機(jī)和路由器混合連接(主機(jī)-主機(jī)、主機(jī)-路由器、路由器-路由器都是SLIP網(wǎng)絡(luò)通用的配置),因而非常有用。</p><p> 可用性(AVAILABILITY)</p><p> SLIP可用于大多數(shù)基于Berkeley UNIX
9、的系統(tǒng),并且被包括進(jìn)了Berkeley的4.3BSD標(biāo)準(zhǔn)版。SLIP可用于Ultrix、 Sun UNIX 和大多數(shù)派生自Berkeley的UNIX系統(tǒng)。一些終端集線器和IBM PC的實(shí)現(xiàn)也支持該協(xié)議。</p><p> Berkeley UNIX的SLIP可以使用匿名FTP從uunet.uu.net上的pub/sl.shar.Z中獲得。確保傳輸?shù)氖嵌M(jìn)制文件,并使用UNIX解壓程序打開(kāi)它,然后把解開(kāi)的文件作為
10、UNIX/bin/sh(如/bin/sh sl.shar)的SHELL命令使用</p><p> 協(xié)議(PROTOCOL)</p><p> SLIP定義了兩個(gè)特殊字符:END和ESC。END是八進(jìn)制的300(十進(jìn)制192),ESC不同與ASCII的ESCAPE字符,是八進(jìn)制的333(十進(jìn)制219),本文中的ESC指的是SLIP ESC字符。發(fā)送分組時(shí),SLIP主機(jī)只是簡(jiǎn)單地發(fā)送分組數(shù)
11、據(jù)。如果數(shù)據(jù)中有一個(gè)字節(jié)與END字符的編碼相同,就連續(xù)傳輸兩個(gè)字節(jié)ESC和八進(jìn)制的334(十進(jìn)制220)代替它。如果與ESC字符相同,就連續(xù)傳輸兩個(gè)字節(jié)ESC和八進(jìn)制的335(十進(jìn)制221)代替它。分組的最后一個(gè)字節(jié)發(fā)出后,再傳送一個(gè)END字符。</p><p> Phil Karn建議稍微修改一下這個(gè)算法,分組的開(kāi)始以及結(jié)束都使用END字符,這樣可以刷掉線路噪聲造成的不正確的字節(jié)。一般情況下接收方將只看到兩個(gè)
12、緊挨著的END字符并生成一個(gè)壞的IP分組。如果SLIP實(shí)現(xiàn)沒(méi)有丟棄長(zhǎng)度為0的IP分組,IP實(shí)現(xiàn)就應(yīng)該丟棄。如果存在線路噪聲,接收到的由線路噪聲造成的數(shù)據(jù)將被丟棄,而不會(huì)影響后續(xù)的分組。</p><p> 因?yàn)闆](méi)有“標(biāo)準(zhǔn)的”SLIP規(guī)范,也就沒(méi)有SLIP分組最大長(zhǎng)度的實(shí)際定義??赡茏詈檬墙邮蹷erkeley UNIX SLIP驅(qū)動(dòng)程序使用的最大分組長(zhǎng)度:1006字節(jié),其中包括IP頭和傳輸協(xié)議頭,但不含分幀字符。這
13、樣任何新的SLIP實(shí)現(xiàn)都應(yīng)能夠接收1006字節(jié)的數(shù)據(jù)報(bào),在一個(gè)數(shù)據(jù)報(bào)內(nèi)發(fā)送的字節(jié)數(shù)不應(yīng)超過(guò)1006。</p><p> 缺陷(DEFICIENCIES)</p><p> 有幾種特性使許多用戶希望SLIP提供而沒(méi)有提供的。公平的講,SLIP只是一個(gè)很久以前設(shè)計(jì)的非常簡(jiǎn)單的協(xié)議,而在當(dāng)時(shí)這些問(wèn)題還并不真正重要。下面是對(duì)現(xiàn)有SLIP協(xié)議一般認(rèn)識(shí)到的缺陷:</p><p&
14、gt;<b> 地址:</b></p><p> SLIP連接的兩臺(tái)計(jì)算機(jī)都必須知道對(duì)方的IP地址才能傳輸。另外,在主機(jī)使用SLIP撥號(hào)連接一個(gè)路由器時(shí),地址設(shè)置可能隨時(shí)變化,路由器可能需要通知撥號(hào)主機(jī)IP地址的變更。SLIP目前沒(méi)有為主機(jī)提供通過(guò)SLIP連接交換地址信息的機(jī)制。</p><p><b> 類(lèi)型標(biāo)識(shí):</b></p&g
15、t;<p> SLIP沒(méi)有類(lèi)型字段。因此在一個(gè)SLIP連接上只能運(yùn)行一個(gè)協(xié)議,即使在兩臺(tái)運(yùn)行TCP/IP和DECnet的DEC計(jì)算機(jī)的配置中,如果使用SLIP,也不可能讓TCP/IP和DECnet同時(shí)使用一條連接兩者的串行線路。因?yàn)镾LIP是“串行線路IP”,如果串行線路連接兩臺(tái)多協(xié)議計(jì)算機(jī),這些計(jì)算機(jī)可以在這條線路上使用多個(gè)協(xié)議。</p><p><b> 錯(cuò)誤檢測(cè)/修正:</
16、b></p><p> 嘈雜的電話線路可能破壞傳輸中的分組。因?yàn)榫€路速率可能很低(或許是2400波特),重新傳輸分組的代價(jià)很高。錯(cuò)誤檢測(cè)在SLIP層并非絕對(duì)需要,因?yàn)镮P應(yīng)用程序可以發(fā)現(xiàn)損壞的分組(IP頭部與TCP和UDP的校驗(yàn)和就可以滿足),但是一些通用程序如NFS通常忽略校驗(yàn)和而依賴網(wǎng)絡(luò)媒介檢測(cè)損壞的分組。因?yàn)橹匦聜鬏敱痪€路噪聲破壞的分組需要很長(zhǎng)時(shí)間,如果自身能夠提供某種簡(jiǎn)單的糾錯(cuò)機(jī)制就可以改善SLI
17、P的效率。</p><p><b> 壓縮:</b></p><p> 撥號(hào)線路非常慢(通常是2400bps),分組壓縮可以大幅提高分組的吞吐量。通常單純的TCP連接分組流在IP和TCP頭部有幾個(gè)很少變動(dòng)的字段,因而可以使用一種簡(jiǎn)單的壓縮算法只發(fā)送頭部變化的部分而不是整個(gè)頭部。</p><p> 圍繞著SLIP后繼者的設(shè)計(jì)與實(shí)現(xiàn),幾個(gè)不同
18、的團(tuán)體已經(jīng)做了一些工作,可能會(huì)部分或者全部解決這些問(wèn)題。</p><p> SLIP驅(qū)動(dòng)程序(SLIP DRIVERS)</p><p> 下面的C語(yǔ)言函數(shù)發(fā)送并接收SLIP分組。它們依賴于send_char() 和 recv_char(),這兩個(gè)函數(shù)在串行線路上發(fā)送和接收單個(gè)字符。</p><p> /* SLIP 特殊字符編碼</p><
19、;p><b> */</b></p><p> #define END 0300 /* 分組結(jié)束標(biāo)記 */</p><p> #define ESC 0333 /* 填充字節(jié)標(biāo)記*/</p><p> #define ESC_END 0334 /*
20、ESC ESC_END 表示數(shù)據(jù)字節(jié)END */</p><p> #define ESC_ESC 0335 /* ESC ESC_ESC 表示數(shù)據(jù)字節(jié)ESC */</p><p> /* SEND_PACKET: 發(fā)送長(zhǎng)“l(fā)en”的分組,起始位置為“p” */</p><p> void send_packet(p, len)<
21、;/p><p><b> char *p;</b></p><p> int len; {</p><p> /* 發(fā)送一個(gè)初始END 字符,清除由于線路噪聲可能堆積在接收方的任何數(shù)據(jù)</p><p><b> */</b></p><p> send_char(END
22、);</p><p> /* 為分組中的每個(gè)字符發(fā)送適當(dāng)?shù)淖址蛄?lt;/p><p><b> */</b></p><p> while(len--) {</p><p> switch(*p) {</p><p> /* 如果與END字符相同,我們就發(fā)送</p><
23、p> * 兩個(gè)特殊字符碼避免接受方認(rèn)為</p><p> * 我們發(fā)出了END結(jié)束標(biāo)記</p><p><b> */</b></p><p><b> case END:</b></p><p> send_char(ESC);</p><p> send
24、_char(ESC_END);</p><p><b> break;</b></p><p> /* 如果與ESC字符編碼相同,</p><p> * 我們就發(fā)送兩個(gè)特殊字符碼</p><p> * 避免接受方以為我們發(fā)送了ESC</p><p><b> */</b&
25、gt;</p><p><b> case ESC:</b></p><p> send_char(ESC);</p><p> send_char(ESC_ESC);</p><p><b> break;</b></p><p> /* 否則,我們就發(fā)送字符本身
26、</p><p><b> */</b></p><p><b> default:</b></p><p> send_char(*p);</p><p><b> }</b></p><p><b> p++;</b>
27、</p><p><b> }</b></p><p> /* 告訴接收方我們已經(jīng)完成分組的發(fā)送</p><p><b> */</b></p><p> send_char(END);</p><p><b> }</b></p>
28、<p> /* RECV_PACKET: 接收分組并放入地址為“p”的緩沖區(qū),</p><p> * 如果收到的字節(jié)數(shù)大于len,分組將被截?cái)?lt;/p><p> * 返回保存在緩沖區(qū)的字節(jié)數(shù)</p><p><b> */</b></p><p> int recv_packe
29、t(p, len)</p><p><b> char *p;</b></p><p> int len; {</p><p><b> char c;</b></p><p> int received = 0;</p><p> /* 使用循環(huán)讀取字節(jié)直到接受完
30、整個(gè)分組</p><p> * 如果用完緩沖區(qū)就不再?gòu)?fù)制</p><p><b> */</b></p><p> while(1) {</p><p> /* 取一個(gè)字符進(jìn)行處理</p><p><b> */</b></p><p>
31、c = recv_char();</p><p> /* 如果需要?jiǎng)t處理填充字符</p><p><b> */</b></p><p> switch(c) {</p><p> /* 如果是END字符就表示分組完成</p><p><b> */</b><
32、/p><p><b> case END:</b></p><p> /* 一點(diǎn)小小的改進(jìn):如果分組沒(méi)有數(shù)據(jù)則忽略掉。</p><p> *這意味著避免雙END字符構(gòu)成的空分組打擾IP,</p><p> *這種空分組用于檢測(cè)線路噪聲。</p><p><b> */</b&
33、gt;</p><p> if(received)</p><p> return received;</p><p><b> else</b></p><p><b> break;</b></p><p> /* 如果收到ESC字符,則等待</p>
34、<p> * 下一個(gè)字符來(lái)決定把什么字符存入分組</p><p><b> */</b></p><p><b> case ESC:</b></p><p> c = recv_char();</p><p> /* 如果“c”不是這兩個(gè)字符中的一個(gè),</p>
35、<p> * 就違反了協(xié)議。最好的辦法似乎是 </p><p> * 單獨(dú)保留這個(gè)字符并填入分組 </p><p><b> */</b></p><p> switch(c) {</p><p> case ESC_END:</p><p><b> c = E
36、ND;</b></p><p><b> break;</b></p><p> case ESC_ESC:</p><p><b> c = ESC;</b></p><p><b> break;</b></p><p><
37、b> }</b></p><p> /* 現(xiàn)在到了缺省處理情況,就讓它保存字符</p><p><b> */</b></p><p><b> default:</b></p><p> if(received < len)</p><p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- rfc877_ip 數(shù)據(jù)包通過(guò)公共數(shù)據(jù)網(wǎng)絡(luò)的傳輸標(biāo)準(zhǔn)
- IP數(shù)據(jù)報(bào)在分組無(wú)線網(wǎng)中的傳輸.pdf
- rfc1088_ip 數(shù)據(jù)包傳輸通過(guò)netbios網(wǎng)絡(luò)的標(biāo)準(zhǔn)
- ip 數(shù)據(jù)包通過(guò)以太網(wǎng)網(wǎng)絡(luò)傳輸標(biāo)準(zhǔn)(rfc894)
- 在以太網(wǎng)上傳輸ppp的方法(rfc2516)
- rfc1144_低速串行鏈路上的tcpip頭部壓縮
- 非標(biāo)準(zhǔn)方法確認(rèn)表
- ip數(shù)據(jù)報(bào)重組算法
- 非標(biāo)準(zhǔn)原始地震數(shù)據(jù)轉(zhuǎn)儲(chǔ)方法研究.pdf
- 小兒正常非標(biāo)準(zhǔn)胸片的特點(diǎn)
- 申請(qǐng)非標(biāo)準(zhǔn)工時(shí)制度須知
- 非標(biāo)準(zhǔn)勞動(dòng)關(guān)系研究.pdf
- 植物部分非標(biāo)準(zhǔn)答案
- 主要非標(biāo)準(zhǔn)件.dwg
- 主要非標(biāo)準(zhǔn)件.dwg
- 主要非標(biāo)準(zhǔn)件.dwg
- 主要非標(biāo)準(zhǔn)件.dwg
- 低速串行鏈路下ip udp rtp數(shù)據(jù)包頭的壓縮(rfc2508)
- rfc895_ip 數(shù)據(jù)包通過(guò)試驗(yàn)性以太網(wǎng)網(wǎng)絡(luò)的傳輸標(biāo)準(zhǔn)
- 常見(jiàn)標(biāo)準(zhǔn)—非標(biāo)準(zhǔn)醫(yī)學(xué)名詞對(duì)照
評(píng)論
0/150
提交評(píng)論