1. 程式人生 > >【基本網路概念之四】Internet 網路地址轉換 防火牆 代理伺服器 客戶/伺服器模型

【基本網路概念之四】Internet 網路地址轉換 防火牆 代理伺服器 客戶/伺服器模型

Internet

  Internet是世界上最大的基於IP的網路。它是所有七大洲多個不同國家的計算機使用IP相互對話的一個無組織的集合。它只是約定以一種標準方式相互對話的一個非常大的計算機集合。
  Internet不是唯一的基於IP的網路,但卻是最大的一個。其他IP網路稱為internet(首字母i小寫):例如沒有連線Internet的高安全性內部網。
Internet地址分塊
  當公司或組織要建立一個基於IP的網路連線到Internet時,它們的ISP會給他們分配一個地址塊。每個地址塊有固定的字首。不過,所有塊中最低地址用於標識網路本身,最高地址是這個網路的一個廣播地址,所以比你原先預想的要少兩個地址。

網路地址轉換

  出於IP地址越來越稀缺,而原始IP地址的需求越來越大,如今大多是網路使用了網路地址轉換(Network Address Trabslation,NAT)。NAT本質上是一種允許在網際網路的不同地方重複使用相同的IP地址集的機制。NAT的工作原理就是重寫通過路由器的資料包的識別資訊。

防火牆

  位於Internet和本地網路之間的一些硬體和軟體會檢查所有進出的資料,以保證其合法性,這就稱為防火牆(firewall)。防火牆通常是將本地網路連線到更大的Internet路由器的一部分,還可以完成其他任務,如網路地址轉換。
java與防火牆沒有太大關係,除非防火牆總是礙你的事。

代理伺服器

  代理伺服器(proxy service)與防火牆有關。如果說防火牆會阻止一個網路上的主機與外界直接建立連線媽媽代理伺服器就起到了中間人的作用。使用代理伺服器的安全優勢之一是外部主機只能看到代理伺服器,而不會知道內部機器的主機名和IP地址,這使得攻擊內部網路更加困難。
  防火牆一般工作於傳輸層或網際層,而代理伺服器通常工作於應用層。代理伺服器對一些應用層協議非常瞭解,如HTTP和FTP(一個值得注意的例外是SOCKS代理伺服器,它工作於傳輸層,可以代理所有TCP和UDP連線,而不考慮應用層協議)。可以檢查通過代理伺服器的包,確保其中包含適當型別的資料。
  代理伺服器還可以實現本地快取(local caching)。這種機制可以顯著地降低Internet連線的負載,大大提高響應的時間。
  代理伺服器最大的問題在於它無法應對所有協議。對於java程式設計師而言更是一個缺點,因為它限制了定製協議的有效性。使用java可以很容易地建立為你的應用而優化的新協議,這通常很有用。但是,沒有代理伺服器能理解這些獨一無二的協議。因此,有些開發人員通過HTTP來接入他們的協議,最著名的是SOAP。不過,這對安全性有顯著地負面影響。

客戶/伺服器模型

  大多數現代網路程式設計都是基於客戶/伺服器模型。客戶/伺服器應用程式一般將大量資料儲存在昂貴的高效能伺服器或伺服器雲上,而大多數程式邏輯和使用者介面由客戶端軟體處理,這些客戶端軟體執行在相對便宜的個人計算機上。在多數情況下,伺服器主要傳送資料,而客戶端主要接收資料,但很少有一個程式只發送或接收資料。更有可能是客戶端發起對話,而伺服器等待客戶端與它開始對話。