Professional Documents
Culture Documents
ИНЖИНЕРСТВО - ФИНКИ
КОМПЈУТЕРСКИ МРЕЖИ
(I КОЛОКВИУМ)
СКРИПТА ТЕОРИЈА
Проф. Игор Мишковски
- Од што се состои?
Интернетот е мрежа од меќусебно поврзани ISP.
Сите host-ови, packet switch-ови и други делови на интернетот работат на база на
протоколи кои го контролираат примањето и испраќањето на податоци. Пример: TCP,
IP, HTTP, Skype, 802.11.
- TCP – Transmission Control Protocol
- IP – Internet Protocol -Специфицира формат на патеките.
Интернет стандарди :
RFC – Request for comments – дефинираат протокол во детали
IETF стандарди – Internet engineering task force
-Услуги/Сервиси
-Протокол
2
-Пристапна мрежа: кабловска
3
-Безжични пристапни мрежи
Поврзува host со рутер (преку access point или базна станица)
Безжичен LAN Регионален безжичен пристам
Во рамки на зграда
Понуден од оператор
Wi-Fi
3G, 4G, LTE(Long term
Брзина на пренос 450-1000 Mbps
evolution)
-Физички медиуми
4
1.3. The Network Core – Мрежно јадро
-Мрежа од меѓусебно усповрзани рутери/упатувачи.
= 2L/R
Queuing delays and packet loss – ако ратата на пристигање (во битови) е поголема од
брзината на испраќање на линкот во даден временски период, пакетите ќе се редат
во редица на чекање и пакетите ќе бидат паднати (изгубени) ако се исполни
меморијата (баферот).
Circuit switching – Алтернативно јадро – Кај овие мрежи, ресурсите кои се потребни низ
целиот пат (рутер, линк, бафер...) за комуникација се резервирани за повик. Се воспоставува
end-to-end комуникација.
-Ресурсите се посветени што значи сигурни перформанси. Ако не се користат од повикот за
кој се резервирани тие се слободни.
-Се користи во традиционални телефонски мрежи:
5
Packet switching наспроти Circuit switching
6
1.4. Доцнење, загуба, пропусна моќ во packet switched networks
-Како се случува загуба и доцнење? - Пакетите се редат во редица за чекање во баферите
брзината на доаѓање на пакети на линкот (привремено) го надминува капацитетот на линкот.
Пакетите се редат, чекаат да дојдат на ред.
7
Доцнење во редица на чекање (повторно)
a: средна брзина на доаѓање на пакети La/R > 1: доаѓа повеќе “работа” од што може
да се опслужи, средното доцнење е
бесконечно!
8
1.5. Слоеви од протоколи, модели на услуги
- Мрежите се многу комплексни, со многу делови: Домаќини/hosts, Упатувачи/routers, Различни
линкови, Апликации, Протоколи, Хардвер, Софтвер.
-Слоеви: Секој слој имплементира некоја услуга/ сервис – преку неговите акции, потпирајќи се на
подолниот слој.
Апстракција
Модуларност
Раздели и владеј
1. Апликациски-Поддржува и имплементира
мрежни апликации FTP (размена на фајлови), SMTP
(праќање емаил) , HTTP
2. Транспортен -податочен пренос од процес до
процес - TCP, UDP
3. Мрежен- рутирање на датаграми од извор до
одредиште - IP, рутирачки протоколи
4. Податочен- податочен пренос меѓу два соседни
мрежни елементи - Ethernet, 802.111 (WiFi), PPP
5. Физички- битови “на жица”
9
2.1 Принципи на мрежните апликации
Цели:
-Коцептуални, аспекти на имплементација на протоколи за мрежна апликација.
Апликацискиот слој ги користи услужните модели на транспортниот слој (TCP и
UDP)
Клиент - сервер парадигма
Peer – to – peer парадигма
Мрежа за дистрибуција на содржина
-Учење на протоколите со анализа на популарни протоколи на апликацискиот слој
HTTP
FTP
SMTP / POP3 / IAMP
DNS
Мрежни апликации :
Електронска пошта (Gmail, Yahoo Mail)
Веб
Испраќање/примање на пораки (Email)
Далечинско најавување (remote login пр: Telnet, SSH)
P2P споделување на фајлови (Torrent, (за зголемен) File Download)
Мрежни игри со повеќе корисници (Fortnite)
Видео стриминг (Netflix, Hulu, Youtube)
Voice over IP (Skype)
Видео конференции во реално време (Zoom)
Социјални мрежи
Пребарување (Search engines)
...
10
- Архитектура на апликациите - Можна структура на апликациите:
Клиент – сервер
Peer – to – peer (P2P)
- P2P архитектура
-Комуникација на процеси:
11
- Процеси : програма која работи кај домаќинот. Во рамките на еден домаќин, два процеси
комуницираат користејќи интер - процесна комуникација.
-Клиентски процес претставува процес кој иницира комуникација. Поточно клиентот е тој кој
започнува со барање на услуга од серверот.
-Серверски процес претставува процес кој чека да биде контактиран. Ова значи дека
серверот постојано седи “уклучен” и чека наредба да добие.
-Сокети:
-Адресирање на процеси:
12
Типот на пораки кои се разменуваат (пр: барање, одговор)
Синтакса на пораките (Кои полиња ги има пораката и како се разграничуваат полињата.)
Семантика на пораките (Значењрто на информацијата во полињата.)
Правила за тоа кога и како процесите праќаат и одговараат на пораки.
13
TCP услуга:
Надежен транспорт : помеѓу процесите кои испраќаат и примаат.
Контрола на проток : испраќачот нема да го “затрупа” примачот.
Контрола на застој (congestion) : испраќачот “забавува” кога мрежата е
преоптоварена.
Не овозможува : тајминг, гаранција за минимална пропусна моќ.
Конекциски – ориентиран : потребно е поставување конекција помеѓу процесите.
UDP услуга:
Ненадежен пренос на податоци : помеѓу процесите кои испраќаат и примаат.
Не овозможува : надежност, контрола на проток, контрола на застој, тајминг,
гаранција на пропсна моќ, безбедност, ниту поставување на конекција.
-Безбедност на TCP :
TCP & UDP -нема шифрирање. Лозинките поминуваат низ Интернет како чист (јасен) текст.
SSL – овозможува шифрирана TCP конекција и интегритет на податоци. Автентикација на
крајните точки.
SSL (Secure Sockets Layer) е на апликациски слој – апл. користат SSL библиотеки, кои
“зборуваат” со TCP.
SSL сокет API – лозинките поминуваат низ Интернет шифрирани
14
2.2 .Web и HTTP
-Веб страната се состои од објекти ( HTML фајл, JPEG слика, Java applet, аудио фајл ). Се состои од
основен HTML-фајл кој вклучува неколку референцирани објекти.
-HTTP : hypertext transfer protocol – е протокол од апликацискиот слој кој се користи од Веб.
-Користи TCP:
Клиентот иницира TCP конекција ( креира сокет ) до серверот, порта 80.
Серверот прифаќа TCP конекција од клиентот.
HTTP пораки (пораки од протокол на апликациски слој) се разменуваат помеѓу
прелистувачот (HTTP клиентот) и Веб серверот (HTTP серверот).
TCP конекцијата се затвора.
-HTTP конекции:
Непостојан HTTP: најмногу еден објект се праќа преку ТСР конекција и конекцијата
потоа се затвора. Симнувањето на повеќе објекти бара повеќе конекции. (На една
конекција може да се побара барање само за еден објект и откако ќе се добие
повратен одговор – поточно објектот, се затвара конекцијата. Потоа мора пак и пак
се додека не се добие целата веб страна која се состои од многу објекти.)
Постојан HTTP : повеќе објекти може да се пратат преку една ТСР конекција помеѓу
клиентот и серверот.(Со само едно приклучување кон серверот се праќаат сите
објекти кои ги содржи веб страната и тек кога ќе заврши целиот пренос се затвара
конекцијата.)
15
-Непостојан HTTP : време на одговор :
- HTTP request порака: Постојат два типа : request (ASCII – формат што може да се чита), response
POST метод: Веб страната вообичаено содржи форма за внес. Внесот се прикачува на
серверот во телото на пораката.
URL метод: Го користи GET методот. Влезот се додава во URL полето од request линијата:
Пр. www.somesite.com/animalsearch?monkeys&banana
16
-Типови на методи:
HTTP/1.0
HTTP/1.1: GET, POST, HEAD, PUT (се прикачува фајл од телото на пораката на локација дадена
во URL полето), DELETE (го брише фајлот даден во URL полето).
- HTTP response статус кодови: кодот за статус се појавува на првата линија од сервер – клиент
response пораката.
- Четири компоненти:
17
-За што може да се користат колачињата:
Авторизација
Кошничка за купување
Препораки
Состојба на сесијата на корисникот (Веб е-пошта)
-Колачињата и приватност:
-Корисникот го подесува
прелистувачот: пристап во Веб преку кеш.
Прелистувачот ги праќа сите HTTP барања до
кешот. Доколку објектот е во кеш, се праќа
објектот, инаку, кешот го бара објектот од
изворниот сервер и потоа го праќа до
клиентот.
-Условен GET – целта му е да нее праќа доколку web cache има зачувано ажурирана зачувана
верзија. Нема трансмисиско доцнење за објектот и има помала искористеност на линкот.
18
2.3. Електронска пошта – SMTP, POP3, IMAP
- Има три главни компоненти:
19
-Протокол за пристап до пошта:
- Превод на доменски имиња во IP.(Доколку не постои DNS системот треба да пратиме IP адреси на
секоја страна, па така овој систем работи во стил на телефонски именик, пребрауваме името на
страната а тој ни ја дава IP адресата нејзина)
20
-Процесот на пронаоѓање на име започнува со клиентот кога внесува збор од страната која сака да
ја отвори. Нашиот компјутер проверува дали ја има во кеш и потоа праќа на Resolver кој ја препраќа
на Root Server. Root Server нема информации за како се вика таа IP адреса но знае каде да го
препрати-Во TLD серверот кој ги содржи најголемите домени како што се .com,.org и сл. Кога
открива кој домен е го препраќа за последен пат во Name серверот од каде и го добива одговорот.
21
- DNS: Кеширање и ажурирање на записи:
Еднаш кога еден name сервер ќе научи мапирање, го кешира мапирањето. Доколку некогаш
сме пребарале IP адреса за некоја страна ни ја чува и кога праќа DNS порака најпрвин
проверува во кеш дали ја има па потоа ако ја нема продолжува со проследување на
барањето до хиерархијата.
Записите во кешто се бришат по одредено време. TLD серверите најчесто се кеширани на
локалните сервери што значи дека root серверите не се посетуваат често.
Кеш записите можат да се застарени.
- DNS записи – Дистрибуирана база на податоци за записи за ресурси (resource records – RR)
Record
Опис Name Value
Type
Име на домаќин на
Name Server. Покажува каде тој
NS Домен (пр: foo.com) авторативен name
домаќин е регистриран
сервер на тој домен
Алиас име за некое
Мапирање на hostname во друг канонично(вистинско) име (пр
CNAME Канонично име
hostname www.ibm.com е вистински
servereast.backup2.ibm.com)
Име на е-пошта сервер
MX За праќање на маил /
поврзан со name
-Напад на DNS:
22
2.5. P2P апликации
- Нема секогаш вклучен сервер. Произволни крајни системи директно комуницираат и peers
наизменично се поврзуваат и менуваат IP адреси.
Дистрибуција на фајлови како што е BitTorrent – Фајлот се дели на помали делчиња и притоа
peers во torrent испраќаат или примаат делови од фајлот. се регистрира со tracker(tracker:
ги следи peers кои учествуваат во torrent) за да добие листа на peers, се поврзува со
подмножество на peers (“соседи”). Секој клиент е во вид и сервер со тоа што едни на други
peers си ги поставуваат деловите. Кога еден peer го има целиот торент може да остане и да
помага други да го имаат или да го напушти.
Стриминиг – КанКан
VoIP-Skype.
Мрежи за дистрибуција на содржина : CDN: чува копија на содржината кај CDN јазли (пр.
Netflix чува копии од MadMen). Претплатникот бара содржина од CDN. насочено кон
најблиската копија, се презема содржината. Може да избере друга копија доколку мрежата
е загушена
Просторно - наместо да се пратат N вредности од иста боја (сите виолетови), прати само
две вредности: вредност на боја (виолетова) и број на повторувања (N)
Временско - наместо да се испрати целосна рамка во i + 1, испрати само разлики од
рамката i
- VBR: (variable bit rate): ратата на енкодирање се менува со количината на просторни и временски
промени во кодирањето.
23
3.1. Услуги на транспоретен слој
Обезбедува логичка комуникација помеѓу
процесите кои работат на различни хостови.
(network layer – логичка комуникација помеѓу
хостови).
Транспортните протоколи работат на хостовите,
на уредите од мрешно јадро (рутерите). Не им
требаат транспортни протоколи.
Услугите кои транспортниот слој ќе ги нуди често ограничени од слојот под него (мрежниот
слој). Ако мрежниот слој не може да гарантира пропусен опсег за сегментите на
транспортниот, тогаш ни транспортниот не може да го гарантира истото за апликациските
пораки кои се праќаат меѓу процесите.
Кога се креира мрежна апп, мора да се специфицира еден од двата протоколи.
Протоколот на мрежно ниво т.е. IP обезбедува логичка комуникација помеѓу хостови и има
модел best effort delivery service. Тоа значи дека прави напор да доставува сегменти помеѓу
хостовите, но не гарантира. -НЕДОВЕРЛИВ!
Контролата на проток и застој значи регулирање со каква брзина ќе се праќа, за разлика кај
UDP, тоа е слободно.
24
Ова се користи со цел да се даде на секој линк исто право на пропусниот опсег во одредено
време. – Не се нуди загарантирано доцнење и загарантиран bandwidth.
25
Хостот добива IP датаграми:
Секој датаграм има изворна IP адреса, дестинациска IP
адреса
Секој датаграм содржи еден сегмент од транспортен слој
Секој сегмент има изворен и дестинациски број на порта
Хостовите ја користат IP адресата и бројот на порта за да го
постават сегментот до точниот сокет.
26
b) Конекциско демултиплексирање – TCP сокет се идентификува со четири дела:
- Изворна IP адреса
- Дестинациска IP адреса
- Изворна порта
- Дестинациска порта
- Примачот ги користи сите четири за да проследи сокетот до соодветниот сегмент.
- “best effort” услуга, што значи дека UDP сегментите може да се изгубат, или да се пренесат во
погрешен редослед.
- Мало заглавје
- Нема congestion control (со која брзина сакаме со таа работи – no speed limits)
28
- Ако знаеме дека овој вид на проверка се прави во податоччниот слој (Етернет), сепак за да ги
заштитиме подолжните слоеви и обезбедиме услуга, тоа да го правиме погори значи дека error
checking мора да биде на end to end basis.
29
- rdt1.0: надежен пренос преку надежен канал
- Каналот за комуникација е надежен што значи дека нема бит грешки и нема губење на пакети.
30
- rdt2.0: канал со бит грешка
-Сценарио со грешки:
31
- Неповолности на rdt2.0: Доколку се оштети ACK/NAK испраќачот нема да знае што се случило со
примачот. Не може само да препрати бидејќи тука постои можност за дупликати.
- Stop and wait: Испраќачот праќа еден пакет, потоа чека одговор од примачоѕ.
32
Испраќачот: Додава секвенцен број на пакетот. Два секвентни броја се сосема доволни за
да се увиди грешка во пакетите. Доколку се повторува број тоа значи дека пратен е
дупликат. Мора да провери дали примениот ACK/NAK е оштетен.
Примачот: Мора да провери дали примениот пакет е дупликат. Состојбата покажува дали 0
или 1 е очекуваниот секвенцен број. Примачот не може да знае дали неговиот последен
ACK/NAK успешно ги примил испраќачот.
- Примачот мора да го
наведе секвенцниот број на пакетот за којшто праќа АСК.
Проточни протоколи
34
- *: Испраќачот овозможува последователни, “in-flight” не потврдени пакети. Ова значи
дека опсегот на секвенцните броеви мора ад се зголеми. Баферирање кај праќачот или кај
примачот.
Go-Back-N: примач – АСК-only: секогаш испраќа АСК за успешно примен пакет со најголем
редоследен секвенцен број. Може да се генерираат дупликати АСКи. Треба да го памти
само секв. бр. на следниот редоследен пакет. Доколку има пакет кој не е во редослед се
отфра ( не се баферира, не постои баферирање кај примачот ). Примачот повторно го
потврдува пакетот со најголем редоследен секв.бр.
Selective repeat:
35
- Примачот индивидуално ги потврдува сите успешно примени пакети со тоа што ги
баферира пакетите по потреба, за евентуално да ги препрати по редослед до соодветниот
протокол од апликацискиот слој.
- Испраќачот ги препраќа само пакетите за кои не добил АСК. Стартува тајмер за секој
непотврден пакет.
- Испраќачки прозорец се N последователни секвенцни броеви. Непотврдените пакети ги
ограничува секв.бр. на пратените пакети.
36
Selective repeat: дилема
Прмер:
секв.бр.: 0, 1, 2, 3
Големина на прозорец=3
Примачот не ги разликува
двете сценарија!
Податоците кои се дупликат се
примаат како нови во сценариото
под (b)
37
3.5. Конекциски пренос на податови ТСР – структура на сегмент
38
- Телнет служи за
далечинско управување на
командна линија се
испраќаат команди, бајт по
бајт мора да се точно
пратени команди.
- Фајл бришење мора
да е точно за да се
избрише точниот фајл.
Опис на сликата
- Или до сега сме
испратиле 41 или рандом
е генериран, адресата на
бајтот. С е информациите кои го праќаме. Следната адреса ќе биде 43... Итн. АСК потврдува
дека претходниот е примен и следниот кој чекаме да се прати е 80. Серверот исто така си
генерира негов секвенсен број. АСК го чека 43 во овој случај т.е наредната информација што ја
чека. АСК е наредниот бајт кој што треба да го очекува серверот и тоа е тоа што серверот му го
праќа на клиентот поточно што серверот му праќа како секвенцен број. 43 за претходното
примено. И С се покажува на екран и повторно праќа дека е примено бидејќи така
функционира ТСР мора да се потврди се што е пратено.
Праќаме сегменти. Притоа активираме тајмер за секој сегмент одделно. Мора да се запази за
апликации кои се временски сенситивни. Ако го ставиме премало голема е веројатноста дека
ќе се препраќаат премногу податоци.
Времето за RTT е време кое го мериме така што праќаме еден сегмент до серверот со тоа што
го
39
пуштаме тајмерот и гледаме колку му треба време да стигне до серверот. За ова е битно и
колку се оптоварени рутерите.
- rdt кај TCP: ТСР креира rdt услуга над ненадежниот IP протокол. Ова го прави со тоа што
користи проточни сегменти, кумулативни тајмери и поединечен тајмер за препраќање.
- Како знаеме дека пакетот е изгубне? – Time-out – само тој сегмент да го препрати.
- ТСР настани кај праќачот: Кога прима податоци од апликациски слој тој креира сегмент со
секв.бр. Секв.бр еброј на првиот податочен бајт во сегментот од протокот на бајти. Се стартува
тајмер, доколку моментално нема активен тајмер. Тајмерот е за најстариот непотврден
сегмент со интервал на истекување TimeOutInterval. Кога ќе истече time-out го препраќа
сегментот кој предизвикал time-out и го рестартира тајмерот.
Прима АСК и доколку АСК потврдува некој претходно непотврден сегмент ажурира што е
потврдено и стартува тајмер ако се уште има непотврдени сегменти.
40
- Праќање кај ТСР пример со изгубен АСК и предвремен time out
41
- Креирање на ACK кај TCP [RFC 1122, RFC 2581]
42
- Конекциски пренос на податови ТСР – контрола на проток
43
- TCP 3-way handshake (ракување)
Open:
Closed:
44
3.6 Принципи на контрола на застој
- застој: неформално: “многу испраќачи многу брзо испраќаат многу податоци, со кои
мрежата не може да се справи”
- многу различно од контрола на проток!
- резултат: изгубени пакети (се преполнуваат баферите кај рутерите), големи доцнења (пакетите
долго време се во редицата во баферите на рутерите)
- спаѓа во топ 10 мрежни проблеми!
- Причини/цена за застој:
45
3.7 TCP контрола на застој
- пристап: испраќачот ја зголемува ратата на пренос (window size), со што ја испитува корисната
пропусна моќ, додека не се случи загуба
- Зголемување со додавање/additive: зголеми го cwnd за 1 MSS при секој RTT доколку
нема загуба
- Намалаување со делење/multiplicative: намали го двојно cwnd по загубата
46
- Контрола на застој и проток: Бројот на непотврдени бајти кај испраќачот зависи и од примачот
(rwnd) и од состојбата на мрежата (cwnd): min(rwnd, cwnd)
47
48