百科解釋
目錄·TCP/IP協(xié)議棧組成·必須協(xié)議·范例: 不同計算機運行的不同協(xié)議·TCP/IP參考模型 TCP/IP協(xié)議,包含了一系列構成互聯網基礎的網絡協(xié)議。這些協(xié)議最早發(fā)源于美國國防部的ARPA網項目。TCP/IP字面上代表了兩個協(xié)議:TCP(傳輸控制協(xié)議)和IP(網際協(xié)議)。 1983年1月1日,在因特網的前身(ARPA網)中,TCP/IP協(xié)議取代了舊的網絡核心協(xié)議(NCP,Network Core Protocol),從而成為今天的互聯網的基石。最早的TCP/IP由Vinton Cerf和Robert Kahn兩位開發(fā),慢慢地通過競爭戰(zhàn)勝了其他一些網絡協(xié)議的方案,比如國際標準化組織ISO的OSI模型。TCP/IP的蓬勃發(fā)展發(fā)生在上世紀的90年代中期。當時一些重要而可靠的工具的出世,例如頁面描述語言HTML和瀏覽器Mosaic,導致了互聯網應用的飛速發(fā)展。 隨著互聯網的發(fā)展,目前流行的IPv4協(xié)議(網際協(xié)議版本四)已經接近它的功能上限。IPv4最致命的兩個缺陷在與: 地址只有32位,IP地址空間有限; 不支持服務等級(Quality of Service, QoS)的想法,無法管理帶寬和優(yōu)先級,故而不能很好的支持現今越來越多的實時的語音和視頻應用。因此IPv6(網際協(xié)議版本六)浮出海面,用以取代IPv4。 TCP/IP成功的另一個因素在于對為數眾多的低層協(xié)議的支持。這些低層協(xié)議對應與OSI模型 中的第一層(物理層)和第二層(數據鏈路層)。每層的所有協(xié)議幾乎都有一半數量的支持TCP/IP,例如: 以太網(Ethernet),令牌環(huán)(Token Ring),光纖數據分布接口(FDDI),端對端協(xié)議(PPP),X.25,幀中繼(Frame Relay),ATM,Sonet, SDH等。 TCP/IP協(xié)議棧組成 整個通信網絡的任務,可以劃分成不同的功能區(qū)塊,即所謂的層級(layer) 。用于互聯網的協(xié)議可以比照TCP/IP參考模型進行分類。TCP/IP協(xié)議棧起始于第三層協(xié)議IP(網際協(xié)議)。所有這些協(xié)議都在相應的RFC文檔中討論及標準化。重要的協(xié)議在相應的RFC文檔中均標記了狀態(tài): “必須”(required) ,“推薦”(recommended) ,“可選”(elective) 。其他的協(xié)議還可能有“試驗”(experimental) 或“歷史”(historic) 的狀態(tài)! 必須協(xié)議 所有的TCP/IP應用都必須實現IP和ICMP。對于一個路由器(router)而言,有這兩個協(xié)議就可以運作了,雖然從應用的角度來看,這樣一個路由器 意義不大。實際的路由器一般還需要運行許多“推薦“使用的協(xié)議,以及一些其他的協(xié)議。 幾乎所有連接到互聯網上的計算機上都存在的IPv4協(xié)議出生在1981年,今天的版本和最早的版本并沒有多少改變。升級版IPv6的工作始于1995年,目的在與取代IPv4。ICMP協(xié)議主要用于收集有關網絡的信息查找錯誤等工作。 范例: 不同計算機運行的不同協(xié)議 一個簡單的路由器上可能會實現ARP, IP, ICMP, UDP, SNMP, RIP。 WWW用戶端使用ARP, IP, ICMP, UDP, TCP, DNS, HTTP, FTP。 一臺用戶電腦上還會運行如TELNET, SMTP, POP3, SNMP, ECHO, DHCP, SSH, NNTP。 無盤設備可能會在固件比如ROM中實現了ARP, IP, ICMP, UDP, BOOT, TFTP (均為面向數據報的協(xié)議,實現起來相對簡單)。 TCP/IP參考模型 TCP/IP參考模型是一個抽象的分層模型,這個模型中,所有的TCP/IP系列網絡協(xié)議都被歸類到4個抽象的"層"中。每一抽象層建立在低一層提供的服務上,并且為高一層提供服務。 完成一些特定的任務需要眾多的協(xié)議協(xié)同工作,這些協(xié)議分布在參考模型的不同層中的,因此有時稱它們?yōu)橐粋協(xié)議棧。 TCP/IP參考模型為TCP/IP協(xié)議棧訂身制作。其中IP協(xié)議只關心如何使得數據能夠跨越本地網絡邊界的問題,而不關心如何利用傳輸媒體,數據如何傳輸。整個TCP/IP協(xié)議棧則負責解決數據如何通過許許多多個點對點通路(一個點對點通路,也稱為一"跳", 1 hop)順利傳輸,由此不同的網絡成員能夠在許多"跳"的基礎上建立相互的數據通路。 如想分析更普遍的網絡通信問題,ISO的OSI模型也能起更好的幫助作用。 因特網協(xié)議組是一組實現支持因特網和大多數商業(yè)網絡運行的協(xié)議棧的網絡傳輸協(xié)議。它有時也被稱為TCP/IP協(xié)議組,這個名稱來源于其中兩個最重要的協(xié)議:傳輸控制協(xié)議(TCP)和因特網協(xié)議(IP),它們也是最先定義的兩個協(xié)議。 同許多其他協(xié)議一樣網絡傳輸協(xié)議也可以看作一個多層組合,每層解決數據傳輸中的一組問題并且向使用這些低層服務的高層提供定義好的服務。高層邏輯上與用戶更為接近,所處理數據更為抽象,它們依賴于低層將數據轉換成最終能夠進行物理控制的形式。 網絡傳輸協(xié)議能夠大致匹配到一些廠商喜歡使用的固定7層的OSI模型。然而并不是所有這些層能夠很好地與基于ip的網絡對應(根據應用的設計和支持網絡的不同它們確實是涉及到不同的層)并且一些人認為試圖將因特網協(xié)以組對應到OSI會帶來混淆而不是有所幫助。 因特網協(xié)議棧中的層 人們已經進行了一些討論關于如何將TCP/IP參考模型映射到到OSI模型。由于TCP/IP和OSI模型組不能精確地匹配,還沒有一個完全正確的答案。 另外,OSI模型下層還不具備能夠真正占據真正層的位置的能力;在傳輸層和網絡層之間還需要另外一個層(網絡互連層)。特定網絡類型專用的一些協(xié)議應該運行在網絡層上,但是卻運行在基本的硬件幀交換上。類似協(xié)議的例子有地址解析協(xié)議和生成樹協(xié)議(用來保持冗余網橋的空閑狀態(tài)直到真正需要它們)。然而,它們是本地協(xié)議并且在網絡互連功能下面運行。不可否認,將兩個組(更不用說它們只是運行在如ICMP等不同的互連網絡協(xié)議上的邏輯上的網絡層的一部分)整個放在同一層會引起混淆,但是OSI模型還沒有復雜到能夠做更好的工作。 下面的圖表試圖顯示不同的TCP/IP和其他的協(xié)議在最初OSI模型中的位置: 通常人們認為OSI模型的最上面三層(應用層、表示層和會話層)在TCP/IP組中是一個應用層。由于TCP/IP有一個相對較弱的會話層,由TCP和RTP下的打開和關閉連接組成,并且在TCP和UDP下的各種應用提供不同的端口號,這些功能能夠被單個的應用程序(或者那些應用程序所使用的庫)增加。與此相似的是,IP是按照將它下面的網絡當作一個黑盒子的思想設計的,這樣在討論TCP/IP的時候就可以把它當作一個獨立的層。 應用層 該層包括所有和應用程序協(xié)同工作,利用基礎網絡交換應用程序專用的數據的協(xié)議。 應用層是大多數普通與網絡相關的程序為了通過網絡與其他程序通信所使用的層。這個層的處理過程是應用特有的;數據從網絡相關的程序的以這種應用內部使用的格式的傳過來,然后被編碼成標準協(xié)議的格式。 一些特定的程序被認為運行在這個層上。它們提供服務直接支持用戶應用。這些程序和它們對應的協(xié)議包括HTTP(The World Wide Web)、FTP(文件傳輸)、SMTP(電子郵件)、SSH(安全遠程登陸)、DNS (名稱<-> IP 地址尋找)以及許多其他協(xié)議。 一旦從應用程序來的數據被編碼成一個標準的應用層協(xié)議,它將被傳送到IP棧的下一層。 在傳輸層,應用程序最常用的是TCP或者UDP,并且服務器應用程序經常與一個公開的端口號相聯系。服務器應用程序的端口由Internet Assigned Numbers Authority (IANA)正式地分配,但是現今一些新協(xié)議的開發(fā)者經常選擇它們自己的端口號。由于在同一個系統(tǒng)上很少超過少數幾個的服務器應用,端口沖突引起的問題很少。應用軟件通常也允許用戶強制性地指定端口號作為運行參數。 連結外部的客戶端程序通常使用系統(tǒng)分配的一個隨機端口號。監(jiān)聽一個端口并且然后通過服務器將那個端口發(fā)送到應用的另外一個副本以建立對等連結(如IRC上的dcc文件傳輸)的應用也可以使用一個隨機端口,但是應用程序通常允許定義一個特定的端口范圍的規(guī)范以允許端口能夠通過實現網絡地址轉換(NAT)的路由器映射到內部。 每一個應用層(TCP/IP參考模型 的最高層) 協(xié)議一般都會使用到兩個傳輸層協(xié)議之一: 面向連接的TCP傳輸控制協(xié)議和無連接的包傳輸的UDP用戶數據報文協(xié)議 。 常用的應用層協(xié)議有: 運行在TCP協(xié)議上的協(xié)議: HTTP(Hypertext Transfer Protocol,超文本傳輸協(xié)議),主要用于普通瀏覽。 HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本傳輸協(xié)議),HTTP協(xié)議的安全版本。 FTP(File Transfer Protocol, 文件傳輸協(xié)議),由名知義,用于文件傳輸。 POP3 (Post Office Protocol, version 3, 郵局協(xié)議) ,收郵件用。 SMTP (Simple Mail Transfer Protocol,簡單郵件傳輸協(xié)議) ,用來發(fā)送電子郵件 。 TELNET(Teletype over the Network, 網絡電傳),通過一個終端(terminal)登陸到網絡。 SSH (Secure Shell,用于替代安全性差的TELNET),用于加密安全登陸用。 運行在UDP協(xié)議上的協(xié)議: BOOTP (Boot Protocol,啟動協(xié)議) ,應用于無盤設備。 NTP (Network Time Protocol,網絡時間協(xié)議) ,用于網絡同步。 其他: DNS (Domain Name Service,域名服務) ,用于完成地址查找,郵件轉發(fā)等工作(運行在TCP和UDP協(xié)議上) 。 ECHO (Echo Protocol, 回繞協(xié)議) ,用于查錯及測量應答時間(運行在TCP和UDP協(xié)議上) 。 SNMP (Simple Network Management Protocol, 簡單網絡管理協(xié)議) ,用于網絡信息的收集和網絡管理。 DHCP(Dynamic Host Configuration Protocol,動態(tài)主機配置協(xié)議),動態(tài)配置IP地址。 ARP (Address Resolution Protocol,地址解析協(xié)議) ,用于動態(tài)解析以太網硬件的地址。 傳輸層 傳輸層的協(xié)議能夠解決諸如可靠性(“數據是否已經到達目的地?”)和保證數據按照正確的順序到達這樣的問題。在TCP/IP協(xié)議組中,傳輸協(xié)議也包括所給數據應該送給哪個應用程序。 在TCP/IP協(xié)議組中技術上位于這個層的動態(tài)路由協(xié)議通常被認為是網絡層的一部分;一個例子就是OSPF(IP協(xié)議89)。 TCP(IP協(xié)議6)是一個“可靠的”、面向連結的傳輸機制,它提供一種可靠的字節(jié)流保證數據完整、無損并且按順序到達。TCP盡量連續(xù)不斷地測試網絡的負載并且控制發(fā)送數據的速度以避免網絡過載。另外,TCP試圖將數據按照規(guī)定的順序發(fā)送。這是它與UDP不同之處,這在實時數據流或者路由高網絡層丟失率應用的時候可能成為一個缺陷。 較新的SCTP也是一個“可靠的”、面向連結的傳輸機制。它是面向紀錄而不是面向字節(jié)的,它在一個單獨的連結上提供了通過多路復用提供了多個子流。它也提供了多路自尋址支持,其中連結終端能夠被多個IP地址表示(代表多個物理接口),這樣的話即使其中一個失敗了連接也不中斷。它最初是為電話應用開發(fā)的(在IP上傳輸SS7),但是也可以用于其他的應用。 UDP(IP協(xié)議號17)是一個無連結的數據報協(xié)議。它是一個“best effort”或者“不可靠”協(xié)議——不是因為它特別不可靠,而是因為它不檢查數據包是否已經到達目的地,并且不保證它們按順序到達。如果一個應用程序需要這些特點,它必須自己提供或者使用TCP。 UDP的典型性應用是如流媒體(音頻和視頻等)這樣按時到達比可靠性更重要的應用,或者如DNS查找這樣的簡單查詢/響應應用,如果建立可靠的連結所作的額外工作將是不成比例地大。 DCCP目前正由IEFT開發(fā)。它提供TCP流動控制語義,但對于用戶來說保留了UDP的數據報服務模型。 TCP和UDP都用來支持一些高層的應用。任何給定網絡地址的應用通過它們的TCP或者UDP端口號區(qū)分。根據慣例一些大眾所知的端口與特定的應用相聯系。 RTP是為如音頻和視頻流這樣的實時數據設計的數據報協(xié)議。RTP是使用UDP包格式作為基礎的會話層,然而據說它位于因特網協(xié)議棧的傳輸層。 網絡層 正如最初所定義的,網絡層解決在一個單一網絡上傳輸數據包的問題。類似的協(xié)議有X.25和ARPANET的Host/IMP Protocol。 隨著因特網思想的出現,在這個層上添加了附加的功能,也就是將數據從源網絡傳輸到目的網絡。這就牽涉到在網絡組成的網上選擇路徑將數據包傳輸,也就是因特網。 在因特網協(xié)議組中,IP完成數據從源發(fā)送到目的基本任務。IP能夠承載多種不同的高層協(xié)議的數據;這些協(xié)議使用一個唯一的IP協(xié)議號進行標識。ICMP和IGMP分別是1和2。 一些IP承載的協(xié)議,如ICMP(用來發(fā)送關于IP發(fā)送的診斷信息)和IGMP(用來管理多播數據),它們位于IP層之上但是完成網絡層的功能,這表明了因特網和OSI模型之間的不兼容性。所有的路由協(xié)議,如BGP、 OSPF、和RIP實際上也是網絡層的一部分,盡管似乎它們應該屬于更高的協(xié)議棧。 鏈路層 鏈路層實際上并不是因特網協(xié)議組中的一部分,但是它是數據包從一個設備的網絡層傳輸到里另外一個設備的網絡層的方法。這個過程能夠在網卡的軟件驅動程序中控制,也可以在韌體或者專用芯片中控制。這將完成如添加報頭準備發(fā)送、通過物理媒介實際發(fā)送這樣一些數據鏈路功能。另一端,鏈路層將完成數據幀接收、去除報頭并且將接收到的包傳到網絡層。 然而,鏈路層并不經常這樣簡單。它也可能是一個虛擬專有網絡(VPN)或者隧道,在這里從網絡層來的包使用隧道協(xié)議和其他(或者同樣的)協(xié)議組發(fā)送而不是發(fā)送到物理的接口上。VPN和隧道通常預先建好,并且它們有一些直接發(fā)送到物理接口所沒有的特殊特點(例如,它可以加密經過它的數據)。由于現在鏈路“層”現在是一個完整的網絡,這種協(xié)議組的遞歸使用可能引起混淆。但是它是一個實現常見復雜功能的一個優(yōu)秀方法。(盡管需要注意以防一個已經封裝并且經隧道發(fā)送下去的數據包進行再次地封裝和發(fā)送)。 開發(fā) 因特網協(xié)議組來自于二十世紀七十年代早期DARPA所作的工作。在構建了APRANET先驅之后,DARPA開始了其他數據傳輸技術的研究。1972年,Robert E. Kahn被DARPA的信息技術處理辦公室雇傭,在那里他研究衛(wèi)星數據包網絡和地面無線數據包網絡,并且意識到能夠在它們之間溝通的價值。在1973年春天,已有的ARPANET網絡控制程序(NCP)協(xié)議的開發(fā)者Vinton Cerf加入到Kahn為ARPANET設計下一代協(xié)議而開發(fā)開放互連模型的工作中。 到了1973年夏天,Kahn和Cerf很快就開發(fā)出了一個基本的改進形式,其中網絡協(xié)議之間的不同通過使用一個公用互聯網絡協(xié)議而隱藏起來,并且可靠性由主機保證而不是象ARPANET那樣由網絡保證。(Cerf 稱贊Hubert Zimmerman和Louis Pouzin(CYCLADES網絡的設計者)在這個設計上發(fā)揮了重要影響。) 由于網絡的作用減少到最小的程度,就有可能將任何網絡連接到一起,而不用管它們不同的特點,這樣就解決了Kahn最初的問題。(一個流行的說法提到Cerf和Kahn工作的最終產品TCP/IP將在運行“兩個罐子和一根弦”上,實際上它已經用在信鴿上。一個稱為網關(后來改為路由器以免與網關混淆)的計算機為每個網絡提供一個接口并且在它們之間來回傳輸數據包。 這個設計思想更細的形式由Cerf在斯坦福的網絡研究組的1973年–1974年期間開發(fā)出來。(處于同一時期的誕生了PARC通用包協(xié)議組的施樂PARC早期網絡研究工作也有重要的技術影響;人們在兩者之間搖擺不定。) DARPA于是與BBN、斯坦福和倫敦大學簽署了協(xié)議開發(fā)不同硬件平臺上協(xié)議的運行版本。有四個版本被開發(fā)出來——TCP v1、TCP v2、在1978年春天分成TCP v3和IP v3的版本,后來就是穩(wěn)定的TCP/IP v4——目前因特網仍然使用的標準協(xié)議。 1975年,兩個網絡之間的TCP/IP通信在斯坦福和倫敦大學(UCL)之間進行了測試。1977年11月,三個網絡之間的TCP/IP測試在美國、英國和挪威之間進行。在1978年到1983年間,其他一些TCP/IP原型在多個研究中心之間開發(fā)出來。ARPANET完全轉換到TCP/IP在1983年1月1日發(fā)生。[1] 1984年,美國國防部將TCP/IP作為所有計算機網絡的標準。1985年,因特網架構理事會舉行了一個三天有250家廠商代表參加的關于計算產業(yè)使用TCP/IP的工作會議,幫助協(xié)議的推廣并且引領它日漸增長的商業(yè)應用。 2005年9月9日Kahn和Cerf由于他們對于美國文化做出的卓越貢獻被授予總統(tǒng)自由勛章。[2] IP網絡如何并吞競爭的網絡 在長期的發(fā)展過程中,IP逐漸取代其他網絡。這里是一個簡單的解釋。IP傳輸通用數據。數據能夠用于任何目的,并且能夠很輕易地取代以前由專有數據網絡傳輸的數據。下面是一個普通的過程: 一個專有的網絡開發(fā)出來用于特定目的。如果它工作很好,用戶將接受它。 為了便利提供IP服務,經常用于訪問電子郵件或者聊天,通常以某種方式通過專有網絡隧道實現。隧道方式最初可能非常沒有效率,因為電子郵件和聊天只需要很低的帶寬。 通過一點點的投資IP 基礎設施逐漸在專有數據網絡周邊出現。 用IP取代專有服務的需求出現,經常是一個用戶要求。 IP替代品過程遍布整個因特網,這使IP替代品比最初的專有網絡更加有價值(由于網絡效應)。 專有網絡受到壓制。許多用戶開始維護使用IP替代品的復制品。 IP包的間接開銷很小,少于1%,這樣在成本上非常有競爭性。人們開發(fā)了一種能夠將IP帶到專有網絡上的大部分用戶的不昂貴的傳輸媒介。 大多數用戶為了削減開銷,專有網絡被取消。 實現 KA9Q PPJ lwIP 如今,大多數商業(yè)操作系統(tǒng)包括TCP/IP棧并且缺省安裝它們,對于大多數用戶來說,沒有必要去尋找它們的實現。TCP/IP包含在所有的商業(yè)Unix和Linux發(fā)布包中,同樣也包含在Mac OS X和微軟視窗和視窗服務器版本中。
移動通信網 | 通信人才網 | 更新日志 | 團隊博客 | 免責聲明 | 關于詞典 | 幫助