Протокол TCP: скользящее окно | Курс "Компьютерные сети"

Поділитися
Вставка
  • Опубліковано 24 вер 2024
  • Варианты подтвверждения передачи сообщений: остановка и ожидание, скользящее окно. Влияние скользящего окна на скорость передачи данных на транспортном уровне. Размер окна. Кумулятивное и выборочное подтверждение.

КОМЕНТАРІ • 90

  • @valovandrey
    @valovandrey 4 роки тому +13

    Слушаешь - все легко и понятно. Доходит до реализации изученного в своем коде - вот тут то понимаешь, что не так то всё просто. Очень много подводных камней и нюансов. Но автору респект. Объясняет хорошо.

    • @AndreySozykin
      @AndreySozykin  4 роки тому +6

      Да, именно так. Я же сразу говорю, что рассказываю без технических деталей. Их нужно обязательно в своем коде учитывать.
      Кроме того, чаще всего я рассказываю основной сценарий, когда все идет хорошо. Но на практике в сетях ошибки случаются часто из-за чего многое идет не так. Это тоже нужно учитывать в коде.

    • @valovandrey
      @valovandrey 4 роки тому +6

      @@AndreySozykin Всё Вы делаете правильно. Именно этого и не хватает - общего правильного обзора. Спасибо Вам!)

  • @trek3456
    @trek3456 8 років тому +54

    Спасибо Вам еще раз за прекраснейшие видеоуроки. У Вас отлично получается передать самую основную информацию. Все четко, понятно и без "воды". Побольше бы таких преподавателей. Обязательно свяжусь с Вами, чтобы отблагодарить рублем!
    С нетерпением ждем новых видео. С Новым годом! Всего наилучшего

  • @ruslanalpysbayev1209
    @ruslanalpysbayev1209 8 років тому +5

    Самые лучшие видеоролики! Наверное самый лучший метод обучения этой дисциплины - смотреть эти видеоролики. Продолжайте в том же духе. Спасибо.

  • @nikolay_antipin
    @nikolay_antipin 3 роки тому +7

    Андрей, огромное спасибо за Вашу работу! Изучал по Вашим урокам компьютерные сети, прошёл собеседование!

  • @andreipomorev6292
    @andreipomorev6292 3 роки тому +1

    Спасибо за понятное обьяснение и информацию!

  • @АлексейСтепанов-к9о

    Андрей, спасибо за видео. Все доходчиво и понятно.

  • @Artem-ol1rw
    @Artem-ol1rw 7 років тому +3

    Спасибо за понятное объяснение.

  • @kseniyasakki4382
    @kseniyasakki4382 3 роки тому +1

    Спасибо вам, Андрей

  • @Q_School
    @Q_School 3 роки тому

    Спасибо.
    Qilgan bu yaxshi amallariyezni ajrini bersin.

  • @Andrzej3935
    @Andrzej3935 2 роки тому +1

    Спасибо!

  • @atillaattila8900
    @atillaattila8900 8 років тому +1

    Spsibo Za klasniy Video Rolik :)

    • @AndreySozykin
      @AndreySozykin  8 років тому +2

      +atilla atilla, пожалуйста!

  • @jannawant
    @jannawant 2 роки тому +5

    Я не понял формулу умножения, я правильно понимаю, что чем больше задержка тем больше объем данных которых мы можем передать?
    то есть если задержка не 10 мс а 1 секунда, то объем данных будет не 12,5 МБ а 1250 МБ ?
    Как-то контринтуитивно, увеличиваем задержку а производительность растет.

    • @qts
      @qts Рік тому +1

      это не производительность, а то сколько данных нужно отправлять чтобы не терять время

  • @ilyafrost2523
    @ilyafrost2523 4 роки тому +4

    Привет от Масича Г.Ф.

    • @AndreySozykin
      @AndreySozykin  4 роки тому +2

      Спасибо, очень приятно. Григорий Федорович преподавал мне компьютерные сети в университете. Именно у него я многому научился, в трм числе преподаванию.

    • @ВладДобрый-д8с
      @ВладДобрый-д8с 4 роки тому

      @@AndreySozykin ваш учебный курс помог в разборе материала для выполнения лабораторных Масича ГФ

    • @ilyafrost2523
      @ilyafrost2523 4 роки тому +1

      @@ВладДобрый-д8с Да начнется сессия

    • @manOfPlanetEarth
      @manOfPlanetEarth 5 місяців тому

      @@ilyafrost2523
      🤣🤣🤣

  • @ИванИванов-ю2е5ц
    @ИванИванов-ю2е5ц 3 роки тому +1

    спасибо!!!

  • @Азамат-ш4з
    @Азамат-ш4з 4 роки тому +5

    Андрей, как у Вас получился объём данных 12,5 МБайт?
    10240 МБайт (10 ГБайт)× 0.01 с(10 мс) = 102.4 МБайт.
    Как получается 12.5 МБайт?
    Илм я чтото неправильно считаю?

    • @RuslanKoshcheev
      @RuslanKoshcheev 4 роки тому +10

      10 Гбит/с = 10/8 Гбайт/с= 1250 Мбайт/с.###1250*0.01=12.5

    • @Азамат-ш4з
      @Азамат-ш4з 4 роки тому +1

      @@RuslanKoshcheev спасибо. Я неправильно считал: гигабайты вместо гигабитов.

    • @IlyaZarubin
      @IlyaZarubin 3 роки тому

      @@RuslanKoshcheev А подскажите плиз, не могу понять, а почему вы множите на 0.01 ведь миллисекунда это 0.001

    • @talgatbaytleu465
      @talgatbaytleu465 3 роки тому

      @@IlyaZarubin так там же 10мс = 10*0.001= 0.01сек. Вроде так=)

    • @IlyaZarubin
      @IlyaZarubin 3 роки тому

      @@talgatbaytleu465 О-ля-ля, невнимательность моя слабость. Спасибо!

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil 5 років тому +1

    Все понятно

  • @alekseye7938
    @alekseye7938 3 роки тому +1

    крутой мужик

  • @andreypolevoy5311
    @andreypolevoy5311 4 роки тому +1

    Спасибо

  • @ThePositivemann
    @ThePositivemann 7 років тому +11

    75 КБайт/с получилось, потому что размер кадра, передаваемого за раз по Ethernet 1500 байт?

    • @AndreySozykin
      @AndreySozykin  7 років тому +8

      Да.

    • @АнатолийАнатолий-п1д
      @АнатолийАнатолий-п1д 5 років тому +2

      Не понял. Можете подсказать, как вы это вычислили?

    • @Monkeylust
      @Monkeylust 3 роки тому

      @@АнатолийАнатолий-п1д умножь 50 сегментов которые можно передать за секунду на 1500 байт размер одного кадра, грубо говоря 1 сегмент один кадр, получишь 75000 байт, переведи в килобайты и получишь 73,24 Кбайт в секунду, это если точно считать, я в конверторе переводил. Андрей, верно?

    • @manOfPlanetEarth
      @manOfPlanetEarth 5 місяців тому

      @@Monkeylust
      пишешь как обезьяна: пунктуация по нулям.

    • @Monkeylust
      @Monkeylust 5 місяців тому

      @@manOfPlanetEarth я старался

  • @andreykelip5631
    @andreykelip5631 4 роки тому +1

    я правильно понял - размер окна может превышать количество сегментов, которые подтверждаются кумулятивно?

    • @AndreySozykin
      @AndreySozykin  4 роки тому

      Да. Кумулятивное подтверждение не связано с размером окна напрямую. Можно отправлять подтверждения после любого количества сегментов (байтов).

  • @mikhailn.7092
    @mikhailn.7092 3 місяці тому

    Зачем останавливаем передачу в среду?
    Мы просто избегаем простоя.
    100 успели отправить и прилетело подтверждение.
    Сколько подтвердили не важно.
    100 это размер окна.
    Заливаем сколько подтвердили.

  • @w1tcherj
    @w1tcherj 5 років тому +1

    А зачем мы разобрали отправка-ожидание для Wifi если это реализовано на канальном уровне? на транспортном пачка сегментов так же отправляется?

    • @AndreySozykin
      @AndreySozykin  5 років тому +2

      Чтобы понять, почему на транспортном уровне нельзя делать так же, как на канальном ;-)

  • @bodik1111
    @bodik1111 5 років тому +4

    а как поменять вариант потверждения?
    или компьютер это все сделает сам?

  • @BalynOmavel
    @BalynOmavel 6 років тому +3

    При использовании TCP при WiFi подключении, используются оба варианта подтверждения?

    • @AndreySozykin
      @AndreySozykin  6 років тому +4

      Да, но на разных уровнях. На канальном уровне - остановка и ожидание, на транспортном - скользящее окно.

    • @ubelian
      @ubelian 5 років тому +3

      @@AndreySozykin Здравствуйте! Хочу выучить протоколы TCP UDP для повышения квалификации как программиста. Подскажите книги пожалуйста чтобы в них было максимум все разжевано, совсем для дурачков

    • @AndreySozykin
      @AndreySozykin  5 років тому +6

      Для программиста больше всего подойдет книгп Компьютерные сети. Нисходящий подход.
      Куроуз Джеймс, Росс Кит.

  • @georrgy
    @georrgy 5 років тому +5

    Каков размер сегмента? Откуда вышло 50 штук?

    • @eugeniatikhomirova7542
      @eugeniatikhomirova7542 5 років тому +6

      насколько я понимаю: нужно 1 секунду разделить на 2 времени задержки (на передачу сегмента и подтверждения). 1с/(10+10)мс = 1/20*1000 =50

    • @zzzmmm5311
      @zzzmmm5311 5 років тому +8

      пропускная способность (10 гигабит/с)/обьем данных в сети (12,5 мегабайт). Байт=8 бит, следовательно 12,5 мегабайт=100мегабит. То есть 10гигабит/100мегабит = 50. Это количество сегментов. Исходя из формата кадра данных в ethernet (1500 байт) и количества сегментов в сети, получаем из их произведения скорость передачи данных 75кБайт/с. Надеюсь, мне удалось обьяснить понятно

    • @MrCollapsik
      @MrCollapsik 3 роки тому

      @@zzzmmm5311 Как у Вас получается 50 сегментов скажите пожалуйста ?
      10Гигабит = 1250Мегабайт
      12.5 Мегабайт = 100Мегабит
      1250/12,5 = 100
      10/100 = 0,1
      1250/100 = 12,5
      10/12,5 = 0,8
      Как у Вас получилось? Ваш метод среди других интересен.

    • @zayciable
      @zayciable 2 роки тому +1

      ​@@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 КБайт/с;

    • @mmeriant
      @mmeriant Рік тому

      ​@@zzzmmm5311 что-то не то.. вы делите скорость на объем (гигабиты/сек на мегабиты) - тут никак не могут сократиться единицы измерения, получается странная единица измерения 1/сек..
      и 10гигабит/100мегабит = 10^10 бит / 10^8 = 100, а не 50
      короче, до сих пор не пойму как ​ @Andrey Sozykin посчитал 50 сегментов

  • @валеравалерович-у7э
    @валеравалерович-у7э 6 років тому +2

    как получилось,что объем данных в сети равен 12.5 Мбайт,если говорится , что этот результат получен путем умножения задержки 10 мсек на скорость передачи данных 10 Гбайт/сек?

  • @w1tcherj
    @w1tcherj 5 років тому +2

    Размер окна это всё-таки количество байт за раз или количество сегментов? оговорка на 4 минуте?

    • @AndreySozykin
      @AndreySozykin  5 років тому +1

      С точки зрения теории сетей, размер окна может измеряться как в байтах, так и в сегментах. Протокол TCP считает в байтах.

    • @w1tcherj
      @w1tcherj 5 років тому +1

      @@AndreySozykin о как, я почему-то подумал, что на этапе согласования согласуют размер сегмента, и передают сегментами. То есть отправитель кинул пять сегментов, получатель отправил подтверждение за всю пачку.

    • @AndreySozykin
      @AndreySozykin  5 років тому

      Да, именно так. Отправитель передает несколько сегментов, не сообщая заранее их количество получателю. Получатель подтверждает получение последнего сегмента.

    • @w1tcherj
      @w1tcherj 5 років тому +1

      @@AndreySozykin то есть у получателя есть таймаут, который запускается после получения первого сегмента? Как он узнает, когда нужно отправиться подтверждение? А то он отправит ACK, а тут бац ещё сегмент придёт.

    • @AndreySozykin
      @AndreySozykin  5 років тому +1

      Получатель отправляет подтверждение сразу после того, как он получил данные. Они могут доходить до отправителя с задержкой, или теряться. Поэтому получатель понимает, что если он принял какой-то ACK, значит все предыдущие байты получены. Не зависимо от того, пришли предыдущие подтверждения, или нет.

  • @kappapride6226
    @kappapride6226 3 роки тому +1

    Не очень понял, как выборочное подтверждение берет и находит один плохой байт из всех и просит переслать только его.

    • @AndreySozykin
      @AndreySozykin  3 роки тому +2

      Подтверждаются диапазоны байт в сегментах. Если на какой-то диапазон подтверждение не пришло за определенное время, то он пересылается заново.

  • @РоманДенисов-ж6г
    @РоманДенисов-ж6г 7 років тому +4

    Не совсем понятно с кумулятивным подтверждение. В видео сказано, что после отправки 12,5 мб, можно отправить еще столько же не дожидаясь подтверждения. А если первая часть не дойдет, а мы уже отправили следующую? Тогда
    придется повторно отправлять первую часть и получается, что вторая часть сегментов придет позже первой. Это никак не повлияет на корректный прием данных? не вызовет проблем с данными у получателя?

    • @AndreySozykin
      @AndreySozykin  7 років тому +4

      +Роман Денисов, при кумулятивном подтвеождении, если не придет первая часть, то она будет отправлена заново, а также все последующие части. Так как TCP нумерует байты в сегментах, то по номерам можно составить данные в правильном порядке без дублирования.

  • @krolik305
    @krolik305 6 років тому +3

    Почему объем данных в сети 12,5 а не 12,8 ???
    1 Гигабит = 1250 мегабайт ???
    или
    1 Гигабит = 1280 мегабайт ???

    • @АлексейСирик-в2т
      @АлексейСирик-в2т 5 років тому +4

      Если я не ошибаюсь 10 Гбит/с это 1.250 ГБайт/с, а т.к. 10мс = 0.01с - перемножаем и получаем 12.5 Мбайт. В байте 8 бит.

    • @AndreySozykin
      @AndreySozykin  5 років тому +5

      Если считать, что в одном байте 8 бит, то все правильно. Но производители жестких дисков и сетевого оборудования просто умножают значения на 10. У них принят такой подход, не соответсвующий математике.

  • @nonamenoname7423
    @nonamenoname7423 2 роки тому

    Андрей в чём проблема? Вот нужно передать данные другу, мы в разных регионах. Мы с другом сделали сетевые приложения, открыли сокеты, порты одинаковы... Но не можем к друг другу подключится(используем TCP). Я думад что загвоздки с NAT решаются автоматически, но нет=(. Суть вопроса такова: можноли соединить два компьютера между собой без внешних ip адресов и без всяких хамачи, торрентов?

    • @manOfPlanetEarth
      @manOfPlanetEarth 5 місяців тому

      а как твой комп понимает, что ему надо соединиться именно с тем другим компом? и наоборот.

  • @vadzimkovalev5227
    @vadzimkovalev5227 8 років тому

    Спасибо за видео!
    В названии видео ошибка ;)

    • @AndreySozykin
      @AndreySozykin  8 років тому

      +Vadzim Butsko, ошибку исправил, спасибо!

    • @ОлегАккад
      @ОлегАккад 5 років тому +2

      а я как дебил пытаюсь найти

  • @desmondbreezey813
    @desmondbreezey813 7 років тому +3

    А как при использовании SACK отправителю объясняется, какие сегменты надо переслать? Никак ни сам не догадаюсь, ни найти не могу :(

    • @AndreySozykin
      @AndreySozykin  7 років тому +7

      +Дмитрий Карлин, это написано в RFC 2018 ( tools.ietf.org/html/rfc2018). Получатель в SACK передает границы принятых байт. Отправитель, получив пакет с опцией SACK, отмечает сегменты, которые приняты получателем, а неотмеченные сегменты отправляет еще раз. Если сегменты дойдут успешно, то получатель передает сегмент с кумулятивным подтверждением (флаг ACK).

  • @Tamago4a
    @Tamago4a Рік тому

    2:26 что-то вы тут всё смешали да напутали. гигабиты с гигабайтами с мегабайтами и мегабитами.

  • @giorgidgebuadze8169
    @giorgidgebuadze8169 8 років тому +1

    Prostite a vi skolko vremeni rabotaete uje v IT sfere?

    • @AndreySozykin
      @AndreySozykin  8 років тому +5

      +Giorgi Dgebuadze с 2000 года.

  • @antongrigoryan6023
    @antongrigoryan6023 8 місяців тому

    И снова нихуя не интересно, жаль что ты единственный в ютюбн

    • @manOfPlanetEarth
      @manOfPlanetEarth 5 місяців тому

      быдло, иди литвина смотри🤣
      зачем тебе сети?!