• 沒有找到結果。

第二章    文獻探討

2.5  資料傳輸驗證

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

14

從過去HTTP 壓縮的方法中,由 Jean-loup Gailly 和 Mark Adler 所創建的免費軟體 GZIP,是最常用且普遍使用的壓縮技術。 GZIP 主要是結合 1977 年 Jacob Ziv 與 Abraham Lempel 提出的 LZ77 壓縮[20]與 David Huffman 1952 年提出 Huffman[14]這兩個方法而 來,其中LZ77 作法是將處理過的字串資料編譯成字典,並將處理中的各種字串以指向 字典中相對的指標;而Huffman 使用建立的字典來減少 LZ77 找相符的字元所花費的匹 配時間,進而改善LZ77 效能問題。

Ekrem 一文同樣對 GZIP 與其他兩種常用的的壓縮工具比較與測試[33],如圖 2.8 所示,GZIP 在壓縮率與其他兩種差異不大,但是在壓縮與解壓縮的時間來看,GZIP 明 顯效能較高,因此綜觀上述文獻分析,本研究選擇以GZIP 作為 HTTP 壓縮的主要方法,

在壓縮率相當但壓縮效率較佳的結果來看,GZIP 可以滿足本研究所重視的「效能」條 件。

圖2.8:GZIP 壓縮測試結果[33]

2.5 資料傳輸驗證

由於本研究對GeoJSON 資料壓縮的編解碼過程,可能因為網路異常使得編碼資料 傳遞到用戶端發生中斷或者內容改變,因而影響資料在用戶端解碼的正確性,尤其本研 究應用差分編碼壓縮,每個數值間皆環環相扣,不能容許數值在網路上出現錯誤,在實

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

15

驗中雖然無法掌握網路狀態與異常現象的情況,但我們可以透過檢查的機制,來確保資 料傳遞前後,用戶端及伺服器間資料內容一致與正確性。

從相關文獻得到,常見的錯誤檢查方法如下:

1. 封包檢查:

從網路通訊針對錯誤檢查的文獻中得知[10],封包檢查的原理為,當資料要傳送出 去的時候,發送端會對資料進行一個校驗的動作,當接收端收到封包之後﹐會再對 資料進行校驗﹐再比對傳送層的協定中 TCP 或 UDP 檔頭上的校驗值(checksum) 是否一致。若結果不一致則認為資料已損毀﹐並要求對方重送。而UDP 的 checksum 計算較為複雜,並且容易發生資料遺失的問題,且應用上較不易,而TCP 雖然較 UTP 的傳輸可靠,但是計算與傳輸的時間較長。

2. 雜湊值驗證:

原理為,將傳輸的訊息經由雜驗計算產生檢查碼(checksum),最常見為「單向雜湊 函數」(one-way hash function) ,首先解釋何謂「單向函數」與「雜湊函數」。若我 們有一串訊息m,我們可以很容易用函數 h 來計算 h(m),無法反推回原訊息 m,則 h()函數即稱為-單向函數。而雜湊函數簡單來說,會把一個變動長度的字串轉換成 固定長度的字串,我們稱此字串為雜湊。

相關的應用如S. Bakhtiari 便利用「雜湊函數」來進行電子郵件傳輸的錯誤檢查[12],

以確認接收端的雜湊值是否與發送端相等,來決定是否儲存郵件或要求重新發送。

IBM 開發論壇一文[30]將相同包裝編碼後的檔案佈署在不同環境中,並透過「雜湊 值驗證」每一個經過編碼並包裝成的檔案是否相同。

由於封包檢查需要網路通訊的背景知識,因此在應用上較不易,而雜湊值驗證的方 法較為簡單,只需使用雜湊函數計算出雜湊值即可達到驗證的目的,因此本研究希望用 最簡單的方法達到錯誤檢查的目的。

擇」的效能評估一文[9],以 MD5(Message-Digest Algorithm 5,MD 5)的整體運算及回應 效能比其他演算法佳,因此研究採用MD5 作為資料驗證碼的計算方法。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

17

圖2.9:MD5 雜湊演算法流程[25]