[淺談]- Line 與 Messenger 的不同

Y-H
6 min readJan 26, 2020

--

前言:無論是誰,如果我寫的你看不懂,是我的問題,歡迎留言告訴我,然後如果有誤,請不吝惜在下面指證並告訴我 :)

Line and Messenger

本篇適合讀者:對程式沒有基礎,但好奇使用過 Line 與 Messenger的人

希望我能夠一直寫下去。

今天這篇文章後希望你能理解:

  1. 為什麼Line的訊息會過期 而Messenger的不會
  2. 沒了 一次問題不要太多

相信大家都有使用Line然後上傳的照片經過了兩個禮拜以後就不能下載了,表示下載期限已過的經驗,而上傳臉書的照片經過了十年還是可以找到並下載,要理解這件事並沒有想像中的困難。

第一個問題:上傳的照片去哪裡了?

答案是傳到了公司的伺服器。

那伺服器在哪裡?我們常說傳到雲端雲端,雲端到底是什麼?

我很喜歡的一件t-shirt上面寫著:

There is no cloud, it is just someone else’s computer.

這句話翻成白話文就是,你上傳到的雲端硬碟(Google drive / Drop box) 其實就是藉由網路把你的資料傳給其他公司的電腦,而其他公司的電腦幫你做好權限管理並且允許你在另一個地方「下載」你傳上去的資料,或是讓你「允許」的另外一個人下載你的資料 。

換言之,這就是Google Album就是分享照片的原理,或是你在家裡存了你打的報告,然後跑去學校,登入Google 帳號,然後下載下來。

那衍伸問題是,那!公司可以隨意瀏覽我的照片嗎?

短答案是:可以。

長答案是:技術上你上傳了照片之後基本上公司的員工都可以瀏覽你的照片,類似傳東西上了Google Drive,而所有的Google 員工「如果想要的話」,都可以找到你的照片。這時就有賴公司規定,必須嚴格限制員工不能出於好奇「使用」或「觀看」使用者的資料。

當然公司也可以對使用者的照片加密,但是對照片的加密防止的應該是有人駭入公司的電腦時(當然,公司應該也要避免被駭入),無法打開裡面的資料。而對於員工的的管理,應該從接近使用者資料權限下手,例如你如果是一般員工,就不能夠對這個資料庫連線,更不能對這個資料庫下載東西。

好,有點模糊了吼?

生活上的例子是:銀行如果想要避免員工拿走保險庫裡面的錢(偷看使用者資料),不應該把保險庫建大廳上(不控管可以接近的人),只仰賴保險庫的鎖(加密),而應該要限制沒有正當理由的員工隨意進到保險庫(權限管理)。

第二個問題:好,那我知道照片了,對話也是一樣嗎?我找小三偷情的訊息有可能被讀到嗎 ?

短答案:依據使用的應用程式,可以也不可以,但各有好壞。

長答案:在講訊息可以被大家讀到嗎之前,得先提一下訊息如何被儲存的。講完儲存之後,再來說說訊息怎麼被傳送的。

第三個問題:訊息的儲存

大家還記得使用Messenger的時候,如果你被加入了一個群組,是可以看到歷史紀錄的( 意指如果你一直往上滑,可以看到古早之前的在你還沒加入時偷偷嘲笑你的訊息,而非只看到你被加入以後傳到群組裡的訊息),同時,你也不用擔心換手機,換了手機以後,所以的Messenger資料基本上只要登入 Facebook 帳號,就全部回來了。而如果使用Line的話,以上都是不成立的,換了手幾得先備份訊息,不然所有的訊息都會消失。

這件事情來自於訊息存放的地方。Messenger把歷史訊息存在Facebook的機器裡,所以當一個新的使用這進到群組時,對臉書來說,就是給他這個權限讓他可以下載(翻譯:往上滑有圈圈開始一直轉,最後訊息跑出來)之前的歷史訊息,或著當使用者換手機時,也沒啥大不了的,把存在機器裡的訊息傳到他的手機而已,一切都很美好。

好處就是使用者很方便,想下載很久以前的圖片Messenger都幫你儲存好了。壞處是,沒錯,臉書員工想看的話都可以看到你的圖片與訊息,同時臉書為了儲存大家的對話記錄和訊息,得想辦法儲存,這件事情很貴。

儲存是個大問題,稍微算一下:假設一個群組每天傳5張圖,一張圖1Mb,一年下來就約會有1.5G的資料。想想你有多少在聊天的群組加上你自己跟另外一個人聊天的訊息,一個人假設有10個群組,100個人一年下來就是1.5T的訊息。而這只有100個人,臉書的使用者假設是100萬人,那得想像一下該怎麼存。而我們還沒談及影片跟限時動態呢。(這個問題比較不生活,下次再說)

那Line呢?Line的儲存方式基本上分為兩種,傳到個人以及傳到群組的,有些是存在資料存在個人的手機,而有些是Line的機器幫你存起來。

好處是你的東西如果是存在個人的手機,就不怕公司的員工可以偷看你的煽情照,另外,Line 公司不負責你的東西的儲存,換句話說他們不用擔心自己機器的容量不夠的問題,反正他們又不儲存。壞處是換手機前你得備份,或著你沒錢,只能買16g的手機,會發現Line吃掉你一大堆的記憶體(其實就是這些在你手機裡的照片/影片)。

當然我們還漏了一些例子例如WhatsApp (印度/歐洲的大型通訊軟體)也是使用Line的形式,並加上了在傳輸訊息間點到點之間的加密,讓中間負責轉傳的公司不能夠知道你到底在傳些什麼。

當然你可能想說,啊我不想讓公司知道我的訊息,但我想要避免浪費自己的手機空間使用量,同時也想不用備份手機歷史訊息,那為什麼不讓我的訊息加密後存進公司的機器裡,這樣公司就不能解密了啊!傻孩子,你傳上去是誰提供的加密方式?就算好了公司無法解密你存在他那邊的資料,此時就要處理加解密的鑰匙問題,同時還有每隔時間要換鑰匙的問題,另外一個主題另外一個主題。

最後一個問題:那訊息的傳送是怎麼傳的?

Messenger 的訊息臉書會介入,把訊息一面儲存下來,並一面把訊息傳到你想要傳給的朋友或家人。而Line則不完全會把你的訊息儲存下來 (嚴格來說,幫你存一下,但是後面會刪掉),也幫你轉傳到你的朋友那邊,至於他們是怎麼傳得,其實就跟一般的寄Email沒啥兩樣,當然中間的溝通協議(Protocal)並不盡相同,但理論上並沒有相距太遠。

好了 今天第一次寫就花了兩個多小時 比我預期的久很多。

以後主題希望可以包含,依據每天的心情不一樣來決定要寫多深。

  • 大型網路公司 (Google Facebook)為什麼要這麼多人
  • 以及稍微深一點點的業界互聯網的基礎建設 (Infrastructure)
  • 幾個業界的稍微深一點點的知識 (寫程式到底最後怎麼變成服務? 中間可能發生的事情 例如 Depolyment, Monitoring, Storing 等等等)
  • 我寫程式能寫到幾歲 過了35後我該怎麼辦

我是謝宇和 Yu-Ho :)

--

--