TCP/IP協議

TCP/IP協議

網際網路協議徠(Internet Protocol Suite)是一個網路通信模型,以及一整個網路傳輸協議家族,為網際網路的基礎通信架構。它常被通稱為TCP/IP協議族(英語:TCP/IP Protocol Suite,或TCP/IP Protocols),簡稱TCP/IP。

歷史


為了減少網路設計的複雜性,大多數網路都採用分層結構。對於不同的網路,層的數量、名字、內容和功能都不盡相同。在相同的網路中,一台機器上的第N層與另一台機器上的第N層可利用第N層協議進行通信,協議基本上是雙方關於如何進行通信所達成的一致。
不同機器中包含的對應層的實體叫做對等進程。在對等進程利用協議進行通信時,實際上並不是直接將數據從一台機器的第N層傳送到另一台機器的第N層,而是每一層都把數據連同該層的控制信息打包交給它的下一層,它的下一層把這些內容看做數據,再加上它這一層的控制信息一起交給更下一層,依此類推,直到最下層。最下層是物理介質,它進行實際的通信。相鄰層之間有介面,介面定義下層向上層提供的原語操作和服務。相鄰層之間要交換信息,對等介面必須有一致同意的規則。層和協議的集合被稱為網路體系結構。
每一層中的活動元素通常稱為實體,實體既可以是軟體實體,也可以是硬體實體。第N層實體實現的服務被第N+1層所使用。在這種情況下,第N層稱為服務提供者,第N+1層稱為服務用戶。
服務是在服務接入點提供給上層使用的。服務可分為面向連接的服務和面向無連接的服務,它在形式上是由一組原語來描述的。這些原語可供訪問該服務的用戶及其他實體使用。

名詞定義


IP
IP層接收由更低層(網路介面層例如乙太網設備驅動程序)發來的數據包,並把該數據包發送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數據包傳送到更低層。IP數據包是不可靠的,因為IP並沒有做任何事情來確認數據包是否按順序發送的或者有沒有被破壞,IP數據包中含有發送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。
高層的TCP和UDP服務在接收數據包時,通常假設包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務的認證基礎,這些服務相信數據包是從一個有效的主機發送來的。IP確認包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對於一些TCP和UDP的服務來說,使用了該選項的IP包好像是從路徑上的最後一個系統傳遞過來的,而不是來自於它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來進行平常是被禁止的連接。那麼,許多依靠IP源地址做確認的服務將產生問題並且會被非法入侵。
TCP
TCP是面向連接的通信協議,通過三次握手建立連接,通訊完成時要拆除連接,由於TCP是面向連接的所以只能用於端到端的通訊。
TCP提供的是一種可靠的數據流服務,採用“帶重傳的肯定確認”技術來實現傳輸的可靠性。TCP還採用一種稱為“滑動窗口”的方式進行流量控制,所謂窗口實際表示接收能力,用以限制發送方的發送速度。
如果IP數據包中有已經封好的TCP數據包,那麼IP將把它們向‘上’傳送到TCP層。TCP將包排序並進行錯誤檢查,同時實現虛電路間的連接。TCP數據包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
TCP將它的信息送到更高層的應用程序,例如Telnet的服務程序和客戶程序。應用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設備驅動程序和物理介質,最後到接收方。
面向連接的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發送和接收域名資料庫),但使用UDP傳送有關單個主機的信息。
UDP
UDP是面向無連接的通訊協議,UDP數據包括目的埠號和源埠號信息,由於通訊不需要連接,所以可以實現廣播發送。
UDP通訊時不需要接收方確認,屬於不可靠的傳輸,可能會出現丟包現象,實際應用中要求程序員編程驗證。
UDP與TCP位於同一層,但它不管數據包的順序、錯誤或重發。因此,UDP不被應用於那些使用虛電路的面向連接的服務,UDP主要用於那些面向查詢---應答的服務,例如NFS。相對於FTP或Telnet,這些服務需要交換的信息量較小。使用UDP的服務包括NTP(網路時間協議)和DNS(DNS也使用TCP)。
欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與UDP相關的服務面臨著更大的危險。
ICMP
ICMP與IP位於同一層,它被用來傳送IP的控制信息。它主要是用來提供有關通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機通向其他系統的更準確的路徑,而‘Unreachable’信息則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接‘體面地’終止。PING是最常用的基於ICMP的服務。
通訊埠
TCP和UDP服務通常有一個客戶/伺服器的關係,例如,一個Telnet服務進程開始在系統上處於空閑狀態,等待著連接。用戶使用Telnet客戶程序與服務進程建立一個連接。客戶程序向服務進程寫入信息,服務進程讀出信息併發出響應,客戶程序讀出響應並向用戶報告。因而,這個連接是雙工的,可以用來進行讀寫。
兩個系統間的多重Telnet連接是如何相互確認並協調一致呢?TCP或UDP連接唯一地使用每個信息中的如下四項進行確認:
源IP地址 發送包的IP地址。
目的IP地址 接收包的IP地址。
源埠 源系統上的連接的埠。
目的埠 目的系統上的連接的埠。
埠是一個軟體結構,被客戶程序或服務進程用來發送和接收信息。一個埠對應一個16比特的數。服務進程通常使用一個固定的埠,例如,SMTP使用25、Xwindows使用6000。這些埠號是‘廣為人知’的,因為在建立與特定的主機或服務的連接時,需要這些地址和目的地址進行通訊。
數據格式
數據幀:幀頭+IP數據包+幀尾(幀頭包括源和目標主機MAC初步地址及類型,幀尾是校驗字)
IP數據包:IP頭部+TCP數據信息(IP頭包括源和目標主機IP地址、類型、生存期等)
TCP數據信息:TCP頭部+實際數據(TCP頭包括源和目標主機埠號、順序號、確認號、校驗字等)

IP地址

在Internet上連接的所有計算機,從大型機到微型計算機都是以獨立的身份出現,我們稱它為主機。為了實現各主機間的通信,每台主機都必須有一個唯一的網路地址。就好像每一個住宅都有唯一的門牌一樣,才不至於在傳輸資料時出現混亂。
Internet的網路地址是指連入Internet網路的計算機的地址編號。所以,在Internet網路中,網路地址唯一地標識一台計算機。
我們都已經知道,Internet是由幾千萬台計算機互相連接而成的。而我們要確認網路上的每一台計算機,靠的就是能唯一標識該計算機的網路地址,這個地址就叫做IP(Internet Protocol的簡寫)地址,即用Internet協議語言表示的地址。
在Internet里,IP地址是一個32位的二進位地址,為了便於記憶,將它們分為4組,每組8位,由小數點分開,用四個位元組來表示,而且,用點分開的每個位元組的數值範圍是0~255,如202.116.0.1,這種書寫方法叫做點數表示法(計算機網路中稱之為點分十進位)。

沿革


產生背景

在阿帕網(ARPA)產生運作之初,通過介面信號處理機實現互聯的電腦並不多,大部分電腦相互之間不兼容。在一台電腦上完成的工作,很難拿到另一台電腦上去用,想讓硬體和軟體都不一樣的電腦聯網,也有很多困難。當時美國的狀況是,陸軍用的電腦是DEC系列產品,海軍用的電腦是Honeywell中標機器,空軍用的是IBM公司中標的電腦,每一個軍種的電腦在各自的系裡都運行良好,但卻有一個大弊病:不能共享資源。
當時科學家們提出這樣一個理念:“所有電腦生來都是平等的。”為了讓這些“生來平等”的電腦能夠實現“資源共享”就得在這些系統的標準之上,建立一種大家共同都必須遵守的標準,這樣才能讓不同的電腦按照一定的規則進行“談判”,並且在談判之後能“握手”。
在確定今天網際網路各個電腦之間“談判規則”過程中,最重要的人物當數瑟夫(Vinton G.Cerf)。正是他的努力,才使今天各種不同的電腦能按照協議上網互聯。瑟夫也因此獲得了與克萊因羅克(“網際網路之父”)一樣的美稱“網際網路之父”。
瑟夫從小喜歡標新立異,堅強而又熱情。中學讀書時,就被允許使用加州大學洛杉磯分校的電腦,他認為“為電腦編程序是個非常激動人心的事,…只要把程序編好,就可以讓電腦做任何事情。”1965年,瑟夫從斯坦福大學畢業到IBM的一家公司當系統工程師,工作沒多久,瑟夫就覺得知識不夠用,於是到加州大學洛杉磯分校攻讀博士,那時,正逢阿帕網的建立,“介面信號處理機”(IMP)的研試及網路測評中心的建立,瑟夫也成了著名科學家克萊因羅克手下的一位學生。瑟夫與另外三位年輕人(溫菲爾德、克羅克、布雷登)參與了阿帕網的第一個節點的聯接。此後不久,BBN公司對工作中各種情況發展有很強判斷能力、被公認阿帕網建成作出巨大貢獻的鮑伯·卡恩(Bob Kahn)也來到了加州大學洛杉磯分校。在那段日子裡,往往是卡恩提出需要什麼軟體,而瑟夫則通宵達旦地把符合要求的軟體給編出來,然後他們一起測試這些軟體,直至能正常運行。
當時的主要格局是這樣的,羅伯茨提出網路思想設計網路布局,卡恩設計阿帕網總體結構,克萊因羅克負責網路測評系統,還有眾多的科學家、研究生參與研究、試驗。69年9月阿帕網誕生、運行后,才發現各個IMP連接的時候,需要考慮用各種電腦都認可的信號來打開通信管道,數據通過後還要關閉通道。否則這些IMP不會知道什麼時候應該接收信號,什麼時候該結束,這就是我們所說的通信“協議”的概念。1970年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協議作為網際網路上所有主機間的共同協議,從此以後被作為一種必須遵守的規則被肯定和應用。

開發過程

在構建了阿帕網先驅之後,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日發生。
1984年,美國國防部將TCP/IP作為所有計算機網路的標準。1985年,網際網路架構理事會舉行了一個三天有250家廠商代表參加的關於計算產業使用TCP/IP的工作會議,幫助協議的推廣並且引領它日漸增長的商業應用。
2005年9月9日卡恩和瑟夫由於他們對於美國文化做出的卓越貢獻被授予總統自由勳章

IPV4

IPv4,是網際網路協議(Internet Protocol,IP)的第四版,也是第一個被廣泛使用,構成現今網際網路技術的基石的協議。1981年Jon Postel 在RFC791中定義了IP,Ipv4可以運行在各種各樣的底層網路上,比如端對端的串列數據鏈路(PPP協議和SLIP協議) ,衛星鏈路等等。區域網中最常用的是乙太網
傳統的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需要很長的一段過渡期。中國主要用的就是ip4,在win7中已經有了ipv6的協議不過對於中國的用戶們來說可能很久以後才會用到吧。
傳統的TCP/IP協議基於電話寬頻以及乙太網的電器特性而制定的,其分包原則與檢驗佔用了數據包很大的一部分比例造成了傳輸效率低,網路正向著全光纖網路高速乙太網方向發展,TCP/IP協議不能滿足其發展需要。
1983年TCP/IP協議被ARPAnet採用,直至發展到後來的網際網路。那時只有幾百台計算機互相聯網。到1989年聯網計算機數量突破10萬台,並且同年出現了1.5Mbit/s的骨幹網。因為IANA把大片的地址空間分配給了一些公司和研究機構,90年代初就有人擔心10年內IP地址空間就會不夠用,並由此導致了IPv6 的開發。

IPv6

IPv6是Internet Protocol Version 6的縮寫,其中Internet Protocol譯為“網際網路協議”。IPv6是IETF(網際網路工程任務組,Internet Engineering Task Force)設計的用於替代現行版本IP協議(IPv4)的下一代IP協議。
與IPV4相比,IPV6具有以下幾個優勢:
一、IPv6具有更大的地址空間。IPv4中規定IP地址長度為32,即有2^32-1(符號^表示升冪,下同)個地址;而IPv6中IP地址的長度為128,即有2^128-1個地址。
二、IPv6使用更小的路由表。IPv6的地址分配一開始就遵循聚類(Aggregation)的原則,這使得路由器能在路由表中用一條記錄(Entry)表示一片子網,大大減小了路由器中路由表的長度,提高了路由器轉發數據包的速度。
三、IPv6增加了增強的組播(Multicast)支持以及對流的控制(Flow Control),這使得網路上的多媒體應用有了長足發展的機會,為服務質量(QoS,Quality of Service)控制提供了良好的網路平台。
四、IPv6加入了對自動配置(Auto Configuration)的支持。這是對DHCP協議的改進和擴展,使得網路(尤其是區域網)的管理更加方便和快捷。
五、IPv6具有更高的安全性。在使用IPv6網路中用戶可以對網路層的數據進行加密並對IP報文進行校驗,極大的增強了網路的安全性。

網路參考模型


OSI參考模型

OSI參考模型是ISO的建議,它是為了使各層上的協議國際標準化而發展起來的。OSI參考模型全稱是開放系統互連參考模型(Open System Interconnection Reference Model)。這一參考模型共分為七層:物理層、數據鏈路層、網路層、傳輸層、會話層、表示層和應用層,如圖1所示。
物理層(Physical Layer)主要是處理機械的、電氣的和過程的介面,以及物理層下的物理傳輸介質等。
數據鏈路層(Data Link Layer)的任務是加強物理層的功能,使其對網路層顯示為一條無錯的線路。
網路層(Network Layer)確定分組從源端到目的端的路由選擇。路由可以選用網路中固定的靜態路由表,也可以在每一次會話時決定,還可以根據當前的網路負載狀況,靈活地為每一個分組分別決定。
傳輸層(Transport Layer)從會話層接收數據,並傳輸給網路層,同時確保到達目的端的各段信息正確無誤,而且使會話層不受硬體變化的影響。通常,會話層每請求建立一個傳輸連接,傳輸層就會為其創建一個獨立的網路連接。但如果傳輸連接需要一個較高的吞吐量,傳輸層也可以為其創建多個網路連接,讓數據在這些網路連接上分流,以提高吞吐量。而另一方面,如果創建或維持一個獨立的網路連接不合算,傳輸層也可將幾個傳輸連接復用到同一個網路連接上,以降低費用。除了多路復用,傳輸層還需要解決跨網路連接的建立和拆除,並具有流量控制機制。
會話層(Session Layer)允許不同機器上的用戶之間建立會話關係,既可以進行類似傳輸層的普通數據傳輸,也可以被用於遠程登錄到分時系統或在兩台機器間傳遞文件。
表示層(Presentation Layer)用於完成一些特定的功能,這些功能由於經常被請求,因此人們希望有通用的解決辦法,而不是由每個用戶各自實現。
應用層(Application Layer)中包含了大量人們普遍需要的協議。不同的文件系統有不同的文件命名原則和不同的文本行表示方法等,不同的系統之間傳輸文件還有各種不兼容問題,這些都將由應用層來處理。此外,應用層還有虛擬終端、電子郵件和新聞組等各種通用和專用的功能。

傳輸控制模型

TCP/IP參考模型是首先由ARPANET所使用的網路體系結構。這個體系結構在它的兩個主要協議出現以後被稱為TCP/IP參考模型(TCP/IP Reference Model)。這一網路協議共分為四層:網路訪問層、網際網路層、傳輸層和應用層,如圖2所示。
網路訪問層(Network Access Layer)在TCP/IP參考模型中並沒有詳細描述,只是指出主機必須使用某種協議與網路相連。
網際網路層(Internet Layer)是整個體系結構的關鍵部分,其功能是使主機可以把分組發往任何網路,並使分組獨立地傳向目標。這些分組可能經由不同的網路,到達的順序和發送的順序也可能不同。高層如果需要順序收發,那麼就必須自行處理對分組的排序。網際網路層使用網際網路協議(IP,Internet Protocol)。TCP/IP參考模型的網際網路層和OSI參考模型的網路層在功能上非常相似。
傳輸層(Transport Layer)使源端和目的端機器上的對等實體可以進行會話。在這一層定義了兩個端到端的協議:傳輸控制協議(TCP,Transmission Control Protocol)和用戶數據報協議(UDP,User Datagram Protocol)。TCP是面向連接的協議,它提供可靠的報文傳輸和對上層應用的連接服務。為此,除了基本的數據傳輸外,它還有可靠性保證、流量控制、多路復用、優先權和安全性控制等功能。UDP是面向無連接的不可靠傳輸的協議,主要用於不需要TCP的排序和流量控制等功能的應用程序。
應用層(Application Layer)包含所有的高層協議,包括:虛擬終端協議(TELNET,TELecommunications NETwork)、文件傳輸協議(FTP,File Transfer Protocol)、電子郵件傳輸協議(SMTP,Simple Mail Transfer Protocol)、域名服務(DNS,Domain Name Service)、網上新聞傳輸協議(NNTP,Net News Transfer Protocol)和超文本傳送協議(HTTP,HyperText Transfer Protocol)等。TELNET允許一台機器上的用戶登錄到遠程機器上,並進行工作;FTP提供有效地將文件從一台機器上移到另一台機器上的方法;SMTP用於電子郵件的收發;DNS用於把主機名映射到網路地址;NNTP用於新聞的發布、檢索和獲取;HTTP用於在WWW上獲取主頁。

層次


TCP/IP協議不是TCP和IP這兩個協議的合稱,而是指網際網路整個TCP/IP協議族。
從協議分層模型方面來講,TCP/IP由四個層次組成:網路介面層、網路層、傳輸層、應用層。
TCP/IP協議並不完全符合OSI的七層參考模型,OSI(Open System Interconnect)是傳統的開放式系統互連參考模型,是一種通信協議的7層抽象的參考模型,其中每一層執行某一特定任務。該模型的目的是使各種硬體在相同的層次上相互通信。這7層是:物理層、數據鏈路層(網路介面層)、網路層(網路層)、傳輸層(傳輸層)、會話層、表示層和應用層(應用層)。而TCP/IP通訊協議採用了4層的層級結構,每一層都呼叫它的下一層所提供的網路來完成自己的需求。由於ARPANET的設計者注重的是網路互聯,允許通信子網(網路介面層)採用已有的或是將來有的各種協議,所以這個層次中沒有提供專門的協議。實際上,TCP/IP協議可以通過網路介面層連接到任何網路上,例如X.25交換網或IEEE802區域網。
注意tcp本身不具有數據傳輸中噪音導致的錯誤檢測功能,但是有實現超時的錯誤重傳功能;
TCP/IP結構對應OSI
TCP/IPOSI
應用層
應用層
表示層
會話層
主機到主機層(TCP)(又稱傳輸層)傳輸層
網路層(IP)(又稱互聯層)網路層
網路介面層(又稱鏈路層)數據鏈路層
物理層

網路介面層

物理層是定義物理介質的各種特性:
1、機械特性;
2、電子特性;
3、功能特性;
4、規程特性。
數據鏈路層是負責接收IP數據包並通過網路發送,或者從網路上接收物理幀,抽出IP數據包,交給IP層。
ARP是正向地址解析協議,通過已知的IP,尋找對應主機的MAC地址。
RARP是反向地址解析協議,通過MAC地址確定IP地址。比如無盤工作站還有DHCP服務。
常見的介面層協議有:
Ethernet 802.3、Token Ring 802.5、X.25、Frame relay、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進行網路測試。

傳輸層

提供應用程序間的通信。其功能包括:一、格式化信息流;二、提供可靠傳輸。為實現後者,傳輸層協議規定接收端必須發回確認,並且假如分組丟失,必須重新發送,即耳熟能詳的“三次握手”過程,從而提供可靠的數據傳輸。
傳輸層協議主要是:傳輸控制協議TCP(Transmission Control Protocol)和用戶數據報協議UDP(User Datagram protocol)。

應用層

向用戶提供一組常用的應用程序,比如電子郵件、文件傳輸訪問、遠程登錄等。遠程登錄TELNET使用TELNET協議提供在網路其它主機上註冊的介面。TELNET會話提供了基於字元的虛擬終端。文件傳輸訪問FTP使用FTP協議來提供網路內機器間的文件拷貝功能。
應用層協議主要包括如下幾個:FTP、TELNET、DNS、SMTP、NFS、HTTP。
FTP(File Transfer Protocol)是文件傳輸協議,一般上傳下載用FTP服務,數據埠是20H,控制埠是21H。
Telnet服務是用戶遠程登錄服務,使用23H埠,使用明碼傳送,保密性差、簡單方便。
DNS(Domain Name Service)是域名解析服務,提供域名到IP地址之間的轉換,使用埠53。
SMTP(Simple Mail Transfer Protocol)是簡單郵件傳輸協議,用來控制信件的發送、中轉,使用埠25。
NFS(Network File System)是網路文件系統,用於網路中不同主機間的文件共享。
HTTP(Hypertext Transfer Protocol)是超文本傳輸協議,用於實現網際網路中的WWW服務,使用埠80。
總結
OSI中的層功能TCP/IP協議族
應用層文件傳輸,電子郵件,文件服務,虛擬終端TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等
表示層數據格式化,代碼轉換,數據加密沒有協議
會話層解除或建立與別的接點的聯繫沒有協議
傳輸層提供端對端的介面TCP,UDP
網路層為數據包選擇路由IP,ICMP,OSPF,EIGRP,IGMP
數據鏈路層傳輸有地址的幀以及錯誤檢測功能SLIP,CSLIP,PPP,MTU
物理層以二進位數據形式在物理媒體上傳輸數據ISO2110,IEEE802,IEEE802.2
網路層中的協議主要有IP,ICMP,IGMP等,由於它包含了IP協議模塊,所以它是所有基於TCP/IP協議網路的核心。在網路層中,IP模塊完成大部分功能。ICMP和IGMP以及其他支持IP的協議幫助IP完成特定的任務,如傳輸差錯控制信息以及主機/路由器之間的控制電文等。網路層掌管著網路中主機間的信息傳輸。
傳輸層上的主要協議是TCP和UDP。正如網路層控制著主機之間的數據傳遞,傳輸層控制著那些將要進入網路層的數據。兩個協議就是它管理這些數據的兩種方式:TCP是一個基於連接的協議;UDP則是面向無連接服務的管理方式的協議。

特點


主要特點

(1)TCP/IP協議不依賴於任何特定的計算機硬體或操作系統,提供開放的協議標準,即使不考慮Internet,TCP/IP協議也獲得了廣泛的支持。所以TCP/IP協議成為一種聯合各種硬體和軟體的實用系統。
(2)TCP/IP協議並不依賴於特定的網路傳輸硬體,所以TCP/IP協議能夠集成各種各樣的網路。用戶能夠使用乙太網(Ethernet)、令牌環網(Token Ring Network)、撥號線路(Dial-up line)、X.25網以及所有的網路傳輸硬體。
(3)統一的網路地址分配方案,使得整個TCP/IP設備在網中都具有惟一的地址
(4)標準化的高層協議,可以提供多種可靠的用戶服務。

協議優勢

在長期的發展過程中,IP逐漸取代其他網路。這裡是一個簡單的解釋。IP傳輸通用數據。數據能夠用於任何目的,並且能夠很輕易地取代以前由專有數據網路傳輸的數據。下面是一個普通的過程:
一個專有的網路開發出來用於特定目的。如果它工作很好,用戶將接受它。
為了便利提供IP服務,經常用於訪問電子郵件或者聊天,通常以某種方式通過專有網路隧道實現。隧道方式最初可能非常沒有效率,因為電子郵件和聊天只需要很低的帶寬。
徠通過一點點的投資IP 基礎設施逐漸在專有數據網路周邊出現。
用IP取代專有服務的需求出現,經常是一個用戶要求。
IP替代品過程遍布整個網際網路,這使IP替代品比最初的專有網路更加有價值(由於網路效應)。
專有網路受到壓制。許多用戶開始維護使用IP替代品的複製品。
IP包的間接開銷很小,少於1%,這樣在成本上非常有競爭性。人們開發了一種能夠將IP帶到專有網路上的大部分用戶的不昂貴的傳輸媒介。
大多數用戶為了削減開銷,專有網路被取消。

主要缺點

第一,它在服務、介面與協議的區別上就不是很清楚。一個好的軟體工程應該將功能與實現方法區分開來,TCP/IP恰恰沒有很好地做到這點,就使得TCP/IP參考模型對於使用新的技術的指導意義是不夠的。TCP/IP參考模型不適合於其他非TCP/IP協議簇。
第二,主機-網路層本身並不是實際的一層,它定義了網路層與數據鏈路層的介面。物理層與數據鏈路層的劃分是必要和合理的,一個好的參考模型應該將它們區分開,而TCP/IP參考模型卻沒有做到這點。