TCP/IP簡介

原文鏈接:https://baike.baidu.com/item/TCP/IP%E5%8D%8F%E8%AE%AE/212915

TCP/IP協議

TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/網際協議)是指能夠在多個不同網絡間實現信息傳輸的協議簇。TCP/IP協議不僅僅指的是TCPIP兩個協議,而是指一個由FTPSMTP、TCP、UDP、IP等協議構成的協議簇, 只是因爲在TCP/IP協議中TCP協議和IP協議最具代表性,所以被稱爲TCP/IP協議

簡介

TCP/IP傳輸協議,即傳輸控制/網絡協議,也叫作網絡通訊協議。它是在網絡的使用中的最基本的通信協議。TCP/IP傳輸協議對互聯網中各部分進行通信的標準和方法進行了規定。並且,TCP/IP傳輸協議是保證網絡數據信息及時、完整傳輸的兩個重要的協議。TCP/IP傳輸協議是嚴格來說是一個四層的體系結構,應用層、傳輸層、網絡層和數據鏈路層都包含其中。 [2] 

TCP/IP協議是Internet最基本的協議,其中應用層的主要協議有TelnetFTPSMTP等,是用來接收來自傳輸層的數據或者按不同應用要求與方式將數據傳輸至傳輸層;傳輸層的主要協議有UDP、TCP,是使用者使用平臺和計算機信息網內部數據結合的通道,可以實現數據傳輸與數據共享;網絡層的主要協議有ICMP、IP、IGMP,主要負責網絡中數據包的傳送等;而網絡訪問層,也叫網路接口層或數據鏈路層,主要協議有ARP、RARP,主要功能是提供鏈路管理錯誤檢測、對不同通信媒介有關信息細節問題進行有效處理等

歷史

產生背景

Internet網絡的前身ARPANET當時使用的並不是傳輸控制協議/網際協議(Transmission Control Protocol/Internet Protocol,TCP/IP),而是一種叫網絡控制協議(Network Control Protocol,NCP)的網絡協議,但隨着網絡的發展和用戶對網絡的需求不斷提高,設計者們發現,NCP協議存在着很多的缺點以至於不能充分支持ARPANET網絡,特別是NCP僅能用於同構環境中(所謂同構環境是網絡上的所有計算機都運行相同的操作系統),設計者就認爲“同構”這一限制不應被加到一個分佈廣泛的網絡上。1980年,用於“異構”網絡環境中的TCP/IP協議研製成功,也就是說,TCP/IP協議可以在各種硬件和操作系統上實現互操作。1982年,ARPANET開始採用TCP/IP協議。

產生過程

(1)1973年,卡恩與瑟夫開發出了TCP/IP協議中最核心的兩個協議:TCP協議和IP協議。 [1] 

(2)1974年12月,卡恩與瑟夫正式發表了TCP/IP協議並對其進行了詳細的說明。同時,爲了驗證TCP/IP協議的可用性,使一個數據包由一端發出,在經過近10萬km的旅程後到達服務端。在這次傳輸中,數據包沒有丟失一個字節,這成分說明了TCP/IP協議的成功。 [1] 

(3)1983年元旦,TCP/IP協議正式替代NCP,從此以後TCP/IP成爲大部分因特網共同遵守的一種網絡規則。 [1] 

(4)1984年,TCP/IP協議得到美國國防部的肯定,成爲多數計算機共同遵守的一個標準。 [1] 

(5)2005年9月9日卡恩和瑟夫由於他們對於美國文化做出的卓越貢獻被授予總統自由勳章。 [1] 

TCP/IP協議的組成

TCP/IP協議在一定程度上參考了OSI的體系結構。OSI模型共有七層,從下到上分別是物理層、數據鏈路層、網絡層、運輸層、會話層、表示層和應用層。但是這顯然是有些複雜的,所以在TCP/IP協議中,它們被簡化爲了四個層次。 [1] 

(1)應用層、表示層、會話層三個層次提供的服務相差不是很大,所以在TCP/IP協議中,它們被合併爲應用層一個層次。 [1] 

(2)由於運輸層和網絡層在網絡協議中的地位十分重要,所以在TCP/IP協議中它們被作爲獨立的兩個層次。 [1] 

(3)因爲數據鏈路層和物理層的內容相差不多,所以在TCP/IP協議中它們被歸併在網絡接口層一個層次裏。只有四層體系結構的TCP/IP協議,與有七層體系結構的OSI相比要簡單了不少,也正是這樣,TCP/IP協議在實際的應用中效率更高,成本更低。 [1] 

分別介紹TCP/IP協議中的四個層次。

應用層:應用層是TCP/IP協議的第一層,是直接爲應用進程提供服務的。

(1)對不同種類的應用程序它們會根據自己的需要來使用應用層的不同協議,郵件傳輸應用使用了SMTP協議、萬維網應用使用了HTTP協議、遠程登錄服務應用使用了有TELNET協議。 [1] 

(2)應用層還能加密、解密、格式化數據。 [1] 

(3)應用層可以建立或解除與其他節點的聯繫,這樣可以充分節省網絡資源。 [1] 

運輸層:作爲TCP/IP協議的第二層,運輸層在整個TCP/IP協議中起到了中流砥柱的作用。且在運輸層中,TCP和UDP也同樣起到了中流砥柱的作用。 [1] 

網絡層:網絡層在TCP/IP協議中的位於第三層。在TCP/IP協議中網絡層可以進行網絡連接的建立和終止以及IP地址的尋找等功能。 [1] 

網絡接口層:在TCP/IP協議中,網絡接口層位於第四層。由於網絡接口層兼併了物理層數據鏈路層所以,網絡接口層既是傳輸數據的物理媒介,也可以爲網絡層提供一條準確

通信過程及相關協議

網絡通信的過程中,將發出數據的主機稱爲源主機,接收數據的主機稱爲目的主機。當源主機發出數據時,數據在源主機中從上層向下層傳送。源主機中的應用進程先將數據交給應用層,應用層加上必要的控制信息就成了報文流,向下傳給傳輸層。傳輸層將收到的數據單元加上本層的控制信息,形成報文段、數據報,再交給網際層。網際層加上本層的控制信息,形成IP數據報,傳給網絡接口層。網絡接口層將網際層交下來的IP數據報組裝成幀,並以比特流的形式傳給網絡硬件(即物理層),數據就離開源主機

無誤的線路。 [1]   

TCP/IP協議的組成

TCP/IP協議的組成

特點

TCP/IP協議能夠迅速發展起來併成爲事實上的標準,是它恰好適應了世界範圍內數據通信的需要。它有以下特點:

(1)協議標準是完全開放的,可以供用戶免費使用,並且獨立於特定的計算機硬件操作系統

(2)獨立於網絡硬件系統,可以運行在廣域網,更適合於互聯網

(3)網絡地址統一分配,網絡中每一設備和終端都具有一個唯一地址。

(4)高層協議標準化,可以提供多種多樣可靠網絡服務

鏈路層

以太網協議規定,接入網絡的設備都必須安裝網絡適配器,即網卡,數據包必須是從一塊網卡傳送到另一塊網卡。而網卡地址就是數據包的發送地址和接收地址,有了MAC地址以後,以太網採用廣播形式,把數據包發給該子網內所有主機,子網內每臺主機在接收到這個包以後,都會讀取首部裏的目標MAC地址,然後和自己的MAC地址進行對比,如果相同就做下一步處理,如果不同,就丟棄這個包。 [4] 

所以鏈路層的主要工作就是對電信號進行分組並形成具有特定意義的數據幀,然後以廣播的形式通過物理介質發送給接收方。

網絡層

IP協議

網絡層引入了IP協議,制定了一套新地址,使得我們能夠區分兩臺主機是否同屬一個網絡,這套地址就是網絡地址,也就是所謂的IP地址。IP協議將這個32位的地址分爲兩部分,前面部分代表網絡地址,後面部分表示該主機在局域網中的地址。如果兩個IP地址在同一個子網內,則網絡地址一定相同。爲了判斷IP地址中的網絡地址,IP協議還引入了子網掩碼,IP地址和子網掩碼通過按位與運算後就可以得到網絡地址。 [4] 

ARP協議

即地址解析協議,是根據IP地址獲取MAC地址的一個網絡層協議。其工作原理如下:ARP首先會發起一個請求數據包,數據包的首部包含了目標主機的IP地址,然後這個數據包會在鏈路層進行再次包裝,生成以太網數據包,最終由以太網廣播給子網內的所有主機,每一臺主機都會接收到這個數據包,並取出標頭裏的IP地址,然後和自己的IP地址進行比較,如果相同就返回自己的MAC地址,如果不同就丟棄該數據包。ARP接收返回消息,以此確定目標機的MAC地址;與此同時,ARP還會將返回的MAC地址與對應的IP地址存入本機ARP緩存中並保留一定時間,下次請求時直接查詢ARP緩存以節約資源。 [4] 

路由協議

首先通過IP協議來判斷兩臺主機是否在同一個子網中,如果在同一個子網,就通過ARP協議查詢對應的MAC地址,然後以廣播的形式向該子網內的主機發送數據包;如果不在同一個子網,以太網會將該數據包轉發給本子網的網關進行路由。網關互聯網上子網與子網之間的橋樑,所以網關會進行多次轉發,最終將該數據包轉發到目標IP所在的子網中,然後再通過ARP獲取目標機MAC,最終也是通過廣播形式將數據包發送給接收方。而完成這個路由協議的物理設備就是路由器,路由器扮演着交通樞紐的角色,它會根據信道情況,選擇並設定路由,以最佳路徑來轉發數據包。 [4] 

所以,網絡層的主要工作是定義網絡地址、區分網段、子網內MAC尋址、對於不同子網的數據包進行路由。

傳輸層

鏈路層定義了主機的身份,即MAC地址,而網絡層定義了IP地址,明確了主機所在的網段,有了這兩個地址,數據包就從可以從一個主機發送到另一臺主機。但實際上數據包是從一個主機的某個應用程序發出,然後由對方主機的應用程序接收。而每臺電腦都有可能同時運行着很多個應用程序,所以當數據包被髮送到主機上以後,是無法確定哪個應用程序要接收這個包。因此傳輸層引入了UDP協議來解決這個問題,爲了給每個應用程序標識身份。

UDP協議

UDP協議定義了端口,同一個主機上的每個應用程序都需要指定唯一的端口號,並且規定網絡中傳輸的數據包必須加上端口信息,當數據包到達主機以後,就可以根據端口號找到對應的應用程序了。UDP協議比較簡單,實現容易,但它沒有確認機制,數據包一旦發出,無法知道對方是否收到,因此可靠性較差,爲了解決這個問題,提高網絡可靠性,TCP協議就誕生了。

TCP協議

TCP即傳輸控制協議,是一種面向連接的、可靠的、基於字節流的通信協議。簡單來說TCP就是有確認機制的UDP協議,每發出一個數據包都要求確認,如果有一個數據包丟失,就收不到確認,發送方就必須重發這個數據包。爲了保證傳輸的可靠性,TCP協議在UDP基礎之上建立了三次對話的確認機制,即在正式收發數據前,必須和對方建立可靠的連接。TCP數據包和UDP一樣,都是由首部和數據兩部分組成,唯一不同的是,TCP數據包沒有長度限制,理論上可以無限長,但是爲了保證網絡的效率,通常TCP數據包的長度不會超過IP數據包的長度,以確保單個TCP數據包不必再分割。 [4] 

傳輸層的主要工作是定義端口,標識應用程序身份,實現端口到端口的通信,TCP協議可以保證數據傳輸的可靠性

應用層

理論上講,有了以上三層協議的支持,數據已經可以從一個主機上的應用程序傳輸到另一臺主機的應用程序了,但此時傳過來的數據是字節流,不能很好的被程序識別,操作性差,因此,應用層定義了各種各樣的協議來規範數據格式,常見的有http,ftp,smtp等,在請求Header中,分別定義了請求數據格式Accept和響應數據格式Content-Type,有了這個規範以後,當對方接收到請求以後就知道該用什麼格式來解析,然後對請求進行處理,最後按照請求方要求的格式將數據返回,請求端接收到響應後,就按照規定的格式進行解讀。 [4] 

所以應用層的主要工作就是定義數據格式並按照對應的格式解讀數據。 [4] 

關於安全等內容,後面來學習

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章