 between control points (CPs) and connectivity service points (CSPs): CP interfaces are normally more complex than CSP interfaces, both as to the number of ASPs they define, and the behavior they assume. In general, an inter- face language (such as AMLs or the OSI ROSE notation1 must be used for CP layer interface specifications (which in this case would be used also for specify- ing the CP that DNS resolvers offer to their users). From an ASP definition point of view, all CSP interfaces are very similar, nor- mally defining only a send and receive operations (if duplex transport is sup- ported). More complex CSP interfaces exists, however. For example, some CSP interfaces may also report failures of data transfer (a faultReport ASP) and use flow-control commands (a congestionReport ASP). 4.3.2 Refining Layer Interfaces Let's now discuss the last step in horizontal partitioning: layer interface refinement. The way a layer interface in a layer structure is specified is deliberately chosen not to assume any particular realization of the interface. That is also why layer inter- faces are often called abstract interfaces, the primitives abstract service primitives, See the recommendation ITU-T X.219 4 Modeling Vertical and Horizontal Partitions and the interface language an abstract language (at least we do that in AML). To realize a layer interface, therefore, implies translating the abstract description of it to a description in a design language, which may be a language for software inter- faces (such as IDL² or hardware interfaces (such as VHDL). When solving this problem you have to consider at least three different situations: 1. The two layer elements that use a mutual layer interface will always exist on the same processing platform (or in other words, in the same derived node). In this case, assuming that the platform supports communication between software ele- ments but does not define an interface description language, you may define a number of message handling procedures (one for each operation) and sto