4.0 TCP/IP協議組
TCP/IP協議組在OSI模型之前流行。最初的TCP/IP有四層,顯然與OSI模型的層不匹配。當OSI模型被引入時,人們相信它將在商業上壓倒TCP/IP,但并未如愿。
4.1 介紹
TCP/IP是在七層OSI模型引入之前由美國防部開發的。它實際上是互聯網的全球標準。互聯網(早期稱為ARPANET)是美國高級研究計劃局(ARPA)軍事計劃的一部分,基于此的通信模型稱為ARPA模型。美國開發的ARPA早于歐洲ISO組織開發的OSI模型。雖然OSI模型確切地規定了每一層必須執行的功能,但TCP/IP由幾個相對獨立的協議組成,可以以多種方式組合。
并非必須使用TCP/IP模型中的所有層,例如,某些應用層協議直接在IP之上運行。TCP/IP不包括底層網絡接口,但它依賴于底層網絡接口來訪問媒介。TCP/IP是層次化的協議,就是說每個上層協議總是由一個/多個下層協議支持。
4.2. 協議體系結構
五層TCP/IP參考模型如下表所示:
應用層對應于OSI模型的上面三層,即應用程序層、表示層和會話層。位于傳輸層的TCP確保數據傳遞到適當的進程。網絡層在IP地址的幫助下,通過一個或多個網絡將數據從主機路由到目標節點。數據鏈路層將終端系統與網絡連接起來,而最低層或物理層則負責信號速率、信號編碼等。
下圖,顯示了TCP/IP協議套件中不同層可用的協議。
在不同的層上,可以使用不同的協議。其中, TCP和UDP屬于傳輸層,而網絡層中的IP是構成數據從位于地球一端的一臺計算機向位于另一端的另一臺計算機傳遞的基礎。
4.2.1 TCP
TCP是一種面向連接的傳輸層協議。功能包括可靠的數據傳輸、擁塞控制、重復數據抑制、流量控制等。大多數用戶應用協議,如FTP和Telnet,都使用TCP。在傳輸層,TCP/IP使用3種協議:TCP、UDP和SCTP (stream control transmission protocol,流控制傳輸協議)。兩個進程可以借助IP數據報,通過TCP連接相互通信。結果如下圖所示。
TCP在發起傳輸之前,在發送進程和接收進程之間建立會話。有一些工具可以檢查所有數據包是否已被接收,并在數據包丟失的情況下安排重新傳輸。這涉及到額外的開銷,并導致更高的處理時間和報頭大小,但同時使系統更可靠。
TCP在必要時將一大塊數據分割成更小的段,對段進行編號,重新組裝整個消息,在失敗時檢測并安排重傳,對收到的數據發出確認,為到遠程主機端口的多個連接提供套接字服務。分段后的消息在接收端接收時可能是亂序的,而TCP則會按照正確的順序重新組裝這些消息。
每一個TCP段都有一個報頭,它包含了正確的數據傳遞和檢索所需的所有信息。
4.2.2 UDP
UDP是一種無連接協議。它不需要在數據傳輸之前建立任何連接。UDP不需要任何序列號、計時器、同步參數、重傳數據包和優先級選項。因此,它的開銷更少。它的主要缺點是不能保證送達。UDP通常用于廣播、一般網絡公告、實時數據等。
UDP頭如下圖所示。它只有四個字段。
源端口為可選端口。當它被使用時,它表示發送進程的端口地址。當不使用時,將為該字段插入一個零值。目的端口表示數據要傳送到的進程。長度是以字節為單位的所用數據報的長度,包括報頭。校驗和是一個可選的16位字段,用于驗證目的。
4.2.3 IP
在TCP/IP的網絡層中有一些非常重要的協議:網絡協議(IP)、因特網控制報文協議(ICMP)、地址解析協議(ARP)和DHCP。它們一起執行數據報尋址、路由、交付、動態地址配置,并在網絡層地址和網絡接口層地址之間進行解析。IP以分組的形式發送數據,稱為數據報。分組(或數據報)可以沿著不同的路徑(路由)傳輸,并且可能不按順序到達。IP不具備在接收端重新排列分組的能力。
IP是一種不可靠的、無連接的、盡力而為的分組傳輸協議。盡力而為交付意味著通過IP發送的數據包可能丟失,可能亂序,甚至可能重復。處理這些問題是高層的責任。無連接網絡協議用于減少對使用分層連接網絡的特定計算中心的依賴。
IP尋址是在互聯網上識別主機所必須的。因此,每臺主機都分配了一個IP地址或互聯網地址。主機由這個IP地址識別。一臺主機可能連接到多個網絡,稱為多宿主(multihomed),在這種情況下,主機必須為每個網絡接口有一個單獨的地址。
IP地址由32位無符號二進制值表示,并以點分十進制格式表示。每個IP地址由一個網絡號和一個主機號組成。網絡號碼由三個地區性互聯網注冊中心(RIR)之一管理:美國互聯網號碼注冊中心(ARIN)、歐洲IP研究所(mature)和亞太網絡信息中心(APNIC)。例如:128.3.7.8,128.3是IP地址,128.3表示網絡號,7.8表示主機號。有時,用網絡地址或netID來代替網絡號,用主機地址或hosteID來代替主機號。
IP數據報(主機之間交換的基本數據包)包含一個源IP地址和一個目的IP地址。要將數據報發送到目的IP地址,必須將其轉換或映射為物理地址。例如,在局域網中,通過ARP (address resolution protocol)將IP地址轉換為物理MAC地址。
有五類IP地址:A、B、C、D和E,這取決于主機數量和網絡大小。使用IP地址交付的數據報可以是以下任何一種類型:單播、廣播、多播或任播,如下圖所示:
IPv4負責在發送主機和接收主機之間傳遞數據包(數據報)。以太網可以處理1500字節,而X.25可以處理576字節。由于幀長度的限制,消息被分解為稱為數據報(datagram)的片段。每個數據報都有一個IP首部,然后由發送主機發送。接收主機根據收到的數據報重建消息。IPv4首部至少由5個32位長字組成,總共20字節。這個IP頭附加到它從高層協議接收到的信息。
4.3. 操作
TCP/IP協議套件有助于將消息從與駐留在一臺主機上的端口相關聯的進程發送到與另一臺主機上的端口相關聯的另一個進程。接收主機可能位于同一網絡或另一個網絡上。對于后一種情況,消息在到達最終目的地的過程中必須經過幾個路由器。需要注意的是,IP在所有端系統和路由器中都實現,而TCP只在端系統中實現。
如前文所述,要將一臺主機上的進程數據發送到另一臺主機上的另一個進程,需要兩級尋址。接收端需要一個本地端口地址來保證數據的正確傳輸。同樣,需要一個網絡地址,使消息能夠傳遞到接收主機。
比方說,駐留在屬于某個主機的端口上的進程數據將被交付給另一個擁有自己端口地址且屬于另一個主機的進程。發送端進程將消息傳遞給TCP。它有指令將其發送到特定端口的第二個主機。TCP將消息傳遞給IP,并指示將消息傳遞給另一臺主機。IP對于目標主機的端口地址是完全透明的。所有這些都是通過在TCP/IP協議組的每一層附加到消息的控制信息來管理的。
4.4 協議數據單元(PDU)
控制信息以頭部和尾部的形式在不同層附加到消息中,以確保在適當的目的地以最大的可靠性交付適當的數據。下圖,給出了TCP/IP體系結構中的數據封裝和PDU。
在TCP層,以TCP首部的形式附加控制信息,形成一個TCP段或帶有PDU的TCP段。TCP首部中包含的控制信息有:
目的端口地址、序列號和校驗和。同樣,在在網絡層,增加一個IP報頭,產生帶有PDU的IP。IP報頭包括目的網絡地址。它可能包括一些其他控制信息,如數據傳輸的優先級等。
4.5 尋址
通過TCP/IP協議尋址涉及通過Internet將數據從一個進程發送到另一個進程。尋址包括:“物理或鏈路地址”、“邏輯或IP地址”、“端口”和“特定地址”。
尋址涉及TCP/IP模型中的特定層,如下圖:
4.5.1 物理地址
物理地址或鏈路地址是最低級地址。它是局域網或廣域網在其幀中指定的站或節點的地址。根據網絡類型的不同,地址的大小和格式也不同。以太網使用嵌入在其NIC中的6字節地址。
4.5.2 邏輯地址
邏輯地址對應于TCP/IP模型中的網絡層。物理地址可能會有所不同(取決于網絡的類型)。邏輯地址通過識別主機而不考慮物理地址類型來克服這個困難。目前,32位邏輯地址可以唯一地識別一臺連接到互聯網的主機。為了區分和識別兩臺不同主機的邏輯地址,不能有兩個相同的IP地址。
4.5.3 端口
一臺計算機可以同時運行幾個進程。它可以通過文件傳輸協議、消息處理服務或TELNET與另一臺計算機通信。因此,駐留在一臺計算機上的這些進程必須有各自的地址,以便同時從其他計算機接收數據。這是由端口地址處理的。端口地址長度為2字節。計算機上的端口地址,有助于特定進程在到達目標主機后準確地交付數據/消息。
4.5.4 特定地址
特定地址是用戶友好的地址,如電子郵件地址或URL(通用資源定位符)。電子郵件地址定位世界上任何地方的特定收件人,而URL有助于定位從萬維網上可用的某些文檔/文章/信息。
-
交換機
+關注
關注
21文章
2652瀏覽量
99923 -
路由器
+關注
關注
22文章
3742瀏覽量
114207 -
DHCP
+關注
關注
0文章
105瀏覽量
19744 -
TCPIP協議
+關注
關注
0文章
35瀏覽量
11981 -
TCP通信
+關注
關注
0文章
146瀏覽量
4264
發布評論請先 登錄
相關推薦
評論