網絡對于單機系統有著明顯的優勢,使得應用軟件的計算環境從單機向網絡不斷的發展,產生了兩層Cfient/Server、三層Client/Server等兩種新型的計算模式,并迅速成為當前主流的應用。現代的應用也不再停留于計算能力有限且資源不能共享的單機式的應用,更多的是分布式的網絡集成應用,其主要特點是具有良好的可擴展性與資源可共享性。而這種分布式的網絡集成應用需要大規模的可靠的服務器作為后臺支撐。網絡服務器的本質是一種高性能的計算機,但其作為網中的關鍵節點,存儲并處理著網絡上80%的數據與信息。
我們與外界日常的生活、工作中的電話交流,必須經過交換機才能與目標通話。同樣,網絡中的終端設備如家庭或企業中的計算機獲取資訊,與外界交流溝通等,也必須經過服務器,因此可以說是網絡服務器在組織和領導著網絡中的設備。
1、網絡服務器的概念及分類
1.1 網絡服務器概念
網絡需要管理和開展服務,這就需要特定的主機在網絡上承擔相應的任務。管理和承擔服務的主機就叫做服務器。同樣,網絡需要通過軟件來完成相應的通信與信息處理任務。但是網絡服務器與主機不同,主機是通過終端給用戶使用的,而服務器是通過網絡給客戶端用戶使用的。
1.2 網絡服務器類型分析
在基于服務器的網絡中,服務器是網絡中的主要設備,主要是用來管理網絡系統中共享的資源,包括大容量磁盤,數據文件與高速打印機等。網絡服務器可以位于網絡中的任意節點,尤其是在局域網中,網絡中的每個節點都是相互平等的,因此可以使用網絡中的任一臺機器作為服務器。在實際的網絡搭建中,往往將核心設備服務器放在中心機房,由專業人員進行專門管理與維護。
服務器的分類可以有很多種,根據不通的標準可以有不同的劃分,其中根據應用層次的規模可以劃分為以下幾種:(1)入門級別服務器:屬于最低檔的服務器,其主要用在辦公室的文件與打印服務中。(2)工作組級別服務器:適于規模較小的網絡,主要用于為中小企業提供Web與郵件等服務。(3)部門級別服務器:屬于中檔服務器,適合中型企業的數據中心、web網站等應用。(4)企業級別服務器:屬于高檔服務器,具有超強的數據處理能力,可作為大型網絡數據庫服務器。根據結構又可劃分為以下幾種:(1)臺式服務器:這是最傳統的結構,臺式服務器具有較好的擴展性。(2)機架式服務器:機架式服務器要安裝在l9英寸機柜里面,根據高度一般有lU、2U、4U和6U等尺寸規格 (3)刀片式服務器:是一種高密度、高可用的服務器平臺,成本低,該服務器設計主要為特殊應用行業與高密度計算機環境服務。(4)機柜式服務器:它飛的機箱是機柜式的,需要在服務器中安裝很多的模塊式組件。
按服務器的處理器架構劃分又可把服務器分為復指令架構服務器、精簡指令架構服務器和超長指令架構服務器三種。
網絡服務器的類型有文件服務器,打印服務器和應用服務器。
(1)文件服務器
文件服務器是專們用來為網絡工作站提供數據文件與程序的。專用的文件服務器并不直接提供可直接運行的應用程序與數據處理的能力給工作站(又稱為節點),而是將服務器中共享的應用程序與數據復制到工作站,交由工作站上的處理器進行處理。一臺普通的計算機即可作為文件服務器,但使用專用服務器作為文件服務器的傳輸性能將更好。互聯網中能夠提供文件傳輸的就是一種服務器 。
(2)打印服務器
該類服務器主要用于打印服務控制。打印服務器管理著網絡中的打印請求,例如把接收到的打印請求存儲到打印隊列,待打印機空閑時將隊列中的打印請求發送到網絡打印機上進行打印。局域網中可以沒有打印服務器,只需要將打印請求輸出到帶有打印機的工作站上進行處理即可。但對于打印任務較繁重的網絡,一般要專門設置打印服務器用于打印服務器的控制,這樣可以提高網絡打印的整體效率。
(3)應用服務器
應用服務器的主要任務是協助工作站運行相關應用程序并將運行結果發送到相應的工作站。在基于C/S架構的網絡中,應用服務器模式下,工作站就是一臺應用服務器的遠程終端,控制著網絡中的計算機。由于程序只在服務器端運行,客戶端只負責發送請求與接收響應請求,因此,客戶端機器只需要最基本的配置 這在擁有數目,眾多的客戶機的網絡中,可以大大減少網絡運行成本與負載。在網絡中,遠程登錄服務器即是一種應用型的服務器。應用服務器可以有很多種類,因特網中的瀏覽器與電子郵件的通信等都需要通過建立相關的服務器作為后臺支撐,這類服務器就是應用服務器 。
1.3 基本網絡服務器分類
服務器可以使循環的,也可以是并發的,可以使用面向連接的或是無連接的傳輸。因此,服務器可以劃分以下四種一般的類型:循環面向連接、循環無連接、并發面向連接、并發無連接。
(1)循環無連接服務器
循環無連接服務器是最常見的無連接服務器的形式,主要應用于要求對每個請求都進行簡單處理的服務。循環無連接的服務器是無狀態的,易于理解且不易出錯。
(2)循環面向連接的服務器
這也是一種相對比較常見的服務器形式,主要使用于需要可靠傳輸,且要求對每個請求都進行簡單處理的服務。由于創建與終止連接需要很大的開銷,因此該類服務器響應時間相對較長。
(3)并發無連接服務器
并發無連接服務器并不常見,服務器需要為每個請求任務創建多個進程或線程。因此系統并發所獲得的效率是由所創建的進程或者線程的開銷決定的。為了證明并發性是可行的,一種方法是創建一個新的進程或線程,且要求時間必須小于計算響應所需要的時間,另一種方法是并發的請求能夠同時使用多個輸入輸出設備。
(4)并發面向連接的服務器
最普通的服務器形式,它不僅提供可靠地傳輸,還有并發處理多個請求的能力。服務有兩個基本的實現方式,一種是使用并發線程或并發進程處理每一個連接,另一種是依靠單線程與異步I/O進行多個連接的處理。
2、網絡服務器工作原理及應用范圍比較
2.1 循環服務器的工作原理
循環服務器在一個時刻只能處理一個請求,服務的原型可以描述成以下形式:
while(1)
{
new_fd= 服務器接受客戶端的連接(new fd= accept(1isnfd,XX,XX));
進行邏輯處理;
在new_fd上向客戶端發送消息;
Close new_ fd;
}
此進程是逐個處理每個客戶端發送到服務器端的連接的,若一個客戶端發來一個連接請求,只要該連接還沒有完成響應的任務,該連接就會一直占用服務器的進程,直至任務處理完畢后服務器才會關閉掉這個連接。
2.2 并發服務器的工作原理
并發服務器與循環服務器不同,它需要能在一定的時間內為多個客戶端提供服務。例如,一個聊天服務器可能會為一個特定的客戶端服務多個小時,在停止該客戶端服務之前服務器是不能等待的,除非它是在下一個客戶端請求到來之前的間隙時才可以等待。
服務器將提供的服務從守護進程移至自己的進程。由于每一個子進程都可以繼承所有打開的文件,新進程不僅需要繼承父進程套接字,還要繼承頂級套接字。“accept()返回的句柄”是指調用accept函數返回的套接字,頂級套接字是指頂級進程初始打開時的套接字。
然而當服務進程不需要這個套接字時就需要關閉它。守護進程也不再需要程序返回的套接字,也要關閉掉它。否則,文件描述符將因此被耗盡。在服務進程完成任務后,服務器將會關閉accept()返回的套接字socket,最后退出進程。
在UNIX上,進程的退出并不是真正的退出,而是返回到父進程。在特殊情況下,父進程會等待子進程,并獲得返回值。但守護進程不是簡單的等待或者停止,這樣不符合創建進程的目的。但若不使用等待,子進程就有可能成為“僵尸”,一直徘徊著而不再有任何作用。
基于上述原因,守護進程需要在初始化階段時就進行信號處理的設置。信號SIGCHLD被設置后,守護進程就可以從系統中清除假死進程的返回值所占用的資源。這也是處理流程圖中會包含一個進程信號設置過程的原因,它并不與其他過程有聯系。此外,很多服務器程序也會處理SIGHUP,將該信號作為超級用戶發出的要求配置文件重讀的信號。因此服務器不需要重啟或終止就能進行信號參數的設置。
2.3 類型比較
循環服務器每次處理時間短,但性能不高。并發服務器開銷少,共享存儲器,同時可以監控。但增加了編程的復雜性,必須使用同步機制協調線程對全局變量以及一些庫程序的訪問,還要注意相關可能影響整個進程的系統函數的調用。
另外一種將循環與并發流程結合的服務器性能不錯,但結構通常比單純的并發服務器更復雜。
3、循環與并發服務器算法流程及實例分析
3.1 循環服務器的算法流程
面向連接的循環服務器算法流程:(1)創建套接字并將其綁定到服務器端所提供服務的熟知端口上;(2)設置端口為被動模式,已備為服務器所用;(3)從該套接字中接收下一個服務請求,并獲得新連接的套接字;(4)重復接收客戶端的請求,根據請求內容,按照應用協議向客戶端發出響應;(5)當一個客戶端完成請求并完全接收響應后,須關閉連接并返回步驟3以接受新的請求連接。無連接的循環服務器算法流程:(1)創建套接字并將其綁定到服務器端所提供服務的熟知端口上;(2)重復接收客戶端的請求,根據請求內容,按照應用協議向客戶端發出響應,循環服務器的工作流程如圖1所示:
圖1 循環服務器流程
3.2 并發服務器的并發流程算法流程
(1)面向連接的比并發服務器
主l、創建套接字并將其綁定到服務器端所提供服務的熟知端口上。保持該套接字為面向連接;主2、設置端口為被動模式;主3、反復調用accept過程用來接收來自客戶端的下一個連接請求,同時創建新的進程或線程以便處理服務器響應,從l、由主線程傳遞來的連接請求開始;從2、使用該連接與客戶端進行數據傳輸;讀取請求并及時發回響應;從3、關閉連接并退出。
(2)無連接的并發服務器
主1、創建套接字并將其綁定到服務器端所提供服務的熟知端口上,保持該套接字為無連接狀態;主2、反復調用recvfrom過程以便接收來自客戶端的下一個請求,同時創建一個新的從線程來處理響應;從l、開始于來自主進程的特定請求和到該套接字的訪問;從2、根據應用協議構造響應內容,使用sendto將響應內容返回給客戶端;從3、退出。并發服務器的工作流程如圖2所示。
圖2 并發服務器工程流程
4、總結
近年來計算機技術與網絡的迅速發展,網絡服務器的重要性日益凸顯,特別是“云”概念的提出以后,計算機網絡對服務器更加依賴。本文針對現階段網絡中的服務器進行了詳細的分析介紹。重點分析循環與并發服務器的工作原理以及工作流程,加深了對網絡服務器的理解與認識。未來網絡服務器的發展將更加多樣化、智能化、規模化與集成化。隨著服務器規模的增加,服務器性能的提高,網絡終端的成本將得到很大程度的降低,網絡通信與維護也將變得更加便捷。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.lukmueng.com/
本文標題:網絡服務器的類型分析和比較