查IP地址/tcp/ip基礎知識

出自 Tw.18dao.net
前往: 導覽搜尋

tcp/ip基礎知識

  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聖經。(原 文刊載於Vol.15No.20)

  二、傳輸層的安全性

  

  在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地址/tcp/ip基礎知識”的用戶留言:

目前暫無留言

新增相關留言✍