Sockets
do not always need to have an address. The socketpair(2) function, for
example, creates two sockets that are connected to each other, but
without addresses. They are, in essence,
"nameless"
sockets. Imagine a red telephone between the U.S. president's office
and the Soviet Union, during the Cold War. There is no need for a
telephone number at either end, because they are directly connected. In the same way, the sockets created by socketpair(2) are directly connected and have no need for addresses.
Anonymous Calls
Sometimes
in practice, one of the two sockets in a connection will have no
address. For a remote socket to be contacted, it must have an address to
identify it. However, the local socket that is "placing
the call" can be anonymous. The connection that becomes established has
one remote socket with an address and another socket without an
address.
Generating Addresses
Sometimes
you don't care what your local address is, but you need one to
communicate. This is particularly true of programs that need to connect
to a service, like a RDBMS database server. Their local address is only
required for the duration of the communication. Allocating fixed
addresses could be done, but this increases network administration work.
Consequently, address generation is often used when it is available.
See Also:
No comments:
Post a Comment