MTU - Максимална предавателна единица
На първо място, разбира се, трябва да разберете MTU, за което е чувал почти всеки, който някога е срещал Интернет. MTU означава Максимална единица за предаване.
Задава се в системния регистър по следния начин:
Това е максималният размер на пакет от данни, който може да бъде предаден в един физически кадър с помощта на TCP/IP протокола. Факт е, че данните от компютър на компютър в Интернет не преминават в непрекъснат поток, а в същите тези рамки. Рамката е пакет с определен размер. Изглежда, че всичко е много просто, но не. Най-добрият вариант би бил следният. Да предположим, че всички компании, до известна степен свързани с Интернет, са се споразумели за един стандарт (размер) на тези пакети, тогава ще бъде възможно да се използват максимално комуникационните канали, няма да има така наречените "пакетни" боклуци.
За съжаление това не е възможно. Друг проблем е, че при установяване на връзка два компютъра трябва да се споразумеят за размера на пакетите, но също така по пътя размерите им могат да се променят, тъй като рамката по пътя към дестинацията преодолява редица междинни сървъри и рутери, чиито MTU настройки могат да бъдат напълно различни. Следователно, колкото по-голям е пакетът, толкова по-голяма е вероятността той да бъде счупен и пълен с "боклук" по пътя.
Така че, ако вашият доставчик има MTU=576 настройки, а вие имате MTU=1500, зададен в Windows, тогава всеки от вашите пакети ще бъде разделен на три 576 байта всеки: 576+576+576=1728 - т.е. 228 байта баласт ще бъдат добавени към всеки от вашите пакети. Но дори ако доставчикът също е задал MTU=1500, тогава при комуникация с отдалечен сървър може да се натъкне на рутер с по-ниска стойност на MTU и пакетите отново ще бъдат фрагментирани, забавяйки преноса на данни.
Microsoft Windows има функцияавтоматично откриване на MTU. Той е активиран по подразбиране и донякъде спасява ситуацията. Но има и минус: процедурата за изчисляване на MTU за всяка връзка отнема много време, което леко забавя работата при изпомпване на малки файлове и сърфиране в мрежата. И дори ако вашите параметри не съвпадат с параметрите на интернет доставчика, тази функция едва ли ще ви помогне. Разбира се, има някои повече или по-малко общоприети стандарти за този параметър: например за Ethernet MTU е 1500 байта, за SLIP - 1006, за PPPoE -1492, за PPP (т.е. модемна връзка към Интернет) - 576.
Всъщност вашият интернет доставчик може да зададе всякакви други стойности по свое усмотрение. В резултат на това се изпращат или много малки рамки, които не позволяват пълното натоварване на комуникационния канал, или твърде големи рамки, които ISP разбива на по-малки. Това влошава качеството на комуникацията, скоростта на работа в световната мрежа.
Всъщност всеки пакет се състои от още няколко сегмента. Това са заглавия и фактически данни. Частта, която съдържа само действителните данни, се нарича MSS или максимален размер на сегмента, което е друг параметър на TCP / IP протокол, който определя най-големия сегмент, сега от данни, предаван за единица време. Всъщност MTU се състои от MSS и TCP/IP хедъри.
Регистърът на MSS е настроен, както следва:
Заглавката също има стандартен размер от 40 байта. 20 байта за IP и 20 байта за TCP. Следователно размерът на MSS е разликата между MTU и заглавката, т.е. 40 байта. Ето защо има някои тънкости при определянето на оптималния размер на MTU.
Като пример, струва си да се изследва предаването на данни с различни размери на MTU през широколентова връзка T1 (скоростна лента - 1544000 bps), като се използва следната формула:
[(MSS + заглавие) x 8 bps] / [1 544 000 bps] = забавяне на скок (т.е. до всеки компютър в мрежата по пътя на нашия пакет).
Използвайки различни стойности на MTU в тази формула, можем да изчислим забавянето на един пакет. Ако MTU=1500, тогава латентността = (1460+40) x 8/1544000 = 7,772 ms.
Ако MTU=576, тогава забавяне = (536+40) x 8/1 544 000 = 2,984 ms.
Да предположим, че има 10 сървъра по пътя на пакета, тогава при MTU=1500 получаваме забавяне от 77,72 ms, а при MTU=576 - 29,84 ms - разликата е много осезаема.
Следователно е очевидно, че по-малките пакети ще се предават по-бързо поради малката честотна лента на линията. Въпреки това, не всичко е толкова просто. Използвайки същата формула, нека изчислим колко време отнема прехвърлянето на файл от 1 MB по същата широколентова T1 линия. Един мегабайт е равен на 1024 KB или 1 048 576 байта. Ако MTU = 1500, тогава, както разбрахме, забавянето на хоп ще бъде 7,772 ms.
1 MB/MSS = 1 048 576/1460 = 718,2, т.е. общо са необходими 719 ефективни пакета за прехвърляне на 1 мегабайт данни. Освен това, умножаваме 719 пакета по 7,772 ms, получаваме 5588,083 ms, или 5,588 секунди забавяне на скок. Ако прехвърлим нашия файл на 10 скока, което е по-често срещано от едно, тогава получаваме 55,88 секунди - това е времето, което ние (или по-скоро доставчик на интернет услуги с линия T1) прекарваме, за да прехвърлим 1 MB файл с идеална връзка. Ако MTU=576, тогава: 1 MB/MSS = = 1 048 576/536 = 1956.300, т.е. с такъв MTU са необходими 1957 пакета за предаване на 1 MB.
След това умножаваме броя на пакетите по забавянето на всеки от тях: 1957 x 2,984 = 5840,580 ms, или 5,841 секунди на скок. Е, съответно 10 скока ще отнеме 58,41 секунди. Както можете да видите, поради факта, че при използванеголеми пакети, по-малко заглавки се предават, действителната скорост на прехвърляне на файлове е по-висока.
За да прехвърлите 1 мегабайт, когато използвате MTU = 1500, трябва да изпратите „допълнителна тежест“ от заглавки от 28 760 байта, докато използвайки MTU = 576 получаваме цели 1957x40 = 78 280 байта, т.е. допълнителни 49 520 байта заглавки за всеки мегабайт полезна информация. За нашия 10-хоп трансфер, това добавя допълнителни 2,52 секунди на мегабайт трансфер, дори при ултра-бързи връзки.
Тази разлика вероятно ще бъде малко по-голяма на практика, тъй като съвременните TCP/IP реализации са склонни да използват дори по-големи заглавки (напр. допълнителни 12 байта заглавка за времеви клейма). Ако извършим подобни изчисления за модемна комуникация при скорост от 33 600 Kbps, получаваме, че в идеалния случай ще са необходими 256 секунди за MTU=1500 и 268 секунди за MTU=576 за прехвърляне на мегабайт информация на разстояние от един хоп^, т.е. директно до вашия доставчик.
Разликата при един преход е 12 секунди или около 4,5%! Но не трябва да забравяме, че тези цифри ще бъдат получени, ако няма фрагментация на пакети, тоест ако вашият доставчик има MTU=1500. Ако това не е така, тогава, разбира се, пакет, по-голям от необходимото, ще бъде фрагментиран - разбит на няколко пакета и дори разреден с "въздух", а комуникацията ще се влоши с 10-50%.
Следователно е логично да се смята, че големите опаковки в крайна сметка все още са за предпочитане. И ако вашият доставчик е конфигурирал своите сървъри и рутери за големи пакети, тогава трябва да се стремите да го използвате максимално, но не забравяйте, че в Интернет има сървъри с MTU=576 (ще говорим за това малко по-късно). Въпреки това, ако чистата производителност не е крайната цел, тогава по-малкапакетите ще бъдат "по-бързи", защото им отнема по-малко време за пътуване в мрежата.
Този ефект може да надделее над всички други предимства на големите пакети в някои интернет приложения и онлайн игри чрез намаляване на времето за реакция на отдалечения сървър при прехвърляне на малки количества информация.
В интернет, по пътя на вашите пакети, вероятно ще срещнете различни сървъри с различни настройки, но все пак е желателно да определите най-добрата стойност на MTU, когато комуникирате само с вашия доставчик, тъй като тя може да бъде решаваща за оптимизиране на вашия достъп до интернет.
В Windows 95 разработчиците избраха MTU=1500 по подразбиране, което уж не съответства на оптималната стойност за модемна връзка, която обикновено се счита за равна на 576. В Windows 98 Microsoft вече коригира този недостатък и сега по подразбиране за връзки под 128 килобита в секунда имаме MTU=576, което изглежда по-често най-добрият вариант. Нека се опитаме да разберем дали това е вярно.
Така че има няколко начина да определите стойността на MTU, която е оптимална за комуникация с вашия интернет доставчик.
В разделаОбщи(Общи) на прозореца, който се отваря, щракнете върху бутонаНастройки(Настройки) до реда с името на вашия модем. В диалоговия прозорецСвойства: Тип модемизберете разделаОпциии поставете отметка в квадратчетоПоказване на терминалния прозорец след свързване. Сега се свържете с доставчика и когато се появи прозорецът на терминала, въведете ръчно потребителското име и паролата, както се изисква. Ако след това видите нещо като "Влизане в PPP режим. Вашият IP адрес еxxx.xxx.xxx.xxx. MaxMTU е 1524", тогава имате късмет - имате MTU на доставчика. Но дори и тук би било полезно да проверите тази стойност лично.