eric97979 的部落格

[筆記] 無線與行動網路

IEEE802.11 :

由IEEE所定義的無線通訊標準,無線區域網路的基本架構。而IEEE802即為區域網路的標準。

802.11架構中的基本單位稱做 BSS(basic service set),通常是由一個基地台與多個AP(Access Point - 存取點)所組成,而每個BSS再連結到網路,使得範圍內的使用者都能使用無線網路功能。

802.11有各種版本,最原始的就是802.11a,隨著網路技術的發展,逐漸發展出802.11b、c、...。
隨著版本發展,它們所提供的速度、效能也有提升。

WiMAX(Worldwide Interoperability for Microwave Access,全球互通微波存取):

IEEE802.16標準,其發展目的是為了讓無線網路能夠傳遞更大量的資料、範圍更加廣大,而且傳輸速度可以達到ADSL的標準。

目前WiMAX尚未普及,AP正在鋪設中,現在有些無線通訊業者,正準備擴展該技術,在未來幾年 WiMAX會逐漸發展。

行動電話技術,通常以G(Generation)來歸類。

1G:採用類比訊號傳輸,僅支援聲音訊號傳輸

2G:跟傳統類比訊號不同的是,2G系統已經採用數位訊號來傳遞,可是通常用來做聲音的傳輸,軟體、E-mail等無法支援直接傳輸。而2G手機可支援簡訊的功能。

2.5G:2G發展至3G的過渡技術,功能性介於2G與3G之間。通常傳輸速度小於等於3G。

3G:能夠同時傳送聲音及數據信息(例如E-Mail)。3G的代表特徵是提供高速數據業務,速率一般在幾百kbps以上。結合網際網路、行動通訊、多媒體等技術。

4G:除了3G功能以外,提供了更多不同的服務,不侷限於通信,金融、醫療等應用,並且能夠與網路做更多結合,將寬頻無線化,提供更快的速度、更方便的服務。

[心得]Web2.0 - AJAX心得

相信不少人有用過AJAX,這個技術在網頁製作方面提供不少方便的功能。

全名:Asynchronous JavaScript And XML

它最大的特點是非同步傳送資料及更新頁面,讓使用者在執行功能後 不需要重新載入整個頁面,提升瀏覽的流暢度。

從名字上可看出AJAX不是一個獨立的新語言,算是Javascript的延伸,一種撰寫的技巧。

 

語法方面,它主要是先建立一個XMLHttpRequst然後經由GET或POST的方式將資料傳到別的頁面,別的頁面處理完以後再將結果送回來

不過在實作的時候,如果像這樣慢慢建立起來,得花上不少時間。網路上有些地方有提供Open source的AJAX工具

像是DOJO Toolkit 還有Yahoo! User Interface Library等等可以參考

http://dojotoolkit.org/

http://developer.yahoo.com/yui/

像我們期末專題使用的AJAX部分,即是使用Prototype.js裡的函式 來達到非同步更新的效果。

資料來源 取自 http://www.prototypejs.org/

裡面提供了Javascript Framework 供設計者使用,檔案裡面有不少函式可以套用,如果不清楚如何使用的話,網路上有不少教學網站或文章,可以好好利用。

AJAX固然好用,可是使用AJAX也有些心的問題產生,如同老師說過  "上一頁"跟"下一頁"的定義會變得模糊不清,有時候點錯東西,按"上一頁"按鈕 會有無效的情況。

另外就是..AJAX主要是在Client端上執行,安全性也是一個大問題(其實不只在AJAX或Javascript,整個網際網路,安全問題一向是大宗)。AJAX提供了Client與Server之間互動的新模型,也意味著新模型挑戰傳統的安全方法,無論在設計或使用方面的確值得去考慮這項問題。

 

[心得]Web2.0專題心得

因為Web2.0 Project已經發表,所以貼在板上應該沒問題

組名:HAHAPoint

專題名稱:PAPARAZZI GO!

http://122.116.100.248/FRAME/index.php

顧名思義,這個專題作的內容有點類似狗仔隊的東西,主要做追蹤與新聞的功能。

由於黑心食品的氾濫,加上前陣子毒奶粉事件,使得國人對於黑心食品有一定程度的關注,所以用這個事件當作靈感 做出這個網頁。

網頁內容主要使用Web2.0的相關技術,從基礎的HTML語法到使用Web API。

整個架構主要有以下幾個功能:

1.截取新聞

2.列出各個新聞標題

3.影片搜尋

4.圖片搜尋

5.標示地點

而我自己負責的部分 主要是影片搜尋、新聞截取、細部調整、支援Debug、整合網頁的部分

●影片搜尋

這個部分主要是用關鍵字來搜尋Youtube影片,原本以為是一個蠻簡單的工作,一開始就直接把關鍵字丟到搜尋的URL當參數來搜尋

然後將搜尋結果的整個頁面放進網站,結果發現蠻大的問題。

第一個問題是 跑出來的結果,除了搜尋頁面以外 其它拉哩拉雜的文字也會出現(例如頻道、登出、登入、訂閱等文字),沒辦法只顯示搜尋出來的結果。

第二個問題是 它只能在跑本機的時候才能運作(127.0.0.1),如果是使用網際網路IP 整個頁面會跑不出來。

因此最後只好捨棄這種做法,改用抓取Feed的方法。

Youtube網站上可以找到抓取Feed的網址,搜尋結果的Feed是XML的格式,用PHP來解析、抓取我們自己想要的資料。

PHP支援DOM語法,因此只要知道DOM的語法與運作原理 就可以抓到想要的資料,最後再把抓到的那些資料 印到頁面上即可。

這個部分從開始到完成 大概花2週的時間,因為中間有弄其它東西,所以暫時擱著 後來想到才繼續動。

 

●新聞截取

這部分可以說是整個專題的起頭,新聞搜尋主要是用Yahoo Pipes 去抓取Google的新聞,用關鍵字來過濾我們想要的新聞。

Yahoo Pipes提供的Feed格式不少,例如RSS、PHP、JSON都有,一開始是使用JSON來抓取新聞標題與內文然後顯示出來,可以參考頁面左下的新聞截取部分。而新聞我們抓到以後 會寫入Google Calendar,原本想說傳參數給另外一個負責寫入Calendar的頁面,可是卻發現參數怎樣弄都傳不過去,因此只好先作罷 改用PHP Feed來抓取(Google Calendar的API主要使用PHP來讀寫)。

 

●整合網頁

這個頁面主要都使用AJAX的Prototype來運作,例如點選新聞標題 就會顯示該新聞的相關位置,而左下方的新聞欄 會顯示出新聞內容,來源主要來自Google Calendar儲存的內容。

一開始在傳值的時候 遇到亂碼的問題(Youtube搜尋、Calendar抓取都有遇到),解決方法是先將抓取到的字串 轉換成URL使用的編碼

例如:輔大 → %E8%BC%94%E5%A4%A7

將轉換後的字串丟進URL裡,另外一端的PHP就會用GET抓到它 並且還原成正確的中文。當內容牽扯到中文的時候 常常就會有這種麻煩,因此這個處理方法對我們來說頗重要的。

總而言之,整個網頁的分頁 會彼此傳值,達到即時更新 不需要重整網頁的效果  在操作方面會流暢許多。

 

感想:上過這門課以後,把一些基本的技術都摸過了,補足以前上Web Fund的時候也沒有接觸到的部分。整個專題 大概從期中考後開始,光是截取資料的部分就花了不少時間在弄,只能說..萬事總事起頭難,當開頭弄好之後,整個專題方向就更加明確,製作起來有個共識,不會有人多手雜的情況。

多虧組員們的互相支援、cover 讓專題可以有一個樣子,也讓人體會到分工合作的重要性,如果是一個人做整個專題(從摸到開始製作)1~2個月要弄出來可能有些困難,畢竟我們只是一般人 不像一些系上的強者 :)

[筆記] 網路概論-Transport

1.
Transport Layer 用於連接不同主機之應用程式行程,提供了"Logical Communication"(邏輯通訊)的服

務。在傳遞訊息時,會將Application的訊息(Message)轉成"Segmant"封包後再送出去。

2.
Transport Layer與Network Layer的比較:

Transport Layer-處理不同主機之行程(Process)的通訊。
Network Layer-處理不同主機(Host)之間的通訊。

以課本給的比喻作範例:
兩個家裡各有多個小孩,兩家各有一位負責收信件並分發給收件者,都使用傳統的郵政系統。

多個小孩:Process
負責收、分發信件者:Transport Layer(負責不同Process之通訊)
郵政系統:Network Layer(負責不同家庭,也就是Host的通訊)
則信件相當於應用程式的訊息。


3.
Demultiplexing(解多工)與Multiplexing(多工)

Demultiplexing:透過Transport Layer 將接收到的資料送給正確的Socket
Multiplexing:從Socket中接收資料,並且與Header一起封裝成Segment後丟給Network Layer。
              其中,Header是用來解多工用的)。
Segment中會記載著要傳輸的訊息 以及對方的Port編號,Port用來區別同主機的不同應用程式或Socket

4.
UDP與TCP連線

相較於TCP,UDP是叫簡便的通訊方式,它只會執行必要的傳輸工作,在連線方面,用戶與伺服器端不會

做握手(Handshack)的動作,而是直接把訊息封裝成一個Segment丟給Network Layer,Network Layer再

將UDP Segment做成封包傳給目標。

而TCP多了一些檢查步驟(連線握手、壅塞控制機制等等),可以確保資料的可靠度(例如文字網頁、檔案

傳輸等),相對的 速度方面比UDP慢了些。
TCP在接收資料時,會把資料送到目的地的緩衝區(兩端握手時建立的 傳送端也有傳送緩衝區),之後應

用程式再從緩衝區讀正確的訊息。

UDP的優點在於不受很多功能與機制的控管(例如TCP的壅塞控制),不需要建立連線,也就是省略握手的

步驟,可以減少下載的延遲時間。
多媒體、網路電話等應用可以容許少量封包遺失,資料可靠性並非最關鍵的因素,所以一般很多都使用

UDP連線。
但現在TCP越來越常被使用在多媒體的應用上,而有些組織會阻擋UDP連線,最重要的是,當使用UDP高速

率傳輸的使用者越來越多,而且開啟連線數量越多時,Router可能會無法負荷導致大量封包無法通過

Router傳輸,最後造成封包大量遺失的情形。

資料的可靠性是UDP無法保證的部分,所以有人研發出辦法,讓應用程式來達成資料的可靠傳輸,但這在

技術上並非簡單的工作。

5.
可靠資料傳輸(Reliable Data Transfer  簡稱rdt)

資料可靠度是網路傳輸中非常大的問題之一。

在TCP抽象服務的模型中(也算是理想狀態),每個應用程式的訊息都透過網路上可靠的通道來傳輸,
然而現實中的困難是 可靠傳輸協定的下層是不可靠。也就是說,現實中存在著許多狀況,例如資料位元

錯誤、封包遺失等等 造成資料的不可靠,必須建立有效的傳輸協定。

rdt1.0
rdt的模型主要是用FSM(Finite State Machine-有限狀態機)來定義狀態與操作方式。
rdt1.0是假設使用最可靠的通道情況。
主要有傳輸端與接收端兩個部分,資料傳輸方式很單純,傳輸端等待上層傳資料進來,收到上面的資料

以後裝成封包送出去。
接收端收到封包以後,將封包解開,把訊息往上送。

rdt2.0
2.0考慮到了資料錯誤的情形,當接收端收到資料,會有ACK(相當於OK)與NAK(相當於Send Again)兩種訊

息,當資料接收到以後確認無誤,會送ACK給來源已確定資料無誤。當偵測到錯誤時 會傳回NAK通知來源

端再送一次。

rdt2.1
2.1新增了sequence number,同樣使用ACK與NAK來確認訊息,封包的號碼可以用來確認是否重新傳輸封

包。
例如接收端在等待編號0的封包,結果收到封包1,此時會回傳ACK1給來源端,而正在等候ACK0的來源端

收到ACK1 表示封包0可能遺失,所以會再重送封包0。

rdt2.2
一次使用兩種確認訊息 處理起來比較費力,因此2.2中移除NAK的訊息,在ACK中加入編號 就可以達到確

認與否認的效果。

rdt3.0
3.0同時考慮到封包遺失與資料錯誤的情形,除了使用ACK機制,另外在傳送端多了倒數計時器,封包送

出去如果超過時間仍未收到ACK或是收到不正確編號的ACK,則再送出封包一次。


6.
Stop-and-Wait 與 Pipelined Protocol

rdt3.0雖然確保了資料的可靠性,可是它採用Stop-and-Wait機制,效能方面無法讓人接受,因為送出封

包後必須等待對方回應才能繼續傳送,假如連線Delay太長,整體效率會嚴重低落。

為解決這問題,後來發展出 Pipelined Protocol,可以讓傳送端同時傳送多個封包不需等待確認
相對的,傳輸端與接收端 都必須增加封包的暫存空間與序列號碼。當其中的封包出現錯誤時 有不同的

回覆方法,主要有Go-Back-N(GBN)與Selective Repeat(SR)兩種方法。

Go-Back-N(GBN)
傳輸多個封包 必須有個暫存的區域,暫存的區域中存在著窗格大小(Window Size) N,存放著各種封包(

已確認、已送出但未收到ACK、未送出的封包等等)。
接收端也會開啟窗格來接收封包,會記著目前收到封包的編號,假設收到順序不對的封包N+1(等待接收

第N個,下一個傳來的卻是第N+1號),會將N以後的封包全部丟棄,此時傳送端一直沒收到ACK(N),會把N

號以後的封包全部重新傳送出去。

Selective Repeat(SR)
GBN的傳送方法 往往會造成不必要的重複,因此SR的傳送方法 就是只針對未收到的封包做重新傳輸的動

作。首先規劃出大小為N的窗格來限制大小,窗格的基底會停留在最近一個尚未收到ACK的封包區域,當

封包時間逾時會重新送出封包,直到收到該封包的ACK 窗格基底才會往前移動。


7.
Flow Control(流量控制)

雖然TCP接收端有緩衝區,但有時候應用程式讀取訊息的速度小於傳輸端傳送訊息的速度,假如緩衝區滿

了還繼續傳資料過來,會造成緩衝區溢位的情況,為避免此狀況,設了一個"receive window(接收窗格

簡寫成rcvWindow)"變數,用來記錄緩衝區剩餘的空間有多少。

當接收端收到訊息後,會回傳給傳送端rcvWindow的數值,如果rcvWindow=0,傳送端會停止傳輸資料
但這個方法會造成問題,假設停止後 接收端一直沒訊息通知傳送端,此時傳送端不會運作,而接收緩衝

區也是空的,資料傳輸停止。
因此當接收端rcvWindow=0時,傳送端會持續傳送一個1byte的區段給接收端 以確認緩衝區可否繼續接收

資料。

[Lab0 讀書心得] 我們比我聰明(We are Smarter than Me!)

讀書心得

書名:We are Smarter than Me (中譯:我們比我聰明)

資工三甲 495511416 陳毓文

 

這本書主要介紹許多Web2.0的經營模式,並以許多公司為例子 讓讀者可以輕鬆了解Web2.0的特色以及該注意的地方。

 

第一章談到網路普及與其發展,有觀察家將發展分為Web1.0Web2.0兩大階段。Web1.0主要靠的是網路公司或廠商單方面提供訊息給消費者,有壟斷網路資訊的現象。在Web2.0的時代,有一大半資訊是消費者所提供,但光靠使用者在開發還不夠,有些廠商會將自己開發的東西(例如程式碼)給消費者改善,再把做好的成品賣給人。

例如軟體公司 「開放原始碼」(也有人稱「群眾外包」)的行為可以讓消費者根據自己的需求來修改程式(例如Firefox),藉由網路廣大的人群幫忙,往往可以達到低成本、吸引消費者的好處。透過網路,可以將「群聚智慧」的優點展現出來。網路使用者之間的創意交流、競爭往往能讓整個網路社群動起來。

最經典的例子是維基百科(Wikipedia),其內容在短時間內就即將追趕上大英百科全書,發展速度相當快。

 

第二章主要介紹一些由業者所提供的平台。

以「釀托邦」(Brewtopia)為例, 架設一個網站並邀請少數朋友來提供啤酒的資料並且讓會員們自己投票 來決定啤酒的類型(顏色、酒精濃度等等),幾週之後會員即增加到上萬人,吸引著來自世界各地的啤酒愛好者。

本章還有介紹一些企業,用群眾外包來協助開發產品,並非全由內部員工負責。提供有實際價值的事物吸引網路上的群眾來幫忙解決問題,多半都獲得相當好的成效。然而,其目的不是為了取代內部員工,而是為了補其不足。

 

說到平台,書中有提到Linden Lab3D虛擬平台:Second Life

Second Life提供了一個沉浸式的環境,可以讓使用者感覺身處在另一個世界,人們在裡面能夠自行設計、發明物件等等。甚至有音樂團體在其中舉辦過演唱會,多所大學也在裡面設立的虛擬教室。有些人把它當作遊戲,但許多企業把它當作是群眾外包的發展平台,在遊戲內吸引其他使用者,讓他們幫忙解決問題或是提供創新的點子。Linden Lab已釋放瀏覽程式的原始碼,可讓線上開發者可以新增、改善功能 ,使Second Life的內容與功能更加完善。

 

第三章談的是使用者與使用者之間的互助、交流。群眾外包的一個模式,就是廠商提供一個空間,讓消費者們互相發問、提供資訊、解決問題等等。甚至有些使用者能夠回答或提出專業方面的問題與意見,能夠幫助廠商改善他們的產品。當然,網路上的資料會有不可靠的可能,所以應該提供機制,讓使用者們互相評分以增加資料的可信度。但並非所有問題都交給使用者來回答,有些問題是由廠商負責,這時候客服的界線得劃清楚才好。

 

廠商收集了大量的資訊改善自家產品,最後的目的當然是賣給消費者,當消費者對於產品很滿意的時候,通常會推薦給親朋好友使用,通常由親友推薦的,聽信者會比較多,經由口碑相傳 可以達到非常好的推銷效果,所以有人曾說過:消費者已然成為行銷者。這句話說明了 消費者之間的推薦行為,比單純用廣告宣傳更加有用。

這也是Web2.0的優勢,透過網友之間的口耳相傳,可以擴展更大的顧客群。有些網站提供消費者介紹、推薦產品,並且使用評鑑機制,這儼然成為一個推廣產品的平台,有時候廠商會介入平台推銷自己的產品或發表諂媚的評論,這時候管理者得適時移除那些類型的文章,以確保評論的公正性。

 

因為Web2.0的開放性,使得許多交易都能透過網路來達到買賣的效果,像現在許多拍賣網站提供了不錯的環境,吸引一些轉售商在這些平台中販賣產品,另外也可以吸引特定族群(對商品有興趣的同好)互相交流心得或推薦商品等等。

金錢交易講求到信用問題,所以很多拍賣網站都會提供消費者評鑑的功能,信用好、服務佳的賣方能夠獲得消費者良好的評價,藉此增加許多商機。

 

網路除了可以互相交易,甚至可以達到集資、借貸的效果。實際上,這類型的社群融資在古代就有出現過,多位成員集資互相合作、幫忙,現在則是應用到網路上,讓其拓展的範圍增加。

借貸跟交易一樣 牽扯到信用的問題,所以通常網站都會有些機制來評鑑 或是做一些限制,讓其他社群成員能夠評估風險。

除了提供借貸,共同投資也是很重要的一部份,以「Common Angels」為例,一開始是由一群人投資發展,組成贊助者社群,資助一些新創的資訊業者,藉由眾人智慧來評估贊助哪些公司,經由多數人討論以避免少數投資者獨斷做出決定。後來發展很成功,社群的成員也越來越多。這即是群眾智慧與群眾外包的一個例子。

 

雖然群眾智慧的企業有開放性與自由性,社群成員可以自由發會自己的能力創意,但如果完全只靠群眾,會忽略掉許多管理階層的東西(例如經營方向、行銷配送與生產方式等等)最後導致失敗。

所以整個企業還是需要少數人負責管理、領導。有許多成員會對企業沒有概念、迷網,所以管理者要適時提供指導與方向,確定方向之後 再交給群眾發展,可確保民主性又不至於讓眾人迷網。

 

總結:

Web2.0時代,是一個具有開放性的網路環境,使用者可以自由參加自己偏好的部分並與同好互相交流心得與知識。藉由腦力激盪 能產生出許多令人驚訝的成果,所以現今許多企業不敢小看它,聰明的企業會運用群聚智慧的優勢來改善自己的產品、服務等等。書中也給了不少案例可以參考。

而人多時候總會有些問題產生,像是資料的可信度、網路安全,甚至是人為造成的混亂等等 都是Web2.0待改進的重要議題。目前許多系統管理者正積極發展有效的機制 能夠改善整個使用環境,讓以上問題所造成的影響 能夠降到最低。當然也需要使用者能夠自制,才能讓整個系統能夠順利運作。

[網路概論] Application Layer筆記

Application Layer是Internet protocol階層中的最上層,像是HTTP、FTP、SMTP都是屬於這個層次

本章主要談到的是Client&Server、HTTP、FTP、SMTP(包含POP3、IMAP)、DNS(domain name system)還有

P2P等應用層次

1.Client&Server:

Server 伺服器端,主要接受client端的要求並給予回應,通常會有固定的IP address,總是處在啟動狀

態,有些較大型的server甚至使用多部主機 將資料分散儲存。

Client 用戶端,主要像server提出要求並接收資料,通常是使用浮動IP,而且client之間不一定會直接

聯繫(這方面 可使用P2P軟體來做)。

protocol的service有分TCP和UDP兩種使用。TCP時,client有要求的話,server會做出回應(response)

,而UDP不一定會。資料傳輸方面,假設封包內的資料遺失了一截,使用TCP的情況下,會重新傳送,UDP

則否,也就是說 使用UDP 資料loss的機率比較大。

 

2.HTTP(Hypertext Transfer Protocol)主要使用TCP connection,預設port:80

HTTP現在存的主要有1.0和1.1兩種。

HTTP分成Nonpersistent HTTP與Persistent HTTP。

Nonpersistent HTTP:當每傳送一個物件,TCP connection就必須做一次,假設client跟server要求多

個檔案,當第一個檔案傳輸後 會關閉連線,要下載第二個檔案的時候 必須再對server做一次要求(要求

->回應->接收 整個步驟都會重新做)。這種模式主要為HTTP1.0使用,相較於HTTP1.1 較費時,因為有一

部份的時間都花在建立連線上。

Persistent HTTP:接收多個物件時,client只需要向server建立一次連線即可,較省時。主要為

HTTP1.1使用。

Cookie:針對某些網站,將辨識用戶身分、使用紀錄、或是其它動作等等的資料儲存在client端,使用

者下次登入該網站時,可以省去再次設定或登入的動作。

Proxy Server:代理伺服器,又稱做Web cache。client端不直接連向指定的server,利用proxy server

為跳板,連到指定server去。Client先將requset傳送給proxy,proxy再把request傳給指定的其它

server。proxy server同時兼任client端與server端。

 

3.FTP(File Transfer Protocol):主要用於檔案傳輸,FTP Server預設port:21。

實際上,使用一個FTP傳輸檔案,會用到2個連線,一個是control connection(port:21),另一個是

data connection(port:20)。當連線建立以後,指令是經由port21傳輸,當傳輸檔案的命令下來以後,

會開啟另外一個連線來傳輸資料,這就是為什麼使用FTP的時候,即使顯示連線中斷、或是瀏覽檔案時 

檔案仍可以繼續傳輸的原因。

 

4.Electronic Mail(E-mail):主要用於傳輸電子信件,一個mail server,會有mailbox(收藏信件用)、

message queue(存放往外送出的信件)、SMTP(mail server之間的傳輸協定)。

一封信件會有header&body兩個部分,header記載的是發信者、收件者與主旨,而body是存放訊息內容。

SMTP使用的訊息格式,必須使用7-bit的ASCII碼才行,這也造成發展多媒體信件有困難的原因。

MIME:multimedia mail extension,剛才談到 訊息內容必須使用ASCII 7-bit,造成多媒體信件的發展

困難,後來的解決方法是使用MIME,當傳輸多媒體信件時,在header會先宣告使用MIME以及編碼方式,

會將編碼後的訊息送出去,收到信件的一端,會根據發件者所定義的編碼方法來解碼,最後還原成多媒

體檔案。

POP3:使用在用戶端,當client要跟mail server提出接收信件的要求,傳遞訊息的格式即是使用POP3。

早期的POP3接收郵件時,當client端收到郵件以後 會將server的信件刪除,造成的缺點就是 信件無法

在其它client端電腦接收(download and delete)。現今使用的POP3屬於"download and keep",信件會

存在server端,在不同電腦上 都可接收相同使用者的信件。

除了傳統的POP以外,現在還有IMAP、HTTP等通訊協定來接收E-mail。


5.DNS(Domain Name System):每個server都有實際的IP位址,要記住IP位址是很麻煩的事情,而domain

name system給予server一個host name,這個名字是給人記的,當用戶輸入那個名字,就會自動對應到

server的IP並且連線。

DNS有一個機制在管理,全世界共有13個root server。

 

6.P2P(Peer-to-Peer):泛指client端與client端互相連線並傳輸檔案或訊息。

P2P系統有分centralized directory(集權)與scalability(分散)兩種。

集權以"Napster"為例,它有一個Server負責記錄Peer的資料,當一個使用者開啟Napster,會連線到伺

服器並且給予IP位址與內容物訊息,使用者要求檔案後,server會尋找擁有者,並且告知要求者,之後

兩人建立連線傳遞資料。

集權的最大缺點是single point of failure,當伺服器掛掉,整個服務就無法使用;另外就是版權的問

題,網路上分享版權的檔案 往往會造成不少法律上的糾紛。


分散式以Gnutella為例,當使用者要找尋某個檔案,程式會詢問鄰近的使用者是否擁有該檔案(Query),

如果沒有 會繼續向鄰近的使用者找,一層一層找過去,當找到有檔案(QueryHit) 則開始資料的傳輸。


BitTorrent:下載開始時,檔案會解析得到tracker位址,會有tracker伺服器負責聯繫與回應使用者下

載的請求,會提供上傳者與其它使用者的IP。透過檔案片段交換 來達到下載的效果。

Skype:開啟Skype後,軟體會自動打開一個port負責監聽其它使用者的呼叫,有些點對點的連線,必須

使用某些電腦當中繼站 讓彼此能夠連線,這些中繼站稱為"Super Node 簡稱SN",透過SN 可以協助

Skype用戶達到彼此連線的效果。

 

[Web20-F08] Youtube 之API初體驗 >"<

Youtube AIP主要用於影片的處理

裡面有許多的功能可以使用,這個範例是運用javascript API做簡單的應用

http://code.google.com/apis/youtube/js_example_1.html 版主以這個為藍本

摸了一下之後.. 又加了一些功能,做成簡單的範例網頁

http://www.csie.fju.edu.tw/~ie955141/youtubeTest.html

裡面定義了許多function,那些function主要都是呼叫Player的APImtehod來使用,使用上    

其實不會很複雜。可以開啟原始碼來看它的code。

範例中,值得注意的是 裡面有定義一個updateytplayerInfo()的function,這個使用在    onYouTubePlayerReady(playerId)這個function裡面,而這個function定義影片播放時所該做的事情。整段的語法是這樣

function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
setInterval(updateytplayerInfo, 250);
updateytplayerInfo();
ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
ytplayer.addEventListener("onError", "onPlayerError");
}

剛剛提到的updateytplayerInfo()就是做更新內容的功能。 它會在影片播放過程中 不斷更新資料。

[網路概論] Lab01 Wireshark使用心得

之前在上Web課程的時候,老師也有要我們摸這個軟體,當時摸得其實不是很好,這個作業剛好可以讓我再跟它接觸一次

監控的是自己電腦本身的封包,連線對象是輔大資工謠言報。一開始就直接把其它封包過濾,專看TELNET。

剛建立連線時,會看見Client端跟Server端建立連線 互相傳遞訊息的封包,接著輸入我的帳號"ie955141"

後來查看一下軟體,發現從我這端發出的封包,裡頭Data的部分被很完整得記錄下來

因為一個字就是一個封包,所以不方便截圖 直接把看到的訊息貼上來

TELNET

Data:i

 ----------

TELNET

Data:e

  ----------

TELNET

Data:9

  ----------

TELNET

Data:5

 ----------

TELNET

Data:5

 ----------

TELNET

Data:1

 ----------

TELNET

Data:4

 ----------

TELNET

Data:1

 ----------

TELNET

Data:\r (這應該是換行的意思)

-----------

後來再監控PTT,結果也是一樣。

由此可推測,網路上BBS的資料在傳輸時,沒有經過特別的加密或保護,所以這些資料在這上面其實很危險的,只要每Key進一個字就會傳一個封包,因此只要抓到時機監控,你的PTT帳號密碼很容易就被記錄下來,容易變成被盜用的受害者,因此在BBS上盡量不要留下有關個人隱私的資料(身分證、家庭住址等等)

之後又有測試過HTTP的監控,目標是google跟yahoo,它們就有做一些加密方面的處理,不過有些網站就沒做這種加密了

我嘗試登入某個論壇 後來發現他的封包內容其中一行是:

formhash=fc897cb6&referer=http%3A%2F%2Fbbs.sougetsu.org%2Findex.php&loginfield=username&username=OOOOOOO&password=XXXXXXXXXX&questionid=0&answer=&cookietime=315360000&loginmode=&styleid=&loginsubmit=%E9%80%81%E5%87%BA

其中OOO跟XXX是我的帳號密碼。

從這個可以觀察到,網路的漏洞還是不少,隨時可能有被駭的風險,所以在網路上流資訊時 不得不小心orz

頁面