版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、網(wǎng)絡(luò)程序設(shè)計(jì),1,主講:李榮lirong@jlu.edu.cn,2,課程簡(jiǎn)介,使用教材《網(wǎng)絡(luò)編程實(shí)用教程》 人民郵電出版社 葉樹華 編著考核方式考試 80 分考勤 20 分,3,主要內(nèi)容,網(wǎng)絡(luò)編程基本概念和編程模式 UNIX套接字編程Sockets規(guī)范WinInet API和MFC WinInet類Win32的多進(jìn)程多線程機(jī)制5種套接字I/O模型HTTP協(xié)議及編程電子郵件協(xié)議及編程,4,第1章 網(wǎng)絡(luò)編程基礎(chǔ),
2、5,1.1.1 網(wǎng)絡(luò)編程與進(jìn)程通信1.進(jìn)程與線程的基本概念 進(jìn)程是處于運(yùn)行過程中的程序?qū)嵗遣僮飨到y(tǒng)調(diào)度和分配資源的基本單位。 一個(gè)進(jìn)程實(shí)體由三部分構(gòu)成。程序代碼:規(guī)定進(jìn)程所做的計(jì)算。數(shù)據(jù):計(jì)算的對(duì)象。進(jìn)程控制塊:是操作系統(tǒng)為了控制進(jìn)程建立的數(shù)據(jù)結(jié)構(gòu),用來管理進(jìn)程的內(nèi)核對(duì)象,系統(tǒng)用來存放關(guān)于進(jìn)程的統(tǒng)計(jì)信息。,,,1.1,網(wǎng)絡(luò)編程相關(guān)的基本概念,6,操作系統(tǒng)給進(jìn)程分配內(nèi)存空間:靜態(tài)分配空間:用來裝入進(jìn)程所有的可執(zhí)
3、行模塊或動(dòng)態(tài)鏈接庫(kù)模塊的代碼及數(shù)據(jù)。動(dòng)態(tài)分配空間:棧區(qū)空間和堆區(qū)空間。各種計(jì)算機(jī)應(yīng)用程序在運(yùn)行時(shí),都以進(jìn)程的形式存在,網(wǎng)絡(luò)應(yīng)用程序也不例外。Windows系統(tǒng)不但支持多進(jìn)程,還支持多線程。進(jìn)程是分配資源的單位;線程是執(zhí)行和調(diào)度的單位。由線程負(fù)責(zé)執(zhí)行包含在進(jìn)程的地址空間中的代碼.,1.進(jìn)程與線程的基本概念,7,一個(gè)進(jìn)程可以包含若干個(gè)線程,同時(shí)執(zhí)行進(jìn)程地址空間中的代碼。當(dāng)創(chuàng)建一個(gè)進(jìn)程時(shí),系統(tǒng)會(huì)自動(dòng)創(chuàng)建它的第一個(gè)線程,稱為主線程
4、。然后,該線程可以創(chuàng)建其他的線程,而這些線程又能創(chuàng)建更多的線程。每個(gè)線程擁有自己的一組CPU寄存器和堆棧。進(jìn)程至少擁有一個(gè)線程,否則將被撤銷。Windows 2000能在有多個(gè)CPU的計(jì)算機(jī)上運(yùn)行,每個(gè)CPU上運(yùn)行不同的線程,達(dá)到多線程同時(shí)運(yùn)行。,1.進(jìn)程與線程的基本概念,8,,1.進(jìn)程與線程的基本概念,圖1.1 單CPU分時(shí)地運(yùn)行進(jìn)程中的各個(gè)線程,9,,從計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)的角度來看,網(wǎng)絡(luò)應(yīng)用進(jìn)程處于網(wǎng)絡(luò)層次結(jié)構(gòu)的最上層。
5、從功能上,可以將網(wǎng)絡(luò)應(yīng)用程序分為兩部分:一部分是專門負(fù)責(zé)網(wǎng)絡(luò)通信的模塊,它們與網(wǎng)絡(luò)協(xié)議棧相連接,借助網(wǎng)絡(luò)協(xié)議棧提供的服務(wù)完成網(wǎng)絡(luò)上數(shù)據(jù)信息的交換。另一部分是面向用戶或者作其他處理的模塊,它們接收用戶的命令,或者對(duì)借助網(wǎng)絡(luò)傳輸過來的數(shù)據(jù)進(jìn)行加工。這兩部分模塊相互配合,來實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用程序的功能。,2.網(wǎng)絡(luò)應(yīng)用進(jìn)程在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置,10,,圖1.2 網(wǎng)絡(luò)應(yīng)用程序在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置,2.網(wǎng)絡(luò)應(yīng)用進(jìn)程在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置,11
6、,網(wǎng)絡(luò)應(yīng)用程序這兩部分的關(guān)系:通信模塊,是網(wǎng)絡(luò)分布式應(yīng)用的基礎(chǔ);其他模塊,對(duì)網(wǎng)絡(luò)交換的數(shù)據(jù)進(jìn)行加工處理。網(wǎng)絡(luò)應(yīng)用程序要實(shí)現(xiàn)網(wǎng)絡(luò)資源的共享,共享的基礎(chǔ)就是必須能夠通過網(wǎng)絡(luò)輕松地傳遞各種信息。網(wǎng)絡(luò)編程首先要解決網(wǎng)間進(jìn)程通信的問題,然后才能在通信的基礎(chǔ)上開發(fā)各種應(yīng)用功能。,2.網(wǎng)絡(luò)應(yīng)用進(jìn)程在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置,12,,3.實(shí)現(xiàn)網(wǎng)間進(jìn)程通信必須解決的問題 網(wǎng)間進(jìn)程通信是指網(wǎng)絡(luò)中不同主機(jī)中的應(yīng)用進(jìn)程之間的相互通信問題,必須解
7、決以下問題:網(wǎng)間進(jìn)程的標(biāo)識(shí)問題(不能只用進(jìn)程號(hào)標(biāo)識(shí));如何與網(wǎng)絡(luò)協(xié)議棧連接的問題(通過定義套接字網(wǎng)絡(luò)編程接口來解決);多重協(xié)議的識(shí)別問題(不同協(xié)議工作方式不同);不同通信服務(wù)的問題(要求不同,如文件傳輸要求可靠、無差錯(cuò)、無亂序、無丟失,網(wǎng)絡(luò)聊天要求不高,可選TCP和UDP服務(wù))。,13,1.1.2 因特網(wǎng)中網(wǎng)間進(jìn)程的標(biāo)識(shí),1.傳輸層在網(wǎng)絡(luò)通信中的地位,TCP/IP協(xié)議棧的特點(diǎn)是“兩頭大、中間小”應(yīng)用層有多個(gè)應(yīng)用進(jìn)程,使用不同
8、應(yīng)用層協(xié)議;網(wǎng)絡(luò)接口層,有多種數(shù)據(jù)鏈路層協(xié)議,支持不同的物理網(wǎng)絡(luò)連接;網(wǎng)絡(luò)層有IP協(xié)議,傳輸層有TCP和UDP協(xié)議。按照OSI七層協(xié)議的描述,傳輸層與網(wǎng)絡(luò)層在功能上的最大區(qū)別,是傳輸層提供進(jìn)程通信的能力。TCP/IP協(xié)議提出了傳輸層協(xié)議端口(簡(jiǎn)稱端口)的概念,成功地解決了通信進(jìn)程的標(biāo)識(shí)問題。,14,,1.1.2 因特網(wǎng)中網(wǎng)間進(jìn)程的標(biāo)識(shí),1.傳輸層在網(wǎng)絡(luò)通信中的地位 傳輸層是計(jì)算機(jī)網(wǎng)絡(luò)中,通信主機(jī)內(nèi)部進(jìn)行獨(dú)立操
9、作的第一層,是支持端到端的進(jìn)程通信的關(guān)鍵的一層。,圖1.3 基于TCP/IP協(xié)議棧的進(jìn)程間的通信,15,,2.端口的概念,端口是TCP/IP協(xié)議族中,應(yīng)用層進(jìn)程與傳輸層協(xié)議實(shí)體間的通信接口在OSI七層協(xié)議描述中,將其稱為應(yīng)用層進(jìn)程與傳輸層協(xié)議實(shí)體間的服務(wù)訪問點(diǎn)(SAP)。應(yīng)用層進(jìn)程通過系統(tǒng)調(diào)用與某個(gè)傳輸層端口進(jìn)行綁定,然后通過該端口接收或發(fā)送數(shù)據(jù)。類似于文件描述符,每個(gè)端口都擁有一個(gè)叫作端口號(hào)(port number)的16
10、位整數(shù)型標(biāo)識(shí)符??梢杂枚丝跇?biāo)識(shí)通信的網(wǎng)絡(luò)應(yīng)用程序。,16,,2.端口的概念,圖1.4 UDP與TCP的報(bào)文格式,傳輸層TCP和UDP兩個(gè)協(xié)議是完全獨(dú)立的軟件模塊,因此各自的端口號(hào)也獨(dú)立。使用時(shí)必須說明是UDP端口還是TCP端口,兩種協(xié)議的端口間沒有任何聯(lián)系。TCP 和UDP都可以提供65536個(gè)端口。端口是操作系統(tǒng)可分配的一種資源。,17,從實(shí)現(xiàn)的角度講,端口是一種抽象的軟件機(jī) 制,包括一些數(shù)據(jù)結(jié)構(gòu)和I/O緩沖區(qū)。進(jìn)程通過
11、系統(tǒng)調(diào)用與某端口建立綁定關(guān)系后,傳輸層傳給該端口的數(shù)據(jù)都被相應(yīng)進(jìn)程接收,相應(yīng)進(jìn)程發(fā)給傳輸層的數(shù)據(jù)都通過該端口輸出。 在TCP/IP實(shí)現(xiàn)中端口操作類似于一般的I/O操作。進(jìn)程獲取一個(gè)端口,相當(dāng)于獲取本地唯一的I/O文件,可以用一般的讀寫原語訪問。,2.端口的概念,18,,3.端口號(hào)的分配機(jī)制網(wǎng)絡(luò)進(jìn)程通信前必須獲知對(duì)方的進(jìn)程地址。由于網(wǎng)絡(luò)應(yīng)用程序大多采用C/S模式開發(fā),通信總是由客戶機(jī)發(fā)起,因此事先只需讓客戶機(jī)知道服務(wù)器進(jìn)程的端口
12、號(hào)即可。Internet中眾所周知的服務(wù)是有限的。TCP/IP協(xié)議采用了全局分配(靜態(tài)分配)和本地分配(動(dòng)態(tài)分配)相結(jié)合的分配方法。對(duì)于TCP,或者UDP,將它們的全部65536個(gè)端口號(hào)分為保留端口號(hào)和自由端口號(hào)兩部分。,19,保留端口號(hào):范圍是0-1023,又稱為眾所周知的端口或熟知端口(well-known port),只占少數(shù),采用全局分配或集中控制的方式,由一個(gè)公認(rèn)的中央機(jī)構(gòu)根據(jù)需要進(jìn)行統(tǒng)一分配,靜態(tài)地分配給因特網(wǎng)上著名的
13、眾所周知的服務(wù)器進(jìn)程,并將結(jié)果公布于眾。,3.端口號(hào)的分配機(jī)制,表1.1 一些典型的應(yīng)用層協(xié)議分配到的保留端口,20,,自由端口號(hào):范圍是1024-65535,采用本地分配,又稱為動(dòng)態(tài)分配的方法。 TCP或UDP端口的分配規(guī)則是:端口0:不使用,或者作為特殊的用途;端口1-255:保留給特定的服務(wù),TCP和UDP均規(guī)定,小于256的端口號(hào)才能分配給網(wǎng)上著名的服務(wù);端口256-1023:保留給其他的服務(wù),如路由;端口1024-
14、4999:可以用作任意客戶機(jī)的端口;端口5000-65535:可以用作用戶的服務(wù)器端口。,3.端口號(hào)的分配機(jī)制,21,,3.端口號(hào)的分配機(jī)制,我們可以描述一下,在這樣的端口分配機(jī)制下,客戶機(jī)進(jìn)程C與服務(wù)器進(jìn)程S第一次通信的情景。,圖1.5 客戶機(jī)與服務(wù)器的第一次通信,22,為確保服務(wù)器進(jìn)程為多個(gè)客戶機(jī)進(jìn)程服務(wù),服務(wù)器的保留端口是專門用來監(jiān)聽客戶端的連接請(qǐng)求的。當(dāng)服務(wù)器從保留端口接收到一個(gè)客戶機(jī)的請(qǐng)求后,立即創(chuàng)建另外一個(gè)線程,并為這
15、個(gè)線程分配一個(gè)自由端口(在5000-65535選擇分配),然后繼續(xù)接收新的客戶機(jī)請(qǐng)求。,3.端口號(hào)的分配機(jī)制,23,4.進(jìn)程的網(wǎng)絡(luò)地址的概念 在因特網(wǎng)中,用一個(gè)三元組可以在全局中唯一地標(biāo)識(shí)一個(gè)應(yīng)用層進(jìn)程: 應(yīng)用層進(jìn)程地址=(傳輸層協(xié)議,主機(jī)的IP地址, 傳輸層的端口號(hào))這樣一個(gè)三元組,叫做一個(gè)半相關(guān)(half-association),它標(biāo)識(shí)了因特網(wǎng)中進(jìn)程間通信的一個(gè)端點(diǎn),也把它稱為進(jìn)
16、程的網(wǎng)絡(luò)地址。,24,5.網(wǎng)絡(luò)中進(jìn)程通信的標(biāo)識(shí) 一個(gè)完整的網(wǎng)間通信需要一個(gè)五元組在全局中唯一地來標(biāo)識(shí):(傳輸層協(xié)議,本地機(jī)IP地址,本地機(jī)傳輸層端口, 遠(yuǎn)地機(jī)IP地址,遠(yuǎn)地機(jī)傳輸層端口)這個(gè)五元組稱為一個(gè)全相關(guān)(association),即兩個(gè)協(xié)議相同的半相關(guān)才能組合成一個(gè)合適的全相關(guān),或完全指定一對(duì)網(wǎng)間通信的進(jìn)程。,25,1.1.3 網(wǎng)絡(luò)協(xié)議的特征,在網(wǎng)絡(luò)分層體系結(jié)構(gòu)中,各層之間是嚴(yán)格單向依賴的,各層次的分工和協(xié)作集中
17、體現(xiàn)在相鄰層之間的接口上。服務(wù)是描述相鄰層之間關(guān)系的抽象概念。下層是服務(wù)提供者、上層是服務(wù)使用者;服務(wù)的表現(xiàn)形式是原語操作,一般以系統(tǒng)調(diào)用或函數(shù)庫(kù)的形式提供。系統(tǒng)調(diào)用是操作系統(tǒng)內(nèi)核向網(wǎng)絡(luò)應(yīng)用程序或高層協(xié)議提供的服務(wù)原語。N層要向N+1層提供比N-1層更完善的服務(wù)。,26,網(wǎng)絡(luò)層及以下各層稱為通信子網(wǎng),提供點(diǎn)到點(diǎn)通信,沒有程序或進(jìn)程的概念。傳輸層實(shí)現(xiàn)的是端到端的通信,引進(jìn)了網(wǎng)間進(jìn)程的概念,同時(shí)還要解決差錯(cuò)控制、流量控制、報(bào)文排
18、序和連接管理等問題。不同的傳輸層協(xié)議以不同的方式向應(yīng)用層提供不同的服務(wù)。網(wǎng)絡(luò)程序開發(fā)者應(yīng)了解常用網(wǎng)絡(luò)協(xié)議的基本特征,掌握特定協(xié)議在程序中的行為方式。,1.1.3 網(wǎng)絡(luò)協(xié)議的特征,27,1.1.3 網(wǎng)絡(luò)協(xié)議的特征,1.面向連接的服務(wù)和無連接的服務(wù)協(xié)議可以提供面向連接的服務(wù),或者提供無連接的服務(wù)。面向連接服務(wù)是電話系統(tǒng)服務(wù)模式的抽象,即每一次完整的數(shù)據(jù)傳輸都要經(jīng)過建立連接,使用連接,終止連接的過程。傳輸過程中數(shù)據(jù)分組不攜帶目的
19、地址;TCP提供面向連接的虛電路服務(wù),建立連接時(shí)確定通信路徑,并經(jīng)過協(xié)商做好通信準(zhǔn)備。連接需要很多開銷,如差錯(cuò)控制和流量控制。,28,無連接服務(wù),是郵政系統(tǒng)服務(wù)的抽象,每個(gè)分組都攜帶完整的目的地址,各分組在系統(tǒng)中獨(dú)立傳送。 不能保證分組按序到達(dá),不能進(jìn)行分組出錯(cuò)的恢復(fù)與重傳,不能保證傳輸?shù)目煽啃?。通信前不需建立連接,不管接收端是否做好準(zhǔn)備接收數(shù)據(jù)。UDP是無連接協(xié)議。,1.面向連接的服務(wù)和無連接的服務(wù),29,2.面向消息的協(xié)議
20、與基于流的協(xié)議(1)面向消息的協(xié)議 面向消息的協(xié)議以消息為單位在網(wǎng)上傳送數(shù)據(jù),在發(fā)送端,消息一條一條地發(fā)送,在接收端,也只能一條一條地接收,每一條消息是獨(dú)立的,消息之間存在著邊界。,保護(hù)消息邊界:是指?jìng)鬏攨f(xié)議把數(shù)據(jù)當(dāng)作一條獨(dú)立的消息在網(wǎng)上傳輸,接收端只能接收獨(dú)立的消息,即接收端一次只能接收發(fā)送端發(fā)出的一個(gè)數(shù)據(jù)包。,30,圖1.6 保護(hù)消息邊界的數(shù)據(jù)報(bào)傳輸服務(wù),UDP就是面向消息的,適合于交換結(jié)構(gòu)化數(shù)據(jù)。,(1)面向消息的協(xié)議,31
21、,(2)基于流的協(xié)議,基于流的協(xié)議不保護(hù)消息邊界,將數(shù)據(jù)當(dāng)作字節(jié)流連續(xù)地傳輸,不管實(shí)際消息邊界是否存在。,發(fā)送端允許系統(tǒng)將原始消息分解成幾條小消息分別發(fā)送,或把幾條消息積累在一起形成大數(shù)據(jù)包發(fā)送,多次發(fā)送的數(shù)據(jù)統(tǒng)一編號(hào)。如果發(fā)送端連續(xù)發(fā)送數(shù)據(jù),接收端有可能在一次接收動(dòng)作中接收兩個(gè)或更多的數(shù)據(jù)包。只要數(shù)據(jù)一到達(dá),網(wǎng)絡(luò)堆棧就開始讀取并將其緩存,等待進(jìn)程處理。,32,(2)基于流的協(xié)議,圖1.7 無消息邊界的流傳輸服務(wù),TCP是基于流的
22、協(xié)議。流傳輸,把數(shù)據(jù)當(dāng)作一串?dāng)?shù)據(jù)流,不認(rèn)為數(shù)據(jù)是一個(gè)一個(gè)的消息,編程時(shí)不要忽略這一點(diǎn)。,33,3.可靠性和次序性 可靠性:保證了發(fā)送端發(fā)出的每個(gè)字節(jié)都能到達(dá)既定的接收端,不出錯(cuò),不丟失,不重復(fù),保證數(shù)據(jù)的完整性,稱為保證投遞。次序性:是指對(duì)數(shù)據(jù)到達(dá)接收端的順序進(jìn)行處理。保護(hù)次序性的協(xié)議保證接收端收到數(shù)據(jù)的順序就是數(shù)據(jù)的發(fā)送順序,稱為按序遞交。,協(xié)議的可靠性和次序性與是否面向連接密切相關(guān),面向連接的協(xié)議可保證可靠性和次序性。,34,
23、1.1.4 高效的用戶數(shù)據(jù)報(bào)協(xié)議UDP,用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol,UDP),是一種盡力傳送的、無連接的、不保障可靠的傳輸服務(wù),是一種保護(hù)消息邊界的數(shù)據(jù)傳輸?;赨DP的應(yīng)用程序在高可靠性、低延遲的網(wǎng)絡(luò)中運(yùn)行良好;在網(wǎng)絡(luò)層的基礎(chǔ)上只增加了端口號(hào)的支持;傳輸效率高,適用于交易型的應(yīng)用程序,如TFTP、SNMP、DNS等應(yīng)用進(jìn)程。,35,1.1.5 可靠的傳輸控制協(xié)議TCP,1.可靠性是很多應(yīng)
24、用的基礎(chǔ) 2.TCP為應(yīng)用層提供的服務(wù) 傳輸控制協(xié)議TCP (Transmission Control Protocol,TCP)為應(yīng)用層進(jìn)程提供一個(gè)面向連接的、端到端的、完全可靠的(無差錯(cuò)、無丟失、無重復(fù)或失序)全雙工的流傳輸服務(wù)。,IP為TCP提供的是無連接的、盡力傳送的、不可靠的傳輸服務(wù),TCP為了向應(yīng)用層進(jìn)程提供可靠的傳輸服務(wù),采取了一系列保障機(jī)制。TCP提供流傳輸服務(wù),對(duì)傳輸數(shù)據(jù)的內(nèi)部結(jié)構(gòu)一無所知,只負(fù)責(zé)將字節(jié)流原
25、封不動(dòng)的傳送到對(duì)方的應(yīng)用進(jìn)程。,36,3.TCP利用IP數(shù)據(jù)報(bào)實(shí)現(xiàn)了端對(duì)端的傳輸服務(wù)TCP被稱作一種端對(duì)端(end to end)協(xié)議,因?yàn)樗峁┮粋€(gè)直接從一臺(tái)計(jì)算機(jī)上的應(yīng)用進(jìn)程到另一遠(yuǎn)程計(jì)算機(jī)上的應(yīng)用進(jìn)程的連接。應(yīng)用進(jìn)程能請(qǐng)求TCP構(gòu)造一個(gè)連接,通過這個(gè)連 接發(fā)送和接收數(shù)據(jù),以及關(guān)閉連接。由TCP提供的連接叫做虛連接,虛連接是由軟件實(shí)現(xiàn)的。事實(shí)上,底層的因特網(wǎng)系統(tǒng)并不對(duì)連接提供硬件或軟件支持,只是兩臺(tái)機(jī)器上的TCP軟件模塊通過交
26、換消息來實(shí)現(xiàn)連接的虛擬。,37,圖1.8 TCP是一個(gè)端到端的傳輸協(xié)議,3.TCP利用IP數(shù)據(jù)報(bào)實(shí)現(xiàn)了端對(duì)端的傳輸服務(wù),從TCP角度來看,整個(gè)Internet是一個(gè)通信系統(tǒng),能夠接收和傳遞消息,而不會(huì)改變和干預(yù)消息的內(nèi)容。,38,4.三次握手為確保連接的建立和終止都是可靠的,TCP使用三次握手(3-way handshake)的方式來建立連接.,圖1.9 TCP的三次握手過程,39,已證明:三次握手是在包丟失、重復(fù)和延遲的情況下確
27、保非模糊協(xié)定的充要條件。如圖所示,前兩個(gè)被稱為SYN段。TCP會(huì)重發(fā)丟失的SYN段。三次握手確保TCP不會(huì)打開或關(guān)閉一個(gè)連接,直到兩端達(dá)成一致。創(chuàng)建一個(gè)連接的三次握手中,要求每一端產(chǎn)生一個(gè)隨機(jī)32位序列號(hào)。 在計(jì)算機(jī)重啟后,嘗試建立一個(gè)新的TCP連接時(shí),要選擇一個(gè)新的隨機(jī)數(shù),可保證不受老連接的重復(fù)或延遲包的影響。,4.三次握手,40,1.2.1 基于TCP/IP協(xié)議棧的網(wǎng)絡(luò)編程,最基本的網(wǎng)絡(luò)編程方式,主要是使用各種編程語言,
28、利用操作系統(tǒng)提供的套接字網(wǎng)絡(luò)編程接口,直接開發(fā)各種網(wǎng)絡(luò)應(yīng)用程序。本門課程主要講解這種網(wǎng)絡(luò)編程的相關(guān)技術(shù)。直接利用網(wǎng)絡(luò)協(xié)議棧提供的服務(wù)來實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用,層次比較低,編程者自由度比較大,在利用套接字實(shí)現(xiàn)了網(wǎng)絡(luò)進(jìn)程通信以后,可以編寫各種網(wǎng)絡(luò)應(yīng)用程序。需掌握套接字網(wǎng)絡(luò)編程接口及應(yīng)用層網(wǎng)絡(luò)協(xié)議,41,1.2.2 基于WWW應(yīng)用的網(wǎng)絡(luò)編程,WWW稱為萬維網(wǎng)或Web,是因特網(wǎng)上最廣泛的應(yīng)用。 基于WWW應(yīng)用的網(wǎng)絡(luò)編程技術(shù),包括:所見即所得的
29、靜態(tài)網(wǎng)頁制作;HTML、JavaScript等。動(dòng)態(tài)服務(wù)器頁面的制作。 ASP、PHP、JSP、J2EE、Hibernate、Spring、Struts等技術(shù)。,42,1.2.3 基于.NET框架的Web Services網(wǎng)絡(luò)編程1.關(guān)于.NET平臺(tái)微軟公司在2000年7月公布的.NET平臺(tái)是一個(gè)全新的開發(fā)框架,集成了微軟二十世紀(jì)九十年代后期的許多技術(shù),如COM+組件技術(shù)、ASP Web開發(fā)框架、XML和OOP面向?qū)ο笤O(shè)計(jì)等
30、。.NET支持新的Web服務(wù)協(xié)議,如簡(jiǎn)單對(duì)象訪問協(xié)議(SOAP),Web服務(wù)描述語言(WSDL),統(tǒng)一描述、發(fā)現(xiàn)和集成規(guī)范(UDDI),以及以Internet為中心的理念。,43,(1) .NET平臺(tái)有四組產(chǎn)品 ① 開發(fā)工具:一組語言(C#和VB.NET)、一組開發(fā)工具(Visual Studio.NET)、一個(gè)綜合類庫(kù)(用于創(chuàng)建Web服務(wù)、Web應(yīng)用程序和Windows應(yīng)用程序)、一個(gè)用于執(zhí)行對(duì)象的公共語言運(yùn)行環(huán)境(CLR)。②
31、 專用服務(wù)器:.NET企業(yè)級(jí)服務(wù)器,提供關(guān)系型數(shù)據(jù)存儲(chǔ)。③ Web 服務(wù)④ 設(shè)備:.NET驅(qū)動(dòng)的數(shù)字化智能設(shè)備。,1.關(guān)于.NET平臺(tái),44,(2) MS的.NET使軟件成為一種服務(wù),除了以Web為中心外,還順應(yīng)了軟件工業(yè)的趨勢(shì),包括以下幾個(gè)方面: ① 分布式計(jì)算 ② 組件化 ③ 企業(yè)級(jí)別的服務(wù) ④ WEB 范型轉(zhuǎn)移,1.關(guān)于.NET平臺(tái),這些都有助于互操作性、可伸縮性
32、、易得性、可管理性指標(biāo)的實(shí)現(xiàn)。,45,(3) .NET平臺(tái)由三層軟件構(gòu)成 ① 頂層是全新的開發(fā)工具VS.NET:用于開發(fā)Web服務(wù)和其他應(yīng)用程序,支持4種語言和跨語言調(diào)試的集成開發(fā)環(huán)境。 ② 中間層包括三部分.NET服務(wù)器.NET服務(wù)構(gòu)件.NET框架 ③ 底層是WINDOWS操作系統(tǒng),46,(4) .NET框架的設(shè)計(jì)要支持的目標(biāo)① 簡(jiǎn)化組件的使用; ② 實(shí)現(xiàn)語言的集成; ③ 支持Internet的互操作;
33、④ 簡(jiǎn)化軟件的開發(fā); ⑤ 簡(jiǎn)化組件的部署;⑥ 提高可靠性;⑦ 提高安全性。,1.關(guān)于.NET平臺(tái),47,2.關(guān)于Web服務(wù) 什么是Web服務(wù)?Web服務(wù)是松散耦合的可復(fù)用的軟件模塊,在Internet上發(fā)布后,能通過標(biāo)準(zhǔn)的Internet 協(xié)議在程序中訪問,具有以下的特點(diǎn):(1)可復(fù)用;(2)松散耦合; (3)封裝;(4)Web服務(wù)可以在程序中訪問;(5)Web服務(wù)在Internet上發(fā)布。,48,W
34、eb服務(wù)用發(fā)現(xiàn)機(jī)制來定位服務(wù),實(shí)現(xiàn)松散耦合。Web服務(wù)發(fā)現(xiàn),是定位或發(fā)現(xiàn)特定的Web服務(wù)文檔的過程,文檔用Web服務(wù)描述語言(WSDL)來描述。Web服務(wù)發(fā)現(xiàn)通過.disco文件實(shí)現(xiàn),當(dāng)一個(gè)Web服務(wù)出現(xiàn)后,為之發(fā)布一個(gè).disco文件,是一個(gè)XML文檔,其中包括指向描述Web服務(wù)的其他信息資源的鏈接。程序可以動(dòng)態(tài)的使用這些鏈接獲取說明文檔,最終得知Web服務(wù)的詳細(xì)信息。,2.關(guān)于Web服務(wù),49,Web服務(wù)的基本結(jié)構(gòu):Web服
35、務(wù)目錄:發(fā)布Web服務(wù)提供者能夠提供的Web服務(wù),供客戶查找;Web服務(wù)發(fā)現(xiàn):統(tǒng)一描述、發(fā)現(xiàn)和集成規(guī)范UDDI定義了一種發(fā)布和發(fā)現(xiàn)Web服務(wù)相關(guān)信息的標(biāo)準(zhǔn)方法;Web服務(wù)描述:Web服務(wù)的基本結(jié)構(gòu)建立在通過基于XML的消息進(jìn)行通信的基礎(chǔ)上,而消息必須遵守Web服務(wù)描述的約定,是一個(gè)用WSDL表示的XML文檔,定義Web服務(wù)可以理解的消息格式。,2.關(guān)于Web服務(wù),50,Web服務(wù)建立在3個(gè)角色的交互上,交互的內(nèi)容包括3個(gè)操作。3個(gè)
36、角色:服務(wù)的提供者、注冊(cè)處和請(qǐng)求者; 3個(gè)操作:發(fā)布、查找和綁定。 這些角色和操作都圍繞Web服務(wù)本身和服務(wù)說明兩個(gè)產(chǎn)品展開。,2.關(guān)于Web服務(wù),51,Web服務(wù)的運(yùn)行機(jī)理:服務(wù)提供者有一個(gè)可以通過網(wǎng)絡(luò)訪問的軟件模塊,即Web服務(wù)的實(shí)現(xiàn),并為此Web服務(wù)定義了服務(wù)描述,并把它發(fā)布給服務(wù)的請(qǐng)求者或服務(wù)的注冊(cè)處;服務(wù)請(qǐng)求者用查找操作從本地或注冊(cè)處得到服務(wù)描述,并使用描述中的信息與服務(wù)提供者實(shí)現(xiàn)綁定,然后與Web服務(wù)交互,調(diào)用其中的
37、操作。服務(wù)提供者和服務(wù)請(qǐng)求者是Web服務(wù)的邏輯基礎(chǔ),一個(gè)Web服務(wù)既可以是提供者也可以是請(qǐng)求者。,2.關(guān)于Web服務(wù),52,服務(wù)提供者從商業(yè)的角度來說是服務(wù)的擁有者,從Web服務(wù)的架構(gòu)來說是擁有服務(wù)的平臺(tái);服務(wù)請(qǐng)求者是需要某種功能的商業(yè)機(jī)構(gòu),從商業(yè)的角度來說是查找調(diào)用服務(wù)的應(yīng)用程序,包括人使用的瀏覽器,或無用戶界面的應(yīng)用程序。服務(wù)注冊(cè)處從Web服務(wù)的架構(gòu)來說是供服務(wù)提供者發(fā)布服務(wù)描述的地方,供請(qǐng)求者找到服務(wù)以及與服務(wù)綁定的信
38、息,包括開發(fā)時(shí)的靜態(tài)綁定和運(yùn)行時(shí)的動(dòng)態(tài)綁定。,2.關(guān)于Web服務(wù),53,Web服務(wù)開發(fā)的生命周期,包括4個(gè)階段:創(chuàng)建:開發(fā)測(cè)試Web服務(wù)的實(shí)現(xiàn),包括服務(wù)接口描述的定義和服務(wù)實(shí)現(xiàn)描述的定義;安裝:把服務(wù)接口和服務(wù)實(shí)現(xiàn)的定義發(fā)布到服務(wù)請(qǐng)求者或服務(wù)注冊(cè)處,把服務(wù)的可執(zhí)行程序放到Web服務(wù)器的可執(zhí)行環(huán)境中;運(yùn)行:Web服務(wù)等待調(diào)用請(qǐng)求,被不同的請(qǐng)求者通過網(wǎng)絡(luò)訪問或調(diào)用,服務(wù)請(qǐng)求者此時(shí)可以查找或綁定操作。管理:對(duì)Web服務(wù)應(yīng)用程序進(jìn)行監(jiān)督
39、、檢查和控制,包括安全性、性能和服務(wù)質(zhì)量管理等。,2.關(guān)于Web服務(wù),54,本節(jié)著重于因特網(wǎng)上的高級(jí)服務(wù),以及提供這些服務(wù)的應(yīng)用軟件。討論網(wǎng)絡(luò)應(yīng)用軟件的客戶機(jī)/服務(wù)器交互模式,并說明網(wǎng)絡(luò)協(xié)議操作的方式為什么需要這種模式。這是構(gòu)筑所有網(wǎng)絡(luò)應(yīng)用的基礎(chǔ)。,55,因特網(wǎng)僅僅提供一個(gè)通用的通信構(gòu)架,它只負(fù)責(zé)傳送信息,而對(duì)于信息傳過去干什么用,利用因特網(wǎng)究竟提供什么服務(wù),由哪些計(jì)算機(jī)來運(yùn)行這些服務(wù),如何確定服務(wù)的存在,如何使用這些服務(wù)等等問題,
40、都要由應(yīng)用軟件和用戶解決。計(jì)算機(jī)能夠利用因特網(wǎng)提供什么服務(wù)?何時(shí)啟動(dòng)這些服務(wù)?都需要高層應(yīng)用軟件及用戶解決。,1.3.1 網(wǎng)絡(luò)應(yīng)用軟件的地位和功能,56,1.3.2 客戶機(jī)/服務(wù)器模式,網(wǎng)絡(luò)應(yīng)用進(jìn)程通信時(shí),普遍采用客戶機(jī)/服務(wù)器交互模式(client-server paradigm of interaction),簡(jiǎn)稱C/S模式.這是因特網(wǎng)上應(yīng)用程序最常用的通信模式。C/S模式的建立基于以下兩點(diǎn):客戶機(jī)與服務(wù)器之間的關(guān)系是非
41、對(duì)等的,服務(wù)器提供資源,客戶機(jī)請(qǐng)求共享這些資源;網(wǎng)間進(jìn)程通信是完全異步的,互相通信的進(jìn)程間既不存在父子關(guān)系,又沒有共享內(nèi)存緩沖區(qū),需要一種機(jī)制為二者間的數(shù)據(jù)交換提供同步.,57,1、服務(wù)器的工作過程C/S模式過程中服務(wù)器處于被動(dòng)服務(wù)的地位。服務(wù)器要先啟動(dòng),并根據(jù)客戶機(jī)請(qǐng)求提供相應(yīng)服務(wù):打開一通信通道,并告知服務(wù)器所在的主機(jī),并愿意在某一公認(rèn)的地址上(熟知知端口,如FTP為21)接收客戶機(jī)請(qǐng)求。等待客戶機(jī)的請(qǐng)求到達(dá)該端口。服務(wù)
42、器接收到服務(wù)請(qǐng)求,處理該請(qǐng)求并發(fā)送應(yīng)答信號(hào)。為了能并發(fā)地接收多個(gè)客戶機(jī)的服務(wù)請(qǐng)求,要激活一個(gè)新進(jìn)程或新線程來處理這個(gè)客戶機(jī)請(qǐng)求(如UNIX系統(tǒng)中用fork、exec)。服務(wù)完成后,關(guān)閉此新進(jìn)程與客戶機(jī)的通信鏈路并終止.返回第二步,等待并處理另一客戶請(qǐng)求。在特定的情況下,關(guān)閉服務(wù)器。,58,2、客戶端的工作過程客戶方采取的是主動(dòng)請(qǐng)求方式:打開一通信通道,并連接到服務(wù)器所在主機(jī)的特定監(jiān)聽端口。向服務(wù)器發(fā)送請(qǐng)求報(bào)文,等待并接收應(yīng)答;
43、繼續(xù)提出請(qǐng)求,與服務(wù)器的會(huì)話按照應(yīng)用協(xié)議進(jìn)行。請(qǐng)求結(jié)束后,關(guān)閉通信通道并終止。,59,1.3.2 客戶機(jī)/服務(wù)器模式,表1.2 一些常見的網(wǎng)絡(luò)應(yīng)用,60,1.3.3 客戶機(jī)與服務(wù)器的特性,客戶端軟件的特點(diǎn)服務(wù)器端軟件的特點(diǎn)基于因特網(wǎng)的C/S模式的應(yīng)用程序的特點(diǎn),61,1.3.3 客戶機(jī)與服務(wù)器的特性,1.客戶端軟件特點(diǎn)在進(jìn)行網(wǎng)絡(luò)通信時(shí)臨時(shí)成為客戶機(jī),但它也可在本地進(jìn)行其他的計(jì)算。被用戶調(diào)用,只為一個(gè)會(huì)話運(yùn)行。在打算通
44、信時(shí)主動(dòng)向遠(yuǎn)地服務(wù)器發(fā)起通信。能訪問所需的多種服務(wù),但在某一時(shí)刻只能與一個(gè)遠(yuǎn)程服務(wù)器進(jìn)行主動(dòng)通信。主動(dòng)地啟動(dòng)與服務(wù)器的通信。在用戶的計(jì)算機(jī)上運(yùn)行,不需要特殊的硬件和很復(fù)雜的操作系統(tǒng)。,62,2.服務(wù)器軟件的特點(diǎn)是一種專門用來提供某種服務(wù)的程序,可同時(shí)處理多個(gè)遠(yuǎn)地客戶機(jī)的請(qǐng)求。當(dāng)系統(tǒng)啟動(dòng)時(shí)即自動(dòng)調(diào)用,并且連續(xù)運(yùn)行著,不斷地為多個(gè)會(huì)話服務(wù)。接受來自任何客戶機(jī)的通信請(qǐng)求,但只提供一種服務(wù)。被動(dòng)地等待并接受來自多個(gè)遠(yuǎn)端客戶機(jī)的通信
45、請(qǐng)求。在共享計(jì)算機(jī)上運(yùn)行,一般需要強(qiáng)大的硬件和高級(jí)的操作系統(tǒng)支持。,1.3.3 客戶機(jī)與服務(wù)器的特性,63,3.基于因特網(wǎng)的C/S模式的應(yīng)用程序的特點(diǎn)客戶機(jī)和服務(wù)器都是軟件進(jìn)程,C/S模式是網(wǎng)絡(luò)上通過進(jìn)程通信建立分布式應(yīng)用的常用模型。非對(duì)稱性:服務(wù)器通過網(wǎng)絡(luò)提供服務(wù),客戶機(jī)通過網(wǎng)絡(luò)使用服務(wù),這種不對(duì)稱性體現(xiàn)在軟件結(jié)構(gòu)和工作過程上。對(duì)等性:客戶機(jī)和服務(wù)器必有一套共識(shí)的約定,必與以某種應(yīng)用層協(xié)議相聯(lián),并且協(xié)議必須在通信的兩端實(shí)現(xiàn)。
46、比如瀏覽器和3W服務(wù)器就都基于HTTP超文本傳輸協(xié)議。,1.3.3 客戶機(jī)與服務(wù)器的特性,64,服務(wù)器的被動(dòng)性:服務(wù)器必須先行啟動(dòng),時(shí)刻監(jiān)聽,日夜值守,及時(shí)服務(wù),只要有客戶機(jī)請(qǐng)求,就立即處理并響應(yīng),回傳信息。但決不主動(dòng)提供服務(wù)??蛻魴C(jī)的主動(dòng)性:客戶機(jī)可以隨時(shí)提出請(qǐng)求,通過網(wǎng)絡(luò)得到服務(wù),也可以關(guān)機(jī)走人,一次請(qǐng)求與服務(wù)的過程是由客戶機(jī)首先激發(fā)的。一對(duì)多:一個(gè)服務(wù)器可以為多個(gè)客戶機(jī)服務(wù),客戶機(jī)也可以打開多個(gè)窗口,連接多個(gè)服務(wù)器。分布性
47、與共享性:資源在服務(wù)器端組織與存儲(chǔ),通過網(wǎng)絡(luò)分散在多個(gè)客戶機(jī)使用。,1.3.3 客戶機(jī)與服務(wù)器的特性,3.基于因特網(wǎng)的C/S模式的應(yīng)用程序的特點(diǎn),65,1.3.4 容易混淆的術(shù)語,1.服務(wù)器程序與服務(wù)器類計(jì)算機(jī)服務(wù)器(server)這個(gè)術(shù)語來指那些運(yùn)行著的服務(wù)程序。服務(wù)器類計(jì)算機(jī)(server-class computer)這一術(shù)語來稱呼那些運(yùn)行服務(wù)器軟件的強(qiáng)大的計(jì)算機(jī)。,66,圖1.10 用戶、客戶機(jī)、服務(wù)器、服務(wù)器類計(jì)算機(jī)
48、,2.客戶機(jī)與用戶“客戶機(jī)”(client)和服務(wù)器都指的是應(yīng)用進(jìn)程,即計(jì)算機(jī)軟件?!坝脩簟?user)指的是使用計(jì)算機(jī)的人。,1.3.4 容易混淆的術(shù)語,67,1.3.5 客戶機(jī)與服務(wù)器的通信過程,客戶機(jī)與服務(wù)器的通信過程一般是這樣的:通信之前,服務(wù)器應(yīng)先行啟動(dòng),并通知它的下層協(xié)議棧做好接收客戶機(jī)請(qǐng)求的準(zhǔn)備,然后被動(dòng)地等待客戶機(jī)的通信請(qǐng)求,稱服務(wù)器處于監(jiān)聽狀態(tài)。一般是先由客戶機(jī)向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器向客戶機(jī)返回應(yīng)答??蛻?/p>
49、機(jī)隨時(shí)可以主動(dòng)啟動(dòng)通信,向服務(wù)器發(fā)出連接請(qǐng)求,服務(wù)器接收這個(gè)請(qǐng)求,建立了二者的通信關(guān)系。客戶機(jī)與服務(wù)器的通信關(guān)系一旦建立,客戶機(jī)和服務(wù)器都可發(fā)送和接收信息。信息在客戶機(jī)與服務(wù)器之間可以沿任一方向或兩個(gè)方向傳遞。在某些情況下,客戶機(jī)向服務(wù)器發(fā)送一系列請(qǐng)求,服務(wù)器相應(yīng)地返回一系列應(yīng)答。,68,1.3.6 網(wǎng)絡(luò)協(xié)議與C/S模式的關(guān)系,客戶機(jī)與服務(wù)器作為兩個(gè)軟件實(shí)體,它們之間的通信是虛擬的,是概念上的,實(shí)際的通信要借助下層的網(wǎng)絡(luò)協(xié)議棧來進(jìn)行
50、。網(wǎng)絡(luò)應(yīng)用進(jìn)程與應(yīng)用層協(xié)議間的關(guān)系:為了解決具體應(yīng)用問題而彼此通信的進(jìn)程,稱為網(wǎng)絡(luò)應(yīng)用進(jìn)程;應(yīng)用層協(xié)議并不解決任何具體問題,而是規(guī)定了網(wǎng)絡(luò)應(yīng)用進(jìn)程通信時(shí)必須遵守的約定。應(yīng)用層協(xié)議在網(wǎng)絡(luò)應(yīng)用進(jìn)程之下,并為網(wǎng)絡(luò)應(yīng)用進(jìn)程服務(wù),幫助應(yīng)用進(jìn)程組織數(shù)據(jù)。,69,1.3.7 錯(cuò)綜復(fù)雜的C/S交互,在C/S模式中,存在著三種一個(gè)與多個(gè)的關(guān)系: 一個(gè)服務(wù)器同時(shí)為多個(gè)客戶機(jī)服務(wù);一個(gè)用戶的計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)連接不同服務(wù)器的客戶機(jī);一個(gè)服務(wù)
51、器類的計(jì)算機(jī)同時(shí)運(yùn)行多個(gè)服務(wù)器。,70,圖1.11 一臺(tái)計(jì)算機(jī)中的多個(gè)服務(wù)器被多個(gè)計(jì)算機(jī)的客戶機(jī)訪問,1.3.7 錯(cuò)綜復(fù)雜的C/S交互,71,1.3.8 服務(wù)器如何同時(shí)為多個(gè)客戶機(jī)服務(wù),并發(fā)性是客戶機(jī)/服務(wù)器交互模式的基礎(chǔ),并發(fā)允許多個(gè)客戶機(jī)獲得同一種服務(wù),而不必等待服務(wù)器完成對(duì)上一個(gè)請(qǐng)求的處理。這樣才能很好地同時(shí)為多個(gè)客戶機(jī)提供服務(wù)。,72,1.3.8 服務(wù)器如何同時(shí)為多個(gè)客戶機(jī)服務(wù),圖1.12 服務(wù)器創(chuàng)建多個(gè)線程來為多個(gè)客
52、戶機(jī)服務(wù),73,1.3.9 標(biāo)識(shí)一個(gè)特定服務(wù),在一臺(tái)服務(wù)器類的計(jì)算機(jī)中可以并發(fā)地運(yùn)行多個(gè)服務(wù)器進(jìn)程。它們都要借助協(xié)議棧來交換信息,協(xié)議棧就是多個(gè)服務(wù)器進(jìn)程傳輸數(shù)據(jù)的公用通道, 這有了一個(gè)問題,既然在一個(gè)服務(wù)器類計(jì)算機(jī)中運(yùn)行著多個(gè)服務(wù)器,如何能讓客戶機(jī)無二義性地指明所希望的服務(wù)?,74,圖1.13 沙漏計(jì)時(shí)器形狀的TCP/IP協(xié)議族,1.3.9 標(biāo)識(shí)一個(gè)特定服務(wù),75,這個(gè)問題由傳輸協(xié)議棧提供的一套機(jī)制來解決。這種機(jī)
53、制必須賦給每個(gè)服務(wù)一個(gè)唯一的標(biāo)識(shí),并要求服務(wù)器和客戶機(jī)都使用這個(gè)標(biāo)識(shí)。當(dāng)服務(wù)器開始執(zhí)行時(shí),它在本地的協(xié)議棧軟件中登記,指明它所提供的服務(wù)的標(biāo)識(shí)。當(dāng)客戶機(jī)與遠(yuǎn)程服務(wù)器通信時(shí),客戶機(jī)在提出請(qǐng)求時(shí),通過這個(gè)標(biāo)識(shí)來指定所希望的服務(wù)??蛻魴C(jī)端機(jī)器的傳輸協(xié)議棧軟件將該標(biāo)識(shí)傳給服務(wù)器端機(jī)器。服務(wù)器端機(jī)器的傳輸協(xié)議棧則根據(jù)該標(biāo)識(shí)來決定由哪個(gè)服務(wù)器程序來處理這個(gè)請(qǐng)求。。,1.3.9 標(biāo)識(shí)一個(gè)特定服務(wù),76,隨著應(yīng)用規(guī)模的不斷擴(kuò)大,軟件復(fù)雜度不斷
54、提高,面對(duì)巨大的用戶群,單服務(wù)器成了性能的瓶頸 ,為了解決這些問題,就出現(xiàn)了P2P技術(shù)。,1.4.1 P2P的定義和特征,P2P技術(shù)就是一種在計(jì)算機(jī)之間直接進(jìn)行資源和服務(wù)的共享,不需要服務(wù)器介入的網(wǎng)絡(luò)技術(shù)。在P2P網(wǎng)絡(luò)中,每臺(tái)計(jì)算機(jī)同時(shí)充當(dāng)著Server和Client的角色,當(dāng)需要其他電腦的文件和服務(wù)時(shí),兩臺(tái)電腦直接建立連接,本機(jī)是Client;而當(dāng)響應(yīng)其他電腦的資源要求時(shí),本機(jī)又成為提供資源與服務(wù)的Server。,77,P2P系統(tǒng)具
55、有以下特征:,(1)分散性。 (2)規(guī)模性。 (3)擴(kuò)展性。 (4)Servent性。 (5)自治性。(6)互助性。(7)自組織性。,1.4.1 P2P的定義和特征,78,1.4.2 P2P的發(fā)展,P2P的發(fā)展分為三代:第一代以Napster系統(tǒng)為代表 .第二代P2P使用基于分布式哈希表(Distributer Hash Table,DHT)的協(xié)議.第三代P2P采用混合型的覆蓋網(wǎng)絡(luò)結(jié)構(gòu),不需要專門的服務(wù)器.,79,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
評(píng)論
0/150
提交評(píng)論