版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、網(wǎng)絡(luò)程序設(shè)計網(wǎng)絡(luò)程序設(shè)計課程課程教材:葉樹華編著葉樹華編著 網(wǎng)絡(luò)編程實用教程網(wǎng)絡(luò)編程實用教程 (第第2版版) 人民郵電出版社,人民郵電出版社,2010.2課程內(nèi)容: Unix/Linux、Windows網(wǎng)絡(luò)套接字程序設(shè)計網(wǎng)絡(luò)套接字程序設(shè)計參考資料: 0 本課程課件每一章的本課程課件每一章的附錄附錄(編程手冊編程手冊、參考讀物參考讀物、項目工程源代碼項目工程源代碼) 1 (美美) W. Richard Stevens等,等,楊繼張楊繼張譯譯, Unix網(wǎng)絡(luò)編程,第網(wǎng)絡(luò)編程,第1卷:套接口卷:套接口API (第第3版版),清華大學(xué)出版社,清華大學(xué)出版社,ISBN: 978-7-302-11974-
2、6 2 (美美) Anthony Jones著著, Windows網(wǎng)絡(luò)編程技術(shù)網(wǎng)絡(luò)編程技術(shù),微軟公司核心技術(shù)書庫,微軟公司核心技術(shù)書庫, 微軟出版社授權(quán),機械工業(yè)出版社,微軟出版社授權(quán),機械工業(yè)出版社,ISBN: 7-111-07809-8 3 (美美) Anthony Jones著著, 楊合慶譯,楊合慶譯,Windows網(wǎng)絡(luò)編程網(wǎng)絡(luò)編程(第第2版版), 微軟出版社授權(quán),清華大學(xué)出版社,微軟出版社授權(quán),清華大學(xué)出版社,ISBN: 7-302-05947-0 3 孫鑫編著孫鑫編著, VC+深入詳解深入詳解,電子工業(yè)出版社,電子工業(yè)出版社,ISBN: 7-121-02530-2網(wǎng)絡(luò)程序設(shè)計網(wǎng)絡(luò)程序
3、設(shè)計課程課程各各 章章 內(nèi)內(nèi) 容容第第1章章 網(wǎng)絡(luò)編程基礎(chǔ)網(wǎng)絡(luò)編程基礎(chǔ)第第2章章 UNIX 中的套接字網(wǎng)絡(luò)編程接口中的套接字網(wǎng)絡(luò)編程接口第第3章章 Windows 環(huán)境的網(wǎng)絡(luò)編程環(huán)境的網(wǎng)絡(luò)編程第第4章章 MFC 編程編程第第5章章 MFC WinSock 類的編程類的編程第第6章章 WinInet 編程編程第第7章章 WinSock 的多線程編程的多線程編程第第8章章 WinSock 的輸入的輸入/輸出模型輸出模型第第9章章 HTTP 及高級編程及高級編程第第10章章 電子郵件及協(xié)議編程電子郵件及協(xié)議編程網(wǎng)絡(luò)編程集成開發(fā)環(huán)境網(wǎng)絡(luò)編程集成開發(fā)環(huán)境( (IDE) )(1) Unix/Linux(1
4、) Unix/Linux網(wǎng)絡(luò)套接字編程網(wǎng)絡(luò)套接字編程 軟件開發(fā)平臺:軟件開發(fā)平臺: RedHat Linux(RedHat Linux(內(nèi)核內(nèi)核2.42.4以上以上): ): GNOME GNOME桌面環(huán)境下的桌面環(huán)境下的IDEIDE: EclipseEclipse( (還需安裝還需安裝JREJRE、CBTCBT插件插件) ) 或或KDEKDE桌面環(huán)境下的桌面環(huán)境下的IDEIDE: KdevelopKdevelop( (須先行安裝須先行安裝GCC/G+GCC/G+編譯器編譯器/GDB/GDB調(diào)試器調(diào)試器) )(2) Windows(2) Windows網(wǎng)絡(luò)套接字編程網(wǎng)絡(luò)套接字編程 軟件開發(fā)平臺
5、:軟件開發(fā)平臺: Microsoft Windows XPMicrosoft Windows XP: IDE: IDE: Visual Studio 6.0Visual Studio 6.0,Visual C/C+ 6.0, MFCVisual C/C+ 6.0, MFC Microsoft Windows Win7/Win8 Microsoft Windows Win7/Win8: IDE: IDE: Visual Studio 2012Visual Studio 2012,.NET Framework, MFC.NET Framework, MFC網(wǎng)絡(luò)程序設(shè)計網(wǎng)絡(luò)程序設(shè)計實驗實驗實實 驗驗
6、 目目 錄錄實驗實驗1 控制臺方式控制臺方式Winsock流套接字客戶服務(wù)器通信流套接字客戶服務(wù)器通信實驗實驗2 控制臺方式控制臺方式Winsock數(shù)據(jù)報套接字廣播通信數(shù)據(jù)報套接字廣播通信實驗實驗3 基于基于Winsock原始套接字的原始套接字的IP信包監(jiān)聽、捕獲與分析信包監(jiān)聽、捕獲與分析實驗實驗4 基于基于MFC CAsyncSocket類的網(wǎng)絡(luò)通信類的網(wǎng)絡(luò)通信實驗實驗5 基于基于MFC WinInet類與多線程編程的類與多線程編程的FTP客戶端客戶端本章提要本章提要 本章介紹網(wǎng)絡(luò)編程相關(guān)的基本概念,包括:本章介紹網(wǎng)絡(luò)編程相關(guān)的基本概念,包括:n 進程通信的概念進程通信的概念n 因特網(wǎng)中網(wǎng)間
7、進程的標(biāo)識方法因特網(wǎng)中網(wǎng)間進程的標(biāo)識方法n 網(wǎng)絡(luò)協(xié)議的特征網(wǎng)絡(luò)協(xié)議的特征n TCP/IP中用戶數(shù)據(jù)報協(xié)議中用戶數(shù)據(jù)報協(xié)議UDP和傳輸控制協(xié)議和傳輸控制協(xié)議TCP的特點的特點n 目前的網(wǎng)絡(luò)編程現(xiàn)狀目前的網(wǎng)絡(luò)編程現(xiàn)狀n 網(wǎng)絡(luò)應(yīng)用程序的客戶服務(wù)器交互模式網(wǎng)絡(luò)應(yīng)用程序的客戶服務(wù)器交互模式第1章 網(wǎng)絡(luò)編程基礎(chǔ)1.1 網(wǎng)絡(luò)編程相關(guān)的基本概念1.1.1 網(wǎng)絡(luò)編程與進程通信網(wǎng)絡(luò)編程與進程通信1進程與線程的基本概念進程與線程的基本概念 進程進程是處于運行過程中的是處于運行過程中的程序?qū)嵗绦驅(qū)嵗遣僮?,是操作系統(tǒng)調(diào)度和分配資源的基本單位。系統(tǒng)調(diào)度和分配資源的基本單位。 一個進程實體由一個進程實體由程序代碼程序
8、代碼、數(shù)據(jù)數(shù)據(jù)和和進程控制進程控制塊塊三部分構(gòu)成。三部分構(gòu)成。 各種計算機應(yīng)用程序在運行時,都以進程的形各種計算機應(yīng)用程序在運行時,都以進程的形式存在。網(wǎng)絡(luò)應(yīng)用程序也不例外。式存在。網(wǎng)絡(luò)應(yīng)用程序也不例外。 Windows 系統(tǒng)不但支持多進程,還支持多線程。系統(tǒng)不但支持多進程,還支持多線程。當(dāng)創(chuàng)建一個進程時,系統(tǒng)會自動創(chuàng)建它的第一個線當(dāng)創(chuàng)建一個進程時,系統(tǒng)會自動創(chuàng)建它的第一個線程,稱為主線程。然后,該線程可以創(chuàng)建其他的線程,稱為主線程。然后,該線程可以創(chuàng)建其他的線程,而這些線程又能創(chuàng)建更多的線程。程,而這些線程又能創(chuàng)建更多的線程。 圖圖1.1 單單 CPU 分時地運行進程中的各個線程分時地運行進
9、程中的各個線程1進程與線程的基本概念 從計算機網(wǎng)絡(luò)體系結(jié)構(gòu)的角度來看,從計算機網(wǎng)絡(luò)體系結(jié)構(gòu)的角度來看,網(wǎng)絡(luò)應(yīng)用網(wǎng)絡(luò)應(yīng)用進程進程處于網(wǎng)絡(luò)層次結(jié)構(gòu)的處于網(wǎng)絡(luò)層次結(jié)構(gòu)的最上層最上層。 從功能上,可以將網(wǎng)絡(luò)應(yīng)用程序分為兩部分,從功能上,可以將網(wǎng)絡(luò)應(yīng)用程序分為兩部分,一部分一部分是專門負責(zé)網(wǎng)絡(luò)通信的模塊,它們與網(wǎng)絡(luò)協(xié)是專門負責(zé)網(wǎng)絡(luò)通信的模塊,它們與網(wǎng)絡(luò)協(xié)議棧相連接,借助網(wǎng)絡(luò)協(xié)議棧提供的服務(wù)完成網(wǎng)絡(luò)議棧相連接,借助網(wǎng)絡(luò)協(xié)議棧提供的服務(wù)完成網(wǎng)絡(luò)上數(shù)據(jù)信息的交換。上數(shù)據(jù)信息的交換。另一部分另一部分是面向用戶或者作其是面向用戶或者作其他處理的模塊,它們接收用戶的命令,或者對借助他處理的模塊,它們接收用戶的命令,
10、或者對借助網(wǎng)絡(luò)傳輸過來的數(shù)據(jù)進行加工,這兩部分模塊相互網(wǎng)絡(luò)傳輸過來的數(shù)據(jù)進行加工,這兩部分模塊相互配合,來實現(xiàn)網(wǎng)絡(luò)應(yīng)用程序的功能。配合,來實現(xiàn)網(wǎng)絡(luò)應(yīng)用程序的功能。 2網(wǎng)絡(luò)應(yīng)用進程在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置圖圖1.2 網(wǎng)絡(luò)應(yīng)用程序在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置網(wǎng)絡(luò)應(yīng)用程序在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置2網(wǎng)絡(luò)應(yīng)用進程在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置 網(wǎng)絡(luò)應(yīng)用程序最終要實現(xiàn)網(wǎng)絡(luò)資源的網(wǎng)絡(luò)應(yīng)用程序最終要實現(xiàn)網(wǎng)絡(luò)資源的共共享享,共享的基礎(chǔ)就是必須能夠通過網(wǎng)絡(luò)輕松,共享的基礎(chǔ)就是必須能夠通過網(wǎng)絡(luò)輕松地傳遞各種信息。網(wǎng)絡(luò)編程首先要解決地傳遞各種信息。網(wǎng)絡(luò)編程首先要解決網(wǎng)間網(wǎng)間進程通信進程通信的問題。然后才能在通信的基礎(chǔ)上的問題。然后才能
11、在通信的基礎(chǔ)上開發(fā)各種應(yīng)用功能。開發(fā)各種應(yīng)用功能。2網(wǎng)絡(luò)應(yīng)用進程在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置 網(wǎng)間進程通信網(wǎng)間進程通信是指網(wǎng)絡(luò)中不同主機中是指網(wǎng)絡(luò)中不同主機中的應(yīng)用進程之間的相互通信問題,網(wǎng)間進的應(yīng)用進程之間的相互通信問題,網(wǎng)間進程通信必須解決以下問題:程通信必須解決以下問題: (1)網(wǎng)間進程的)網(wǎng)間進程的標(biāo)識標(biāo)識問題問題 (2)如何與網(wǎng)絡(luò)協(xié)議棧)如何與網(wǎng)絡(luò)協(xié)議棧連接連接的問題的問題 (3)多重協(xié)議的)多重協(xié)議的識別識別問題問題 (4)不同不同的通信服務(wù)的問題的通信服務(wù)的問題3實現(xiàn)網(wǎng)間進程通信必須解決的問題1傳輸層在網(wǎng)絡(luò)通信中的地位 圖圖1.3說明了基于說明了基于TCP/IP協(xié)議棧的進程之間的協(xié)議棧
12、的進程之間的通信的情況。通信的情況。 圖圖1.3 網(wǎng)絡(luò)應(yīng)用程序在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置網(wǎng)絡(luò)應(yīng)用程序在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置 1.1.2 因特網(wǎng)中網(wǎng)間進程的標(biāo)識1傳輸層在網(wǎng)絡(luò)通信中的地位 按照按照OSI七層協(xié)議的描述,傳輸層與網(wǎng)七層協(xié)議的描述,傳輸層與網(wǎng)絡(luò)層在功能上的最大區(qū)別是傳輸層提供進程絡(luò)層在功能上的最大區(qū)別是傳輸層提供進程通信的能力。通信的能力。TCP/IP協(xié)議提出了傳輸層協(xié)協(xié)議提出了傳輸層協(xié)議端口(議端口(protocol port,簡稱端口)的概,簡稱端口)的概念,成功地解決了通信進程的標(biāo)識問題。念,成功地解決了通信進程的標(biāo)識問題。 傳輸層是計算機網(wǎng)絡(luò)中,通信主機內(nèi)部傳輸層是計算機網(wǎng)絡(luò)中,
13、通信主機內(nèi)部進行獨立操作的第一層,是支持端到端的進進行獨立操作的第一層,是支持端到端的進程通信的關(guān)鍵的一層。程通信的關(guān)鍵的一層。2端口的概念n 端口端口是是TCP/IP協(xié)議族中,應(yīng)用層進程與傳協(xié)議族中,應(yīng)用層進程與傳輸層協(xié)議實體間的通信接口輸層協(xié)議實體間的通信接口n 類似于文件描述符,每個端口都擁有一個類似于文件描述符,每個端口都擁有一個叫作叫作端口號端口號(port number)的整數(shù)型標(biāo)識)的整數(shù)型標(biāo)識符符 從實現(xiàn)的角度講,端口是一種抽象的軟件機從實現(xiàn)的角度講,端口是一種抽象的軟件機制,制,包括一些數(shù)據(jù)結(jié)構(gòu)和包括一些數(shù)據(jù)結(jié)構(gòu)和I/O緩沖區(qū)。緩沖區(qū)。 圖圖1.4 UDP與與TCP的報文格式
14、的報文格式3端口號的分配機制 2端口的概念 TCP/IP協(xié)議采用了全局分配(靜態(tài)分配)和本協(xié)議采用了全局分配(靜態(tài)分配)和本地分配(動態(tài)分配)相結(jié)合的分配方法。對于地分配(動態(tài)分配)相結(jié)合的分配方法。對于TCP,或者或者UDP,將它們的全部,將它們的全部65535個端口號分為保留個端口號分為保留端口號和自由端口號兩部分。端口號和自由端口號兩部分。 保留端口保留端口的范圍是的范圍是01023,又稱為,又稱為眾所周知的眾所周知的端口端口或或熟知端口熟知端口(well-known port),只占少數(shù),),只占少數(shù),采用全局分配或集中控制的方式,由一個公認的中采用全局分配或集中控制的方式,由一個公認
15、的中央機構(gòu)根據(jù)需要進行統(tǒng)一分配,靜態(tài)地分配給因特央機構(gòu)根據(jù)需要進行統(tǒng)一分配,靜態(tài)地分配給因特網(wǎng)上著名的網(wǎng)上著名的眾所周知的服務(wù)器進程眾所周知的服務(wù)器進程,并將結(jié)果公布,并將結(jié)果公布于眾。于眾。 表表1.1 一些典型的應(yīng)用層協(xié)議分配到的保留端口一些典型的應(yīng)用層協(xié)議分配到的保留端口 TCP的保留端口的保留端口UDP的保留端口的保留端口FTP21/20DNS53HTTP80TFTP69SMTP25SNMP161/162POP3110 其余的端口號,其余的端口號,1024-65535,稱為,稱為自由端自由端口號口號,采用本地分配,又稱為動態(tài)分配的方法。,采用本地分配,又稱為動態(tài)分配的方法。 一些典型的
16、眾所周知端口號 總之,總之,TCP或或UDP端口的分配規(guī)則是:端口的分配規(guī)則是:n 端口端口0: 不使用,或者作為特殊的使用;不使用,或者作為特殊的使用;n 端口端口1-255:保留給特定的服務(wù),保留給特定的服務(wù),TCP和和UDP均規(guī)均規(guī) 定,小于定,小于256的端口的端口號號才能分配給網(wǎng)才能分配給網(wǎng) 上上著名的服務(wù)著名的服務(wù);n 端口端口256-1023:保留給其他的服務(wù);:保留給其他的服務(wù);n 端口端口1024-4999:可用作任意可用作任意客戶端客戶端的端口的端口;n 端口端口5000-65535:可用作用戶的自定義服務(wù)器端口:可用作用戶的自定義服務(wù)器端口2端口的概念圖圖1.5 客戶與服
17、務(wù)器的第一次通信客戶與服務(wù)器的第一次通信 在這樣的端口分配機制下,客戶進程在這樣的端口分配機制下,客戶進程Client與與服務(wù)器進程服務(wù)器進程Server第一次通信的情景見圖第一次通信的情景見圖1.5。 4進程的網(wǎng)絡(luò)地址的概念 三元組唯一標(biāo)識一個應(yīng)用層進程 在因特網(wǎng)絡(luò)中,用一個三元組可以在全局中在因特網(wǎng)絡(luò)中,用一個三元組可以在全局中唯一地標(biāo)識一個應(yīng)用層進程:唯一地標(biāo)識一個應(yīng)用層進程: 應(yīng)用層進程地址應(yīng)用層進程地址= (傳輸層協(xié)議,主機的傳輸層協(xié)議,主機的IP地址,傳輸層的端口號地址,傳輸層的端口號) 這樣一個這樣一個三元組三元組,叫做一個,叫做一個半相關(guān)半相關(guān)(half-association
18、),它),它標(biāo)識了標(biāo)識了因特網(wǎng)中,進程間通信的因特網(wǎng)中,進程間通信的一個端點一個端點,也把它稱為進程的網(wǎng)絡(luò)地址。,也把它稱為進程的網(wǎng)絡(luò)地址。 5網(wǎng)絡(luò)中進程通信的標(biāo)識 一個完整的網(wǎng)間通信需要一個五元組在全局中一個完整的網(wǎng)間通信需要一個五元組在全局中唯一地來標(biāo)識:唯一地來標(biāo)識:(傳輸層協(xié)議,本地機傳輸層協(xié)議,本地機IP地址,本地機傳輸層端口,地址,本地機傳輸層端口, 遠地機遠地機IP地址,遠地機傳輸層端口地址,遠地機傳輸層端口) 這個這個五元組五元組稱為一個稱為一個全相關(guān)全相關(guān)(association)。即)。即兩個協(xié)議相同的半相關(guān)才能組合成一個合適的全相兩個協(xié)議相同的半相關(guān)才能組合成一個合適的全
19、相關(guān),或完全指定關(guān),或完全指定一對網(wǎng)間通信的進程一對網(wǎng)間通信的進程。 五元組唯一標(biāo)識一個網(wǎng)間通信1面向消息的協(xié)議與基于流的協(xié)議(1)面向消息的協(xié)議)面向消息的協(xié)議 面向消息的協(xié)議以消息為單位在網(wǎng)上傳面向消息的協(xié)議以消息為單位在網(wǎng)上傳送數(shù)據(jù),在發(fā)送端,消息一條一條地發(fā)送,送數(shù)據(jù),在發(fā)送端,消息一條一條地發(fā)送,在接收端,也只能一條一條地接收,在接收端,也只能一條一條地接收,每一條每一條消息是獨立的,消息之間存在著邊界。消息是獨立的,消息之間存在著邊界。 1.1.3 網(wǎng)絡(luò)協(xié)議的特征圖圖1.6 保護消息邊界的數(shù)據(jù)報傳輸服務(wù)保護消息邊界的數(shù)據(jù)報傳輸服務(wù) (1)面向消息的協(xié)議圖圖1.7 無消息邊界的流傳輸
20、服務(wù)無消息邊界的流傳輸服務(wù) 基于流的協(xié)議不保護消息邊界基于流的協(xié)議不保護消息邊界,將數(shù)據(jù),將數(shù)據(jù)當(dāng)作當(dāng)作字節(jié)字節(jié)流流連續(xù)地傳輸連續(xù)地傳輸,不管實際消息邊界是否存在。,不管實際消息邊界是否存在。(2)基于流的協(xié)議 一個協(xié)議可以提供面向連接的服務(wù),或者提供無一個協(xié)議可以提供面向連接的服務(wù),或者提供無連接的服務(wù)。連接的服務(wù)。 面向連接服務(wù)面向連接服務(wù)是電話系統(tǒng)服務(wù)模式的抽象,即每是電話系統(tǒng)服務(wù)模式的抽象,即每一次完整的數(shù)據(jù)傳輸都要經(jīng)過建立連接,使用連接,一次完整的數(shù)據(jù)傳輸都要經(jīng)過建立連接,使用連接,終止連接的過程。終止連接的過程。 無連接服務(wù)無連接服務(wù)是郵政系統(tǒng)服務(wù)的抽象,每個分組都是郵政系統(tǒng)服務(wù)的
21、抽象,每個分組都攜帶完整的目的地址,各分組在系統(tǒng)中獨立傳送。攜帶完整的目的地址,各分組在系統(tǒng)中獨立傳送。 2面向連接的服務(wù)和無連接的服務(wù) 可靠性可靠性保證了發(fā)送端發(fā)出的每個字節(jié)都能到達既保證了發(fā)送端發(fā)出的每個字節(jié)都能到達既定的接收端,不出錯,不丟失,不重復(fù),保證數(shù)據(jù)的定的接收端,不出錯,不丟失,不重復(fù),保證數(shù)據(jù)的完整性,稱為保證投遞。完整性,稱為保證投遞。 次序性次序性是指對數(shù)據(jù)到達接收端的順序進行處理。是指對數(shù)據(jù)到達接收端的順序進行處理。保護次序性的協(xié)議保證接收端收到數(shù)據(jù)的順序就是數(shù)保護次序性的協(xié)議保證接收端收到數(shù)據(jù)的順序就是數(shù)據(jù)的發(fā)送順序,稱為按序遞交。據(jù)的發(fā)送順序,稱為按序遞交。 3可靠
22、性和次序性 傳輸層的傳輸層的用戶數(shù)據(jù)報協(xié)議(用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,UDP)是一種是一種盡力傳送的無連接的不盡力傳送的無連接的不保障可靠的傳輸服務(wù)保障可靠的傳輸服務(wù),是一種保護消息邊界的數(shù)據(jù)是一種保護消息邊界的數(shù)據(jù)的傳輸。的傳輸。 1.1.4 高效的用戶數(shù)據(jù)報協(xié)議UDP1. 可靠性是很多應(yīng)用的基礎(chǔ) 2. TCP為應(yīng)用層提供的服務(wù) 傳輸控制協(xié)議傳輸控制協(xié)議 ( Transmission Control Protocol,TCP)應(yīng)用層進程應(yīng)用層進程提供一個提供一個面向連面向連接的接的、端到端的端到端的、完全可靠的完全可靠的(無差錯、無(無差錯、無丟失、無重復(fù)
23、或失序)丟失、無重復(fù)或失序)全雙工全雙工的的流傳輸流傳輸服務(wù)服務(wù)。1.1.5 可靠的傳輸控制協(xié)議TCP TCP被稱作一種端對端(被稱作一種端對端(end to end)協(xié)議,)協(xié)議,這是因為它提供一個直接從一臺計算機上的應(yīng)用進這是因為它提供一個直接從一臺計算機上的應(yīng)用進程到另一遠程計算機上的應(yīng)用進程的連接。應(yīng)用進程到另一遠程計算機上的應(yīng)用進程的連接。應(yīng)用進程能請求程能請求TCP構(gòu)造一個連接,通過這個連接發(fā)送和構(gòu)造一個連接,通過這個連接發(fā)送和接收數(shù)據(jù),以及關(guān)閉連接。接收數(shù)據(jù),以及關(guān)閉連接。 由由TCP提供的連接叫做虛連接(提供的連接叫做虛連接(virtual connection),虛連接是由軟
24、件實現(xiàn)的。事實上,),虛連接是由軟件實現(xiàn)的。事實上,底層的因特網(wǎng)系統(tǒng)并不對連接提供硬件或軟件支持,底層的因特網(wǎng)系統(tǒng)并不對連接提供硬件或軟件支持,只是兩臺機器上的只是兩臺機器上的TCP軟件模塊通過交換消息來實軟件模塊通過交換消息來實現(xiàn)連接的幻象?,F(xiàn)連接的幻象。 3. TCP利用IP數(shù)據(jù)報實現(xiàn)了端對端傳輸服務(wù)圖圖1.8 TCP是一個端到端的傳輸協(xié)議是一個端到端的傳輸協(xié)議 TCP是一個端到端的傳輸協(xié)議圖圖1.9 TCP的三次握手過程的三次握手過程 為確保連接的建立和終止都是可靠的,為確保連接的建立和終止都是可靠的,TCP使使用用三次握手三次握手(3-way handshake)的方式來)的方式來建建
25、立連接立連接。4三次握手1.2.1 基于TCP/IP協(xié)議棧的網(wǎng)絡(luò)編程 基于基于TCP/IP協(xié)議棧的網(wǎng)絡(luò)編程是最基本的協(xié)議棧的網(wǎng)絡(luò)編程是最基本的網(wǎng)絡(luò)編程方式,主要是使用各種編程語言,利用網(wǎng)絡(luò)編程方式,主要是使用各種編程語言,利用操作系統(tǒng)提供的套接字網(wǎng)絡(luò)編程接口,直接開發(fā)操作系統(tǒng)提供的套接字網(wǎng)絡(luò)編程接口,直接開發(fā)各種網(wǎng)絡(luò)應(yīng)用程序。本書主要講解這種網(wǎng)絡(luò)編程各種網(wǎng)絡(luò)應(yīng)用程序。本書主要講解這種網(wǎng)絡(luò)編程的相關(guān)技術(shù)。的相關(guān)技術(shù)。1.2 三類網(wǎng)絡(luò)編程n WWW應(yīng)用是因特網(wǎng)上最廣泛的應(yīng)用,應(yīng)用是因特網(wǎng)上最廣泛的應(yīng)用,稱為萬維網(wǎng)稱為萬維網(wǎng)n 基于基于WWW應(yīng)用的網(wǎng)絡(luò)編程技術(shù),包括應(yīng)用的網(wǎng)絡(luò)編程技術(shù),包括所見即所得
26、的網(wǎng)頁制作工具,和動態(tài)服所見即所得的網(wǎng)頁制作工具,和動態(tài)服務(wù)器頁面的制作技術(shù)。務(wù)器頁面的制作技術(shù)。 1.2.2 基于WWW應(yīng)用的網(wǎng)絡(luò)編程1關(guān)于.NET平臺 微軟公司在微軟公司在2000年年7月公布的月公布的.NET平臺是一平臺是一個全新的開發(fā)框架,集成了微軟二十世紀(jì)九十年代個全新的開發(fā)框架,集成了微軟二十世紀(jì)九十年代后期的許多技術(shù),后期的許多技術(shù), (1) .NET平臺有四組產(chǎn)品平臺有四組產(chǎn)品 開發(fā)工具:開發(fā)工具: 專用服務(wù)器專用服務(wù)器 Web 服務(wù)。服務(wù)。 設(shè)備:設(shè)備: 1.2.3 基于.NET框架的Web Services網(wǎng)絡(luò)編程1關(guān)于.NET平臺(2) MS.NET 順應(yīng)了軟件工業(yè)的趨勢
27、,包括以順應(yīng)了軟件工業(yè)的趨勢,包括以下幾個方面:下幾個方面: 分布式計算:分布式計算: 組件化:組件化: 企業(yè)級別的服務(wù):企業(yè)級別的服務(wù): WEB 范型轉(zhuǎn)移:范型轉(zhuǎn)移: (3) .NET 平臺由三層軟件構(gòu)成平臺由三層軟件構(gòu)成 頂層是全新的開發(fā)工具頂層是全新的開發(fā)工具VS.NET, 中間層包括三部分:中間層包括三部分: .NET服務(wù)器、服務(wù)器、 .NET服務(wù)構(gòu)件和服務(wù)構(gòu)件和 .NET框架??蚣堋?底層是底層是WINDOWS操作系統(tǒng)。操作系統(tǒng)。 1關(guān)于.NET平臺(4) .NET 框架的設(shè)計要支持的目標(biāo)框架的設(shè)計要支持的目標(biāo) 簡化組件的使用:簡化組件的使用: 實現(xiàn)語言的集成:實現(xiàn)語言的集成: 支持
28、支持Internet的互操作:的互操作: 簡化軟件的開發(fā):簡化軟件的開發(fā): 簡化組件的部署:簡化組件的部署: 提高可靠性:提高可靠性: 提高安全性:提高安全性: 1關(guān)于.NET平臺 什么是什么是Web服務(wù)?服務(wù)?Web服務(wù)是服務(wù)是松散耦合松散耦合的的可復(fù)用可復(fù)用的的軟件模塊軟件模塊,在,在Internet上上發(fā)布發(fā)布后,能后,能通過標(biāo)準(zhǔn)的通過標(biāo)準(zhǔn)的Internet 協(xié)議在程序中協(xié)議在程序中訪問訪問,具有,具有以下的特點:以下的特點: (1)可復(fù)用:)可復(fù)用: (2)松散耦合:)松散耦合: (3)封裝了離散:)封裝了離散: (4)Web服務(wù)可以在程序中訪問服務(wù)可以在程序中訪問 (5)Web服務(wù)在
29、服務(wù)在Internet上發(fā)布上發(fā)布 2關(guān)于Web服務(wù) 本節(jié)著重于因特網(wǎng)上的高級服務(wù),以及提本節(jié)著重于因特網(wǎng)上的高級服務(wù),以及提供這些服務(wù)的應(yīng)用軟件。討論網(wǎng)絡(luò)應(yīng)用軟件的供這些服務(wù)的應(yīng)用軟件。討論網(wǎng)絡(luò)應(yīng)用軟件的客戶服務(wù)器交互模式,并說明網(wǎng)絡(luò)協(xié)議操作客戶服務(wù)器交互模式,并說明網(wǎng)絡(luò)協(xié)議操作的方式為什么需要這種模式。這是構(gòu)筑所有網(wǎng)的方式為什么需要這種模式。這是構(gòu)筑所有網(wǎng)絡(luò)應(yīng)用的基礎(chǔ)。絡(luò)應(yīng)用的基礎(chǔ)。1.3 客戶服務(wù)器交互模式 因特網(wǎng)僅僅提供一個通用的通信構(gòu)架,因特網(wǎng)僅僅提供一個通用的通信構(gòu)架,它只負責(zé)傳送信息,而對于信息傳過去干什它只負責(zé)傳送信息,而對于信息傳過去干什么用,利用因特網(wǎng)究竟提供什么服務(wù),由哪
30、么用,利用因特網(wǎng)究竟提供什么服務(wù),由哪些計算機來運行這些服務(wù),如何確定服務(wù)的些計算機來運行這些服務(wù),如何確定服務(wù)的存在,如何使用這些服務(wù)等等問題,都要由存在,如何使用這些服務(wù)等等問題,都要由應(yīng)用軟件和用戶解決。應(yīng)用軟件和用戶解決。 1.3.1 網(wǎng)絡(luò)應(yīng)用軟件的地位和功能 網(wǎng)絡(luò)應(yīng)用進程通信時,普遍采用客戶網(wǎng)絡(luò)應(yīng)用進程通信時,普遍采用客戶服務(wù)器交互模式(服務(wù)器交互模式(client-server paradigm of interaction),簡稱),簡稱C/S模式。模式。這是因特網(wǎng)上應(yīng)用程序最常用這是因特網(wǎng)上應(yīng)用程序最常用的通信模式。的通信模式。 1.3.2 客戶服務(wù)器模式服務(wù)器的工作過程 C/
31、S 模式過程中模式過程中, 服務(wù)器處于服務(wù)器處于被動服務(wù)被動服務(wù)的的地位。首先地位。首先服務(wù)器方服務(wù)器方要要先啟動先啟動,并根據(jù)客戶請,并根據(jù)客戶請求提供相應(yīng)服務(wù),服務(wù)器的工作過程是:求提供相應(yīng)服務(wù),服務(wù)器的工作過程是: (1)打開一通信通道,并通告服務(wù)器所在)打開一通信通道,并通告服務(wù)器所在主機愿意在某一公認的地址上(熟知端口,如主機愿意在某一公認的地址上(熟知端口,如FTP為為21)接收客戶請求。)接收客戶請求。 (2)等待客戶的請求到達該端口。)等待客戶的請求到達該端口。 (3)服務(wù)器服務(wù)器接收到客戶端的服務(wù)請求,接收到客戶端的服務(wù)請求,處理該請求并發(fā)送應(yīng)答信號。為了能并發(fā)地接處理該請求
32、并發(fā)送應(yīng)答信號。為了能并發(fā)地接收多個客戶的服務(wù)請求,要激活一個新進程或收多個客戶的服務(wù)請求,要激活一個新進程或新線程來處理這個客戶請求(如新線程來處理這個客戶請求(如UNIX系統(tǒng)中系統(tǒng)中用用fork、exec)。服務(wù)完成后,關(guān)閉此新進)。服務(wù)完成后,關(guān)閉此新進程與客戶的通信鏈路,并終止。程與客戶的通信鏈路,并終止。 (4)返回第二步,等待并處理另一客戶)返回第二步,等待并處理另一客戶請求。請求。 (5)在特定的情況下,關(guān)閉服務(wù)器。)在特定的情況下,關(guān)閉服務(wù)器。 客戶方客戶方采取的是采取的是主動請求主動請求方式,其工作方式,其工作過程是:過程是: (1)打開一通信通道,并)打開一通信通道,并連接
33、到連接到服務(wù)器服務(wù)器所所在主機的在主機的特定監(jiān)聽端口特定監(jiān)聽端口。 (2)向服務(wù)器發(fā)送請求報文,等待并接收)向服務(wù)器發(fā)送請求報文,等待并接收應(yīng)答;繼續(xù)提出請求,與服務(wù)器的會話按照應(yīng)答;繼續(xù)提出請求,與服務(wù)器的會話按照應(yīng)用協(xié)議進行。應(yīng)用協(xié)議進行。 (3)請求結(jié)束后,關(guān)閉通信通道并終止。)請求結(jié)束后,關(guān)閉通信通道并終止。客戶方的工作過程表表1.2 一些著名的網(wǎng)絡(luò)應(yīng)用一些著名的網(wǎng)絡(luò)應(yīng)用網(wǎng)絡(luò)應(yīng)用客戶端軟件服務(wù)器軟件應(yīng)用層協(xié)議電子郵件foxmail電子郵件服務(wù)器SMTP/POP3文件傳輸cutFTP文件傳輸服務(wù)器FTPWWW瀏覽IE瀏覽器IIS服務(wù)器HTTP一些網(wǎng)絡(luò)應(yīng)用的軟件及協(xié)議 客戶軟件和服務(wù)器軟件
34、通常還具有以下客戶軟件和服務(wù)器軟件通常還具有以下一些主要特點:一些主要特點: 1客戶軟件 (1)在進行網(wǎng)絡(luò)通信時臨時成為客戶,)在進行網(wǎng)絡(luò)通信時臨時成為客戶,但它也可在本地進行其他的計算。但它也可在本地進行其他的計算。 (2)被用戶調(diào)用,只為一個會話運行。)被用戶調(diào)用,只為一個會話運行。在打算通信時主動向遠地服務(wù)器發(fā)起通信。在打算通信時主動向遠地服務(wù)器發(fā)起通信。1.3.3 客戶與服務(wù)器的特性 (3)能訪問所需的多種服務(wù),但在某一)能訪問所需的多種服務(wù),但在某一時刻只能與一個遠程服務(wù)器進行主動通信。時刻只能與一個遠程服務(wù)器進行主動通信。 (4)主動地啟動與服務(wù)器的通信。)主動地啟動與服務(wù)器的通信
35、。 (5)在用戶的計算機上運行,不需要特)在用戶的計算機上運行,不需要特殊的硬件和很復(fù)雜的操作系統(tǒng)。殊的硬件和很復(fù)雜的操作系統(tǒng)。 1客戶軟件 (1)是一種專門用來提供某種服務(wù)的程序,)是一種專門用來提供某種服務(wù)的程序,可同時處理多個遠地客戶的請求??赏瑫r處理多個遠地客戶的請求。 (2)當(dāng)系統(tǒng)啟動時即自動調(diào)用,并且連續(xù)運)當(dāng)系統(tǒng)啟動時即自動調(diào)用,并且連續(xù)運行著,不斷地為多個會話服務(wù)。行著,不斷地為多個會話服務(wù)。 (3)接受來自任何客戶的通信請求,但只提)接受來自任何客戶的通信請求,但只提供一種服務(wù)。供一種服務(wù)。 (4)被動地等待并接受來自多個遠端客戶的)被動地等待并接受來自多個遠端客戶的通信請求
36、。通信請求。 (5)在共享計算機上運行,一般需要強大的)在共享計算機上運行,一般需要強大的硬件和高級的操作系統(tǒng)支持。硬件和高級的操作系統(tǒng)支持。2服務(wù)器軟件 (1)客戶和服務(wù)器都是軟件進程,)客戶和服務(wù)器都是軟件進程,C/S模式是網(wǎng)絡(luò)上通過進程通信建立分布式應(yīng)用模式是網(wǎng)絡(luò)上通過進程通信建立分布式應(yīng)用的常用模型。的常用模型。 (2)非對稱性:服務(wù)器通過網(wǎng)絡(luò)提供服)非對稱性:服務(wù)器通過網(wǎng)絡(luò)提供服務(wù),客戶通過網(wǎng)絡(luò)使用服務(wù),這種不對稱性務(wù),客戶通過網(wǎng)絡(luò)使用服務(wù),這種不對稱性體現(xiàn)在軟件結(jié)構(gòu)和工作過程上。體現(xiàn)在軟件結(jié)構(gòu)和工作過程上。3基于因特網(wǎng)的C/S模式應(yīng)用程序的特點 (3)對等性:客戶和服務(wù)器必有一套共
37、)對等性:客戶和服務(wù)器必有一套共識的約定,必與以某種應(yīng)用層協(xié)議相聯(lián),并識的約定,必與以某種應(yīng)用層協(xié)議相聯(lián),并且協(xié)議必須在通信的兩端實現(xiàn)。比如瀏覽器且協(xié)議必須在通信的兩端實現(xiàn)。比如瀏覽器和和 WWW 服務(wù)器就都基于服務(wù)器就都基于 HTTP 超文本傳超文本傳輸協(xié)議。輸協(xié)議。 (4)服務(wù)器的被動性:服務(wù)器必須先行)服務(wù)器的被動性:服務(wù)器必須先行啟動,時刻監(jiān)聽,日夜值守,及時服務(wù),只啟動,時刻監(jiān)聽,日夜值守,及時服務(wù),只要有客戶請求,就立即處理并響應(yīng),回傳信要有客戶請求,就立即處理并響應(yīng),回傳信息。但決不主動提供服務(wù)。息。但決不主動提供服務(wù)。 (5)客戶機的主動性:客戶機可以隨時)客戶機的主動性:客戶
38、機可以隨時提出請求,通過網(wǎng)絡(luò)得到服務(wù),也可以關(guān)機提出請求,通過網(wǎng)絡(luò)得到服務(wù),也可以關(guān)機走人,一次請求與服務(wù)的過程是由客戶機首走人,一次請求與服務(wù)的過程是由客戶機首先激發(fā)的。先激發(fā)的。 (6)一對多:一個服務(wù)器可以為多個客)一對多:一個服務(wù)器可以為多個客戶機服務(wù),客戶機也可以打開多個窗口,連戶機服務(wù),客戶機也可以打開多個窗口,連接多個服務(wù)器。接多個服務(wù)器。 (7)分布性與共享性:資源在服務(wù)器端)分布性與共享性:資源在服務(wù)器端組織與存儲,通過網(wǎng)絡(luò)分散在多個客戶端使組織與存儲,通過網(wǎng)絡(luò)分散在多個客戶端使用。用。1服務(wù)器程序與服務(wù)器類計算機 服務(wù)器服務(wù)器(server)這個術(shù)語來指那)這個術(shù)語來指那些
39、運行著的些運行著的服務(wù)程序服務(wù)程序。 服務(wù)器類計算機服務(wù)器類計算機(server-class computer)這一術(shù)語來稱呼那些運行)這一術(shù)語來稱呼那些運行服務(wù)器軟件的強大的服務(wù)器軟件的強大的計算機計算機。1.3.4 容易混淆的術(shù)語2客戶與用戶 “客戶客戶”(client)和和服務(wù)器服務(wù)器都指的是都指的是應(yīng)用進應(yīng)用進程程,即計算機軟件。,即計算機軟件。 “用戶用戶”(user)指的是使用計算機的指的是使用計算機的人人。 圖圖1.10 說明了這些概念的區(qū)別。說明了這些概念的區(qū)別。 用戶、客戶、服務(wù)器、服務(wù)器類計算機圖圖1.10 用戶、客戶、服務(wù)器、服務(wù)器類計算機用戶、客戶、服務(wù)器、服務(wù)器類計算
40、機 客戶與服務(wù)器的通信過程一般是這樣的:客戶與服務(wù)器的通信過程一般是這樣的: (1)通信之前,)通信之前,服務(wù)器服務(wù)器應(yīng)應(yīng)先行啟動先行啟動,并通,并通知它的下層協(xié)議棧做好接收客戶請求的準(zhǔn)備,知它的下層協(xié)議棧做好接收客戶請求的準(zhǔn)備,然后然后被動地等待被動地等待客戶的通信請求,稱服務(wù)器處客戶的通信請求,稱服務(wù)器處于于監(jiān)聽狀態(tài)監(jiān)聽狀態(tài)。1.3.5 客戶與服務(wù)器的通信過程 (2)由)由客戶客戶向服務(wù)器向服務(wù)器發(fā)送請求發(fā)送請求,服務(wù)器服務(wù)器向客戶向客戶返回應(yīng)答返回應(yīng)答。一般,客戶隨時可以主動啟動通信,向。一般,客戶隨時可以主動啟動通信,向服務(wù)器發(fā)出連接請求,服務(wù)器接收這個請求,就建服務(wù)器發(fā)出連接請求,服
41、務(wù)器接收這個請求,就建立了二者的通信關(guān)系。立了二者的通信關(guān)系。 (3)客戶與服務(wù)器的通信關(guān)系一旦建立,客戶)客戶與服務(wù)器的通信關(guān)系一旦建立,客戶和服務(wù)器都可和服務(wù)器都可發(fā)送發(fā)送和和接收接收信息。信息在客戶與服務(wù)信息。信息在客戶與服務(wù)器之間可以沿任一方向或兩個方向傳遞。在某些情器之間可以沿任一方向或兩個方向傳遞。在某些情況下,客戶向服務(wù)器發(fā)送一系列請求,服務(wù)器相應(yīng)況下,客戶向服務(wù)器發(fā)送一系列請求,服務(wù)器相應(yīng)地返回一系列應(yīng)答。地返回一系列應(yīng)答。 客戶與服務(wù)器作為兩個軟件實體,它客戶與服務(wù)器作為兩個軟件實體,它們之間的通信是虛擬的,是概念上的,實們之間的通信是虛擬的,是概念上的,實際的通信要借助下層
42、的網(wǎng)絡(luò)協(xié)議棧來進行。際的通信要借助下層的網(wǎng)絡(luò)協(xié)議棧來進行。1.3.6 網(wǎng)絡(luò)協(xié)議與CS模式的關(guān)系1.3.7 錯綜復(fù)雜的客戶服務(wù)器交互 在在C/S模式中,存在著三種模式中,存在著三種“一與多一與多”的的關(guān)系:關(guān)系: (1)一個服務(wù)器一個服務(wù)器同時為同時為多個多個客戶服務(wù);客戶服務(wù); (2)一個用戶的計算機一個用戶的計算機上同時運行上同時運行多個多個連連接不同服務(wù)器的客戶;接不同服務(wù)器的客戶; (3)一個服務(wù)器類的計算機一個服務(wù)器類的計算機同時運行同時運行多個多個服務(wù)器。服務(wù)器。 一計算機中多個服務(wù)器被多個客戶訪問圖圖1.11 一臺計算機中的多個服務(wù)器被多個計算機的客戶訪問一臺計算機中的多個服務(wù)器被
43、多個計算機的客戶訪問 并發(fā)性并發(fā)性是客戶服務(wù)器交互模式的基礎(chǔ),并發(fā)允是客戶服務(wù)器交互模式的基礎(chǔ),并發(fā)允許多個客戶獲得同一種服務(wù),而不必等待服務(wù)器完成許多個客戶獲得同一種服務(wù),而不必等待服務(wù)器完成對上一個請求的處理。這樣才能很好地同時為多個客對上一個請求的處理。這樣才能很好地同時為多個客戶提供服務(wù)。戶提供服務(wù)。 圖圖1.12 服務(wù)器創(chuàng)建多個線程來為多個客戶服務(wù)服務(wù)器創(chuàng)建多個線程來為多個客戶服務(wù) 1.3.8 服務(wù)器如何同時為多個客戶服務(wù) 在一臺服務(wù)器類的計算機中可以并發(fā)地在一臺服務(wù)器類的計算機中可以并發(fā)地運行多個服務(wù)器進程。它們都要借助協(xié)議棧來運行多個服務(wù)器進程。它們都要借助協(xié)議棧來交換信息,協(xié)議
44、棧就是多個服務(wù)器進程傳輸數(shù)交換信息,協(xié)議棧就是多個服務(wù)器進程傳輸數(shù)據(jù)的公用通道,據(jù)的公用通道, 這就有了一個問題,既然在一個服務(wù)器這就有了一個問題,既然在一個服務(wù)器類計算機中運行著多個服務(wù)器,如何能讓客戶類計算機中運行著多個服務(wù)器,如何能讓客戶無二義性地指明所希望的服務(wù)?無二義性地指明所希望的服務(wù)? 1.3.9 標(biāo)識一個特定服務(wù)沙漏計時器形狀的TCP/IP協(xié)議族 圖圖1.13 沙漏計時器形狀的沙漏計時器形狀的TCP/IP協(xié)議族協(xié)議族 每個服務(wù)賦予一個唯一的標(biāo)識 這個問題是由傳輸協(xié)議棧提供的一套機制來這個問題是由傳輸協(xié)議棧提供的一套機制來解決的。這種機制必須賦給解決的。這種機制必須賦給每個服務(wù)每
45、個服務(wù)一個一個唯一的標(biāo)唯一的標(biāo)識識,并要求服務(wù)器和客戶都使用這個標(biāo)識。當(dāng)服務(wù),并要求服務(wù)器和客戶都使用這個標(biāo)識。當(dāng)服務(wù)器開始執(zhí)行時,它在本地的協(xié)議棧軟件中登記,指器開始執(zhí)行時,它在本地的協(xié)議棧軟件中登記,指明它所提供的服務(wù)的標(biāo)識。明它所提供的服務(wù)的標(biāo)識。 當(dāng)客戶與遠程服務(wù)器通信時,客戶在提出請求當(dāng)客戶與遠程服務(wù)器通信時,客戶在提出請求時,通過這個標(biāo)識來指定所希望的服務(wù)??蛻舳藱C時,通過這個標(biāo)識來指定所希望的服務(wù)。客戶端機器的傳輸協(xié)議棧軟件將該標(biāo)識傳給服務(wù)器端機器。器的傳輸協(xié)議棧軟件將該標(biāo)識傳給服務(wù)器端機器。服務(wù)器端機器的傳輸協(xié)議棧則根據(jù)該標(biāo)識來決定由服務(wù)器端機器的傳輸協(xié)議棧則根據(jù)該標(biāo)識來決定由
46、哪個服務(wù)器程序來處理這個請求。哪個服務(wù)器程序來處理這個請求。 1.4 P2P 模式 1.4.1 單服務(wù)器存在的問題 隨著應(yīng)用規(guī)模的不斷擴大,軟件復(fù)雜度不斷提隨著應(yīng)用規(guī)模的不斷擴大,軟件復(fù)雜度不斷提高,面對巨大的用戶群,單服務(wù)器成了性能的瓶頸高,面對巨大的用戶群,單服務(wù)器成了性能的瓶頸 ,另外,服務(wù)器上的搜索引擎不能提供最新的動態(tài),另外,服務(wù)器上的搜索引擎不能提供最新的動態(tài)信息、網(wǎng)絡(luò)訪問集中在有限的服務(wù)器上流量非常不信息、網(wǎng)絡(luò)訪問集中在有限的服務(wù)器上流量非常不平衡、客戶端只做一些簡單的工作造成資源的巨大平衡、客戶端只做一些簡單的工作造成資源的巨大浪費,浪費,等等,為了解決這些問題,就出現(xiàn)了,等等
47、,為了解決這些問題,就出現(xiàn)了P2P技術(shù)。技術(shù)。 1.4.2 P2P的定義和特征 P2P技術(shù)就是一種在計算機之間技術(shù)就是一種在計算機之間直接直接進行資源進行資源和服務(wù)的共享,不需要服務(wù)器介入的網(wǎng)絡(luò)技術(shù)。和服務(wù)的共享,不需要服務(wù)器介入的網(wǎng)絡(luò)技術(shù)。 在在P2P網(wǎng)絡(luò)中,網(wǎng)絡(luò)中,每臺計算機同時充當(dāng)著每臺計算機同時充當(dāng)著Server和和Client的角色的角色,當(dāng)需要其他電腦的文件和服務(wù)時,兩,當(dāng)需要其他電腦的文件和服務(wù)時,兩臺電腦直接建立連接,本機是臺電腦直接建立連接,本機是Client;而當(dāng)響應(yīng)其他;而當(dāng)響應(yīng)其他電腦的資源要求時,本機又成為提供資源與服務(wù)的電腦的資源要求時,本機又成為提供資源與服務(wù)的S
48、erver。 (1)分散性)分散性(2)規(guī)模性)規(guī)模性(3)擴展性)擴展性(4)Servent性性(5)自治性)自治性(6)互助性)互助性(7)自組織性)自組織性P2P系統(tǒng)具有以下特征: P2P 的發(fā)展分為三代,的發(fā)展分為三代, 第一代第一代以以 Napster 系統(tǒng)為代表系統(tǒng)為代表 第二代第二代 P2P 使用基于分布式哈希表(使用基于分布式哈希表(Distributer Hash Table,DHT)的協(xié)議)的協(xié)議 第三代第三代 P2P 采用混合型的覆蓋網(wǎng)絡(luò)結(jié)構(gòu)采用混合型的覆蓋網(wǎng)絡(luò)結(jié)構(gòu)1.4.3 P2P的發(fā)展 該方式由一臺大型服務(wù)器提供該方式由一臺大型服務(wù)器提供目目錄服務(wù)錄服務(wù),當(dāng),當(dāng)用戶用戶啟動對等結(jié)點上的啟動對等結(jié)點上的P2P共享程序時,會將該對等結(jié)點的共享程序時,會將該對等結(jié)點的IP地址以及
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒吧的勞動合同
- 火焰探測器的種類和應(yīng)用
- 基于LabVIEW的鐵路彈條扣壓力測量系統(tǒng)設(shè)計
- 無償合同的題
- VTE預(yù)防相關(guān)護理管理制度
- 《2 太陽與行星間的引力》課件-高中物理-必修2-蘇教版
- 2025年新科版九年級歷史下冊階段測試試卷
- 智能交通系統(tǒng)研發(fā)合同(2篇)
- 服務(wù)評估與反饋協(xié)議書(2篇)
- 2025年新科版選修2地理下冊月考試卷含答案
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 電力系統(tǒng)動態(tài)仿真與建模
- 中國的古代祭祀文化
- 學(xué)校中層干部管理培訓(xùn)
- 《航運市場營銷》課件-海運巨頭馬士基
- 繪本創(chuàng)作方案
- 《童年的水墨畫》的說課課件
- 地鐵保潔服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 2023年河南省新鄉(xiāng)市鳳泉區(qū)事業(yè)單位招聘53人高頻考點題庫(共500題含答案解析)模擬練習(xí)試卷
- 2023年小升初簡歷下載
- 廣府文化的奇葩
評論
0/150
提交評論