顯示具有 網路技術 標籤的文章。 顯示所有文章
顯示具有 網路技術 標籤的文章。 顯示所有文章

2009年9月4日

Big, Little Endian && Network Btye Order

Endian一詞源自於格列佛遊記,小人國為水煮蛋該從大的一端(Big-End)剝開還是小的一端(Little-End)剝開而爭論,爭論的雙方分別被稱為Big-endians和Little-endians。

1980年,Danny Cohen在其著名的論文"On Holy Wars and a Plea for Peace"中為平息一場關於位元組該以什麼樣的順序傳送的爭論而引用了該詞。


何謂Big Endian?

首先得先知道電腦儲存資料的方向是由記憶體的低位址到高位址。以下內容均假設資料大小為8 bytes

記憶體
----地址遞增方向--->
口 口 口 口 口 口 口 口

如果是從資料的最高位數字開始存,則為Big Edian

何謂Little Endian?
如果資料是從其最低位數字開始儲存則為Little Endian。

那標題所說得Network Byte Order是什麼呢?Network Byte Order就是網路傳輸時資料儲存的順序。Network Byte Order為Big Endian。

IPv4 && IPv6

IPv4的IP address有32bits, IPv6的則有128bits

為了閱讀方便,我們把IPv4的address以8bits為一組,分割成四個十進位數字
而IPv6則是以16bits為一組,分割成8個十六進位數字
例如:
2001:0db8:c9d2:0012:0000:0000:0000:0051
2001:db8:c9d2:12::51 (這兩個address都是同一個)
因為IPv6的address常有一堆0,所以可以省略

2009年8月30日

TCP vs UDP

TCP和UDP均是網路封包傳送的方式。所有的封包在傳送時都會切割成小封包,然後在接收端重新組合。用TCP的方式在傳送封包之前會先建立連線(三向交握)。傳送時,接收端檢查封包是否完整的收到,如果沒有完整的話會要求傳送端重送,因此TCP能保證接收端收到的封包是完整的。UDP則是沒有建立連線(換句話說就是只顧著把封包往外面送)和檢查機制,它不管封包有沒有正確的收到。那為什麼要用UDP呢?因為UDP的速度會比TCP快,在一些封包不必完整的情況下可以更有效率的傳輸。

2009年5月14日

2009年5月3日

Proxy簡介

Proxy

可概括成3個類型~transparent,Anonymous,Highly Anonymous(elite proxy) 。

1.transparent proxy
通常指isp配置的一些 proxy 伺服器, 而使用者並不知道通過了 這些proxy 伺服器.....這個transparent是指對客戶透明,整個代理過程,使用者並不知道 ,以為是直接和服務器對話。

2. Anonymous
這種類型的proxy,會告訴對方伺服器,自己是一個proxy,代理, (REMOTE_ADDR HTTP_VIA ),至於其客戶,它就可以對服務器保密或者欺騙了,它可以說雖然自己是個代理,但客戶也是它自己,或者隨便編造一個client (X_FORWARDED_FOR, 這個field 裡面胡謅一個)

3. High anonymity (elite proxy)
這類proxy,在對方伺服器看來,就是一個客戶了,認不出它是proxy.因為通過proxy發到伺服器的數據包 和 直接從 代理使用者 發出的數據包 之間的唯一區別就是 把 代理使用者的ip 換成了 代理的ip.

通常 隱藏了ip地址,也就是說HTTP_X_FORWARDED 和 REMOTE_ADDR 顯示的都是你所用的代理伺服器地址,就算是匿名代理了。

區分方法:

如果HTTP_X_FORWARDED 和 REMOTE_ADDR 顯示的都是你所用的代理伺服器地址,那麼這個代理就是匿名代理伺服器,而且說明自己是一個代理伺服器。

如果HTTP_X_FORWARDED傳遞的是你自己的ip地址,那麼這個就是非匿名的代理伺服器。

如果HTTP_X_FORWARDED和HTTP_VIA變量什麼也沒有,那麼服務器會認為是代理伺服器直接訪問了。

這裡有個日文網站可以讓你知道你上網時http協定所傳遞出去的環境變數
http://www.cybersyndrome.net/evc.html

附上proxy list的原文說明

Anonymous - HTTP Proxy server does not send HTTP_X_FORWARDED_FOR variable to host, this improves privacy since your IP address cannot be logged.

High anonymity (elite proxy) - HTTP Servers of this type do not send HTTP_X_FORWARDED_FOR, HTTP_VIA and HTTP_PROXY_CONNECTION variables. Host doesn't even know you are using proxy server an of course it doesn't know your IP address.