?? rfc2.txt
字號:
組織:中國互動出版網(wǎng)(http://www.china-pub.com/)
RFC文檔中文翻譯計(jì)劃(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
譯者:charliechen(charliechen charliecy@263.net)
譯文發(fā)布時間:2001-4-2
版權(quán):本中文翻譯文檔版權(quán)歸中國互動出版網(wǎng)所有。可以用于非商業(yè)用途自由轉(zhuǎn)載,但必須保留本文檔的翻譯及版權(quán)信息。
Network Working Group Bill Duvall
Request for Comments: 2 SRI
RFC 2 - 主機(jī)軟件
(RFC 2 Host soft ware)
目錄
1 鏈接 1
1a 控制鏈接 1
1b 主鏈接 2
1c 輔助鏈接 2
2 操作鏈接 3
2a 控制鏈接 3
2b 主鏈接 3
2c 輔助鏈接 4
3.錯誤檢查 5
4 監(jiān)控器功能 7
4a 網(wǎng)絡(luò)I/O驅(qū)動 7
4b 網(wǎng)絡(luò)狀態(tài) 9
5 可執(zhí)行操作 9
5a 主鏈接 9
5b輔助鏈接 9
5c 特殊執(zhí)行函數(shù) 10
6 初始校驗(yàn) 10
1 鏈接
1a 控制鏈接
1a1 邏輯鏈接0作為網(wǎng)絡(luò)任意兩臺主機(jī)的控制鏈接
1a1a 網(wǎng)絡(luò)任意兩臺主機(jī)只存在一條控制鏈接。如果網(wǎng)絡(luò)上有n 臺主機(jī),則對于每個主機(jī)有n-1個控制鏈接
1a2 主要用語主機(jī)之間通訊的目的
1a2a 建立用戶鏈接
1a2b 打斷用戶鏈接
1a2c 根據(jù)鏈接的狀態(tài)和/或程序通過鏈接傳遞中斷
1a2d 監(jiān)控器通訊
1a3 網(wǎng)絡(luò)上的IMP自動跟蹤通過鏈接0發(fā)送的所有消息
1b 主鏈接
1b1 一臺給定主機(jī)的用戶與網(wǎng)絡(luò)上的其它主機(jī)有1個主鏈接
1b1a 主鏈接必須是一臺主機(jī)的用戶與其它主機(jī)之間建立的第一個鏈接
1b1b 主鏈接對用戶是全局的,用戶程序可以打開主鏈接,在明確地關(guān)閉之前她始終是打開的
1b1c 主鏈接被當(dāng)作與遠(yuǎn)程主機(jī)通過普通的數(shù)據(jù)電話或直接連接的TTY一樣看待,即遠(yuǎn)程主機(jī)認(rèn)為一個主鏈接是一個普通的TTY用戶。
1b1d 主鏈接用來傳遞(用戶)控制信息給遠(yuǎn)程主機(jī),舉例來說,它被用來登錄到遠(yuǎn)程主機(jī)使用遠(yuǎn)程主機(jī)的標(biāo)準(zhǔn)登錄過程)
1c 輔助鏈接
1c1 用戶程序可以和他自己或已連接的主機(jī)之間建立任意個輔助鏈接
1c1a 這些鏈接可以傳輸二進(jìn)制或字符
1c1b 子系統(tǒng)建立的輔助鏈接是本地的,所以當(dāng)子系統(tǒng)退出時這些鏈接會關(guān)閉
2 操作鏈接
2a 控制鏈接
2a1 系統(tǒng)載入時建立鏈接
2a2 控制鏈接的狀態(tài)可能是激活的或非激活的
2a2a 控制鏈接的狀態(tài)必須反映主機(jī)之間的關(guān)系
2b 主鏈接
2b1 用戶或調(diào)用調(diào)用程序來建立與控制器的主鏈接
2b1a 主機(jī)的網(wǎng)絡(luò)身份號碼必須包含在調(diào)用程序中。
2b1b 試圖建立多余一個的主鏈接到特殊主機(jī)會被認(rèn)為是一個錯誤,這時請求被設(shè)置成默認(rèn)的
2b1c 標(biāo)準(zhǔn)傳輸字符集
2b1c1 數(shù)據(jù)傳輸是用標(biāo)準(zhǔn)字符集通過主鏈接和控制鏈接進(jìn)行的
2b1c1a 用的是8位ASCII
2b1d (獲取鏈接)從主機(jī)A到主機(jī)B建立鏈接的協(xié)議如下
2b1d1 A從它的分配表選擇一條當(dāng)前未使用的鏈接到B
2b1d2 A通過鏈接0發(fā)送一條鏈接-連接消息至B
2b1d3 A等待
2b1d3a B發(fā)送一條關(guān)于那條鏈接的信息
2b1d3b 等待一段時間
2b1d4 如果一個信息認(rèn)為該鏈接從B獲得,那么它將被檢驗(yàn)是否確實(shí)
2b1d4a A確認(rèn)B的鏈接
2b1d4a1 從監(jiān)控器發(fā)送一個成功的返回到請求者。鏈接號返回給請求者,鏈接建立
2b1d4b B請求建立這個鏈接。這意味著:B試圖建立獨(dú)立于A的但與A一樣的鏈接
2b1d4b1 如果A(Na)的網(wǎng)絡(luò)ID號大于B(Nb)的網(wǎng)絡(luò)ID號,A忽略該請求,并且繼續(xù)等待B的鏈接的確認(rèn)
2b1d4b2 如果是Na<Nb, A:
2b1d4b2a 允許從B發(fā)過來的請求以建立鏈接。
2b1d4b2b 發(fā)送需要的確認(rèn)消息
2b1d4b2c A中斷自身的請求,重復(fù)分配過程
2b1d4c 從B發(fā)出的關(guān)于鏈接的其它信息
2b1d4c1 這是一個錯誤條件,下同
2b1d4c1a A錯誤地選擇了先前已分配的鏈接來作為分配
2b1d4c1b B通過一個未分配的鏈接傳輸信息
2b1d4c1c 或者B發(fā)送給A的關(guān)于分配的信息在傳輸過程中發(fā)生了變化
2b1d4c2 在這種情況下,A采取的動作:
2b1d4c2a 發(fā)送一條關(guān)于試圖連接的斷開消息給B
2b1d4c2b 認(rèn)為主機(jī)B的狀態(tài)出錯,開始進(jìn)入出錯分支處理
2b1d5 如果在指定的一段時間內(nèi)無法從B接收到關(guān)于鏈接的信息,認(rèn)為主機(jī)B被在出錯狀態(tài)
2b1d5a A發(fā)送一個中斷鏈接的消息到B
2b1d5b 調(diào)用出錯處理分支
2c 輔助鏈接
2c1 用戶程序發(fā)送調(diào)用指令給監(jiān)控器以建立輔助鏈接
2c1a 請求必須詳細(xì)說明和監(jiān)控器建立的鏈接相關(guān)的數(shù)據(jù)
2c1a1 連接到B的主鏈接號
2c1b 雙方主機(jī)(A和B)的用戶程序必須都請求輔助鏈接
2c1c 如果Na > Nb,主機(jī)A使用如上的方式(獲取鏈接)繼續(xù)建立一個到主機(jī)B的鏈接
2c1d 如果Na<Nb, A等待 :
2c1d1 等待主機(jī)B建立該鏈接(在注意B是否已經(jīng)建立相關(guān)的鏈接以后)
2c1d2 等待一段時間
2c1d2a 即主機(jī)B對主機(jī)A的請求不作出反應(yīng)
2c1d2b 主機(jī)A和B的程序應(yīng)該指定等待的時間以確定是否超時
3.錯誤檢查
3a 通過網(wǎng)絡(luò)發(fā)送的所有消息一開始就進(jìn)行錯誤檢查以隔離硬件和軟件錯誤
3b 一個與次序相關(guān)的校驗(yàn)碼會加入到每條消息中去
3b1 以下的運(yùn)算法則將被使用:
3b1a 通過把連續(xù)地被檢查的字符串中的相續(xù)字段相加形成一個長度為1的檢查和,并且把
進(jìn)位加到和的最低位
+--------------+
| |
+---字段 1----+
加法 +--------------+
| |
+----字段 2---+
+-+--------------+
| | |
+-+--------------+
\
\ +--+
加法 進(jìn)位---> | |
+--+
+--------------+
| |
+----結(jié)果----+
3b1a1 這種方法稱為折疊
3b1a2 如果在作完加法后適當(dāng)?shù)卣郫B,可以把字段相加并且平行地折疊
+---------+---------+---------+---------+
| 字段 4 | 字段 3 | 字段 2 | 字段 1 |
+---------+---------+---------+---------+
+---------+---------+---------+---------+
| 字段 8 | 字段 7 | 字段 6 | 字段 5 |
+---------+---------+---------+---------+
加法
+-+---------+---------+---------+---------+
| | | | | |
+-+---------+---------+---------+---------+
| | | | |
| | | | v
| | | | +---------+
| | | | | |
| | | | +---------+
| | | |
| | | \ +---------+
| | | `-> | |
| | | +---------+
| | |
| | \ +---------+
| | `-----------> | |
| | +---------+
| |
| \ +---------+
| `--------------------->| |
| +---------+
|
\ +---+
`-----進(jìn)位------------------------>| |
+---+
加法
+---------+---------+
| | |
+--進(jìn)位--+---------+
|
\ +-----+
加法 `-----> | |
+-----+
+---------+
| |
+-結(jié)果--+
3b1a2a 采用這種方法的話,如果有n個字段,第一個n-1字段的進(jìn)位自動地加到下一個較高字
段的低位,所以通過折疊,只需把[n]結(jié)果字段的值與第n個字段的進(jìn)位相加, 然后 加上一
個從那次加法得到合適大小的進(jìn)位,并且重復(fù)一定的次數(shù)以獲得結(jié)果。
3b1a3 以該種方式計(jì)算生成的校驗(yàn)碼具有可在不同字長機(jī)器上使用的優(yōu)點(diǎn)。
3b1a3a 如果用適當(dāng)長度的字符串來計(jì)算生成校驗(yàn)碼,并且選擇適當(dāng)長度的校驗(yàn)碼字段,則
每臺機(jī)器的校驗(yàn)技術(shù)將會相當(dāng)理想
3b1a3a1 字段長度: 288 位 (?未翻譯:lowest common denomenator of (24,32,36))
3b1a3a2 校驗(yàn)碼長度:8位(適合所有機(jī)器的字段大小)
3b1b 如果一條消息被分割成幾組字段,每一組都采用這種校驗(yàn)方式,那么每組就會獲得一
個與次序相關(guān)的校驗(yàn)碼,并且加入到下一個組的校驗(yàn)碼中去。
3c 雙方主機(jī)進(jìn)入請求對消息的檢查確認(rèn)模式時,提供一個設(shè)備以滿足該要求。該檢查確認(rèn)
通過控制鏈接發(fā)送
4 監(jiān)控器功能
4a 網(wǎng)絡(luò)I/O驅(qū)動
4a1 輸入
4a1a 從IMP輸入消息
4a1b 對消息進(jìn)行錯誤檢查
4a1b1 校驗(yàn)檢查和
4a1b2 如果回應(yīng)模式已打開,通過控制鏈接發(fā)送“收到消息”回應(yīng)
4a1c 字符轉(zhuǎn)化
4a1c1 有相當(dāng)大的可能性字符轉(zhuǎn)化是在IMP中完成的
4a1c2 這需要BBN 進(jìn)一步研究
4a1c3 有兩個需要主要考慮的事項(xiàng)
4a1c3a 轉(zhuǎn)化由表來做還是由運(yùn)算法則完成?
4a1c3a1 一開始看起來好象用表實(shí)現(xiàn)是最佳途徑
4a1c3b 哪些消息是應(yīng)該轉(zhuǎn)化的,是不是所有都要轉(zhuǎn)化(當(dāng)然不是!!!)?那么用哪種方
法到底該如何區(qū)別?
4a1d 對頭解碼,發(fā)送消息到源指定的接收者,鏈接之
4a2 輸出
4a2a 構(gòu)造頭
4a2b 字符轉(zhuǎn)化
4a2b1 留意輸出轉(zhuǎn)換部分的備注
4a2c 生成校驗(yàn)和
4a2d 檢查鏈接狀態(tài)
4a2d1 如果在鏈接上傳送最后一條消息后沒有RFNM,則等待
4a2e 傳輸消息給IMP
4a2f 如果回應(yīng)模式是打開的,則等待
4a2f1 RFNM來自目的地的IMP
4a2f2 目的地的主機(jī)通過鏈接0發(fā)出回應(yīng)
4b 網(wǎng)絡(luò)狀態(tài)
4b1 維持網(wǎng)絡(luò)上其它主機(jī)的狀態(tài)
4b1a 如果一個IMP關(guān)閉了,那么它的主機(jī)也將關(guān)閉
4b2 維持控制鏈接的狀態(tài)
4b3 回應(yīng)其它主機(jī)發(fā)出的狀態(tài)查詢
4b4 通知其它主機(jī) 關(guān)于中斷基礎(chǔ)的主、輔助鏈接的狀態(tài)
4b5 通知其它主機(jī)關(guān)于程序使用主、次鏈接的狀態(tài)
5 可執(zhí)行操作
5a 主鏈接
5a1 需要主機(jī)號作為參數(shù)
5a1a 建立主鏈接
5a1b 連接主控制TTY到主鏈接
5a1c 通過主鏈接輸入/輸出
5a1d 詢問主鏈接狀態(tài)
5a1d1 不知道確切應(yīng)該怎么做,但是看起來它可能是有用的
5a1e 斷開和主鏈接的控制TTY
5a1f 殺掉主鏈接
5b輔助鏈接
5b1 建立輔助鏈接
5b1a 需要主機(jī)號作為參數(shù)
5b1b 返回一個類似文件索引的邏輯鏈接號。該邏輯鏈接號作為參數(shù)傳遞給 它輔助鏈接
5b2 通過輔助鏈接輸入/輸出
5b3 詢問輔助鏈接狀態(tài)
5b3a 不知道確切應(yīng)該怎么做,但是看起來它可能是有用的
5b4 殺掉輔助鏈接
5c 特殊執(zhí)行函數(shù)
5c1 透明的。通過鏈接輸入/輸出
5c1a 這可能用來阻塞通過鏈接進(jìn)行的I/O傳輸
5c1b 實(shí)例中控制器的功能是傳輸一個緩沖給它的IMP
5c1c 緩沖保持原樣
5c1c1 這意味著頭和其它控制信息必定包含在緩沖中
5c1d 這樣做的目的是為了網(wǎng)絡(luò)調(diào)試
6 初始校驗(yàn)
6a 用模擬數(shù)據(jù)電話模式的鏈接初始檢驗(yàn)網(wǎng)絡(luò)
6a1 所有消息是一個字符長
6a2 對于控制器來說,鏈接是透明的,并且由用戶程序使用特殊的可執(zhí)行操作來控制
6a2a 初始化測試有兩臺不同主機(jī)上的擁護(hù)程序運(yùn)行,舉例來說,從DDT到DDT
6a2b 通過電話鏈接或其它相似的來并行
[ This RFC was put into machine readable form for entry ]
[ into the online RFC archives by Robbie Bennet 10/1998 ]
[ This RFC was nroffed by Kelly Tardif, Viagenie 10/1999 ]
RFC 2 Host SoftWare RFC 2 主機(jī)軟件
1
1
RFC中文文檔翻譯計(jì)劃
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -