NetMsgServer performs transparent naming and transport for #202204222158 to communicate with remote devices at user level. It is protocol-independent and capable of using various network protocols.
In order to establish communication between computers within a network, NetMsgServer provides a primitive network-wide name service. Its responsibility is to register ports, requested by local tasks, for lookup by tasks from other computer. NetMsgServers also maintain a distributed database of port rights that have been transferred between devices and of port to which these rights pointed to. These ports could be removed from and/or added to the database as long as the port value of them are matched.
The sender’s NetMsgServer creates proxy port, if it has received a send right from a remote computer, to represent the original port from that computer. Therefore, Mach could treat it like any local port where the sender can send messages to this proxy port without hassle. The receiver’s NetMsgServer then translate the message# from the sender’s format to the receiver’s format by referring to the type information stored in it.