tcpip詳解卷三事務(wù)協(xié)議http nntp和unix域_第1頁
tcpip詳解卷三事務(wù)協(xié)議http nntp和unix域_第2頁
tcpip詳解卷三事務(wù)協(xié)議http nntp和unix域_第3頁
tcpip詳解卷三事務(wù)協(xié)議http nntp和unix域_第4頁
tcpip詳解卷三事務(wù)協(xié)議http nntp和unix域_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第三部第三部 Unix域協(xié)第16章UnixUnix域協(xié)議是進(jìn)程間通信(IPC)的一種形式,可以通過與網(wǎng)絡(luò)通信中使用的相同插口API來它們。圖16-1的左邊表示使用插口寫成的客戶程序和服務(wù)器程序,它們在同一臺主機(jī)上利用Internet協(xié)議進(jìn)行通信。圖16-1的右邊表示用插口寫的利用Unix域協(xié)議進(jìn)行通信的客戶 圖16- 當(dāng)客戶進(jìn)程通過TCPTCP輸出處理,然后再經(jīng)過IP(見卷2的5.4節(jié)),在環(huán)回驅(qū)動器中,數(shù)據(jù)首先被放到IP輸入隊(duì)列,然后經(jīng)過IP輸入和TCP輸入處理,最后傳送到服務(wù)器。這樣工作得很好,并且對于在相同主機(jī)上的對等端()來說是透明的。然而,在TCP/IP協(xié)議棧里需要大量的處理過程,當(dāng)數(shù)據(jù)沒有離開主機(jī)時,這些處理過程實(shí)際上是不需要的。Unix域協(xié)議由于知道數(shù)據(jù)不會離開主機(jī),所以只需要較少的處理過程(這樣數(shù)據(jù)傳送就快多了)器進(jìn)程的執(zhí)行過程,流量控制也被大大簡化了,等等。雖然IPC的其他形式也有這些優(yōu)點(diǎn)(消息隊(duì)列、共享內(nèi)存、命名管道,等等),但是,Unix域協(xié)議的優(yōu)點(diǎn)在于它們使用的接口與網(wǎng)絡(luò)應(yīng)用程序使用的插口接口完全一樣:客戶程序調(diào)用connect,服務(wù)器程序調(diào)用listen和 第三部分Unixaccept,兩者都調(diào)用read和write,等等。而其他形式的IPC使用完全不同的API一些不能與插口以及其形方式的I/O(V消息隊(duì)列中我們不能使用select函數(shù))。一些TCP/IP實(shí)現(xiàn)努力通過優(yōu)化去提高性能,例如當(dāng)目的地址是環(huán)回接口時可以忽略TCP檢驗(yàn)和的計(jì)算和驗(yàn)證。Unix域協(xié)議既提供一個流插口(SOCK_STREAM,與TCP字節(jié)流相似),又提供一個數(shù)據(jù)報(bào)插口(SOCK_DGRAM,與UDP數(shù)據(jù)報(bào)相似)。Unix域插口的地址族是AF_UNIX。在Unix域協(xié)議中用于標(biāo)識插口的名字是文件系統(tǒng)的路徑名(Internet協(xié)議使用IP地址和端的組合來標(biāo)識TCP和UDP插口)。網(wǎng)絡(luò)編程API標(biāo)準(zhǔn)IEEEPOSIX1003.1g也支持Unix域協(xié)議,它使用的名稱是“l(fā)ocalIPC。其地址族是AF_LOCAL,協(xié)議族是PF_LOCAL。因而使用術(shù)語“Unix”來描述這些協(xié)議也許已成為歷史。Unix域協(xié)議還能提供在不同機(jī)器之間進(jìn)程間通信時所沒有的功能。這能就是描述符傳遞,即通過Unix域協(xié)議在互不相關(guān)的進(jìn)程間傳送描述符的能力,這個例子在第18章討論。許多應(yīng)用程序使用Unix管道。在一個源于伯克利的內(nèi)核里,使用Unix域流插口來實(shí)現(xiàn)管道。在17.13節(jié)里我們XWindow系統(tǒng)。當(dāng)與X1X11客戶進(jìn)程通?;贒ISY環(huán)境變量的值或基于-disy命令行參數(shù)值來決定使用什么協(xié)議。這個值的形式是hostnamedis.sceen,這里hostname是可選的,默認(rèn)值是當(dāng)前主機(jī),使用的協(xié)議是最有效的通信方式,其中典型的是Unix域流協(xié)議。值unix強(qiáng)制使用Unix域流協(xié)議。服務(wù)器綁定到Unix插口上的名字類似于/tmp/.X11-unix/X0。由于X服務(wù)器進(jìn)程通常處理在同一臺主機(jī)或者網(wǎng)絡(luò)上的客戶進(jìn)程的請求,這就意味著服務(wù)器進(jìn)程需要等待接請求到達(dá)TC插口或者ni流插口。BSD打印假脫機(jī)系統(tǒng)(lpr客戶進(jìn)程和lpd服務(wù)器進(jìn)程,在[Stevens1990的第13章詳細(xì)描述)使用一個名為/dev/lp的Unix域流插口在相同的主機(jī)上進(jìn)行通信。像X服務(wù)器一lpd服務(wù)器使用Unix插口處理在相同主機(jī)上客戶進(jìn)程的連接,或者使用TCP插口BSD系統(tǒng)記錄器(syslog庫函數(shù),可以被任何應(yīng)用程序調(diào)用)和syslogd服務(wù)器程序(使用一個名為/dev/log的Unix域數(shù)據(jù)報(bào)插口在相同的主機(jī)上進(jìn)行通信)。客戶進(jìn)程寫一個消息到插口上,服務(wù)器進(jìn)程讀出來并進(jìn)行處理。服務(wù)器進(jìn)程也處理來自其他主機(jī)上使用UDP插口的客戶進(jìn)程的消息,關(guān)于這種機(jī)制的詳細(xì)介紹見[Stevens1992]的13.4.2節(jié)。InterNetNews守護(hù)程序(innd)創(chuàng)建一個Unix數(shù)據(jù)報(bào)插口來控制報(bào)文,一個Unix流插口來本地閱讀器上的文章。這兩個插口分別是control和nntpin,通常第第16章Unix域協(xié)議:概 是在 Unix 比較Unix域插口與TCP插口的性能是非常有趣的。除 TCP和UDP插口,修改公共ttcp程序的一個版本,使之使用一個Unix域流插口。我們在同一臺主機(jī)上運(yùn)行的兩個程序副本之間傳送16777216個字節(jié)的數(shù)據(jù),結(jié)果如圖16-2所示。 圖16- 我們感的是從一個TCP插口到一個Unix(這些測試運(yùn)行在五個不同系統(tǒng)上,覆蓋了不同的處理器速度,在不同的行上進(jìn)行速度比較毫無意義)。所有的內(nèi)核都是源于伯克利,而不是Solaris2.4。我們可以看到,在源于伯克利內(nèi)核上的Unix插口比TCP插口要快兩倍多,在Solaris下增長率要慢得多。SVR4以及源于它的Solaris,采用了完全不同的方法來實(shí)現(xiàn)Unix域插口。[Rago在這些試,術(shù)“FastestTCP(最塊的TCP)”意味著這些測試是在下列情況下進(jìn)行的:將發(fā)送緩存和接收緩存都設(shè)置為32768(這個值要比一些系統(tǒng)中的默認(rèn)值大),直接指定環(huán)回地而不是主機(jī)自己的IP地址。在早期的BSD實(shí)現(xiàn)中,如果指定了主機(jī)的IP地址,那么在ARP碼執(zhí)行之前分組不會發(fā)送到環(huán)回接口(卷1圖2-4),這稍微降低了性能(這就是為什么定時測試運(yùn)行時要指定環(huán)回地址)。這些主機(jī)都有一個本地子網(wǎng)的網(wǎng)絡(luò) ,其接口就是網(wǎng)絡(luò)的設(shè)備驅(qū)動程序,卷1第87頁中間網(wǎng)絡(luò) 2就是一個例子(SunOS4.1.3)較新的BS核有一條到主機(jī)本身IP地址的路由,其接口就是環(huán)回驅(qū)動程序,卷 2圖18-2中5就是一個例子(BSD/OSV2.0)。在討論Unix域協(xié)議的實(shí)現(xiàn)后,在18.11節(jié)再返回到性能問題。為了說明如何縮小一個TCP客戶-服務(wù)器與一個Unix域客戶-服務(wù)器之間的差別,我們修改了圖1-5和圖1-7中的客戶-服務(wù)器,使它們利用Unix域協(xié)議通信。圖16-3表示Unix序,與圖1-5的不同之處用黑體字表示。2 我們包含了<sys/un.h>頭文件,客戶和服務(wù)器的插口地址結(jié)構(gòu)現(xiàn)在是11-15socket調(diào)用的協(xié)議族是PF_UNIX,調(diào)用strncpy將與服務(wù)器相聯(lián)系的路徑名(從命令行參數(shù)得到)寫入插口的地址結(jié)構(gòu)。 第三部分Unix圖16- 圖16-4Unix第16章Unix域協(xié)議:概第16章Unix域協(xié)議:概 2-7我們包含了<sys/un.h>頭文件,并且定義了與服務(wù)器相聯(lián)系的路徑名(通常路經(jīng)名應(yīng)在客戶程序和服務(wù)器程序都包含的頭文件中定義,為了簡單,我們在這里定義)。現(xiàn)在的插口1314調(diào)用strncpyUnix域協(xié)議提供了進(jìn)程間通信的一種形式,它使用同網(wǎng)絡(luò)通信相同的編程接口 (插口)Unix域協(xié)議既提供類似于TCP的流插口,又提供類似于UDP的數(shù)據(jù)報(bào)插口。從Unix域協(xié)議能獲得

溫馨提示

  • 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

提交評論