进程间通信(IPC)——Unix域套接字 VS 网络套接字

进程间通信(IPC)——Unix域套接字 VS 网络套接字,第1张

进程间通信就是不同进程间进行数据交换的过程。因为进程间相互独立,每个进程拥有独立的地址空间、数据处理逻辑, *** 作系统保证了进程独立运行的地址安全;但在复杂系统,单进程往往不能胜任业务需求,需要多进程的加入,多进程协作完成工作,这就离不开进程间通信这个话题了。

进程间通信有很多种方式,列举如下:

而进程间通信按进程分布情况可以 单机内的进程间通信 多机间远程调用的进程间通信 ,后者无需多讲,在分布式等大型系统中是非常常见的,而进行通信的方式主要是上述方法中的网络IPC,有非常多的资料介绍相关内容,不在本文的讨论范围之内。

本文主要讨论在 单机内进程间通信 中,Unix域套接字和TCP网络套接字的对比,后者属于网络IPC。

套接字是一种应用程序接口,包括了一个用C语言写成的应用程序开发库,主要用于实现进程间通讯,在计算机网络通讯方面被广泛使用。下面要讨论的网络套接字和Unix套接字均属于套接字。

在定义套接字类型的时候,网络套接字通常使用 AF_INET 进行定义;Unix域套接字则使用 AF_UNIX 进行定义。

套接字类型有三种,分别是流式套接字、数据报套接字和原始套接字。

流式套接字(SOCK_STREAM):流式套接字用于提供面向连接、可靠的数据传输服务。该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。流式套接字之所以能够实现可靠的数据服务,原因在于其使用了传输控制协议,即TCP(The Transmission Control Protocol)协议。

数据报套接字(SOCK_DGRAM):数据报套接字提供了一种无连接的服务。该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。数据报套接字使用UDP(User Datagram Protocol)协议进行数据的传输。由于数据报套接字不能保证数据传输的可靠性,对于有可能出现的数据丢失情况,需要在程序中做相应的处理。

原始套接字(SOCK_RAW):原始套接字(SOCKET_RAW)允许对较低层次的协议直接访问,比如IP、 ICMP协议,它常用于检验新的协议实现,或者访问现有服务中配置的新设备,因为RAW SOCKET可以自如地控制Windows下的多种协议,能够对网络底层的传输机制进行控制,所以可以应用原始套接字来 *** 纵网络层和传输层应用。比如,我们可以通过RAW SOCKET来接收发向本机的ICMP、IGMP协议包,或者接收TCP/IP栈不能够处理的IP包,也可以用来发送一些自定包头或自定协议的IP包。网络监听技术很大程度上依赖于SOCKET_RAW。

原始套接字与标准套接字(标准套接字指的是前面介绍的流式套接字和数据报套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流式套接字只能读取TCP协议的数据,数据报套接字只能读取UDP协议的数据。因此,如果要访问其他协议发送数据必须使用原始套接字。

网络通信中通常都是使用网络套接字进行通信,可用于单机进程间通信和多机进程间通信,网络套接字由五元组来标识:(源地址、源端口、目标地址、目标端口、通信协议),因而网络套接字在网络协议栈中属于传输层之上的内容。所以,在使用网络套接字通信的时候,传递内容需要经过完整的网络协议栈四层模型中的(传输层-网络层-网络访问层(数据链路层-物理层))。

回想在协议栈当中,对于报文的处理有哪些 *** 作。

Unix域套接字只能用于在同一个计算机的进程间进行通信。虽然网络套接字也可以用于单机进程间的通信,但是使用Unix域套接字效率会更高,因为Unix域套接字仅仅进行数据复制,不会执行在网络协议栈中需要处理的添加、删除报文头、计算校验和、计算报文顺序等复杂 *** 作,因而在单机的进程间通信中,更加推荐使用Unix域套接字。

关于套接字的使用,资料很多,不再介绍。

这里拿网络套接字和Unix域套接字出来比较的原因是,很多人在进行单机多进程开发时没有注意到Unix域套接字的存在,而是使用了成本较高的网络套接字进行开发。Unix套接字在通信开销方面是很小的,因而在单机通信中更加推荐使用Unix域套接字。

原文链接

简单的说,如果你的某个类需要跨应用程序域边界甚至是远程访问的话,这个类可以继承marshalbyrefobject,例如你在使用remoting的时候,remoting代理的那个类,就需要继承marshalbyrefobject,看下这个(>

很多用户都对于自己机器的进程不是很明白,有时总误认为是病毒的进程,希望介绍一些系统的小知识,便于大家使用计算机。

最基本的系统进程(也就是说,这些进程是系统运行的基本条件,有了这些进程,系统就能正常运行):

smssexe Session Manager

csrssexe 子系统服务器进程

winlogonexe 管理用户登录

servicesexe 包含很多系统服务

lsassexe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。(系统服务)

产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务)

svchostexe 包含很多系统服务

SPOOLSVEXE 将文件加载到内存中以便迟后打印。(系统服务)

explorerexe 资源管理器

internatexe 托盘区的拼音图标

附加的系统进程(这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少):

mstaskexe 允许程序在指定时间运行。(系统服务)

regsvcexe 允许远程注册表 *** 作。(系统服务)

winmgmtexe 提供系统管理信息(系统服务)。

inetinfoexe 通过 Internet 信息服务的管理单元提供 FTP 连接和管理。(系统服务)

tlntsvrexe 允许远程用户登录到系统并且使用命令行运行控制台程序。(系统服务)

允许通过 Internet 信息服务的管理单元管理 Web 和 FTP 服务。(系统服务)

tftpdexe 实现 TFTP Internet 标准。该标准不要求用户名和密码。远程安装服务的一部分。(系统服务)

termsrvexe 提供多会话环境允许客户端设备访问虚拟的 Windows 2000 Professional 桌面会话以及运行在服务器上的基

于 Windows 的程序。(系统服务)

dnsexe 应答对域名系统(DNS)名称的查询和更新请求。(系统服务)

以下服务很少会用到,上面的服务都对安全有害,如果不是必要的应该关掉

tcpsvcsexe 提供在 PXE 可远程启动客户计算机上远程安装 Windows 2000 Professional 的能力。(系统服务)

支持以下 TCP/IP 服务:Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。(系统服务)

ismservexe 允许在 Windows Advanced Server 站点间发送和接收消息。(系统服务)

upsexe 管理连接到计算机的不间断电源(UPS)。(系统服务)

winsexe 为注册和解析 NetBIOS 型名称的 TCP/IP 客户提供 NetBIOS 名称服务。(系统服务)

llssrvexe License Logging Service(system service)

ntfrsexe 在多个服务器间维护文件目录内容的文件同步。(系统服务)

RsSubexe 控制用来远程储存数据的媒体。(系统服务)

locatorexe 管理 RPC 名称服务数据库。(系统服务)

lserverexe 注册客户端许可证。(系统服务)

dfssvcexe 管理分布于局域网或广域网的逻辑卷。(系统服务)

clipsrvexe 支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面。(系统服务)

msdtcexe 并列事务,是分布于两个以上的数据库,消息队列,文件系统,或其它事务保护资源管理器。(系统服务)

faxsvcexe 帮助您发送和接收传真。(系统服务)

cisvcexe Indexing Service(system service)

dmadminexe 磁盘管理请求的系统管理服务。(系统服务)

mnmsrvcexe 允许有权限的用户使用 NetMeeting 远程访问 Windows 桌面。(系统服务)

netddeexe 提供动态数据交换 (DDE) 的网络传输和安全特性。(系统服务)

smlogsvcexe 配置性能日志和警报。(系统服务)

rsvpexe 为依赖质量服务(QoS)的程序和控制应用程序提供网络信号和本地通信控制安装功能。(系统服务)

RsEngexe 协调用来储存不常用数据的服务和管理工具。(系统服务)

RsFsaexe 管理远程储存的文件的 *** 作。(系统服务)

grovelexe 扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向一个数据存储点,以节省磁盘空间。(系统服务)

SCardSvrexe 对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。(系统服务)

snmpexe 包含代理程序可以监视网络设备的活动并且向网络控制台工作站汇报。(系统服务)

snmptrapexe 接收由本地或远程 SNMP 代理程序产生的陷阱消息,然后将消息传递到运行在这台计算机上 SNMP 管理程序

。(系统服务)

UtilManexe 从一个窗口中启动和配置辅助工具。(系统服务)

msiexecexe 依据 MSI 文件中包含的命令来安装、修复以及删除软件。(系统服务)

详细说明:

win2k运行进程

Svchostexe

Svchostexe文件对那些从动态连接库中运行的服务来说是一个普通的主机进程名。Svhostexe文件定位

在系统的%systemroot%\system32文件夹下。在启动的时候,Svchostexe检查注册表中的位置来构建需要

加载的服务列表。这就会使多个Svchostexe在同一时间运行。每个Svchostexe的回话期间都包含一组服务,

以至于单独的服务必须依靠Svchostexe怎样和在那里启动。这样就更加容易控制和查找错误。

Svchostexe 组是用下面的注册表值来识别。

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost

每个在这个键下的值代表一个独立的Svchost组,并且当你正在看活动的进程时,它显示作为一个单独的

例子。每个键值都是REG_MULTI_SZ类型的值而且包括运行在Svchost组内的服务。每个Svchost组都包含一个

或多个从注册表值中选取的服务名,这个服务的参数值包含了一个ServiceDLL值。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Service

explorerexe

这是一个用户的shell(我实在是不知道怎么翻译shell),在我们看起来就像任务条,桌面等等。这个

进程并不是像你想象的那样是作为一个重要的进程运行在windows中,你可以从任务管理器中停掉它,或者重新启动。

通常不会对系统产生什么负面影响。

internatexe

这个进程是可以从任务管理器中关掉的。

internatexe在启动的时候开始运行。它加载由用户指定的不同的输入点。输入点是从注册表的这个位置

HKEY_USERS\DEFAULT\Keyboard Layout\Preload 加载内容的。

internatexe 加载“EN”图标进入系统的图标区,允许使用者可以很容易的转换不同的输入点。

当进程停掉的时候,图标就会消失,但是输入点仍然可以通过控制面板来改变。

lsassexe

这个进程是不可以从任务管理器中关掉的。

这是一个本地的安全授权服务,并且它会为使用winlogon服务的授权用户生成一个进程。这个进程是

通过使用授权的包,例如默认的msginadll来执行的。如果授权是成功的,lsass就会产生用户的进入

令牌,令牌别使用启动初始的shell。其他的由用户初始化的进程会继承这个令牌的。

mstaskexe

这个进程是不可以从任务管理器中关掉的。

这是一个任务调度服务,负责用户事先决定在某一时间运行的任务的运行。

smssexe

这个进程是不可以从任务管理器中关掉的。

这是一个会话管理子系统,负责启动用户会话。这个进程是通过系统进程初始化的并且对许多活动的,

包括已经正在运行的Winlogon,Win32(Csrssexe)线程和设定的系统变量作出反映。在它启动这些

进程后,它等待Winlogon或者Csrss结束。如果这些过程时正常的,系统就关掉了。如果发生了什么

不可预料的事情,smssexe就会让系统停止响应(就是挂起)。

spoolsvexe

这个进程是不可以从任务管理器中关掉的。

缓冲(spooler)服务是管理缓冲池中的打印和传真作业。

serviceexe

这个进程是不可以从任务管理器中关掉的。

大多数的系统核心模式进程是作为系统进程在运行。

System Idle Process

这个进程是不可以从任务管理器中关掉的。

这个进程是作为单线程运行在每个处理器上,并在系统不处理其他线程的时候分派处理器的时间。

winlogonexe

这个进程是管理用户登录和推出的。而且winlogon在用户按下CTRL+ALT+DEL时就激活了,显示安全对话框。

winmgmtexe

winmgmt是win2000客户端管理的核心组件。当客户端应用程序连接或当管理程序需要他本身的服务时这个进程初始化

taskmagrexe

这个进程就是任务管理器。

在知道里找到不少制作QQ空间的代码。但每次我在新建模块无论在网址里还是评论里输入代码最后保存都没有显示相应的效果,请问具体制作步骤是怎样?

winXP进程全接触

Windows 2000/XP 的任务管理器是一个非常有用的工具,它能提供我们很多信息,比如

现在系统中运行的程序(进程),但是面对那些文件可执行文件名我们可能有点茫然,

不知道它们是做什么的,会不会有可疑进程(病毒,木马等)。本文的目的就是提供一

些常用的Windows 2000 中的进程名,并简单说明它们的用处。

在 WINDOWS 2000 中,系统包含以下缺省进程:

Csrssexe

Explorerexe

Internatexe

Lsassexe

Mstaskexe

Smssexe

Spoolsvexe

Svchostexe

Servicesexe

System

System Idle Process

Taskmgrexe

Winlogonexe

Winmgmtexe

下面列出更多的进程和它们的简要说明

进程名 描述

smssexe Session Manager

csrssexe 子系统服务器进程

winlogonexe 管理用户登录

servicesexe 包含很多系统服务

lsassexe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安

全驱动程序。

svchostexe Windows 2000/XP 的文件保护系统

SPOOLSVEXE 将文件加载到内存中以便迟后打印。)

explorerexe 资源管理器

internatexe 托盘区的拼音图标)

mstaskexe 允许程序在指定时间运行。

regsvcexe 允许远程注册表 *** 作。(系统服务)->remoteregister

winmgmtexe 提供系统管理信息(系统服务)。

inetinfoexe msftpsvc,w3svc,iisadmn

tlntsvrexe tlnrsvr

tftpdexe 实现 TFTP Internet 标准。该标准不要求用户名和密码。

termsrvexe termservice

dnsexe 应答对域名系统(DNS)名称的查询和更新请求。

tcpsvcsexe 提供在 PXE 可远程启动客户计算机上远程安装 Windows

2000 Professional 的能力。

ismservexe 允许在 Windows Advanced Server 站点间发送和接收消息。

upsexe 管理连接到计算机的不间断电源(UPS)。

winsexe 为注册和解析 NetBIOS 型名称的 TCP/IP 客户提供 NetBIOS

名称服务。

llssrvexe 证书记录服务

ntfrsexe 在多个服务器间维护文件目录内容的文件同步。

RsSubexe 控制用来远程储存数据的媒体。

locatorexe 管理 RPC 名称服务数据库。

lserverexe 注册客户端许可证。

dfssvcexe 管理分布于局域网或广域网的逻辑卷。

clipsrvexe 支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页

面。

msdtcexe 并列事务,是分布于两个以上的数据库,消息队列,文件系统

或其它事务保护护资源管理器。

faxsvcexe 帮助您发送和接收传真。

cisvcexe 索引服务

dmadminexe 磁盘管理请求的系统管理服务。

mnmsrvcexe 允许有权限的用户使用 NetMeeting 远程访问 Windows 桌

面。

netddeexe 提供动态数据交换 (DDE) 的网络传输和安全特性。

smlogsvcexe 配置性能日志和警报。

rsvpexe 为依赖质量服务(QoS)的程序和控制应用程序提供网络信号和

本地通信控制安装功功能。

RsEngexe 协调用来储存不常用数据的服务和管理工具。

RsFsaexe 管理远程储存的文件的 *** 作。

grovelexe 扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向

一个数据存储点,以节省磁盘空间(只对 NTFS 文件系统有用)。

SCardSvrex 对插入在计算机智能卡阅读器中的智能卡进行管理和访问控

制。

snmpexe 包含代理程序可以监视网络设备的活动并且向网络控制台工作

站汇报。

snmptrapexe 接收由本地或远程 SNMP 代理程序产生的陷阱(trap)消息,

然后将消息传递到运行在这台计算机上 SNMP 管理程序。

UtilManexe 从一个窗口中启动和配置辅助工具。

msiexecexe 依据 MSI 文件中包含的命令来安装、修复以及删除软件。

另外,有很多朋友都有这样的疑问:我的开机进程里有smssexe和csrssexe两个文件,

有什么作用?

进程文件: smss or smssexe

进程名称: Session Manager Subsystem

描述: 该进程为会话管理子系统用以初始化系统变量,MS-DOS驱动名称类似LPT1以及

COM,调用Win32壳子系统和运行在Windows登陆过程。

常见错误: N/A

是否为系统进程: 是

进程文件: csrss or csrssexe

进程名称: Client/Server Runtime Server Subsystem

描述: 客户端服务子系统,用以控制Windows图形相关子系统。

常见错误: N/A

是否为系统进程: 是

所以,对自己不熟悉 没有把握的进程, 不要随便结束它建议:把你认为有问题的进程比

如"csrssexe",在google里搜索"csrssexe",就会获得相关的知识

以上就是关于进程间通信(IPC)——Unix域套接字 VS 网络套接字全部的内容,包括:进程间通信(IPC)——Unix域套接字 VS 网络套接字、marshalbyrefobject什么意思、任务管理器中各进程代表哪个应用程序的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9751701.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存