2016-09-22

解決pokemon go用wifi無法連線

近風靡的pokemon go常常有聽到有人發生各種奇怪的連線問題,撇除pokemon go本身bug之外,連線方面常遇到的問題就是,使用3g/4g連線可以正常使用,但當回到家一轉換使用wifi時候,就會發生連接不上的情形。

問題究竟在哪呢?


筆者發現這種情形不只發生在pokemon go,網路上甚至有人對某些特定網頁連結不上(比如金融網站)。因此針對此一問題進行搜尋,結果發現,這是由於MTU值設定所造成的問題。

一般來說,MTU值大多在買來AP時,就會內部預設好,但有些舊型機種會有一些奇怪的設定(比如某大陸T牌),在平時上網都沒有問題,但遇到一些特別的網頁,就會發生連結不上的特殊狀況。

因此,解決方案就是重新設定MTU。照理來說MTU值只能設小一些,無法增加(機器先天限制),但若是你設定得太小,則因過多的封包表頭資訊,而降低了傳輸量(就像是每次卡車載貨都要有一張載貨清單,車小要多次載,那載貨清單佔去一些位置,因此使得每次載貨量變少),網路就變慢了。

當MTU與後端網路無法配合時,封包就會被拆開重新包裝成可相容的封包大小,也就拖垮了效能。所以就會出現連線不上的情形(就像整路上都塞滿了你的小貨車)。

究竟該將MTU值設為多少呢?


有一派的說法是說設定為1492,那是因為一些有的沒的表頭資訊大約佔去8bytes,而大多數機器上限為1500,因為要減去8bytes,也就是1492。

另一派的說法是1454,可以不浪費空間給padding。

筆者認為較為適當的設法為1454,因為這樣設定雖然速度比不上設成上限時,但卻能確保不會連不上某些網站。當你連不上pokemon go時,將MTU值修改就能確保可以連線。