關於nat的基礎知識
nat,network address translation 位址轉換,是路由器將內網位址轉換為公網位址的一種技術。
nat的實現方式主要有三種:
(1)靜態轉換:靜態轉換是一對一的轉換,有多少內網位址需要轉換,就需要相應的公網位址;用得很少;
(2)動態轉換:動態轉換是多對多的轉換,通常需要轉換的內網位址略多於相應的公網位址;將公網位址放在乙個位址池裡,當有內網位址需要訪問外部**時,從位址池中取出乙個公網位址,用於內網位址到公網位址的轉換;該方式適用於內網位址略多於給定的公網位址,如果內網位址遠大於公網位址,當多台內網機器需要訪問公網時,會出現位址池枯竭,無法獲得對應的公網位址;
(3)埠多路復用:通常是多對一的關係,當只存在乙個公網位址時,可用這種方式;通過埠號來確定內網的具體機器。例如內網機器192.168.1.116 需要訪問外部**www.baidu.com ;在資料報通過路由器**時,nat會產生乙個session,儲存位址對應的埠資訊,再將資料報中的ip位址轉換為 202.11.25.56:1234 --->www.baidu.com ,**出去。其中的埠1234應該是動態生成,並記錄下來。當www.baidu.com 有響應資訊時,響應資料報經過路由器時,nat查詢對應埠對應的內網ip,將資料報內的位址更改回去,**進內網,這樣就實現了資料的交換。
nat的優點:
(1)寬頻共享 :通過乙個公網位址可以讓許多機器連上網路;理論上所有網路埠有多少乙個公網ip就能夠支援多少臺機器聯網;解決了ip位址不夠用的情況;
(2)安全防護:通過nat技術轉換後,實際機器隱藏自己的真實ip,僅通過埠來區別是內網中的哪個機器,保證了自身安全。
nat的缺點:
在乙個具有nat功能的路由器下的主機並沒有建立真正的端對端連線,並且不能參與一些網際網路協議。一些需要初始化從外部網路建立的tcp連線,和使用無狀態協議(比如udp)的服務將被中斷。除非nat路由器作一些具體的努力,否則送來的資料報將不能到達正確的目的位址。(一些協議有時可以在應用層閘道器的輔助下,在參與nat的主機之間容納乙個nat的例項,比如ftp。)nat也會使安全協議變的複雜。
nat的侷限性(copy)
(1)nat違反了ip位址結構模型的設計原則。ip位址結構模型的基礎是每個ip位址均標識了乙個網路的連線。internet的軟體設計就是建立在這個前提之上,而nat使得有很多主機可能在使用相同的位址,如10.0.0.1。
(2)nat使得ip協議從面向無連線變成立面向連線。nat必須維護專用ip位址與公用ip位址以及埠號的對映關係。在tcp/ip協議體系中,如果乙個路由器出現故障,不會影響到tcp協議的執行。因為只要幾秒收不到應答,傳送程序就會進入超時重傳處理。而當存在nat時,最初設計的tcp/ip協議過程將發生變化,internet可能變得非常脆弱。
(3)nat違反了基本的網路分層結構模型的設計原則。因為在傳統的網路分層結構模型中,第n層是不能修改第n+1層的報頭內容的。nat破壞了這種各層獨立的原則。
(4)有些應用是將ip位址插入到正文的內容中,例如標準的ftp協議與ip phone協議h.323。如果nat與這一類協議一起工作,那麼nat協議一定要做適當地修正。同時,網路的傳輸層也可能使用tcp與udp協議之外的其他協議,那麼nat協議必須知道並且做相應的修改。由於nat的存在,使得p2p應用實現出現困難,因為p2p的檔案共享與語音共享都是建立在ip協議的基礎上的。
(5)nat同時存在對高層協議和安全性的影響問題。rfc對nat存在的問題進行了討論。nat的反對者認為這種臨時性的緩解ip位址短缺的方案推遲了ipv6遷移的程序,而並沒有解決深層次的問題,他們認為是不可取的。
關於vim的基礎知識
一 基礎知識 vim最令人混淆的特徵之一是她擁有3種模式.1.插入模式 輸入文字 2.命令模式 執行命令.也稱為正常模式.3.ex模式 執行冒號 命令 插入模式並不是預設的模式,您必須按下i來進入插入模式,在螢幕上輸入一些文字。按下按鈕將從插入模式轉到命令模式。命令模式用於移動和操縱文字,有時以非常...
關於OSPF的基礎知識
ospf open shortest path first 開放式最短路徑優先協議 router ospf 程序號 1 65535本地程序號,每台路由器可不一樣 network 網路號 反掩碼 area 區域號 show ip protocals 檢驗是否已配置ospf show ip ospf 顯...
關於DOM的基礎知識
dom獲取元素的方法 在整個文件中,通過元素的id獲取到這個元素物件 獲取的是乙個元素 如果頁面中id重複了,那麼這個方法預設只獲得第乙個元素 在ie6 7中,會把表單元素 input 的name屬性值當做id來使用 在ie6 7中,不區分id的大小寫 如果沒有獲取到,返回的結果是null 獲取的是...