TCP/IP(Transmission Control Protocol/Internet Protocol)的簡寫,中文譯名為傳輸控制協議/因特網互聯協議,又叫網絡通訊協議,這個協議是Internet最基本的協議、Internet國際互聯網絡的基礎,簡單地說,就是由網絡層的IP協議和傳輸層的TCP協議組成的。TCP/IP 定義了電子設備(比如計算機)如何連入因特網,以及數據如何在它們之間傳輸的標準。TCP/IP是一個四層的分層體系結構。高層為傳輸控制協議,它負責聚集信息或把文件拆分成更小的包。低層是網際協議,它處理每個包的地址部分,使這些包正確的到達目的地。
概念
TCP/IP(傳輸控制協議/網際協議)是異構網絡互連的通信協議,通過它可以實現各種異構網絡或異種機之間的互聯通信。
TCP/IP已成為當今計算機網絡最成熟、應用最廣的互聯協議。Internet采用的就是TCP/IP協議,網絡上各種各樣的計算機上只要安裝了TCP/IP協議,它們之間就能相互通信。運行TCP/IP協議的網絡是一種采用包(分組)交換網絡。TCP/IP協議是由100多個協議組成的協議集,TCP和IP是其中兩個最重要的協議。TCP和IP兩個協議分別屬于傳輸層和網絡層,在Internet中起著不同的作用。
層次概述
?TCP/IP |
? |
OSI? |
?應用層 |
? |
?應用層 表示層 會話層 |
?傳輸層(TCP) |
? |
?傳輸層 |
?網絡層(IP) |
? |
?網絡層 |
?網絡接口層 |
? |
?數據鏈路層 |
(TCP/IP結構對應OSI結構)
TCP/IP是一個四層的分層體系結構。
最高層:應用層為協議的最高層,在該層應用程序與協議相配合,發送或接收數據。TCP/IP協議集在應用層上有遠程登錄協議(Telnet)、文件傳輸協議(FTP)、電子郵箱協議(SMTP)、域名系統(DNS)等,它們構成了TCP/IP的基本應用程序。
高層:即傳輸層,其主要協議有UDP(user data protocol)和傳輸控制協議(TCP,Transmission Control Protocol)。TCP協議是在IP協議提供的服務基礎上,支持面向連接的、可靠地傳輸服務,是負責聚集信息或把文件拆分成更小的包。這些包通過網絡傳送到接收端的TCP層,接收端的TCP層把包還原為原始文件;UDP協議時直接利用IP協議進行UDP數據報的傳輸,因此UDP協議提供的是無連接、不保證數據完整到達目的地的傳輸服務。由于UDP不使用很繁瑣的流控制或錯誤恢復機制,只充當數據報的發送者和接收者,因此,UDP比TCP簡單得多。
低層:是網際協議(IP,Internet Protocol),它處理每個包的地址部分,使這些包正確的到達目的地。網絡上的網關計算機根據信息的地址來進行路由選擇。即使來自同一文件的分包路由也有可能不同,但最后會在目的地匯合。 TCP/IP使用客戶端/服務器模式進行通信。TCP/IP通信是點對點的,意思是通信是網絡中的一臺主機與另一臺主機之間的。TCP/IP與上層應用程序之間可以說是“沒有國籍的”,因為每個客戶請求都被看做是與上一個請求無關的。正是它們之間的“無國籍的”釋放了網絡路徑,才使每個人都可以連續不斷的使用網絡。 許多用戶熟悉使用TCP/IP協議的高層應用協議。包括萬維網(www,world wide web)的超文本傳輸協議(HTTP),文件傳輸協議(FTP),遠程網絡訪問協議(Telnet)和簡單郵件傳輸協議(SMTP)。這些協議通常和TCP/IP協議打包在一起。 使用模擬電話調制解調器連接網絡的個人電腦通常是使用串行線路接口協議(SLIP)和點對點協議(P2P)。這些協議壓縮IP包后通過撥號電話線發送到對方的調制解調器中。 與TCP/IP協議相關的協議還包括用戶數據報協議(UDP),它代替TCP/IP協議來達到特殊的目的。其他協議是網絡主機用來交換路由信息的,包括Internet控制信息協議(ICMP),內部網關協議(IGP),外部網關協議(EGP),邊界網關協議(BGP)。
眾所周知,如今電腦上因特網都要作TCP/IP協議設置,顯然該協議成了當今地球村“人與人”之間的“牽手協議”。
1997年,為了褒獎對因特網發展作出突出貢獻的科學家,并對TCP/IP協議作出充分肯定,美國授予為因特網發明和定義TCP/IP協議的文頓·瑟夫和卡恩“國家技術金獎”。這無疑使人們認識到TCP/IP協議的重要性。
在阿帕網(ARPR)產生運作之初,通過接口信號處理機實現互聯的電腦并不多,大部分電腦相互之間不兼容,在一臺電腦上完成的工作,很難拿到另一臺電腦上去用,想讓硬件和軟件都不一樣的電腦聯網,也有很多困難。當時美國的狀況是,陸軍用的電腦是DEC系列產品,海軍用的電腦是Honeywell中標機器,空軍用的是IBM公司中標的電腦,每一個軍種的電腦在各自的系里都運行良好,但卻有一個大弊病:不能共享資源。
當時科學家們提出這樣一個理念:“所有電腦生來都是平等的。”為了讓這些“生來平等”的電腦能夠實現“資源共享”就得在這些系統的標準之上,建立一種大家共同都必須遵守的標準,這樣才能讓不同的電腦按照一定的規則進行“談判”,并且在談判之后能“握手”。
在確定今天因特網各個電腦之間“談判規則”過程中,最重要的人物當數瑟夫(Vinton G.Cerf)。正是他的努力,才使今天各種不同的電腦能按照協議上網互聯。瑟夫也因此獲得了與克萊因羅克(“因特網之父”)一樣的美稱“互聯網之父”。
瑟夫從小喜歡標新立異,堅強而又熱情。中學讀書時,就被允許使用加州大學洛杉磯分校的電腦,他認為“為電腦編程序是個非常激動人心的事,…只要把程序編好,就可以讓電腦做任何事情。”1965年,瑟夫從斯坦福大學畢業到IBM的一家公司當系統工程師,工作沒多久,瑟夫就覺得知識不夠用,于是到加州大學洛杉磯分校攻讀博士,那時,正逢阿帕網的建立,“接口信號處理機”(IMP)的研試及網絡測評中心的建立,瑟夫也成了著名科學家克萊因羅克手下的一位學生。瑟夫與另外三位年輕人(溫菲爾德、克羅克、布雷登)參與了阿帕網的第一個節點的聯接。此后不久,BBN公司對工作中各種情況發展有很強判斷能力、被公認阿帕網建成作出巨大貢獻的鮑伯·卡恩(Bob Kahn)也來到了加州大學洛杉磯分校。 在那段日子里,往往是卡恩提出需要什么軟件,而瑟夫則通宵達旦地把符合要求的軟件給編出來,然后他們一起測試這些軟件,直至能正常運行。
當時的主要格局是這樣的,羅伯茨提出網絡思想設計網絡布局,卡恩設計阿帕網總體結構,克萊因羅克負責網絡測評系統,還有眾多的科學家、研究生參與研究、試驗。69年9月阿帕網誕生、運行后,才發現各個IMP連接的時候,需要考慮用各種電腦都認可的信號來打開通信管道,數據通過后還要關閉通道。否則這些IMP不會知道什么時候應該接收信號,什么時候該結束,這就是我們現在所說的通信“協議”的概念。70年12月制定出來了最初的通信協議由卡恩開發、瑟夫參與的“網絡控制協議”(NCP),但要真正建立一個共同的標準很不容易,72年10月國際電腦通信大會結束后,科學家們都在為此而努力。
“包切換”理論為網絡之間的聯接方式提供了理論基礎。卡恩在自己研究的基礎上,認識到只有深入理解各種操作系統的細節才能建立一種對各種操作系統普適的協議,73年卡恩請瑟夫一起考慮這個協議的各個細節,他們這次合作的結果產生了目前在開放系統下的所有網民和網管人員都在使用的“傳輸控制協議”(TCP,Transmission-Control Protocol)和“因特網協議”(IP,Internet Protocol)即TCP/IP協議。
通俗而言:TCP負責發現傳輸的問題,一有問題就發出信號,要求重新傳輸,直到所有數據安全正確地傳輸到目的地。而IP是給因特網的每一臺電腦規定一個地址。1974年12月,卡恩、瑟夫的第一份TCP協議詳細說明正式發表。當時美國國防部與三個科學家小組簽定了完成TCP/IP的協議,結果由瑟夫領銜的小組捷足先登,首先制定出了通過詳細定義的TCP/IP協議標準。當時作了一個試驗,將信息包通過點對點的衛星網絡,再通過陸地電纜,再通過衛星網絡,再由地面傳輸,貫串歐洲和美國,經過各種電腦系統,全程9.4萬公里竟然沒有丟失一個數據位,遠距離的可靠數據傳輸證明了TCP/IP協議的成功。
1983年1月1日,運行較長時期曾被人們習慣了的NCP被停止使用,TCP/IP協議作為因特網上所有主機間的共同協議,從此以后被作為一種必須遵守的規則被肯定和應用。正是由于TCP/IP協議,才有今天“地球村”因特網的巨大發展。
在構建了阿帕網先驅之后,DARPA開始了其他數據傳輸技術的研究。NCP誕生后兩年,1972年,羅伯特·卡恩(Robert E. Kahn)被DARPA的信息技術處理辦公室雇傭,在那里他研究衛星數據包網絡和地面無線數據包網絡,并且意識到能夠在它們之間溝通的價值。在1973年春天,已有的ARPANET網絡控制程序(NCP)協議的開發者文頓·瑟夫(Vinton Cerf)加入到卡恩為ARPANET設計下一代協議而開發開放互連模型的工作中。
到了1973年夏天,卡恩和瑟夫很快就開發出了一個基本的改進形式,其中網絡協議之間的不同通過使用一個公用互聯網絡協議而隱藏起來,并且可靠性由主機保證而不是像ARPANET那樣由網絡保證。(瑟夫稱贊Hubert Zimmerman和Louis Pouzin(CYCLADES網絡的設計者)在這個設計上發揮了重要影響。)
由于網絡的作用減少到最小的程度,就有可能將任何網絡連接到一起,而不用管它們不同的特點,這樣就解決了卡恩最初的問題。(一個流行的說法提到瑟夫和卡恩工作的最終產品TCP/IP將在運行“兩個罐子和一根弦”上,實際上它已經用在信鴿上。一個稱為網關(后來改為路由器以免與網關混淆)的計算機為每個網絡提供一個接口并且在它們之間來回傳輸數據包。
這個設計思想更細的形式由瑟夫在斯坦福的網絡研究組的1973年–1974年期間開發出來。(處于同一時期的誕生了PARC通用包協議組的施樂PARC早期網絡研究工作也有重要的技術影響;人們在兩者之間搖擺不定。)
DARPA于是與BBN、斯坦福和倫敦大學簽署了協議開發不同硬件平臺上協議的運行版本。有四個版本被開發出來——TCP v1、TCP v2、在1978年春天分成TCP v3和IP v3的版本,后來就是穩定的TCP/IP v4——目前因特網仍然使用的標準協議。
1975年,兩個網絡之間的TCP/IP通信在斯坦福和倫敦大學(UCL)之間進行了測試。1977年11月,三個網絡之間的TCP/IP測試在美國、英國和挪威之間進行。在1978年到1983年間,其他一些TCP/IP原型在多個研究中心之間開發出來。ARPANET完全轉換到TCP/IP在1983年1月1日發生。[1]
1984年,美國國防部將TCP/IP作為所有計算機網絡的標準。1985年,因特網架構理事會舉行了一個三天有250家廠商代表參加的關于計算產業使用TCP/IP的工作會議,幫助協議的推廣并且引領它日漸增長的商業應用。
2005年9月9日卡恩和瑟夫由于他們對于美國文化做出的卓越貢獻被授予總統自由勛章。
之所以說TCP/IP是一個協議族,是因為TCP/IP協議包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP、TFTP等許多協議,這些協議一起稱為TCP/IP協議。以下是協議族中一些常用協議英文名稱和用途:
TCP(Transport Control Protocol)傳輸控制協議
IP(Internet Protocol)因特網協議
UDP(User Datagram Protocol)用戶數據報協議
ICMP(Internet Control Message Protocol)互聯網控制信息協議
SMTP(Simple Mail Transfer Protocol)簡單郵件傳輸協議
SNMP(Simple Network manage Protocol)簡單網絡管理協議
FTP(File Transfer Protocol)文件傳輸協議
ARP(Address Resolution Protocol)地址解析協議
TCP/IP協議簇分為四層,IP位于協議簇的第二層(對應OSI的第三層),TCP位于協議簇的第三層(對應OSI的第四層)。
TCP和IP是TCP/IP協議簇的中間兩層,是整個協議簇的核心,起到了承上啟下的作用。
1.IP
網際協議IP是TCP/IP的心臟,也是網絡層中最重要的協議。
IP層接收由更低層(網絡接口層例如以太網設備驅動程序)發來的數據包,并把該數據包發送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數據包傳送到更低層。IP數據包是不可靠的,因為IP并沒有做任何事情來確認數據包是按順序發送的或者沒有被破壞。IP數據包中含有發送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。
高層的TCP和UDP服務在接收數據包時,通常假設包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務的認證基礎,這些服務相信數據包是從一個有效的主機發送來的。IP確認包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對于一些TCP和UDP的服務來說,使用了該選項的IP包好像是從路徑上的最后一個系統傳遞過來的,而不是來自于它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來進行平常是被禁止的連接。那么,許多依靠IP源地址做確認的服務將產生問題并且會被非法入侵。
2.TCP
如果IP數據包中有已經封好的TCP數據包,那么IP將把它們向‘上’傳送到TCP層。TCP將包排序并進行錯誤檢查,同時實現虛電路間的連接。TCP數據包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
TCP將它的信息送到更高層的應用程序,例如Telnet的服務程序和客戶程序。應用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設備驅動程序和物理介質,最后到接收方。
面向連接的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發送和接收域名數據庫),但使用UDP傳送有關單個主機的信息。
3.UDP
UDP與TCP位于同一層,但它不管數據包的順序、錯誤或重發。因此,UDP不被應用于那些使用虛電路的面向連接的服務,UDP主要用于那些面向查詢---應答的服務,例如NFS。相對于FTP或Telnet,這些服務需要交換的信息量較小。使用UDP的服務包括NTP(網絡時間協議)和DNS(DNS也使用TCP)。
欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與UDP相關的服務面臨著更大的危險。
4.ICMP
ICMP與IP位于同一層,它被用來傳送IP的的控制信息。它主要是用來提供有關通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機通向其他系統的更準確的路徑,而‘Unreachable’信息則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接‘體面地’終止。PING是最常用的基于ICMP的服務。
5. TCP和UDP的端口結構
TCP和UDP服務通常有一個客戶/服務器的關系,例如,一個Telnet服務進程開始在系統上處于空閑狀態,等待著連接。用戶使用Telnet客戶程序與服務進程建立一個連接。客戶程序向服務進程寫入信息,服務進程讀出信息并發出響應,客戶程序讀出響應并向用戶報告。因而,這個連接是雙工的,可以用來進行讀寫。
兩個系統間的多重Telnet連接是如何相互確認并協調一致呢?TCP或UDP連接唯一地使用每個信息中的如下四項進行確認:
源IP地址 發送包的IP地址。
目的IP地址 接收包的IP地址。
源端口 源系統上的連接的端口。
目的端口 目的系統上的連接的端口。
端口是一個軟件結構,被客戶程序或服務進程用來發送和接收信息。一個端口對應一個16比特的數。服務進程通常使用一個固定的端口,例如,SMTP使用25、Xwindows使用6000。這些端口號是‘廣為人知’的,因為在建立與特定的主機或服務的連接時,需要這些地址和目的地址進行通訊。
在Internet上連接的所有計算機,從大型機到微型計算機都是以獨立的身份出現,我們稱它為主機。為了實現各主機間的通信,每臺主機都必須有一個唯一的網絡地址。就好像每一個住宅都有唯一的門牌一樣,才不至于在傳輸資料時出現混亂。
Internet的網絡地址是指連入Internet網絡的計算機的地址編號。所以,在Internet網絡中,網絡地址唯一地標識一臺計算機。
我們都已經知道,Internet是由幾千萬臺計算機互相連接而成的。而我們要確認網絡上的每一臺計算機,靠的就是能唯一標識該計算機的網絡地址,這個地址就叫做IP(Internet Protocol的簡寫)地址,即用Internet協議語言表示的地址。
目前,在Internet里,IP地址是一個32位的二進制地址,為了便于記憶,將它們分為4組,每組8位,由小數點分開,用四個字節來表示,而且,用點分開的每個字節的數值范圍是0~255,如202.116.0.1,這種書寫方法叫做點數表示法。
地址分類
IP地址可確認網絡中的任何一個網絡和計算機,而要識別其它網絡或其中的計算機,則是根據這些IP地址的分類來確定的。一般將IP地址按節點計算機所在網絡規模的大小分為A,B,C三類,默認的網絡屏蔽是根據IP地址中的第一個字段確定的。
1. A類地址
A類地址的表示范圍為:1.0.0.1~126.255.255.255,默認網絡屏蔽為:255.0.0.0;A類地址分配給規模特別大的網絡使用。A類網絡用第一組數字表示網絡本身的地址,后面三組數字作為連接于網絡上的主機的地址。分配給具有大量主機(直接個人用戶)而局域網絡個數較少的大型網絡。例如IBM公司的網絡。
127.0.0.0到127.255.255.255是保留地址,用做循環測試用的。
0.0.0.0到0.255.255.255也是保留地址,用做表示所有的IP地址。
一個A類IP地址由1字節(每個字節是8位)的網絡地址和3個字節主機地址組成,網絡地址的最高位必須是“0”,即第一段數字范圍為1~127。每個A類地址理論上可連接16777214<256*256*256-2>臺主機(-2是因為主機中要用去一個網絡號和一個廣播號),Internet有126個可用的A類地址。A類地址適用于有大量主機的大型網絡。
2. B類地址
B類地址的表示范圍為:128.0.0.1~191.255.255.255,默認網絡屏蔽為:255.255.0.0;B類地址分配給一般的中型網絡。B類網絡用第一、二組數字表示網絡的地址,后面兩組數字代表網絡上的主機地址。
169.254.0.0到169.254.255.255是保留地址。如果你的IP地址是自動獲取IP地址,而你在網絡上又沒有找到可用的DHCP服務器,這時你將會從169.254.0.0到169.254.255.255中臨時獲得一個IP地址。
一個B類IP地址由2個字節的網絡地址和2個字節的主機地址組成,網絡地址的最高位必須是“10”,即第一段數字范圍為128~191。每個B類地址可連接65534(2^16-2, 因為主機號的各位不能同時為0,1)臺主機,Internet有16383(2^14-1)個B類地址(因為B類網絡地址128.0.0.0是不指派的,而可以指派的最小地址為128.1.0.0[COME06])。
3. C類地址
C類地址的表示范圍為:192.0.0.1~223.255.255.255,默認網絡屏蔽為:255.255.255.0;C類地址分配給小型網絡,如一般的局域網,它可連接的主機數量是最少的,采用把所屬的用戶分為若干的網段進行管理。C類網絡用前三組數字表示網絡的地址,最后一組數字作為網絡上的主機地址。
一個C類地址是由3個字節的網絡地址和1個字節的主機地址組成,網絡地址的最高位必須是“110”,即第一段數字范圍為192~223。每個C類地址可連接254臺主機,Internet有2097152個C類地址段(32*256*256),有532676608個地址(32*256*256*254)。
RFC 1918留出了3塊IP地址空間(1個A類地址段,16個B類地址段,256個C類地址段)作為私有的內部使用的地址。在這個范圍內的IP地址不能被路由到Internet骨干網上;Internet路由器將丟棄該私有地址。
IP地址類別 RFC 1918內部地址范圍
A類 10.0.0.0到10.255.255.255
B類 172.16.0.0到172.31.255.255
C類 192.168.0.0到192.168.255.255
使用私有地址將網絡連至Internet,需要將私有地址轉換為公有地址。這個轉換過程稱為網絡地址轉換(Network Address Translation,NAT),通常使用路由器來執行NAT轉換。
實際上,還存在著D類地址和E類地址。但這兩類地址用途比較特殊,在這里只是簡單介紹一下:
D類地址不分網絡地址和主機地址,它的第1個字節的前四位固定為1110。 D類地址范圍:224.0.0.1到239.255.255.254 。 D類地址用于多點播送。D類地址稱為廣播地址,供特殊協議向選定的節點發送信息時用。
E類地址保留給將來使用。
連接到Internet上的每臺計算機,不論其IP地址屬于哪類都與網絡中的其它計算機處于平等地位,因為只有IP地址才是區別計算機的唯一標識。所以,以上IP地址的分類只適用于網絡分類。
在Internet中,一臺計算機可以有一個或多個IP地址,就像一個人可以有多個通信地址一樣,但兩臺或多臺計算機卻不能共享一個IP地址。如果有兩臺計算機的IP地址相同,則會引起異?,F象,無論哪臺計算機都將無法正常工作。
順便提一下幾類特殊的IP地址:
1. 廣播地址 目的端為給定網絡上的所有主機,一般主機段為全1
2. 單播地址 目的端為指定網絡上的單個主機地址
3. 組播地址 目的端為同一組內的所有主機地址
4. 環回地址 127.0.0.1 在環回測試和廣播測試時會使用
網關地址
若要使兩個完全不同的網絡(異構網)連接在一起,一般使用網關,在Internet中兩個網絡也要通過一臺稱為網關的計算機實現互聯。這臺計算機能根據用戶通信目標計算機的IP地址,決定是否將用戶發出的信息送出本地網絡,同時,它還將外界發送給屬于本地網絡計算機的信息接收過來,它是一個網絡與另一個網絡相聯的通道。為了使TCP/IP協議能夠尋址,該通道被賦予一個IP地址,這個IP地址稱為網關地址。
內部地址和外部地址在局域網的IP地址分配中,并沒有區別,都可以使用。
在局域網的IP地址分配中,子網屏蔽的“1”部分只要和對應的IP地址分類規定的前幾個二進制數一致即可。
若公司不上Internet,那一定不會煩惱IP地址的問題,因為可以任意使用所有的IP地址,不管是A類或是B類,這個時候不會想到要用子網,但若是上Internet那IP地址便彌足珍貴了,目前全球一陣Internet熱,IP地址已經愈來愈少了,而所申請的IP地址目前也趨保守,而且只有經申請的IP地址能在Internet使用,但對某些公司只能申請到一個C類的IP地址,但又有多個點需要使用,那這時便需要使用到子網,這就需要考慮子網的劃分,下面簡介子網的原理及如何規劃。
子網掩碼(Subnet Mask)
設定任何網絡上的任何設備不管是主機、個人電腦、路由器等皆需要設定IP地址,而跟隨著IP地址的是所謂的子網掩碼(NetMask,Subnet Mask),這個子網掩碼主要的目的是由IP地址中也能獲得網絡編碼,也就是說IP地址和子網掩碼合作而得到網絡編碼,如下所示:
IP地址
192.10.10.6 11000000.00001010.00001010.00000110
子網掩碼
255.255.255.0 11111111.11111111.11111111.00000000
AND
-------------------------------------------------------------------
Network Number
192.10.10.0 11000000.00001010.00001010.00000000
子網掩碼有所謂的默認值,如下所示
類 IP地址 范圍 子網掩碼
A 1.0.0.0-126.255.255.255 255.0.0.0
B 128.0.0.0-191.255.255.255 255.255.0.0
C 192.0.0.0-223.255.255.255 255.255.255.0
在預設的子網掩碼(Net Mask)都只有255的值,在談到子網掩碼(Subnet Mask)時這個值便不一定是255了。在完整一組C類地址中如203.67.10.0-203.67.10.255 子網掩碼255.255.255.0,203.67.10.0稱之網絡編碼(Network Number,將IP 地址和子網掩碼作和),而203.67.10.255是廣播的IP地址,所以這兩者皆不能使用,實際只能使用203.67.10.1--203.67.10.254等254個IP地址,這是以255.255.255.0作子網掩碼的結果,而所謂Subnet Msk尚可將整組C類地址分成數組網絡編碼,這要在子網掩碼上作手腳,若是要將整組C類地址分成2個網絡編碼那子網掩碼設定為255.255.255.128,若是要將整組C類分成8組網絡編碼則子網掩碼要為255.255.255.224,這是怎么來的,由以上知道網絡編碼是由IP地址和子網掩碼作AND而來的,而且將子網掩碼以二進制表示法知道是1的會保留,而為0的去掉
192.10.10.193--11000000.00001010.00001010.11000001
255.255.255.0--11111111.11111111.11111111.00000000
--------------------------------------------------------------
192.10.10.0--11000000.00001010.00001010.00000000
以上是以255.255.255.0為子網掩碼的結果,網絡編碼是192.10.10.0,若是使用255.255.255.224作子網掩碼結果便有所不同
192.10.10.193--11000000.00001010.00001010.11000001
255.255.255.224--11111111.11111111.11111111.11100000
--------------------------------------------------------------
192.10.10.192--11000000.00001010.00001010.11000000
此時網絡編碼變成了192.10.10.192,這便是子網。那要如何決定所使用的子網掩碼,255.255.255.224以二進制表示法為11111111.11111111.11111111.11100000,變化是在最后一組,11100000便是224,以三個位(Bit)可表示2的3次方便是8個網絡編碼
子網掩碼二進制表示法可分幾個網絡
255.255.255.011111111.11111111.11111111.00000000 1
255.255.255.128
11111111.11111111.11111111.10000000 2
255.255.255.192
11111111.11111111.11111111.11000000 4
255.255.255.224
11111111.11111111.11111111.11100000 8
255.255.255.240
11111111.11111111.11111111.11110000 16
255.255.255.248
11111111.11111111.11111111.11111000 32
255.255.255.252
11111111.11111111.11111111.11111100 64
以下使用255.255.255.224將C類地址203.67.10.0分成8組網絡編碼,各個網絡編碼及其廣播IP地址及可使用之IP地址序號網絡編碼廣播可使用之IP地址
(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
?。?)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
?。?)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
可驗證所使用的IP地址是否如上表所示
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
其它的子網掩碼所分成的網絡編碼可自行以上述方法自行推演出來。
子網的應用
使用子網是要解決只有一組C類地址但需要數個網絡編碼的問題,并不是解決IP地址不夠用的問題,因為使用子網反而能使用的IP地址會變少,子網通常是使用在跨地域的網絡互聯之中,兩者之間使用路由器連線,同時也上Internet,但只申請到一組C 類IP地址,過路由又需不同的網絡,所以此時就必須使用到子網,當然二網絡間也可以遠程橋接(Remote Bridge,字面翻譯)連接,那便沒有使用子網的問題。
協議闡述、IP申請的術語
網絡地址:在申請IP地址或是闡述TCP/IP協議的IP地址分類時,用到這個術語。它表示IP地址的代碼序列中不可更加需要改變的部分。
主機地址:在申請IP地址或是闡述TCP/IP協議的IP地址分類時,用到這個術語。它表示IP地址的代碼序列中能夠更具需要改變的部分。
子網屏蔽:在闡述TCP/IP協議的IP地址分類時,用到這個術語。在申請IP地址時,由它表示所申請到的IP地址的網絡地址和主機地址。
子網劃分、內網搭建的術語
網絡編碼(網絡號):經過子網劃分后,子網掩碼序列中“1”對應的IP地址部分。一個網絡編碼,對應一個網域(或網段)。包括申請到的網絡地址的全部和主機地址的部分。
主機編碼(主機號):經過子網劃分后,子網掩碼序列中“0”對應的IP地址部分。一個主機編碼,對應一個網域(或網段)的一臺計算機。包括申請到主機地址的部分。
子網掩碼:用于子網劃分,它將能夠改變的主機地址分為主機編碼和網絡編碼的一部分。同時,它將網絡地址全部確定為網絡編碼。
從協議分層模型方面來講,TCP/IP由四個層次組成:網絡接口層、網絡層、傳輸層、應用層。
接口層
這是TCP/IP軟件的最低層,負責接收IP數據報并通過網絡發送之,或者從網絡上接收物理幀,抽出IP數據報,交給IP層。
常見的接口層協議有:
Ethernet 802.3、Token Ring 802.5、X.25、Frame reley、HDLC、PPP ATM 等。
網絡層
負責相鄰計算機之間的通信。其功能包括三方面。
一、處理來自傳輸層的分組發送請求,收到請求后,將分組裝入IP數據報,填充報頭,選擇去往信宿機的路徑,然后將數據報發往適當的網絡接口。
二、處理輸入數據報:首先檢查其合法性,然后進行尋徑--假如該數據報已到達信宿機,則去掉報頭,將剩下部分交給適當的傳輸協議;假如該數據報尚未到達信宿,則轉發該數據報。
三、處理路徑、流控、擁塞等問題。
網絡層包括:IP(Internet Protocol)協議、ICMP(Internet Control Message Protocol)
控制報文協議、ARP(Address Resolution Protocol)地址轉換協議、RARP(Reverse ARP)反向地址轉換協議。
IP是網絡層的核心,通過路由選擇將下一跳IP封裝后交給接口層。IP數據報是無連接服務。
ICMP是網絡層的補充,可以回送報文。用來檢測網絡是否通暢。
Ping命令就是發送ICMP的echo包,通過回送的echo relay進行網絡測試。
ARP是正向地址解析協議,通過已知的IP,尋找對應主機的MAC地址。
RARP是反向地址解析協議,通過MAC地址確定IP地址。比如無盤工作站和DHCP服務。
傳輸層
提供應用程序間的通信。其功能包括:一、格式化信息流;二、提供可靠傳輸。為實現后者,傳輸層協議規定接收端必須發回確認,并且假如分組丟失,必須重新發送。
傳輸層協議主要是:傳輸控制協議TCP(Transmission Control Protocol)和用戶數據報協議UDP(User Datagram rotocol)。
TCP是面向連接的通信協議,通過三次握手建立連接,通訊時完成時要拆除連接,由于TCP是面向連接的所以只能用于點對點的通訊。
TCP提供的是一種可靠的數據流服務,采用“帶重傳的肯定確認”技術來實現傳輸的可靠性。TCP還采用一種稱為“滑動窗口”的方式進行流量控制,所謂窗口實際表示接收能力,用以限制發送方的發送速度。
UDP是面向無連接的通訊協議,UDP數據包括目的端口號和源端口號信息,由于通訊不需要連接,所以可以實現廣播發送。
UDP通訊時不需要接收方確認,屬于不可靠的傳輸,可能會出丟包現象,實際應用中要求在程序員編程驗證。
應用層
向用戶提供一組常用的應用程序,比如電子郵件、文件傳輸訪問、遠程登錄等。遠程登錄TELNET使用TELNET協議提供在網絡其它主機上注冊的接口。TELNET會話提供了基于字符的虛擬終端。文件傳輸訪問FTP使用FTP協議來提供網絡內機器間的文件拷貝功能。
應用層一般是面向用戶的服務。如FTP、TELNET、DNS、SMTP、POP3。
FTP(File Transmision Protocol)是文件傳輸協議,一般上傳下載用FTP服務,數據端口是20H,控制端口是21H。
Telnet服務是用戶遠程登錄服務,使用23H端口,使用明碼傳送,保密性差、簡單方便。
DNS(Domain Name Service)是域名解析服務,提供域名到IP地址之間的轉換。
SMTP(Simple Mail Transfer Protocol)是簡單郵件傳輸協議,用來控制信件的發送、中轉。
POP3(Post Office Protocol 3)是郵局協議第3版本,用于接收郵件。
數據格式:
數據幀:幀頭+IP數據包+幀尾 (幀頭包括源和目標主機MAC地址及類型,幀尾是校驗字)
IP數據包:IP頭部+TCP數據信息 (IP頭包括源和目標主機IP地址、類型、生存期等)
TCP數據信息:TCP頭部+實際數據 (TCP頭包括源和目標主機端口號、順序號、確認號、校驗字等)
TCP/IP協議并不完全符合OSI的七層參考模型。傳統的開放式系統互連參考模型,是一種通信協議的7層抽象的參考模型,其中每一層執行某一特定任務。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。而TCP/IP通訊協議采用了4層的層級結構,每一層都呼叫它的下一層所提供的網絡來完成自己的需求。
OSI中的層 |
功能 |
TCP/IP協議族 |
應用層 |
文件傳輸,電子郵件,文件服務,虛擬終端 |
TFTP,HTTP,SNMP,FTP,SMTP,DNS,RIP,Telnet |
表示層 |
數據格式化,代碼轉換,數據加密 |
沒有協議 |
會話層 |
解除或建立與別的接點的聯系 |
沒有協議 |
傳輸層 |
提供端對端的接口 |
TCP,UDP |
網絡層 |
為數據包選擇路由 |
IP,ICMP,OSPF,BGP,IGMP ,ARP,RARP |
數據鏈路層 |
傳輸有地址的幀以及錯誤檢測功能 |
SLIP,CSLIP,PPP,MTU |
物理層 |
以二進制數據形式在物理媒體上傳輸數據 |
ISO2110,IEEE802,IEEE802.2 |
數據鏈路層包括了硬件接口和協議ARP,RARP,這兩個協議主要是用來建立送到物理層上的信息和接收從物理層上傳來的信息;
網絡層中的協議主要有IP,ICMP,IGMP等,由于它包含了IP協議模塊,所以它是所有基于TCP/IP協議網絡的核心。在網絡層中,IP模塊完成大部分功能。ICMP和IGMP以及其他支持IP的協議幫助IP完成特定的任務,如傳輸差錯控制信息以及主機/路由器之間的控制電文等。網絡層掌管著網絡中主機間的信息傳輸。
傳輸層上的主要協議是TCP和UDP。正如網絡層控制著主機之間的數據傳遞,傳輸層控制著那些將要進入網絡層的數據。兩個協議就是它管理這些數據的兩種方式:TCP是一個基于連接的協議;UDP則是面向無連接服務的管理方式的協議。
TCP/IP模型的主要缺點有:
首先,該模型沒有清楚地區分哪些是規范、哪些是實現;其次,TCP/IP模型的主機—網絡層定義了網絡層與數據鏈路層的接口,并不是常規意義上的一層,和接口層的區別是非常重要的,TCP/IP模型沒有將它們區分開來。
全面的測試應包括局域網和互聯網兩個方面,因此應從局域網和互聯網兩個方面測試,以下是在實際工作中利用命令行測試TCP/IP配置步驟:
1、 單擊“開始”/“運行”,輸入CMD按回車,打開命令提示符窗口。
2、 首先檢查IP地址、子網掩碼、默認網關、DNS服務器地址是否正確,輸入命令ipconfig /all,按回車。此時顯示了你的網絡配置,觀查是否正確。
3、 輸入ping 127.0.0.1,觀查網卡是否能轉發數據,如果出現“Request timed out”,表明配置差錯或網絡有問題。
4、 Ping一個互聯網地址,如ping 202.102.128.68,看是否有數據包傳回,以驗證與互聯網的連接性。
5、 Ping 一個局域網地址,觀查與它的連通性。
6、 用nslookup測試DNS解析是否正確,輸入如nslookup ,查看是否能解析。
如果你的計算機通過了全部測試,則說明網絡正常,否則網絡可能有不同程度的問題。在此不展開詳述。不過,要注意,在使用 ping命令時,有些公司會在其主機設置丟棄ICMP數據包,造成你的ping命令無法正常返回數據包,不防換個網站試試。
?。?)開放的協議標準,可以免費使用,并且獨立于特定的計算機硬件與操作系統;
?。?)獨立于特定的網絡硬件,可以運行在局域網、廣域網,更適用于互聯網中;
(3)統一的網絡地址分配方案,使得整個TCP/IP設備在網中都具有惟一的地址;
(4)標準化的高層協議,可以提供多種可靠的用戶服務。
在長期的發展過程中,IP逐漸取代其他網絡。這里是一個簡單的解釋。IP傳輸通用數據。數據能夠用于任何目的,并且能夠很輕易地取代以前由專有數據網絡傳輸的數據。下面是一個普通的過程:
一個專有的網絡開發出來用于特定目的。如果它工作很好,用戶將接受它。
為了便利提供IP服務,經常用于訪問電子郵件或者聊天,通常以某種方式通過專有網絡隧道實現。隧道方式最初可能非常沒有效率,因為電子郵件和聊天只需要很低的帶寬。
通過一點點的投資IP 基礎設施逐漸在專有數據網絡周邊出現。
用IP取代專有服務的需求出現,經常是一個用戶要求。
IP替代品過程遍布整個因特網,這使IP替代品比最初的專有網絡更加有價值(由于網絡效應)。
專有網絡受到壓制。許多用戶開始維護使用IP替代品的復制品。
IP包的間接開銷很小,少于1%,這樣在成本上非常有競爭性。人們開發了一種能夠將IP帶到專有網絡上的大部分用戶的不昂貴的傳輸媒介。
大多數用戶為了削減開銷,專有網絡被取消。
在Windows XP的網絡組件列表里,Internet 協議 (TCP/IP)的"卸載"按鈕是灰色不可選狀態。這是因為傳輸控制協議/Internet 協議 (TCP/IP) 堆棧是 Microsoft XP/ 2003 的核心組件(TCP/IP協議是Windows XP的默認協議),不能刪除。所以Windows XP不允許卸載TCP/IP協議。如果在特殊情況下需要重新安裝TCP/IP協議,如何操作?
解決方法
在這種情況下,如果需要重新安裝 TCP/IP 以使 TCP/[1]IP 堆?;謴蜑樵紶顟B??梢允褂?NetShell 實用程序重置 TCP/IP 堆棧,使其恢復到初次安裝操作系統時的狀態。具體操作如下:
1、單擊 開始 --> 運行,輸入 "CMD" 后單擊 "確定";
2、在命令行模式輸入命令
netsh int ip reset C:\resetlog.txt
(其中,Resetlog.txt記錄命令結果的日志文件,一定要指定,這里指定了Resetlog.txt 日志文件及完整路徑。)
運行結果可以查看C:\resetlog.txt (咨詢中可根據用戶實際操作情況提供)
運行此命令的結果與刪除并重新安裝 TCP/IP 協議的效果相同。
注意
本操作具有一定的風險性,請在操作前備份重要數據,并根據操作熟練度酌情使用。
網絡地址不足
傳統的TCP/IP協議基于IPV4 屬于第二代互聯網技術,核心技術屬于美國。它的最大問題是網絡地址資源有限,從理論上講,編址1600萬個網絡、40億臺主機。但采用A、B、C三類編址方式后,可用的網絡地址和主機地址的數目大打折扣,以至目前的IP地址已經枯竭。其中北美占有3/4,約30億個,而人口最多的亞洲只有不到4億個,中國截止2010年6月IPv4地址數量達到2.5億,落后于4.2億網民的需求。雖然用動態IP及Nat地址轉換等技術實現了一些緩沖,但IPV4地址枯竭已經成為不爭的事實。在此,專家提出IPV6的互聯網技術,也正在推行,但IPV4的使用過度到IPV6需要很長的一段過度期。
傳輸能力不足
傳統的TCP/IP協議基于電話寬帶 以及以太網的電器特性而制定的,其分包原則與檢驗占用了數據包很大的一部分比例造成了傳輸效率低,現在網絡正向著全光纖網絡和超高速以太網方向發展,TCP/IP協議不能滿足其發展需要。