text: emerging technologies such as orthogonal frequency divisional multiplexing ( ofdm ) and multiple in - multiple out ( mimo ) make bandwidth demanding multimedia applications over wireless channels possible . in ieee 802 . 11n , throughput over a 20 mhz or 40 mhz channel can reach 130 mbps or 300 mbps respectively . transport of a high - definition video stream may need 15 mbps to 20 mbps bandwidth . a typical in - home wireless video distribution system streams two to three hd / sd tv and vod programs from a master set top box ( stb ) to slave set top boxes as shown in fig1 . for single family home deployments , if the distances between homes are great enough , the number of interfering neighbors may be smaller than the total channels available . it would , thus , be possible for the in - home wireless network to find an interference free channel . this may not be the case for multi - dwelling unit ( mdu ) deployment as shown in fig2 . one ap and its associated stas form a basic service set ( bss ). different bsss may come from different service providers . as used herein , nodes include clients , mobile terminal and mobile devices . such devices can be , but are not limited to , computers , laptops , personal digital assistants ( pdas ), set top boxes and the like . in fig2 , the nodes that are filled are aps and stations that are used exclusively for video streaming . these bsss come from one service provider , and can be managed by a centralized server / administrator . herein , these bsss are called cooperative bsss . the nodes that are not filled in are aps and stations that are used for general data delivery and they may come from other service providers . herein , these bsss are called non - cooperative bsss . a cooperative bss may be subject to interference from cooperative and non - cooperative bsss within the same multi - dwelling unit . a cooperative bss may also be subject to interference from bsss within neighboring multi - dwelling units and office buildings . in such a dense deployment scenario , the number of interfering neighbors of a bss may be more than the total number of channels available . therefore , channel assignment is necessary to minimize the interference and guarantee quality of service . the scenario depicted in fig2 will be used to describe the method of channel assignment of the present invention . it is understood that the method of the present invention can be applied to channel assignment for wireless networks in general , for wireless networks in dense deployments in particular . the distributed channel selection method of the present invention does not require message exchange between cooperative bsss , or between cooperative bsss and non - cooperative bsss . however , differentiation between cooperative bsss and non - cooperative bsss may have some benefits . for an example , aps from cooperative bsss may broadcast their load information in their beacons , which is less costly and more accurate than estimating loads of neighboring bsss by scanning each channel and measuring the average fraction of busy time of each channel . as discussed above , the least congested channel selection method is a distributed channel selection method , but only aps scan all the channels . this may cause hidden terminal problems at both the client side and the ap side . for an example , in fig3 , in bss 1 , if only ap 1 scans the channel , ap 1 may select a channel that ap 2 is using , thus causing hidden terminal problem at clients sta ( 1 , 2 ) and sta ( 1 , 3 ). for a multimedia streaming application , this may cause a large number of packets to be / arrive corrupted at the client side , and thus decrease the quality of the distributed media . similarly , in fig4 , ap 1 may decide to use the same channel as ap 2 , because the load on ap 2 is light and the loads on other channels are heavier . sta ( 1 , 1 ) and sta ( 1 , 4 ) do not know that this channel is used by ap 2 and sta ( 1 , 1 ) and sta ( 1 , 4 ) may transmit uplink traffic at the same time that ap 2 is transmitting resulting in packet collisions at ap 1 . in the distributed channel selection method of the present invention , when a ap decides that a channel switch is necessary , it will scan all the channels and send a request to its associated clients to scan all the channels ; or to speed up channel switching , both aps and their clients may do periodic background scanning . the clients report their scanning results back to their associated ap . when the number of clients is not very large , this will not cause much overhead , which is especially true for the multimedia / video streaming scenario . in a hotspot wireless network where there are many clients associated with an ap , a number of representative clients can be selected from among all of the clients to scan the channels and report the results back to the ap . the scanning results include a list of neighboring bsss of which this station is in the interference range . each item in the list includes the ssid of a bss , the channel this bss is using / working on / communicating over , and the average busy time fraction ( load ). it should be noted that in the list there may be one or more bsss working on the same channel . ieee 802 . 11h has defined a signaling scheme for an ap to signal its associated clients to scan channels and report results on a schedule , which can also be used for the channel selection method of the present invention . for a station that has a single radio , in order to scan channels that are different from the working channel , current communication would have to be interrupted , channel scanning should be scheduled at times when the traffic load is low . in the future , as the cost is reduced , it would be an advantage to embed a dedicated radio in a wireless chip set for the purpose of channel scanning . after an ap has received the results from all its clients ( or a representative subset ), the ap calculates the load on each channel . it should be noted that the same bss may be shown on the scanning results of the ap of one or more of the clients . in this case , the ap will take the average of the loads from the scanning results as the load of this neighboring bss . the ap builds a list of interfering bsss that may cause hidden terminal and exposed terminal problems using the following criteria : if the ap and all of its clients have heard the other ap , then this bss is in the interference range of the other ap . if the ap did not hear the other ap , but one or more of its clients have heard the ap , then these clients are in the interference range of the other ap , and these clients are hidden terminals . if the ap has heard the other ap , but one or more of its clients did not hear the ap , then these clients are exposed terminals . if a neighboring bss appears on this list , its load will be weighted by a factor 1 + ω , where ω is a number between 0 and 0 . 2 . if the ap is assigned the same channel as this neighboring bss , rts / cts signaling has to be turned on , which increases overhead . the overhead is accounted for by weighting the load . the ap then calculates the load on each channel , if there are multiple bsss using the same channel , the load of this channel would be the sum of all the loads of the bsss that are communicating over this channel . in the distributed channel selection method of the present invention , the ap selects a free or least loaded channel once the ap has the scanning results from itself and all the clients ( or a representative subset ) that are associated with the ap . if the ap selects a channel that may cause hidden or exposed terminal problems , it activates rts / cts signaling . it should be noted that when a new bss is added to the network and selects a channel , it may cause hidden terminal or exposed terminal problems to the bsss already in the network that are using that channel . as described later , an existing bss may periodically perform background scanning which will help the ap identify a hidden terminal or exposed terminal problem and activate rts / cts signaling . also if the packet loss rate of an existing bss exceeds a certain value / threshold , that event may trigger the channel switching procedure , which may also uncover a hidden terminal and exposed terminal problem . using channel scanning to measure the load on each channel is an expensive operation , especially if an ap or mobile station / client / node has only one radio . the ap or mobile station needs to scan each channel , and has to stay on that channel for a long enough period of time to make a measurement . this may cause interruption of any current communication . also it is difficult to make an accurate measurement as load on a channel may change dramatically due to burst data traffic . as an alternative approach for measuring the load , cooperative aps can advertise their load in beacons and probe responses . on channels with only cooperative bsss , the load on the channel can be calculated deterministically . on channels with both cooperative bsss and non - cooperative bsss , if the load of non - cooperative bsss is not known , the load information provided by cooperative aps cannot be used to calculate the share of the bandwidth a cooperative bss can get . in this case , it is assumed that cooperative bsss and non - cooperative bsss will compete for the channel and the load / available bandwidth can be estimated based on the number of aps . assume that the channel capacity is c , the set of existing cooperative bsss ( not including the bss that is going to select a channel if it has been working on this channel ) on the channel is n c and the set of non - cooperative bsss on the channel is n n . the bss that is going to select a channel is represented by n e , the available bandwidth for this bss is represented by c e . | x | is used to represent the cardinal number of set x , so | n c | is the number of cooperative aps and | n n | is the number of non - cooperative aps . in the case where there are no non - cooperative bsss on the channel , cooperative aps advertise their load in beacons and the available bandwidth for the bss selecting the channel would be : c e = ( 1 - ∑ i ∈ n c ⁢ l i ) ⁢ c where l i is the load on cooperative bss i , which is measured as a fraction of busy time . when there are non - cooperative aps using the channel , in the worst case , if each transmission attempt from a cooperative and non - cooperative bss has an equal probability to gain access to the channel , the available bandwidth for the bss is : c e = θ ∑ i ∈ n c ⋃ n n ⋃ n e ⁢ 1 r i where r i is the average transmission rate on bss i , 0 & lt ; θ ≦ 1 is the ratio of actual throughput to the throughput bound / limit . if all the bsss transmit at the maximum rate ( capacity rate ), the above equation becomes : if cooperative bsss ( and their corresponding aps ) are used exclusively for multimedia / video / audio transmission and more aggressive wireless multimedia ( wmm ) parameters are used than those generally used for data communication , cooperative bsss may have the advantage in the contention for the shared channel , and may get more than the average portion of the channel , the above equation can be modified as : c e = θ ⁢ ⁢ w c ∑ i ∈ n c ⋃ n e ⁢ w c r i + ∑ i ∈ n n ⁢ w n r i ≈ θ ⁢ ⁢ w c ⁢ c w c ⁡ ( | n c | + 1 ) + w n | n n | where w c and w n are the weight assigned to cooperative bsss and non - cooperative bsss , with w c ≧ w n . based on testing , the bss ( and its associated ap ) using aggressive wmm parameters can access about 90 mbps out of 110 mbps total throughput , the bss ( and its associated ap ) using default wmm values only gets about 20 mbps . to help an ap to select a channel , the channels can be classified into the following categories : clear channel : no bss is working on this channel . feasible channel : the total load of this bss and its neighboring bsss within the carrier sense range is less than the capacity of the channel or the available bandwidth is greater than the demand on this bss . when there are non - cooperative bsss using / working on / communicating over this channel , the available bandwidth is estimated according to the worst case . infeasible channel : there are cooperative bsss or non - cooperative bsss using this channel and the total load of this bss and its neighboring cooperative bsss in the carrier sense range is greater than the channel capacity undetermined channel : there are non - cooperative bsss using this channel , if there are cooperative bsss using this channel , the total load of this bss and it neighboring cooperative bsss in the carrier sense range is less than the capacity of the channel , but the available bandwidth estimated according to the worst case is less than the demand on this bss . when an ap needs to switch to a new channel , it executes / follows the channel selection method below , the flowchart of the channel selection procedure is shown in fig5 a . randomly select a clear channel if such a clear channel is available . otherwise select the least loaded feasible channel . otherwise select an undetermined channel that has the lowest number of cooperative bsss . otherwise select an infeasible channel with the lowest number of cooperative bsss . specifically , a test is performed at 505 to determine if there are any clear channels . if there are any clear channels then at 510 , the ap randomly selects a clear channel ( if there are more than one clear channel or selects the single clear channel if there is only one clear channel ) and proceeds to use the selected channel for future communication . if there were no clear channels detected then a test is performed at 515 to determine if there are any feasible channels . if any feasible channels were detected then at 520 , the ap selects the least loaded feasible channel ( if there are more than one feasible channel or selects the single feasible channel if there is only one feasible channel ) and proceeds to use the selected channel for future communication . if there were no feasible channels then a test is performed at 525 to determine if there are any undetermined channels . if undetermined channels are detected then at 530 the undetermined channel having the lowest number of cooperative bsss ( aps ) is selected by the ap ( if there are more than one undetermined channel or selects the single undetermined channel if there is only one undetermined channel ) and proceeds to use the selected channel for future communication . if no undetermined channels were detected at 525 then at 535 the least loaded infeasible channel is selected by the ap ( if there are more than one infeasible channel or selects the single infeasible channel if there is only one infeasible channel ) and proceeds to use the selected channel for future communication . in an alternative method , if it is desirable to ensure that the quality of service ( qos ) of existing cooperative bsss will not be degraded when a new cooperative bss joins the network , a mechanism similar to the admission control in the channel selection method can be introduced . in this case , if all the channels are infeasible , the ap needs to decrease its load to make a channel feasible or undetermined , for example , by reducing the number of video streams or associated stations , or by transcoding to reduced the bit rate of one or more of the streams . the flowchart of this alternative channel selection procedure is shown in fig5 b . specifically , fig5 b is like fig5 a except that reference number 535 is replaced by reference number 540 where the ap reduces the load of any new ( joining ) ap to make the channel feasible or undetermined and then proceeds to step 515 to try again to select a channel . reducing the load on the joining ap includes reducing the number of video / multimedia streams and / or reducing the number of associated stations / nodes . when a new ap boots up , it does not have the information from its clients so it will select a channel based on its own scanning results . the following describes the ( initial ) channel selection procedure ( shown in fig6 ) when an ap boots up . at 605 the ap scans all the channels , records the number of cooperative bsss and non - cooperative bsss and determines the load information of cooperative bsss from the beacons of their aps . at 610 , the ap determines the load on each channel and classifies / categorizes the channels into the four categories described above . at 615 , the ap selects a channel according to the channel selection procedure in either fig5 a or fig5 b . when a station boots up , it will take the actions shown on the flowchart of fig7 . specifically , at 705 , the sta scans the channels and associates with an ap . at 710 , the sta records both the number and the ssids of cooperative and non - cooperative bsss on the operating ( current working ) channel and obtains / determines the load of the cooperative bsss from beacons transmitted by their aps . at 715 the sta reports the scanning result to its associated ap . when the ap received the scanning result from a station , it will take the following actions : if the total load is less than the channel capacity , keep this channel and mark it as available for use if there hidden nodes or exposed nodes using this channel , activate rts / cts signaling once the ap of a cooperative bss selects a channel , it continues using the selected channel until the channel becomes congested . the ap and the clients measure the status of the channel periodically to decide if a channel switch is necessary . when the packet loss rate ( plr ) on this channel exceeds a predefined value / threshold e max , the ap first determines if the channel is feasible or undetermined . if it is feasible or undetermined , then the ap tries to determine if there are hidden or exposed terminal problems . if there are hidden or exposed terminals , then the ap activates rts / cts signaling . after a certain period of time , if the packet loss rate is still higher than the threshold , then the ap tries to switch to another channel . fig8 shows the flowchart of the channel measurement procedure of the present invention . specifically , at 805 , the ap sets the channel measurement request timer . at 810 , a test is performed to determine if the channel measurement request timer has expired or if any new sta has associated with the ap . if neither the channel measurement request timer has expired nor has a new sta associated with the ap then processing proceeds to step 810 . if either the channel measurement request timer has expired or a new sta has associated with the ap then at 815 the ap sends / transmits / broadcasts / multicasts a channel measurement request to its associated stas and receives channel measurement reports / results from it associated stas . at 820 , the ap determines if there are any hidden or exposed terminals ( stas ) and builds a list of hidden and exposed terminals ( stas ). if there are any hidden or exposed terminals ( stas ) then the ap activated cts / rts signaling . the ap weighs the load of the hidden terminals ( stas / nodes ) and its own load by a factor of 1 + ω . using this weighting the ap re - estimates the load on the current operating / working channel at 825 and classifies it into one of the four categories described above . the channel status information is used in the channel switching procedure . if the total load is less than the channel capacity , the ap and the stations will continue working on this channel . fig9 is the flowchart of channel switching procedure of the present invention . specifically , at 905 , the ap periodically determines the load ( available bandwidth ) on the current operating / working channel and also determines the packet loss rate from the channel measurement procedure . a test is performed at 910 to determine if the packet loss rate exceeds a threshold ( value ). if the packet loss rate does not exceed a threshold ( value ) then processing proceeds to step 905 . if the packet loss rate exceeds a threshold ( value ) then at 915 a test is performed to determine if the status of the channel is undetermined or infeasible . if the status of the channel is not undetermined or infeasible then processing proceeds to step 905 . if the status of the channel is undetermined or infeasible then a random timer is set at 920 . the random timer is set to a value between two numbers ( a minimum value and a maximum value ). at 925 the ap continues to operate on the current ( working / operating ) channel . at 930 a test is performed to determine if the random timer has expired . if random timer has not expired , then processing proceeds to step 925 . if random timer has expired , then a test is performed at 935 to determine if the packet loss rate exceeds a threshold ( value ). if the packet loss rate does not exceed a threshold ( value ) then at 945 the ap continues to operate on the current ( operating / working ) channel . if the packet loss rate exceeds a threshold ( value ) then a test is performed at 940 to determine if the status of the channel is undetermined or infeasible . if the status of the channel is not undetermined or infeasible , then processing proceeds to 945 . if the status of the channel is undetermined or infeasible then at 950 the ap scans all the channels and requests its associated clients / nodes / terminals / stas to scan all the channels and return the results of their channels scans to their associated ap . at 955 once the ap receives the channel scan reports from its associated clients / nodes / terminals / stas , the ap classifies the available channels into one of four categories ( clear , feasible , infeasible , undetermined as described above ) and selects a new operating channel according to the channel selection procedure described above and shown in either fig5 a or fig5 b . at 960 the ap ( using the current operating channel ) sends a channel switch announcement message to all of its associated clients / nodes / terminals / stas . the ap then switches to the selected new operating / working channel at 965 and activates rts / cts signaling if necessary based on a determination of hidden or exposed terminals / stas / clients / terminals . fig1 is a block diagram of an exemplary implementation of the present invention for a sta and / or an ap . as a sta and / or an ap can be a transmitter , a receiver or a transceiver , a single block diagram is used to describe these devices . each device includes a host computing system ( 1002 ), a wireless communication module ( 1007 ) and a wired communication module ( 1012 ). the host processing system can be a general - purpose computer or a specific - purpose computing system . the host computing system can include a central processing unit ( cpu ), a memory and an input / output ( i / o ) interface . the wireless communication module can include a mac and baseband processor , radio transmitter / receiver , and one or more antennas . an antenna transmits and receives the radio signals . the radio transmitter / receiver performs radio signal processing . the radio transmitter / receiver may be a transceiver or a separate transmitter and receiver . the mac and baseband processor performs mac control and data framing , modulation / demodulation , coding / decoding for the transmission / receiving . the wired communication module can be an ethernet interface communicating with other devices using tcp / ip or udp protocol . usually an ap and a sta communicate with each other through a wireless channel , an ap connect to the backhaul using wired interface . a sta can communicate with other devices such as computer or tv using wired interface . for a sta , functionalities of channel measurement , transmitting the channel measurement report to its associated ap , receiving channel assignment and hidden and exposed nodes / terminals list from its associated ap , and activating rts / cts signaling are performed by the wireless communication module . for an ap , functionalities of channel measurement , transmitting channel measurement request and receiving channel measurement reports from associated stas and transmitting channel assignment and hidden and exposed nodes / terminals list to sta are performed by the wireless communication module . it is to be understood that the present invention may be implemented in various forms of hardware ( e . g . asic chip ), software , firmware , special purpose processors , or a combination thereof , for example , within a server , an intermediate device ( such as a wireless access point or a wireless router ) or mobile device . preferably , the present invention is implemented as a combination of hardware and software . moreover , the software is preferably implemented as an application program tangibly embodied on a program storage device . the application program may be uploaded to , and executed by , a machine comprising any suitable architecture . preferably , the machine is implemented on a computer platform having hardware such as one or more central processing units ( cpu ), a random access memory ( ram ), and input / output ( i / o ) interface ( s ). the computer platform also includes an operating system and microinstruction code . the various processes and functions described herein may either be part of the microinstruction code or part of the application program ( or a combination thereof ), which is executed via the operating system . in addition , various other peripheral devices may be connected to the computer platform such as an additional data storage device and a printing device . it is to be further understood that , because some of the constituent system components and method steps depicted in the accompanying figures are preferably implemented in software , the actual connections between the system components ( or the process steps ) may differ depending upon the manner in which the present invention is programmed . given the teachings herein , one of ordinary skill in the related art will be able to contemplate these and similar implementations or configurations of the present invention .