Networking RPC&;TCP行为
有人能从网络的角度描述什么是RPC(SUN和/或DCE)以及它为什么偏离标准TCP行为吗Networking RPC&;TCP行为,networking,tcp,rpc,asa,dce,Networking,Tcp,Rpc,Asa,Dce,有人能从网络的角度描述什么是RPC(SUN和/或DCE)以及它为什么偏离标准TCP行为吗 我的理解是,客户机通过一个唯一的源端口连接到服务器,然后在TCP三方握手完成后切换源端口。我使用ASA防火墙,因此当未启用DCE RPC检查时,这种行为变得非常明显,因为防火墙会阻止它,因为它将其视为威胁。我已经阅读了一些MS TechNet文章和其他网站定义,包括观看了大约五个Youtube视频,这些视频似乎都是从程序员的角度来解释的,但我还没有完全理解这个概念,因为我不是程序员。请注意,关于RPC协议,
我的理解是,客户机通过一个唯一的源端口连接到服务器,然后在TCP三方握手完成后切换源端口。我使用ASA防火墙,因此当未启用DCE RPC检查时,这种行为变得非常明显,因为防火墙会阻止它,因为它将其视为威胁。我已经阅读了一些MS TechNet文章和其他网站定义,包括观看了大约五个Youtube视频,这些视频似乎都是从程序员的角度来解释的,但我还没有完全理解这个概念,因为我不是程序员。请注意,关于RPC协议,没有任何偏离标准TCP的内容 SunRPC或DCE RPC在UDP(至少SunRPC可以使用UDP)或TCP之上工作 通常,为了让RPC客户端联系/调用RPCserver,它首先联系某种查找服务器(在SunRPC中称为portmapper或rpcbind),该服务器用实际服务器运行的位置(IP地址和端口号)进行响应 因此,从网络的角度来看:
- RPC服务器侦听一个随机端口号,该端口号在服务器程序每次(重新)启动时都可能更改
- 在启动时,RPC服务器连接到端口映射器,该端口映射器在一个已知的端口上运行,并使用它正在侦听的IP地址和端口号注册自身
- 在已知/标准目标端口上连接到端口映射器,并询问它要连接的特定服务的位置
- portmapper使用客户端请求的服务的IP地址和端口号进行答复
- 客户端断开与端口映射器的连接
- 客户端使用pormapper提供的IP地址和端口号建立与服务的新连接
- 客户端通过此新连接调用RPC服务,客户端可以使用此连接进行多个RPC调用
- 这些RPC调用只是在TCP连接上交换的应用程序消息