airdrk 發表於 2003-12-21 18:37:38

[教學]TCP-IP概論

IP 位址
  Internet 中所謂的「IP 位址(IP Address)」,就像現實生活中每戶人家都要擁有唯一的地址一樣,傳送者可以根據 IP 位址進行辨識,將資料傳送到唯一目的地位址完成通訊。世界各地的 IP 位址必須具有一致性,才不會導致辨識上的混亂,故必須依循共同的規範才能達成。

  目前我們所使用的 IP 位址為第四版 IP 位址,一般稱為 IPv4 位址。為滿足使用上的需求,又陸陸續續發展 IPv5、IPv6,IPv5 是提供給 Stream Protocol 實驗協定使用,而 IPv6 則是 IPv4 的擴充,為因應位址數量不敷使用的問題,在標頭格式也提供動態欄位設定。

  IPv4 位址是由 32 位元所組成,一般以 8 位元為單位(octet)將 32 位元分成四部份,彼此間以 "." 做區隔,例如 "100100011.00001110.01001000.00011100",此即為「加點二進位表示法(dotted binary notation)」,由於二進位表示法太長不易記憶,故通常使用十進位來表示,上述的二進位 IP 位址即可表示成 "163.14.75.28",此即為「加點十進位表示法(dotted decimal notation)」。由於每一部份均由 8 位元所組成,故每個十進位值均介於 0 ~ 255 之間。

  IP 位址主要分為兩部份:網路位元(Network bits)和主機位元(Host bits)。網路位元主要是用來辨識其 IP 位址是屬於哪一個網路系統;而主機位元則是用來辨識其 IP 位址在其所屬的網路系統中是屬於哪一台電腦主機。

    IP 位址 = 網路位元 + 主機位元

  IPv4 將位址分成 A、B、C、D、E 五類,分別用來表示不同的網路位址種類,各類的位址型態可從左邊固定的位元進行判斷。以下為各類 IP 位址的格式,其中沒有框的位元為固定位元,用以判別位址是屬於哪一類,N 代表網路位元,H 代表主機位元,而 M 和 R 則分別代表 D 類的多點傳送位元(Muticast bits)和 E 類的保留位元(Reserved bits)。類別 A、B、C IP 位址是最常使用的,而類別 D、E IP位址則是提供特殊用途。

    類別 A IP 位址:0NNNNNNN.HHHHHHHH.HHHHHHHH.HHHHHHHH
    類別 B IP 位址:10NNNNNN.NNNNNNNN.HHHHHHHH.HHHHHHHH
    類別 C IP 位址:110NNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH
    類別 D IP 位址:1110MMMM.MMMMMMMM.MMMMMMMM.MMMMMMMM
    類別 E IP 位址:1111RRRR.RRRRRRRR.RRRRRRRR.RRRRRRRR

    N:網路位元  H:主機位元  M:群播位元  R:保留位元

  在類別 A、B、C(有網路位元和主機位元)IP 位址中,各含有兩個特殊位址不做主機位址使用。一為將 IP 位址中所有主機位元均設為 "0",即為「網域位址(Domain Address)」,用來判斷 IP 位址之所屬網域;另將所有主機位元值均設為 "1",即為「廣播位址(Broadcast Address)」,用來對所屬網域之所有主機進行廣播。以下將分別對各類型的IP位址設定做詳細的說明。


類別 A IP 位址

  類別 A IP 位址的最左邊位元固定為 "0",後接 7 個網路位元及 24 個主機位元。由於有 7 個網路位元 "0NNNNNNN",故可提供 2^7 = 128 個網路系統,該位元組的十進位則介於 0 ~ 127 之間,其中 0 和 127 兩個網域做特殊用途使用。

  除了 "0.0.0.0" 和 "127.0.0.0" 兩個網域外,類別 A IP 位址另外保留網域 "10.0.0.0",提供給企業內網路(Intranet)IP 位址設定。由於 Intranet 彼此間獨立的網路架構,故分別使用 "10.0.0.0" 網域並不會互相衝突。若 Intranet 要與外部的 Internet 連繫,必須透過「網路位址轉譯(Network Address Translation,NAT)」路由器提供一個可辨識使用的 IP 位址與外界溝通。由於各個 Intranet 均可提供以 "10.0.0.0" 為網域的所有主機位址,故可改善 IP 位址不足的現象。

  由上述可知,原本 128 個網路系統,扣掉 0、10、127 三個特殊網域,故實際上可用的網域為 1 ~ 9、11 ~ 126 共 125 個網域。

  類別 A IP 位址的 24 個主機位元則可提供 2^24 個主機位址,各位元組的十進位值介於 0 ~ 255 之間,其中將所有主機位元設為 "0",用十進位將 IP 位址表示成 "N.0.0.0" 為網域位址;將所有主機位元設為 "1", 用十進位將 IP 位址表示成 "N.255.255.255" 為廣播位址。故個主機位址扣掉網域位址和廣播位址,實際上可用的主機位址為 2^24 -2 = 16,777,214 個。

  從上述得知類別 A IP 位址可提供 125 個網域,而各網域可用( 2^24 - 2)個主機位址,故A類位址共可提供約 125 × 16,777,214 = 2,097,151,750 個 IP 位址。類別 A IP 位址已分配給早期參與 Internet 的組織機構使用,所以現在沒有空的類別 A IP 位址以供申請。

  類別 A IP 位址保留 "127.0.0.1" 用來進行「迴路回測(Loopback Testing)」,主要是透過本身主機將訊息送回本身主機,以檢查主機的 TCP / IP 的設定是否正確,所使用的指令為 "ping 127.0.0.1",若 TCP / IP 設定不完整會出現錯誤訊息。


類別 B IP 位址

  類別 B IP 位址的最左邊兩個位元固定為 "10",後接 14 個網路位元及 16 個主機位元。IP 位址的左邊第一個網路位元組 "10NNNNNN" 可提供 2^6 個組合,該位元組的十進位值介於 128 ~ 191 之間,而第二個網路位元組 "NNNNNNNN" 則可提供 2^8 個組合,十進位值介於 0 ~ 255 之間﹔另外,類別 B IP 位址保留 "172.16.0.0 ~ 172.31.255.255" 網域作為企業內網路(Intranet)使用。由此二個網路位元組即可提供 2^14 -8 = 16,376 個網路系統(網域)。

  類別 B IP 位址的 16 個主機位元則可提供 2^16 個主機位址,各位元組的十進位值介於 0 ~ 255 之間,同樣將所有主機位元設為 "0",十進位 IP 位址表示法 "N.N.0.0" 為網域位址;將所有主機位址設為 "1",十進位 IP 位址表示法 "N.N.255.255" 為廣播位址。故個主機位址扣掉網域位址和廣播位址,實際上可用的主機位址有 2^16 - 2 = 65,534 個。類別 B IP 位址也已發送完畢,所以現在沒有空的類別 B IP 位址以供申請。  

  由上述可知,類別 B IP 位址可提供 2^14 個網域,而各網域可用 65,534 個主機位址,故類別 B IP 位址共可提供約 16,376 × 65,534 = 1,073,184,784 個 IP 位址。


類別 C IP 位址

  類別 C IP 位址的最左邊三個位元固定為 "110",後接 21 個網路位元及 8 個主機位元。IP 位址左邊第一個網路位元組 "110NNNNN" 可提供 2^5 = 32 個組合,該位元組的十進位值介於 192 ~ 223 之間,而第二、三個網路位元組 "NNNNNNNN" 則分別可提供 2^8 = 256 個組合,十進位值介於 0 ~ 255 之間,此三個網路位元組可提供 2^21 = 2,097,152 個網路系統(網域)。

  類別 C IP 位址的 8 個主機位元則提供 2^8 = 256 個主機位址,該主機位元組的十進位值介於 0 ~ 255 之間,同樣將所有主機位元設為 "0",十進位表示法 "N.N.N.0" 為網域位址;將所有主機位元設為 "1",十進位表示法 "N.N.N.255" 為廣播位址。故 256 個主機位址扣掉網域位址和廣播位址,實際上可用主機位址有 254 個。

  另外,類別 C IP 位址保留 "192.168.0.0" 網域作為企業內網路(Intranet)使用。由此可知 C 類位址可提供 2,097,152 - 1 = 2,097,151 個網域,而各網域可用 254 個主機位址,故C類位址共可提供約 2,097,151 × 254 = 532,676,354 個 IP 位址。


類別 D IP 位址

  類別 D IP 位址的最左邊四個位元固定為 "1110",後接 28 個群播設定位元。IP 位址的左邊第一群播位元組 "1110MMMM" 可提供 2^4 個組合,十進位介於 224 ~ 239 之間,其他三個群播位元組則分別提供 2^8 個組合,十進位值介於 0 ~ 255 之間,故類別 D IP 位址共可提供 2^28 = 268,435,456 個群播 IP 位址。多點傳送操作並沒有區分網路位元與主機位元。

  所謂「多點傳送(Muticasting)」,或稱「群播」,是指一電腦主機可透過「多點傳送路由器(MRouter;Muticasting Router)」同時對多部主機傳送相同的資料。使用單點傳送(1 對 1)將相同資料送到三台主機,需要傳送三次才能完成;而多點傳送(1 對多)只需傳送一次即可,故多點傳送可以降低在網路上的資訊傳送量。欲進行多點傳送的群組必須擁有一個類別 D IP 位址方可彼此連繫。

  在類別 D IP 位址中,224.0.0.0 ~ 224.0.0.255(224.0.0.0/24)是保留給區域子網路(local subnet)之用,其封包不會被路由器傳送出去,不論其 TTL 為何﹔而 IP 位址在 224.0.1.0 ~ 238.255.255.255 是為多點傳送正常使用﹔IP 位址在 239.0.0.0 ~ 239.255.255.255(239.0.0.0/8)則是保留給管理用途。

  Microsoft 支援類別 D IP 位址,作為應用程式多點傳送資料至 Internet 上可多點傳送的主機。


類別 E IP 位址

  類別 E IP 位址最左邊四個位元固定為 "1111",後接 28 個保留位元。IP 位址的左邊第一個保留位元組 "1111RRRR" 之十進位值介 240 ~ 255 之間,類別 E IP 位址和類別 D IP 位址一樣,沒有網路位元和主機位元,共可提供 2^28 = 268,435,456 個 IP 位址。類別 E IP 位址是保留給實驗網路所使用。


網路 ID 指南

  網路 ID 識別位於相同實體網路上的 TCP/IP 主機。位在相同實體網路上的所有主機都必須指派相同的網路 ID,和其它主機通訊。指派網路 ID 時,請遵循以下指南:



網路位址必須是 IP internet 中的唯一值。如果您計劃以直接路由連線至公用 Internet,網路 ID 必須是 Internet 上的唯一值。如果您不打算連線至公用 Internet,區域網路 ID 必須是您的私有 internet 上的唯一值。

網路 ID 不可以數字 127 開頭。類別 A 位址中的數字 127 保留給內部反向迴圈功能使用。

網路 ID 中的所有位元不可設定為 1。網路 ID 中的全部 1 保留作為 IP 廣播位址使用。

網路 ID 中的所有位元不可設定為 0。網路 ID 中的全部 0 是用來表示區域網路上的指定主機,且不會被尋徑。

          網路 ID 類別範圍

     位址類別  第一個網路 ID  最後一個網路 ID
    ───────────────────────
      類別 A   1.0.0.0     126.0.0.0
      類別 B   128.0.0.0    191.255.0.0
      類別 C   192.0.0.0    223.255.255.0


主機 ID 指南

  主機 ID 識別網路中的 TCP/IP 主機。 IP 網路 ID 與 IP 主機 ID 的結合即代表 IP 位址。指派主機 ID 時,請遵循以下指南:


主機 ID 必須是網路 ID 中的唯一值。

主機 ID 中的所有位元不可設定為 1,因為此主機 ID 保留作為廣播位址,傳送封包至網路上的所有主機。

主機 ID 中的所有位元不可設定為 0,因為此主機 ID 保留用來表示 IP 網路 ID 。

          主機 ID 類別範圍

     位址類別  第一個主機 ID  最後一個主機 ID
    ────────────────────────
      類別 A   w.0.0.1     w.255.255.254
      類別 B   w.x.0.1     w.x.255.254
      類別 C   w.x.y.1     w.x.y.254


虛擬 IP 位址指南

  依據RFC1918:Address Allocation for Private Internets(原為RFC1597),有三個區段的 IP 是作為 Private IP 使用:

     位址類別  第一個主機 ID  最後一個主機 ID
    ────────────────────────
      類別 A   10.0.0.1     10.255.255.254
      類別 B   172.16.0.1    172.31.255.254
      類別 C   192.168.0.1    192.168.255.254

  當使用以上的 IP 位址的時候是有所限制的(此部份引自 Albert_Lu):


虛擬 IP 位址的路由資訊不能對外散播。

使用虛擬 IP 位址作為來源或目的地址的封包,不能透過 Internet 來轉送。

關於虛擬 IP 位址的參考紀錄(如 DNS),只能限於內部網路使用。

  由於有以上的限制,當我們使用這些虛擬 IP 位址來設定網路的時候,就無需擔心會和其它也使用相同位址的網路衝突了。

隨著電腦技術的逐步普及和網際網路技術的迅猛發展,學習網際網路、利用網際網路已不再是那些腰纏萬貫的大款和戴者深度眼睛的專業技術人員的專利,它已作為二十一世紀人類的一種新的生活方式而逐步深入到尋常百姓家。談到網際網路,IP位址就不能不提,因為無論是從學習還是使用網際網路的角度來看,IP位址都是一個十分重要的概念,INTERNET的許多服務和特點都是通過IP地址體現出來的。

一、IP地址的概念  
  我們知道網際網路是全世界範圍內的電腦聯為一體而構成的通信網路的總稱。聯在某個網路上的兩台電腦之間在相互通信時,在它們所傳送的資料包裏都會含有某些附加資訊,這些附加資訊就是發送資料的電腦的位址和接受資料的電腦的位址。象這樣,人們為了通信的方便給每一台電腦都事先分配一個類似我們日常生活中的電話號碼一樣的標識位址,該標識位址就是我們今天所要介紹的IP地址。根據TCP/IP協定規定,IP位址是由32位二進位數字組成,而且在INTERNET範圍內是唯一的。例如,某台聯在網際網路上的電腦的IP位址為:

11010010 01001001 10001100 00000010

很明顯,這些數字對於人來說不太好記憶。人們為了方便記憶,就將組成電腦的IP位址的32位元二進位分成四段,每段8位,中間用小數點隔開,然後將每八位元二進位轉換成十進位數字,這樣上述電腦的IP位址就變成了:210.73.140.2。

二、IP地址的分類  
  我們說過網際網路是把全世界的無數個網路連接起來的一個龐大的網間網,每個網路中的電腦通過其自身的IP位址而被唯一標識的,據此我們也可以設想,在INTERNET上這個龐大的網間網中,每個網路也有自己的識別字。這與我們日常生活中的電話號碼很相像,例如有一個電話號碼為0515163,這個號碼中的前四位元表示該電話是屬於哪個地區的,後面的數位表示該地區的某個電話號碼。與上面的例子類似,我們把電腦的IP位址也分成兩部分,分別為網路標識和主機標識。同一個物理網路上的所有主機都用同一個網路標識,網路上的一個主機(包括網路上工作站、伺服器和路由器等)都有一個主機標識與其對應?IP位址的4個位元組劃分為2個部分,一部分用以標明具體的網路段,即網路標識;另一部分用以標明具體的節點,即主機標識,也就是說某個網路中的特定的電腦號碼。例如,鹽城市資訊網路中心的伺服器的IP位址為210.73.140.2,對於該IP位址,我們可以把它分成網路標識和主機標識兩部分,這樣上述的IP位址就可以寫成:

網路標識:210.73.140.0

主機標識:     2        

合起來寫:210.73.140.2

由於網路中包含的電腦有可能不一樣多,有的網路可能含有較多的電腦,也有的網路包含較少的電腦,於是人們按照網路規模的大小,把32位元位址資訊設成三種定位的劃分方式,這三種劃分方法分別對應於A類、B類、C類IP地址。


1.A類IP地址

  一個A類IP位址是指,在IP位址的四段號碼中,第一段號碼為網路號碼,剩下的三段號碼為本地電腦的號碼。如果用二進位表示IP位址的話,A類IP位址就由1位元組的網路位址和3位元組主機位址組成,網路位址的最高位必須是“0”。A類IP位址中網路的標識長度為7位元,主機標識的長度為24位元,A類網路位址數量較少,可以用於主機數達1600多萬台的大型網路。


2.B類IP地址

  一個B類IP位址是指,在IP位址的四段號碼中,前兩段號碼為網路號碼,B類IP位址就由2位元組的網路位址和2位元組主機位址組成,網路位址的最高位必須是“10”。B類IP位址中網路的標識長度為14位元,主機標識的長度為16位元,B類網路位址適用於中等規模規模的網路,每個網路所能容納的電腦數為6萬多台。


3.C類IP地址

  一個C類IP位址是指,在IP位址的四段號碼中,前三段號碼為網路號碼,剩下的一段號碼為本地電腦的號碼。如果用二進位表示IP位址的話,C類IP位址就由3位元組的網路位址和1位元組主機位址組成,網路位址的最高位必須是“110”。C類IP位址中網路的標識長度為21位元,主機標識的長度為8位元,C類網路位址數量較多,適用於小規模的區域網路,每個網路最多只能包含254台電腦。

  除了上面三種類型的IP地址外,還有幾種特殊類型的IP位址,TCP/IP協議規定,凡IP位址中的第一個位元組以“lll0”開始的位址都叫多點廣播位址。因此,任何第一個位元組大於223小於240的IP位址是多點廣播地址;IP位址中的每一個位元組都為0的位址(“0.0.0.0”)對應於當前主機;IP位址中的每一個位元組都為1的IP位址(“255.255.255.255”)是當前子網的廣播地址;IP位址中凡是以“llll0”的位址都留著將來作為特殊用途使用;IP位址中不能以十進位“127”作為開頭,27.1.1.1用於回路測試,同時網路ID的第一個6位組也不能全置為“0”,全“0”表示本地網路。

三、IP的定址規則  
   1.網路定址規則

   A、 網路位址必須唯一。

   B、 網路標識不能以數位127開頭。在A類位址中,數字127保留給內部回送函數。

   C、 網路標識的第一個位元組不能為255。數位255作為廣播位址。

   D、 網路標識的第一個位元組不能為“0”,“0”表示該位址是本地主機,不能傳送。

   2.主機定址規則

   A、主機標識在同一網路內必須是唯一的。

   B、主機標識的各個位元不能都為“1”,如果所有位都為“1”,則該機地址是廣播位址,而非主機的位址。

   C、主機標識的各個位元不能都為“0”,如果各個位都為“0”,則表示“只有這個網路”,而這個網路上沒有任何主機。

四、IP子網路遮罩概述  
  

1.子網路遮罩的概念

  子網路遮罩是一個32位位址,用於遮罩IP位址的一部分以區別網路標識和主機標識,並說明該IP位址是在局域網上,還是在遠端網上。


2.確定子網路遮罩數

  用於子網路遮罩的位數決定於可能的子網數目和每個子網的主機數目。在定義子網路遮罩前,必須弄清楚本來使用的子網數和主機數目。

  定義子網路遮罩的步驟為:

  A、確定哪些組位址歸我們使用。比如我們申請到的網路號為 “210.73.a.b”,該網路位址為c類IP位址,網路標識為“210.73”,主機標識為“a.b”。

  B、根據我們現在所需的子網數以及將來可能擴充到的子網數,用宿主機的一些位來定義子網路遮罩。比如我們現在需要12個子網,將來可能需要16個。用第三個位元組的前四位元確定子網路遮罩。前四位都置為“1”,即第三個位元組為“11110000”,這個數我們暫且稱作新的二進位子網路遮罩。

  C、把對應初始網路的各個位元都置為“1”,即前兩個位元組都置為“1”,第四個位元組都置為“0”,則子網路遮罩的間斷二進位形式為:“11111111.11111111.11110000.00000000”

  D、把這個數轉化為間斷十進位形式為:“255.255.240.0”

這個數為該網路的子網路遮罩。


3.IP遮罩的標注

  A、無子網的標注法

  對無子網的IP位址,可寫成主機號為0的遮罩。如IP位址210.73.140.5,遮罩為255.255.255.0,也可以缺省遮罩,只寫IP位址。

  B、有子網的標注法

  有子網時,一定要二者配對出現。以C類地址為例。

  1.IP位址中的前3個位元組表示網路號,後一個位元組既表明子網號,又說明主機號,還說明兩個IP位址是否屬於一個網段。如果屬於同一網路區間,這兩個位址間的資訊交換就不通過路由器。如果不屬同一網路區間,也就是子網號不同,兩個位址的資訊交換就要通過路由器進行。例如:對於IP位址為210.73.140.5的主機來說,其主機標識為00000101,對於IP位址為210.73.140.16的主機來說它的主機標識為00010000,以上兩個主機標識的前面三位元全是000,說明這兩個IP位址在同一個網路區域中,這兩台主機在交換資訊時不需要通過路由器進行10.73.60.1的主機標識為00000001,210.73.60.252的主機標識為11111100,這兩個主機標識的前面三位元000與011不同,說明二者在不同的網路區域,要交換資訊需要通過路由器。其子網上主機號各為1和252。

  2.遮罩的功用是說明有子網和有幾個子網,但子網數只能表示為一個範圍,不能確切講具體幾個子網,遮罩不說明具體子網號,有子網的遮罩格式(對C類地址):

五、IP的其他事項  
  1.一般國際互聯網資訊中心在分配IP位址時是按照網路來分配的,因此只有說到網路位址時才能使用A類、B類、C類的說法;

  2.在分配網路位址時,網路標識是固定的,而電腦標識是可以在一定範圍內變化的,下面是三類網路位址的組成形式:

A類地址:73.0.0.0

B類地址:160.153.0.0

C類地址:210.73.140.0

上述中的每個0均可以在0~255之間進行變化。

  3.因為IP位址的前三位元數字已決定了一個IP位址是屬於何種類型的網路,所以A類網路位址將無法再分成B類IP位址,B類IP位址也不能再分成C類IP位址。

  4.在談到某一特定的電腦IP位址時不宜使用A類、B類、C類的說法,但可以說主機位址是屬於哪一個A類、B類、C類網路了。

  通過上面的學習,大家對IP地址肯定有了瞭解。有了IP位址大家就可以發送電子郵件了,並且可以獲得Internet網上的其他資訊,例如可以獲得Internet上的WWW服務、BBS服務、FTP服務等等。

子網路遮罩及其應用


  在TCP/IP協定中,SUBNET MASKS(子網路遮罩)的作用是用來區分網路上的主機是否在同一網路取段內。在大型網路中,CLASS A的SUBNET MASKS為255.0.0.0, CLASS B的SUBNET MASKS為255.255.0.0,CLASS C的SUBNET MASKS為255.255.255.0。

  假如某台主機的SUBNET MASKS為IP位址為202.119.115.78,它的SUBNET MASKS為255.255.255.0。將這兩個資料作AND運算後,所得出的值中的非0的BYTE部分即為NETWORK ID 。運算步驟如下:

  202.119.115.78的二進位值為:
  11001010.01110111.01110011.01001110
  255.255.255.0的二進位值為:
  11111111.11111111.11111111.00000000
  AND後的結果為:  
  11001010.01110111.01110011.00000000
  轉為二進位後即為:
  202.119.115.0

  它就是NETWORK ID,在IP地址中剩下的即為HOST ID,即為78,這樣當有另一台主機  的IP 位址為202.119.115.83,它的SUBNET MASKS也是255.255.255.0,則其NETWORK ID  為202.119.115,HOST ID為83,因為這兩台主機的NETWORK ID都是202.119.115,因此,這兩台主機在同一網段內。

  但是,在實際應用中,可能會有多個分佈與各地的網路,而且,每個網路的主機數量並不很多,如果申請多個NETWORK ID,會造成IP資源的浪費,而且很不經濟,如果我們在SUBNET MASKS上動一下手腳,可以在只申請一個NETWORK ID的基礎上解決這個問題。

  比如,我們有三個不同的子網,每個網路的HOST數量各為20、25和50,下面依次稱為甲、乙和丙網,但只申請了一個NETWORK ID 就是202.119.115。首先我們把甲和乙網的SUBNET MASKS改為255.255.255.224,224的二進位為11100000,即它的SUBNET MASKS為:

  11111111.11111111.11111111.11100000

  這樣,我們把HOST ID的高三位用來分割子網,這三位共有000、001、010、011、100、 101、110、111八種組合,除去000(代表本身)和111(代表廣播),還有六個組合,也就是可提供六個子網,它們的IP地址分別為:(前三個位元組還是202.119.115)


  00100001~00111110 即33~62為第一個子網
  01000001~01011110 即65~94為第二個子網
  01100001~01111110 即97~126為第三個子網  
  10000001~10011110 即129~158為第四個子網  
  10100001~10111110 即161~190為第五個子網  
  11000001~11011110 即193~222為第六個子網
  選用161~190段給甲網,193~222段給乙網,因為各個子網都支援30台主機,足以應付甲網和乙網20台和25台的需求。

  再來看丙網,由於丙網有50台主機,按上述分割方法無法滿足它的IP需求,我們 可以將它的SUBNET MASKS設為255.255.255.192, 由於192的二進位值為11000000,按上述方法,它可以劃分為兩個子網,IP位址為:

  01000001~01111110 即65~126為第一個子網  
  10000001~10111110 即129~190為第二個子網

  這樣每個子網有62個IP可用,將65~126分配丙網,多個子網用一個NETWORK ID 即告實現。


  如果將子網路遮罩設置過大,也就是說子網範圍擴大。那麼根據子網尋徑規則,很可能發往和本地機不在同一子網內的目的機的資料,會因為錯誤的相與結果而認為是在同一子網內,那麼,資料包將在本子網內迴圈,直到超時並拋棄。資料不能正確到達目的機,導致網路傳輸錯誤。如果將子網路遮罩設置得過小,那麼就會將本來屬於同一子網內的機器之間的通信當做是跨子網傳輸,資料包都交給缺省閘道處理,這樣勢必增加缺省閘道的負擔,造成網路效率下降。因此,任意設置子網路遮罩是不對的,應該根據網路管理部門的規定進行設置。

  隨著IP位址資源的日趨枯竭,可供分配的IP位址越來越少,往往一個擁 有幾百台電腦規模的網路只能得到區區幾個IP位址,於是,許多人開始採用其他技術來擴展IP空間。

  1.子網路遮罩設置

  如果你所分配的IP位址僅能滿足對主機的需求,但遠不能滿足你欲在局 域網中再建若干子網的需要,設置子網路遮罩就是你不得不採取的措施了。

  子網路遮罩同樣也以四個位元組來表示,用來區分IP位址的網路號和主機號, 默認子網路遮罩如下表所示:

  子網路遮罩(以十進位表示)
  A類 255.0.0.0
  B類 255.255.0.0
  C類 255.255.255.0

  當IP位址與子網路遮罩相與時,非零部分即被確認為網路號。

  假如我們將子網路遮罩中第四位元組最高位元起的某些位由0修改成1,使本來應當屬於主機號的 部分改變成為網路號,這樣就實現了我們劃分子網的目的。例如你得到了一個C類網路位址198.189.98,按常規,你所有的設備從198.189.98.0到198.189.98.254都將處於同一網路之中,但如果你需要將自己 的網路劃分成5個子網以便管理,那就必須修改子網路遮罩255.255.255.0,將此 遮罩的第四個位元組中的前三位元再拿出來充當子網路遮罩,即將第四位元組的00000000 修改成11100000(十進位數字為224),故應當將子網路遮罩設置為255.255.255.224。這樣我們有001、010、011、100、101、110六種方式與之相與得到不同的網路號(除去000和111作為保留位址不能使用),各子網的前三個位元組仍然是198.189.98。可以知道:如子網路遮罩的位數越多,能劃分的子網數也就越多,但 是每個子網的主機數就會越少。子網路遮罩的劃分設置也有一個缺點:劃分的子網越多,損失的IP地址也會越多。因為每個子網都會保留全0或全1的兩個位址而不能使用。

  2.動態IP位址設置

  DHCP(DynamicHostConfigurationProtocol)動態主機配置協定是一種 多個工作站共用IP位址的方法。當我們分配到的IP位址數目遠小於一個網路工作站的數目時,如果為每個設備都分配一個固定的IP位址,則顯然有一部分計 算機將不能連入網路。DHCP為我們提供了一個較好的解決方法,其前提條件是其中每一個設備都不是隨時都需要連接入網,並且同一時刻上網的設備不會很多。動態IP位址,顧名思義就是每一個設備所取得的IP位址是非固定的,即電腦連入網路時自動申請取得一個合法的IP位址,斷開網路時自動歸還,以便其他電腦使用。這樣,我們可以用較少的IP位址構建較大的網路,也可以 增加網路工作站的可移性,如果一台主機從一個子網移動到另一個子網時,由於網路號的不同將修改該電腦的IP位址,否則無法與其他主機通信,而如果我 們採用動態IP位址,就會減少網路管理的複雜性。現在DHCP已非常流行,所支援的軟體很多,且可以運行於不同機器和平臺。目前撥號上Internet的用戶就基本上採用這種方法。

  3.非路由地址

  在IP地址範圍內,IANA(InternetAssignedNumbersAuthority)將一部 分位址保留作為私人IP位址空間,專門用於內部局域網使用,這些位址如下表:
  類 IP位址範圍             網路數
  A 10.0.0.0---10.255.255.255     1
  B 172.16.0.0---172.31.255.255    16
  C 192.168.0.0---192.168.255.255   255

  這些位址是不會被Internet分配的,因此它們在Internet上也從來不會被路由,雖然它們不能直接和Internet網連接,但仍舊可以被用來和Internet通訊,我們可以根據需要來選用適當的位址類,在內部局域網中大膽地將這些位址當作公用IP位址一樣地使用。在Internet上,那些不需要與Internet通訊的設備,如印表機、可管理集線器等也可以使用這些位址,以節省IP位址資源。

  4.代理伺服器

  代理伺服器其實是Internet上的一台主機設備,它有一個固定的IP位址,當你需要上Internet時,就向該伺服器提出請求,代理伺服器接受請求並為你 建立連接,然後將你所需要的服務返回資訊通知你,所有的資料資訊和通訊處理 都是通過代理伺服器的IP位址來完成。這種情況下,我們局域網內部的主機就應使用非路由位址,這樣,即能保證內部主機之間的通訊,又能拒絕外來網路的 直接訪問請求。

  代理服務器具有以下兩個優點:一是如果你請求的資料已被同一網段上的其他人請求過了,那麼大多數代理伺服器都能從Cache中調用這些資料直接傳給你,避免重新連接的時間和帶寬;二是代理伺服器可以保護你的內部網路不受入侵,也可以設置對某些主機的訪問能力進行必要限制,這實際上起著代理防火牆 的作用。

  支援代理伺服器的軟體也非常多,WinGate、MsProxy等都是非常流行的代理伺服器軟體。在中國,代理伺服器的使用也越來越廣泛,中國公眾多媒體通訊網(169)其實就是一個巨大的使用代理伺服器的例子。

  5.地址翻譯

  所謂位址翻譯實際上是路由器中的一個資料包處理過程。當資料包通過路由器時,位址翻譯過程將其中的內部私有IP位址解析出來,將其翻譯為一個合法的IP位址。位址翻譯過程可以按預先定義好的位址表一一映射翻譯,也可以將多個內部私有位址翻譯為一個外部合法IP位址。由於網路內每個設備都有一個內部穩定的IP位址,所以這種方法具有較 強的網路安全控制性能。

airdrk 發表於 2003-12-21 18:40:01

TCP/IP應該是個協議集,根據OS的七層理論,TCP/IP分為四層.分別是應用,傳輸,Interne和網路界面.

我們一般說TCP在傳輸層,而IP在Internet層.


TCP/IP的應用套裝程式括我們平時經常用到的Ping,Telnet,Ftp,Finger等等


配置TCP/IP包括IP地址,子網掩碼和缺省網關


正確檢測TCP/IP的四個步驟:PIng 127.0.0.1(迴環地址)如果通表示TCP/IP已經裝入,Ping自己表明客戶機正常(主要是網卡),Ping網關表示局域網正常,Ping路由外地址表示完全正常,當然你也可以直接進行第四步,一般來說沒這麼麻煩的,但理論是基礎:-)


IP地址是四段八位的二進位數組成的,IP分為A,B,C,D,E五類地址


A類高端為0,從1.x.y.z~126.x.y.z .B類高端為10,從128.x.y.z~191.x.y.z C類高端為110,從192.x.y.z~223.x.y.z D類高端為1110是保留的IP地址 E類高端為1111,是科研用的IP地址


其中255是廣播地址,127是內部回送函數


以下內容是子網的設定


若公司不上Internet,那一定不會煩惱IPAddress的問題,因 為可以任意使用所有的IPAddress,不管是AClass或是BClass, 這個時候不會想到要用SubNet,但若是上Internet那IPAddress 便彌足珍貴了,目前全球一陣Internet熱,IPAddress已經愈 來愈少了,而所申請的IPAddress目前也趨保守,而且只有 經申請的IPAddress能在Internet使用,但對某些公司只能申 請到一個CCLass的IPAddress,但又有多個點需要使用,那這 時便需要使用到Subnet,這篇短文說明Subnet的原理及如 何規劃。


SubnetMask的介紹

設定任何網路上的任何設備不管是主機、PC、Router等 皆需要設定IPAddress,而跟隨著IPAddress的是所謂的NetMask, 這個NetMask主要的目的是由IPAddress中也能獲得NetworkNumber ,也就是說IPAddress和NetMask作AND而得到NetworkNumber,如下所 示

IPAddress 192.10.10.611000000.00001010.00001010.00000110

NetMask 255.255.255.011111111.11111111.11111111.00000000

AND -------------------------------------------------------------------

etworkNumber 192.10.10.011000000.00001010.00001010.00000000

NetMask有所謂的預設值,如下所示


ClassIPAddress範圍NetMask

A 1.0.0.0-126.255.255.255255.0.0.0

B 128.0.0.0-191.255.255.255255.255.0.0

C 192.0.0.0-223.255.255.255255.255.255.0



在預設的NetMask都只有255的值,在談到SubnetMask時這個值 便不一定是255了。

在完整一組CClass中如203.67.10.0-203.67.10.255NetMask255.255.255.0, 203.67.10.0稱之NetworkNumber(將IPAddress和Netmask作AND),而 203.67.10.255是Broadcast的IPAddress,所以這?兩者皆不能使用,實 際只能使用203.67.10.1--203.67.10.254等254個IPAddress,這是以 255.255.255.0作NetMask的結果,而所謂SubnetMsk尚可將整組C Class分成數組NetworkNumber,這要在NEtMask作手腳,若是要將 整組CCLass分成2個NetworkNumber那NetMask設定為255.255.255.192, 若是要將整組CCLass分成8組NetworkNumber則NetMask要為 255.255.255.224,這是怎麼來的,由以上知道NetworkNumber是由IP Address和NetMask作AND而來的,而且將NetMask以二進位表示 法知道是1的會保留,而為0的去掉



192.10.10.193--11000000.00001010.00001010.10000001

255.255.255.0--11111111.11111111.11111111.00000000

--------------------------------------------------------------

192.10.10.0--11000000.00001010.00001010.00000000



以上是以255.255.255.0為NetMask的結果,NetworkNumber是192.10.10.0, 若是使用255.255.255.224作NetMask結果便有所不同



192.10.10.193--11000000.00001010.00001010.10000000

255.255.255.224--11111111.11111111.11111111.11100000

--------------------------------------------------------------

192.10.10.192--11000000.00001010.00001010.10000000



此時NetworkNumber變成了192.10.10.192,這便是Subnet。

那要如何決定所使用的NetMask,255.255.255.224以二進位表示 法為11111111.11111111.11111111.11100000,變化是在最後一組,11100000 便是224,以三個Bit可表示2的3次方便是8個NetworkNumber


NetMask二進位表示法可分幾個Network


255.255.255.0 11111111.11111111.11111111.000000001

255.255.255.128 11111111.11111111.11111111.100000002

255.255.255.192 11111111.11111111.11111111.110000004

255.255.255.224 11111111.11111111.11111111.111000008

255.255.255.240 11111111.11111111.11111111.1111000016

255.255.255.248 11111111.11111111.11111111.1111100032

255.255.255.252 11111111.11111111.11111111.1111110064



以下使用255.255.255.224將C Class203.67.10.0分成8組NetworkNumber,各 個NetworkNumber及其BroadcastIPAddress及可使用之IPAddress


序號NetworkNumberBroadcast可使用之IPAddress


1 203.67.10.0 203.67.10.31 203.67.10.1-203.67.10.30

2 203.67.10.32 203.67.10.63 203.67.10.33-203.67.10.62

3 203.67.10.64 203.67.10.95 203.67.10.65-203.67.10.94

4 203.67.10.96 203.67.10.127 203.67.10.97-203.67.10.126

5 203.67.10.128 203.67.10.159 203.67.10.129-203.67.10.158

6 203.67.10.160 203.67.10.191 203.67.10.161-203.67.10.190

7 203.67.10.192 203.67.10.223 203.67.10.193-203.67.10.222

8 203.67.10.224 203.67.10.255 203.67.10.225-203.67.10.254



可驗證所使用的IPAddress是否如上表所示


203.67.10.115--11001011.01000011.00001010.01110011

255.255.255.224--11111111.11111111.11111111.11100000

--------------------------------------------------------------

203.67.10.96--11001011.01000011.00001010.01100000


203.67.10.55--11001011.01000011.00001010.00110111

255.255.255.224--11111111.11111111.11111111.11100000

--------------------------------------------------------------

203.67.10.32--11001011.01000011.00001010.00100000


其他的NetMask所分成的NetworkNumber可自行以上述方法自行推演出來。


Subnet的應用

使用Subnet是要解決只有一組CClass但需要數個NetworkNumber的問題,並不是解決IPAddress不夠用的問題,因為使用 Subnet反而能使用的IPAddress會變少,Subnet通常是使用在總公司在台北,但分公司在台中,兩者之間使用Router連線 ,同時也上Internet,但只申請到一組CCLassIPAddress,過Router又需不同的Network,所以此時就必須使用到Subnet,當然二 辦公司間可以RemoteBridge連接,那便沒有使用Subnet的問題,這點在此不討論,所以在以上情況下的網路連線架 構及IPAddress的使用


TCP/IP(傳輸控制協議/網間協議)是一種網路通信協議,它規範了網路上的所有通信設備,尤其是一個主機與另一個主機之間的數據往來格式以及傳送方式。TCP/IP是INTERNET的基礎協議,也是一種電腦數據打包和尋址的標準方法。在數據傳送中,可以形象地理解為有兩個信封,TCP和IP就像是信封,要傳遞的資訊被劃分成若干段,每一段塞入一個TCP信封,並在該信封面上記錄有分段號的資訊,再將TCP信封塞入IP大信封,發送上網。在接受端,一個TCP套裝軟體收集信封,抽出數據,按發送前的順序還原,並加以校驗,若發現差錯,TCP將會要求重發。因此,TCP/IP在INTERNET中幾乎可以無差錯地傳送數據。



在任何一個物理網路中,各站點都有一個機器可識別的地址,該地址叫做物理地址.物理地址有兩個


特點:

物理地址的長度,格式等是物理網路技術的一部分,物理網路不同,物理地址也不同.

同一類型不同網路上的站點可能擁有相同的物理地址.

以上兩點決定了,不能用物理網路進行網間網通訊.


在網路術語中,協議中,協議是為了在兩台電腦之間交換數據而預先規定的標準。TCP/IP並不是一個而是許多協議,這就是為什麼你經常聽到它代表一個協議集的原因,而TCP和IP只是其中兩個基本協議而已。


你裝在電腦-的TCP/IP軟體提供了一個包括TCP、IP以及TCP/IP協議集中其他協議的工具平臺。特別是它包括一些高層次的應用程式和FTP(文件傳輸協議),它允許用戶在命令行上進行網路文件傳輸。


TCP/IP是美國政府資助的高級研究計劃署(ARPA)在二十世紀七十年代的一個研究成果,用來使全球的研究網路聯在一起形成一個虛擬網路,也就是國際互聯網。原始的


Internet通過將已有的網路如ARPAnet轉換到TCP/IP上來而形成,而這個Internet最終成為如今的國際互聯網的骨幹網。


如今TCP/IP如此重要的原因,在於它允許獨立的網格加入到Internet或組織在一起形成私有的內部網(Intranet)。構成內部網的每個網路通過一種-做路由器或IP路由器的設備在物理上聯接在一起。路由器是一台用來從一個網路到另一個網路傳輸數據包的電腦。在一個使用TCP/IP的內部網中,資訊通過使用一種獨立的叫做IP包(IPpacket)或IP數據報(IPdatagrams)的數據單元進--傳輸。TCP/IP軟體使得每台聯到網路上的電腦同其他電腦“看”起來一模一樣,事實上它隱藏了路由器和基本的網路體系結構並使其各方面看起來都像一個大網。如同聯入乙太網時需要確認一個48位的乙太網地址一樣,聯入一個內部網也需要確認一個32位的IP地址。我們將它用帶點的十進位數表示,如128.10.2.3。給定一個遠程電腦的IP地址,在某個內部網或Internet上的本地電腦就可以像處在同一個物理網路中的兩台電腦那樣向遠程電腦發送數據。


TCP/IP提供了一個方案用來解決屬於同一個內部網而分屬不同物理網的兩台電腦之間怎樣交換數據的問題。這個方案包括許多部分,而TCP/IP協議集的每個成員則用來解決問題的某一部分。如TCP/IP協議集中最基本的協議-IP協議用來在內部網中交換數據並且執行一項重要的功能:路由選擇--選擇數據報從A主機到B主機將要經過的路徑以及利用合適的路由器完成不同網路之間的跨越(hop)。


TCP是一個更高層次的它允許運行在在不同主機上的應用程式相互交換數據流。TCP將數據流分成小段叫做TCP數據段(TCPsegments),並利用IP協議進行傳輸。在大多數情況下,每個TCP數據段裝在一個IP數據報中進行發送。但如需要的話,TCP將把數據段分成多個數據報,而IP數據報則與同一網路不同主機間傳輸位流和字節流的物理數據幀相容。由於IP並不能保證接收的數據報的順序相一致,TCP會在收信端裝配TCP數據段並形成一個不間斷的數據流。FTP和Telnet就是兩個非常流行的依靠TCP的TCP/IP應用程式。


另一個重要的TCP/IP協議集的成員是用戶數據報協議(UDP),它同TCP相似但比TCP原始許多。TCP是一個可靠的協議,因為它有錯誤檢查和握手確認來保證數據完整的到達目的地。UDP是一個“不可靠”的協議,因為它不能保證數據報的接收順序同發送順序相同,甚至不能保證它們是否全部到達。如果有可靠性要求,則應用程式避免使用它。同許多TCP/IP工具同時提供的SNMP(簡單網路管理協議)就是一個使用UDP協議的應用例子。


其他TCP/IP協議在TCP/IP網路中工作在幕後,但同樣也發揮著重要作用。例如地址轉換協議(ARP)將IP地址轉換為物理網路地址如乙太網地址。而與其對應的反向地址轉換協議(RARP)做相反的工作,即將物理網路地址轉換為IP地址。網際控制報文協議(ICMP)則是一個支援性協議,它利用IP完成IP數據報在傳輸時的控制資訊和錯誤資訊的傳輸。例如,如果一個路由器不能向前發送一個IP數據報,它就會利用ICMP來告訴發送者這裡出現了問題。

網路設計者在解決網路體系結構時經常使用ISO/OSI( 國際標準化組織/開放系統互連)七層模型,該模型每 一層代表一定層次的網路功能。最下面是物理層,它 代表著進行數據轉輸的物理介質,換句話說,即網路 電纜。其上是數據鏈路層,它通過網路介面卡提供服 務。最上層是應用層,這裡運行著使用網路服務的應 用程式。


TCP/IP是同ISO/OSI模型等價的。當一個數據單元 從網路應用程式下流到網路介面卡,它通過了一列的TCP/IP 模組。這其中的每一步,數據單元都會同網路另一端 對等TCP/IP模組所需的資訊一起打成包。這樣當數據最 終傳到網卡時,它成了一個標準的乙太幀(假設物理 網路是乙太網)。而接收端的TCP/IP軟體通過剝去乙太網 幀並將數據向上傳輸過TCP/IP棧來為處於接收狀態的應 用程式重新恢復原始數據(一種最好的了解TCP/IP工作實 質的方法,是使用探測程式來觀察網路中的到處流動 的幀中被不同TCP/IP模組所加上的資訊)。


為了勾勒TCP/IP在現實網路世界中所扮演的角色, 請考慮當使用HTTP(超文本傳輸協議)的Web瀏覽器從連接 在Internet上的Web伺服器上獲取一頁HTML數據時所發生的情 況。為形成同Web伺服器的虛鏈路,瀏覽器使用一種被 抽象地稱為套介面(socket)的高層軟體。為了獲 取Web頁,它通過向套介面向套介面寫入HTTPGET命令來向Web 伺服器發出該指令。接下來套介面軟體使用TCP協議向 Web伺服器發出包含GET命令的字節流和位流,TCP將數據 分段並將各獨立段傳到IP模組,該模組將數據段轉換 成數據報併發送給Web伺服器。


如果瀏覽器和伺服器運--在不同物理網路的計 算機上(一般情況如此),數據報從一個網路傳到另一 個網路,直到抵達伺服器所在的那個網。最終,數據 被傳輸到目的地址並被重新裝配,這樣Web伺服器通過 讀自己的套介面來獲得數據主幹,並進而查看連續的 數據流。對瀏覽器和伺服器來說,數據在這一端寫入 套介面而在另一端出現如同魔術一般,但這只是底 下發生的各種複雜的交互,它創造了數據經過網路無 縫傳輸的假像。


這就是TCP/IP所做的:將許多小網聯成一個大網。 並在這個大網也就是Internet上提供應用程式所需要的 相互通信的服務。


對於TCP/IP有許多可談的,但這裡僅講三個關鍵 點:


.TCP/IP是一族用來把不同的物理網路聯在一 起構成網際網的協議。TCP/IP聯接獨立的網路形成一個 虛擬的網,在網內用來確認各種獨立的不是物理網路 地址,而是IP地址。


.TCP/IP使用多層體系結構,該結構清晰定義了 每個協議的責任。TCP和UDP向網路應用程式提供了高層 的數據傳輸服務,並都需要IP來傳輸數據包。IP有責任 為數據包到達目的地選擇合適的路由。


.在Internet主機上,兩個運行著的應用程式之 間傳送要通過主機的TCP/IP堆棧上下移動。在發送端TCP/IP 模組加在數據上的資訊將在接收端對應的TCP/IP模組上 濾掉,並將最終恢復原始數據。


如果你有興趣學習更多的TCP/IP知識,這裡有兩個 較高層次的資訊源RFC(RequestforComment)1180——叫做“TCP/IP Tutorial”的文檔,你可以從許多普及的RFC的Internet節點上 下載。另一個是InternetworkingwithTCP/IP的第一卷:Principles,Protocols,and Architectures,作者DouglasE.Comer(1995,Prentice-Hall)。作為該係三部 曲中的第一部分,許多人把看成是一本TCP/IP聖經。

在Internet應用編程式中,通常使用廣義的進程間通信(IPC)機制來與不同層次的安全協議打交道。比較流行的兩個IPC編程界面是BSD Sockets和傳輸層界面(TLI),在Unix系統V命令裏可以找到。


在Internet中提供安全服務的首先一個想法便是強化它的IPC界面,如BSD Sockets等,具體做法包括雙端實體的認證,數據加密密鑰的交換等。Netscape通信公司遵循了這個思路,制定了建立在可靠的傳輸服務(如TCP/IP所提供)基礎上的安全套接層協議(SSL)。SSL版本3(SSL v3)於1995年12月制定。它主要包含以下兩個協議:


SSL記錄協議 它涉及應用程式提供的資訊的分段、壓縮、數據認證和加密。SSL v3提供對數據認證用的MD5和SHA以及數據加密用的R4和DES等的支援,用來對數據進行認證和加密的密鑰可以通過SSL的握手協議來協商。

SSL握手協議 用來交換版本號、加密演算法、(相互)身份認證並交換密鑰。SSL v3 提供對Deffie-Hellman密鑰交換演算法、基於RSA的密鑰交換機制和另一種實現在 Fortezza chip上的密鑰交換機制的支援。

Netscape通信公司已經向公眾推出了SSL的參考實現(稱為SSLref)。另一免費的SSL實現叫做SSLeay。SSLref和SSLeay均可給任何TCP/IP應用提供SSL功能。Internet號碼分配當局(IANA)已經為具備SSL功能的應用分配了固定端口號,例如,帶SSL的 HTTP(https)被分配的端口號為443,帶SSL的SMTP(ssmtp)被分配的端口號為465,帶SSL的NNTP(snntp)被分配的端口號為563。


微軟推出了SSL2的改進版本稱為PCT(私人通信技術)。至少從它使用的記錄格式來看,SSL和PCT是十分相似的。它們的主要差別是它們在版本號字段的最顯著位(The Most Significant Bit)上的取值有所不同: SSL該位取0,PCT該位取1。這樣區分之後,就可以對這兩個協議都給以支援。 1996年4月,IETF授權一個傳輸層安全(TLS)工作組著手制定一個傳輸層安全協議(TLSP),以便作為標準提案向IESG正式提交。TLSP將會在許多地方酷似SSL。


前面已介紹Internet層安全機制的主要優點是它的透明性,即安全服務的提供不要求應用層做任何改變。這對傳輸層來說是做不到的。原則上,任何TCP/IP應用,只要應用傳輸層安全協議,比如說SSL或PCT,就必定要進行若干修改以增加相應的功能,並使用(稍微)不同的IPC界面。於是,傳輸層安全機制的主要缺點就是要對傳輸層IPC界面和應用程式兩端都進行修改。可是,比起Internet層和應用層的安全機制來,這裡的修改還是相當小的。另一個缺點是,基於UDP的通信很難在傳輸層建立起安全機制來。同網路層安全機制相比,傳輸層安全機制的主要優點是它提供基於進程對進程的(而不是主機對主機的)安全服務。這一成就如果再加上應用級的安全服務,就可以再向前跨越一大步了。

三、應用層的安全性

必須牢記(且須仔細品味): 網路層(傳輸層)的安全協議允許為主機(進程)之間的數據通道增加安全屬性。本質上,這意味著真正的(或許再加上機密的)數據通道還是建立在主機(或進程)之間,但卻不可能區分在同一通道上傳輸的一個具體文件的安全性要求。比如說,如果一個主機與另一個主機之間建立起一條安全的IP通道,那麼所有在這條通道上傳輸的IP包就都要自動地被加密。同樣,如果一個進程和另一個進程之間通過傳輸層安全協議建立起了一條安全的數據通道,那麼兩個進程間傳輸的所有消息就都要自動地被加密。


如果確實想要區分一個具體文件的不同的安全性要求,那就必須借助於應用層的安全性。提供應用層的安全服務實際上是最靈活的處理單個文件安全性的手段。例如一個電子郵件系統可能需要對要發出的信件的個別段落實施數據簽名。較低層的協議提供的安全功能一般不會知道任何要發出的信件的段落結構,從而不可能知道該對哪一部分進行簽名。只有應用層是唯一能夠提供這種安全服務的層次。 一般來說,在應用層提供安全服務有幾種可能的做法,第一個想到的做法大概就是對每個應用(及應用協議)分別進行修改。一些重要的TCP/IP應用已經這樣做了。在RFC 1421至1424中,IETF規定了私用強化郵件(PEM)來為基於SMTP的電子郵件系統提供安全服務。由於種種理由,Internet業界採納PEM的步子還是太慢,一個主要的原因是PEM依賴於一個既存的、完全可操作的PKI(公鑰基礎結構)。PEM PKI是按層次組織的,由下述三個層次構成:


頂層為Internet安全政策登記機構(IPRA)

次層為安全政策證書頒發機構(PCA)

底層為證書頒發機構(CA)

建立一個符合PEM規範的PKI也是一個政治性的過程,因為它需要多方在一個共同點上達成信任。不幸的是,歷史表明,政治性的過程總是需要時間的,作為一個中間步驟,Phil Zimmermann開發了一個套裝軟體,叫做PGP(pretty Good Privacy)。PGP符合PEM的絕大多數規範,但不必要求PKI的存在。相反,它採用了分佈式的信任模型,即由每個用戶自己決定該信任哪些其他用戶。因此,PGP不是去推廣一個全局的PKI,而是讓用戶自己建立自己的信任之網。這就立刻產生一個問題,就是分佈式的信任模型下,密鑰廢除了怎麼辦。


S-HTTP是Web上使用的超文本傳輸協議(HTTP)的安全增強版本,由企業集成技術公司設計。S-HTTP提供了文件級的安全機制,因此每個文件都可以被設成私人/簽字狀態。用作加密及簽名的演算法可以由參與通信的收發雙方協商。S-HTTP提供了對多種單向散列(Hash)函數的支援,如: MD2,MD5及SHA; 對多種單鑰體制的支援,如:DES,三元DES,RC2,RC4,以及CDMF; 對數字簽名體制的支援,如: RSA和DSS。


目前還沒有Web安全性的公認標準。這樣的標準只能由WWW Consortium,IETF或其他有關的標準化組織來制定。而正式的標準化過程是漫長的,可能要拖上好幾年,直到所有的標準化組織都充分認識到Web安全的重要性。S-HTTP和SSL是從不同角度提供Web的安全性的。S-HTTP對單個文件作"私人/簽字"之區分,而SSL則把參與通信的相應進程之間的數據通道按"私用"和"已認證"進行監管。Terisa公司的SecureWeb工具套裝軟體可以用來為任何Web應用提供安全功能。該工具套裝軟體提供有 RSA數據安全公司的加密演算法庫,並提供對SSL和S-HTTP的全面支援。


另一個重要的應用是電子商務,尤其是信用卡交易。為使Internet上的信用卡交易安全起見,MasterCard公司(同IBM,Netscape,GTE和Cybercash一道) 制定了安全電子付費協議(SEPP),Visa國際公司和微軟(和其他一些公司一道)制定了安全交易技術(STT)協議。同時,MasterCard,Visa國際和微軟已經同意聯手推出Internet上的安全信用卡交易服務。他們發佈了相應的安全電子交易(SET)協議,其中規定了信用卡持卡人用其信用卡通過Internet進行付費的方法。這套機制的後臺有一個證書頒發的基礎結構,提供對X.509證書的支援。


上面提到的所有這些加安全功能的應用都會面臨一個主要的問題,就是每個這樣的應用都要單獨進行相應的修改。因此,如果能有一個統一的修改手段,那就好多了。通往這個方向的一個步驟就是赫爾辛基大學的Tatu Yloenen開發的安全shell(SSH)。SSH允許其用戶安全地登錄到遠程主機上,執行命令,傳輸文件。它實現了一個密鑰交換協議,以及主機及客戶端認證協議。SSH有當今流行的多種Unix系統平臺上的免費版本,也有由Data Fellows公司包裝上市的商品化版本。


把SSH的思路再往前推進一步,就到了認證和密鑰分配系統。本質上,認證和密鑰分配系統提供的是一個應用編程界面(API),它可以用來為任何網路應用程式提供安全服務,例如: 認證、數據機密性和完整性、訪問控制以及非否認服務。目前已經有一些實用的認證和密鑰分配系統,如: MIT的Kerberos(V4與V5),IBM的CryptoKnight和Netwrok Security Program,DEC的SPX,Karlsruhe大學的指數安全系統(TESS)等,都是得到廣泛採用的實例。甚至可以見到對有些認證和密鑰分配系統的修改和擴充。例如,SESAME和OSF DCE對Kerberos V5作了增加訪問控制服務的擴充,Yaksha對Kerberos V5作了增加非否認服務的擴充。


關於認證和密鑰分配系統的一個經常遇到的問題是關於它們在Internet上所受到的冷遇。一個原因是它仍要求對應用本身做出改動。考慮到這一點,對一個認證和密鑰分配系統來說,提供一個標準化的安全API就顯得格外重要。能做到這一點,開發人員就不必再為增加很少的安全功能而對整個應用程式大動手術了。因此,認證系統設計領域內最主要的進展之一就是制定了標準化的安全API,即通用安全服務API(GSS-API)。GSS-API(v1及v2)對於一個非安全專家的編程人員來說可能仍顯得過於技術化了些,但德州Austin大學的研究者們開發的安全網路編程(SNP),把界面做到了比GSS-API更高的層次,使同網路安全性有關的編程更加方便了。

局域網在網路層有什麼不安全的地方?


NAI公司 供稿


不安全的地方


由於局域網中採用廣播方式,因此,若在某個廣播域中可以偵聽到所有的資訊包,駭客就對可以對資訊包進行分析,那麼本廣播域的資訊傳遞都會暴露在駭客面前。


網路分段


網路分段是保證安全的一項重要措施,同時也是一項基本措施,其指導思想在於將非法用戶與網路資源相互隔離,從而達到限制用戶非法訪問的目的。


網路分段可分為物理分段和邏輯分段兩種方式:

物理分段通常是指將網路從物理層和數據鏈路層(ISO/OSI模型中的第一層和第二層)上分為若干網段,各網段相互之間無法進行直接通訊。目前,許多交換機都有一定的訪問控制能力,可實現對網路的物理分段。邏輯分段則是指將整個系統在網路層(ISO/OSI模型中的第三層)上進行分段。例如,對於TCP/IP網路,可把網路分成若干IP子網,各子網間必須通過路由器、路由交換機、網關或防火牆等設備進行連接,利用這些中間設備(含軟體、硬體)的安全機制來控制各子網間的訪問。在實際應用過程中,通常採取物理分段與邏輯分段相結合的方法來實現對網路系統的安全性控制。

VLAN的實現

虛擬網技術主要基於近年發展的局域網交換技術(ATM和乙太網交換)。交換技術將傳統的基於廣播的局域網技術發展為面向連接的技術。因此,網管系統有能力限制局域網通訊的範圍而無需通過開銷很大的路由器。


乙太網從本質上基於廣播機制,但應用了交換器和VLAN技術後,實際上轉變為點到點通訊,除非設置了監聽口,資訊交換也不會存在監聽和插入(改變)問題。 由以上運行機制帶來的網路安全的好處是顯而易見的:

資訊只到達應該到達的地點。因此、防止了大部分基於網路監聽的入侵手段。

通過虛擬網設置的訪問控制,使在虛擬網外的網路節點不能直接訪問虛擬網內節點。


但是,虛擬網技術也帶來了新的安全問題:

執行虛擬網交換的設備越來越複雜,從而成為被攻擊的對象。基於網路廣播原理的入侵監控技術在高速交換網路內需要特殊的設置。基於MAC的VLAN不能防止MAC欺騙攻擊。

採用基於MAC的VLAN劃分將面臨假冒MAC地址的攻擊。因此,VLAN的劃分最好基於交換機端口。但這要求整個網路桌面使用交換端口或每個交換端口所在的網段機器均屬於相同的VLAN。

VLAN之間的劃分原則


VLAN的劃分方式的目的是保證系統的安全性。因此,可以按照系統的安全性來劃分VLAN;可以將總部中的伺服器系統單獨劃作一個VLAN,如數據庫伺服器、電子郵件伺服器等。也可以按照機構的設置來劃分VLAN,如將領導所在的網路單獨作為一個Leader VLAN(LVLAN), 其他司局(或下級機構)分別作為一個VLAN,並且控制LVLAN與其他VLAN之間的單向資訊流向,即允許LVLAN查看其他VLAN的相關資訊,其他VLAN不能訪問LVLAN的資訊。VLAN之內的連接採用交換實現, VLAN與VLAN之間採用路由實現。由於路由控制的能力有限,不能實現LVLAN與其他VLAN之間的單向資訊流動,需要在LVLAN與其他VLAN之間設置一個Gauntlet防火牆作為安全隔離設備,控制VLAN與VLAN之間的資訊交流
頁: [1]
查看完整版本: [教學]TCP-IP概論