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