應(yīng)用進(jìn)程跨越網(wǎng)絡(luò)的通信_第1頁
應(yīng)用進(jìn)程跨越網(wǎng)絡(luò)的通信_第2頁
應(yīng)用進(jìn)程跨越網(wǎng)絡(luò)的通信_第3頁
應(yīng)用進(jìn)程跨越網(wǎng)絡(luò)的通信_第4頁
應(yīng)用進(jìn)程跨越網(wǎng)絡(luò)的通信_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

應(yīng)用進(jìn)程跨越網(wǎng)絡(luò)的通信

1系統(tǒng)調(diào)用和應(yīng)用編程接口大多數(shù)操作系統(tǒng)使用系統(tǒng)調(diào)用(systemcall)的機(jī)制在應(yīng)用程序和操作系統(tǒng)之間傳遞控制權(quán)。對程序員來說,每一個系統(tǒng)調(diào)用和一般程序設(shè)計中的函數(shù)調(diào)用非常相似,只是系統(tǒng)調(diào)用是將控制權(quán)傳遞給了操作系統(tǒng)。多個應(yīng)用進(jìn)程

使用系統(tǒng)調(diào)用的機(jī)制應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n…由應(yīng)用程序調(diào)用的系統(tǒng)函數(shù)用戶地址空間中的應(yīng)用程序系統(tǒng)調(diào)用接口系統(tǒng)地址空間中的協(xié)議軟件包括TCP/IP協(xié)議軟件的操作系統(tǒng)內(nèi)核應(yīng)用編程接口API

(ApplicationProgrammingInterface)

當(dāng)某個應(yīng)用進(jìn)程啟動系統(tǒng)調(diào)用時,控制權(quán)就從應(yīng)用進(jìn)程傳遞給了系統(tǒng)調(diào)用接口。此接口再將控制權(quán)傳遞給計算機(jī)的操作系統(tǒng)。操作系統(tǒng)將此調(diào)用轉(zhuǎn)給某個內(nèi)部過程,并執(zhí)行所請求的操作。內(nèi)部過程一旦執(zhí)行完畢,控制權(quán)就又通過系統(tǒng)調(diào)用接口返回給應(yīng)用進(jìn)程。系統(tǒng)調(diào)用接口實際上就是應(yīng)用進(jìn)程的控制權(quán)和操作系統(tǒng)的控制權(quán)進(jìn)行轉(zhuǎn)換的一個接口,即應(yīng)用編程接口API。幾種應(yīng)用編程接口APIBerkeleyUNIX操作系統(tǒng)定義了一種API,它又稱為插口接口(socketinterface)。微軟公司在其操作系統(tǒng)中采用了插口接口API,形成了一個稍有不同的API,并稱之為WindowsSocket。AT&T為其UNIX系統(tǒng)V定義了一種API,簡寫為TLI(TransportLayerInterface)。應(yīng)用進(jìn)程通過插口接入到網(wǎng)絡(luò)TCPTCP應(yīng)用進(jìn)程因特網(wǎng)由操作系統(tǒng)控制插口,又稱為API插口的作用當(dāng)應(yīng)用進(jìn)程需要使用網(wǎng)絡(luò)進(jìn)行通信時就發(fā)出系統(tǒng)調(diào)用,請求操作系統(tǒng)為其創(chuàng)建“插口”,以便把網(wǎng)絡(luò)通信所需要的系統(tǒng)資源分配給該應(yīng)用進(jìn)程。操作系統(tǒng)為這些資源的總和用一個號碼來表示,并把此號碼返回給應(yīng)用進(jìn)程。應(yīng)用進(jìn)程所進(jìn)行的網(wǎng)絡(luò)操作都必須使用這個號碼。通信完畢后,應(yīng)用進(jìn)程通過一個關(guān)閉插口的系統(tǒng)調(diào)用通知操作系統(tǒng)回收與該“號碼”相關(guān)的所有資源。插口和API不同插口是應(yīng)用進(jìn)程和網(wǎng)絡(luò)之間的接口,因為插口既包含有運(yùn)輸層與應(yīng)用層之間的端口號,又包含有機(jī)器的IP地址。插口和應(yīng)用編程接口API是性質(zhì)不同的接口。API是從程序設(shè)計的角度定義了許多標(biāo)準(zhǔn)的系統(tǒng)調(diào)用函數(shù)。應(yīng)用進(jìn)程只要使用標(biāo)準(zhǔn)的系統(tǒng)調(diào)用函數(shù)就可得到操作系統(tǒng)的服務(wù)。在這個意義上講,API是應(yīng)用程序和操作系統(tǒng)之間的接口。應(yīng)當(dāng)記住在插口以上的進(jìn)程是受應(yīng)用程序控制的,而在插口以下的TCP協(xié)議軟件以及TCP使用的緩存和一些必要的變量等,則是受計算機(jī)操作系統(tǒng)的控制。只要應(yīng)用程序使用TCP/IP協(xié)議進(jìn)行通信,它就必須通過插口與操作系統(tǒng)交互并請求其服務(wù)。應(yīng)用程序的開發(fā)者對插口以上的應(yīng)用進(jìn)程具有完全的控制,但對插口以下的運(yùn)輸層卻只有少量的控制。2服務(wù)器的兩種工作方式服務(wù)器都可工作在兩種不同的方式:循環(huán)方式(iterativemode)——在計算機(jī)中一次只運(yùn)行一個服務(wù)器進(jìn)程。當(dāng)有多個客戶進(jìn)程請求服務(wù)時,服務(wù)器進(jìn)程就按請求的先后順序依次做出響應(yīng)。并發(fā)方式(concurrent)——在計算機(jī)中同時運(yùn)行多個服務(wù)器進(jìn)程,而每一個服務(wù)器進(jìn)程都對某個特定的客戶進(jìn)程做出響應(yīng)。1.無連接循環(huán)服務(wù)器使用無連接的UDP的服務(wù)器通常都工作在循環(huán)方式——一個服務(wù)器在同一時間只能向一個客戶提供服務(wù)。服務(wù)器收到客戶的請求后,就發(fā)送UDP用戶數(shù)據(jù)報響應(yīng)該客戶。但對其他客戶發(fā)來的請求則暫時不予理睬,這些請求都在服務(wù)器端的隊列中排隊等候服務(wù)器的處理。當(dāng)服務(wù)器進(jìn)程處理完畢一個請求時,就從隊列中讀取來自下一個客戶的請求,然后繼續(xù)處理。無連連接接循循環(huán)環(huán)服服務(wù)務(wù)器器的的特特點(diǎn)點(diǎn)UDP服務(wù)務(wù)器器UDP客戶戶臨時時端端口口熟知知端端口口UDP客戶戶臨時時端端口口UDP客戶戶臨時時端端口口一次次一一個個客戶戶服務(wù)務(wù)器器只只使使用用一一個個熟熟知知端端口口。。每每一一個個客客戶戶則則使使用用自自己己創(chuàng)創(chuàng)建建的的臨臨時時端端口口((端端口口號號自自己己設(shè)設(shè)定定))。。面向向連連接接并并發(fā)發(fā)服服務(wù)務(wù)器器服務(wù)務(wù)器器在在同同一一時時間間可可向向多多個個客客戶戶提提供供服服務(wù)務(wù)。。TCP是是面面向向連連接接的的,,因因此此在在服服務(wù)務(wù)器器和和多多個個客客戶戶之之間間必必須須建建立立多多條條TCP連連接接,,而而每每一一條條TCP連連接接要要在在其其數(shù)數(shù)據(jù)據(jù)傳傳送送完完畢畢后后才才能能釋釋放放。。使用用TCP的的服服務(wù)務(wù)器器只只能能有有一一個個熟熟知知端端口口。。因因此此主主服服務(wù)務(wù)器器在在熟熟知知端端口口等等待待客客戶戶發(fā)發(fā)出出的的請請求求。。一一旦旦收收到到客客戶戶的的請請求求,,就就立立即即創(chuàng)創(chuàng)建建一一個個從從屬屬服服務(wù)務(wù)器器,,并并指指明明從從屬屬服服務(wù)務(wù)器器使使用用臨臨時時端端口口和和該該客客戶戶建建立立TCP連連接接,,然然后后主主服服務(wù)務(wù)器器繼繼續(xù)續(xù)在在原原來來的的熟熟知知端端口口等等待待向向其其他他客客戶戶提提供供服服務(wù)務(wù)。。面向向連連接接并并發(fā)發(fā)服服務(wù)務(wù)器器的的特特點(diǎn)點(diǎn)TCPTCP客戶戶臨時時端端口口臨時端口TCP客戶戶臨時時端端口口TCP客戶戶臨時時端端口口主服服務(wù)務(wù)器器TCP連連接接熟知知端端口口僅僅用用于于接受受服服務(wù)務(wù)請請求求創(chuàng)建建從屬屬服服務(wù)務(wù)器器主服服務(wù)務(wù)器器有有時時又又稱稱為為父父服服務(wù)務(wù)器器,,而而從從屬屬服服務(wù)務(wù)器器又又稱稱為為子子服服務(wù)務(wù)器器。。3進(jìn)進(jìn)程程通通過過系系統(tǒng)統(tǒng)調(diào)調(diào)用用接接口口進(jìn)進(jìn)行行通通信信的的過過程程1.無無連連接接循循環(huán)環(huán)服服務(wù)務(wù)器器服務(wù)務(wù)器器recvfrom(……)socket(……)bind(……)recvfrom(……)無限限制制重重復(fù)復(fù)socket(……)若需需要要就就重重復(fù)復(fù)sendto(……)進(jìn)程程sendto(……)close(……)客戶戶請求求響應(yīng)應(yīng)2.面面向向連連接接并并發(fā)發(fā)服服務(wù)務(wù)器器服務(wù)務(wù)器器read(……)socket(……)bind(……)accept(……)無限限制制重重復(fù)復(fù)socket(……)若需需要要就就重重復(fù)復(fù)write(……)進(jìn)程程close(……)接接受受close(……)客戶戶請求求響應(yīng)應(yīng)listen(……)fork(……)connect(……)write(……)read(……)close(……)監(jiān)監(jiān)聽聽若需需要要就就重重復(fù)復(fù)連接接請請求求主服服務(wù)務(wù)器器

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論