RFC20 用於網絡交換的ASCII格式

RFC20 用於網絡交換的ASCII格式

標籤(空格分隔): RFC

@author : [email protected]
@time : 2017-02-15



ASCII format for Network Interchange
用於網絡交換的ASCII格式

一句話,我們建議使用標準的7位ASCII編碼,並通過高位補0的方式,將7位ASCII編碼擴展成爲8bit,以得到一個完整的字節。這樣在主機之間做基本連接的時候,就可以直接使用USAS X3, 4-1968中已定義好的標準編碼。一行字符的結束字符是由遠程主機定義的,例如,SRI使用”.”(ASCII X’2E’ 或者 2/14)來作爲行的結束字符,而UCLA則使用 “回車”(X’OD’ 或者 0/13)作爲行的結束字符。

注:SRI是一個研究機構;UCLA是加利福尼亞大學洛杉磯分校。可以看出,當初網絡剛開始興起的時候,基本的字符編碼還並沒有統一,所以纔會有這篇文章,用於統一字符編碼,以及一行字符的結束符。這篇文章是UCLA於1969年提出的,所以後後來使用的就是“回車”了

-

注: 關於“回車”(carriage return)和“換行”(linefeed)這兩個概念很有意思。在計算機還沒有出現之前,有一種叫做電傳打字機的玩意,每秒鐘可以打10個字符。但是它有一個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字符。要是在這0.2秒裏面,又有新的字符傳過來,那麼這個字符將丟失。於是,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字符。一個叫做“回車”,告訴打字機把打印頭定位在左邊界;另一個叫做“換行”,告訴打字機把紙向下移一行,這就是“換行”和“回車”的來歷。
後來,計算機發明瞭,這兩個概念也就被般到了計算機上。那時,存儲器很貴,一些科學家認爲在每行結尾加兩個字符太浪費了,加一個就可以。於是,就出現了分歧。Unix系統裏,每行結尾只有“換行”,即“<\n>”;Windows系統裏面,每行結尾是“ <回車><換行>”,即“\r\n”;Mac系統裏,每行結尾是“<回車>”,一直沿用至今



USA Standard Code for Information Interchange
美國信息技術標準編碼(ASCII)

1 使用範圍

本字符編碼集用在各信息處理系統、通訊系統及相關設備之間的一般信息交換上。

2 標準編碼

image_1b8vm218ugrv1glt1d1k8ipiei9.png-110.9kB

注:由於ASCII編碼的最高位並沒有被使用,所以也有一些基於ASCII擴展的編碼方式,比如擴展了“僧伽羅語”的編碼,就是使用了最高位做了編碼擴展。

3 字符表示和編碼定義

標準的7位字符編碼定義:b7 是最高位,b1 是最低位,舉個例子:
字符K 在ASCII碼錶示是第11行,第4列,其二進制表示爲

—————–image_1b8vniokg172f6uc1p58vi21kdhm.png-8.7kB

字符在ASCII碼錶中的位置,也可以作爲字符的表示方式,還是字符K ,由於其在第11行,第4列,所以可以表示爲“column 4, row 11”或者是“4/11”

編碼表中的(b4b3b2b1) 所對應的十進制數,就是編碼表的行號;而(b7b6b5) 所對應的十進制數,就是編碼表的列號。

上面的編碼表可以簡寫爲:ASCII或者USASCII

ASCII(發音爲as’-key)、USACII(發音爲yous s as’-key)的具體意義,通常是由其最新的編碼標準確定,爲了明確的指明一個編碼標準,一般會在其後添加兩個數字,以代表該編碼方式發佈的年份,比如:“ASCII 63”或“USASCII 63”。

注:現在所使用的ASCII編碼最終確立於1968年,然後再沒有改變過,也就是“ASCII 67”

4 圖例

注:圖例的英文原文是“Legend”,這裏將其翻譯爲圖例並不好,但是我沒有想到更好的翻譯,暫且先用這個

4.1 控制符

注:這裏主要是對標準編碼中的代碼做基本解釋

代碼 英文解釋 中文解釋
NULL null 空字符
SOH Start of Heading (CC) 頭信息開始(通訊控制)
STX Start of Text (CC) 文本信息開始(通訊控制)
ETX End of Text (CC) 文本信息結束(通訊控制)
EOT End of Transmission (CC) 傳輸結束(通訊控制)
ENQ Enquiry (CC) 查詢(通訊控制)
ACK Acknowledge (CC) 應答(通訊控制)
BEL Bell (audible or attention signal) 鈴聲
BS Backspace (FE) 退格(格式控制符)
HT Horizontal Tabulation (FE) 水平製表(格式控制符)
LF Line Feed (FE) 換行(格式控制符)
VT Vertical Tabulation (FE) 垂直製表(格式控制符)
FF Form Feed (FE) 換頁(格式控制符)
CR Carriage Return (FE) 回車(格式控制符)
SO Shift Out 移出
SI Shift In 移入
DLE Data Link Escape (CC) 數據連接退出(通訊控制)
DC1 Device Control 1 設備控制1
DC2 Device Control 2 設備控制2
DC3 Device Control 3 設備控制3
DC4 Device Control 4 (Stop) 設備控制4(停止)
NAK Negative Acknowledge (CC) 否定應答(通訊控制)
SYN Synchronous Idle (CC) 同步閒置(通訊控制)
ETB End of Transmission Block (CC) 傳輸塊結束(通訊控制)
CAN Cancel 取消
EM End of Medium 介質結束
SUB Substitute 替代
ESC Escap 溢出
FS File Separator (IS) 文件分隔符(信息分隔)
GS Group Separator (IS) 組分隔符(信息分隔)
RS Record Separator (IS) 記錄分隔符(信息分隔)
US Unit Separator (IS) 單元分隔符(信息分隔)
DEL Delete [注1] 刪除

[注1]:嚴格意義上講,DEL不是一個控制符

4.2 圖形化符號

列/行 符號 英文名稱 中文名稱
2/0 SP Space (Normally Non-Printing) 空格 (通常是非打印字符)
2/1 ! Exclamation Point 感嘆號
2/2 Quotation Marks (Diaeresis [注2]) 引號 (分音符號 [注2])
2/3 # Number Sign [注3,4] 數字符 [注3,4]
2/4 $ Dollar Sign 美元符
2/5 % Percent 百分號
2/6 & Ampersand and對應的符號
2/7 Apostrophe (Closing Single Quotation Mark Acute Accent [注2]) 省略符號 (右單引號,重音符號 [注2])
2/8 ( Opening Parenthesis 左括號
2/9 ) Closing Parenthesis 右括號
2/10 * Asterisk 星號
2/11 + Plus 加號
2/12 , Comma (Cedilla [注2]) 逗號 (變音 [注2])
2/13 - Hyphen (Minus) 連字號 (減號)
2/14 . Period (Decimal Point) 句號(小數點)
2/15 / Slant 斜槓
3/10 : Colon 冒號
3/11 ; Semicolon 分號
3/12 < Less Than 小於
3/13 = Equals 等於
3/14 > Greater Than 大於
3/15 ? Question Mark 問號
4/0 @ Commercial At [注3] 商業符號 [注3]
5/11 [ Opening Bracket [注3] 左方括號 [注3]
5/12 \ Reverse Slant [注3] 反斜槓 [注3]
5/13 ] Closing Bracket [注3] 右方括號 [注3]
5/14 ^ Circumflex [注2,3] 抑揚符號 [注2,3]
5/15 _ Underline 下劃線
6/0 ` Grave Accent [注2,3] (Opening Single Quotation Mark) 沉音符[注2,3] (左單引號)
7/11 { Opening Brace [注3] 左花括號 [注3]
7/12 | Vertical Line [注3] 豎直線 [注3]
7/13 } Closing Brace [注3] 右花括號 [注3]
7/14 ~ Overline [注3] (Tilde [注2]; General Accent [注2]) 波浪線 [注3] (西班牙語發音符號 [注2]; 普通重音 [注2])

[注2]:對於 2/2, 2/7, 2/12, 5/14, 6/0,7/14 這幾個位置上的符號,有另外的使用方法,參見附錄A, A5.2
[注3]:在發送方和接收方沒有達成統一的情況下,這些符號不可以用於國際交流。(見附錄B4)
[注4]:在不需要使用#的應用中,2/3可以代表英鎊

5 定義

注:這一節是對上一節的符號意義的詳細說明

5.1 字符綜述

(CC)Communication Control 通信控制符:功能性字符,用於控制或者協助網絡進行信息傳輸。

(FE)Format Effector 格式控制符 : 功能性字符,用於控制信息在顯示設備上的位置和佈局。

(IS)Information Separator 信息分隔符 : 功能性字符,用於對信息進行分隔和限制,讓信息合乎邏輯,這種字符一共有四個,這四個字符之間具有層次關係。

5.2 控制字符

  • NULL(Null): 空字符,是一個所有位全爲0的字符,在通信過程中,這個字符可用於時間填充(time fill)和介質填充(media fill)。

    注:沒有理解什麼是時間填充和介質填充

  • SOH(Start Of Heading):頭信息開始標識符,是一種通信控制字符。所謂頭信息,指的是由機器可識別地址或者路由信息組成的字符串。STX的作用是頭信息結束標識符。

  • STX(Start of Text):文本信息開始標識符,是一種通信控制字符。所謂文本信息,指的是一個被看做爲信息實體,並完整的傳輸到最終目的地的字符串。一般來說,文本信息被稱爲”text.”。由於文本信息前面是頭信息,所以STX也可以認爲是以SOH開始的頭信息的結束符。

  • ETX(End of Text):文本信息結束標識符,是一種通信控制符。用於表示以STX開頭的文本信息的結束。

  • EOT(End of Transmission):傳輸結束標識符,是一種通信控制符。用於表述一次數據傳輸的結束,一次數據傳輸可能包含不止一個文本信息以及其對應的頭信息。

注:基於上面這四個通信控制符基本上可以確定,網絡通信過程中一個基本的數據傳輸單元,以SOH開頭,以ETX結束,如下圖所示,而一次數據傳輸中可以有多個基本數據傳輸單元。
———-image_1bec3obv3hjvpb6129o1a3314i99.png-5.8kB

  • ENQ(Enquiry):查詢符,是一種通信控制符。準確的說,這個符號代表的意思是“請求(request)”,起作用是向遠程主機請求數據,一般請求之後是等待應答。這裏請求的內容非常的廣泛,比如“WRU(who are you)”請求,其作用是識別遠程主機,也可能是用於查詢遠程主機的狀態,也可能同時表示兩種功能。

  • ACK(Acknowledge):肯定應答符,是一種通信控制符。ACK是主機作爲信息接收方,在準確的接收到數據之後,向信息發送方返回的一個應答消息是所使用的控制符,並且其代表的意思是肯定應答,即數據接收正常。

  • BEL(Bell):當主機出現某些特殊情況,需要人工處理的時候,就會使用這個符號(或者叫做指令),它可以控制警鈴(或者其他的可以引起人注意的設備) 來引起人的注意。

  • BS(Backspace):退格符,是一種格式控制符。 讓字符打印位置後退一個打印字符的空間,這個後退操作只能在同一行中執行。退格符在顯示設備中也可以使用。

  • HT(Horizontal Tabulation):水平製表符,是一種格式控制符。讓字符打印位置水平向前移動到下一個預先設定好的位置,每一行中可以有多個預先設定好的位置。水平製表符在顯示設備和打孔機中也可以使用。

  • LF(Line Feed):換行符,是一種格式控制符。讓字符打印位置移動到下一個打印行,換行符在顯示設備中也可以使用。在某些情況下,換行符代表的意思可以是控制符:“新行”(NL),新行符指的是讓字符打印位置移動到下一個打印行,並且是下一打印行的第一個字符打印位置,這需要發送方和接收方共同約定才能使用。

  • VT(Vertical Tabulation):垂直製表符,是一種格式控制符。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章