㈠ 計算機網路體系結構的ISO/OSI網路體系結構
國際標准化組織ISO(International Standards Organization)在80年代提出的開放系統互聯參考模型OSI(Open System Interconnection),這個模型將計算機網路通信協議分為七層。這個模型是一個定義異構計算機連接標準的框架結構,其具有如下特點:
①網路中異構的每個節點均有相同的層次,相同層次具有相同的功能。
②同一節點內相鄰層次之間通過介面通信。
③相鄰層次間介面定義原語操作,由低層向高層提供服務。
④不同節點的相同層次之間的通信由該層次的協議管理,
⑤每層次完成對該層所定義的功能,修改本層次功能不影響其它層、
⑥僅在最低層進行直接數據傳送。
⑦定義的是抽象結構,並非具體實現的描述。
在OSI網路體系結構中、除了物理層之外,網路中數據的實際傳輸方向是垂直的。數據由用戶發送進程發送給應用層,向下經表示層、會話層等到達物理層,再經傳輸媒體傳到接收端,由接收端物理層接收,向上經數據鏈路層等到達應用層,再由用戶獲取。數據在由發送進程交給應用層時,由應用層加上該層有關控制和識別信息,再向下傳送,這一過程一直重復到物理層。在接收端信息向上傳遞時,各層的有關控制和識別信息被逐層剝去,最後數據送到接收進程。
現在一般在制定網路協議和標准時,都把ISO/OSI參考模型作為參照基準,並說明與該參照基準的對應關系。例如,在IEEE802區域網LAN標准中,只定義了物理層和數據鏈路層,並且增強了數據鏈路層的功能。在廣域網WAN協議中,CCITT的X.25建議包含了物理層、數據鏈路層和網路層等三層協議。一般來說,網路的低層協議決定了一個網路系統的傳輸特性,例如所採用的傳輸介質、拓撲結構及介質訪問控制方法等,這些通常由硬體來實現;網路的高層協議則提供了與網路硬體結構無關的,更加完善的網路服務和應用環境,這些通常是由網路操作系統來實現的。 物理層建立在物理通信介質的基礎上,作為系統和通信介質的介面,用來實現數據鏈路實體間透明的比特 (bit) 流傳輸。只有該層為真實物理通信,其它各層為虛擬通信。物理層實際上是設備之間的物理介面,物理層傳輸協議主要用於控制傳輸媒體。
(1)物理層的特性
物理層提供與通信介質的連接,提供為建立、維護和釋放物理鏈路所需的機械的、電氣的、功能的和規程的特性,提供在物理鏈路上傳輸非結構的位流以及故障檢測指示。物理層向上層提供位 (bit) 信息的正確傳送。
其中機械特性主要規定介面連接器的尺寸、芯數和芯的位置的安排、連線的根數等。電氣特性主要規定了每種信號的電平、信號的脈沖寬度、允許的數據傳輸速率和最大傳輸距離。功能特性規定了介面電路引腳的功能和作用。規程特性規定了介面電路信號發出的時序、應答關系和操作過程,例如,怎樣建立和拆除物理層連接,是全雙工還是半雙工等。
(2)物理層功能
為了實現數據鏈路實體之間比特流的透明傳輸,物理層應具有下述功能:
①物理連接的建立與拆除
當數據鏈路層請求在兩個數據鏈路實體之間建立物理連接時,物理層能夠立即為它們建立相應的物理連接。若兩個數據鏈路實體之間要經過若干中繼數據鏈路實體時,物理層還能夠對這些中繼數據鏈路實體進行互聯,以建立起一條有效的物理連接。當物理連接不再需要時,由物理層立即拆除。
②物理服務數據單元傳輸
物理層既可以採取同步傳輸方式,也可以採取非同步傳輸方式來傳輸物理服務數據單元。
③物理層管理
對物理層收發進行管理,如功能的激活 (何時發送和接收、異常情況處理等)、差錯控制 (傳輸中出現的奇偶錯和格式錯)等。 數據鏈路層為網路層相鄰實體間提供傳送數據的功能和過程;提供數據流鏈路控制;檢測和校正物理鏈路的差錯。物理層不考慮位流傳輸的結構,而數據鏈路層主要職責是控制相鄰系統之間的物理鏈路,傳送數據以幀為單位,規定字元編碼、信息格式,約定接收和發送過程,在一幀數據開頭和結尾附加特殊二進制編碼作為幀界識別符,以及發送端處理接收端送回的確認幀,保證數據幀傳輸和接收的正確性,以及發送和接收速度的匹配,流量控制等。
(1)數據鏈路層的目的
提供建立、維持和釋放數據鏈路連接以及傳輸數據鏈路服務數據單元所需的功能和過程的手段。數據鏈路連接是建立在物理連接基礎上的,在物理連接建立以後,進行數據鏈路連接的建立和數據鏈路連接的拆除。具體說,每次通信前後,雙方相互聯系以確認一次通信的開始和結束,在一次物理連接上可以進行多次通信。數據鏈路層檢測和校正在物理層出現的錯誤。
(2)數據鏈路層的功能和服務
數據鏈路層的主要功能是為網路層提供連接服務,並在數據鏈路連接上傳送數據鏈路協議數據單元L-PDU,一般將L-PDU稱為幀。數據鏈路層服務可分為以下三種:
①無應答、無連接服務。發送前不必建立數據鏈路連接,接收方也不做應答,出錯和數據丟失時也不做處理。這種服務質量低,適用於線路誤碼率很低以及傳送實時性要求高的 (例如語音類的)信息等。
②有應答、無連接服務。當發送主機的數據鏈路層要發送數據時,直接發送數據幀。目標主機接收數據鏈路的數據幀,並經校驗結果正確後,向源主機數據鏈路層返回應答幀;否則返回否定幀,發送端可以重發原數據幀。這種方式發送的第一個數據幀除傳送數據外,也起數據鏈路連接的作用。這種服務適用於一個節點的物理鏈路多或通信量小的情況,其實現和控制都較為簡單。
③面向連接的服務。該服務一次數據傳送分為三個階段:數據鏈路建立,數據幀傳送和數據鏈路的拆除。數據鏈路建立階段要求雙方的數據鏈路層作好傳送的准備;數據傳送階段是將網路層遞交的數據傳送到對方;數據鏈路拆除階段是當數據傳送結束時,拆除數據鏈路連接。這種服務的質量好,是ISO/OSI參考模型推薦的主要服務方式。
(3)數據鏈路數據單元
數據鏈路層與網路層交換數據格式為服務數據單元。數據鏈路服務數據單元,配上數據鏈路協議控制信息,形成數據鏈路協議數據單元。
數據鏈路層能夠從物理連接上傳輸的比特流中,識別出數據鏈路服務數據單元的開始和結束,以及識別出其中的每個欄位,實現正確的接收和控制。能按發送的順序傳輸到相鄰結點。
(4)數據鏈路層協議
數據鏈路層協議可分為面向字元的通信規程和面向比特的通信規程。
面向字元的通信規程是利用控制字元控制報文的傳輸。報文由報頭和正文兩部分組成。報頭用於傳輸控制,包括報文名稱、源地址、目標地址、發送日期以及標識報文開始和結束的控制字元。正文則為報文的具體內容。目標節點對收到的源節點發來的報文,進行檢查,若正確,則向源節點發送確認的字元信息;否則發送接收錯誤的字元信息。
面向比特的通信規程典型是以幀為傳送信息的單位,幀分為控制幀和信息幀。在信息幀的數據欄位 (即正文)中,數據為比特流。比特流用幀標志來劃分幀邊界,幀標志也可用作同步字元。 廣域網路一般都劃分為通信子網和資源子網,物理層、數據鏈路層和網路層組成通信子網,網路層是通信子網的最高層,完成對通信子網的運行控制。網路層和傳輸層的界面,既是層間的介面,又是通信子網和用戶主機組成的資源子網的界限,網路層利用本層和數據鏈路層、物理層兩層的功能向傳輸層提供服務。
數據鏈路層的任務是在相鄰兩個節點間實現透明的無差錯的幀級信息的傳送,而網路層則要在通信子網內把報文分組從源節點傳送到目標節點。在網路層的支持下,兩個終端系統的傳輸實體之間要進行通信,只需把要交換的數據交給它們的網路層便可實現。至於網路層如何利用數據鏈路層的資源來提供網路連接,對傳輸層是透明的。
網路層控制分組傳送操作,即路由選擇,擁塞控制、網路互連等功能,根據傳輸層的要求來選擇服務質量,向傳輸層報告未恢復的差錯。網路層傳輸的信息以報文分組為單位,它將來自源的報文轉換成包文,並經路徑選擇演算法確定路徑送往目的地。網路層協議用於實現這種傳送中涉及的中繼節點路由選擇、子網內的信息流量控制以及差錯處理等。
(1)網路層功能
網路層的主要功能是支持網路層的連接。網路層的具體功能如下:
①建立和拆除網路連接
在數據鏈路層提供的數據鏈路連接的基礎上,建立傳輸實體間或者若干個通信子網的網路連接。互連的子網可採用不同的子網協議。
②路徑選擇、中繼和多路復用
網際的路徑和中繼不同與網內的路徑和和中繼,網路層可以在傳輸實體的兩個網路地址之間選擇一條適當的路徑,或者在互連的子網之間選擇一條適當的路徑和中繼。並提供網路連接多路復用的數據鏈路連接,以提高數據鏈路連接的利用率。
③分組、組塊和流量控制
數據分組是指將較長的數據單元分割為一些相對較小的數據單元;數據組塊是指將一些相對較小的數據單元組成塊後一起傳輸。用以實現網路服務數據單元的有序傳輸,以及對網路連接上傳輸的網路服務數據單元進行有效的流量控制,以免發生信息堵塞現象。
④差錯的檢測與恢復
利用數據鏈路層的差錯報告,以及其他的差錯檢測能力來檢測經網路連接所傳輸的數據單元,檢測是否出現異常情況。並可以從出錯狀態中解脫出來。
(2)數據報和虛電路
網路層中提供兩種類型的網路服務,即無連接服務和面向連接的服務。它們又被稱為數據報服務和虛電路服務。
①數據報 (Datagram)服務
在數據報方式,網路層從傳輸層接受報文,拆分為報文分組,並且獨立地傳送,因此數據報格式中包含有源和目標節點的完整網路地址、服務要求和標識符。發送時,由於數據報每經過一個中繼節點時,都要根據當時情況按照一定的演算法為其選擇一條最佳的傳輸路徑,因此,數據報服務不能保證這些數據報按序到達目標節點,需要在接收節點根據標識符重新排序。
數據報方式對故障的適應性強,若某條鏈路發生故障,則數據報服務可以繞過這些故障路徑而另選擇其他路徑,把數據報傳送至目標節點。數據報方式易於平衡網路流量,因為中繼節點可為數據報選擇一條流量較少的路由,從而避開流量較高的路由。數據報傳輸不需建立連接,目標節點在收到數據報後,也不需發送確認,因而是一種開銷較小的通信方式。但是發方不能確切地知道對方是否准備好接收、是否正在忙碌,故數據報服務的可靠性不是很高。而且數據報發送每次都附加源和目標主機的全網名稱降低了信道利用率。
②虛電路 (Virtue Circuit) 服務
在虛電路傳輸方式下,在源主機與目標主機通信之前,必須為分組傳輸建立一條邏輯通道,稱為虛電路。為此,源節點先發送請求分組Call-Request,Call-Request包含了源和目標主機的完整網路地址。Call-Request途徑每一個通信網路節點時,都要記下為該分組分配的虛電路號,並且路由器為它選擇一條最佳傳輸路由發往下一個通信網路節點。當請求分組到達目標主機後,若它同意與源主機通信,沿著該虛電路的相反方向發送請求分組Call-Request給源節點,當在網路層為雙方建立起一條虛電路後,每個分組中不必再填上源和目標主機的全網地址,而只需標上虛電路號,即可以沿著固定的路由傳輸數據。當通信結束時,將該虛電路拆除。
虛電路服務能保證主機所發出的報文分組按序到達。由於在通信前雙方已進行過聯系,每發送完一定數量的分組後,對方也都給予了確認,故可靠性較高。
③路由選擇
網路層的主要功能是將分組從源節點經過選定的路由送到目標節點,分組途經多個通信網路節點造成多次轉發,存在路由選擇問題。路由選擇或稱路徑控制,是指網路中的節點根據通信網路的情況 (可用的數據鏈路、各條鏈路中的信息流量),按照一定的策略 (傳輸時間最短、傳輸路徑最短等)選擇一條可用的傳輸路由,把信息發往目標節點。
網路路由選擇演算法是網路層軟體的一部分,負責確定所收到的分組應傳送的路由。當網路內部採用無連接的數據報方式時,每傳送一個分組都要選擇一次路由。當網路層採用虛電路方式時,在建立呼叫連接時,選擇一次路徑,後繼的數據分組就沿著建立的虛電路路徑傳送,路徑選擇的頻度較低。
路由選擇演算法可分為靜態演算法和動態演算法。靜態路由演算法是指總是按照某種固定的規則來選擇路由,例如,擴散法、固定路由選擇法、隨機路由選擇法和流量控制選擇法。動態路由演算法是指根據拓撲結構以及通信量的變化來改變路由,例如,孤立路由選擇法、集中路由選擇法、分布路由選擇法、層次路由選擇法等 從傳輸層向上的會話層、表示層、應用層都屬於端一端的主機協議層。傳輸層是網路體系結構中最核心的一層,傳輸層將實際使用的通信子網與高層應用分開。從這層開始,各層通信全部是在源與目標主機上的各進程間進行的,通信雙方可能經過多個中間節點。傳輸層為源主機和目標主機之間提供性能可靠、價格合理的數據傳輸。具體實現上是在網路層的基礎上再增添一層軟體,使之能屏蔽掉各類通信子網的差異,向用戶提供一個通用介面,使用戶進程通過該介面,方便地使用網路資源並進行通信。
(1) 傳輸層功能
傳輸層獨立於所使用的物理網路,提供傳輸服務的建立、維護和連接拆除的功能;選擇網路層提供的最適合的服務。傳輸層接收會話層的數據,分成較小的信息單位,再送到網路層,實現兩傳輸層間數據的無差錯透明傳送。
傳輸層可以使源與目標主機之間以點對點的方式簡單地連接起來。真正實現端一端間可靠通信。傳輸層服務是通過服務原語提供給傳輸層用戶(可以是應用進程或者會話層協議),傳輸層用戶使用傳輸層服務是通過傳送服務埠TSAP實現的。當一個傳輸層用戶希望與遠端用戶建立連接時,通常定義傳輸服務訪問點TSAP。提供服務的進程在本機TSAP埠等待傳輸連接請求,當某一節點機的應用程序請求該服務時,向提供服務的節點機的TSAP埠發出傳輸連接請求,並表明自己的埠和網路地址。如果提供服務的進程同意,就向請求服務的節點機發確認連接,並對請求該服務的應用程序傳遞消息,應用程序收到消息後,釋放傳輸連接。
傳輸層提供面向連接和無連接兩種類型的服務。這兩種類型的服務和網路層的服務非常相似。傳輸層提供這兩種類型服務的原因是因為,用戶不能對通信子網加以控制,無法通過使用通信處理機來改善服務質量。傳輸層提供比網路層更可靠的端一端間數據傳輸,更完善的查錯糾錯功能。傳輸層之上的會話層、表示層、應用層都不包含任何數據傳送的功能。
(2)傳輸層協議類型
傳輸層協議和網路層提供的服務有關。網路層提供的服務於越完善,傳輸層協議就越簡單,網路層提供的服務越簡單,傳輸層協議就越復雜。傳輸層服務可分成五類:
0類:提供最簡單形式的傳送連接,提供數據流控制。
1類:提供最小開銷的基本傳輸連接,提供誤差恢復。
2類:提供多路復用,允許幾個傳輸連接多路復用一條鏈路。
3類:具有0類和1類的功能,提供重新同步和重建傳輸連接的功能。
4類:用於不可靠傳輸層連接,提供誤差檢測和恢復。
基本協議機制包括建立連接、數據傳送和拆除連接。傳輸連接涉及四種不同類型的標識:
用戶標識:即服務訪問點SAP,允許實體多路數據傳輸到多個用戶。
網路地址:標識傳輸層實體所在的站。
協議標識:當有多個不同類型的傳輸協議的實體,對網路服務標識出不同類型的協議。
連接標識:標識傳送實體,允許傳輸連接多路復用。 會話是指兩個用戶進程之間的一次完整通信。會話層提供不同系統間兩個進程建立、維護和結束會話連接的功能;提供交叉會話的管理功能,有一路交叉、兩路交叉和兩路同時會話的3種數據流方向控制模式。會話層是用戶連接到網路的介面。
(1)會話層的主要功能
會話層的目的是提供一個面向應用的連接服務。建立連接時,將會話地址映射為傳輸地址。會話連接和傳輸連接有三種對應關系,一個會話連接對應一個傳輸連接;多個會話連接建立在一個傳輸連接上;一個會話連接對應多個傳輸連接。
數據傳送時,可以進行會話的常規數據、加速數據、特權數據和能力數據的傳送。
會話釋放時,允許正常情況下的有序釋放;異常情況下由用戶發起的異常釋放和服務提供者發起的異常釋放。
(2)會話活動
會話服務用戶之間的交互對話可以劃分為不同的邏輯單元,每個邏輯單元稱為活動。每個活動完全獨立於它前後的其他活動,且每個邏輯單元的所有通信不允許分隔開。
會話活動由會話令牌來控制,保證會話有序進行。會話令牌分為四種,數據令牌、釋放令牌、次同步令牌和主同步令牌。令牌是互斥使用會話服務的手段。
會話用戶進程間的數據通信一般採用互動式的半雙工通信方式。由會話層給會話服務用戶提供數據令牌來控制常規數據的傳送,有數據令牌的會話服務用戶才可發送數據,另一方只能接收數據。當數據發完之後,就將數據令牌轉讓給對方,對方也可請求令牌。
(3)會話同步
在會話服務用戶組織的一個活動中,有時要傳送大量的信息,如將一個文件連續發送給對方,為了提高數據發送的效率,會話服務提供者允許會話用戶在傳送的數據中設置同步點。一個主同步點表示前一個對話單元的結束及下一個對話單元的開始。在一個對話單元內部或者說兩個主同步點之間可以設置次同步點,用於會話單元數據的結構化。當會話用戶持有數據令牌、次同步令牌和主同步令牌時就可在發送數據流中用相應的服務原語設置次同步點和主同步點。
一旦出現高層軟體錯誤或不符合協議的事件則發生會話中斷,這時會話實體可以從中斷處返回到一個已知的同步點繼續傳送,而不必從文件的開頭恢復會話。會話層定義了重傳功能,重傳是指在已正確應答對方後,在後期處理中發現出錯而請求的重傳,又稱為再同步。為了使發送端用戶能夠重傳,必須保存數據緩沖區中已發送的信息數據,將重新同步的范圍限制在一個對話單元之內,一般返回到前一個次同步點,最多返回到最近一個主同步點。 應用層作為用戶訪問網路的介面層,給應用進程提供了訪問OSI環境的手段。
應用進程藉助於應用實體 (AE)、實用協議和表示服務來交換信息,應用層的作用是在實現應用進程相互通信的同時,完成一系列業務處理所需的服務功能。當然這些服務功能與所處理的業務有關。
應用進程使用OSI定義和通信功能,這些通信功能是通過OSI參考模型各層實體來實現的。應用實體是應用進程利用OSI通信功能的唯一窗口。它按照應用實體間約定的通信協議 (應用協議),傳送應用進程的要求,並按照應用實體的要求在系統間傳送應用協議控制信息,有些功能可由表示層和表示層以下各層實現。
應用實體由一個用戶元素和一組應用服務元素組成。用戶元素是應用進程在應用實體內部,為完成其通信目的,需要使用的那些應用服務元素的處理單元。實際上,用戶元素向應用進程提供多種形式的應用服務調用,而每個用戶元素實現一種特定的應用服務使用方式。用戶元素屏蔽應用的多樣性和應用服務使用方式的多樣性,簡化了應用服務的實現。應用進程完全獨立於OSI環境,它通過用戶元素使用OSI服務。
應用服務元素可分為兩類,公共應用服務元素 (CASE)和特定應用服務元素 (SASE)。公共應用服務元素是用戶元素和特定應用服務元素公共使用的部分,提供通用的最基本的服務,它使不同系統的進程相互聯系並有效通信。它包括聯系控制元素、可靠傳輸服務元素、遠程操作服務元素等;特定應用服務元素提供滿足特定應用的服務。包括虛擬終端、文件傳輸和管理、遠程資料庫訪問、作業傳送等。對於應用進程和公共應用服務元素來說,用戶元素具有發送和接收能力。對特定服務元素來說,用戶元素是請求的發送者,也是響應的最終接收者。
㈡ 懸賞啊!網路埠一共有哪些啊
有過一些黑客攻擊方面知識的讀者都會知道,其實那些所謂的黑客並不是像人們想像那樣從天而降,而是實實在在從您的計算機"大門"中自由出入。計算機的"大門"就是我們平常所說的"埠",它包括計算機的物理埠,如計算機的串口、並口、輸入/輸出設備以及適配器介面等(這些埠都是可見的),但更多的是不可見的軟體埠,在本文中所介紹的都是指"軟體埠",但為了說明方便,仍統稱為"埠"。本文僅就埠的基礎知識進行介紹,
一、埠簡介
隨著計算機網路技術的發展,原來物理上的介面(如鍵盤、滑鼠、網卡、顯示卡等輸入/輸出介面)已不能滿足網路通信的要求,TCP/IP協議作為網路通信的標准協議就解決了這個通信難題。TCP/IP協議集成到操作系統的內核中,這就相當於在操作系統中引入了一種新的輸入/輸出介面技術,因為在TCP/IP協議中引入了一種稱之為"Socket(套接字)"應用程序介面。有了這樣一種介面技術,一台計算機就可以通過軟體的方式與任何一台具有Socket介面的計算機進行通信。埠在計算機編程上也就是"Socket介面"。
有了這些埠後,這些埠又是如何工作呢?例如一台伺服器為什麼可以同時是Web伺服器,也可以是FTP伺服器,還可以是郵件伺服器等等呢?其中一個很重要的原因是各種服務採用不同的埠分別提供不同的服務,比如:通常TCP/IP協議規定Web採用80號埠,FTP採用21號埠等,而郵件伺服器是採用25號埠。這樣,通過不同埠,計算機就可以與外界進行互不幹擾的通信。
據專家們分析,伺服器埠數最大可以有65535個,但是實際上常用的埠才幾十個,由此可以看出未定義的埠相當多。這是那麼多黑客程序都可以採用某種方法,定義出一個特殊的埠來達到入侵的目的的原因所在。為了定義出這個埠,就要依靠某種程序在計算機啟動之前自動載入到內存,強行控制計算機打開那個特殊的埠。這個程序就是"後門"程序,這些後門程序就是常說的木馬程序。簡單的說,這些木馬程序在入侵前是先通過某種手段在一台個人計算機中植入一個程序,打開某個(些)特定的埠,俗稱"後門"(BackDoor),使這台計算機變成一台開放性極高(用戶擁有極高許可權)的FTP伺服器,然後從後門就可以達到侵入的目的。
二、埠的分類
埠的分類根據其參考對象不同有不同劃分方法,如果從埠的性質來分,通常可以分為以下三類:
(1)公認埠(Well Known Ports):這類埠也常稱之為"常用埠"。這類埠的埠號從0到1024,它們緊密綁定於一些特定的服務。通常這些埠的通信明確表明了某種服務的協議,這種埠是不可再重新定義它的作用對象。例如:80埠實際上總是HTTP通信所使用的,而23號埠則是Telnet服務專用的。這些埠通常不會像木馬這樣的黑客程序利用。為了使大家對這些常用埠多一些認識,在本章後面將詳細把這些埠所對面應的服務進行列表,供各位理解和參考。
(2) 注冊埠(Registered Ports):埠號從1025到49151。它們鬆散地綁定於一些服務。也是說有許多服務綁定於這些埠,這些埠同樣用於許多其他目的。這些埠多數沒有明確的定義服務對象,不同程序可根據實際需要自己定義,如後面要介紹的遠程式控制制軟體和木馬程序中都會有這些埠的定義的。記住這些常見的程序埠在木馬程序的防護和查殺上是非常有必要的。常見木馬所使用的埠在後面將有詳細的列表。
(3) 動態和/或私有埠(Dynamic and/or Private Ports):埠號從49152到65535。理論上,不應把常用服務分配在這些埠上。實際上,有些較為特殊的程序,特別是一些木馬程序就非常喜歡用這些埠,因為這些埠常常不被引起注意,容易隱蔽。
如果根據所提供的服務方式的不同,埠又可分為"TCP協議埠"和"UDP協議埠"兩種。因為計算機之間相互通信一般採用這兩種通信協議。前面所介紹的"連接方式"是一種直接與接收方進行的連接,發送信息以後,可以確認信息是否到達,這種方式大多採用TCP協議;另一種是不是直接與接收方進行連接,只管把信息放在網上發出去,而不管信息是否到達,也就是前面所介紹的"無連接方式"。這種方式大多採用UDP協議,IP協議也是一種無連接方式。對應使用以上這兩種通信協議的服務所提供的埠,也就分為"TCP協議埠"和"UDP協議埠"。
使用TCP協議的常見埠主要有以下幾種:
(1) FTP:定義了文件傳輸協議,使用21埠。常說某某計算機開了FTP服務便是啟動了文件傳輸服務。下載文件,上傳主頁,都要用到FTP服務。
(2) Telnet:它是一種用於遠程登陸的埠,用戶可以以自己的身份遠程連接到計算機上,通過這種埠可以提供一種基於DOS模式下的通信服務。如以前的BBS是純字元界面的,支持BBS的伺服器將23埠打開,對外提供服務。
(3) SMTP:定義了簡單郵件傳送協議,現在很多郵件伺服器都用的是這個協議,用於發送郵件。如常見的免費郵件服務中用的就是這個郵件服務埠,所以在電子郵件設置中常看到有這么SMTP埠設置這個欄,伺服器開放的是25號埠。
(4) POP3:它是和SMTP對應,POP3用於接收郵件。通常情況下,POP3協議所用的是110埠。也是說,只要你有相應的使用POP3協議的程序(例如Foxmail或Outlook),就可以不以Web方式登陸進郵箱界面,直接用郵件程序就可以收到郵件(如是163郵箱就沒有必要先進入網易網站,再進入自己的郵箱來收信)。
使用UDP協議埠常見的有:
(1) HTTP:這是大家用得最多的協議,它就是常說的"超文本傳輸協議"。上網瀏覽網頁時,就得在提供網頁資源的計算機上打開80號埠以提供服務。常說"WWW服務"、"Web伺服器"用的就是這個埠。
(2) DNS:用於域名解析服務,這種服務在Windows NT系統中用得最多的。網際網路上的每一台計算機都有一個網路地址與之對應,這個地址是常說的IP地址,它以純數字+"."的形式表示。然而這卻不便記憶,於是出現了域名,訪問計算機的時候只需要知道域名,域名和IP地址之間的變換由DNS伺服器來完成。DNS用的是53號埠。
(3) SNMP:簡單網路管理協議,使用161號埠,是用來管理網路設備的。由於網路設備很多,無連接的服務就體現出其優勢。
(4) OICQ:OICQ程序既接受服務,又提供服務,這樣兩個聊天的人才是平等的。OICQ用的是無連接的協議,也是說它用的是UDP協議。OICQ伺服器是使用8000號埠,偵聽是否有信息到來,客戶端使用4000號埠,向外發送信息。如果上述兩個埠正在使用(有很多人同時和幾個好友聊天),就順序往上加。
在計算機的6萬多個埠,通常把埠號為1024以內的稱之為常用埠,這些常用埠所對應的服務通常情況下是固定的。表1所列的都是伺服器默認的埠,不允許改變,一般通信過程都主要用到這些埠。
表1
服務類型 默認埠 服務類型 默認埠
Echo 7 Daytime 13
FTP 21 Telnet 23
SMTP 25 Time 37
Whois 43 DNS 53
Gopher 70 Finger 79
WWW 80 POP3 110
NNTP 119 IRC 194
另外代理伺服器常用以下埠:
(1). HTTP協議代理伺服器常用埠號:80/8080/3128/8081/9080
(2). SOCKS代理協議伺服器常用埠號:1080
(3). FTP協議代理伺服器常用埠號:21
(4). Telnet協議代理伺服器常用埠:23
三、埠在黑客中的應用
像木馬之類的黑客程序,就是通過對埠的入侵來實現其目的的。在埠的利用上,黑客程序通常有兩種方式,那就是"埠偵聽"和"埠掃描"。
"埠偵聽"與"埠掃描"是黑客攻擊和防護中經常要用到的兩種埠技術,在黑客攻擊中利用它們可以准確地尋找攻擊的目標,獲取有用信息,在個人及網路防護方面通過這種埠技術的應用可以及時發現黑客的攻擊及一些安全漏洞。下面首先簡單介紹一下這兩種埠技術的異同。
"埠偵聽"是利用某種程序對目標計算機的埠進行監視,查看目標計算機上有哪能些埠是空閑、可以利用的。通過偵聽還可以捕獲別人有用的信息,這主要是用在黑客軟體中,但對於個人來說也是非常有用的,可以用偵聽程序來保護自己的計算機,在自己計算機的選定埠進行監視,這樣可以發現並攔截一些黑客的攻擊。也可以偵聽別人計算機的指定埠,看是否空閑,以便入侵。
"埠掃描"(port scanning)是通過連接到目標系統的TCP協議或UDP協議埠,來確定什麼服務正在運行,然後獲取相應的用戶信息。現在有許多人把"埠偵聽"與"埠掃描"混為一談,根本分不清什麼樣的情況下要用偵聽技術,什麼樣的情況下要用掃描技術。不過,現在的這類軟體也似乎對這兩種技術有點模糊了,有的乾脆把兩個功能都集成在一塊。
"埠偵聽"與"埠掃描"有相似之處,也有區別的地方,相似的地方是都可以對目標計算機進行監視,區別的地方是"埠偵聽"屬於一種被動的過程,等待別人的連接的出現,通過對方的連接才能偵聽到需要的信息。在個人應用中,如果在設置了當偵聽到有異常連接立即向用戶報告這個功能時,就可以有效地偵聽黑客的連接企圖,及時把駐留在本機上的木馬程序清除掉。這個偵聽程序一般是安裝在目標計算機上。用在黑客中的"埠偵聽"通常是黑客程序駐留在伺服器端等待伺服器端在進行正常活動時捕獲黑客需要的信息,然後通過UDP協議無連接方式發出去。而"埠掃描"則是一種主動過程,它是主動對目標計算機的選定埠進行掃描,實時地發現所選定埠的所有活動(特別是對一些網上活動)。掃描程序一般是安裝在客戶端,但是它與伺服器端的連接也主要是通過無連接方式的UDP協議連接進行。
在網路中,當信息進行傳播的時候,可以利用工具,將網路介面設置在偵聽的模式,便可將網路中正在傳播的信息截獲或者捕獲到,從而進行攻擊。埠偵聽在網路中的任何一個位置模式下都可實施進行,而黑客一般都是利用埠偵聽來截取用戶口令。
四、埠偵聽原理
乙太網(Ethernet)協議的工作方式是將要發送的數據包發往連接在一起的所有計算機。在包頭中包括有應該接收數據包的計算機的正確地址,因為只有與數據包中目標地址一致的那台計算機才能接收到信息包。但是當計算機工作在偵聽模式下,不管數據包中的目標物理地址是什麼,計算機都將可以接收到。當同一網路中的兩台計算機通信的時候,源計算機將寫有目的計算機地址的數據包直接發向目的計算機,或者當網路中的一台計算機同外界的計算機通信時,源計算機將寫有目的計算機IP地址的數據包發向網關。但這種數據包並不能在協議棧的高層直接發送出去,要發送的數據包必須從TCP/IP協議的IP協議層交給網路介面--數據鏈路層。網路介面不會識別IP地址的,在網路介面中,由IP協議層來的帶有IP地址的數據包又增加了一部分乙太網的幀頭信息。在幀頭中,有兩個域分別為只有網路介面才能識別的源計算機和目的計算機的物理地址,這是一個48位的地址,這個48位的地址是與IP地址相對應的。換句話說,一個IP地址也會對應一個物理地址。對於作為網關的計算機,由於它連接了多個網路,它也就同時具備有很多個IP地址,在每個網路中它都有一個。而發向網路外的幀中繼攜帶的是網關的物理地址。
乙太網中填寫了物理地址的幀從網路埠中(或者從網關埠中)發送出去,傳送到物理的線路上。如果區域網是由一條粗同軸電纜或細同軸電纜連接成的,那麼數字信號在電纜上傳輸信號就能夠到達線路上的每一台計算機。再當使用集線器的時候,發送出去的信號到達集線器,由集線器再發向連接在集線器上的每一條線路。這樣在物理線路上傳輸的數字信號也就能到達連接在集線器上的每個計算機了。當數字信號到達一台計算機的網路介面時,正常狀態下網路介面對讀入數據幀進行檢查,如數據幀中攜帶的物理地址是自己的或者物理地址是廣播地址,那麼就會將數據幀交給IP協議層軟體。對於每個到達網路介面的數據幀都要進行這個過程的。但是當計算機工作在偵聽模式下,所有的數據幀都將被交給上層協議軟體處理。
當連接在同一條電纜或集線器上的計算機被邏輯地分為幾個子網的時候,那麼要是有一台計算機處於偵聽模式,它可以接收到發向與自己不在同一個子網(使用了不同的掩碼、IP地址和網關)的計算機的數據包,在同一個物理信道上傳輸的所有信息都可以被接收到。
在UNIX系統上,當擁有超級許可權的用戶要想使自己所控制的計算機進入偵聽模式,只需要向Interface(網路介面)發送I/O控制命令,就可以使計算機設置成偵聽模式了。而在Windows 9x的系統中則不論用戶是否有許可權都將可以通過直接運行偵聽工具就可以實現。
在埠處於偵聽時,常常要保存大量的信息(也包含很多的垃圾信息),並將對收集的信息進行大量的整理,這樣就會使正在偵聽的計算機對其他用戶的請求響應變的很慢。同時偵聽程序在運行的時候需要消耗大量的處理器時間,如果在這時就詳細的分析包中的內容,許多包就會來不及接收而被漏走。所以偵聽程序很多時候就會將偵聽得到的包存放在文件中等待以後分析。分析偵聽到的數據包是很頭疼的事情,因為網路中的數據包都非常之復雜。兩台計算機之間連續發送和接收數據包,在偵聽到的結果中必然會加一些別的計算機交互的數據包。偵聽程序將同一TCP協議會話的包整理到一起就相當不容易,如果還期望將用戶詳細信息整理出來就需要根據協議對包進行大量的分析。
現在網路中所使用的協議都是較早前設計的,許多協議的實現都是基於一種非常友好的,通信的雙方充分信任的基礎。在通常的網路環境之下,用戶的信息包括口令都是以明文的方式在網上傳輸的,因此進行埠偵聽從而獲得用戶信息並不是一件難點事情,只要掌握有初步的TCP/IP協議知識就可以輕松的偵聽到想要的信息的。
五、埠掃描原理
"埠掃描"通常指用同一信息對目標計算機的所有所需掃描的埠進行發送,然後根據返回埠狀態來分析目標計算機的埠是否打開、是否可用。"埠掃描"行為的一個重要特徵是:在短時期內有很多來自相同的信源地址傳向不同的目的地埠的包。
對於用埠掃描進行攻擊的人來說,攻擊者總是可以做到在獲得掃描結果的同時,使自己很難被發現或者說很難被逆向跟蹤。為了隱藏攻擊,攻擊者可以慢慢地進行掃描。除非目標系統通常閑著(這樣對一個沒有listen埠的數據包都會引起管理員的注意),有很大時間間隔的埠掃描是很難被識別的。隱藏源地址的方法是發送大量的欺騙性的埠掃描包(1000個),其中只有一個是從真正的源地址來的。這樣,即使全部包(1000)都被察覺,被記錄下來,也沒有人知道哪個是真正的信源地址。能發現的僅僅是"曾經被掃描過"。也正因為這樣那些黑客們才樂此不彼地繼續大量使用這種埠掃描技術來達到他們獲取目標計算機信息、並進行惡意攻擊。
通常進行埠掃描的工具目前主要採用的是埠掃描軟體,也通稱之為"埠掃描器",埠掃描可以為提供三個用途:
(1)識別目標系統上正在運行的TCP協議和UDP協議服務。
(2)識別目標系統的操作系統類型(Windows 9x, Windows NT,或UNIX,等)。
(3)識別某個應用程序或某個特定服務的版本號。
埠掃描器是一種自動檢測遠程或本地計算機安全性弱點的程序,通過使用掃描器你可不留痕跡的發現遠程伺服器的各種TCP協議埠的分配及提供的服務,還可以得知它們所使用的軟體版本!這就能讓間接的了解到遠程計算機所存在的安全問題。
埠掃描器通過選用遠程TCP/IP協議不同的埠的服務,記錄目標計算機埠給予的回答的方法,可以搜集到很多關於目標計算機的各種有用信息(比如:是否有埠在偵聽?是否允許匿名登陸?是否有可寫的FTP目錄,是否能用TELNET等。
埠掃描器並不是一個直接攻擊網路漏洞的程序,它僅僅能幫助發現目標機的某些內在的弱點。一個好的掃描器還能對它得到的數據進行分析,幫助查找目標計算機的漏洞。但它不會提供一個系統的詳細步驟。
埠掃描器在掃描過程中主要具有以下三個方面的能力:
(1) 發現一個計算機或網路的能力;
(2) 一旦發現一台計算機,就有發現目標計算機正在運行什麼服務的能力;
(3) 通過測試目標計算機上的這些服務,發現存在的漏洞的能力。
編寫掃描器程序必須要很多TCP/IP協議程序編寫和C,Perl和或SHELL語言的知識。需要一些Socket編程的背景,一種在開發客戶/服務應用程序的方法。
㈢ 計算機網路體系結構的ISO/OSI網路體系結構
國際標准化組織ISO(International Standards Organization)在80年代提出的開放系統互聯參考模型OSI(Open System Interconnection),這個模型將計算機網路通信協議分為七層。這個模型是一個定義異構計算機連接標準的框架結構,其具有如下特點:
①網路中異構的每個節點均有相同的層次,相同層次具有相同的功能。
②同一節點內相鄰層次之間通過介面通信。
③相鄰層次間介面定義原語操作,由低層向高層提供服務。
④不同節點的相同層次之間的通信由該層次的協議管理,
⑤每層次完成對該層所定義的功能,修改本層次功能不影響其它層、
⑥僅在最低層進行直接數據傳送。
⑦定義的是抽象結構,並非具體實現的描述。
在OSI網路體系結構中、除了物理層之外,網路中數據的實際傳輸方向是垂直的。數據由用戶發送進程發送給應用層,向下經表示層、會話層等到達物理層,再經傳輸媒體傳到接收端,由接收端物理層接收,向上經數據鏈路層等到達應用層,再由用戶獲取。數據在由發送進程交給應用層時,由應用層加上該層有關控制和識別信息,再向下傳送,這一過程一直重復到物理層。在接收端信息向上傳遞時,各層的有關控制和識別信息被逐層剝去,最後數據送到接收進程。
現在一般在制定網路協議和標准時,都把ISO/OSI參考模型作為參照基準,並說明與該參照基準的對應關系。例如,在IEEE802區域網LAN標准中,只定義了物理層和數據鏈路層,並且增強了數據鏈路層的功能。在廣域網WAN協議中,CCITT的X.25建議包含了物理層、數據鏈路層和網路層等三層協議。一般來說,網路的低層協議決定了一個網路系統的傳輸特性,例如所採用的傳輸介質、拓撲結構及介質訪問控制方法等,這些通常由硬體來實現;網路的高層協議則提供了與網路硬體結構無關的,更加完善的網路服務和應用環境,這些通常是由網路操作系統來實現的。 物理層建立在物理通信介質的基礎上,作為系統和通信介質的介面,用來實現數據鏈路實體間透明的比特 (bit) 流傳輸。只有該層為真實物理通信,其它各層為虛擬通信。物理層實際上是設備之間的物理介面,物理層傳輸協議主要用於控制傳輸媒體。
(1)物理層的特性
物理層提供與通信介質的連接,提供為建立、維護和釋放物理鏈路所需的機械的、電氣的、功能的和規程的特性,提供在物理鏈路上傳輸非結構的位流以及故障檢測指示。物理層向上層提供位 (bit) 信息的正確傳送。
其中機械特性主要規定介面連接器的尺寸、芯數和芯的位置的安排、連線的根數等。電氣特性主要規定了每種信號的電平、信號的脈沖寬度、允許的數據傳輸速率和最大傳輸距離。功能特性規定了介面電路引腳的功能和作用。規程特性規定了介面電路信號發出的時序、應答關系和操作過程,例如,怎樣建立和拆除物理層連接,是全雙工還是半雙工等。
(2)物理層功能
為了實現數據鏈路實體之間比特流的透明傳輸,物理層應具有下述功能:
①物理連接的建立與拆除
當數據鏈路層請求在兩個數據鏈路實體之間建立物理連接時,物理層能夠立即為它們建立相應的物理連接。若兩個數據鏈路實體之間要經過若干中繼數據鏈路實體時,物理層還能夠對這些中繼數據鏈路實體進行互聯,以建立起一條有效的物理連接。當物理連接不再需要時,由物理層立即拆除。
②物理服務數據單元傳輸
物理層既可以採取同步傳輸方式,也可以採取非同步傳輸方式來傳輸物理服務數據單元。
③物理層管理
對物理層收發進行管理,如功能的激活 (何時發送和接收、異常情況處理等)、差錯控制 (傳輸中出現的奇偶錯和格式錯)等。 數據鏈路層為網路層相鄰實體間提供傳送數據的功能和過程;提供數據流鏈路控制;檢測和校正物理鏈路的差錯。物理層不考慮位流傳輸的結構,而數據鏈路層主要職責是控制相鄰系統之間的物理鏈路,傳送數據以幀為單位,規定字元編碼、信息格式,約定接收和發送過程,在一幀數據開頭和結尾附加特殊二進制編碼作為幀界識別符,以及發送端處理接收端送回的確認幀,保證數據幀傳輸和接收的正確性,以及發送和接收速度的匹配,流量控制等。
(1)數據鏈路層的目的
提供建立、維持和釋放數據鏈路連接以及傳輸數據鏈路服務數據單元所需的功能和過程的手段。數據鏈路連接是建立在物理連接基礎上的,在物理連接建立以後,進行數據鏈路連接的建立和數據鏈路連接的拆除。具體說,每次通信前後,雙方相互聯系以確認一次通信的開始和結束,在一次物理連接上可以進行多次通信。數據鏈路層檢測和校正在物理層出現的錯誤。
(2)數據鏈路層的功能和服務
數據鏈路層的主要功能是為網路層提供連接服務,並在數據鏈路連接上傳送數據鏈路協議數據單元L-PDU,一般將L-PDU稱為幀。數據鏈路層服務可分為以下三種:
①無應答、無連接服務。發送前不必建立數據鏈路連接,接收方也不做應答,出錯和數據丟失時也不做處理。這種服務質量低,適用於線路誤碼率很低以及傳送實時性要求高的 (例如語音類的)信息等。
②有應答、無連接服務。當發送主機的數據鏈路層要發送數據時,直接發送數據幀。目標主機接收數據鏈路的數據幀,並經校驗結果正確後,向源主機數據鏈路層返回應答幀;否則返回否定幀,發送端可以重發原數據幀。這種方式發送的第一個數據幀除傳送數據外,也起數據鏈路連接的作用。這種服務適用於一個節點的物理鏈路多或通信量小的情況,其實現和控制都較為簡單。
③面向連接的服務。該服務一次數據傳送分為三個階段:數據鏈路建立,數據幀傳送和數據鏈路的拆除。數據鏈路建立階段要求雙方的數據鏈路層作好傳送的准備;數據傳送階段是將網路層遞交的數據傳送到對方;數據鏈路拆除階段是當數據傳送結束時,拆除數據鏈路連接。這種服務的質量好,是ISO/OSI參考模型推薦的主要服務方式。
(3)數據鏈路數據單元
數據鏈路層與網路層交換數據格式為服務數據單元。數據鏈路服務數據單元,配上數據鏈路協議控制信息,形成數據鏈路協議數據單元。
數據鏈路層能夠從物理連接上傳輸的比特流中,識別出數據鏈路服務數據單元的開始和結束,以及識別出其中的每個欄位,實現正確的接收和控制。能按發送的順序傳輸到相鄰結點。
(4)數據鏈路層協議
數據鏈路層協議可分為面向字元的通信規程和面向比特的通信規程。
面向字元的通信規程是利用控制字元控制報文的傳輸。報文由報頭和正文兩部分組成。報頭用於傳輸控制,包括報文名稱、源地址、目標地址、發送日期以及標識報文開始和結束的控制字元。正文則為報文的具體內容。目標節點對收到的源節點發來的報文,進行檢查,若正確,則向源節點發送確認的字元信息;否則發送接收錯誤的字元信息。
面向比特的通信規程典型是以幀為傳送信息的單位,幀分為控制幀和信息幀。在信息幀的數據欄位 (即正文)中,數據為比特流。比特流用幀標志來劃分幀邊界,幀標志也可用作同步字元。 廣域網路一般都劃分為通信子網和資源子網,物理層、數據鏈路層和網路層組成通信子網,網路層是通信子網的最高層,完成對通信子網的運行控制。網路層和傳輸層的界面,既是層間的介面,又是通信子網和用戶主機組成的資源子網的界限,網路層利用本層和數據鏈路層、物理層兩層的功能向傳輸層提供服務。
數據鏈路層的任務是在相鄰兩個節點間實現透明的無差錯的幀級信息的傳送,而網路層則要在通信子網內把報文分組從源節點傳送到目標節點。在網路層的支持下,兩個終端系統的傳輸實體之間要進行通信,只需把要交換的數據交給它們的網路層便可實現。至於網路層如何利用數據鏈路層的資源來提供網路連接,對傳輸層是透明的。
網路層控制分組傳送操作,即路由選擇,擁塞控制、網路互連等功能,根據傳輸層的要求來選擇服務質量,向傳輸層報告未恢復的差錯。網路層傳輸的信息以報文分組為單位,它將來自源的報文轉換成包文,並經路徑選擇演算法確定路徑送往目的地。網路層協議用於實現這種傳送中涉及的中繼節點路由選擇、子網內的信息流量控制以及差錯處理等。
(1)網路層功能
網路層的主要功能是支持網路層的連接。網路層的具體功能如下:
①建立和拆除網路連接
在數據鏈路層提供的數據鏈路連接的基礎上,建立傳輸實體間或者若干個通信子網的網路連接。互連的子網可採用不同的子網協議。
②路徑選擇、中繼和多路復用
網際的路徑和中繼不同與網內的路徑和和中繼,網路層可以在傳輸實體的兩個網路地址之間選擇一條適當的路徑,或者在互連的子網之間選擇一條適當的路徑和中繼。並提供網路連接多路復用的數據鏈路連接,以提高數據鏈路連接的利用率。
③分組、組塊和流量控制
數據分組是指將較長的數據單元分割為一些相對較小的數據單元;數據組塊是指將一些相對較小的數據單元組成塊後一起傳輸。用以實現網路服務數據單元的有序傳輸,以及對網路連接上傳輸的網路服務數據單元進行有效的流量控制,以免發生信息堵塞現象。
④差錯的檢測與恢復
利用數據鏈路層的差錯報告,以及其他的差錯檢測能力來檢測經網路連接所傳輸的數據單元,檢測是否出現異常情況。並可以從出錯狀態中解脫出來。
(2)數據報和虛電路
網路層中提供兩種類型的網路服務,即無連接服務和面向連接的服務。它們又被稱為數據報服務和虛電路服務。
①數據報 (Datagram)服務
在數據報方式,網路層從傳輸層接受報文,拆分為報文分組,並且獨立地傳送,因此數據報格式中包含有源和目標節點的完整網路地址、服務要求和標識符。發送時,由於數據報每經過一個中繼節點時,都要根據當時情況按照一定的演算法為其選擇一條最佳的傳輸路徑,因此,數據報服務不能保證這些數據報按序到達目標節點,需要在接收節點根據標識符重新排序。
數據報方式對故障的適應性強,若某條鏈路發生故障,則數據報服務可以繞過這些故障路徑而另選擇其他路徑,把數據報傳送至目標節點。數據報方式易於平衡網路流量,因為中繼節點可為數據報選擇一條流量較少的路由,從而避開流量較高的路由。數據報傳輸不需建立連接,目標節點在收到數據報後,也不需發送確認,因而是一種開銷較小的通信方式。但是發方不能確切地知道對方是否准備好接收、是否正在忙碌,故數據報服務的可靠性不是很高。而且數據報發送每次都附加源和目標主機的全網名稱降低了信道利用率。
②虛電路 (Virtue Circuit) 服務
在虛電路傳輸方式下,在源主機與目標主機通信之前,必須為分組傳輸建立一條邏輯通道,稱為虛電路。為此,源節點先發送請求分組Call-Request,Call-Request包含了源和目標主機的完整網路地址。Call-Request途徑每一個通信網路節點時,都要記下為該分組分配的虛電路號,並且路由器為它選擇一條最佳傳輸路由發往下一個通信網路節點。當請求分組到達目標主機後,若它同意與源主機通信,沿著該虛電路的相反方向發送請求分組Call-Request給源節點,當在網路層為雙方建立起一條虛電路後,每個分組中不必再填上源和目標主機的全網地址,而只需標上虛電路號,即可以沿著固定的路由傳輸數據。當通信結束時,將該虛電路拆除。
虛電路服務能保證主機所發出的報文分組按序到達。由於在通信前雙方已進行過聯系,每發送完一定數量的分組後,對方也都給予了確認,故可靠性較高。
③路由選擇
網路層的主要功能是將分組從源節點經過選定的路由送到目標節點,分組途經多個通信網路節點造成多次轉發,存在路由選擇問題。路由選擇或稱路徑控制,是指網路中的節點根據通信網路的情況 (可用的數據鏈路、各條鏈路中的信息流量),按照一定的策略 (傳輸時間最短、傳輸路徑最短等)選擇一條可用的傳輸路由,把信息發往目標節點。
網路路由選擇演算法是網路層軟體的一部分,負責確定所收到的分組應傳送的路由。當網路內部採用無連接的數據報方式時,每傳送一個分組都要選擇一次路由。當網路層採用虛電路方式時,在建立呼叫連接時,選擇一次路徑,後繼的數據分組就沿著建立的虛電路路徑傳送,路徑選擇的頻度較低。
路由選擇演算法可分為靜態演算法和動態演算法。靜態路由演算法是指總是按照某種固定的規則來選擇路由,例如,擴散法、固定路由選擇法、隨機路由選擇法和流量控制選擇法。動態路由演算法是指根據拓撲結構以及通信量的變化來改變路由,例如,孤立路由選擇法、集中路由選擇法、分布路由選擇法、層次路由選擇法等 從傳輸層向上的會話層、表示層、應用層都屬於端一端的主機協議層。傳輸層是網路體系結構中最核心的一層,傳輸層將實際使用的通信子網與高層應用分開。從這層開始,各層通信全部是在源與目標主機上的各進程間進行的,通信雙方可能經過多個中間節點。傳輸層為源主機和目標主機之間提供性能可靠、價格合理的數據傳輸。具體實現上是在網路層的基礎上再增添一層軟體,使之能屏蔽掉各類通信子網的差異,向用戶提供一個通用介面,使用戶進程通過該介面,方便地使用網路資源並進行通信。
(1) 傳輸層功能
傳輸層獨立於所使用的物理網路,提供傳輸服務的建立、維護和連接拆除的功能;選擇網路層提供的最適合的服務。傳輸層接收會話層的數據,分成較小的信息單位,再送到網路層,實現兩傳輸層間數據的無差錯透明傳送。
傳輸層可以使源與目標主機之間以點對點的方式簡單地連接起來。真正實現端一端間可靠通信。傳輸層服務是通過服務原語提供給傳輸層用戶(可以是應用進程或者會話層協議),傳輸層用戶使用傳輸層服務是通過傳送服務埠TSAP實現的。當一個傳輸層用戶希望與遠端用戶建立連接時,通常定義傳輸服務訪問點TSAP。提供服務的進程在本機TSAP埠等待傳輸連接請求,當某一節點機的應用程序請求該服務時,向提供服務的節點機的TSAP埠發出傳輸連接請求,並表明自己的埠和網路地址。如果提供服務的進程同意,就向請求服務的節點機發確認連接,並對請求該服務的應用程序傳遞消息,應用程序收到消息後,釋放傳輸連接。
傳輸層提供面向連接和無連接兩種類型的服務。這兩種類型的服務和網路層的服務非常相似。傳輸層提供這兩種類型服務的原因是因為,用戶不能對通信子網加以控制,無法通過使用通信處理機來改善服務質量。傳輸層提供比網路層更可靠的端一端間數據傳輸,更完善的查錯糾錯功能。傳輸層之上的會話層、表示層、應用層都不包含任何數據傳送的功能。
(2)傳輸層協議類型
傳輸層協議和網路層提供的服務有關。網路層提供的服務於越完善,傳輸層協議就越簡單,網路層提供的服務越簡單,傳輸層協議就越復雜。傳輸層服務可分成五類:
0類:提供最簡單形式的傳送連接,提供數據流控制。
1類:提供最小開銷的基本傳輸連接,提供誤差恢復。
2類:提供多路復用,允許幾個傳輸連接多路復用一條鏈路。
3類:具有0類和1類的功能,提供重新同步和重建傳輸連接的功能。
4類:用於不可靠傳輸層連接,提供誤差檢測和恢復。
基本協議機制包括建立連接、數據傳送和拆除連接。傳輸連接涉及四種不同類型的標識:
用戶標識:即服務訪問點SAP,允許實體多路數據傳輸到多個用戶。
網路地址:標識傳輸層實體所在的站。
協議標識:當有多個不同類型的傳輸協議的實體,對網路服務標識出不同類型的協議。
連接標識:標識傳送實體,允許傳輸連接多路復用。 會話是指兩個用戶進程之間的一次完整通信。會話層提供不同系統間兩個進程建立、維護和結束會話連接的功能;提供交叉會話的管理功能,有一路交叉、兩路交叉和兩路同時會話的3種數據流方向控制模式。會話層是用戶連接到網路的介面。
(1)會話層的主要功能
會話層的目的是提供一個面向應用的連接服務。建立連接時,將會話地址映射為傳輸地址。會話連接和傳輸連接有三種對應關系,一個會話連接對應一個傳輸連接;多個會話連接建立在一個傳輸連接上;一個會話連接對應多個傳輸連接。
數據傳送時,可以進行會話的常規數據、加速數據、特權數據和能力數據的傳送。
會話釋放時,允許正常情況下的有序釋放;異常情況下由用戶發起的異常釋放和服務提供者發起的異常釋放。
(2)會話活動
會話服務用戶之間的交互對話可以劃分為不同的邏輯單元,每個邏輯單元稱為活動。每個活動完全獨立於它前後的其他活動,且每個邏輯單元的所有通信不允許分隔開。
會話活動由會話令牌來控制,保證會話有序進行。會話令牌分為四種,數據令牌、釋放令牌、次同步令牌和主同步令牌。令牌是互斥使用會話服務的手段。
會話用戶進程間的數據通信一般採用互動式的半雙工通信方式。由會話層給會話服務用戶提供數據令牌來控制常規數據的傳送,有數據令牌的會話服務用戶才可發送數據,另一方只能接收數據。當數據發完之後,就將數據令牌轉讓給對方,對方也可請求令牌。
(3)會話同步
在會話服務用戶組織的一個活動中,有時要傳送大量的信息,如將一個文件連續發送給對方,為了提高數據發送的效率,會話服務提供者允許會話用戶在傳送的數據中設置同步點。一個主同步點表示前一個對話單元的結束及下一個對話單元的開始。在一個對話單元內部或者說兩個主同步點之間可以設置次同步點,用於會話單元數據的結構化。當會話用戶持有數據令牌、次同步令牌和主同步令牌時就可在發送數據流中用相應的服務原語設置次同步點和主同步點。
一旦出現高層軟體錯誤或不符合協議的事件則發生會話中斷,這時會話實體可以從中斷處返回到一個已知的同步點繼續傳送,而不必從文件的開頭恢復會話。會話層定義了重傳功能,重傳是指在已正確應答對方後,在後期處理中發現出錯而請求的重傳,又稱為再同步。為了使發送端用戶能夠重傳,必須保存數據緩沖區中已發送的信息數據,將重新同步的范圍限制在一個對話單元之內,一般返回到前一個次同步點,最多返回到最近一個主同步點。 應用層作為用戶訪問網路的介面層,給應用進程提供了訪問OSI環境的手段。
應用進程藉助於應用實體 (AE)、實用協議和表示服務來交換信息,應用層的作用是在實現應用進程相互通信的同時,完成一系列業務處理所需的服務功能。當然這些服務功能與所處理的業務有關。
應用進程使用OSI定義和通信功能,這些通信功能是通過OSI參考模型各層實體來實現的。應用實體是應用進程利用OSI通信功能的唯一窗口。它按照應用實體間約定的通信協議 (應用協議),傳送應用進程的要求,並按照應用實體的要求在系統間傳送應用協議控制信息,有些功能可由表示層和表示層以下各層實現。
應用實體由一個用戶元素和一組應用服務元素組成。用戶元素是應用進程在應用實體內部,為完成其通信目的,需要使用的那些應用服務元素的處理單元。實際上,用戶元素向應用進程提供多種形式的應用服務調用,而每個用戶元素實現一種特定的應用服務使用方式。用戶元素屏蔽應用的多樣性和應用服務使用方式的多樣性,簡化了應用服務的實現。應用進程完全獨立於OSI環境,它通過用戶元素使用OSI服務。
應用服務元素可分為兩類,公共應用服務元素 (CASE)和特定應用服務元素 (SASE)。公共應用服務元素是用戶元素和特定應用服務元素公共使用的部分,提供通用的最基本的服務,它使不同系統的進程相互聯系並有效通信。它包括聯系控制元素、可靠傳輸服務元素、遠程操作服務元素等;特定應用服務元素提供滿足特定應用的服務。包括虛擬終端、文件傳輸和管理、遠程資料庫訪問、作業傳送等。對於應用進程和公共應用服務元素來說,用戶元素具有發送和接收能力。對特定服務元素來說,用戶元素是請求的發送者,也是響應的最終接收者。