Subscribe

Issue No.06 - June (1998 vol.47)

pp: 693-699

DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/12.689648

ABSTRACT

<p><b>Abstract</b>—In a computer network that consists of <it>M</it> subnetworks, the <it>L</it>-bit address of a machine consists of two parts: A prefix <it>s</it><sub><it>i</it></sub> that contains the address of the subnetwork to which the machine belongs, and a suffix (of length <it>L</it><tmath>$-$</tmath> |<it>s</it><sub><it>i</it></sub>|) containing the address of that particular machine within its subnetwork. In fixed-length subnetwork addressing, |<it>s</it><sub><it>i</it></sub>| is independent of <it>i</it>, whereas, in variable-length subnetwork addressing, |<it>s</it><sub><it>i</it></sub>| varies from one subnetwork to another. To avoid ambiguity when decoding addresses, there is a requirement that no <it>s</it><sub><it>i</it></sub> be a prefix of another <it>s</it><sub><it>j</it></sub>. The practical problem is how to find a suitable set of <it>s</it><sub><it>i</it></sub>s in order to maximize the total number of addressable machines, when the <it>i</it>th subnetwork contains <it>n</it><sub><it>i</it></sub> machines. Not all of the <it>n</it><sub><it>i</it></sub> machines of a subnetwork <it>i</it> need be addressable in a solution: If <tmath>$n_i > 2^{L-|s_i|},$</tmath> then only <tmath>$2^{L-|s_i|}$</tmath> machines of that subnetwork are addressable (none is addressable if the solution assigns no address <it>s</it><sub><it>i</it></sub> to that subnetwork). The abstract problem implied by this formulation is: Given an integer <it>L</it>, and given <it>M</it> (not necessarily distinct) positive integers <tmath>$n_1, \cdots, n_M,$</tmath> find <it>M</it> binary strings <tmath>$s_1, \cdots, s_M$</tmath> (some of which may be empty) such that 1) no nonempty string <it>s</it><sub><it>i</it></sub> is prefix of another string <it>s</it><sub><it>j</it></sub>, 2) no <it>s</it><sub><it>i</it></sub> is more than <it>L</it> bits long, and 3) the quantity <tmath>$\sum \nolimits _{|s_k|\ne0} \min \left\{ n_k, 2^{L-|s_k|} \right\}$</tmath> is maximized. We generalize the algorithm to the case where each <it>n</it><sub><it>i</it></sub> also has a priority <it>p</it><sub><it>i</it></sub> associated with it and there is an additional constraint involving priorities: Some subnetworks are then more important than others and are treated preferentially when assigning addresses. The algorithms can be used to solve the case when <it>L</it> itself is a variable; that is, when the input no longer specifies <it>L</it> but, rather, gives a target integer γ for the number of addressable machines, and the goal is to find the smallest <it>L</it> whose corresponding optimal solution results in at least γ addressable machines.</p>

INDEX TERMS

Addressing, algorithms, computer networks, prefix codes.

CITATION

Mikhail J. Atallah, "Algorithms for Variable Length Subnet Address Assignment",

*IEEE Transactions on Computers*, vol.47, no. 6, pp. 693-699, June 1998, doi:10.1109/12.689648