目前分類:大三上-計算機網路 (25)
- Dec 15 Sat 2012 00:40
2012/12/10 計算機網路筆記
- Nov 08 Thu 2012 12:42
第八周計算機網路-HW1
Q:找一個例子有關transport:end - to -end 和 network: point - to -point的概念。(由於還是可能不太清楚要搜尋什麼,暫定這樣嚕!)
A:
光纖儲域網路 Fiber Channel SAN
最上面主機中的DAS欲傳硬碟資料到儲域網路中,
DAS -> full redundant disk array ( end - to - end)
而其方式可經過數台的 FC switch,
DAS -> FC switch1 ,FC switch1->full redundant disk array
DAS -> FC switch2 ,FC switch2->full redundant disk array
DAS -> FC switch3 ,FC switch3->full redundant disk array (point - to -point)
(不曉得這是不是作業1要的耶?!)
參考資料:
- Nov 08 Thu 2012 11:18
第八周計算機網路-HW2
Q: 名詞解釋- encapulation 。
Ans:
什麼是encapulation?
encapulation中譯為封裝,為物件導向程式設計的"原則"之一。
讓實作和介面分開,以便讓同一介面但不同的實作物件能以一致的面貌讓外界存取。
或可以說是適當的將資訊隱藏,避免外界不使用。
運用encapulation封裝有什麼樣的優點呢?
1.可以避免不必要的資料存取現象發生,
封裝可以將資料適度隱藏,避免存取到不必要的資料,而造成問題。
2.製作適當的細節封裝可以降低ripple effect(漣波效益),
意思就是避免日後修改一個問題所帶來的連帶效應過大。
所以說,適當的封裝是日後系統易維護的良藥。
那封裝是怎麼樣的手法呢?(前提:得先去了解class概念唷!)
提供受控制的間接操作 取代 不受控制的直接存取。
舉例說明:
若有一個Person的類別,當中有身高、體重兩個屬性,若不將他們宣告成private,
那外部類別可以直接取得並設定如下,試想身高設定成-100是什麼樣的狀況又是否合理?
但只要你允許外面存取,就無法保證外界是否會對你的屬性做此類愚蠢的設定。
身高 = -100;
針對上述該如何處理呢?建議作法如下:
private 身高;
public boolean set身高(int h)
{
if(h<0) return false;
else 身高 = h;
}
我們可以藉由將身高封裝,並提供一個外部的設定管道,
然而此管道是可受控制的,如此必可確保身高的設定不會有不合邏輯的情況發生。
參考資料:
論物件導向part 3:Encapsulation
- Nov 08 Thu 2012 01:22
2012/11/05 計算機網路筆記
- Nov 02 Fri 2012 13:03
第七周計算機網路-HW2
Q: 求 nF / (us + ∑ui) (運用不等式) or 找CS,P2P數據,畫圖解釋
A: By P2P去做檔案傳輸-
先假設,
ds = server download rate
di = client i downlond rate
us = server update rate
ui = client i update rate
總共需要的檔案大小為F ,有n個client端要下載。
今天如果是CS架構-
server傳送速率= us/n 小於每個客戶端的下載速率, us/n≦ min(di).
1.Server上傳檔案的時間 = nF/us
2.Client 下載檔案的時間 = F/di (i = 1,2,3,4,......,n)
而傳檔所需的時間總和為 = Max { nF/us , F/min(di) }
今天如果是P2P架構-
1.Server上傳檔案的時間 = F/us
2.Client 下載檔案的時間 = F/di (i = 1,2,3,4,......,n)
3.從Client 可能最快上傳的速度 = us + Σui
從CS架構中得知 Dcs(CS傳檔需要的時間) ≧ Max { nF/us , F/min(di) } ----(fun1)
假設 us/n ≦min(di). [server傳給每一個client的時間都小於他們下載的時間] 從(fun1)得到 DCS≧ nF/us.
但
但從上敘CS架構第一句提到 DCS≦nF/us. 結合兩點得到:
DCS= nF/us 當 us/n ≦min(di). -----(fun2)
傳送速率= min(di).總速率 n min(di) 小於伺服端連結速率 us, us/n≧min(di).
每個客戶端皆以此速率接收檔案, 總花費時間為 F/di
定義 u=u1+u2+…+un. 假設 us≧(us+u)/n --- (fun3)
Let ri = ui / (n-1) 且 rn+1=(us-u/(n-1))/N
在此狀況下, 檔案被分為 n+1 塊. 伺服端傳送位元 ith 到 ith 端點的速率為 ri.
每個端點 i 轉送位元 ri 給其他 n-1 的端點的速率為 ri.
此外, 伺服端以 r n+1 的速率傳送位元(n+1)st塊給其他 n 個端點的速率為 r n+1.
其他端點並不會轉送(n+1)st 塊.
伺服端總傳送速率為 r1+…+r n+r n+1=u/(n-1)+us-u/(n-1)=us 伺服端的傳送速率並不會高過連結速率.
端點 i 的總傳送速率為(n-1)ri=ui.每個端點的傳送速率並不會高過連結速率.
在這個狀況下, 端點 i 接收位元的總速率為
ri+r n+1+Σj<>Irj=u/(n-1)+(us-u/(n-1))/n=(us+u)/n
每個端點接收檔案速率為 nF/(us+u)
若定義 u=u1+u2+…+un. 假設 us≦(us+u)/n ---(fun 4)
檔案分為 n 塊, 第 ith 塊的大小為(ui/u)F.
伺服端傳輸第 ith 塊到第的 ith 個端點的速率為 ri=(ui/u) us, r1+…+rn=us.
伺服端的速率並不會高過連結速率.
端點 i 的總傳送速率為 ri. 端點 i 轉送接收的位元給其他 n-1 的端點的速率為(n-1)ri.
得到(n-1)ri=(n-1)(usui)/u≦ui,
當不等式遵守fun4.
端點 i 轉送總速率小於連結速率 ui.
在這個情況下, 端點 i 接收位元的總速率為
Ri+Σj<>irj=us
每個端點的接收速率為 F/us
得知 DP2P≧max{F/us, nF/(us+u)}結合以上兩段定義結果
參考資料:
- Nov 02 Fri 2012 09:49
第七周計算機網路-HW1
Q:說明探討cookie的缺點.隱私權的問題。
A:
首先還是再次複習,什麼是cookie?
Cookie 是某些網站(Web)為了辨別使用者身份而儲存在用戶端(client side)的資料。
Cookie典型應用:當登入一個類似會員制網站時,網站往往會要求使用者輸入使用者名和密碼,
而下面有讓使用者可以勾選「下次自動登入」的選項。
如果勾選了,那麼下次存取同一網站時,使用者會發現沒輸入使用者名和密碼就已經登入了。
這正是因為前一次登入時,伺服器發送了包含登入憑據的Cookie到使用者的硬碟上。
而第二次登入時,(如果該Cookie尚未到期)瀏覽器會發送該Cookie,
伺服器驗證憑據,不必輸入使用者名和密碼就讓使用者登入了。
那麼他藏有的問題,危險,是什麼呢?
隱私權問題、安全、廣告、cookie遭到竊取或指令碼攻擊,今天來探討隱私權方面的問題-
這世界上,隱私權的問題無所不在,
諸如媽媽看女兒的信、攝影記者千方百計拍些名人的照片等都牽涉到隱私權的爭議。
不論身處何處,每個人的隱私權都不可能得到百分之百的保障,而且每個人對隱私權的定義和侵犯的感覺也不盡相同。
而網路上卻充滿了各種關於隱私權的是與非,這是為什麼呢?
網路上傳遞的無非是資訊,不論您今天是上網聊天也好、購物也罷、或到某個搜尋引擎站查資料,
在彈指之間,您的點點滴滴都可以被記錄下來。
這些記錄被商人拿去分析,然後有一天您會收到一封電子郵件:
嗨,生日快樂,要不要來片可口的提拉米蘇和一瓶xxx葡萄酒,慶祝您生日,今天只要xx元。
收到這樣的電子郵件,有些人不在意,也許認為很棒,因為自己真的很喜歡喝xxx葡萄酒,真的就去買瓶減價的葡萄酒;
但是有些人會很愕然,不禁問到為什麼有不認識的人知道我的電子郵件帳號、知道我的生日、竟然也知道自己喜歡吃提拉米蘇等。
如果這類的推銷信天天佔滿您的電子郵件信箱,您會不會不耐煩呢?
這就涉略到了隱私權的問題。
從法律來看,何謂隱私權?
隱私權,指個人人格上的利益不受不法僭用或侵害,個人與大眾無合法關聯的私事,
亦不得妄予發布公開,而其私人活動,不得以可能做成一般人的精神痛苦或感覺羞辱之方式非法侵入的權利。
是為眾多法律系統所支持的一種人身基本權利。由於它的存在,政府和民間團體的某些活動受到一定的限制。
所以...
尊重人權是基本
隱私權之保護也不僅是保護資料,更是一門技術(軟硬體之防範),同時也是一門藝術。
我們如何能做到人人有隱私,但並不是處處是匿名的狀況,實在不容易拿捏。
真正的隱私權並不是將所有的個人資料抹滅,而是做到人與人之間的互相尊重。
比方要用別人的個人資料一定要事先提醒與告知,像有些網站提供免費的email服務,
一開始網站一定會告訴您他的規矩,比如您的個人資料決不外洩,
僅止於數據化之分析(本站有 61245 會員,其中有三分之二是男性,18歲到 49 歲之中有 5489 人對買一輛新車有興趣...)。
當您成為會員時,每次上網都會看到各種不同的廣告。
但是別小看這些廣告,因為提供服務的人知道您是誰,他知道什麼東西對您有用,
所以就給您什麼廣告,同時他也知道您到底會不會買,買了什麼,買了幾次等。
您為了免費電子郵件,告訴了對方很多,您也許也得到了許多(買到想買的咖啡,但所費便宜等),
這些都基於互相信任,而大家互利互贏。
隱私權之尊重難在並不是要所有的個人資料都成為祕密,而是限制個人資料之濫用。
進入電子化的二十一世紀,人們即使面對面的機會減少,網路相遇的機會增多,
人和人之間的互信仍不可少,而個人資料之流通與個人資料之使用更是需要互相尊重與信賴。
參考資料:
- Oct 31 Wed 2012 00:54
2012/10/29 計算機網路筆記
- Oct 26 Fri 2012 13:26
第六周計算機網路-HW1
Q:舉例解釋說明執行FTP的過程/運作流程(commands, status code / phrase)
Ans:
FTP(File Transfer Protocol, 檔案傳輸協定)是一種不同電腦之間在網際網路上的通訊協定。
遵循這個協定的 FTP 軟體,會將檔案轉換成符合 FTP 協定的編碼,
讓檔案能夠在伺服器端(Server)與用戶端(Client)之間傳送。
所謂伺服器端,就是讓其他用戶登入的電腦,
而用戶端指欲從伺服器端下載檔案,或者欲將檔案傳送到伺服器的那一方;
使用網路,幾乎每個人都有在網站下載檔案的經驗。
運作流程:
1.建立命令通道的連線
如上圖所示,用戶端會隨機取一個大於 1024 以上的埠口 (port AA) 來與 FTP 伺服器端的 port 21 達成連線,
這個過程當然需要三向交握了!
達成連線後用戶端便可以透過這個連線來對 FTP 伺服器下達指令,
包括查詢檔名、下載、上傳等等指令都是利用這個通道來下達的;
2.通知 FTP 伺服器端使用 active 且告知連接的埠號
FTP 伺服器的 21 埠號主要用在命令的下達,但是當牽涉到資料流時,就不是使用這個連線了。 用戶端在需要資料的情況下,會告知伺服器端要用什麼方式來連線,如果是主動式 (active) 連線時, 用戶端會先隨機啟用一個埠口 (圖 21.1-1 當中的 port BB) ,且透過命令通道告知 FTP 伺服器這兩個資訊,並等待 FTP 伺服器的連線;
3.FTP 伺服器『主動』向用戶端連線
FTP 伺服器由命令通道瞭解用戶端的需求後,
會主動的由 20 這個埠號向用戶端的 port BB 連線, 這個連線當然也會經過三向交握啦!
此時 FTP 的用戶端與伺服器端共會建立兩條連線,分別用在命令的下達與資料的傳遞。
而預設 FTP 伺服器端使用的主動連線埠號就是 port 20 囉!
附註:何謂三向交握?
在上面的封包連接模式當中,在建立連線之前都必須要通過三個確認的動作,
所以這種連線方式也就被稱為三向交握(Three-way handshake)。
那麼我們將整個流程依據上面的 A, B, C, D 四個階段來說明一下:
A:封包發起
當用戶端想要對伺服器端連線時,就必須要送出一個要求連線的封包,
此時用戶端必須隨機取用一個大於 1024 以上的埠口來做為程式溝通的介面。
然後在 TCP 的表頭當中,必須要帶有 SYN 的主動連線(SYN=1),
並且記下發送出連線封包給伺服器端的序號 (Sequence number = 10001) 。
B:封包接收與確認封包傳送
當伺服器接到這個封包,並且確定要接收這個封包後,
就會開始製作一個同時帶有 SYN=1, ACK=1 的封包, 其中那個 acknowledge 的號碼是要給 client 端確認用的,
所以該數字會比(A 步驟)裡面的 Sequence 號碼多一號 (ack = 10001+1 = 10002),
那我們伺服器也必須要確認用戶端確實可以接收我們的封包才行,
所以也會發送出一個 Sequence (seq=20001) 給用戶端,並且開始等待用戶端給我們伺服器端的回應喔!
C:回送確認封包
當用戶端收到來自伺服器端的 ACK 數字後 (10002) 就能夠確認之前那個要求封包被正確的收受了,
接下來如果用戶端也同意與伺服器端建立連線時,就會再次的發送一個確認封包 (ACK=1) 給伺服器,
亦即是 acknowledge = 20001+1 = 20002 囉
D:取得最後確認
若一切都順利,在伺服器端收到帶有 ACK=1 且 ack=20002 序號的封包後,就能夠建立起這次的連線了。
生活應用:
利用架 FTP 的軟體(伺服器端,如 FTP Serv-U )在我的電腦上建立了 FTP站台,
並且放了一些 MP3、電影、照片、遊戲和網路小說想分享給朋友,
於是將自己設定好的 FTP 站台位址(相當於瀏覽網頁的網址)、帳號密碼給我的朋友,
我的朋友們只要在專門讀取 FTP 站台的軟體(用戶端,如 CuteFTP )上輸入這些資訊即可進入下載;
我的朋友如果有東西想分享給我,也可以利用用戶端軟體將檔案上傳到我的 FTP 站台裡。
參考資料:鳥哥的Linux 私房菜
- Oct 26 Fri 2012 13:07
第六周計算機網路-HW2
Q:Recursive & Interative 兩者間寫程式的差異性?
Ans:
在程式中,重複執行程式的形式有以下兩種:
Recuresive (遞迴)-
在具有規則的程式設計,在程式中可以不斷的呼叫自己本身,
形成無窮迴圈,因此需要設定條件來結束執行。
Interative (疊代)-
最基本的重複結構,也就是重複執行一定的步驟,
只是每一次執行時所牽涉的參數可能不同。
其中疊代比較簡單,遞迴較為複雜。
- Oct 26 Fri 2012 12:58
2012/10/22 計算機網路筆記
- Oct 19 Fri 2012 20:35
第五周計算機網路-HW2
Q:試解釋proxy server所遇到的update problem該如何解決?
Ans:
Proxy就是在網路上的某一部主機,提供一定容量的硬碟空間,供眾多的網路使用者作為cache之用。
如果你設定了Proxy Server,
那麼你在向網路上的其他主機擷取資源時(包括WWW、FTP以及GOPHER),都會透過這部主機。
也就是說,你不論要連往哪裡,其實都是只連結到這部主機,
再由它向真正載有資訊的主機提出資料擷取的要求。
Proxy收到你的要求之後,會先檢查自己的硬碟上有沒有你要的資料。
如果有,他會跟真正的主機核對檔案的大小跟日期,如果檔案並沒有更新的話,
就直接把硬碟裡的資料吐給你。
如果比對日期跟檔案大小發現檔案已有更動的話,
或者是搜尋硬碟後發現你要的資料它根本沒有的話,就會向遠端主機擷取你要的資料,
存到Proxy自己的硬碟裡,然後再吐給你。
- Oct 19 Fri 2012 20:34
第五周計算機網路-HW1
Q:搜尋html主程式呼叫另一html副程式的程式,並解釋說明之。
Ans:
By JavaScript .
<HEAD> <SCRIPT language="JavaScript"> <!-- function update_alert() { window.alert("Welcome! This site is updated daily!"); /*定義update_alert*/ } function call_alert() /*定義call_alert為呼叫update_alert*/ { update_alert(); } call_alert(); /*呼叫update_alert*/
//--> </SCRIPT> </HEAD>
- Oct 17 Wed 2012 09:32
2012/10/15 計算機網路筆記
- Oct 12 Fri 2012 20:20
第四周計算機網路-HW1
Q: 開啟主程式輸入10筆資料交由副程式排序,排序後在交由主程式印出。
Ans:
By Dev-C++
#include<stdio.h>
#include<stdlib.h>
void BubbleSort(int * a, int n)
{
int i, j, t;
for(i = n; i > 0; i--)
{
for (j = 0; j < i - 1; j++)
{
if(a[j] > a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
}
int main()
{
int a[10], i;
for (i = 0; i < 10; i++)
scanf("%d",&a[i]);
BubbleSort(a, 10);
for (i = 0; i < 10; i++)
printf("%d ", a[i]);
printf("\n");
system("pause");
return 0;
}
- Oct 12 Fri 2012 19:34
第四週計算機網路-HW2
Q: 尋找一個Socket programming 的簡單程式,並解說其概念。
Ans:
什麼是Socket(For 網路)?
Socket 就是一個網路上的通訊端點,使用者或應用程式只要連結到 Socket 便可以和網路上任何一個通訊端點連線,
Socket 之間的通訊就如同作業系統內程序 (process) 之間通訊一樣。
1.Datagram sockets(connectionless)
資料在datagram sockets間是利用UDP封包傳送,
因此接收端socket可能會收到次序錯誤的資料,且其中部分資料亦可能會遺失。
2.Stream sockets(connection-oriented)
資料在stream sockets間是利用TCP封包來傳送,因此接收端socket可以收到順序無誤、無重覆、正確的資料。
此外TCP傳送時是採資料流的方式,因在傳送時會所有資料會視情況被分割在數個TCP封包中。
(有關TCP . UDP在參閱 網路TCP/IP教本 一書內容)
應用的例子:主從式架構模型(Client/Server model)
每個網路應用程式都有一個通訊端點,一種端點是用戶端,另一種是伺服器。
根據定義,用戶端會先送出第一個封包,由一個伺服器接收。在初步接觸後,用戶端和伺服器均能開始收送資料。
依據socket所提供的服務來將它分類,然而在用戶端和伺服器上的這兩個sockets必須是同一類才能互相通訊,
也就是說,他們必須都是stream(TCP)或都是datagram(UDP)。
用戶端的應用程式必須要能找到並識別伺服器的socket,而伺服器會將它的socket命名以讓用戶端識別,
就TCP/IP而言,一個socket name包括了IP位址、連結埠編號、以及協定本身。
用戶端可用Windows Sockets的名稱伺服函式來查到標準伺服器的連結埠編號,而如果知道伺服器的主機名,
則可以Windows Sockets的主機名稱分析函式,來查得伺服器的IP。
當用戶端socket成功地聯繫上伺服器端之socket後,這兩者便形成一個“結合”(association)。
在此時,每個socket都可以由它的名字及對方的名字所形成的組合加以識別。
這個結合包括五個要素:所用的協定、用戶端IP位址、用戶端連結埠號碼、伺服器端IP位址、伺服器端連結埠號碼。
這個“結合”的觀念並不只是Windows Sockets程式設計的基礎,它也是一般網路通訊的重要觀念。
在結合中的資訊可識別及引導封包通過網路,從這一端的程式傳至另一端。
而所有的網路應用程式皆可分為五個步驟:
- 開啟一個socket
- 為socket命名
- 與另一個socket結合
- 在sockets間收送資料
- 關閉socket
參考資料:國立台灣大學電機工程學系網路與多媒體實驗
//建立socket,若成功傳回socket descriptor,若傳回-1表error
if((sockfd=socket(AF_INET, SOCK_STREAM, 0)) == -1) {
printf("Socket Error:%s\a\n", strerror(errno));
printf("Socket Error:%s\a\n", strerror(errno));
exit(1);
}
//填入family, address, port,另外,其他地方要填入0(使用bzero() function)
bzero((char*) &server_addr, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(portnumber);
server_addr.sin_addr = *((structin_addr *) host->h_addr);
//和Server建立連線
if(connect(sockfd, (structsockaddr *)(&server_addr), sizeof(structsockaddr)) == -1) {
printf("Connect Error:%s\a\n", strerror(errno));
exit(1);
}
//送資料(hello字串)給Server
if(write(sockfd, hello, strlen(hello)) == -1) {
printf("Write Error:%s\n", strerror(errno));
exit(1);
}
//從Server收資料
if((nbytes=read(sockfd, buffer, 1024)) == -1) {
printf("Read Error:%s\n", strerror(errno));
exit(1);
}
buffer[nbytes] = '\0';
printf("I am Client. I have received from Server:%s\n", buffer);
close(sockfd);
exit(0);
- Oct 12 Fri 2012 19:31
2012/10/08 計算機網路筆記
- Oct 04 Thu 2012 19:01
第三周計算機網路-HW1
Q:分別尋找Virtual和transparent於電腦應用中的例子。
Ans:
Virtual和transparent兩者的特性?
Virtual(虛擬)-像protocol(協定),實體不存在但使用的時候存在。
transparent(通透)-像interface(介面),實體存在但使用的時候不存在。
我對這裡使用要做個說明,本來上課不太了解使用形容的是什麼,
後來周三再詢問老師後大概得知意涵,
指的是-
當你使用這樣東西的時候,存在代表你必須去了解這東西如何使用的原則、原理,
如果是需要懂得,那麼我們會說這東西使用的時候存在;
反之,不存在。
Virtual和transparent在課堂上舉的例子。
Virtual→
電腦例子:Virtual Memory(虛擬記憶體) -
虛擬記憶體是位於磁碟上的空間,運用軟體的技術扮演類似主記憶體的角色,
所以是無實體的(不存在);
但我們使用時必須了解其技術進而操作實之,所以使用的時候存在。
transparent→
電腦例子:OS(作業系統)-
作業系統提供一個讓使用者與系統互動的操作介面,此介面即為實體;
但就一般電腦的使用者而言,我們不需知道此軟體的程式如何管理、運作,就可操控使用,
此為使用的時候不存在。
生活例子:騎車-
騎車-車子就是實體;
但是你不需要知道車子如何發動的原理就可操控車子,不需要發動時要念什麼咒語...等,那就是使用時不存在。
Virtual和transparent自行尋找於電腦應用的例子。
virtual-VMware(Virtual Machine)虛擬機器化
將物理機器、操作系統及其應用程式打包為一個檔案(非實體)稱之為Virtual Machine (VM)。
最常見的應用是在伺服器整合及提供多種應用程式的測試環境。
例如一家公司內部有多種不同的應用程式在多台的Linux或Windows伺服器上執行,
隨著內部應用程式需求愈多,
伺服器因為硬體成本、機房空間及電力消耗的考量,不可能無限擴充,
因此如果同一台機器可以同時執行多種作業環境,就可以將伺服器的資源充分利用。
transparent-
Transparent Proxy (TP)(代理伺服器):
是 proxy 的一種。
而TP 與其他 proxy 的不同在於使用 TP 時不用在 browser(瀏覽器)作出任何設定,
亦即 TP 的設定是用戶不可以控制的。
實際上,TP 通常由 ISP 在未經用戶同意及用戶無選擇權的情況下設定,
使用戶任何(或部分)的連接轉去 proxy server。
補充:
Q:何謂proxy?
A:Proxy就是在網路上的某一部主機,提供一定容量的硬碟空間,供眾多的網路使用者作為cache(快取記憶體)之用。
自己遐想,
生活例子的transparent應該很多,像電燈開關也算吧!
一個開關介面讓你操作,簡單觸碰就可以用了,對吧?!!
還有呀,像打電話、開門...等...(會不會越強詞奪理了呢?)
而virtual類似的例子我想法是偏向像那些法規、規則那類,
交通規則,是不是算這種呢?
- Oct 03 Wed 2012 13:42
2012/10/01 計算機網路筆記
- Sep 28 Fri 2012 16:37
第二周計算機網路-HW1
Q: 解釋ASCII和EBCDIC的功能與用途。
Ans 1: 何謂ASCII?功能、用途何在?-
ASCII (American Standard Code for Information Interchange,美國訊息交換標準代碼)
是基於拉丁字母的一套電腦編碼系統。
它主要用於顯示現代英語,而其擴展版本EASCII則可以勉強顯示其他西歐語言。
它是現今最通用的單位元組編碼系統(但是有被Unicode追上的跡象),並等同於國際標準ISO/IEC 646。
Ans 2: 何謂EDCBIC?功能、用途何在?-
EBCDIC (Extended Binary Coded Decimal Interchange Code,擴增二進式十進交換碼)
為IBM於1963年-1964年間推出的字元編碼表,
根據早期打孔機式的二進化十進數(BCD, Bindary Coded Decimal)排列而成。
是IBM迷爾級以上電腦的標準碼。
針對這兩種Code想在探討有什麼不一樣的地方-
缺點:
For ASCII: 只能顯示26個基本拉丁字母、阿拉伯數目字和英式標點符號,因此只能用於顯示現代美國英語。
(而且在處理英語當中的外來詞如naïve、café、élite等等時,所有重音符號都不得不去掉,即使這樣做會違反拼寫規則)
For EBDIC: 英文字母不是連續地排列,中間出現多次斷續,為撰寫程式的人帶來了一些困難。
EBCDIC CP037 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF | |
0x | NUL | SOH | STX | ETX | ST | HT | SSA | DEL | EPA | RI | SS2 | VT | FF | CR | SO | SI |
1x | DLE | DC1 | DC2 | DC3 | OSC | NEL | BS | ESA | CAN | EM | PU2 | SS3 | FS | GS | RS | US |
2x | PAD | HOP | BPH | NBH | IND | LF | ETB | ESC | HTS | HTJ | VTS | PLD | PLU | ENQ | ACK | BEL |
3x | DCS | PU1 | SYN | STS | CCH | MW | SPA | EOT | SOS | SGCI | SCI | CSI | DC4 | NAK | PM | SUB |
4x | SP | NBSP | â | ä | à | á | ã | å | ç | ñ | ¢ | . | < | ( | + | | |
5x | & | é | ê | ë | è | í | î | ï | ì | ß | ! | $ | * | ) | ; | ¬ |
6x | - | / | Â | Ä | À | Á | Ã | Å | Ç | Ñ | ¦ | , | % | _ | > | ? |
7x | ø | É | Ê | Ë | È | Í | Î | Ï | Ì | ` | : | # | @ | ' | = | " |
8x | Ø | a | b | c | d | e | f | g | h | i | « | » | ð | ý | þ | ± |
9x | ° | j | k | l | m | n | o | p | q | r | ª | º | æ | ¸ | Æ | ¤ |
Ax | µ | ~ | s | t | u | v | w | x | y | z | ¡ | ¿ | Ð | Ý | Þ | ® |
Bx | ^ | £ | ¥ | · | © | § | ¶ | ¼ | ½ | ¾ | [ | ] | ¯ | ¨ | ´ | × |
Cx | '{' | A | B | C | D | E | F | G | H | I | SHY | ô | ö | ò | ó | õ |
Dx | '}' | J | K | L | M | N | O | P | Q | R | ¹ | û | ü | ù | ú | ÿ |
Ex | \ | ÷ | S | T | U | V | W | X | Y | Z | ² | Ô | Ö | Ò | Ó | Õ |
Fx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ³ | Û | Ü | Ù | Ú | APC |
以上資料來源參照的是Wiki百科。
(http://zh.wikipedia.org/wiki/ASCII
http://zh.wikipedia.org/wiki/EBCDIC)
備註: 不是為了交作業而趕! 而是要學習吸收,不然毫無意義。
From www.answers.com 所搜尋的ASCII 、 EBCDIC外加一個Unicode,
ASCII: http://www.answers.com/topic/ascii
EBCDIC:http://www.answers.com/topic/ebcdic
Unicode:http://www.answers.com/topic/unicode
忘了在點回去了解這三者為何。
- Sep 26 Wed 2012 03:13
2012/09/24 計算機網路筆記