Интерфейс сокетов | Курс "Компьютерные сети"

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 พ.ย. 2024

ความคิดเห็น • 210

  • @miketuev3241
    @miketuev3241 3 ปีที่แล้ว +14

    Удивительно короткое и при этом супер понятное объяснение. У вас талант огромные штуки объяснять!!!!

  • @davidghukasyan1038
    @davidghukasyan1038 7 ปีที่แล้ว +117

    Андрей, вы мне так помогли! У меня через час экзамен, почти все ваши лекции смотрел, стал намного уверенным в своих знаниях. Спасибо вам большое, объясняете лучше чем все мои преподаватели вместе взятые!

    • @AndreySozykin
      @AndreySozykin  7 ปีที่แล้ว +24

      +David Ghukasyan, спасибо за хороший отзыв! Удалось ли сдать экзамен?
      Какой университет?

    • @davidghukasyan1038
      @davidghukasyan1038 7 ปีที่แล้ว +40

      да, Андрей, сдал на отлично! Ереванский Государственный Университет, факультет Информатики и Прикладной Математики. Спасибо еще раз, жду новых ваших лекций!

    • @dustinjamal8689
      @dustinjamal8689 3 ปีที่แล้ว

      I know Im pretty randomly asking but does anyone know of a good place to stream newly released tv shows online ?

    • @benjaminahmed3236
      @benjaminahmed3236 3 ปีที่แล้ว

      @Dustin Jamal I use FlixZone. You can find it by googling =)

    • @ahmirmekhi4415
      @ahmirmekhi4415 3 ปีที่แล้ว

      @Benjamin Ahmed Yea, I have been using flixzone for months myself :D

  • @PitonyJory
    @PitonyJory 4 ปีที่แล้ว +16

    Смотрю весь курс, не устаю поражаться качеству донесения информации!

  • @МаратСафин-ж4д
    @МаратСафин-ж4д 4 ปีที่แล้ว +24

    Огромное Вам спасибо, Андрей. К сожалению, на ютубе очень мало людей, которые могут столь информативно дать большой объем знаний! Продолжайте в том же духе!

    • @AndreySozykin
      @AndreySozykin  4 ปีที่แล้ว +2

      Обязательно буду продолжать!

  • @sergey_rozhkov
    @sergey_rozhkov ปีที่แล้ว +3

    Спасибо вам за полезный материал! Невероятно круто у вас получается объяснять все темы по компьютерным сетям! Браво!

  • @SuperHero777
    @SuperHero777 3 ปีที่แล้ว +5

    Отличный материал !!! Лаконично, понятно и хорошо подаётся. Легко запоминается.
    А то некоторые как усложнят, как закрутят, что даже имея знания, уже можно запутаться.
    Благодарим Вас за проделанню работу !!!

    • @AndreySozykin
      @AndreySozykin  3 ปีที่แล้ว

      Спасибо за приятный отзыв! Рад, что мой подход нравится!

  • @dswonderchild
    @dswonderchild 4 ปีที่แล้ว +18

    ОГРОМНОЕ СПАСИБО, особенно был поражен тем, что Вы привели пример кода на Python.

    • @AndreySozykin
      @AndreySozykin  4 ปีที่แล้ว +1

      Вроде бы Python сейчас один из самых популярных языков для сетевых приложений. Если, конечно, Web не брать.

    • @firstandlast4435
      @firstandlast4435 ปีที่แล้ว

      Да, пример на питоне хорошо зашёл

  • @АлександрК-й2с
    @АлександрК-й2с 5 ปีที่แล้ว +11

    Огромное Вам спасибо! И ещё большЕе спасибо за то что ПОДРОБНО отвечаете на вопросы в комментариях!!!

    • @AndreySozykin
      @AndreySozykin  5 ปีที่แล้ว +1

      Пожалуйста! Всегда рад вопросам.

  • @nikolaybaranov2213
    @nikolaybaranov2213 5 ปีที่แล้ว +6

    Применительно ко всему циклу и даже каналу - просто отличная работа, объясняющая технологии простым языком. При этом упрощения делаются небольшими. Т.е. именно теория даётся отлично. Завидую, что автор может объяснить все простым языком!

    • @AndreySozykin
      @AndreySozykin  5 ปีที่แล้ว +1

      Спасибо за приятный отзыв!

  • @alextokarev7562
    @alextokarev7562 8 ปีที่แล้ว +10

    Andrey Sozykin , большое Вам спасибо за данный курс.
    Самый низкий поклон.

    • @AndreySozykin
      @AndreySozykin  8 ปีที่แล้ว +3

      +Alex Tokarev, пожалуйста! Рад, что оказалось полезно!

    • @massyr
      @massyr 3 ปีที่แล้ว

      @@AndreySozykin А можно вам задонатить куда нибудь? Очень круто объясняете

  • @Alnorda
    @Alnorda 4 ปีที่แล้ว +4

    Восхитительный курс! Вы очень просто и доходчиво объясняете сложные вещи, за что вам огромное человеческое спасибо. Прохожу курс обучения на образовательном портале, как раз сейчас нам читают компьютерные сети. Чтобы понимать, о чём вообще речь, параллельно смотрю ваш курс. По сравнению с путанными объяснениями нашего преподавателя - это просто сказочный восторг! А примеры на Python очень порадовали - учусь на программиста Python)

    • @AndreySozykin
      @AndreySozykin  3 ปีที่แล้ว

      Спасибо за приятный отзыв!

  • @andyanderson222
    @andyanderson222 3 ปีที่แล้ว +3

    Превосходное объяснение, как и всегда! Огромное спасибо!

  • @trek3456
    @trek3456 8 ปีที่แล้ว +38

    Отличная работа! Спасибо)

    • @AndreySozykin
      @AndreySozykin  8 ปีที่แล้ว +3

      +Дмитрий Ларионов, рад, что нравится!

  • @НатальяБарабанова-д5я
    @НатальяБарабанова-д5я 3 ปีที่แล้ว +1

    Большое вам спасибо! Много раз читала man-страницы и прочие источники, но благодаря вашему видео всё стало понятно на лету.

  • @basilio6832
    @basilio6832 2 ปีที่แล้ว

    Спасибо, вы очень хороший преподаватель, информация изложена понятно и последовательно

  • @kl45gp
    @kl45gp 5 ปีที่แล้ว +10

    Офигенное обьяснение!

  • @denvanrain8793
    @denvanrain8793 5 ปีที่แล้ว +2

    Спасибо большое за видео!Очень четко и понятно объяснили! Прохожу курс по сетевым технологиям и мне очень помогло Ваше видео в понимании материала! Однозначно лайк и подписка!

  • @braiN941
    @braiN941 4 ปีที่แล้ว +5

    Спасибо большое, хорошее объяснение, а то везде непонятно

  • @viecheslavp4392
    @viecheslavp4392 4 ปีที่แล้ว +2

    Отличные видео, очень информативные, и чем дальше, тем интереснее, смотрю с самого начала на одном дыхании, многое уже знал, но многое было и новой информацией, но все равно очень полезно и интересно!
    Благодарю за проделанную работу, за видео и презентации! Успехов! :)

    • @AndreySozykin
      @AndreySozykin  4 ปีที่แล้ว

      Спасибо за приятный отзыв! Рад, что курс полезен и формат нравится!

  • @strakhov
    @strakhov 2 ปีที่แล้ว +2

    Великолепный курс, огромное спасибо!

  • @Q_School
    @Q_School 3 ปีที่แล้ว

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

  • @mikhailn.7092
    @mikhailn.7092 5 หลายเดือนก่อน +2

    Интерфейс - как получить доступ к сервису уровня.
    Получаем доступ через интерфейс(пульт/рычаги/кнопка :D) транспортного уровня - сокеты.
    Сервис - обеспечить передачу данные между хостами.
    Как это сервис будет реализован?
    С помощью проколов, вшитых в ОС/или еще куда =)

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      Я так понимаю, что да: реализованы в ОС и драйверах сетевой карты🤷‍♂️

  • @kseniyasakki4382
    @kseniyasakki4382 3 ปีที่แล้ว +1

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

  • @user-fghjiydsvjk975
    @user-fghjiydsvjk975 8 ปีที่แล้ว +7

    спасибо за очередную хорошо разжеванную тему
    с твоего позволения хочу лишь внести пару корректив для полноты картины
    1) connect - устанавливает соединение лишь в случае работы с TCP, но не UDP.
    В случае использования UDP сокетов (SOCK_DGRAM) этот вызов лишь сохраняет информацию удаленного адреса сервера и порта для отправки сообщений и их получений. То есть этот вызов можно и не использовать, но в этом случае придется использовать другие API для работы с сокетами, которые подразумевают ЯВНОЕ указание информации о сервере (sendto / recvfrom)
    2) важное API для работы с TCP протоколом, которое подразумевает отправку fin флага или другими словами "одностороннее закрытие соединения" - shutdown
    уж не знаю, есть ли оно в python, но среди стандартных posix API оно должно пристуствовать и иногда полезно

    • @AndreySozykin
      @AndreySozykin  8 ปีที่แล้ว +1

      +conquistador, спасибо, все написано правильно.
      Я об этом не говорю, чтобы не перегружать техническими деталями.

    • @АнатолийАнатолий-п1д
      @АнатолийАнатолий-п1д 5 ปีที่แล้ว

      Спасибо за инфо!

  • @celasitpc5831
    @celasitpc5831 7 ปีที่แล้ว +2

    Спс за урок. Все подробно разобрал и объяснил

  • @АндрейДанич-х5и
    @АндрейДанич-х5и 7 ปีที่แล้ว +3

    Умница! Честь и похвала! Все точки расставил над и))

    • @AndreySozykin
      @AndreySozykin  7 ปีที่แล้ว +2

      Рад, что оказалось полезным!

  • @sorrelofsuccess5513
    @sorrelofsuccess5513 5 ปีที่แล้ว +1

    Очень интересно! На С++ синтаксис плюс минус аналогичный. Отличные лекции!

    • @AndreySozykin
      @AndreySozykin  5 ปีที่แล้ว +3

      Синтаксис похож, потому что операции с сокетами придумали не зависимо от языка программирования.

  • @phoenixturock2286
    @phoenixturock2286 5 ปีที่แล้ว +2

    Классная лекция. Спасибо!

  • @Азамат-ш4з
    @Азамат-ш4з 4 ปีที่แล้ว +1

    Несколько раз пересмотрел лекцию, вроде в целом понял о чем речь, но все же до конца не усваивается информация. Возможно потому, что я не имею представления о программировании. Мне показалось, что лекция скорее нацелена на тех, кто понимает программирование, но не силен в устройстве сети.
    Но благодаря этой лекции появилось желание и в программировании разобраться.
    В интернете много ресурсов, обучающих компьютерным сетям, но, как и многие на этом канале, я считаю, что Ваш курс лучший (по крайней мере из тех, с которыми я сталкивался) по доступности изложения для уровня новичок и по лаконичности.
    Был бы рад, еслибы Вы выложили подобный курс по программированию с нуля. Думаю, достаточно многим людям это было бы интересно и многие были бы Вам благодарны.

    • @AndreySozykin
      @AndreySozykin  4 ปีที่แล้ว

      Да, интерфейс - это скорее для программирования.
      Кажется, что базовых курсов по программированию сейчас достаточно много хороших.

  • @AlekseySergeev278
    @AlekseySergeev278 7 หลายเดือนก่อน +1

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

    • @AndreySozykin
      @AndreySozykin  7 หลายเดือนก่อน

      Пожалуйста!

  • @TheSuperStepan
    @TheSuperStepan 8 ปีที่แล้ว +14

    Андрей, я не совсем понял что такое сокет.
    Олифер трактует определение сокет как ip-adress + port
    как очередь из данных, идущих на определенный адрес и конкретный порт

    • @AndreySozykin
      @AndreySozykin  8 ปีที่แล้ว +70

      +TheSuperStepan можно понимать и так, как трактует Олифер. Для Интернет сокета это правильно.
      Вообще сокет - это такая штука, которая объединяет два процесса. Один процесс туда что-то записывает, другой читает.
      Первоначально сокеты в Unix использовались для взаимодействия процессов на одном компьютере. Процессы, даже если они на одном компьютере, изолированы друг от друга, поэтому для передачи данных им нужны сторонние механизмы (inter-process communication). Сокеты - один из механизмов обмена данными между процессами с помощью файлового дескриптора: один процесс пишет в файл специального вида, а другой читает. Это сокеты протокола Unix.
      С появлением сетей TCP/IP оказалось что абстракция сокетов хорошо подходит не только для взаимодействия процессов на одном компьютере, но и по сети. Процессы по прежнему пишут данные в файл и читают из него, но данные передаются по сети. Собственно передача данных выполняется операционной системой и скрыта от программиста. Такие сокеты называют Интернет сокетами. Определяются они не именем файла, как Unix сокеты, а парами IP-адрес и порт для клиента и сервера.

    • @liochamakedonsky7538
      @liochamakedonsky7538 7 ปีที่แล้ว +19

      Впервые встретил объяснение которое я понял. Спасибо вам огромное. По сетям у вас очень классный курс! Насколько я понял, многие пытаются преподавать материал, сами не понимая сути...и это вносит такую путаницу....

    • @AndreySozykin
      @AndreySozykin  7 ปีที่แล้ว +14

      +Liocha Makedonsky, спасибо за хороший отзыв! Рад, что оказалось понятно :)

  • @vchanify
    @vchanify 5 ปีที่แล้ว +2

    Молодчина!Спасибо.

  • @tetyaasya
    @tetyaasya 6 ปีที่แล้ว +1

    коротко и ясно. спасибо!

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว

      Пожалуйста! Рад, что понравилось!

  • @АнтонБ-х9у
    @АнтонБ-х9у 5 หลายเดือนก่อน

    Хороший ролик. Спасибо

  • @vladimirgaydamakin7155
    @vladimirgaydamakin7155 3 ปีที่แล้ว +2

    класс, отличный материал

  • @alexwolkow8534
    @alexwolkow8534 4 ปีที่แล้ว +1

    Спасибо Вам!

  • @ВладимирКазанцев-ц9т
    @ВладимирКазанцев-ц9т 3 ปีที่แล้ว +2

    Андрей здравствуйте. Вы сказали что интерфейсы используются для взаимодействия между разными уровнями стека протоколов. Я правильно понял, что интерфейс сокетов используется для взаимодействия уровня приложений с транспортным уровнем?

  • @suvar8667
    @suvar8667 3 ปีที่แล้ว +1

    шикарно!

  • @andreipomorev6292
    @andreipomorev6292 4 ปีที่แล้ว

    Спасибо за видео!

  • @hutoryanin
    @hutoryanin 3 ปีที่แล้ว +1

    *Л. а. й. к. о. с.* за видос.

  • @savvinovan
    @savvinovan 5 ปีที่แล้ว +1

    Спасибо, очень доходчиво

  • @CmuT_B_naJIbTo
    @CmuT_B_naJIbTo 5 ปีที่แล้ว +1

    Чётко. Лайк, подписка

  • @mr_robot_20_04
    @mr_robot_20_04 5 ปีที่แล้ว +1

    Очень познавательно

  • @flont1204
    @flont1204 4 ปีที่แล้ว +2

    Топ видос. Я как раз на пайтоне сокеты изучаю

    • @AndreySozykin
      @AndreySozykin  4 ปีที่แล้ว

      👍

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      Оо!!! Как раз ты-то мне и нужен.
      5:20
      Есть строка:
      conn, addr=s.accept()
      Что она структурно и конкретно означает? Вижу, что есть некая переменная addr, которая объявляется и сразу инициализируется и больше нигде не используется☝🏼☝🏼
      Первый вопрос: ну и зачем она нужна????
      Второй вопрос: что такое "conn"??? Это переменная или что? Почему она висит в воздухе без типа и значения??? Что за хрень с этим питоном?

  • @atillaattila8900
    @atillaattila8900 8 ปีที่แล้ว +1

    spasibo za klasnoe video

  • @traydr-1609
    @traydr-1609 ปีที่แล้ว +1

    Тоесть первый сокет у нас принимает соединение и устанавливает его, а копию мы делаем, чтобы первый сокет всегда принимал новых клиентов?
    После чего новый клиент на 1ом сокете снова сделает копию и уйдет в нее, а первый сокет снова освободиться для принятия нового клиента?

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      я так же понял🤷‍♂️ и типа эти клонированные "одноместные" сокеты и есть очередь соединений исходного сокета.

  • @andriizhydenko7392
    @andriizhydenko7392 4 ปีที่แล้ว +1

    Спасибо!

  • @RuslanRavilevi4
    @RuslanRavilevi4 8 ปีที่แล้ว +4

    добрый день. Спасибо за курс, у меня вопрос по видео - из примера в видео, отправляем данные серверу "hello world", почему клиент их получает обратно? вроде клиент должен получить потверждение? если сервер обратно отправляет пакет - получаются накладные расходы?

    • @AndreySozykin
      @AndreySozykin  8 ปีที่แล้ว +11

      Это просто демонстрационный пример. Сервер отправил клиенту ту же самую строку, поэтому клиент ее и получил. В реальности сервер, конечно же, отправит что-то полезное клиенту.
      Не нужно путать сокеты и TCP. Подтверждение отправляется по протоколу TCP.
      Сокеты позволяют передавать процессам на разных хостах данные друг другу. В примере пересылаются простые строки. Причем для передачи используется TCP, и подтверждение о доставке тоже пересылается. Но все это скрыто от программиста.

    • @АнатолийАнатолий-п1д
      @АнатолийАнатолий-п1д 5 ปีที่แล้ว +3

      Ожидал увидеть тут подобный коммент. Сам не сразу понял, зачем одни и те же данные возвращать клиенту.
      В надежде на то, что мой коммент будет полезным для развития курса, отмечу, что в подобных примерах, кмк, было бы лучше добавить какую-то не совсем связанную с темой урока операцию с полученными данными, чтобы наглядно показать сразу две вещи:
      1. Есть смысл в том, чтобы получать от клиента данные и возвращать ему что-то взамен. (Например, отправил клиент "2+2", а сервер ему - "4").
      2. Сокеты, интерфейс транспортного уровня, ну прям _реально_ используются в _программе_ . Мол, вот то место, где эти ваши пока очень теоретические в этом курсе компьютерные сети вполне практически пересекаются с программированием. Вот здесь вы вызываете сокеты, вот тут - вычисляете "2 + 2", а вот здесь - шлете ответ обратно клиенту. Сами вычисления на Питоне не относятся к теме, но это было бы очень наглядно.
      И в целом я заметил, что мне как человеку, который лучше всего понимает материал на практических примерах, иногда сложно понять какой-то нюанс сетей, потому что он представлен только в теории и весьма упрощенной. Хотя с упрощением я согласен, ибо понимаю, что оно тут реально необходимо, прошу обратить внимание на это и, если вы найдете места, которые можно объяснить на практических примерах без ненужного новичкам усложнения, уделить этим местам больше "практического" времени. Вот как в этом видео про сокеты. Прям вообще чистенько на мое сознанеие положилось из-за практического примера, очень ясно теперь все вижу.

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil 5 ปีที่แล้ว +1

    класс, спасибо

  • @vsezanyato
    @vsezanyato 3 ปีที่แล้ว +1

    А копия сокета получаетя имеет другой порт? И непонятно зачем нужен accept, если сервер и так уже слушает, непонятно тогда что он случает до accept

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      те же вопросы. ты разобрался?

  • @rostl642
    @rostl642 7 ปีที่แล้ว +6

    Здравствуйте Андрей. Спасибо за лекцию, как всегда всё прекрасно. У меня небольшой вопрос, 1 сокет - сугубо для одного порта? Т.е., если допустим на компьютере условно происходит передача и прием данных по двум портам - 45 и 4500 допустим, то на компе будет открыто 2 сокета для каждого из портов?

    • @AndreySozykin
      @AndreySozykin  7 ปีที่แล้ว +5

      +rostl, да, именно так.

    • @АнатолийАнатолий-п1д
      @АнатолийАнатолий-п1д 5 ปีที่แล้ว

      Я правильно понимаю, что два сокета на один айпишник, но разные порты будут занимать два места в очереди на стороне сервера?

    • @ruslanvolovik2745
      @ruslanvolovik2745 4 ปีที่แล้ว

      @@АнатолийАнатолий-п1д нет, очередь из соединений создаеться для кажного сокета отдельно, соответственно будет 2 очереди

    • @manOfPlanetEarth
      @manOfPlanetEarth 6 หลายเดือนก่อน

      @@ruslanvolovik2745
      а как, собственно, работает эта очередь соединений?

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      @@ruslanvolovik2745
      Руслан! Давай разбираться! Я вижу неоднозначность!
      Автор говорит: вон на сервере создали сокет с очередью соединений длиной 5. Дальше приходит запрос на соединение и сокет клонируется. Где очередь соединений у нового сокета? Какого она размера? У автора никакая очередь у нового сокета не нарисована. Из всего этого получается ТОЛЬКО ТАКАЯ картина: создаётся изначальный сокет с очередью соединений, и при каждом новом соединении клонируется исходный сокет с очередью ровно на одно соединение, и какой длины была очередь первородного сокета, столько новых "одноместных" сокетов и создаётся.
      Руслан, это так?🤔

  • @ВладиславБ-и1е
    @ВладиславБ-и1е 6 ปีที่แล้ว +3

    Разве закрытие соединения TCP не инициируется методом socket.shutdown(socket.SHUT_RDWR), а socket.close() просто освобождает ресурсы?
    docs.python.org/3/library/socket.html?highlight=socket#socket.socket.close

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว +4

      Не совсем так. socket.close() также закрывает соединение, если сокетом пользовался только один процесс. Если же через сокет работали несколько процессов, то соединение не разорвется и другие процессы смогут передавать данные.
      socket.shutdown(socket.SHUT_RDWR) закрывает соединение, не зависимо от того, сколько процессов используют сокет. Подробности можно посмотреть по ссыдке - stackoverflow.com/questions/409783/socket-shutdown-vs-socket-close
      Но эта тема выходит за рамки вводного курса по сетям.

  • @алеоноражабина
    @алеоноражабина 10 หลายเดือนก่อน +1

    С П А С И Б О !

    • @AndreySozykin
      @AndreySozykin  9 หลายเดือนก่อน

      Пожалуйста!

  • @Valaukar1111
    @Valaukar1111 5 ปีที่แล้ว +4

    Андрей, вы делаете отличные лекции! Спасибо большое. Можно уточнить, я так пониманию, сокеты стали нужны, чтобы множество пользователей могло работать с одним сервером. Ведь связка IP-адрес и порт (192.168.1.1:80), если пользователей, скажем, 100 и они постоянно обмениваются информацией с сервером, качают что-нибудь с него, очень "сыроватое" решение. В любом случае, нужно было решение вроде сокетов "порт для порта". Интернет-сокет - это специальный "адрес" конкретного соеднинения + буфер для обмена данными? я правильно понял его предназначение?

    • @AndreySozykin
      @AndreySozykin  5 ปีที่แล้ว +4

      Да, именно так. Сокеты сделали как раз для того, чтобы скрыть взаимодействие по сети. Изначально сокет - это файл специального типа в UNIX. Данные пишутся в этот файл, а читать их можно на другом компьютере. Такая абстракция сетевого ввода-вывода.
      Связка IP и порт необходима, иначе непонятно, куда клиенту подключаться.

    • @Valaukar1111
      @Valaukar1111 5 ปีที่แล้ว +1

      @@AndreySozykin а каким образом происходит привязка к этому "файлу"? у этого файл есть какой то ID? я просто сейчас усиленно изучаю эту тему, а подробного разбора как устроены сокеты не могу найти. То что вы описали - самое подробное что я нашел в сети.

    • @AndreySozykin
      @AndreySozykin  5 ปีที่แล้ว +2

      В википедии есть описание типа файла для сокетов - en.m.wikipedia.org/wiki/Unix_file_types
      Еще ссылка с более подробной информацией - unix.stackexchange.com/questions/116563/is-there-a-file-for-each-socket

    • @ruslanvolovik2745
      @ruslanvolovik2745 4 ปีที่แล้ว

      @@Valaukar1111 это ты так "усиленно занимаешся", видно...

  • @gijduvon6379
    @gijduvon6379 3 ปีที่แล้ว +1

    Андрей, а не планируете более подробные видосы про poll, select, epoll и Linux aio? Спасибо!

    • @AndreySozykin
      @AndreySozykin  3 ปีที่แล้ว +2

      Пока не планировал. Сейчас делаю новый курс по SQL. Потом, возможно, на эту тему подумаю.

  • @zhabokot
    @zhabokot 4 ปีที่แล้ว +1

    Я иногдп думаю, что те, кто поставил видосам Андрея дизлайк, просто неуверенной рукой/в темноте/спросонья (нужное подчеркнуть) двумя сантиметрами в выборе кнопки ошиблись.

    • @AndreySozykin
      @AndreySozykin  3 ปีที่แล้ว +1

      Не обязательно всем должно нравиться. Кроме того, без дизлайков youtub будет подозревать накрутки.

    • @zhabokot
      @zhabokot 3 ปีที่แล้ว

      @@AndreySozykin я просто по Вашим лекциям на собеседование готовилась. И в полном восторге от того, как Вы так все четко и структурированно обьясняете.

  • @Denis-535
    @Denis-535 5 ปีที่แล้ว +3

    Еще бы видео про WebSocket'ы.

    • @AndreySozykin
      @AndreySozykin  5 ปีที่แล้ว +7

      Сейчас готовлю материалы. Будет на этой или следующей неделе.

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      @@AndreySozykin
      в итоге так и не сделали выпуск про веб сокеты?????:(((((

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      @@AndreySozykin
      Извиняюсь!!!!! Увидел про вебсокеты в плейлисте продвинутых тем!!!!👍🏼🎉🥳

  • @ИванИванов-ю2е5ц
    @ИванИванов-ю2е5ц 3 ปีที่แล้ว +1

    спасибо!!!

  • @XanderEVGs
    @XanderEVGs ปีที่แล้ว

    4:45 копия сокета на сервере имеет другой порт, не 80ый(так утверждает один эксперт в одном споре)?
    Если я правильно помню, сервер отличает клиентов по соурс порт, но как и кем он назначается, рандомно? Ос клиента?
    Если отличие идет по соурс порт, то смысла подменять порт на сервере нет вроде бы

  • @АндрейДавыдов-м4н
    @АндрейДавыдов-м4н 4 ปีที่แล้ว +1

    Спасибо

  • @ivanrished5228
    @ivanrished5228 4 ปีที่แล้ว +1

    При сотворении копии сокета, нуно было сказать, что ему присваивается другой номер порта, выбираемой за диапазоном 1024

    • @manOfPlanetEarth
      @manOfPlanetEarth 6 หลายเดือนก่อน

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

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      ВАНЕС!!!! Алё, сучара!!!! Ответь на вопрос.

  • @oleg233
    @oleg233 5 ปีที่แล้ว

    клас, спосибо! профессиональное

  • @emilsentcov
    @emilsentcov 8 ปีที่แล้ว +2

    Здравствуйте! Андрей. Огромное спасибо, очень познавательный материал.
    Но дойдя до этой темы, я впал ступор, не могу понять что такое Сокеты.
    Возможно, что-то усложняю для себя в этом вопросе, поэтому не могу понять.
    Есть возможность объяснить как то иначе, что такое Сокет?

    • @AndreySozykin
      @AndreySozykin  8 ปีที่แล้ว +14

      +Эмиль Сенцов, сокеты - это набор функций (или методов) для разработки программ для сетей. Если вы хотите что-то передать по сети из программы, то используете сокеты.

  • @sergeysemenov3674
    @sergeysemenov3674 5 หลายเดือนก่อน

    Правильней бы было коннект в трай завернуть - сервер может быть недоступен или отказать в соединении

  • @Q_School
    @Q_School 3 ปีที่แล้ว +1

    Assalomu alaykum, rahmat sizga

  • @alexanderpolyakov7696
    @alexanderpolyakov7696 8 ปีที่แล้ว +1

    Андрей, здравствуйте! Извините, что не по теме.
    Вы не могли бы сказать о чем идет речь в этом предложении?
    "The TCP stack also maintains the variance in the measured RTT, the RTTVAR"
    И вообще зачем нужен RTTVAR?

    • @AndreySozykin
      @AndreySozykin  8 ปีที่แล้ว +13

      +Alexander Polyakov, это больше по теме протокола TCP - th-cam.com/video/hd6QNXK5rPk/w-d-xo.html
      TCP использует подтверждение доставки для того чтобы убедится, что данные переданы успешно. Если через заданный период времени подтверждение получения данных не пришло, то сегмент отправляется повторно.
      Сложный вопрос заключается в том, как правильно выбрать время ожидания подтверждения (обозначается RTO, retransmission timeout). Если RTO будет слишком коротким, то подтверждения часто будут приходить после того, как таймаут закончится. То есть будет много излишних повторных оправок сегментов. С другой стороны, если RTO слишком большой, то обнаруживать проблемы доставки мы будем поздно.
      TCP динамически вычисляет размер RTO в зависимости от времени прохождения сегмента от отправителя до получателя и обратно (RTT, round-trip time). RTO должен быть немого больше, чем RTT, тогда подтверждения будут приходить вовремя. Но в реальных сетях RTT для разных сегментов TCP может сильно отличатся друг от друга. Поэтому используется схема "сглаживания" RTT, на основе удаления выбросов и последующего усреднения. Для того вычисляются два дополнительных параметра:
      SRTT - smoothed round-trip time, "сглаженное" RTT.
      RTTVAR - round-trip time variation, характеризует, насколько значения RTT для разных сегментов TCP могут отличатся друг от друга.
      Процесс вычисления RTO в TCP описан в документе RFC 6298:
      1. Пока RTT не известно, задается
      RTO

    • @АнатолийАнатолий-п1д
      @АнатолийАнатолий-п1д 5 ปีที่แล้ว

      Воу, вот это объяснение!

  • @Павел-ь6ч
    @Павел-ь6ч 5 ปีที่แล้ว +1

    Здравствуйте Андрей. Извините что не по теме, вопрос такой где можно зарабатывать специалисту с этими знаниями, учусь на кафедре сетей связи 4 курс

  • @emilsentcov
    @emilsentcov 8 ปีที่แล้ว +1

    Благодарствую за разъяснения. Тогда скажите как называется IP адрес в паре с портом приложения?Путаница возникла, Википедия трактует Сокет как IP адрес в паре с портом приложения.

    • @AndreySozykin
      @AndreySozykin  8 ปีที่แล้ว +14

      Упрощенно можно понимать и так. Сокет - это файл специального вида, который связан с IP-адресов и портом на текущем компьютере, а также с IP-адресом и портом на удаленном компьютере (вместе с протоколом транспортного уровня TCP или UDP мы получаем полное описание соединения). Все, что пишется в этот файл, появляется на другом компьютере.
      Строго говоря, сокеты бывают не только TCP/IP, но и других типов, например, Unix. Там передача данных выполняется без IP-адресов и портов. Но сейчас почти везде используются сокеты TCP/IP, так что в Википедии описан самый популярный вариант сокетов.

    • @emilsentcov
      @emilsentcov 8 ปีที่แล้ว

      Теперь понятно. Очень вразумительно.

  • @МаксВетер-х8ш
    @МаксВетер-х8ш 6 ปีที่แล้ว +2

    Андрей, а вот такой вопрос. Допустим я пишу чат и хочу напрямую устанавливать соединение через интернет между двумя собеседниками, один из них сервер, другой клиент. Как клиенту узнать IP-адрес сервера?

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว +7

      Нужен какой-то дополнительный сервис, который будет сводить вместе клиентов и серверы. Подобным образом устроен BitTorrent. Есть torrent трекер, который сам не хранит даннные, но знает, у кого что лежит.

  • @catshannon5064
    @catshannon5064 8 ปีที่แล้ว +1

    скажите, это конечно немного не по теме, ну как допустим программист системный на с, взаимодействует с транспортным уровнем. Я читал, что любое взаимодействие например с клавой происходит через поток что записывается в файл, то есть тут также, только файл - сокет?

    • @AndreySozykin
      @AndreySozykin  8 ปีที่แล้ว +5

      +Vlad Stetsenko, да именно так. Сокет (в Unix) - это тип специальный файла. Интерфейс сокетов придуман был именно для программ на C, там такие же вызовы: bind, listen и т.п.

  • @innokent9985
    @innokent9985 5 ปีที่แล้ว +1

    Андрей, а что же тогда порт, это тоже какой-то пронумерованный файл или структура в памяти? Ну или ссылку на вашу лекцию про порты.

    • @AndreySozykin
      @AndreySozykin  5 ปีที่แล้ว +3

      Порт - это идентификатор процесса на транспортном уровне. Про порты в лекции о траеспортном уровне - th-cam.com/video/g7vq-JVId58/w-d-xo.html

    • @bobobo500
      @bobobo500 5 ปีที่แล้ว

      @@AndreySozykin Merci

  • @sergeisokolov8205
    @sergeisokolov8205 5 หลายเดือนก่อน +1

    Bind читается как "байнд"!

  • @andrewadmin4328
    @andrewadmin4328 5 ปีที่แล้ว +1

    то есть сокеты нужны,чтобы программист мог настраивать сервер?

  • @andreypolevoy5311
    @andreypolevoy5311 4 ปีที่แล้ว

    спс

  • @sashasashovic91
    @sashasashovic91 8 หลายเดือนก่อน

    Лучше использовать read вместо receive.

  • @alexmaksuta9333
    @alexmaksuta9333 3 ปีที่แล้ว

    Я хотел бы спросить, мне бы как то прочесть заголовок ip в сокетах, я могу это реализовать в сырых сокетах но это ооочень долго и сложно, нужно будет реализовать весь механизм Tcp в ручну просто чтобы прочесть ip заголовок. Так вопрос, как?

  • @roman5336
    @roman5336 4 ปีที่แล้ว

    Скажите, а можно забиндить клиентский сокет на левый ip?

  • @D0sart
    @D0sart 7 ปีที่แล้ว +2

    Очередь соединений == размер окна ?

    • @AndreySozykin
      @AndreySozykin  7 ปีที่แล้ว +2

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

  • @sergeyufimtsev711
    @sergeyufimtsev711 8 ปีที่แล้ว

    Получается, что сокеты взаимодействуют и с сетевым уровнем? Ведь иначе бы они не привязывались к IP-адресу

    • @AndreySozykin
      @AndreySozykin  8 ปีที่แล้ว +5

      +Sergey Ufimtsev, не совсем так. Сокеты используются для передачи данных от одного приложения другому.
      Но чтобы знать, где находится другое приложение, нужны обязательно IP-адрес и порт. В этом смысле изоляция не полная. Однако большая часть задач сетевого уровня (маршрутизация и т.п.) от сокетов скрыты.

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      @@AndreySozykin
      ​​⁠
      6:19
      "conn, addr=s.accept()" что означает эта строка? что за "addr", если дальше эта переменная не используется?
      Что за conn, который висит в воздухе без типа и значения??????

  • @mirlaniusUMK
    @mirlaniusUMK 4 ปีที่แล้ว +2

    Ах тыж сукин сын я в деле, с меня тоже лайк

  • @mysonicteam7977
    @mysonicteam7977 4 ปีที่แล้ว +1

    Когда создается копия сокета, то какой ip ей присваивается?

    • @AndreySozykin
      @AndreySozykin  4 ปีที่แล้ว

      Тот же самый, что и у основного сокета.

    • @mysonicteam7977
      @mysonicteam7977 4 ปีที่แล้ว +1

      Andrey Sozykin а как сеть воспринимает 2 одинаковых ip?

    • @AndreySozykin
      @AndreySozykin  4 ปีที่แล้ว

      Это же на транспортном уровне. Там соединения различаются по 5 параметерам:
      - IP отправителя
      - Порт отправителя
      - IP получателя
      - Порт получателя
      - Протокол транспортного уровня (TCP или UDP).

    • @manOfPlanetEarth
      @manOfPlanetEarth 6 หลายเดือนก่อน

      @@AndreySozykin
      ​⁠​⁠​⁠
      4:24
      критикую:)
      вот в этом моменте вообще ничего не понятно. у другого сокета есть ip адресс и порт? какие? как происходит соединение клиента с другим сокетом? клиент же связан с исходной парой айпи адрес-порт сервера, а тут клиента коннектят на какой-то другой сокет. и кто это делает? ОС сервера? очередь соединений - как конкретно она работает? особенно в свете копирования сокета. очередь копируется или как? ни слова про это.
      столько вопросов и нет ответов:)

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      @@AndreySozykin
      Андрей, вернитесь к нам!!😀

  • @vlad1977list
    @vlad1977list 5 ปีที่แล้ว

    сокеты у прогеров и технарей совсем разные вещи)

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 5 ปีที่แล้ว +1

      в чем именно разница?

    • @manOfPlanetEarth
      @manOfPlanetEarth 6 หลายเดือนก่อน

      тебе вопрос задали!!! отвечай!:)

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      Алё!! Актимель!!!! Прокис что ли???

  • @anoninfo97
    @anoninfo97 6 ปีที่แล้ว +1

    Запили видосик по стриму, как сделать стрим по типу fm.

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว

      Не понял вопрос :-(

    • @anoninfo97
      @anoninfo97 6 ปีที่แล้ว +2

      Andrey Sozykin как работает стрим в интернет радио к примеру. Какие процессы происходят при этом.

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว +4

      Понятно. Интересная тема, спасибо! Подумаю, как это можно сделать.

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      Ну, ты сделал стрим????? Или ты куи пинал???

    • @anoninfo97
      @anoninfo97 หลายเดือนก่อน

      @@manOfPlanetEarth Сделал что нужно, но ТЫ никогда не узанешь что и как.

  • @vlad1977list
    @vlad1977list 5 ปีที่แล้ว +1

    Как бы ещё и Питон выучить?!?

    • @AndreySozykin
      @AndreySozykin  5 ปีที่แล้ว +2

      Есть отличный сайт - pythontutor.ru

    • @Das.Kleine.Krokodil
      @Das.Kleine.Krokodil 5 ปีที่แล้ว

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

    • @chiklfkif
      @chiklfkif 3 ปีที่แล้ว

      на курсы на степике есть) для начинающих самое то

  • @MrEmityushkin
    @MrEmityushkin 2 ปีที่แล้ว

    Plus

  • @nigan952
    @nigan952 2 ปีที่แล้ว

    Разве системный программист не может работать с IP пакетами?

  • @КодШрёдингера
    @КодШрёдингера 4 ปีที่แล้ว

    вообще не понял что такое сокет

  • @dgdfgdg-c4u
    @dgdfgdg-c4u 6 ปีที่แล้ว +1

    Я не знал, что Гнойный видео по программированию снимает и да лучше убери свое лицо с видео отвлекает

    • @AndreySozykin
      @AndreySozykin  6 ปีที่แล้ว +1

      Не понял, при чем тут Гнойный :-)

    • @ubelian
      @ubelian 5 ปีที่แล้ว +1

      @@AndreySozykin Я не могу понять следующее: метод accept принимает соединение, но он это делает при любых обстоятельствах. Можно ли как-то глянуть кто просится подключится и если узел нам не угоден(например айпи не нравтся), то отклонить соединение?

    • @manOfPlanetEarth
      @manOfPlanetEarth หลายเดือนก่อน

      @@ubelian
      возможно, когда не нравится айпи - это случай межсетевых экранов?🤔 Это я предполагаю.

  • @asd99579
    @asd99579 2 ปีที่แล้ว +1

    Вот вы говорите что транспортный, это первый с которым может взаимодействовать программист. А я думал что вот то подробное описание алгоритмов разных протоколов озвучивается затем чтобы программист, при желании понимал как ему писать алгоритм, если надо на своём устройстве это реализовать, без роутер ОС или других ОС. Теперь не понимаю зачем, кроме общих знаний, знать алгоритмы взаимодействия разных протоколов нижних уровней.

    • @AndreySozykin
      @AndreySozykin  2 ปีที่แล้ว

      Скорее всего, незачем 🙂
      В любом случае полезно понимать, что за параметры вводятся при настройке сетевой конфигурации компьютеров. Еще иногда бывает полезно уметь настраивать маршруты к определенным сетям, как на серверах, так и на обычных компьютерах.

    • @asd99579
      @asd99579 2 ปีที่แล้ว

      @@AndreySozykin понял, админские цели значит. Это тоже очень хорошо.

  • @bulba1995
    @bulba1995 9 หลายเดือนก่อน

    Какраз читаю книгу Stivens_UNIX_Razrabotka_setevykh_prilozheniy там такой подход используется тоже , я вам признателен за видео )

  • @non_holy6286
    @non_holy6286 2 ปีที่แล้ว

    Большое спасибо!

  • @СергейНаумов-л7г
    @СергейНаумов-л7г 3 ปีที่แล้ว +1

    Спасибо!

  • @Andrzej3935
    @Andrzej3935 2 ปีที่แล้ว

    Спасибо

  • @ВладимирЧубков
    @ВладимирЧубков 2 ปีที่แล้ว

    Спасибо