Общо показвания

събота, 3 декември 2011 г.

Как да оптимизирате вашата безжична мрежа

     Правилната настройка на вашата Wi-Fi мрежа може да доведе до по-висока скорост и по-кратко време за обръщение към страниците.


       Как работи една безжична мрежа    
       
        Нека първо да разберем какво всъщност е Wi-Fi. Това е безжична мрежа която използва няколко честоти в 2.4GHz радио-спектър за предаване и получаване на информация между компютри.  За преминаването на тази информация се използва протокол наречен 802.11.
     Ако всяка мрежа която е в обхвата ви използва една и съща честота, това ще доведе до големи смущения в сигнала - подобно на две радио-станции които работя на една и съща честота. За да се избегне такова "запушване" протокола позволява устройствата да използват 13 канала, които са леко отместени един от друг. По този начин се постига въжможно най-малко смущаване от съседни мрежи.
     Протокола 802.11 има няколко модификации. Най-стария 802.11а вече не се използва. Той е подменен от по-новия 802.11b позволяващ максимална скорост на обмен 11Mb/s. Следващата модификация която излиза е 802.11g със скорост на обмен до 54Mbps. Най-новия е 802.11n който може да използва 2 канала едновременно за постигане на скорост от 300Mbps.

       Защита на мрежата

        Кодирането е много важно за Wi-Fi мрежите. С него защитавате вашите данни от недоброжелателни лица и ограничавате достъпа до интернет връзката само с хората които знаят паролата за свързване към рутера. Най-стария протокол за кодиране е WEP (Wireless Equivalent Protocol). Този протокол е вече несигурен защото има програми които го разбиват. Когато достатъчно пакети биват прихванати, софтуера може да декодира паролата която изпозлвате. Следащия протокол който излиза е WPA (Wi-Fi Protected Access) през 2003 година. Малко след това през 2004 излиза обновената му версия WPA2. Протокола е все още актуален и осигурява надежна защита на вашата мрежа.

     Контрол на трафика

          Ако всеки компютър във вашата мрежа предава по едно и също време, те ще си пречат един на друг и ще се получи "запушване" на сигнала. За да се избегне това всяка безжична карта която се продава използва техника наречена  Carrier Sense Multiple Access (CSMA) за споделяне на радио-вълните. Когато една Wi-Fi карта иска да предаде пакет с информация, преди това "слуша" дали ефира е чист. Ако в това време се предава някакъв пакет, картата изчаква малко и пак проверява дали е чист ефира. Тогава картата излъчва пакета си след което пак прослушва дали е чист канала, преди да излъчи следащия пакет.  Теоретично така би трябвало да се постигне равнопоставяне на всички карти в мрежата.
      Преди да започнете да правите опити за подобряване на Wi-Fi мрежата, първо е необходимо да разберете каква е производителноста и в момента. За тази цел може да изпозлвате програма за измерване на скороста. Има доста такива в мрежата. Една от тях е http://speedtest.net/ . За да бъдат резултатие максимално точни, уверете се че преди да пуснете теста сте изключили всички програми които ползват интернет връзка - като торенти, други компютри в мрежата ви, дори антивирусна програма, която ако в момента на теста ви се обновява, също може да доведе до нереален тест. За да придобиете реална представа за производителноста, тествайте връзката няколко дни в различни часове от деня. Направете този тест и когато рутера ви е свързан към компютъра с мрежови (LAN) кабел.

   Смущения

     Въпреки че протокола 802.11 използва някои "умни" техники за това, че независимо от  смущенията, вашият сигнал ще бъде приет, има доста смутители които биха затруднили предаването на пакетите с информация.  Има устройства които ползват същата честота (2.4GHz) която ползва и вашата безжична карта: някои модели безжични телефони, blue-tooth устройствата. Микровълнова печка, когато работи в радиус от 3 метра също създава смущение. Електро-мотори от пералня например. Съседа ви ако има безжична мрежа и ползва същия канал който ползвате и вие.  
 Една много полезна програмка при това напълно безплатна е inSSIDer. С нея може да видите силата на сигнала и каналите които ползвате вие и мрежите около вас. Така ще може да си изберете възможно "най-чистия" канал.

      Намиране на най-доброто място за рутера (или маршрутизатора, както се превежа на български) 

       За предпочитане е рутера да се постави в средата на апартамента. Колкото по-малко препядствия има от него до компютъра (или лаптопа), толкова по-силен сигнал ще имате. Броя на стените които ви делят от рутера може да доведе до голям спад на сигнала. Кабели в стените или водни тръби поемат част от сигнала. Метални повърхности пък реагират като отразител на сигнала. Ако имате голямо огледало, то също игре ролята на отражател, така че зад него нивото на сигнала намалява значително.  Други предмети които могат в по-малка степен да блокират сигнала са големи дървени гардероби, секции, библиотеки.

  Друг начин за оптимизиране на Wi-Fi сигнала е изпозлването на насочена антена. Ако всички устройства (компютри, лаптопи и т.н.) се намират в една посока и не е нужно сигнала да бъде разпръсван на 360 градуса. Или пък рутера се намира в края на апартамента, тогава използването на такава антена ще подобри връзката ви. Единствения недостатък е, че тези антени могат да бъдат малко скъпички (може би колкото цената на рутера ви) и трябва да прецените дали си струва инвестицията. Ако споменем и факта, че рутерите които работят с 802.11n стандарта ползват 2 или 3 антени.

        Заключение

      ISM (2.4GHz) обхвата в големия град е доста пренаселен. Увеличаващия се брой на безжични рутери и гъсто населения район пречи за постигане на максимални резултати. Надявам се информацията в тази статия да ви помогне до известна степен. Макар и да не е напълно изчерпателна. Нищо не съм казал за това че има рутери които си подбират сами "най-чистия" канал. Тоест ако един ден рутера на съседа ви е работил на 6-и канал утре може да го е сменил на 11-и. По този начин опитите които сте правили за оптимизиране може да нямат очаквания ефект. 5GHz обхват от друга страна е доста по-свободен. Но сигнала през стените минава по-трудно и разбира се цялата инвестиция която трябва да направите за подмяна на рутери и карти. Има още какво да се каже за безжичните мрежи, но за това следващия път.

четвъртък, 1 декември 2011 г.

"Сняг" за вашия сайт или страница в интернет

    Нова година наближава и ако искате да разнообразите вашия сайт или страница в интернет пространството, ви прелагам този Java скрипт за сняг. Доста опростен код, не е нужно да зареждате допълнителни картинки към него. В горната част на кода има настройки с които може да променята броя на снежинките, цветовете, шрифта и така нататък. Ето и самия код:



<!--Simply copy and paste into <BODY> 
     Just above the </BODY> tag. -->

<SCRIPT type="text/javascript">
/*
Snow Fall 1 - no images - Java Script
Visit http://rainbow.arch.scriptmania.com/scripts/
  for this script and many more
*/

// Set the number of snowflakes (more than 30 - 40 not recommended)
var snowmax=35

// Set the colors for the snow. Add as many colors as you like
var snowcolor=new Array("#aaaacc","#ddddff","#feff00","#4444ff","#f0ffff")

// Set the fonts, that create the snowflakes. Add as many fonts as you like
var snowtype=new Array("Times","Arial","Times","Verdana")

// Set the letter that creates your snowflake (recommended: * )
var snowletter="*"

// Set the speed of sinking (recommended values range from 0.3 to 2)
var sinkspeed=0.6

// Set the maximum-size of your snowflakes
var snowmaxsize=30

// Set the minimal-size of your snowflakes
var snowminsize=8

// Set the snowing-zone
// Set 1 for all-over-snowing, set 2 for left-side-snowing
// Set 3 for center-snowing, set 4 for right-side-snowing
var snowingzone=1

///////////////////////////////////////////////////////////////////////////
// CONFIGURATION ENDS HERE
///////////////////////////////////////////////////////////////////////////


// Do not edit below this line
var snow=new Array()
var marginbottom
var marginright
var timer
var i_snow=0
var x_mv=new Array();
var crds=new Array();
var lftrght=new Array();
var browserinfos=navigator.userAgent
var ie5=document.all&&document.getElementById&&!browserinfos.match(/Opera/)
var ns6=document.getElementById&&!document.all
var opera=browserinfos.match(/Opera/)
var browserok=ie5||ns6||opera

function randommaker(range) {
        rand=Math.floor(range*Math.random())
    return rand
}

function initsnow() {
        if (ie5 || opera) {
                marginbottom = document.body.scrollHeight
                marginright = document.body.clientWidth-15
        }
        else if (ns6) {
                marginbottom = document.body.scrollHeight
                marginright = window.innerWidth-15
        }
        var snowsizerange=snowmaxsize-snowminsize
        for (i=0;i<=snowmax;i++) {
                crds[i] = 0;
            lftrght[i] = Math.random()*15;
            x_mv[i] = 0.03 + Math.random()/10;
                snow[i]=document.getElementById("s"+i)
                snow[i].style.fontFamily=snowtype[randommaker(snowtype.length)]
                snow[i].size=randommaker(snowsizerange)+snowminsize
                snow[i].style.fontSize=snow[i].size+'px';
                snow[i].style.color=snowcolor[randommaker(snowcolor.length)]
                snow[i].style.zIndex=1000
                snow[i].sink=sinkspeed*snow[i].size/5
                if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
                if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
                if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
                if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
                snow[i].posy=randommaker(2*marginbottom-marginbottom-2*snow[i].size)
                snow[i].style.left=snow[i].posx+'px';
                snow[i].style.top=snow[i].posy+'px';
        }
        movesnow()
}

function movesnow() {
        for (i=0;i<=snowmax;i++) {
                crds[i] += x_mv[i];
                snow[i].posy+=snow[i].sink
                snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i])+'px';
                snow[i].style.top=snow[i].posy+'px';

                if (snow[i].posy>=marginbottom-2*snow[i].size || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])){
                        if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)}
                        if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)}
                        if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4}
                        if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2}
                        snow[i].posy=0
                }
        }
        var timer=setTimeout("movesnow()",50)
}

for (i=0;i<=snowmax;i++) {
        document.write("<span id='s"+i+"' style='position:absolute;top:-"+snowmaxsize+"'>"+snowletter+"</span>")
}
if (browserok) {
        window.onload=initsnow
}

</SCRIPT>