Professional Documents
Culture Documents
KM 4
KM 4
- Транспортен слој
Аудиториски вежби 4
Транспортен слој (потсетување од
предавања)
цели: Да се научат
▪ Да се разберат услугите протоколите на
кои ги нуди транспортно ниво:
транспортното ниво: UDP: безконекциски
пренос на податоци
Мултиплексирање,
демултиплексирање TCP: конекциски, надежен
пренос на податоци
Надежен податочен
TCP контрола на
трансфер задушување
Контрола на проток
Контрола на задушување
2
Содржина
3.1 Услуги на 3.5 Конекциски пренос
транспортно ниво на податоци: TCP
3.2 Мултиплексирање и структура на сегмент
демултиплексирање надежен пренос на
податоци
3.3 Безконекциски
пренос: UDP контрола на проток
управување со конекција
3.4 Принципи на
надежен пренос на 3.6 Принципи на
податоци контрола на задушување
3.7 TCP контрола на
задушување
3
Услуги и протоколи на транспортно ниво
обезбедува логичка комуникација application
transport
network
помеѓу процесите кои работат на data link
physical
различни хостови
транспортните протоколи работат
во крајните системи
испраќач: ги дели пораките од
апликациско ниво во сегменти, и
истите ги праќа до мрежното ниво
примач: ги составува сегментите во
application
пораки и ги праќа до апликациското transport
network
ниво data link
physical
Постојат повеќе транспортни
протоколи:
Интернет: TCP и UDP
4
Транспортен vs. мрежен слој
Аналогија:
▪ Мрежен слој: 12 деца кои живеат во куќата
логичка на Ана, праќаат писма до 12
комуникација меѓу деца кои живеат во куќата
на Бојан:
домаќините домаќини = куќите
▪ Транспортен слој: процеси = деца
логичка Пораки = писма во коверти
комуникација меѓу Протокол на транспортен
процесите кај слој= Ана и Бојан кои ги
разделуваат писмата на
домаќините останатите деца во својата
• Ги користи сервисите куќа.
од мрежно ниво Протокол на мрежно ниво =
пошта
5
Содржина
3.1 Услуги на 3.5 Конекциски пренос
транспортно ниво на податоци: TCP
3.2 Мултиплексирање и структура на сегмент
демултиплексирање надежен пренос на
податоци
3.3 Безконекциски
пренос: UDP контрола на проток
управување со конекција
3.4 Принципи на
надежен пренос на 3.6 Принципи на
податоци контрола на задушување
3.7 TCP контрола на
задушување
6
Задача 1
Да претпоставиме дека клиентот А иницира Telnet сесија со
серверот S. Во исто време, клиентот B иницира Telnet сесија со
серверот S. Кои се можните изворни и дестинациски порти за:
a) Сегментите пратени од A до S.
b) Сегментите пратени од B до S.
c) Сегментите пратени од S до A.
d) Сегментите пратени од S до B.
e) Ако А и B се различни домаќини, дали е можно изворната
порта во сегментите од A до S да е иста со оние во сегментите
од B до S?
f) Што ако тие потекнуваат од ист домаќин?
7
Задача 1 - решение
Изворна порта Дестинациска порта
a) A➔S 543 80
b) B➔S 612 80
c) S ➔A 80 543
d) S➔B 80 612
e) Да
f) Не
8
Содржина
3.1 Услуги на 3.5 Конекциски пренос
транспортно ниво на податоци: TCP
3.2 Мултиплексирање и структура на сегмент
демултиплексирање надежен пренос на
податоци
3.3 Безконекциски
пренос: UDP контрола на проток
управување со конекција
3.4 Принципи на
надежен пренос на 3.6 Принципи на
податоци контрола на задушување
3.7 TCP контрола на
задушување
9
Задача 3
Објасни зошто архитект на софтверска апликација би
избрал да го користи UDP протоколот во решението, а не
TCP?
Решение: Архитектотот на софтверската апликација
најверојатно не би сакал да ја користи контролата на застој
(congestion control) која е овозможена од TCP и која ги
регулира ратите на праќање на податоци во зависност од
застојот. Најчесто, дизајнерите на апликации за IP
телефонија и IP видеоконференција се одлучуваат да го
користат UDP во нивните апликации бидејќи тие сакаат да
го избегнат механизамот за контрола на застој. Исто така,
некои апликации немаат потреба од надежен транспорт на
податоци кој е овозможен од TCP.
10
Задача 4
Да претпоставиме дека процес во Host C поседува
UDP socket со број на резервирана порта 6789.
Воедно, двата домаќина, Host A и Host B, праќаат
UDP сегмент до Host C со дестинациска порта 6789.
а) Дали и двата сегмента ќе бидат директирани до
истиот socket на Host C?
б) Ако да, како процесот кај Host C ќе препознае дека
овие два сегмента потекнуваат од два различни
хостови (домаќини)?
11
Задача 4 - Решение
12
UDP checksum
примачот:
испраќачот:
го третира сегментот ја пресметува вредноста на
(содржина + заглавие) checksum на примениот
како низа од 16 битни
цели броеви сегмент
прави checksum: го собира проверува дали
(прв комплемент) збирот)
на содржината на соодветствува со вредноста
сегментот во полето checksum:
испраќачот ја става
checksum вредноста во НЕ – детекција на грешка
UDP полето checksum
ДА – нема грешка
13
Задача 5
1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
преносот се 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
додава
збир 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
14 Transport Layer
Задача 6
Да се пресмета Интернет checksum за следните три 16-
битни збора
0110011001100000 Да се провери што се
случува на приемната
0101010101010101 страна
1000111100001100
Сумата на првите два збора е 1011101110110101, ако
се додаде и третиот збор се добива
1011101110110101 Да се забележи дека во
1000111100001100 собирањето има overflow, кој
-------------------------- што е додаден на сумата
0100101011000010
Резултатот е 1011010100111101
15
Содржина
3.1 Услуги на 3.5 Конекциски пренос
транспортно ниво на податоци: TCP
3.2 Мултиплексирање и структура на сегмент
демултиплексирање надежен пренос на
податоци
3.3 Безконекциски
пренос: UDP контрола на проток
управување со конекција
3.4 Принципи на
надежен пренос на 3.6 Принципи на
податоци контрола на задушување
3.7 TCP контрола на
задушување
16
Перформанси на rdt3.0
▪ rdt3.0 е надежен, но има проблем со перформансите.
▪ е.: 1 Gbps линк, 15 ms проп. доцнење, 8000 bit пакет:
L 8000 bits
Dtrans = R = 9 = 8 μs
10 bits/sec
▪ U sender: utilization – дел од времето во кое испраќачот е
зафатен со испраќање
L/R 0.008 ms
U = 0.00027
sender = =
30.008 ms
RTT + L / R
▪ ако RTT=30 ms, 1KB pkt на секои 30 ms: 33kB/s проток
(throughput) преку 1 Gbps линк
▪ Мрежниот протокол го ограничува
искористувањето на физичките ресурси.
3-17 Transport Layer
rdt3.0: stop-and-wait операција
sender receiver
првиот бит од пакетот е пратен, t = 0
посл. бит од пакетот е пратен, t = L / R
U L/R .008
sender = = = 0.00027
RTT + L / R 30.008
U 3L / R .0024
sender = = = 0.00081
RTT + L / R 30.008
20
Проточни протоколи: преглед
Go-back-N: Selective Repeat:
испраќачот може да има испраќачот може да има
најмногу N пакети во најмногу N пакети во
цевката кои не се цевката кои не се
потврдени потврдени
примачот испраќа само
примачот испраќа
кумулативни ack индувидуална потврда
не потврдува пакет ако има (ack) за секој пакет
дупка во секв. бр.
испраќачот има испраќачот има тајмер за
одбројувач/тајмер за секој непотврден пакет
најстариот непотврден
пакет кога ќе истече времето, го
препраќа само
кога ќе истече тајмерот, ги непотврдениот пакет
препраќа сите непотврдени
пакети
3-21 Transport Layer
GBN во акција
sender window (N=4) sender receiver
012345678 send pkt0
012345678 send pkt1
012345678 send pkt2 receive pkt0, send ack0
012345678 send pkt3 Xloss receive pkt1, send ack1
(wait)
receive pkt3, discard,
012345678 rcv ack0, send pkt4 (re)send ack1
012345678 rcv ack1, send pkt5 receive pkt4, discard,
(re)send ack1
ignore duplicate ACK receive pkt5, discard,
(re)send ack1
pkt 2 timeout
012345678 send pkt2
012345678 send pkt3
012345678 send pkt4 rcv pkt2, deliver, send ack2
012345678 send pkt5 rcv pkt3, deliver, send ack3
rcv pkt4, deliver, send ack4
rcv pkt5, deliver, send ack5
Решение:
Дадено-
Вкупен број на пакети за праќање = 10
Се користи Go back N каде N = 4
Секој 6-ти пакет се губи
23
Задача 8 (решение)
Чекор 1
Големината на прозороцеот кај праќачот е 4, што значи праќачот праќа 4
пакети (1, 2, 3, 4)
4 3 2 1
Чекор 2
По примањето на потврда (ACK) за пакетот 1, праќачот го поместува
својот прозорец и го праќа пакетот 5.
5 4 3 2
24
Задача 8 (решение)
Чекор 3
По примање на потврда за пакетот-2, праќачот го поместува својот
прозорец и го праќа пакетот-6.
6 5 4 3
7 6 5 4
25
Задача 8 (решение)
Чекор 5
По примање на потврда за пакетот 4, праќачот го поместува својот
прозорец и го праќа пакетот-8.
8 7 6 5
Чекор 6
По примање на потврда за пакетот-5, праќачот го поместува својот
прозорец и го праќа пакетот-9.
.
9 8 7 6
26
Задача 8 (решение)
Чекор 7
Според прашањето, секој 6-ти пакет се губи. Па поради тоа, пакет-6 се
губи и се случува time-out. Праќалот одново го праќа пакет-6 и следните
пакети. Тоа значи дека целиот прозорец одново се праќа.
9 8 7 6
Вкупен број на пакети пратени од праќачот до сега = 13
Чекор 8
По примање на потврда за пакетот-6, праќачот го поместува својот
прозорец и го праќа пакетот-10.
10 9 8 7
Вкупен број на пакети пратени од праќачот до сега = 14
27
Задача 8 (решение)
Чекор 9
Според прашањето, секој 6-ти пакет се губи. Поради тоа, пакетот-8 се
губи, се случува time-out, и праќачот ги праќа одново пакетите 8,9,10.
10 9 8
Чекор 10
Конечно, сите 10 пакети се пратени со вкупно 17 праќања.
- - - -
28
Selective repeat
Примачот индивидуално ги потврдува сите точно
примени пакети
Ги баферира пакетите по потреба, за евентуално да ги
препрати по редослед до соодветниот протокол од
апликацискиот слој
Испраќачот ги препраќа само пакетите за кои не
добил ACK
Испраќачот стартува тајмер за секој непотврден пакет
Испраќачки прозорец
N последователни секв. броеви
Непотврдените пакети ги ограничуваат секв. броеви
на пратените пакети
29
Задача 9
Што од следното е точно за Selective Repeat и Go-Back-
N протоколите:
а) Go back N протоколот користи кумулативни потврди
(ACK) и не ја потврдува секоја рамка експлицитно.
б) И двата протокола го користат истиот формат на рамка
бидејќи и двата се протоколи со лизгачки прозорци.
в) И двата користат piggybacked потврди каде што е можно
и не ја потврдуваат секоја рамка експлицитно.
г) Selective repeat протоколот користи кумулативни потврди
(ACK).
д) И во двата протокола, праќачот има прозорец со кој се
дефинира максималниот број на рамки кои тековно се
праќаат.
30
Задача 10
При користење на Selective Repeat протоколот, да се
претпостави дека пакетите од 0 до 4 се праќаат
редоследно. Притоа, пакетот-0 добива time-out,
пакетот-5 се праќа, пакетот 1 добива time-out, пакетот-
2 добива time-out, и пакет 6 се праќа.
Која е состојбата на прозорецот на праќачот по
случувањето на секој настан?
31
Задача 10 (решение)
Во SR протоколот, само потребниот пакет се препраќа,
а не целиот прозорец.
Чекор 1:
Пакетите од 0 до 4 се праќаат.
4 3 2 1 0
Чекор 2:
0 се губи, се случува time-out и праќачот одново го
препраќа.
0 4 3 2 1
32
Задача 10 (решение)
Чекор 3:
Пакет 5 се праќа.
5 0 4 3 2 1
Чекор 4:
Пакет 1 се губи, се случува time-out и праќачот од ново го
препраќа.
1 5 0 4 3 2
33
Задача 10 (решение)
Чекор 5:
Пакет 2 се губи, се случува time-out, па праќачот од ново го
праќа.
2 1 5 0 4 3
Чекор 6:
Пакет 6 се праќа.
6 2 1 5 0 4 3
35
TCP време на обиколка (RTT) и time-out
EstimatedRTT = (1- )*EstimatedRTT + *SampleRTT
▪ подвижна тежинска средна вредност – според
експоненцијален закон
▪ Влијанието на старите мерења се намалува
експоненцијално
▪ типична вредност: RTT: = 0.125 to fantasia.eurecom.fr
gaia.cs.umass.edu
350
300
250
RTT (milliseconds)
200
sampleRTT
150
EstimatedRTT
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
3-36 време
time (seconnds)
Транспортен слој
(секунди)
SampleRTT Estimated RTT
TCP време на обиколка (RTT) и time-out
интервал на time-out: EstimatedRTT + “безбедна
граница”
големи варијации на EstimatedRTT -> поголема безбедна
граница
Треба да се одреди отстапувањето на SampleRTT од
EstimatedRTT:
DevRTT = (1-)*DevRTT +
*|SampleRTT-EstimatedRTT|
(типично, = 0.25)
3-37
Транспортен слој
Задача 11
Да претпоставиме дека проценета моментална
вредност (estimatedRTT) и безбедната граница
(DevRTT) за време на обиколка (RTT) на TCP e 240ms
и 50ms соодветно. Дополнително, да претпоставиме
дека следните три измерени вредности на RTT се
280ms, 210ms, и 380ms соодветно.
Пресметај ја новата вредност на estimatedRTT, DevRTT и
TCP timeout по добивањето на секоја од овие измерени
RTT вредности ако α = 0.125 и β = 0.25.
38
Задача 11 (решение)
По направената прва проценка на RTT.
estimatedRTT = 0.875*240 + 0.125*280 = 245ms
DevRTT = 0.75*50 + 0.25*(abs(280 - 245)) = 46.25ms
TimeoutInterval = 245 + 4*46.25 = 430ms
39
Задача 12
Host A и B се директно врзани со 100 Mbps линк.
Постои само една TCP конекција меѓу овие 2 хоста, и
Host A праќа голем фајл преку оваа конекција до Host
B. Host A може да праќа податоци од апликациски
слој кон транспортен со податочна рата: 120 Mbps, но
Host B може да ги исчитува податоците од својот
бафер со податочна рата: 50 Mbps. Објасни го
механизамот за контрола на проток (flow control) на
TCP.
40
Задача 12 - решение
Поради тоа што капацитетот на линкот е само 100 Mbps,
Host A може да праќа податоци со максимална под. рата
100 Mbps. Сепак, домаќинот А испраќа податоци во
баферот на примачот побрзо отколку што домаќинот Б
може да ги отстрани податоците од баферот. Баферот на
примачот се пополнува со приближна рата 40 Mbps. Кога
баферот ќе се наполни, Host B го сигнализира Host A да
прекине со праќање на податоци со сетирање на
RcvWindow = 0. Host A прекинува да праќа се додека не
добие TCP сегмент со RcvWindow > 0. На овој начин, Host
A наизменично ќе праќа и запира со праќање на податоци
во зависност од вредноста на RcvWindow која ја добива од
Host B. Во просек, средната рата со која Host A праќа
податоци до Host B, не е повеќе од 60 Mbps.
41
Содржина
3.1 Услуги на 3.5 Конекциски пренос
транспортно ниво на податоци: TCP
3.2 Мултиплексирање и структура на сегмент
демултиплексирање надежен пренос на
податоци
3.3 Безконекциски
пренос: UDP контрола на проток
управување со конекција
3.4 Принципи на
надежен пренос на 3.6 Принципи на
податоци контрола на задушување
3.7 TCP контрола на
задушување
42
Задача 13
Да претпоставиме дека две TCP конекции се присутни
преку некој линк кој претставува “тесно грло”
(bottleneck) кој има рата R bps. И двете конекции се
обидуваат да пратат голем фајл во истата насока преку
овој линк. Преносот на податоци започнува во исто
време.
Која е ратата на пренос која TCP ќе им ја даде на
двете конекции?
Одговор:
R/2
43
TCP контрола на застој:
зголемување со додавање, намалување со делење (AIMD)
AIMD пила:
испитување
на пропусната моќ
време
3-44
Транспортен слој
Задача 14
Сликата го прикажува однесувањето на TCP Reno.
45
Задача 14
a) Идентификувај ги временските интервали на TCP
бавен старт (slow-start).
Решение a) [1,6] и [23,26]
b) Идентификувај ги временските интервали каде TCP
прави избегнување на застој (congestion-avoidance).
Решение b) [6,16] и [17,22]
46
Задача 14
c) По 16-та трансмисија, дали се детектира загуба на
сегмент со 3 дупликат ACK, или поради настанат time-out?
Решение c): По 16та трансмисија, детектирано е губење на пакет со 3
дупликат ACK. Ако се случеше time-out, cwnd = 1.
47
Задача 14
e) Која е иницијалната вредност на ssthreshold?
Решение e): ssthreshold = 32.
48
Задача 14
g) Која е вредноста на ssthreshold во 24-то праќање?
Решение g): Вредноста на прагот се сетира на половина од вредноста на
cwnd пред да се детектира губење на пакет. Во овој случај, губење се
детектира во 22-рото праќање и во тој момент cwnd=26. Поради тоа,
ssthreshold=13 за време на 24-тото праќање.
h) Кои ќе бидат вредностите на cwind и ssthreshold ако се детектира
губење на пакет по 26-тото праќање поради тоа што е добиен 3
дупликат ACK?
49
TCP проток
просечен TCP проток како функција од големината
на прозорецот, RTT?
Игнорирај slow start, под претпоставка на постојано
праќање на податоци.
W: големина на прозорец (во бајти) каде
настанало загуба
W bytes/sec
avg TCP thruput = 3
4 RTT
Просечна големина прозорец (# in-flight bytes) е ¾ W
Просечен проток 3/4W / RTT
W
W/2
51
Задача 15 (решение)
a) Потребно е 1 RTT за да се зголеми cwnd на 6 MSS; 2 RTT
за да се зголеми на 7 MSS; 3 RTT за да се зголеми на 8MSS,
4 RTT за да се зголеми на 9 MSS, 5 RTT за да се зголеми на
10 MSS, 6 RTT за да се зголеми на 11 MSS.
b) Во првиот RTT, 5 MSS се пратени; во вториот RTT, 6 MSS
се пратени. Во третиот RTT, 7 MSS се пратени. Во четвртиот
RTT, 8 MSS се пратени. Во петтиот RTT, 9 MSS се пратени. Во
6-тиот RTT, 10 MSS се пратени. Поради тоа, вкупниот број
на MSS кои се пратени и потврдени e 5+6+7+8+9+10 = 45
MSS . Просечниот проток во време од 6 RTT e: (45 MSS) / (6
RTT) = 7.5 MSS/RTT.
52
Задача 16
Да претпоставиме дека една TCP (Reno) конекција користи еден 10
Mbps линк кој не баферира податоци. Да претпоставиме дека овој линк
е единствениот кај кој се појавува застој меѓу примачот и праќачот.
Дополнително, да претпоставиме дека TCP праќачот треба да прати
огромен фајл на примачот и примачкиот прозорец е многу поголем од
cwnd. Воедно, да ги земеме во предвид следните претпоставки:
големината на секој TCP сегмент е 1.500 бајти, двонасочното
пропагациско доцнење (RTT) е 150 ms и TCP врската е секогаш во
“congestion avoidance” фаза (нема slow-start).
а) Која е максималната големина на прозорецот (во сегменти) која оваа TCP
врска може да ги достигне?
б) Која е просечната големина на прозорецот (во сегменти) и просечниот проток
(bps) на оваа TCP врска?
в) Колку време е потребно за TCP врската да достигне максимална големина на
прозорецот по настанување на загуба на пакет?
53
Задача 16 (решение)
a) Нека W e максималната големина на прозорецот
мерена во сегменти. Тоа значи дека W*MSS/RTT =10Mbps,
бидејќи пакетите ќе се отфрлаат ако максималната рата го
надминува капацитетот на линкот. Следствено,
W*1500*8/0.15=10*10^6 од каде излегува дека W=125.
b) cwnd варира од W/2 to W, што значи просечната
големина на прозорецот е 0.75W=94 сегменти.
Просечниот проток е 94*1500*8/0.15 =7.52Mbps.
c) Големината на прозорецот се зголемува за 1 по секој
RTT. Бројот на такви зголемувања, почнувајќи од W/2 до
W е W/2. Вкупното време кое е потребно за да се зголеми
прозорецот за W/2, се пресметува со W/2*RTT. Од овде
следи дека 125/2 *0.15 = 9.38 s.
54