端點(diǎn)之間的通信是依靠通信子網(wǎng)中的節(jié)點(diǎn)間的通信來(lái)實(shí)現(xiàn)的,在OSI模型中,網(wǎng)絡(luò)層是網(wǎng)絡(luò)節(jié)點(diǎn)中的最高層,所以網(wǎng)絡(luò)層將體現(xiàn)通信子網(wǎng)向端系統(tǒng)所提供的網(wǎng)絡(luò)服務(wù)。在分組交換方式中,通信子網(wǎng)向端系統(tǒng)提供虛電路和數(shù)據(jù)報(bào)兩種網(wǎng)絡(luò)服務(wù),而通信子網(wǎng)內(nèi)部的操作也有虛電路和數(shù)據(jù)報(bào)兩種方式。
1.虛電路操作方式
在虛電路操作方式中,為了進(jìn)行數(shù)據(jù)傳輸,網(wǎng)絡(luò)的源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間先要建立一條邏輯通路,因?yàn)檫@條邏輯通路不是專用的,所以稱之為“虛”電路。每個(gè)節(jié)點(diǎn)到其它任一節(jié)點(diǎn)之間可能有若干條虛電路支持特定的兩個(gè)端系統(tǒng)之間的數(shù)據(jù)傳輸,兩個(gè)端系統(tǒng)之間也可以有多條虛電路為不同的進(jìn)程服務(wù),這些虛電路的實(shí)際路徑可能相同也可能不同。 節(jié)點(diǎn)間的物理信道在邏輯上均可看做由多條邏輯信道組成,這些邏輯信道實(shí)際上由節(jié)點(diǎn)內(nèi)部的分組緩沖器來(lái)實(shí)現(xiàn)。所謂占用某條邏輯信道,實(shí)質(zhì)上是指占用了該段物理信道上節(jié)點(diǎn)分配的分組緩沖器。不同的邏輯信道在節(jié)點(diǎn)內(nèi)部通過(guò)邏輯信道號(hào)加以區(qū)分,各條邏輯信道異步分時(shí)復(fù)用同一條物理信道。
一條虛電路可能要經(jīng)過(guò)多個(gè)中間節(jié)點(diǎn),在節(jié)點(diǎn)間的各段物理信道上都要占用一條邏輯信道用以傳送分組。由于各節(jié)點(diǎn)均獨(dú)立地為通過(guò)的虛電路分配邏輯信道,也即同一條虛電路通過(guò)各段信道所獲取的邏輯信道號(hào)可能是不相同的,所以各節(jié)點(diǎn)內(nèi)部必須建立一張?zhí)撾娐繁?,用以記錄經(jīng)過(guò)該點(diǎn)的各條虛電路所占用的各個(gè)邏輯信道號(hào)。
為使節(jié)點(diǎn)能區(qū)分一個(gè)分組屬于哪條虛電路,每個(gè)分組必須攜帶一個(gè)邏輯信道號(hào):同樣,同一條虛電路的分組在各段邏輯信道上的邏輯信道號(hào)可能也不相同。傳輸中,當(dāng)一個(gè)分組到達(dá)節(jié)點(diǎn)時(shí),節(jié)點(diǎn)根據(jù)其攜帶的邏輯信道號(hào)查找虛電路表,以確定該分組應(yīng)發(fā)往的下一個(gè)節(jié)點(diǎn)及其下一段信道上所占用的邏輯信道號(hào),用該邏輯信道號(hào)替換分組中原先的邏輯信道號(hào)后,再將該分組發(fā)往下一個(gè)節(jié)點(diǎn)。
各節(jié)點(diǎn)的虛電路表是在虛電路建立過(guò)程中建立的。比如,與A節(jié)點(diǎn)相連的源端系統(tǒng)要經(jīng)中間節(jié)點(diǎn)B、C跟與D節(jié)點(diǎn)相連的目的端系統(tǒng)建立一條虛電路,源端系統(tǒng)可發(fā)出一個(gè)呼叫請(qǐng)求分組,該分組除了包含目的地址外,還包含源端系統(tǒng)所選取的不用的最小邏輯信道號(hào)N.A節(jié)點(diǎn)收到請(qǐng)求分組后在A節(jié)點(diǎn)與下一節(jié)點(diǎn)B間所有已使用的邏輯信道號(hào)之外選取一個(gè)最小編號(hào)NA,并將請(qǐng)求分組中的邏輯信道號(hào)N替換成該邏輯信道號(hào)NA,再將分組發(fā)送給節(jié)點(diǎn)B.此后的各節(jié)點(diǎn)依次逐個(gè)根據(jù)自身實(shí)際情況選取新的邏輯信道號(hào)(如NB、NC、ND等)來(lái)替換收到的分組中的邏輯信道號(hào)。最后,目的節(jié)點(diǎn)D將請(qǐng)求分組傳送給連接它的端系統(tǒng)。在此過(guò)程中,每個(gè)節(jié)點(diǎn)的虛電路表中要記錄兩個(gè)邏輯信道號(hào):前一個(gè)節(jié)點(diǎn)所選取的邏輯信道號(hào)和本節(jié)點(diǎn)所選取的邏輯信道號(hào)。這樣便使得虛電路所跨越的每一段連接上的邏輯信道號(hào)都是惟一的o
圖3.16給出了一個(gè)虛電路表建立的示例,這里假設(shè)建立了6條虛電路。由于虛電路上的數(shù)據(jù)是雙向傳輸?shù)?,為保證兩節(jié)點(diǎn)之間正、反兩個(gè)方向的虛電路不相混淆,在一個(gè)節(jié)點(diǎn)選取邏輯信道號(hào)來(lái)替換其前一節(jié)點(diǎn)使用的邏輯信道號(hào)時(shí),不僅要考慮與下一節(jié)點(diǎn)之間的邏輯信道號(hào)不相同,還要考慮與下一節(jié)點(diǎn)作為另一條反向虛電路的上一節(jié)點(diǎn)時(shí)所選取的邏輯信道號(hào)相區(qū)別。例如,在建立虛電路1-BAE時(shí)(這里1-BAE表示源節(jié)點(diǎn)為B,建立虛電路時(shí)選取1為邏輯信道號(hào),并經(jīng)A傳送到E),在節(jié)點(diǎn)B中,盡管A節(jié)點(diǎn)是第一次作為B節(jié)點(diǎn)的下一節(jié)點(diǎn),但由于虛電路0-ABCD中A到B間已使用了邏輯信道號(hào)0,因此在出路一欄應(yīng)選B到A間的邏輯信道號(hào)為1.這樣,當(dāng)從節(jié)點(diǎn)A發(fā)來(lái)一個(gè)分組時(shí),若它所攜帶的邏輯信道號(hào)為0,則說(shuō)明是虛電路礎(chǔ)CD上的正向分組;若為1,則說(shuō)明是虛電路BAE上的反向分組。對(duì)于虛電路2-BFE的建立也是同樣情況。
各節(jié)點(diǎn)的虛電路表空間和邏輯信道號(hào)都是網(wǎng)絡(luò)資源,當(dāng)虛電路拆除時(shí)必須回收。這可通過(guò)某端系統(tǒng)發(fā)出一個(gè)拆鏈請(qǐng)求分組,告知虛電路中各節(jié)點(diǎn)刪除虛電路表中有關(guān)表項(xiàng)來(lái)實(shí)現(xiàn)。
2.數(shù)據(jù)報(bào)操作方式
在數(shù)據(jù)報(bào)操作方式中,每個(gè)分組被稱為一個(gè)數(shù)據(jù)報(bào),若干個(gè)數(shù)據(jù)報(bào)構(gòu)成一次要傳送的報(bào)文或數(shù)據(jù)塊。每個(gè)數(shù)據(jù)報(bào)自身攜帶有足夠的信息,它的傳送是被單獨(dú)處理的。一個(gè)節(jié)點(diǎn)接收到一個(gè)數(shù)據(jù)報(bào)后,根據(jù)數(shù)據(jù)報(bào)中的地址信息和節(jié)點(diǎn)所存儲(chǔ)的路由信息,找出一個(gè)合適的出路,把數(shù)據(jù)報(bào)原樣地發(fā)送到下一個(gè)節(jié)點(diǎn)。
當(dāng)端系統(tǒng)要發(fā)送一個(gè)報(bào)文時(shí),將報(bào)文拆成若干個(gè)帶有序號(hào)和地址信息的數(shù)據(jù)報(bào),依次發(fā)給網(wǎng)絡(luò)節(jié)點(diǎn)。此后,各個(gè)數(shù)據(jù)報(bào)所走的路徑就可能不同了,因?yàn)楦鱾€(gè)節(jié)點(diǎn)在隨時(shí)根據(jù)網(wǎng)絡(luò)的流量、故障等情況選擇路由。由于各行其道,各數(shù)據(jù)報(bào)不能保證按順序到達(dá)目的節(jié)點(diǎn),有些數(shù)據(jù)報(bào)甚至還可能在途中丟失。在整個(gè)數(shù)據(jù)報(bào)傳送過(guò)程中,不需要建立虛電路,但網(wǎng)絡(luò)節(jié)點(diǎn)要為每個(gè)數(shù)據(jù)報(bào)做路由選擇。
3.虛電路服務(wù)
虛電路服務(wù)是網(wǎng)絡(luò)層向運(yùn)輸層提供的一種使所有分組按順序到達(dá)目的端系統(tǒng)的可靠的數(shù)據(jù)傳送方式。進(jìn)行數(shù)據(jù)交換的兩個(gè)端系統(tǒng)之間存在著一條為它們服務(wù)的虛電路。為了建立端系統(tǒng)之間的虛電路,源端系統(tǒng)的運(yùn)輸層首先向網(wǎng)絡(luò)層發(fā)出連接請(qǐng)求,網(wǎng)絡(luò)層則通過(guò)虛電路網(wǎng)絡(luò)訪問(wèn)協(xié)議向網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)出呼叫分組;在目的端,網(wǎng)絡(luò)節(jié)點(diǎn)向端系統(tǒng)的網(wǎng)絡(luò)層傳送呼叫分組,網(wǎng)絡(luò)層再向運(yùn)輸層發(fā)出連接指示;最后,接收方運(yùn)輸層向發(fā)起方發(fā)回連接響應(yīng),從而使虛電路建立起來(lái)。此后,兩個(gè)端系統(tǒng)之間就可以傳送數(shù)據(jù)。數(shù)據(jù)由網(wǎng)絡(luò)層拆成若干個(gè)分組送給通信子網(wǎng),由通信子網(wǎng)將分組傳送到數(shù)據(jù)接收方。
上述虛電路的服務(wù)是網(wǎng)絡(luò)層向運(yùn)輸層提供的服務(wù),也是通信子網(wǎng)向端系統(tǒng)提供的網(wǎng)絡(luò)服務(wù)。但是,提供這種虛電路服務(wù)的通信子網(wǎng)內(nèi)部的實(shí)際操作既可以是虛電路方式的,也可以是數(shù)據(jù)報(bào)方式的。以虛電路方式操作的網(wǎng)絡(luò),一般總是提供虛電路服務(wù)。 OSI中面向連接的網(wǎng)絡(luò)服務(wù)就是虛電路服務(wù)。在虛電路操作方式中,端系統(tǒng)的網(wǎng)絡(luò)層同通信子網(wǎng)節(jié)點(diǎn)的操作是一致的。SNA就是采用這種虛電路操作支持虛電路服務(wù)方式的實(shí)例。
以數(shù)據(jù)報(bào)方式操作的網(wǎng)絡(luò),也可以提供虛電路服務(wù),即通信子網(wǎng)內(nèi)部節(jié)點(diǎn)按數(shù)據(jù)報(bào)方式交換數(shù)據(jù),而與端系統(tǒng)相連的網(wǎng)絡(luò)節(jié)點(diǎn)則向端系統(tǒng)提供虛電路服務(wù)。對(duì)于端系統(tǒng)來(lái)說(shuō),它的網(wǎng)絡(luò)層與網(wǎng)絡(luò)節(jié)點(diǎn)間的通信仍像虛電路操作方式的網(wǎng)絡(luò)節(jié)點(diǎn)間一樣,先建立虛電路,再交換數(shù)據(jù)分組,最后拆除電路。但實(shí)際上,每個(gè)分組被網(wǎng)絡(luò)節(jié)點(diǎn)分成若干個(gè)數(shù)據(jù)報(bào),附加上地址、序號(hào)、邏輯信道號(hào)等信息分送到目的節(jié)點(diǎn)。目的節(jié)點(diǎn)再將數(shù)據(jù)報(bào)進(jìn)行排序,拼成原來(lái)的分組,送給目的端系統(tǒng)。因此,源端系統(tǒng)和源網(wǎng)絡(luò)節(jié)點(diǎn)之間、目的節(jié)點(diǎn)和目的端系統(tǒng)之間的網(wǎng)絡(luò)層按虛電路操作方式交換分組,而目的節(jié)點(diǎn)和源節(jié)點(diǎn)之間則按數(shù)據(jù)報(bào)方式完成分組的交換。盡管通信子網(wǎng)的數(shù)據(jù)報(bào)交換是不可靠的,但是兩端的網(wǎng)絡(luò)節(jié)點(diǎn)做了許多諸如排序、重發(fā)等額外工作,從而滿足了虛電路服務(wù)的要求。例如,在ARP燦JET中,其內(nèi)部使用數(shù)據(jù)報(bào)操作方式,但可以向端系統(tǒng)提供數(shù)據(jù)報(bào)和虛電路兩種服務(wù)。
4.數(shù)據(jù)報(bào)服務(wù)
數(shù)據(jù)報(bào)服務(wù)一般僅由數(shù)據(jù)報(bào)交換網(wǎng)來(lái)提供。端系統(tǒng)的網(wǎng)絡(luò)層同網(wǎng)絡(luò)節(jié)點(diǎn)中的網(wǎng)絡(luò)層之間,一致地按照數(shù)據(jù)報(bào)操作方式交換數(shù)據(jù)。當(dāng)端系統(tǒng)要發(fā)送數(shù)據(jù)時(shí),網(wǎng)絡(luò)層給該數(shù)據(jù)附加上地址、序號(hào)等信息、¥然后作為數(shù)據(jù)報(bào)發(fā)送給網(wǎng)絡(luò)節(jié)點(diǎn);目的端系統(tǒng)收到的數(shù)據(jù)報(bào)可能是不按序到達(dá)的,也可能有數(shù)據(jù)報(bào)的丟失。例如,在ARPANET、DNA等網(wǎng)絡(luò)中,就提供了數(shù)據(jù)報(bào)服務(wù)。數(shù)據(jù)報(bào)服務(wù)與OSI的無(wú)連接網(wǎng)絡(luò)服務(wù)類似。
由虛電路交換網(wǎng)提供數(shù)據(jù)報(bào)服務(wù)的組合方式并不常見(jiàn)??梢韵胂裼羞@么一種特殊情況:一個(gè)端系統(tǒng)的網(wǎng)絡(luò)層已經(jīng)構(gòu)造好了用于處理數(shù)據(jù)報(bào)的服務(wù),而當(dāng)它要接人以虛電路方式操作的網(wǎng)絡(luò)時(shí),網(wǎng)絡(luò)節(jié)點(diǎn)就需要做一些轉(zhuǎn)換工作。當(dāng)端系統(tǒng)向網(wǎng)絡(luò)節(jié)點(diǎn)發(fā)送一個(gè)攜帶有完整地址信息的數(shù)據(jù)報(bào)時(shí),若發(fā)向同一地址的數(shù)據(jù)報(bào)數(shù)量足夠大,則網(wǎng)絡(luò)節(jié)點(diǎn)可以為這些數(shù)據(jù)報(bào)同目的節(jié)點(diǎn)間建立一條虛電路,所有相同地址的數(shù)據(jù)報(bào)均在這條虛電路上傳送。過(guò)一段時(shí)間后,當(dāng)沒(méi)有這類相同的地址的數(shù)據(jù)報(bào)要發(fā)送時(shí),這條虛電路便可拆除。所以,這種數(shù)據(jù)報(bào)服務(wù)具有了虛電路服務(wù)的通信質(zhì)量,但這樣做既不經(jīng)濟(jì),效率也低。