Протокол TCP: скользящее окно | Курс "Компьютерные сети"
Вставка
- Опубліковано 24 вер 2024
- Варианты подтвверждения передачи сообщений: остановка и ожидание, скользящее окно. Влияние скользящего окна на скорость передачи данных на транспортном уровне. Размер окна. Кумулятивное и выборочное подтверждение.
Слушаешь - все легко и понятно. Доходит до реализации изученного в своем коде - вот тут то понимаешь, что не так то всё просто. Очень много подводных камней и нюансов. Но автору респект. Объясняет хорошо.
Да, именно так. Я же сразу говорю, что рассказываю без технических деталей. Их нужно обязательно в своем коде учитывать.
Кроме того, чаще всего я рассказываю основной сценарий, когда все идет хорошо. Но на практике в сетях ошибки случаются часто из-за чего многое идет не так. Это тоже нужно учитывать в коде.
@@AndreySozykin Всё Вы делаете правильно. Именно этого и не хватает - общего правильного обзора. Спасибо Вам!)
Спасибо Вам еще раз за прекраснейшие видеоуроки. У Вас отлично получается передать самую основную информацию. Все четко, понятно и без "воды". Побольше бы таких преподавателей. Обязательно свяжусь с Вами, чтобы отблагодарить рублем!
С нетерпением ждем новых видео. С Новым годом! Всего наилучшего
Самые лучшие видеоролики! Наверное самый лучший метод обучения этой дисциплины - смотреть эти видеоролики. Продолжайте в том же духе. Спасибо.
Андрей, огромное спасибо за Вашу работу! Изучал по Вашим урокам компьютерные сети, прошёл собеседование!
Спасибо за понятное обьяснение и информацию!
Андрей, спасибо за видео. Все доходчиво и понятно.
Спасибо за понятное объяснение.
Пожалуйста!
Спасибо вам, Андрей
Пожалуйста!
Спасибо.
Qilgan bu yaxshi amallariyezni ajrini bersin.
Спасибо!
Spsibo Za klasniy Video Rolik :)
+atilla atilla, пожалуйста!
Я не понял формулу умножения, я правильно понимаю, что чем больше задержка тем больше объем данных которых мы можем передать?
то есть если задержка не 10 мс а 1 секунда, то объем данных будет не 12,5 МБ а 1250 МБ ?
Как-то контринтуитивно, увеличиваем задержку а производительность растет.
это не производительность, а то сколько данных нужно отправлять чтобы не терять время
Привет от Масича Г.Ф.
Спасибо, очень приятно. Григорий Федорович преподавал мне компьютерные сети в университете. Именно у него я многому научился, в трм числе преподаванию.
@@AndreySozykin ваш учебный курс помог в разборе материала для выполнения лабораторных Масича ГФ
@@ВладДобрый-д8с Да начнется сессия
@@ilyafrost2523
🤣🤣🤣
спасибо!!!
Пожалуйста!
Андрей, как у Вас получился объём данных 12,5 МБайт?
10240 МБайт (10 ГБайт)× 0.01 с(10 мс) = 102.4 МБайт.
Как получается 12.5 МБайт?
Илм я чтото неправильно считаю?
10 Гбит/с = 10/8 Гбайт/с= 1250 Мбайт/с.###1250*0.01=12.5
@@RuslanKoshcheev спасибо. Я неправильно считал: гигабайты вместо гигабитов.
@@RuslanKoshcheev А подскажите плиз, не могу понять, а почему вы множите на 0.01 ведь миллисекунда это 0.001
@@IlyaZarubin так там же 10мс = 10*0.001= 0.01сек. Вроде так=)
@@talgatbaytleu465 О-ля-ля, невнимательность моя слабость. Спасибо!
Все понятно
крутой мужик
Спасибо!
Спасибо
Пожалуйста!
75 КБайт/с получилось, потому что размер кадра, передаваемого за раз по Ethernet 1500 байт?
Да.
Не понял. Можете подсказать, как вы это вычислили?
@@АнатолийАнатолий-п1д умножь 50 сегментов которые можно передать за секунду на 1500 байт размер одного кадра, грубо говоря 1 сегмент один кадр, получишь 75000 байт, переведи в килобайты и получишь 73,24 Кбайт в секунду, это если точно считать, я в конверторе переводил. Андрей, верно?
@@Monkeylust
пишешь как обезьяна: пунктуация по нулям.
@@manOfPlanetEarth я старался
я правильно понял - размер окна может превышать количество сегментов, которые подтверждаются кумулятивно?
Да. Кумулятивное подтверждение не связано с размером окна напрямую. Можно отправлять подтверждения после любого количества сегментов (байтов).
Зачем останавливаем передачу в среду?
Мы просто избегаем простоя.
100 успели отправить и прилетело подтверждение.
Сколько подтвердили не важно.
100 это размер окна.
Заливаем сколько подтвердили.
А зачем мы разобрали отправка-ожидание для Wifi если это реализовано на канальном уровне? на транспортном пачка сегментов так же отправляется?
Чтобы понять, почему на транспортном уровне нельзя делать так же, как на канальном ;-)
а как поменять вариант потверждения?
или компьютер это все сделает сам?
При использовании TCP при WiFi подключении, используются оба варианта подтверждения?
Да, но на разных уровнях. На канальном уровне - остановка и ожидание, на транспортном - скользящее окно.
@@AndreySozykin Здравствуйте! Хочу выучить протоколы TCP UDP для повышения квалификации как программиста. Подскажите книги пожалуйста чтобы в них было максимум все разжевано, совсем для дурачков
Для программиста больше всего подойдет книгп Компьютерные сети. Нисходящий подход.
Куроуз Джеймс, Росс Кит.
Каков размер сегмента? Откуда вышло 50 штук?
насколько я понимаю: нужно 1 секунду разделить на 2 времени задержки (на передачу сегмента и подтверждения). 1с/(10+10)мс = 1/20*1000 =50
пропускная способность (10 гигабит/с)/обьем данных в сети (12,5 мегабайт). Байт=8 бит, следовательно 12,5 мегабайт=100мегабит. То есть 10гигабит/100мегабит = 50. Это количество сегментов. Исходя из формата кадра данных в ethernet (1500 байт) и количества сегментов в сети, получаем из их произведения скорость передачи данных 75кБайт/с. Надеюсь, мне удалось обьяснить понятно
@@zzzmmm5311 Как у Вас получается 50 сегментов скажите пожалуйста ?
10Гигабит = 1250Мегабайт
12.5 Мегабайт = 100Мегабит
1250/12,5 = 100
10/100 = 0,1
1250/100 = 12,5
10/12,5 = 0,8
Как у Вас получилось? Ваш метод среди других интересен.
@@MrCollapsik Пропускная способность 10 Гбит/с;
Задержка 10 мс;
10 гбит/с = 10/8 гбайт/с = 1250 мбайт/с;
1250 мбайт/с * 0.01 секунды (10 мс = 0.01 секунды) = 12.5 мбайт;
Объём данных в сети 12.5 Мбайт;
1 байт = 8 бит;
12.5 Мбайт = 100 мегабит;
(12.5 * 1000000 = 12500000;
12500000 * 8 = 100000000;
100000000 / 1000000 = 100 мегабит;)
10 гигабит / 100 мегабит = 100; (100 сегментов);
(10000000000/100000000 = 100;)
100 / 2 = 50; (Делим на 2 потому что половину отправляем, половина к нам идёт в подтверждение);
50 сегментов в секунду отправляем;
Кадр в Ethernet 1500 байт;
1500 байт * 50 сегментов = 75000 байт;
75000 байт = 75 килобайт;
75 КБайт/с;
@@zzzmmm5311 что-то не то.. вы делите скорость на объем (гигабиты/сек на мегабиты) - тут никак не могут сократиться единицы измерения, получается странная единица измерения 1/сек..
и 10гигабит/100мегабит = 10^10 бит / 10^8 = 100, а не 50
короче, до сих пор не пойму как @Andrey Sozykin посчитал 50 сегментов
как получилось,что объем данных в сети равен 12.5 Мбайт,если говорится , что этот результат получен путем умножения задержки 10 мсек на скорость передачи данных 10 Гбайт/сек?
Скорость передачи в гигабитах а не байтах.
согласен
Размер окна это всё-таки количество байт за раз или количество сегментов? оговорка на 4 минуте?
С точки зрения теории сетей, размер окна может измеряться как в байтах, так и в сегментах. Протокол TCP считает в байтах.
@@AndreySozykin о как, я почему-то подумал, что на этапе согласования согласуют размер сегмента, и передают сегментами. То есть отправитель кинул пять сегментов, получатель отправил подтверждение за всю пачку.
Да, именно так. Отправитель передает несколько сегментов, не сообщая заранее их количество получателю. Получатель подтверждает получение последнего сегмента.
@@AndreySozykin то есть у получателя есть таймаут, который запускается после получения первого сегмента? Как он узнает, когда нужно отправиться подтверждение? А то он отправит ACK, а тут бац ещё сегмент придёт.
Получатель отправляет подтверждение сразу после того, как он получил данные. Они могут доходить до отправителя с задержкой, или теряться. Поэтому получатель понимает, что если он принял какой-то ACK, значит все предыдущие байты получены. Не зависимо от того, пришли предыдущие подтверждения, или нет.
Не очень понял, как выборочное подтверждение берет и находит один плохой байт из всех и просит переслать только его.
Подтверждаются диапазоны байт в сегментах. Если на какой-то диапазон подтверждение не пришло за определенное время, то он пересылается заново.
Не совсем понятно с кумулятивным подтверждение. В видео сказано, что после отправки 12,5 мб, можно отправить еще столько же не дожидаясь подтверждения. А если первая часть не дойдет, а мы уже отправили следующую? Тогда
придется повторно отправлять первую часть и получается, что вторая часть сегментов придет позже первой. Это никак не повлияет на корректный прием данных? не вызовет проблем с данными у получателя?
+Роман Денисов, при кумулятивном подтвеождении, если не придет первая часть, то она будет отправлена заново, а также все последующие части. Так как TCP нумерует байты в сегментах, то по номерам можно составить данные в правильном порядке без дублирования.
Почему объем данных в сети 12,5 а не 12,8 ???
1 Гигабит = 1250 мегабайт ???
или
1 Гигабит = 1280 мегабайт ???
Если я не ошибаюсь 10 Гбит/с это 1.250 ГБайт/с, а т.к. 10мс = 0.01с - перемножаем и получаем 12.5 Мбайт. В байте 8 бит.
Если считать, что в одном байте 8 бит, то все правильно. Но производители жестких дисков и сетевого оборудования просто умножают значения на 10. У них принят такой подход, не соответсвующий математике.
Андрей в чём проблема? Вот нужно передать данные другу, мы в разных регионах. Мы с другом сделали сетевые приложения, открыли сокеты, порты одинаковы... Но не можем к друг другу подключится(используем TCP). Я думад что загвоздки с NAT решаются автоматически, но нет=(. Суть вопроса такова: можноли соединить два компьютера между собой без внешних ip адресов и без всяких хамачи, торрентов?
а как твой комп понимает, что ему надо соединиться именно с тем другим компом? и наоборот.
Спасибо за видео!
В названии видео ошибка ;)
+Vadzim Butsko, ошибку исправил, спасибо!
а я как дебил пытаюсь найти
А как при использовании SACK отправителю объясняется, какие сегменты надо переслать? Никак ни сам не догадаюсь, ни найти не могу :(
+Дмитрий Карлин, это написано в RFC 2018 ( tools.ietf.org/html/rfc2018). Получатель в SACK передает границы принятых байт. Отправитель, получив пакет с опцией SACK, отмечает сегменты, которые приняты получателем, а неотмеченные сегменты отправляет еще раз. Если сегменты дойдут успешно, то получатель передает сегмент с кумулятивным подтверждением (флаг ACK).
2:26 что-то вы тут всё смешали да напутали. гигабиты с гигабайтами с мегабайтами и мегабитами.
Prostite a vi skolko vremeni rabotaete uje v IT sfere?
+Giorgi Dgebuadze с 2000 года.
И снова нихуя не интересно, жаль что ты единственный в ютюбн
быдло, иди литвина смотри🤣
зачем тебе сети?!