TCP/IP協議族
互聯網協議族(英語:Internet Protocol Suite,縮寫IPS)是一個網絡通信模型,以及一整個網絡傳輸協議家族,為互聯網的基礎通信架構。它常被通稱為TCP/IP協議族(英語:TCP/IP Protocol Suite,或TCP/IP Protocols),簡稱TCP/IP。因為該協議家族的兩個核心協議:TCP(傳輸控制協議)和IP(網際協議),為該家族中最早通過的標準。由于在網絡通訊協議普遍采用分層的結構,當多個層次的協議共同工作時,類似計算機科學中的堆棧,因此又被稱為TCP/IP協議棧(英語:TCP/IP Protocol Stack) 。這些協議最早發源于美國國防部(縮寫為DoD)的ARPA網項目,因此也被稱作DoD模型(DoD Model)。這個協議套組由互聯網工程任務組負責維護。
TCP/IP提供點對點的鏈接機制,將數據應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標準化。它將軟件通信過程抽象化為四個抽象層,采取協議堆棧的方式,分別實現出不同通信協議。協議套組下的各種協議,依其功能不同,被分別歸屬到這四個層次結構之中[7][8],常被視為是簡化的七層OSI模型。
TCP/IP參考模型是一個抽象的分層模型,這個模型中,所有的TCP/IP系列網絡協議都被歸類到4個抽象的”層”中。每一抽象層創建在低一層提供的服務上,并且為高一層提供服務。 完成一些特定的任務需要眾多的協議協同工作,這些協議分布在參考模型的不同層中的,因此有時稱它們為一個協議棧。 TCP/IP參考模型為TCP/IP協議棧訂身制作。其中IP協議只關心如何使得數據能夠跨越本地網絡邊界的問題,而不關心如何利用傳輸媒體,數據如何傳輸。整個TCP/IP協議棧則負責解決數據如何通過許許多多個點對點通路(一個點對點通路,也稱為一”跳”, 1 hop)順利傳輸,由此不同的網絡成員能夠在許多”跳”的基礎上創建相互的數據通路。 如想分析更普遍的網絡通信問題,ISO的OSI模型也能起更好的幫助作用。 因特網協議族是一組實現支持因特網和大多數商業網絡運行的協議棧的網絡傳輸協議。它有時也被稱為TCP/IP協議組,這個名稱來源于其中兩個最重要的協議:傳輸控制協議(TCP)和因特網協議(IP),它們也是最先定義的兩個協議。 同許多其他協議一樣網絡傳輸協議也可以看作一個多層組合,每層解決數據傳輸中的一組問題并且向使用這些低層服務的高層提供定義好的服務。高層邏輯上與用戶更為接近,所處理數據更為抽象,它們依賴于低層將數據轉換成最終能夠進行實體控制的形式。 網絡傳輸協議能夠大致匹配到一些廠商喜歡使用的固定7層的OSI模型。然而這些層并非都能夠很好地與基于ip的網絡對應(根據應用的設計和支持網絡的不同它們確實是涉及到不同的層)并且一些人認為試圖將因特網協議組對應到OSI會帶來混淆而不是有所幫助。
因特網協議棧中的層
人們已經進行一些討論關于如何將TCP/IP參考模型映射到OSI模型。由于TCP/IP和OSI模型組不能精確地匹配,還沒有一個完全正確的答案。 另外,OSI模型下層還不具備能夠真正占據真正層的位置的能力;在傳輸層和網絡層之間還需要另外一個層(網絡互連層)。特定網絡類型專用的一些協議應該運行在網絡層上,但是卻運行在基本的硬件幀交換上。類似協議的例子有地址解析協議和生成樹協議(用來保持冗余網橋的空閑狀態直到真正需要它們)。然而,它們是本地協議并且在網絡互連功能下面運行。不可否認,將兩個組(更不用說它們只是運行在如ICMP等不同的互連網絡協議上的邏輯上的網絡層的一部分)整個放在同一層會引起混淆,但是OSI模型還沒有復雜到能夠做更好的工作。
應用層
該層包括所有和應用程序協同工作,利用基礎網絡交換應用程序專用的數據的協議。 應用層是大多數普通與網絡相關的程序為了通過網絡與其他程序通信所使用的層。這個層的處理過程是應用特有的;數據從網絡相關的程序以這種應用內部使用的格式進行傳送,然后被編碼成標準協議的格式。
一些特定的程序被認為運行在這個層上。它們提供服務直接支持用戶應用。這些程序和它們對應的協議包括HTTP(萬維網服務)、FTP(文件傳輸)、SMTP(電子郵件)、SSH(安全遠程登陸)、DNS(名稱<-> IP地址尋找)以及許多其他協議。 一旦從應用程序來的數據被編碼成一個標準的應用層協議,它將被傳送到IP棧的下一層。
在傳輸層,應用程序最常用的是TCP或者UDP,并且服務器應用程序經常與一個公開的端口號相聯系。服務器應用程序的端口由互聯網號碼分配局(IANA)正式地分配,但是現今一些新協議的開發者經常選擇它們自己的端口號。由于在同一個系統上很少超過少數幾個的服務器應用,端口沖突引起的問題很少。應用軟件通常也允許用戶強制性地指定端口號作為運行參數。
連結外部的客戶端程序通常使用系統分配的一個隨機端口號。監聽一個端口并且通過服務器將那個端口發送到應用的另外一個副本以創建對等連結(如IRC上的dcc文件傳輸)的應用也可以使用一個隨機端口,但是應用程序通常允許定義一個特定的端口范圍的規范以允許端口能夠通過實現網絡地址轉換(NAT)的路由器映射到內部。
每一個應用層(TCP/IP參考模型的最高層)協議一般都會使用到兩個傳輸層協議之一: 面向連接的TCP傳輸控制協議和無連接的包傳輸的UDP用戶數據報文協議。 常用的應用層協議有:
運行在TCP協議上的協議:
- HTTP(Hypertext Transfer Protocol,超文本傳輸協議),主要用于普通瀏覽。
- HTTPS(Hypertext Transfer Protocol over Secure Socket Layer, or HTTP over SSL,安全超文本傳輸協議),HTTP協議的安全版本。
- FTP(File Transfer Protocol,文件傳輸協議),由名知義,用于文件傳輸。
- POP3(Post Office Protocol, version 3,郵局協議),收郵件用。
- SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協議),用來發送電子郵件。
- TELNET(Teletype over the Network,網絡電傳),通過一個終端(terminal)登陸到網絡。
- SSH(Secure Shell,用于替代安全性差的TELNET),用于加密安全登陸用。
運行在UDP協議上的協議:
- BOOTP(Boot Protocol,啟動協議),應用于無盤設備。
- NTP(Network Time Protocol,網絡時間協議),用于網絡同步。
- DHCP(Dynamic Host Configuration Protocol,動態主機配置協議),動態配置IP地址。
其他:
- DNS(Domain Name Service,域名服務),用于完成地址查找,郵件轉發等工作(運行在TCP和UDP協議上)。
- ECHO(Echo Protocol,回繞協議),用于查錯及測量應答時間(運行在TCP和UDP協議上)。
- SNMP(Simple Network Management Protocol,簡單網絡管理協議),用于網絡信息的收集和網絡管理。
- ARP(Address Resolution Protocol,地址解析協議),用于動態解析以太網硬件的地址。
傳輸層
傳輸層的協議,能夠解決諸如端到端可靠性(“數據是否已經到達目的地?”)和保證數據按照正確的順序到達這樣的問題。在TCP/IP協議組中,傳輸協議也包括所給數據應該送給哪個應用程序。 在TCP/IP協議組中技術上位于這個層的動態路由協議通常被認為是網絡層的一部分;一個例子就是OSPF(IP協議89)。 TCP(IP協議6)是一個“可靠的”、面向連結的傳輸機制,它提供一種可靠的字節流保證數據完整、無損并且按順序到達。TCP盡量連續不斷地測試網絡的負載并且控制發送數據的速度以避免網絡過載。另外,TCP試圖將數據按照規定的順序發送。這是它與UDP不同之處,這在實時數據流或者路由高網絡層丟失率應用的時候可能成為一個缺陷。 較新的SCTP也是一個“可靠的”、面向連結的傳輸機制。它是面向紀錄而不是面向字節的,它在一個單獨的連結上提供通過多路復用提供的多個子流。它也提供多路自尋址支持,其中連結終端能夠被多個IP地址表示(代表多個實體接口),這樣的話即使其中一個連接失敗了也不中斷。它最初是為電話應用開發的(在IP上傳輸SS7),但是也可以用于其他的應用。 UDP(IP協議號17)是一個無連結的數據報協議。它是一個“盡力傳遞”(best effort)或者說“不可靠”協議——不是因為它特別不可靠,而是因為它不檢查數據包是否已經到達目的地,并且不保證它們按順序到達。如果一個應用程序需要這些特性,那它必須自行檢測和判斷,或者使用TCP協議。 UDP的典型性應用是如流媒體(音頻和視頻等)這樣按時到達比可靠性更重要的應用,或者如DNS查找這樣的簡單查詢/響應應用,如果創建可靠的連結所作的額外工作將是不成比例地大。 DCCP目前正由IEFT開發。它提供TCP流動控制語義,但對于用戶來說保留UDP的數據報服務模型。 TCP和UDP都用來支持一些高層的應用。任何給定網絡地址的應用通過它們的TCP或者UDP端口號區分。根據慣例使一些大眾所知的端口與特定的應用相聯系。 RTP是為如音頻和視頻流這樣的實時數據設計的數據報協議。RTP是使用UDP包格式作為基礎的會話層,然而據說它位于因特網協議棧的傳輸層。
網絡互連層
TCP/IP協議族中的網絡互連層(internet layer)在OSI模型中叫做網絡層(network layer)。
正如最初所定義的,網絡層解決在一個單一網絡上傳輸數據包的問題。類似的協議有X.25和ARPANET的Host/IMP Protocol。 隨著因特網思想的出現,在這個層上添加附加的功能,也就是將數據從源網絡傳輸到目的網絡。這就牽涉到在網絡組成的網上選擇路徑將數據包傳輸,也就是因特網。 在因特網協議組中,IP完成數據從源發送到目的的基本任務。IP能夠承載多種不同的高層協議的數據;這些協議使用一個唯一的IP協議號進行標識。ICMP和IGMP分別是1和2。 一些IP承載的協議,如ICMP(用來發送關于IP發送的診斷信息)和IGMP(用來管理多播數據),它們位于IP層之上但是完成網絡層的功能,這表明因特網和OSI模型之間的不兼容性。所有的路由協議,如BGP、OSPF、和RIP實際上也是網絡層的一部分,盡管它們似乎應該屬于更高的協議棧。
網絡接口層
網絡接口層實際上并不是因特網協議組中的一部分,但是它是數據包從一個設備的網絡層傳輸到另外一個設備的網絡層的方法。這個過程能夠在網卡的軟件驅動程序中控制,也可以在韌體或者專用芯片中控制。這將完成如添加報頭準備發送、通過實體媒介實際發送這樣一些數據鏈路功能。另一端,鏈路層將完成數據幀接收、去除報頭并且將接收到的包傳到網絡層。 然而,鏈路層并不經常這樣簡單。它也可能是一個虛擬專有網絡(VPN)或者隧道,在這里從網絡層來的包使用隧道協議和其他(或者同樣的)協議組發送而不是發送到實體的接口上。VPN和隧道通常預先建好,并且它們有一些直接發送到實體接口所沒有的特殊特點(例如,它可以加密經過它的數據)。由于現在鏈路“層”是一個完整的網絡,這種協議組的遞歸使用可能引起混淆。但是它是一個實現常見復雜功能的一個優秀方法。(盡管需要注意預防一個已經封裝并且經隧道發送下去的數據包進行再次地封裝和發送)。
IP網絡如何并吞競爭的網絡
在長期的發展過程中,IP逐漸取代其他網絡。這里是一個簡單的解釋。IP傳輸通用數據。數據能夠用于任何目的,并且能夠很輕易地取代以前由專有數據網絡傳輸的數據。下面是一個普通的過程:
- 一個專有的網絡開發出來用于特定目的。如果它工作很好,用戶將接受它。
- 為了便利提供IP服務,經常用于訪問電子郵件或者聊天,通常以某種方式通過專有網絡隧道實現。隧道方式最初可能非常沒有效率,因為電子郵件和聊天只需要很低的帶寬。
- 通過一點點的投資IP基礎設施逐漸在專有數據網絡周邊出現。
- 用IP取代專有服務的需求出現,經常是一個用戶要求。
- IP替代品過程遍布整個因特網,這使IP替代品比最初的專有網絡更加有價值(由于網絡效應)。
- 專有網絡受到壓制。許多用戶開始維護使用IP替代品的復制品。
- IP包的間接開銷很小,少于1%,這樣在成本上非常有競爭性。人們開發一種能夠將IP帶到專有網絡上的大部分用戶的不昂貴的傳輸媒介。
- 大多數用戶為了削減開銷,專有網絡被取消。
原創文章,作者:HGG,如若轉載,請注明出處:http://www.www58058.com/78582