什么層是實現(xiàn)進程到進程之間的通信

什么層是實現(xiàn)進程到進程之間的通信

進程間通信機制1 文件映射文件映射(Memory-Mapped Files)能使進程把文件內(nèi)容當(dāng)作進程地址區(qū)間一塊內(nèi)存那樣來對待。因此,進程不必使用文件I/O操作,只需簡單的指針操作就可讀取和修改文件的內(nèi)容。

Win32 API允許多個進程訪問同一文件映射對象,各個進程在它自己的地址空間里接收內(nèi)存的指針。

通過使用這些指針,不同進程就可以讀或修改文件的內(nèi)容,實現(xiàn)了對文件中數(shù)據(jù)的共享。應(yīng)用程序有三種方法來使多個進程共享一個文件映射對象。(1)繼承:**個進程建立文件映射對象,它的子進程繼承該對象的句柄。(2)命名文件映射:**個進程在建立文件映射對象時可以給該對象指定一個名字(可與文件名不同)。

第二個進程可通過這個名字打開此文件映射對象。另外,**個進程也可以通過一些其它IPC機制(有名管道、郵件槽等)把名字傳給第二個進程。(3)句柄**:**個進程建立文件映射對象,然后通過其它IPC機制(有名管道、郵件槽等)把對象句柄傳遞給第二個進程。

第二個進程**該句柄就取得對該文件映射對象的訪問權(quán)限。文件映射是在多個進程間共享數(shù)據(jù)的非常有效方法,有較好的安全性。但文件映射只能用于本地機器的進程之間,不能用于**中,而開發(fā)者還必須控制進程間的同步。

2 共享內(nèi)存Win32 API**享內(nèi)存(Shared Memory)實際就是文件映射的一種特殊情況。進程在創(chuàng)建文件映射對象時用0xFFFFFFFF來代替文件句柄(HANDLE),就表示了對應(yīng)的文件映射對象是從操作系統(tǒng)頁面文件訪問內(nèi)存,其它進程打開該文件映射對象就可以訪問該內(nèi)存塊。由于共享內(nèi)存是用文件映射實現(xiàn)的,所以它也有較好的安全性,也只能運行于同一計算機上的進程之間。

注意點: 要控制同步,而且CString、list、arry、map等的collect class都不能安全的使用于共享內(nèi)存中 不要把擁有虛函數(shù)之C++類放到共享內(nèi)存中 不要把CObject派生類之MFC對象放到共享內(nèi)存中 不要使用\”point within the shared memory\”的指針 不要使用\”point outside of the shared memory\”的指針 使用\”based\”指針是安全的,但要小心使用3 匿名管道管道(Pipe)是一種具有兩個端點的通信通道:有一端句柄的進程可以和有另一端句柄的進程通信。管道可以是單向-一端是只讀的,另一端點是只寫的;也可以是雙向的一管道的兩端點既可讀也可寫。匿名管道(Anonymous Pipe)是 在父進程和子進程之間,或同一父進程的兩個子進程之間傳輸數(shù)據(jù)的無名字的單向管道。通常由父進程創(chuàng)建管道,然后由要通信的子進程繼承通道的讀端點句柄或?qū)?端點句柄,然后實現(xiàn)通信。

父進程還可以建立兩個或更多個繼承匿名管道讀和寫句柄的子進程。這些子進程可以使用管道直接通信,不需要通過父進程。匿名管道是單機上實現(xiàn)子進程標準I/O重定向的有效方法,它不能在網(wǎng)上使用,也不能用于兩個不相關(guān)的進程之間。4 命名管道命名管道(Named Pipe)是服務(wù)器進程和一個或多個客戶進程之間通信的單向或雙向管道。

不同于匿名管道的是命名管道可以在不相關(guān)的進程之間和不同計算機之間使用,服務(wù)器建立命名管道時給它指定一個名字,任何進程都可以通過該名字打開管道的另一端,根據(jù)給定的權(quán)限和服務(wù)器進程通信。命名管道提供了相對簡單的編程接口,使通過**傳輸數(shù)據(jù)并不比同一計算機上兩進程之間通信更困難,不過如果要同時和多個進程通信它就力不從心了。5 郵件槽郵件槽(Mailslots)提 供進程間單向通信能力,任何進程都能建立郵件槽成為郵件槽服務(wù)器。其它進程,稱為郵件槽客戶,可以通過郵件槽的名字給郵件槽服務(wù)器進程發(fā)送消息。

進來的消 息一直放在郵件槽中,直到服務(wù)器進程讀取它為止。一個進程既可以是郵件槽服務(wù)器也可以是郵件槽客戶,因此可建立多個郵件槽實現(xiàn)進程間的雙向通信。通過郵件槽可以給本地計算機上的郵件槽、其它計算機上的郵件槽或指定**區(qū)域中所有計算機上有同樣名字的郵件槽發(fā)送消息。

廣播通信的消息長度不能超過400字節(jié),非廣播消息的長度則受郵件槽服務(wù)器指定的**消息長度的限制。郵件槽與命名管道相似,不過它傳輸數(shù)據(jù)是通過不可靠的數(shù)據(jù)報(如TCP/IP協(xié)議中的UDP包)完成的,一旦**發(fā)生錯誤則無法保證消息正確地接收,而命名管道傳輸數(shù)據(jù)則是建立在可靠連接基礎(chǔ)上的。不過郵件槽有簡化的編程接口和給指定**區(qū)域內(nèi)的所有計算機廣播消息的能力,所以郵件槽不失為應(yīng)用程序發(fā)送和接收消息的另一種選擇。

6 剪貼板剪貼板(Clipped Board)實質(zhì)是Win32 API中一組用來傳輸數(shù)據(jù)的函數(shù)和消息,為Windows應(yīng)用程序之間進行數(shù)據(jù)共享提供了一個中介,Windows已建立的剪切(**)-粘貼的機制為不同應(yīng)用程序之間共享不同格式數(shù)據(jù)提供了一條捷徑。當(dāng)用戶在應(yīng)用程序中執(zhí)行剪切或**操作時,應(yīng)用程序把選取的數(shù)據(jù)用一種或多種格式放在剪貼板上。然后任何其它應(yīng)用程序都可以從剪貼板上拾取數(shù)據(jù),從給定格式中選擇適合自己的格式。剪貼板是一個非常松散的交換媒介,可以支持任何數(shù)據(jù)格式,每一格式由一無符號整數(shù)標識,對標準(預(yù)定義)剪貼板格式,該值是Win32 API定義的常量;對非標準格式可以使用Register Clipboard Format函數(shù)注冊為新的剪貼板格式。

利用剪貼板進行交換的數(shù)據(jù)只需在數(shù)據(jù)格式上一致或都可以轉(zhuǎn)化為某種格式就行。但剪貼板只能在基于Windows的程序中使用,不能在**上使用。7 動態(tài)數(shù)據(jù)交換動態(tài)數(shù)據(jù)交換(DDE)是使用共享內(nèi)存在應(yīng)用程序之間進行數(shù)據(jù)交換的一種進程間通信形式。

應(yīng)用程序可以使用DDE進行一次性數(shù)據(jù)傳輸,也可以當(dāng)出現(xiàn)新數(shù)據(jù)時,通過發(fā)送更新值在應(yīng)用程序間動態(tài)交換數(shù)據(jù)。DDE和剪貼板一樣既支持標準數(shù)據(jù)格式(如文本、位圖等),又可以支持自己定義的數(shù)據(jù)格式。但它們的數(shù)據(jù)傳輸機制卻不同,一個明顯區(qū)別是剪貼板操作幾乎總是用作對用戶指定操作的一次性應(yīng)答-如從菜單中選擇Paste命令。盡管DDE也可以由用戶啟動,但它繼續(xù)發(fā)揮作用一般不必用戶進一步干預(yù)。

DDE有三種數(shù)據(jù)交換方式:(1) 冷鏈:數(shù)據(jù)交換是一次性數(shù)據(jù)傳輸,與剪貼板相同。(2) 溫鏈:當(dāng)數(shù)據(jù)交換時服務(wù)器通知客戶,然后客戶必須請求新的數(shù)據(jù)。(3) 熱鏈:當(dāng)數(shù)據(jù)交換時服務(wù)器自動給客戶發(fā)送數(shù)據(jù)。

DDE交換可以發(fā)生在單機或**中不同計算機的應(yīng)用程序之間。開發(fā)者還可以定義定制的DDE數(shù)據(jù)格式進行應(yīng)用程序之間特別。

OSI參考模型有哪七層

1、物理層(Physical Layer):主要功能為定義**的物理結(jié)構(gòu),傳輸?shù)碾姶艠藴?,Bit流的編碼及**的時間原則,如分時復(fù)用及分頻復(fù)用。
決定了**連接類型(端到端或多端連接)及物理拓撲結(jié)構(gòu)。

說得通俗一些,這一層主要負責(zé)實際的信號傳輸。

物理層的主要設(shè)備:中繼器、集線器。
2、數(shù)據(jù)鏈路層(Data Link Review):在兩個主機上建立數(shù)據(jù)鏈路連接,向物理層傳輸數(shù)據(jù)信號,并對信號進行處理使之無差錯并合理的傳輸。數(shù)據(jù)鏈路層主要設(shè)備:二層交換機、網(wǎng)橋。
3、**層(Network Layer):主要負責(zé)路由,選擇合適的路徑,進行阻塞控制等功能。

**層協(xié)議的代表包括:IP、IPX、OSPF等。**層主要設(shè)備:路由器。
4、傳輸層(Transfer Layer):最關(guān)鍵的一層,向擁護提供可靠的端到端(End-to-End)服務(wù),它屏蔽了下層的數(shù)據(jù)通信細節(jié),讓用戶及應(yīng)用程序不需要考慮實際的通信方法。

傳輸層協(xié)議的代表包括:TCP、UDP、SPX等。
5、會話層(Session Layer):主要負責(zé)兩個會話進程之間的通信,即兩個會話層實體之間的信息交換,管理數(shù)據(jù)的交換。
6、表示層(Presentation Layer):處理通信信號的表示方法,進行不同的格式之間的翻譯,并負責(zé)數(shù)據(jù)的加密解密,數(shù)據(jù)的壓縮與恢復(fù)。

7、應(yīng)用層(Application Layer):保持應(yīng)用程序之間建立連接所需要的數(shù)據(jù)記錄,為用戶服務(wù)。應(yīng)用層協(xié)議的代表包括:Telnet、FTP、HTTP、SNMP等。

擴展資料:
OSI模型的作用
1、人們可以很容易的討論和學(xué)習(xí)協(xié)議的規(guī)范細節(jié)。

2、層間的標準接口方便了工程模塊化。
3、創(chuàng)建了一個更好的互連環(huán)境。
4、降低了復(fù)雜度,使程序更容易修改,產(chǎn)品開發(fā)的速度更快。
5、每層利用緊鄰的下層服務(wù),更容易記住個層的功能。

6、OSI是一個定義良好的協(xié)議規(guī)范集,并有許多可選部分完成類似的任務(wù)。
7、它定義了開放系統(tǒng)的層次結(jié)構(gòu)、層次之間的相互關(guān)系以及各層所包括的可能的任務(wù)。是作為一個框架來協(xié)調(diào)和組織各層所提供的服務(wù)。
OSI參考模型并沒有提供一個可以實現(xiàn)的方法,而是描述了一些概念,用來協(xié)調(diào)進程間通信標準的制定。

即OSI參考模型并不是一個標準,而是一個在制定標準時所使用的概念性框架。

簡述具有五層協(xié)議的**體系結(jié)構(gòu)中各層的主要功能。

物理層:以太網(wǎng)?·?調(diào)制解調(diào)器?· 電力線通信(PLC) ·?SONET/SDH?· G.709 ·?光導(dǎo)纖維?· 同軸電纜 · 雙絞線等
物理層(或稱物理層,Physical Layer)是計算機**OSI模型中**的一層。物理層規(guī)定:為傳輸數(shù)據(jù)所需要的物理鏈路創(chuàng)建、維持、拆除,而提供具有機械的,電子的,功能的和規(guī)范的特性。

簡單的說,物理層確保原始的數(shù)據(jù)可在各種物理媒體上傳輸。

局域網(wǎng)與廣域網(wǎng)皆屬第1、2層。
物理層是OSI的**層,它雖然處于**層,卻是整個開放系統(tǒng)的基礎(chǔ)。物理層為設(shè)備之間的數(shù)據(jù)通信提供傳輸媒體及互連設(shè)備,為數(shù)據(jù)傳輸提供可靠的環(huán)境。如果您想要用盡量少的詞來記住這個**層,那就是“信號和介質(zhì)”。

OSI采納了各種現(xiàn)成的協(xié)議,其中有RS-232、RS-449、X.21、V.35、ISDN、以及FDDI、IEEE802.3、IEEE802.4、和IEEE802.5的物理層協(xié)議。
數(shù)據(jù)鏈路層:Wi-Fi(IEEE 802.11) · WiMAX(IEEE 802.16) ·ATM · DTM ·?令牌環(huán)?·?以太網(wǎng)?·FDDI ·?幀中繼?· GPRS · EVDO ·HSPA · HDLC ·?PPP?· L2TP ·PPTP · ISDN·STP 等
數(shù)據(jù)鏈路層是OSI參考模型中的第二層,介乎于物理層和**層之間。數(shù)據(jù)鏈路層在物理層提供的服務(wù)的基礎(chǔ)上向**層提供服務(wù),其最基本的服務(wù)是將源自**層來的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點的目標機**層。

為達到這一目的,數(shù)據(jù)鏈路必須具備一系列相應(yīng)的功能,主要有:如何將數(shù)據(jù)組合成數(shù)據(jù)塊,在數(shù)據(jù)鏈路層中稱這種數(shù)據(jù)塊為幀(frame),幀是數(shù)據(jù)鏈路層的傳送單位;如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調(diào)節(jié)發(fā)送速率以使與接收方相匹配;以及在兩個**實體之間提供數(shù)據(jù)鏈路通路的建立、維持和釋放的管理。
移動通信系統(tǒng)中Uu口協(xié)議的第二層,也叫層二或L2。
**層協(xié)議:IP (IPv4 · IPv6) · ICMP· ICMPv6·IGMP ·IS-IS · IPsec · ARP · RARP等
**層是OSI參考模型中的第三層,介于傳輸層和數(shù)據(jù)鏈路層之間,它在數(shù)據(jù)鏈路層提供的兩個相鄰端點之間的數(shù)據(jù)幀的傳送功能上,進一步管理**中的數(shù)據(jù)通信,將數(shù)據(jù)設(shè)法從源端經(jīng)過若干個中間節(jié)點傳送到目的端,從而向運輸層提供最基本的端到端的數(shù)據(jù)傳送服務(wù)。

主要內(nèi)容有:虛電路分組交換和數(shù)據(jù)報分組交換、路由選擇算法、阻塞控制方法、X.25協(xié)議、綜合業(yè)務(wù)數(shù)據(jù)網(wǎng)(ISDN)、異步傳輸模式(ATM)及網(wǎng)際互連原理與實現(xiàn)。
傳輸層協(xié)議:TCP · UDP · TLS ·?DCCP?· SCTP · RSVP · OSPF 等
傳輸層(Transport Layer)是ISO OSI協(xié)議的第四層協(xié)議,實現(xiàn)端到端的數(shù)據(jù)傳輸。該層是兩臺計算機經(jīng)過**進行數(shù)據(jù)通信時,**個端到端的層次,具有緩沖作用。

當(dāng)**層服務(wù)質(zhì)量不能滿足要求時,它將服務(wù)加以提高,以滿足高層的要求;當(dāng)**層服務(wù)質(zhì)量較好時,它只用很少的工作。傳輸層還可進行復(fù)用,即在一個**連接上創(chuàng)建多個邏輯連接。
傳輸層在終端用戶之間提供透明的數(shù)據(jù)傳輸,向上層提供可靠的數(shù)據(jù)傳輸服務(wù)。傳輸層在給定的鏈路上通過流量控、分段/重組和差錯控制。

一些協(xié)議是面向鏈接的。這就意味著傳輸層能保持對分段的跟蹤,并且重傳那些失敗的分段。
應(yīng)用層協(xié)議:DHCP ·DNS?· FTP · Gopher · HTTP· IMAP4 · IRC · NNTP · XMPP ·POP3 · SIP · SMTP ·SNMP · SSH ·TELNET · RPC · RTCP · RTP ·RTSP· SDP · SOAP · GTP · STUN · NTP· SSDP · BGP · RIP 等
應(yīng)用層位于物聯(lián)網(wǎng)三層結(jié)構(gòu)中的最頂層,其功能為“處理”,即通過云計算平臺進行信息處理。應(yīng)用層與**端的感知層一起,是物聯(lián)網(wǎng)的顯著特征和核心所在,應(yīng)用層可以對感知層采集數(shù)據(jù)進行計算、處理和知識挖掘,從而實現(xiàn)對物理世界的實時控制、**管理和科學(xué)決策。

物聯(lián)網(wǎng)應(yīng)用層的核心功能圍繞兩個方面:
一是“數(shù)據(jù)”,應(yīng)用層需要完成數(shù)據(jù)的管理和數(shù)據(jù)的處理;
二是“應(yīng)用”,僅僅管理和處理數(shù)據(jù)還遠遠不夠,必須將這些數(shù)據(jù)與各行業(yè)應(yīng)用相結(jié)合。例如在智能電網(wǎng)中的遠程電力抄表應(yīng)用:安置于用戶家中的讀表器就是感知層中的傳感器,這些傳感器在收集到用戶用電的信息后,通過**發(fā)送并匯總到發(fā)電廠的處理器上。該處理器及其對應(yīng)工作就屬于應(yīng)用層,它將完成對用戶用電信息的分析,并自動采取相關(guān)措施。

擴展資料
TCP/IP協(xié)議毫無疑問是這三大協(xié)議中最重要的一個,作為互聯(lián)網(wǎng)的基礎(chǔ)協(xié)議,沒有它就根本不可能上網(wǎng),任何和互聯(lián)網(wǎng)有關(guān)的操作都離不開TCP/IP協(xié)議。

不過TCP/IP協(xié)議也是這三大協(xié)議中配置起來最麻煩的一個,單機上網(wǎng)還好,而通過局域網(wǎng)訪問互聯(lián)網(wǎng)的話,就要詳細設(shè)置IP地址,**,子網(wǎng)掩碼,DNS服務(wù)器等參數(shù)。
TCP/IP盡管是目前***的**協(xié)議,但TCP/IP協(xié)議在局域網(wǎng)中的通信效率并不高,使用它在瀏覽“網(wǎng)上鄰居”中的計算機時,經(jīng)常會出現(xiàn)不能正常瀏覽的現(xiàn)象。此時安裝NetBEUI協(xié)議就會解決這個問題。

NetBEUI即NetBios Enhanced User Interface ,或NetBios增強用戶接口。它是NetBIOS協(xié)議的增強版本,曾被許多操作系統(tǒng)采用,例如Windows for Workgroup、Win 9x系列、Windows NT等。NETBEUI協(xié)議在許多情形下很有用百科,是WINDOWS98之前的操作系統(tǒng)的缺省協(xié)議。

NetBEUI協(xié)議是一種短小精悍、通信效率高的廣播型協(xié)議,安裝后不需要進行設(shè)置,特別適合于在“**鄰居”傳送數(shù)據(jù)。所以建議除了TCP/IP協(xié)議之外,小型局域網(wǎng)的計算機也可以安上NetBEUI協(xié)議。另外還有一點要注意,如果一臺只裝了TCP/IP協(xié)議的WINDOWS98機器要想加入到WINNT域,也必須安裝NetBEUI協(xié)議。
IPX/SPX協(xié)議本來就是Novell開發(fā)的專用于NetWare**中的協(xié)議,但是也非常常用–大部分可以聯(lián)機的游戲都支持IPX/SPX協(xié)議,比如星際爭霸,反恐精英等等。

雖然這些游戲通過TCP/IP協(xié)議也能聯(lián)機,但顯然還是通過IPX/SPX協(xié)議更省事,因為根本不需要任何設(shè)置。除此之外,IPX/SPX協(xié)議在非局域**中的用途似乎并不是很大.如果確定不在局域網(wǎng)中聯(lián)機玩游戲,那么這個協(xié)議可有可無。