




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
網(wǎng)絡(luò)通信協(xié)議及編程技術(shù)
——網(wǎng)絡(luò)編程基礎(chǔ)軟件工程教研室洪中2015年3月課程基本信息課程名稱:網(wǎng)絡(luò)通信協(xié)議及編程技術(shù)英文名稱:
NetworkApplicationProgramming學(xué)時(shí):68(36+32)學(xué)分:3課程類型:選修課程性質(zhì):專業(yè)課開(kāi)課學(xué)期:第六學(xué)期課程性質(zhì)、目標(biāo)及要求《網(wǎng)絡(luò)通信協(xié)議及編程技術(shù)》課程是我院計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)學(xué)生,尤其是網(wǎng)絡(luò)方向?qū)W生的一門(mén)選修的專業(yè)課。本課程是為培養(yǎng)專業(yè)的網(wǎng)絡(luò)方向人才服務(wù)的。通過(guò)本課程的學(xué)習(xí),要使學(xué)生掌握網(wǎng)絡(luò)編程的基本概念、一般流程、方法;能夠動(dòng)手編寫(xiě)網(wǎng)絡(luò)應(yīng)用程序;進(jìn)一步加強(qiáng)編程能力,分析問(wèn)題、解決問(wèn)題的能力;更深入的理解網(wǎng)絡(luò)通信協(xié)議,為日后從事計(jì)算機(jī)網(wǎng)絡(luò)方向的工作奠定良好的基礎(chǔ)。課程教材本課程采用由葉樹(shù)華編著、人民郵電出版社2010出版的《網(wǎng)絡(luò)編程實(shí)用教程》第二版一書(shū),作為本課程的主教材。為了更好地理解和學(xué)習(xí)課程內(nèi)容,建議學(xué)習(xí)者可以進(jìn)一步閱讀以下幾本重要的參考書(shū):1.《WindowsSockets網(wǎng)絡(luò)編程》,(美)BobQuinn等編,徐磊等譯,機(jī)械工業(yè)出版社.2.《VisualC++網(wǎng)絡(luò)通信編程技術(shù)詳解》,代勇等編,機(jī)械工業(yè)出版社.3.微軟公司.MSDN資料庫(kù)課程考核本課程總評(píng)成績(jī)擬由平時(shí)學(xué)習(xí)情況、課程作品、期末(上機(jī))實(shí)驗(yàn)考試三大部分構(gòu)成。其中:平時(shí)學(xué)習(xí)情況占總評(píng)成績(jī)的20%;課程作品占總評(píng)成績(jī)的30%;期末(上機(jī))實(shí)驗(yàn)考試占總評(píng)成績(jī)的50%。平時(shí)學(xué)習(xí)情況包括:平時(shí)課堂出缺勤情況、課堂互動(dòng)參與情況、實(shí)驗(yàn)/作業(yè)完成情況。1網(wǎng)絡(luò)編程相關(guān)的基本概念2三類網(wǎng)絡(luò)編程3客戶機(jī)/服務(wù)器模式
V.S.P2P模式本章內(nèi)容網(wǎng)絡(luò)編程相關(guān)的基本概念進(jìn)程與線程的基本概念網(wǎng)絡(luò)應(yīng)用進(jìn)程
在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置實(shí)現(xiàn)網(wǎng)間進(jìn)程通信必須解決的問(wèn)題因特網(wǎng)中網(wǎng)間進(jìn)程的標(biāo)識(shí)網(wǎng)絡(luò)協(xié)議的特征客戶機(jī)/服務(wù)器交互模式P2P模式1、進(jìn)程與線程的基本概念程序(Program)是為完成特定任務(wù)、用某種語(yǔ)言編寫(xiě)的一組指令的集合,指一段靜態(tài)的代碼。進(jìn)程(Process)各種計(jì)算機(jī)應(yīng)用程序在運(yùn)行時(shí),都以進(jìn)程的形式存在。網(wǎng)絡(luò)應(yīng)用程序也不例外。是程序的一次執(zhí)行過(guò)程,是系統(tǒng)進(jìn)行調(diào)度和資源分配的一個(gè)獨(dú)立單位。每個(gè)進(jìn)程都有自己獨(dú)立的一塊內(nèi)存空間、一組系統(tǒng)資源。在進(jìn)程概念中,每個(gè)進(jìn)程的內(nèi)部數(shù)據(jù)和狀態(tài)都是完全獨(dú)立的。1、進(jìn)程與線程的基本概念線程(Thread)是進(jìn)程中某個(gè)單個(gè)順序的控制流,也被稱為輕量進(jìn)程(LightweightProcess)。是進(jìn)程中的實(shí)體。一個(gè)進(jìn)程可以有多個(gè)線程,一個(gè)線程必須有一個(gè)父進(jìn)程。不擁有系統(tǒng)資源,只有運(yùn)行必需的一些數(shù)據(jù)結(jié)構(gòu);它與父進(jìn)程的其他線程共享該進(jìn)程擁有的全部資源。1、進(jìn)程與線程的基本概念多進(jìn)程計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)程序(即多道程序,系統(tǒng)中同時(shí)存在多個(gè)進(jìn)程)叫進(jìn)程并發(fā)。操作系統(tǒng)使用不同的策略,如分時(shí)管理來(lái)管理各個(gè)進(jìn)程,按時(shí)間片輪流執(zhí)行每個(gè)進(jìn)程。多線程就是在操作系統(tǒng)每次分時(shí)給當(dāng)前進(jìn)程的一個(gè)時(shí)間片的CPU時(shí)間內(nèi),在若干獨(dú)立的可控制的線程之間進(jìn)行切換。
Windows系統(tǒng)不但支持多進(jìn)程,還支持多線程。當(dāng)創(chuàng)建一個(gè)進(jìn)程時(shí),系統(tǒng)會(huì)自動(dòng)創(chuàng)建它的第一個(gè)線程,稱為主線程。然后,該線程可以創(chuàng)建其他的線程,而這些線程又能創(chuàng)建更多的線程。
圖1.1單CPU分時(shí)地運(yùn)行進(jìn)程中的各個(gè)線程2、網(wǎng)絡(luò)應(yīng)用進(jìn)程
在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置從計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)的角度來(lái)看,網(wǎng)絡(luò)應(yīng)用進(jìn)程處于網(wǎng)絡(luò)層次結(jié)構(gòu)的最上層。
圖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)中的位置圖1.3網(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)中的位置從功能上,可以將網(wǎng)絡(luò)應(yīng)用程序分為兩部分:一部分是專門(mén)負(fù)責(zé)網(wǎng)絡(luò)通信的模塊,它們與網(wǎng)絡(luò)協(xié)議棧相連接,借助網(wǎng)絡(luò)協(xié)議棧提供的服務(wù)完成網(wǎng)絡(luò)上數(shù)據(jù)信息的交換。另一部分是面向用戶或者作其他處理的模塊,它們接收用戶的命令,或者對(duì)借助網(wǎng)絡(luò)傳輸過(guò)來(lái)的數(shù)據(jù)進(jìn)行加工。這兩部分模塊相互配合,來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用程序的功能。
2、網(wǎng)絡(luò)應(yīng)用進(jìn)程
在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置2、網(wǎng)絡(luò)應(yīng)用進(jìn)程
在網(wǎng)絡(luò)體系結(jié)構(gòu)中的位置3、實(shí)現(xiàn)網(wǎng)間進(jìn)程通信必須解決的問(wèn)題進(jìn)程通信的概念最初來(lái)源于單機(jī)系統(tǒng)。由于每個(gè)進(jìn)程都在自己的地址范圍內(nèi)運(yùn)行(各自獨(dú)立),為了保證兩個(gè)相互通信的進(jìn)程之間既不互相干擾,又能協(xié)調(diào)一致地工作,操作系統(tǒng)為進(jìn)程通信提供了相應(yīng)的設(shè)施。如:UNIX系統(tǒng)中的管道(Pipe)、命名管道(NamedPipe)和軟中斷信號(hào)(Signal);UNIXsystemV中的消息(Message)、共享存儲(chǔ)區(qū)(SharedMemory)和信號(hào)量(Semaphore)等。但它們都僅限于用在本機(jī)進(jìn)程之間的通信上。3、實(shí)現(xiàn)網(wǎng)間進(jìn)程通信必須解決的問(wèn)題網(wǎng)絡(luò)應(yīng)用程序最終要實(shí)現(xiàn)網(wǎng)絡(luò)資源的共享,共享的基礎(chǔ)就是必須能夠通過(guò)網(wǎng)絡(luò)輕松地傳遞各種信息。網(wǎng)絡(luò)編程首先要解決網(wǎng)間進(jìn)程通信的問(wèn)題。然后才能在通信的基礎(chǔ)上開(kāi)發(fā)各種應(yīng)用功能。
網(wǎng)間進(jìn)程通信是指網(wǎng)絡(luò)中不同主機(jī)中的應(yīng)用進(jìn)程之間的相互通信問(wèn)題。3、實(shí)現(xiàn)網(wǎng)間進(jìn)程通信必須解決的問(wèn)題網(wǎng)間進(jìn)程通信必須解決以下問(wèn)題:(1)網(wǎng)間進(jìn)程的標(biāo)識(shí)問(wèn)題(2)如何與網(wǎng)絡(luò)協(xié)議棧連接的問(wèn)題(3)多重協(xié)議的識(shí)別問(wèn)題(4)不同的通信服務(wù)的問(wèn)題4、因特網(wǎng)中網(wǎng)間進(jìn)程的標(biāo)識(shí)Internet是基于TCP/IP協(xié)議棧的。TCP/IP協(xié)議棧的特點(diǎn)是兩頭大,中間小。在應(yīng)用層,有眾多的應(yīng)用進(jìn)程,分別使用不同的應(yīng)用層協(xié)議;在網(wǎng)絡(luò)接口層,有多種數(shù)據(jù)鏈路層協(xié)議,可以和各種物理網(wǎng)相接;在網(wǎng)絡(luò)層,只有一個(gè)IP實(shí)體。TCP/IP協(xié)議提出了傳輸層協(xié)議端口(protocolport,簡(jiǎn)稱端口)的概念,成功地解決了通信進(jìn)程的標(biāo)識(shí)問(wèn)題。4、因特網(wǎng)中網(wǎng)間進(jìn)程的標(biāo)識(shí)傳輸層是計(jì)算機(jī)網(wǎng)絡(luò)中,通信主機(jī)內(nèi)部進(jìn)行獨(dú)立操作的第一層,是支持端到端的進(jìn)程通信的關(guān)鍵的一層。端口是TCP/IP協(xié)議族中,應(yīng)用層進(jìn)程與傳輸層協(xié)議實(shí)體間的通信接口。類似于文件描述符,每個(gè)端口都擁有一個(gè)叫作端口號(hào)(portnumber)的整數(shù)型標(biāo)識(shí)符。從實(shí)現(xiàn)的角度講,端口是一種抽象的軟件機(jī)制,包括一些數(shù)據(jù)結(jié)構(gòu)和I/O緩沖區(qū)。4、因特網(wǎng)中網(wǎng)間進(jìn)程的標(biāo)識(shí)圖1.4UDP與TCP的報(bào)文格式4、因特網(wǎng)中網(wǎng)間進(jìn)程的標(biāo)識(shí)TCP/IP協(xié)議采用了全局分配(靜態(tài)分配)和本地分配(動(dòng)態(tài)分配)相結(jié)合的分配方法。對(duì)于TCP,或者UDP,將它們的全部65535個(gè)端口號(hào)分為保留端口號(hào)和自由端口號(hào)兩部分。保留端口的范圍是0—1023,又稱為眾所周知的端口或熟知端口(well-knownport),只占少數(shù)采用全局分配或集中控制的方式,由一個(gè)公認(rèn)的中央機(jī)構(gòu)根據(jù)需要進(jìn)行統(tǒng)一分配,靜態(tài)地分配給因特網(wǎng)上著名的眾所周知的服務(wù)器進(jìn)程,并將結(jié)果公布于眾。4、因特網(wǎng)中網(wǎng)間進(jìn)程的標(biāo)識(shí)表1.1一些典型的應(yīng)用層協(xié)議分配到的保留端口
TCP的保留端口UDP的保留端口FTP21DNS53HTTP80TFTP69SMTP25SNMP161POP3110……
4、因特網(wǎng)中網(wǎng)間進(jìn)程的標(biāo)識(shí)TCP或UDP端口的分配規(guī)則是:端口0:不使用,或者作為特殊的使用;端口1-255:保留給特定的服務(wù),TCP和UDP均規(guī)定,小于256的端口號(hào)才能分配給網(wǎng)上著名的服務(wù);端口256-1023:保留給其他的服務(wù),如路由;端口1024-4999:可以用作任意客戶的端口;端口5000-65535:可以用作用戶的服務(wù)器端口。4、因特網(wǎng)中網(wǎng)間進(jìn)程的標(biāo)識(shí)4、因特網(wǎng)中網(wǎng)間進(jìn)程的標(biāo)識(shí)在因特網(wǎng)絡(luò)中,用一個(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)程的網(wǎng)絡(luò)地址。4、因特網(wǎng)中網(wǎng)間進(jìn)程的標(biāo)識(shí)一個(gè)完整的網(wǎng)間通信需要一個(gè)五元組在全局中唯一地來(lái)標(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)程。5、網(wǎng)絡(luò)協(xié)議的特征1.面向消息的協(xié)議與基于流的協(xié)議面向消息的協(xié)議:以消息為單位在網(wǎng)上傳送數(shù)據(jù),在發(fā)送端,消息一條一條地發(fā)送,在接收端,也只能一條一條地接收,每一條消息是獨(dú)立的,消息之間存在著邊界。
基于流的協(xié)議不保護(hù)消息邊界,將數(shù)據(jù)當(dāng)作字節(jié)流連續(xù)地傳輸,不管實(shí)際消息邊界是否存在。5、網(wǎng)絡(luò)協(xié)議的特征圖1.6保護(hù)消息邊界的數(shù)據(jù)報(bào)傳輸服務(wù)
圖1.7無(wú)消息邊界的流傳輸服務(wù)5、網(wǎng)絡(luò)協(xié)議的特征2.面向連接的服務(wù)和無(wú)連接的服務(wù)一個(gè)協(xié)議可以提供面向連接的服務(wù),或者提供無(wú)連接的服務(wù)。
面向連接服務(wù)是電話系統(tǒng)服務(wù)模式的抽象,即每一次完整的數(shù)據(jù)傳輸都要經(jīng)過(guò)建立連接,使用連接,終止連接的過(guò)程。無(wú)連接服務(wù)是郵政系統(tǒng)服務(wù)的抽象,每個(gè)分組都攜帶完整的目的地址,各分組在系統(tǒng)中獨(dú)立傳送。5、網(wǎng)絡(luò)協(xié)議的特征3.可靠性和次序性可靠性保證了發(fā)送端發(fā)出的每個(gè)字節(jié)都能到達(dá)既定的接收端,不出錯(cuò),不丟失,不重復(fù),保證數(shù)據(jù)的完整性,稱為保證投遞。次序性是指對(duì)數(shù)據(jù)到達(dá)接收端的順序進(jìn)行處理。保護(hù)次序性的協(xié)議保證接收端收到數(shù)據(jù)的順序就是數(shù)據(jù)的發(fā)送順序,稱為按序遞交。5、網(wǎng)絡(luò)協(xié)議的特征傳輸控制協(xié)議(TransmissionControlProtocol,TCP)是TCP/IP協(xié)議簇中主要的傳輸協(xié)議。TCP建立在網(wǎng)絡(luò)層的IP之上,為應(yīng)用層進(jìn)程提供一個(gè)面向連接的、端到端的、完全可靠的(無(wú)差錯(cuò)、無(wú)丟失、無(wú)重復(fù)或失序)全雙工的流傳輸服務(wù)。TCP允許網(wǎng)絡(luò)中的兩個(gè)應(yīng)用程序建立一個(gè)虛擬連接,并在任何一個(gè)方向上發(fā)送數(shù)據(jù),把數(shù)據(jù)當(dāng)作一個(gè)雙向字節(jié)流進(jìn)行交換,然后終止連接。每一TCP連接可靠地建立,從容地終止,在終止發(fā)生之前的所有數(shù)據(jù)都會(huì)被可靠地傳遞。5、網(wǎng)絡(luò)協(xié)議的特征TCP被稱作一種端對(duì)端(endtoend)協(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è)連接,通過(guò)這個(gè)連接發(fā)送和接收數(shù)據(jù),以及關(guān)閉連接。由TCP提供的連接叫做虛連接(virtualconnection),虛連接是由軟件實(shí)現(xiàn)的。事實(shí)上,底層的因特網(wǎng)系統(tǒng)并不對(duì)連接提供硬件或軟件支持,只是兩臺(tái)機(jī)器上的TCP軟件模塊通過(guò)交換消息來(lái)實(shí)現(xiàn)連接的幻象。圖1.8TCP是一個(gè)端到端的傳輸協(xié)議
5、網(wǎng)絡(luò)協(xié)議的特征傳輸層的用戶數(shù)據(jù)報(bào)協(xié)議(UserDatagramProtocol,UDP)是一種盡力傳送的無(wú)連接的不保障可靠的傳輸服務(wù),是一種保護(hù)消息邊界的數(shù)據(jù)的傳輸。UDP特別簡(jiǎn)單。由于沒(méi)有什么差錯(cuò)控制、流量控制,也就不能保證傳輸?shù)目煽?;由于在傳輸之前不需要連接,數(shù)據(jù)報(bào)之間就沒(méi)有任何聯(lián)系,是相互獨(dú)立的,因而也就省去了建立連接和撤銷連接的開(kāi)銷,傳輸是髙效的。究竟選擇TCP還是UDP,決定于應(yīng)用層程序?qū)τ诳煽啃院托实膬煞矫娴男枨蟆?/p>
6、三類網(wǎng)絡(luò)編程1、基于TCP/IP協(xié)議棧的網(wǎng)絡(luò)編程是最基本的網(wǎng)絡(luò)編程方式,主要是使用各種編程語(yǔ)言,利用操作系統(tǒng)提供的套接字網(wǎng)絡(luò)編程接口,直接開(kāi)發(fā)各種網(wǎng)絡(luò)應(yīng)用程序。層次比較低,編程者有較大的自由度。對(duì)編程者要求相對(duì)較高。6、三類網(wǎng)絡(luò)編程2、基于WWW應(yīng)用的網(wǎng)絡(luò)編程WWW應(yīng)用是因特網(wǎng)上最廣泛的應(yīng)用,稱為萬(wàn)維網(wǎng)。基于WWW應(yīng)用的網(wǎng)絡(luò)編程技術(shù),包括所見(jiàn)即所得的網(wǎng)頁(yè)制作工具,和動(dòng)態(tài)服務(wù)器頁(yè)面的制作技術(shù)。
6、三類網(wǎng)絡(luò)編程3、基于.NET框架的WebServices網(wǎng)絡(luò)編程什么是Web服務(wù)?Web服務(wù)是松散耦合的可復(fù)用的軟件模塊,在Internet上發(fā)布后,能通過(guò)標(biāo)準(zhǔn)的Internet協(xié)議在程序中訪問(wèn),具有以下的特點(diǎn):(1)可復(fù)用:(2)松散耦合:(3)封裝了離散:(4)Web服務(wù)可以在程序中訪問(wèn)(5)Web服務(wù)在Internet上發(fā)布
6、三類網(wǎng)絡(luò)編程面向服務(wù)的體系結(jié)構(gòu)(service-orientedarchitecture,SOA)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。7、客戶機(jī)/服務(wù)器交互模式因特網(wǎng)僅僅提供一個(gè)通用的通信構(gòu)架,它只負(fù)責(zé)傳送信息,而對(duì)于信息傳過(guò)去干什么用,利用因特網(wǎng)究竟提供什么服務(wù),由哪些計(jì)算機(jī)來(lái)運(yùn)行這些服務(wù),如何確定服務(wù)的存在,如何使用這些服務(wù)等等問(wèn)題,都要由應(yīng)用軟件和用戶(軟件端)解決。網(wǎng)絡(luò)應(yīng)用進(jìn)程通信時(shí),普遍采用客戶機(jī)/服務(wù)器交互模式(client-serverparadigmofinteraction),簡(jiǎn)稱C/S模式。這是因特網(wǎng)上應(yīng)用程序最常用的通信模式。7、客戶機(jī)/服務(wù)器交互模式C/S(客戶機(jī)-服務(wù)器)軟件體系結(jié)構(gòu)是基于資源不對(duì)等,且為實(shí)現(xiàn)共享而提出來(lái)的,是20世紀(jì)90年代成熟起來(lái)的技術(shù),C/S體系結(jié)構(gòu)定義了工作站如何與服務(wù)器相連,以實(shí)現(xiàn)數(shù)據(jù)和應(yīng)用分布到多個(gè)處理機(jī)上。7、客戶機(jī)/服務(wù)器交互模式C/S模式過(guò)程中服務(wù)器處于被動(dòng)服務(wù)的地位。首先服務(wù)器方要先啟動(dòng),并根據(jù)客戶請(qǐng)求提供相應(yīng)服務(wù)。7、客戶機(jī)/服務(wù)器交互模式服務(wù)器的工作過(guò)程是:(1)打開(kāi)一通信通道,并告知服務(wù)器所在的主機(jī),它愿意在某一公認(rèn)的地址上接收客戶請(qǐng)求。(2)等待客戶的請(qǐng)求到達(dá)該端口。(3)服務(wù)器接收到服務(wù)請(qǐng)求,處理該請(qǐng)求并發(fā)送應(yīng)答信號(hào)。為了能并發(fā)地接收多個(gè)客戶的服務(wù)請(qǐng)求,要激活一個(gè)新進(jìn)程或新線程來(lái)處理這個(gè)客戶請(qǐng)求。服務(wù)完成后,關(guān)閉此新進(jìn)程與客戶的通信鏈路,并終止。(4)返回第二步,等待并處理另一客戶請(qǐng)求。(5)在特定的情況下,關(guān)閉服務(wù)器。7、客戶機(jī)/服務(wù)器交互模式客戶機(jī)采取的是主動(dòng)請(qǐng)求方式,其工作過(guò)程是:(1)打開(kāi)一通信通道,并連接到服務(wù)器所在主機(jī)的特定監(jiān)聽(tīng)端口。(2)向服務(wù)器發(fā)送請(qǐng)求報(bào)文,等待并接收應(yīng)答;繼續(xù)提出請(qǐng)求,與服務(wù)器的會(huì)話按照應(yīng)用協(xié)議進(jìn)行。(3)請(qǐng)求結(jié)束后,關(guān)閉通信通道并終止。7、客戶機(jī)/服務(wù)器交互模式客戶端軟件的特性(1)在進(jìn)行網(wǎng)絡(luò)通信時(shí)臨時(shí)成為客戶機(jī),但它也可在本地進(jìn)行其他的計(jì)算。(2)被用戶調(diào)用,只為一個(gè)會(huì)話運(yùn)行。在打算通信時(shí)主動(dòng)向遠(yuǎn)地服務(wù)器發(fā)起通信。(3)能訪問(wèn)所需的多種服務(wù),但在某一時(shí)刻只能與一個(gè)遠(yuǎn)程服務(wù)器進(jìn)行主動(dòng)通信。(4)主動(dòng)地啟動(dòng)與服務(wù)器的通信。(5)在用戶的計(jì)算機(jī)上運(yùn)行,不需要特殊的硬件和很復(fù)雜的操作系統(tǒng)。7、客戶機(jī)/服務(wù)器交互模式服務(wù)器軟件的特性(1)是一種專門(mén)用來(lái)提供某種服務(wù)的程序,可同時(shí)處理多個(gè)遠(yuǎn)地客戶機(jī)的請(qǐng)求。(2)當(dāng)系統(tǒng)啟動(dòng)時(shí)即啟動(dòng)調(diào)用,并且連續(xù)運(yùn)行著,不斷地為多個(gè)會(huì)話服務(wù)。(3)接收來(lái)自任何客戶機(jī)的通信請(qǐng)求,但只提供一種服務(wù)。(4)被動(dòng)地等待并接收來(lái)自多個(gè)遠(yuǎn)端客戶機(jī)的通信請(qǐng)求。(5)在共享計(jì)算機(jī)上運(yùn)行,一般需要強(qiáng)大的硬件和高級(jí)的操作系統(tǒng)支持。7、客戶機(jī)/服務(wù)器交互模式基干Internet的C/S模式的應(yīng)用程序的特點(diǎn)(1)客戶機(jī)和服務(wù)器都是軟件進(jìn)程,C/S模式是網(wǎng)絡(luò)上通過(guò)進(jìn)程通信建立分布式應(yīng)用的常用模型。(2)非對(duì)稱性:服務(wù)器通過(guò)網(wǎng)絡(luò)提供服務(wù),客戶機(jī)通過(guò)網(wǎng)絡(luò)使用服務(wù),這種不對(duì)稱性體現(xiàn)在軟件結(jié)構(gòu)和協(xié)作過(guò)程。(3)對(duì)等性:客戶機(jī)和服務(wù)器必有一套共識(shí)的約定,必與某種應(yīng)用層協(xié)議相聯(lián),并且協(xié)議必須在通信的兩端實(shí)現(xiàn)。7、客戶機(jī)/服務(wù)器交互模式(4)服務(wù)器的被動(dòng)性:服務(wù)器必須先行啟動(dòng),時(shí)刻監(jiān)聽(tīng),日夜值守,及時(shí)服務(wù),只要有客戶機(jī)請(qǐng)求,就立即處理并響應(yīng)、回傳信息,但決不主動(dòng)提供服務(wù)。(5)客戶機(jī)的主動(dòng)性:客戶機(jī)可以隨時(shí)提出請(qǐng)求,通過(guò)網(wǎng)絡(luò)得到服務(wù),也可以關(guān)機(jī)離開(kāi),一次請(qǐng)求與服務(wù)的過(guò)程是由客戶機(jī)首先激發(fā)的。(6)—對(duì)多:一個(gè)服務(wù)器可以為多個(gè)客戶機(jī)服務(wù);客戶機(jī)也可以打開(kāi)多個(gè)窗口,連接多個(gè)服務(wù)器。(7)分布性與共享性:資源在服務(wù)器端組織與存儲(chǔ),通過(guò)網(wǎng)絡(luò)為分散的多個(gè)客戶機(jī)使用。7、客戶機(jī)/服務(wù)器交互模式典型的兩層C/S風(fēng)格的系統(tǒng)(以數(shù)據(jù)庫(kù)服務(wù)器為例)7、客戶機(jī)/服務(wù)器交互模式在兩層C/S架構(gòu)中,客戶機(jī)與服務(wù)器間如何進(jìn)行有效的邏輯劃分成為焦點(diǎn)。7、客戶機(jī)/服務(wù)器交互模式按照劃分方式的不同,常見(jiàn)的有兩種形式:7、客戶機(jī)/服務(wù)器交互模式(1)瘦客戶機(jī)。其表示層在客戶機(jī)端實(shí)現(xiàn),其他層(數(shù)據(jù)管理、應(yīng)用處理和數(shù)據(jù)庫(kù))在服務(wù)器上實(shí)現(xiàn)??蛻魴C(jī)軟件可能是專門(mén)在客戶機(jī)上編寫(xiě)的程序以處理表示。不過(guò),更常見(jiàn)的情況是在客戶機(jī)上使用Web瀏覽器來(lái)表示數(shù)據(jù)。(2)胖客戶機(jī)。一部分或者所有的應(yīng)用處理都在客戶機(jī)上執(zhí)行。數(shù)據(jù)管理和數(shù)據(jù)庫(kù)功能在服務(wù)器上實(shí)現(xiàn)。7、客戶機(jī)/服務(wù)器交互模式瘦客戶機(jī)模型的優(yōu)點(diǎn)是管理客戶機(jī)很簡(jiǎn)單。如果存在很多的客戶機(jī),那么管理就是最主要的問(wèn)題,因?yàn)樵谒械目蛻魴C(jī)上安裝新的軟件是非常困難和昂貴的。如果使用Web瀏覽器作為客戶端就不需要安裝任何軟件。瘦客戶機(jī)模型的缺點(diǎn)是它將繁重的處理負(fù)荷都放在了服務(wù)器和網(wǎng)絡(luò)上。服務(wù)器負(fù)責(zé)所有的計(jì)算,這將導(dǎo)致客戶機(jī)和服務(wù)器之間的網(wǎng)絡(luò)上很大的流量。使用這種模型來(lái)實(shí)現(xiàn)一個(gè)系統(tǒng)可能需要在網(wǎng)絡(luò)和服務(wù)器容量上投入更多。不過(guò),瀏覽器可以通過(guò)在網(wǎng)頁(yè)中執(zhí)行腳本語(yǔ)言(比如JavaScript)來(lái)執(zhí)行一些本地的處理。7、客戶機(jī)/服務(wù)器交互模式胖客戶機(jī)模型利用運(yùn)行客戶機(jī)軟件的計(jì)算機(jī)上的處理能力,并把部分或所有的應(yīng)用處理和表示分布到客戶機(jī)上。當(dāng)然,胖客戶機(jī)模型的問(wèn)題是它需要額外的系統(tǒng)管理來(lái)部署和維護(hù)客戶機(jī)上的軟件。7、客戶機(jī)/服務(wù)器交互模式兩層客戶機(jī)服務(wù)器方法的根本問(wèn)題是系統(tǒng)中的邏輯層(表示層、應(yīng)用處理層、數(shù)據(jù)管理層和數(shù)據(jù)庫(kù)層)必須要映射到兩個(gè)計(jì)算機(jī)系統(tǒng)上:客戶機(jī)和服務(wù)器。如果選擇的是瘦客戶機(jī)模型,則可能導(dǎo)致伸縮性和性能的問(wèn)題;若選擇的是胖客戶機(jī)模型,則可能有系統(tǒng)管理上的問(wèn)題。為了避免其中的一些問(wèn)題,可以使用一種“多層客戶機(jī)-服務(wù)器”的體系結(jié)構(gòu)。7、客戶機(jī)/服務(wù)器交互模式三層C/S風(fēng)格系統(tǒng)7、客戶機(jī)/服務(wù)器交互模式在多個(gè)服務(wù)器上分布應(yīng)用處理的多層客戶機(jī)服務(wù)器系統(tǒng)本質(zhì)上比兩層的體系結(jié)構(gòu)有更強(qiáng)伸縮性。應(yīng)用處理是系統(tǒng)的最易變的部分,由于它位于系統(tǒng)的中間,它也可以很容易修改。在某些情況下,處理可以分布到不同的應(yīng)用邏輯和數(shù)據(jù)管理服務(wù)器中,以便謀求更快的客戶響應(yīng)。7、客戶機(jī)/服務(wù)器交互模式容易混淆的術(shù)語(yǔ)7、客戶機(jī)/服務(wù)器交互模式
在C/S模式中,存在著三種一對(duì)多的關(guān)系:
(1)一個(gè)服務(wù)器同時(shí)為多個(gè)客戶服務(wù):(2)一個(gè)用戶的計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)連接不同服務(wù)器的客戶(3)一個(gè)服務(wù)器類的計(jì)算機(jī)同時(shí)運(yùn)行多個(gè)服務(wù)器:7、客戶機(jī)/服務(wù)器交互模式并發(fā)性是客戶/服務(wù)器交互模式的基礎(chǔ),并發(fā)允許多個(gè)客戶獲得同一種服務(wù),而不必等待服務(wù)器完成對(duì)上一個(gè)請(qǐng)求的處理。8、P2P模式隨著應(yīng)用規(guī)模的不斷擴(kuò)大,軟件復(fù)雜度不斷提高,面對(duì)巨大的用戶群,單服務(wù)器成了性能的瓶頸,為了解決這些問(wèn)題,就出現(xiàn)了P2P技術(shù)。P2P是Peer-to-Peer的簡(jiǎn)寫(xiě),Peer的意思是“同等的人”,P2P網(wǎng)絡(luò)稱為“對(duì)等網(wǎng)”,也稱為“點(diǎn)對(duì)點(diǎn)”。在P2P網(wǎng)絡(luò)中,每一個(gè)Peer都是一個(gè)對(duì)等點(diǎn)。P2P技術(shù)就是一種在計(jì)算機(jī)之間直接進(jìn)行資源和服務(wù)的共享,不需要服務(wù)器介入的網(wǎng)絡(luò)技術(shù)。在P2P網(wǎng)絡(luò)中,每臺(tái)計(jì)算機(jī)同時(shí)充當(dāng)著Server和Clent的角色當(dāng)需要其他電腦的文件和服務(wù)時(shí),兩臺(tái)電腦直接建立連接,本機(jī)是Client;而當(dāng)響應(yīng)其他電腦的資源要求時(shí),本機(jī)又成為提供資源與服務(wù)的Server。8、P2P模式從C/S模式到P2P模式
引自:中科院計(jì)算所羅杰文PeertoPeer綜述
8、P2P模式對(duì)等系統(tǒng)(p2p)是分散式系統(tǒng),它的計(jì)算是由網(wǎng)絡(luò)上的任一個(gè)節(jié)點(diǎn)來(lái)承擔(dān)的。保證節(jié)點(diǎn)間能有效通信的標(biāo)準(zhǔn)和協(xié)議都是嵌入于應(yīng)用系統(tǒng)(軟件)本身的,每個(gè)節(jié)點(diǎn)必須運(yùn)行一個(gè)這樣的應(yīng)用的拷貝。對(duì)于對(duì)等式應(yīng)用,總的系統(tǒng)設(shè)計(jì)建立在潛在的巨大的計(jì)算機(jī)網(wǎng)絡(luò)的計(jì)算能力和存儲(chǔ)資源的優(yōu)勢(shì)上。8、P2P模式目前來(lái)看,對(duì)等技術(shù)幾乎都是用于個(gè)人系統(tǒng)。然而,企業(yè)也利用對(duì)等系統(tǒng)來(lái)更好地使用它們個(gè)人計(jì)算網(wǎng)絡(luò)的能力。在兩種環(huán)境下系統(tǒng)適合使用對(duì)等體系結(jié)構(gòu)模型:(1)系統(tǒng)是計(jì)算密集的并且有可能把需求的處理分成許多獨(dú)立的計(jì)算。例如,支持藥物探索計(jì)算的對(duì)等系統(tǒng)(2)系統(tǒng)主要涉及個(gè)人計(jì)算機(jī)在網(wǎng)絡(luò)上的信息交換,沒(méi)有必要將這些信息集中管理和儲(chǔ)存。這種應(yīng)用的例子包括允許對(duì)等體交換比如音樂(lè)和視頻等本地文件的文件共享系統(tǒng)和支持計(jì)算機(jī)間語(yǔ)音和視頻通信的電話系統(tǒng)。8、P2P模式P2P應(yīng)用文件內(nèi)容共享和下載,例如Napster、Gnutella、eDonkey、eMule、Maze、BT等;計(jì)算能力和存儲(chǔ)共享,例如SETI@home、Avaki、PopularPower等;協(xié)同與服務(wù)共享平臺(tái),例如JXTA、Magi、Groove等;即時(shí)通訊工具,包括ICQ、QQ、YahooMessenger、MSNMessenger等;P2P通訊與信息共享,例如Skype、Crowds、OnionRouting等;網(wǎng)絡(luò)電視:沸點(diǎn)、PPStream、PPLive、QQLive、SopCast等。
8、P2P模式P2P的技術(shù)特點(diǎn):非中心化:網(wǎng)絡(luò)中的資源和服務(wù)分散在所有結(jié)點(diǎn)上,信息的傳輸和服務(wù)的實(shí)現(xiàn)都直接在結(jié)點(diǎn)之間進(jìn)行,可以無(wú)需中間環(huán)節(jié)和服務(wù)器的介入,避免了可能的瓶頸。P2P的非中
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 濮陽(yáng)縣2025年五年級(jí)數(shù)學(xué)第二學(xué)期期末監(jiān)測(cè)模擬試題含答案
- 提升自動(dòng)化水平選擇好的電磁閥解決方案
- 供應(yīng)商選擇與評(píng)估管理制度制度
- 投影水幕設(shè)計(jì)施工方案
- 寧波單層廠房施工方案
- 電力搶修施工方案
- 汽車尾燈資料
- 2025年家居業(yè)務(wù)面試題及答案
- 6個(gè)紅包紙折燈籠的制作方法
- 5年級(jí)下冊(cè)英語(yǔ)單詞第三單元帶讀音朗讀
- 2025年合肥幼兒師范高等??茖W(xué)校單招職業(yè)適應(yīng)性測(cè)試題庫(kù)新版
- 2025年浙江寧波交投公路營(yíng)運(yùn)管理限公司招聘12人高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 勞務(wù)派遣勞務(wù)外包項(xiàng)目方案投標(biāo)文件(技術(shù)方案)
- 第四單元 第三課 拍攝學(xué)校創(chuàng)意短視頻教學(xué)設(shè)計(jì) 2024-2025學(xué)年西交大版(2024)初中信息技術(shù)七年級(jí)上冊(cè)
- 2025年蘇州工業(yè)職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2024年尖葉菠菜種子項(xiàng)目可行性研究報(bào)告
- DB3306T 074-2025 餐用具消毒房管理規(guī)范
- 2025年重慶市初中學(xué)業(yè)水平暨高中招生考試數(shù)學(xué)試題預(yù)測(cè)卷(二)
- “記憶中的人、事兒”為副標(biāo)題(四川眉山原題+解題+范文+副標(biāo)題作文“追求”主題)-2025年中考語(yǔ)文一輪復(fù)習(xí)之寫(xiě)作
- 2024年吉安職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)附答案
- 消化系統(tǒng)疾病患者的睡眠質(zhì)量改善及失眠應(yīng)對(duì)措施
評(píng)論
0/150
提交評(píng)論