specifying the target address of the server. For an Internet domain socket, the address of the server is its IP address and its port number.

Sockets are created using the socket() system call. Depending on the type of socket, either UNIX domain or internet domain, the socket family operations vector invokes either unix_create() or

inet_create().

unix_create() and inet_create() invoke sk_alloc() to allocate the sock structure.

sk_alloc() calls kmem_cache_alloc() to allocate memory, and then zeros the newly allocated memory by invoking memset(), thus taking care of object reuse issues associated with sockets created by users.

Figure 5-16: Object reuse handling in socket allocation

Calls to bind() and connect() to a UNIX domain socket file requires write access to it. UNIX domain sockets can be created in the ext3 file system, and therefore may have an ACL associated with them. For a more detailed description of client-server communication methods and the access control performed by them, refer to Section 5.12 of this document.

5.4Network subsystem

The network subsystem allows Linux systems to connect to other systems over a network. It provides a general purpose framework within which network services are implemented. There are a number of possible hardware devices that can be connected, and a number of network protocols that can be used. The network subsystem abstracts both of these implementation details, so user processes and other kernel subsystems can access the network without knowing the physical devices and the protocol being used.

The various modules in the network subsystem are:

Network device drivers communicate with the hardware devices. There is one device driver module for each possible hardware device.

The device-independent interface module provides a consistent view of all of the hardware devices, so higher levels in the subsystem do not need specific knowledge of the hardware in use.

The network protocol modules are responsible for implementing each of the possible network transport protocols.

69

Page 81
Image 81
IBM 10 SP1 EAL4 manual Network subsystem, Object reuse handling in socket allocation