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

  Рет қаралды 92,815

Andrey Sozykin

Andrey Sozykin

8 жыл бұрын

Установка соединения в TCP. Трехкратное рукопожатие (SYN, SYN + ACK, ACK). Разрыв соединения: FIN, RST.
Лекции по курсу "Компьютерные сети" - goo.gl/0aIOuf
Лекция "Протокол TCP" - • Протокол TCP | Курс "К...
Лекция "Протокол TCP: формат заголовка" - • Протокол TCP: формат з...
Практические занятия по курсу "Компьютерные сети" - goo.gl/YP3l83
Практика: установка соединения в TCP: • Установка соединения в...
Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках:
goo.gl/kW93MA

Пікірлер: 68
@nikolay_antipin
@nikolay_antipin 2 жыл бұрын
Андрей, огромное спасибо за Вашу работу! Изучал по Вашим урокам компьютерные сети, прошёл собеседование!!!
@aleksandrzaremba6520
@aleksandrzaremba6520 Жыл бұрын
Очень точно, без лишней воды. Благодарю за такой качественный материал
@andreipomorev6292
@andreipomorev6292 3 жыл бұрын
Спасибо за столь полезный набор видео!
@qcandrey
@qcandrey Жыл бұрын
Вы далете хорошее дело, спасибо!
@user-hg9jc9nc3k
@user-hg9jc9nc3k 6 ай бұрын
Спасибо большое, лайкаю каждое видео!
@kseniyasakki4382
@kseniyasakki4382 3 жыл бұрын
Спасибо вам, Андрей!
@AndreySozykin
@AndreySozykin 3 жыл бұрын
Пожалуйста!
@DoubleViolence
@DoubleViolence 2 жыл бұрын
Спасибо! Доступно и понятно!
@AndreySozykin
@AndreySozykin 2 жыл бұрын
Пожалуйста!
@Q_School
@Q_School 3 жыл бұрын
Спасибо. Qilgan bu yaxshi amallariyezni ajrini bersin.
@atillaattila8900
@atillaattila8900 8 жыл бұрын
Spasibo Vam Za Klasnie video kursi
@AndreySozykin
@AndreySozykin 8 жыл бұрын
+atilla atilla, пожалуйста!
@AndreySozykin
@AndreySozykin 8 жыл бұрын
+ Иван Николайчук, Именно номер байта. В TCP нумеруются не пакеты, а байты.
@user-fghjiydsvjk975
@user-fghjiydsvjk975 8 жыл бұрын
спасибо за лекцию хочу лишь добавить один момент про установку соединения: отправка пустого ack подтверждения не увеличивает счетчик следущего отправляемого сегмента, поясню на примере (пример взят с rfc793 и он же на вики) TCP A (клиент) TCP B (сервер) 1. CLOSED LISTEN //// клиента еще нет, сервер слушает 2. SYN-SENT --> --> SYN-RECEIVED //// клиент отправляет сегмент №100 с syn 3. ESTABLISHED ESTABLISHED //// клиент отправляет пустой сегмент №101, говоря, что ждет №301 5. ESTABLISHED --> --> ESTABLISHED //// и вот тут отправляются данные с №101, чего и ждет сервер если бы мы на шаге 4 отправили бы сегмент с увеличением счетчика до №102, то серверу пришлось бы подтверждать этот ack своим пустым ack-ом и ситуация могла бы усложниться
@w1tcherj
@w1tcherj 5 жыл бұрын
а с чего это на 4 шаге мы должны отправлять 102, если на 3 сервер говорит, что получил 100, ждёт 101? мы на 4 и отправили ему 101.
@Andrzej3935
@Andrzej3935 Жыл бұрын
Спасибо!
@andreypolevoy5311
@andreypolevoy5311 4 жыл бұрын
Лайк, спасибо
@AndreySozykin
@AndreySozykin 4 жыл бұрын
Пожалуйста!
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 4 жыл бұрын
Спасибо
@user-hh9xr4uj3o
@user-hh9xr4uj3o 3 жыл бұрын
спасибо!!!
@AndreySozykin
@AndreySozykin 3 жыл бұрын
Пожалуйста!
@algmy
@algmy 6 жыл бұрын
если произойдёт interference в процессе отправки RST, разрыв не произойдёт. Там точно нет никаких ACK?
@kovalev94
@kovalev94 4 жыл бұрын
Спасибо за ваши лекции, очень доступно объясняете. Хотел уточнить один момент, могу ли я использовать RST в плохих целях? Например, если я нахожусь посередине между клиентом и сервером, и вижу что есть установленное соединение, могу ли я сформировать tcp пакет с rst, чтобы закрыть соединение, и делать так постоянно?
@AndreySozykin
@AndreySozykin 4 жыл бұрын
Да, конечно так можно делать.
@andreykelip5631
@andreykelip5631 3 жыл бұрын
вижу мышление кибербезопасника! ))
@user-wt9pp6ud7o
@user-wt9pp6ud7o 8 жыл бұрын
Добрый день. Спасибо за ваши лекции, узнал много нового, у вас отличная подача материала. Есть один вопрос: при установке соединения клиент отправляет именно номер байта, или номер пакета?
@trek3456
@trek3456 7 жыл бұрын
На транспортном уровне нет понятия "пакет". Автор в предыдущем комментарии все отлично разъяснил.
@AndreySozykin
@AndreySozykin 7 жыл бұрын
Наверное, в вопросе имелось с виду номер сегмента, а не пакета. Указывается именно номер байта.
@MrSorrow
@MrSorrow 3 жыл бұрын
Благодарю за полезное видео, все четко и понятно. Только два вопроса волнуют... в основном про RST. Это сообщение может вдруг не дойти до пункта назначения? Если может, то какие действия предпринимаются?
@AndreySozykin
@AndreySozykin 3 жыл бұрын
1. Конечно сообщение RST, как и любые другие сообщения, может не дойти до получателя. 2. Если сообщение RST не дойдёт, то соединение будет закрыто по тайм-ауту.
@kotpsihopat6392
@kotpsihopat6392 6 жыл бұрын
Где можно подробнее узнать про процесс нумерации байтов в потоке?
@AndreySozykin
@AndreySozykin 6 жыл бұрын
В RFC 793 по TCP - tools.ietf.org/html/rfc793#page-24
@alexzakharchenko8993
@alexzakharchenko8993 6 жыл бұрын
Не понял, что такое "порядковый номер передаваемого байта" и чем он отличается от "номера байта в потоке"? Порядковый номер передаваемого байта - это номер байта начала следующего сегмента от отправителя? А номера байта в потоке - это номер байта от получателя? или как? Тоесть они оба шлют информацию друг другу?
@w1tcherj
@w1tcherj 5 жыл бұрын
короче. Есть два поля в TCP. Первое используется для обозначения байт которые ты отправляешь и нумеруется лишь первый байт в сегменте. Второе поле используется для подтверждения, номер байта, которое ты ожидаешь. Они оба шлют друг другу.
@-XAH-
@-XAH- 4 жыл бұрын
Что нужно ввести в командной строке cmd, чтобы вывести соединения протокола TCP?
@AndreySozykin
@AndreySozykin 4 жыл бұрын
netstat -a
@anoname10
@anoname10 3 жыл бұрын
Здравствуйте. Как установить TCP соединение между двумя случайными компьютерами?
@AndreySozykin
@AndreySozykin 3 жыл бұрын
Один из компютеров должен являться инициатором соединения.
@ruslanalpysbayev1209
@ruslanalpysbayev1209 8 жыл бұрын
Очередное спасибо, но я не понял на 1:28 , т.е что значит " номер байта в потоке байт". Пожалуйста, объясните тут по-подробней, если можно.
@AndreySozykin
@AndreySozykin 8 жыл бұрын
+Ruslan Alpysbayev Протокол TCP получает от приложения поток байт (например, фильм размером 2 ГБ). Этот поток разбивается на отдельные части - сегменты, которые передаются по сети отдельно. Для гарантии доставки используется подтверждение получения сегментов и нумерация. Можно нумеровать сегменты, но по разным причинам это неудобно (например, сегменты могут иметь разный размер). Поэтому TCP вместо сегментов нумерует байты в потоке. Например, первый сегмент содержит байты с 0 по 999, второй с 1000 по 1999 и т.д. (в примере с фильмом до 2 ГБ). Более подробно об этом рассказано в лекции о протоколе TCP: kzbin.info/www/bejne/eXy4gJVqndmheJY На самом деле байты в потоке нумеруются не с 0, а по более сложным правилам. Если всегда начинать нумерацию с 0, то если компьютер захочет открыть два соединения, сегменты из них могут перепутаться. Также есть много других проблем. Поэтому для начального номера байт в потоке выбираются разные числа так, чтобы они не совпадали ни с каким другим соединением на данном компьютере. Алгоритмы достаточно сложные, но для простоты можно представлять себе, что начальный номер байта в потоке выбирается случайным образом. Именно этот номер и указывается в сегменте SYN при установке соединения. Стало ли понятнее?
@trek3456
@trek3456 7 жыл бұрын
Да, понятно объяснили. Спасибо
@algmy
@algmy 6 жыл бұрын
а как может начаться передача сегментов до установки соединени?
@w1tcherj
@w1tcherj 5 жыл бұрын
@@algmy никак, вначале соединение и после того как оно установлено передаются сегменты.
@Nikdoge
@Nikdoge 4 жыл бұрын
@@w1tcherj Тогда о каких номерах байтов говорится при установке соединения, если никакие сегменты информации ещё не передаются?
@pie4928
@pie4928 Жыл бұрын
Что такое RST ? В технологии MACA андрей говорил что RST содержит в себе данные отправителя и размер данных для передачи :/ Что то запутал... А FIN что такое ?!
@mrpandomim1
@mrpandomim1 Жыл бұрын
FİN это сообшения для разрыва соеденения , а RST тоже самое просто исполльзуется при критических моментах, если есть какая то ошибка и он разрывает соеденение с обейих сторон тоесть больше не потребуется отправить ACK как в примере с FİN. (2:54)
@pie4928
@pie4928 Жыл бұрын
@@mrpandomim1 Спасибо, но я уже давно разобралась :)
@artimity
@artimity 4 жыл бұрын
Сколько раз будет соединятся и разрываться канал при скачивании 2 Гб?
@AndreySozykin
@AndreySozykin 4 жыл бұрын
Сложный вопрос, зависит от качества связи.
@artimity
@artimity 4 жыл бұрын
@@AndreySozykin примерно, речь идёт о десятка, сотнях или тысячах?
@w1tcherj
@w1tcherj 5 жыл бұрын
А как может быть подтверждение +1 байт, если в самом сегменте больше байт, нежели один?
@AndreySozykin
@AndreySozykin 5 жыл бұрын
Указывается номер последнего полученного байта +1.
@w1tcherj
@w1tcherj 5 жыл бұрын
@@AndreySozykin Я наверно 3 дня назад имел в виду пример на картинке 1:03. Там отправитель отправил сегмент с №7537, а подтверждение №7538. Вопрос был как подтверждение может быть 7538, если сам сегмент+хэдерыL2+L3 размер которых больше) но в примере, скорей всего, для упрощения так сделано.
@AndreySozykin
@AndreySozykin 5 жыл бұрын
Считаются только байты данных TCP, без заголовков.
@denzel2412
@denzel2412 3 жыл бұрын
Так в чем разница байтов между 36829 и 7538?
@Enliven89
@Enliven89 3 жыл бұрын
байты передаются в обе стороны. 7537 это номер байт, которые отправил левый клиент, 36829 номер байт, которые отправил правый клиент. Поэтому за одно сообщение сообщается номер отправленных сообщение 36829 и подтверждение полученных сообщений 7537. Андрей поясняет значение 7538 тем, что правый клиент ждет следующий байт. Я в других источниках слышал немного иначе, что это фантомный байт, но сходу не объясню.
@TeuFortMan
@TeuFortMan 3 жыл бұрын
Может не номер байта, а номер некой последовательности? Тут у Вас какая-то не досказанность.
@kekkekovich3374
@kekkekovich3374 Жыл бұрын
Андрей, для чего нам третий пакет (ACK), если мы уже на втором этапе (SYN, ACK) можем передавать сообщение?
@ilyashevelev9256
@ilyashevelev9256 11 ай бұрын
Вероятно для того, чтобы каждый компьютер получил подтверждение, чтобы убедиться, что соединение установлено.
@abdarrahman_l7
@abdarrahman_l7 3 жыл бұрын
Вы программист?
@AndreySozykin
@AndreySozykin 3 жыл бұрын
Нет, я преподаватель университета. Но учился на ИТ-шинка и долго работал системные инженером по серверам и сетям.
@manOfPlanetEarth
@manOfPlanetEarth 8 ай бұрын
@@AndreySozykin видать, когда долго работали, старались вникнуть в суть всего. это видно по такому осмысленному курсу по сетям. годы идут, а курс всё такой же четкий.
@artur_kia
@artur_kia 2 жыл бұрын
Спасибо
@AndreySozykin
@AndreySozykin 2 жыл бұрын
Пожалуйста!
Она Постояла За Себя! ❤️
00:25
Глеб Рандалайнен
Рет қаралды 3,2 МЛН
Surprise Gifts #couplegoals
00:21
Jay & Sharon
Рет қаралды 29 МЛН
маленький брат прыгает в бассейн
00:15
GL Show Russian
Рет қаралды 3,7 МЛН
Что такое TCP/IP: Объясняем на пальцах
15:38
What is TCP/IP?
6:11
Techquickie
Рет қаралды 1,5 МЛН
Тема 8. Обзор TCP/IP. Как работает ARP.
1:40:48
Network is reachable
Рет қаралды 18 М.
Протокол ICMP, утилиты ping и traceroute | Введение в сети, часть 10
8:29
Онлайн обучение на Linux и DevOps инженеров
Рет қаралды 2,8 М.
Главная проблема iPad Pro M4 OLED!
13:04
THE ROCO
Рет қаралды 47 М.
❌УШЛА ЭПОХА!🍏
0:37
Demin's Lounge
Рет қаралды 312 М.
Главная проблема iPad Pro M4 OLED!
13:04
THE ROCO
Рет қаралды 47 М.
Он Отказался от БЕСПЛАТНОЙ видеокарты
0:40
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 1,6 МЛН