Why High Density Wi-Fi is Killing You

Best practices in high density Wi-Fi for Education

Before Wi-Fi really gained traction in the enterprise and education space, planning a wireless installation was a breeze. We just based everything on coverage. Fast forward to today and it’s crystal clear how critical Wi-Fi has been for productivity, business, and innovation. What has changed in the way Wi-Fi has been deployed? Well.. a lot. 

Chairs from an auditorium

Outlined below are best practices for deploying high density wi-fi for the educational institutions. It’s meant to be more of a guideline in assisting the wireless engineer in their designs for coverage and capacity. 

Applications are putting a demand and strain on wireless networks. To provide reliable connectivity we must perform a lot of planning up front to create a proper design to meet today’s Wi-Fi requirements. After deployment, a validation survey must be performed to find out if any optimization is required.

Wi-Fi is killing you because of these issues:
– Non-existent planning
– Poor designs from guessing
– Poor user experience
– Increased troubleshooting and tickets

Without extensive planning, it will make designing a high density wireless network a guessing game. Considerable amount of time should be focused on identifying which applications are expected to be used, how many devices will be associated to Wi-Fi, and what bandwidth requirements need to be met, etc. There can be a long laundry list of questions.

Poor planning creates a ripple effect which leads to an improper best guess design that negatively affects end user experience. Not to mention an increase in troubleshooting and escalated tickets.

Below are best practices that should be applied for high density Wi-Fi in Education. This is meant to be a guideline for providing reliable Wi-Fi and is intended to be used for wireless network engineers.


Before configuring any hardware, we must find out what kind of application should the wireless network be designed for? The type of application will tell what kind of throughput needs to be supported.

The application throughput is then applied to the number of devices expected to be using Wi-Fi.

We can use application throughput requirement and the number of devices to come up with an approximate number of required radios.

Other requirements include aesthetics, coverage areas, and more, including the categories listed below.

Data Rates

Disable legacy data rates and select your basic data rates to create smaller cell sizes. A word of caution with disabling low data rates – legacy devices will not be able to join the BSS.

Another reason for disabling low data rates is to allow the newer devices to take advantage of the network by spending less time transmitting over the air.

As devices get farther from an access point, they will dynamically drop to a lower data rate and less complex modulation. Using higher data rates can “push” the device to roam to a neighboring access point.

Channel Re-Use Plan

The 2.4 GHz band only has three non-overlapping channels. That is not much to use in a high density environment. Design a network with 5 GHz in mind. Even if you plan to lower the transmit power of a 2.4 GHz radio it still propagates far distances, especially with lower data rates enabled.

The 5 GHz band provides 25 channels to reuse. With a sound channel plan, you avoid the co-channel and adjacent channel interference.

More channels provide you with separate contention domains to assist devices in spending less air time transmitting and receiving data.

Channel Widths

Use of 20 MHz channels is a must. Earlier I mentioned the channel re-use plan. That channel re-use plan for 5 GHz is ideally positioned for high density in education.

While 40 MHz channel widths give you larger data rates, be sure to verify the amount of channel overlap as to not cause contention domain issues.

Do not use 80 or 160 MHz channels in a high density environment. There are not enough channels to reuse with this configuration.

Contention Domains

An important goal in high density Wi-Fi for education is the creation of contention domains. The channel re-use plan will be vital in the design of contention domains.

The network can operate more efficiently with smaller contention domains. This is achieved by getting devices off the air as soon as possible.

Take a lecture hall with three sections of seats to fit 200 people as an example. One access point may be able to provide sufficient signal for the lecture hall. But the real question is will it meet capacity needs.

If the professor has every student download a large video there will be 200 devices contending for air time to download this video. That’s one dual-band access point reaching capacity.

We can create multiple contention domains by adding an access point to service each section, using directional antennas. This splits the devices onto different radios. The result is faster transmissions for devices and less air time spent communicating on the medium.

Antenna Selection

Omnidirectional antennas propagate signal in a 360 degree radius. When a high density environment requires many access points to meet requirements we receive a lot of RF from each access point.

This can lead to CCI and ACI. Although transmit power settings can be tuned, an omnidirectional signal can propagate far in an open space.

Use directional antennas to form smaller, specific, cell sizes. An antenna with a narrow beam can effectively cover a section and still provide overlap for a non-overlapping cell.

Directional antennas provide a method of limiting CCI and ACI between access points.

Example directional antennas are patch or yagi antennas.

Predictive Survey

A predictive site survey can be a time saving way to come up with a design based on gathered requirements. The purpose is to predict signal propagation, coverage, and capacity.

It can be an alternative to an on-site AP-on-a-stick survey or can be an augment to it.

The AP-on-a-stick survey may be more accurate than a predictive survey but will require more time.

If time is a concern, a predictive survey will help eliminate the guessing game of designing a wireless network.

Validation Survey

This is an absolute must. Verifying a wireless network deployment is validating all requirements from the planning stage.

Use an application such as Ekahau Site Survey to perform your validation survey against your predictive surveys.

After going over the results, make the necessary tuning to optimize the wireless network per requirements.

Create a report of the results and have it signed off by the client/instructor/contact.

One thought on “Why High Density Wi-Fi is Killing You”

  1. Arranda Saputra says:

    Hi Rowell, very great article! Thanks for sharing this. I noted a lot to use non-overlapping channel and lowering the transmit power
    By the way, can you share how to prevent client device roaming to an access point that has lower signal? I am experiencing this a lot where my signal bar suddenly dropping and then I noticed on the wifi controller that my device has roaming to a farther AP despite the fact that I am staying in the same place.
    I’ve also heard about wireless network virtualization where the client only sees a lot of AP as a single AP so roaming is totally eliminated, but never find a vendor with this kind of solution. Did you, by any chance, know something about this?

Leave a Reply to Arranda Saputra Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

[gravityforms id=16 title=false description=false]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_unknown gform_wrapper gravity-theme' id='gform_wrapper_16' ><form method='post' enctype='multipart/form-data' id='gform_16' action='/high-density-wi-fi-education/?replytocom=1255' > <div class='gform_body gform-body'><div id='gform_fields_16' class='gform_fields top_label form_sublabel_below description_below'><fieldset id="field_16_1" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><legend class='gfield_label gfield_label_before_complex' >Name<span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name no_last_name no_suffix gf_name_has_1 ginput_container_name' id='input_16_1'> <span id='input_16_1_3_container' class='name_first' > <input type='text' name='input_1.3' id='input_16_1_3' value='' aria-required='true' placeholder='First Name' /> <label for='input_16_1_3' >First</label> </span> </div></fieldset><div id="field_16_2" class="gfield gfield--width-full gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_16_2' >Email<span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_2' id='input_16_2' type='text' value='' class='large' placeholder='Business email address' aria-required="true" aria-invalid="false" /> </div></div><fieldset id="field_16_3" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><legend class='gfield_label gfield_label_before_complex' >Consent<span class="gfield_required"><span class="gfield_required gfield_required_text">(Required)</span></span></legend><div class='ginput_container ginput_container_checkbox'><div class='gfield_checkbox' id='input_16_3'><div class='gchoice gchoice_16_3_1'> <input class='gfield-choice-input' name='input_3.1' type='checkbox' value='I consent to the processing and sharing with partners of the personal data that I provide Packet 6 for this activity in accordance with and as described in the &lt;a href=&quot;https://packet6.com/privacy-policy&quot; target=&quot;_new&quot;&gt;Privacy Policy&lt;/a&gt;' id='choice_16_3_1' /> <label for='choice_16_3_1' id='label_16_3_1'>I consent to the processing and sharing with partners of the personal data that I provide Packet 6 for this activity in accordance with and as described in the <a href="https://packet6.com/privacy-policy" target="_new">Privacy Policy</a></label> </div></div></div></fieldset><div id="field_16_4" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_16_4' >Phone</label><div class='ginput_container'><input name='input_4' id='input_16_4' type='text' value='' /></div><div class='gfield_description' id='gfield_description_16_4'>This field is for validation purposes and should be left unchanged.</div></div></div></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_16' class='gform_button button' value='Get the report' onclick='if(window["gf_submitting_16"]){return false;} window["gf_submitting_16"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_16"]){return false;} window["gf_submitting_16"]=true; jQuery("#gform_16").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_16' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='16' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_16' value='WyJbXSIsImY4MGVlNTA5MGVjMWYzYzU5NzUyOGFhOWE3ZGFiMzRlIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_16' id='gform_target_page_number_16' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_16' id='gform_source_page_number_16' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js" name="ak_js" value="203"/><script>document.getElementById( "ak_js" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div>