Преводач

7/30/2014

IP Адреси

Мрежовият слой се занимава със задачите по маршрутизирането. TCP/IP протоколите позволяват това маршрутизиране, като използват IP адреси, за да идентифицират мрежовите устройства. Всеки компютър, свързан към мрежата принтер, маршрутизатор и други мрежови устройства, притежават поне един уникален IP адрес. По точно - по един за всеки от поддържаните от даденото устройство мрежови интерфейси. Например, маршрутизаторите имат минимум два интерфейса, които се свързват към различни подмрежи. Всеки от тези интерфейси притежава уникален IP адрес.
IP адреси
Всеки IP адрес се състои от две части. Заедно те идентифицират мрежата, в която се намира устройството, и конкретното устройство в тази мрежа. Едната част от IP адреса идентифицира мрежата, а втората част - хоста (отделният компютър).
Напълно възможно е в две различни мрежи да има мрежови устройства с еднакви номера (адреси). В същото време няколко мрежови устройства, изграждащи дадена мрежа споделят един и адрес на мрежа. Но комбинацията от мрежов адрес и адрес на хост е уникална за всеки компютър (или по-точно, за всеки мрежов интерфейс). Например в IP адреса 192.168.1.4 първите три числа идентифицират мрежата. Последното число идентифицира мрежовия интерфейс на индивидуалния компютър. Всички компютри в същата подмрежа имат един и същ мрежов идентификатор (192.168.1), но всеки има различен идентификатор на хост (т.е. в подмрежата може да има само един адрес 4).
Ако даден компютър изпрати съобщение на IP адрес 192.168.1.4, в който 192.168.1 представлява мрежата, а 4 представлява хоста, първата стъпка е пакетът да се достави до правилната мрежа. След неговото пристигане той се маршрутизира вътрешно в самата мрежа до компютъра, представен от идентификатора на хоста (който е 4).
В нашия пример първите три числа идентифицират мрежата. Случаят обаче не винаги е такъв. В традиционната схема за IP адресиране, частта от адреса, която представлява мрежата, и частта, която представлява хоста, се определя от класа (class) на адреса.
IP адресите, подобно на останалата информация, обработвана от компютрите, са изградени всъщност от двоични цифри, или битове. Тъй като работата с дълги низове от единици и нули е трудна за повечето хора, ние обикновено обозначаваме IP адресите в точково-десетичен (dotted-decimal) формат. Той  представлява поредица от  четири числа, разделени с точки, като всеки набор представлява октет (8 двоични цифри или 8 бита). Четирите октета се обозначават като w.x.y.z като най-десният октет се нарича „z" октет, следващият е „у" и т.н.
Тъй като има по осем бита във всеки от четирите октета, всеки IP адрес е 32-би-тово двоично число. Това означава, че съществуват над четири милиарда възможни IP адреси (за да бъдем точни, 4 294 967 296, което е 232 ). Един IP адрес обикновено изглежда по следния начин: 192.168.1.12.
ЗАБЕЛЕЖКА Тук разглеждаме само версия 4 на Интернет протокола (IPv4), която масово се използва днес. В момента се тества нов стандарт, IPv6, който използва 128-битов адрес и осигурява 2128 използваеми адреси.
Знаем, че част от IP адреса идентифицира мрежата, а останалата част идентифицира отделното устройство (хоста), но коя част коя е и кое от двете представлява? Първоначално това се определяло от класа, към който принадлежи мрежата. По настоящем това се определя по един нов метод за адресиране, наречен безкласово адресиране (classless addressing). Ще разгледаме накратко и двата метода.

  • Класово адресиране (classful addressing).
Методът на разделяне на IP адреси на класове според размера на мрежата се нарича класово адресиране (classful addressing).
В ранните дни на Интернет е изглеждало логично да се назначават IP адреси на компании и организации на блокове, защото всеки компютър в локалната мрежа се е нуждаел от уникален адрес, чрез който да комуникира в Интернет. Блокове от адреси са били назначавани на база размера на локалната мрежа. Мрежите на големите компании са се нуждаели от по-големи блокове от адреси, а малките, само с по няколко устройства, са  изисквали, естествено, по-малки блокове. Класовете на адресите се определят на база размера на мрежата (броят на хост адресите). Следната таблица обобщава класовете адрес, които се използват за IP адресиране на хостове.


Клас
Октет  w
Част за адресна мрежата
Част за адресна хост
Брой  мрежи
Брой хостове ведна мрежа
A
1-126
w.
x.y.z
126
16 277 214
B
128-191
w.x.
y.z
16 384
65 534
C
192-223
w.x.y.
z
2 097 152
254

Както можете да видите в наличност има само 126 адреси от Клас А. Тези адреси бяха изчерпани още преди години; те бяха назначени на много големи корпорации и образователни институции, включващи IBM, Hewlett Packard, Xerox, Масачузетския технологичен институт (Massachusetts Institute of Technology - MIT), Университетът на Колумбия, Digital Equipment Corporation, General Electric и Apple. Всяка мрежа има над 16 милиона хост адреса, които могат да бъдат назначавани на компютрите в тези мрежи.
Схемата за класове от IP адреси създава над 2 милиона Клас С мрежи, но всяка от тези мрежи не може да има повече от 254 хост адреса. Мрежовите адреси от Клас С често пъти се назначават на Интернет доставчици, които разпределят дадения им диапазон на по-малки блокове за компании, разполагащи само с 10 до 20 хост машини в техните мрежи.
Клас В адресите попадат между адресите от Клас А и тези от Клас С. Те се назначават главно на големи компании, които в ранните дни на Интернет са били твърде малки (или не са съществували), за да получат Клас А адрес. Microsoft Corporation е пример за компания с Клас В мрежа.
Съществува и клас D адреси, но те не се използват за мрежи, а за мултикаст съобщения, представляващи средство за изпращане на едно съобщение до множество получатели едновременно. Клас D адрес се назначава на указана група от компютри, а мултикастните протоколи се занимават с дистрибуцията на пакетите.

  • Безкласово адресиране
Очевидно, класовото адресиране не е най-ефективният начин на използване на ограничения брой IP адреси, налични в 32-битовата схема за адресиране. За да илюстрираме това, нека използваме примера за компания, притежаваща 2000 компютъра, които иска да свърже към Интернет. Един Клас С адрес няма да свърши работа, защото това би ограничило мрежата до 254 хоста. Следващият по-горен клас са Клас В адресите, но ако компанията получи такъв адрес, той би заел диапазон от 65 000 адреса. Тъй като компанията се нуждае само от 2000 от тези адреси, над 63 000 IP адреси ще бъдат загубени.
Загубата на адреси, свързана с класовото адресиране, съдейства за бързото изчерпване на свободни IP адреси. Едно от предложените решения е реализацията на IPv6, който използва по-голямо адресно пространство (128 битово). Само че преминаването към нова версия на IP не е просто и ще отнеме известно време, докато това се случи. Междувременно съществува друго решение: безкласово адресиране, базирано на безкласовата междудомейнова маршрутизация (classless interdomain routing - CIDR).
Вместо да използва адресни класове, CIDR използва обозначение, прикрепено към всеки IP адрес, което указва броя битове, използвани за мрежовата част от адреса. CIDR мрежите понякога се наричат „slash x" (слаш екс) мрежи, защото IP адресът се разделя от суфикса посредством наклонена черта (слаш). При това положение един CIDR адрес изглежда по следния начин: 192.168.1.0/24. Числото 24 след наклонената черта означава, че 24-те най-леви бита се използват за идентификация на мрежата, а останалите осем бита се използват за идентификация на хоста. С други думи, първите три октета посочват мрежата, а последният посочва хост компютъра. Ако адресирането беше класово това щеше да е Клас С мрежа. CIDR позволява много по-ефективно разпределение на IP адреси. CIDR мрежите могат да бъдат означавани като /12, /20, /21, /28 и Т.Н.; това означава, че след наклонената черта може да следва какъвто и да е брой битове, които искате да използвате за мрежов идентификатор. Това позволява създаване на мрежи с размери, които попадат между традиционните мрежови класове.
Обикновенно CIDR-базираните адрси започват от 24 бита  за мрежов идентификатор и  8 бита за номер на хост.
Таблицата по долу показва  връзката между максималния брой  хостове и  дължината на префикса(идентификатора на мрежа):

Брой хостове
Дължина
на
префикса
Базов IP адрес
2–254
/24
255.255.255.0
255–510
/23
255.255.254.0
511–1 022
/22
255.255.252.0
1 021–2 046
/21
255.255.248.0
2 047–4 094
/20
255.255.240.0
4 095–8 190
/19
255.255.224.0
8 191–16 382
/18
255.255.192.0
16 383–32 766
/17
255.255.128.0
32 767–65 534
/16
255.255.0.0
CIDR също така поддържа практиката на комбиниране на малки непрекъснати блокове от мрежови адреси в един по-голям. Това се нарича обединяване в надмрежи (supernetting).


Публични и частни адреси
С изобретяването на технологии като транслирането на мрежови адреси (Network Address Translation – NAT) вече не важи изискването всеки компютър в локалната мрежа да притежава публичен IP адрес.
Най-общо казано публичен е адрес, който е уникален в рамките на разглежданата IP мрежа В случая с Интернет публичен е този адрес, който еднозначно идентифицира даден хост, независимо в коя подмрежа на глобалната мрежа се намира.
Анализирайки нуждите от адреси на отделните организации, проектантите на Интернет са забелязали, че в повечето случаи болшенството хостове в нямат нужда от директна връзка с Интернет. Тези от тях, които изпълняват някъкво множество от Интернет услуги (например, Web достъп, e-mail и др), като правило получават достъп до съответните услуги посредством  шлюзове от приложния слой (Application layer gateways)  - proxy сървъри и e-mail сървъри.  В резултат на това, повечето организации имат нужда само от няколко публични адреса за тези възли (proxies, servers, routers, firewalls, and translators), които са директно свързани към Интернет.  Останалите мрежови точки, вътре в организацията, които нямат нужда от такава връзка все пак трябва да имат адреси, които при това да не се дублират с вече присвоени публични адреси.За решаването на този проблем с адресирането, проектантите на Интернет са отделили  част от адресите в за т.н. частно адресиране. Тези адреси се наричат частни адрес (private address) и никога не се присвояват като публични адреси. Частната и публичната част на IP адресното пространство не се припокриват и така се избягва възможността от дублиране на публичен адрес от частен.
Дефинирани са следните три области за частни адреси:

  • 10.0.0.0/8 – адреси от 10.0.0.1 до  10.255.255.254. (общо 224-2=16 777 216 адреса)
  • 172.16.0.0/12 - адреси от  172.16.0.1 до  172.31.255.254 (общо 220-2=1 048 576 адреса)
  • 192.168.0.0/16 – адреси от  192.168.0.1 до 192.168.255.254 (общо 220-12=1 048 576 адреса).
Не е възможно мрежова точка (хост) с частен адрес да бъде свързана директно към Интернет. Такава връзка може да бъде реализирна  единствено чрез gateway (например прокси сървър), който има валиден публичен адрес или чрез NAT устройство, което транслира частния адрес в публичен и обрано.


Автоматично разпределяне на адреси
За да комуникира чрез използване на TCP/IP, един компютър или мрежово устройство трябва да притежава уникален IP адрес. Това е логически адрес и се обработва в мрежовия слой.
Частта от адреса, предназначена за мрежата, трябва да бъде същата като тази на останалите компютри в дадената подмрежа. Например, ако използвате подразбиращата се подмрежова маска за Клас С мрежи, тогава 192.168.1.12 и 192.168.1.34 ще бъдат два компютъра в една и съща подмрежа, защото мрежовият идентификатор, представян от първите три октета, е един и същ.
Точно обратното е при хост частта - тя не трябва да бъде същата за нито един друг компютър в дадената подмрежа. Например, не може да има два компютъра с хост адрес .6 в същата подмрежа.
Съществуват два начина за получаване на IP адрес:

  • Адресът може да се въведе ръчно в TCP/IP свойствата на операционната система. Това изисква мрежовият администратор да разбира TCP/IP адресирането и да знае как да избере валиден адрес за конкретната мрежа.
  • Адресът може да се назначи автоматично. По принцип това означава, че даден компютър в мрежата се конфигурира като DHCP сървър, за да задава IP адреси. В други случаи една възможност на операционната система, наречена Automatic Private IP Addressing (APIPA), позволява на компютъра да си самоназначи адрес, ако не успее да се свърже с DHCP сървър.

  • DHCP
DHCP ( Dynamic Host Configuration Protocol) е протокол, който дава възможност да се автоматизира получаването на валиден IP адрес. Използването му позволява да се облегчи администрирането на мрежата, като се избегне необходимостта от ръчно настройване на всеки включен в нея компютър. Една DHCP мрежа има следните основни елементи:

  • DHCP сървъри - компютри, които предоставят на DHCP клиентите услугата за динамично конфигуриране на IP адрес и свързаните с него параметри.
  • DHCP клиенти - мрежови устройства, които могат да комуникират с DHCP сървъри с цел да получат динамично генериран IP адрес и свързаните с него параметри.
  • DHCP препредаватели (relay agents) - мрежови възли(най често това са маршрутизатори), които разпознават и "пропускат" DHCP съобщенията в мрежата между DHCP сървърите и DHCP клиентите. Те дават възможност дадена подмрежа да използва възможностите на DHCP без да има собствен (локален) DHCP сървър.
Информацията, която DHCP клиентът получава от DHCP сървъра в отговор на своето запитване включва:

  • IP адрес
  • подмрежова маска
  • допълнителни конфигурационни параметри, като адрес на шлюз по подразбиране (default gateway address), адрес на DNS ( Domain Name System ) сървър,име DNS домейн (domain name) и адрес на WINS ( Windows Internet Name Service) сървър.
DHCP сървърът отдава под наем, т.е. само за опредлено време, адрес на DHCP клиент. Стъпките, изпълнявани, когато DHCP клиент получава наем за IP адрес от DHCP сървър, са следните:
DHCP

  • Компютър, чиито TCP/IP свойства са установени за получаване на IP адрес чрез DHCP, се появява в мрежата. Този компютър бродкаства съобщение, наречено съобщение за откриване на DHCP. (Бродкастните съобщения се изпращат до всеки компютър чрез използване на специален бродкастен адрес.)
  • Ако в мрежата има DHCP сървър, той приема бродкастното съобщение и отговаря със съобщение, наречено DHCP предложение. Съобщението предлага на клиента IP адрес от диапазона от адреси на сървъра, които са налични за разпределение. Предложеният адрес временно се резервира, докато сървърът не получи отговор от клиента. Съобщението с предложението също се изпраща като бродкаст, защото клиентът все още няма IP адрес, до който съобщението да бъде изпратено директно.
  • Клиентът може да получи множество предложения, ако в мрежата има множество DHCP сървъри. Когато пристигне първото предложение, клиентът отговаря със съобщение, наречено DHCP заявка (DHCP request). Това е приемане на първото получено предложение. То отново е бродкастно съобщение; по този начин всички DHCP сървъри го получават и онези, отправили предложенията си по-късно, ще знаят, че техните пред ложения не са приети. След това те могат да поставят предложените ад реси, които са резервирали за клиента, обратно в своите пулове от свободни адреси.
  • Последната стъпка в тези преговори е DHCP потвърждението (DHCP acknowledgment) (наречено също АСК). DHCP сървърът, чието предло жение е прието, получава съобщението за заявка от клиента. Сървърът потвърждава приемането и назначава IP адреса на този клиент за пред варително дефиниран „наемен" период. Сървърът може да изпрати на клиента допълнителна информация за конфигуриране на TCP/IP, като например IP адресите на DNS и WINS сървъри.
Когато тези стъпки приключат, клиентът може да използва назначения му IP адрес, за да комуникира с останалите компютри, работещи с протокола TCP/IP. Това става, докато не изтече предоставеният наем. Наемният период може да се зададе от администратора на DHCP сървъра.
Преди изтичането на наема клиентът започва да преговаря, за да го поднови, така че да продължи да използва адреса. Обикновено DHCP сървърът отговаря положително на заявката. Ако обаче DHCP сървърът е изключен, или ако изпрати отговор за отрицателно потвърждение (Negative Acknowledgment — NACK), клиентът трябва да започне DHCP процеса от самото начало. DHCP сървърът може да изпрати NACK, ако например клиентската машина се е преместила в различна подмрежа, при което адресът, който се опитва да поднови, вече не е валиден за новото местоположение.
DHCP има множество предимства пред ръчното задаване на IP адреси:

  • Спестява време, защото администраторът не трябва да въвежда адрес в настройките на всеки компютър.
  • Гарантира по-голяма точност, защото администраторът не е необходимо да следи кои адреси вече са били назначени и кои все още са свободни.
Ако компютри в една мрежа трябва постоянно да имат един и същ IP адрес (това често е в сила за сървърите), те пак могат да използва DHCP. В този случай трябва да конфигурирате тези компютри да използват резервиран адрес (reserved address). DHCP сървърът винаги назначава същия адрес на даден клиент, притежаващ такава резервация. Резервацията се извършва на базата на МАС адреса на DHCP клиента (т.е. на база физическия му адрес).
DHCP не е специфичен за дадена операционна система. Той може да се използва с Microsoft, UNIX, NetWare и други популярни типове мрежи. Въпреки това реализациите на DHCP услугите от страна на отделните производители могат да се различават. Например Windows 2000 DHCP сървърите са интегрирани в Active Directory. Това позволява на администраторите да предотвратяват неав-торизирани DHCP сървъри да раздават IP адреси в мрежата.

  • APIPA
Друг начин за автоматично получаване на IP адрес е APIPA. TCP/IP реализацията на операционните системи на Microsoft (Windows 98/XP/2000 и по-новите версии), включват тази възможност.
По традиция, ако даден компютър е бил конфигуриран като DHCP клиент и не е в състояние да се свърже с DHCP сървър, когато се включи в мрежата, този компютър няма да има IP адрес и няма да е в състояние да комуникира по TCP/IP. APIPA адресирането беше разработено да разреши този проблем.
Когато един компютър с разрешено APIPA адресиране не може да открие DHCP сървър, той си самоназначава адрес от предварително заделен за целта диапазон от адреси (Клас В мрежата 169.254.0.0). Самоназначеният адрес може да се използва, докато DHCP сървърът отново започне да функционира.


Разделяне в подмрежи и обединяване в надмрежи
Разделянето на подмрежи (subnetting) превръща двустепенната йерархия на адресиране в тристепенна. За да разделите дадена мрежа на подмрежи, вие „заемате" някои от битовете, които нормално се използват за хост частта от адреса, и ги използвате като второ ниво на мрежов адрес (подмрежов адрес).
Разделянето на подмрежи е свързано с процеса на заемане на една част от адреса и прехвърлянето й към друга част. Когато извършваме разделяне на подмрежи, IP трябва да има някакъв механизъм да определя кои битове идентифицират мрежата и кои все още се използват за идентифициране на хоста. IP определя това, като използва подмрежова маска (subnet mask), 32-битово число, въвеждано от администратора при конфигурирането на TCP/IP настройките. Подмрежовата маска установява битовете, представляващи мрежовия идентификатор, в единици, а битовете, представляващи хост идентификатора, се установяват в нули. За частта за мрежовия идентификатор се казва, че е „маскирана" от вдигнатите битове(тези които са 1-ци).. По подразбиране, за мрежов идентификатор Клас А мрежите използват битовете в първия октет, Клас В мрежите използват битовете в първите два октета, а Клас С мрежите използват първите три октета. Подразбиращите се подмрежови маски (default subnet masks), явяващи се резултат от това правило, са показани в следната таблица:

Клас адреси
Подмрежова маска
Двоична
Десетично-точкова
Клас А
11111111.00000000.00000000.00000000
255.0.0.0
Клас В
11111111.11111111.00000000.00000000
255.255.0.0
Клас С
11111111.11111111.11111111.00000000
255.255.255.0

Подмрежовите маски,показни в горната таблица, се прилагат към мрежите, които не са разделени на подмрежи. Какво става обаче, ако решим да разделим дадена подмрежа? Нека приемем, че ни е назначен мрежов адрес от Клас В, като например 181.25.0.0. Знаем, че една Клас В мрежа може да съдържа 65 535 хост компютъра. Но ако имаме толкова много компютри в една мрежа, тогава бродкастният трафик ще бъде неуправляем. Като решение на проблема нека приемем, че сме решили да разделим мрежата на шест подмрежи. За да направим това, трябва да заемем битове от хост частта на адреса, които да използваме за посочване на подмрежите, и освен това трябва да изчислим правилната подмрежова маска, която да казва на IP, че нашата мрежа има шест подмрежи (или осем възможни подмрежи). Изчисляване на подмрежовата маска Една подмрежова маска, различна от подразбиращите се маски, се нарича подмрежова маска с варираща дължина (variable-length) или потребителска (custom) подмрежова маска. За да изчислим правилната подмрежова маска за нашия сценарий, при който искаме да имаме шест отделни подмрежи, трябва най-напред да определим колко бита трябва да заемем от хост частта на адреса. Тъй като двоичните числа са в бройна система с основа 2, подмрежите трябва да се създават в блокове, които са степени на двойката. За да изчислим подмрежовата маска, трябва да открием каква степен на 2 ни дава 6 (или повече) подмрежи. Ако повдигнем 2 на втора степен (2 х 2), получаваме 4. Трябват ни повече подмрежи, така че нека пробваме да повдигнем 2 на трета степен (2x2x2=8). Ако извадим 2, за да изпълним старото правило, което гласи, че не можем да използваме мрежови идентификатори, които се състоят само от 0-ли или само от 1-ци, ни остават 6 използваеми подмрежи. Ето защо трябва да заемем три бита от хост частта на адреса. Това означава, че трябва да обърнем първите три нули, индициращи хост идентификатора, в единици, които да индицират мрежовия идентификатор. Нашата оригинална подмрежова маска с взетите на заем битове сега изглежда така:
11111111.11111111.11100000.00000000
Ако преобразуваме в десетични стойности, получаваме 255.255.224.0. По колко хост компютъра можем да имаме във всяка подмрежа? Погледнете оставащите нули, индициращи хост частта от адреса. Ще откриете, че те са само 13, което ни дава 213 = 8192. Това означава, че можем да имаме по 8190 хоста във всяка подмрежа, след като извадим 2, така че да няма хост адрес, съдържащ само нули или само единици.
Когато се извършва предаване по мрежата чрез използване на ТСР/IР, IP трябва да определи дали компютърът местоназначение се намира в същата подмрежа като изпращащия компютър. Ако и двата компютъра са в една и съща подмрежа, съобщението се изпраща до всички компютри в подмрежата (броадкаства се). Ако компютърът местоназначение е в различна подмрежа, съобщението се изпраща към адреса на подразбиращия се шлюз (default gateway), който е адресът на интерфейса на маршрутизатора (маршрутизаторът служи като шлюз към останалите подмрежи). IP използва операцията логическо И (ANDing) между двоичните версии на IP адреса на всеки компютър с подмрежовата маска, за да установи дали изпращащият и приемащия компютър са в една и съща подмрежа.
ПРИМЕР: IP адресът на изпращащия компютър е 192.168.1.1, а подмрежовата маска е 255.255.255.0. IP адресът на компютъра местоназначение е 192.168.3.1.
Най напред изпълняваме логическо И между IP адреса и подмрежовата маска на изпращащия компютър:
192.168.1.1 = 11000000.10101000.00000001.00000001
255.255.255.0 = 11111111.11111111.11111111.00000000
След операцията И = 11000000.10101000.00000001.00000000
След това извършваме същите изчисления за компютъра местоназначение и неговата подмрежова маска:
192.168.3.1 = 11000000.10101000.00000011.00000001
255.255.255.0 = 11111111.11111111.11111111.00000000
След операцията И = 11000000.10101000.00000011.00000000
Резултатите са различни, така че знаем (и по-важното, IP знае), че тези два компютъра се намират в различни подмрежи. След това съобщението се изпраща до маршрутизатора (подразбиращият се шлюз), за да бъде препратено към правилната подмрежа. Ако резултатът беше еднакъв, IP щеше да знае, че компютърът местоназначение се намира в същата подмрежа и съобщението щеше да се изпрати чрез използване на Address Resolution Protocol (ARP) бродкаст.
Ползите от разделянето на една голяма мрежа на две или повече подмрежи включват следното:

  • Намалява се бродкастният трафик. Подмрежите се свързват една с друга посредством маршрутизатори, а повечето маршрутизатори по подразбиране са конфигурирани да не предават бродкастни съобщения от една подмрежа в друга.
  • Компютрите в различни местоположения могат да се организират в от делни подмрежи за по-лесно управление.
  • Част от мрежата се изолира с цел сигурност или филтриране.
  • Осигурява се по-ефективно използване на наличните адреси и има по- малко "похабени" адреси.
Темата за разделянето на подмрежи може да заеме цяла книга. Тук разгледахме само основните концепции на разделянето на подмрежи.

ИНФОРМАЦИЯТА Е ВЗЕТА ОТ http://193.192.57.240/po/courses/problemni/mrezi/HTML/section4_theme2.html

Няма коментари:

Публикуване на коментар