PracticU

TCP и UDP

Без субтитровС субтитрами
PracticU › Курс техников Windows - Поддержка пользователей - Help Desk › TCP и UDP
Словарь терминов:
TCP - Надёжный протокол передачи, который гарантирует, что все пакеты данных дойдут до цели в целости и в правильном порядке.
UDP - Быстрый протокол передачи без подтверждения доставки, подходящий для видео, звука и игр, где скорость важнее надёжности.
протокол - Согласованный набор правил, определяющих, как устройства или программы обмениваются данными, например HTTP или TCP.
веб-сервер - Программа или компьютер, принимающие HTTP-запросы и отдающие веб-страницы и ресурсы клиентам.
FTP - Протокол для передачи файлов между компьютерами по сети, между клиентом и сервером.
HTTP - Протокол передачи веб-страниц и данных между браузером и сервером. Его защищённая версия: HTTPS.
SSH - Протокол для удалённого зашифрованного подключения к компьютеру, в основном к серверам Linux, для управления через командную строку.
сессия - Период непрерывной работы пользователя с системой, в котором сохраняется информация о его состоянии, например после входа.

TCP и UDP
Лекция объясняет, зачем нужны номера портов и чем отличаются TCP и UDP. Порт показывает, какой программе на компьютере адресован пакет.
Порты и протоколы
1. Клиент и сервер: на сервере работают серверные программы, на клиенте клиентские, а у обоих есть IP-адрес.
2. Номер порта: серверная программа занимает порт (веб-сервер: 80, FTP: 21), а клиент получает свободный порт, на который вернётся ответ.
3. Well-known, 0-1023: закреплены международным соглашением, которое ведёт IANA. Например, 80 это HTTP, 21 это FTP, 53 это DNS, 22 это SSH.
4. Registered, 1024-49151: выделяются компаниям и программам по заявке в IANA. Например, Skype получил порт 23399.
5. Dynamic, 49152-65535: ни за кем не закреплены, их можно использовать для собственных приложений.
6. TCP: перед передачей создаёт сессию, каждый сегмент нумеруется и подтверждается, поэтому данные приходят целыми и в порядке. Надёжен, но медленнее: подходит для файлов и веб-страниц.
7. UDP: сессию не создаёт и подтверждений не ждёт, работает по принципу "отправь и забудь". Быстрее, но потерянные пакеты он не восстанавливает. Подходит для голоса и видео в реальном времени.
Обратите внимание
Порт это не канал и не устройство, а просто номер, который удостоверяет программу во время связи.
Теперь по номеру порта можно определить службу и объяснить, когда нужен TCP, а когда UDP.
Следующий урок курса: Углублённый урок о TCP и UDP

Содержание лекции: TCP и UDP

  1. 00:00

    Введение в порты, TCP и UDP

  2. 00:55

    Зачем два транспортных протокола

  3. 04:01

    Пример: два клиента и один сервер

  4. 04:55

    TCP для надежности, UDP для реального времени

  5. 07:13

    Назначение номера порта на сервере

  6. 08:23

    Нестандартный порт игрового сервера

  7. 09:36

    Номера портов на клиентском компьютере

  8. 10:34

    Временный порт клиентской программы

Расшифровка лекции: TCP и UDP

Полный текст первых минут лекции «TCP и UDP» из видеокурса PracticU – субтитры с временной меткой для каждого абзаца. Так можно прочитать и найти нужные темы ещё до начала обучения.

  1. 00:00

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

  2. 00:12

    Скорее взглянем на них с высоты птичьего полета. Лекция будет включать следующие темы. Мы поговорим о номерах портов TCP и UDP. Уберем широко распространенные суеверия, связанные с портами.

  3. 00:27

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

  4. 00:41

    У некоторых номеров портов есть стандартный смысл назначения на уровне общемировых соглашений. И мы закончим сравнением между протоколом TCP и протоколом UDP.

  5. 00:55

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

  6. 01:07

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

  7. 01:15

    На рисунке вот с этой стороны у нас клиенты, а вот тут у нас изображён сервер. Начнём с сервера. Сервер — это компьютер. У него есть процессор или процессоры, память, RAM и ПЗУ.

  8. 01:28

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

  9. 01:40

    Как и у всякого уважающего себя компьютера, когда он подключён к сети, у него есть свой адрес IP. 123031 — таков адрес IP у нашего сервера.

  10. 01:50

    Так вот, на сервере работают программы, которые являются программами для сервера. Сервер отличается тем, что на нём просто работают особые программы. Вот и всё, что качественно отличает сервер от рабочей станции, от клиента.

  11. 02:05

    Например, на нашем сервере может работать программа, которая называется WebServer. То есть этот сервер даёт услуги веб-сайта. К нему можно подключиться и полазить на веб-сайте, который на нём.

  12. 02:16

    Или пример ещё одной программы для сервера — это FTP-сервер. Склад файлов, куда их можно закачивать и откуда их можно скачивать. И это всё организует серверская программа FTP.

  13. 02:27

    Или возьмём другой пример менее стандартный. Программа для сервера, которая поддерживает какой-то игровой мир.

  14. 02:33

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

  15. 02:47

    Подключаются через интернет. А что такое клиент? Это тоже компьютер. Если он подключен к сети, у него тоже есть свой адрес IP, в нашем примере это такой, 64001.

  16. 02:58

    И догадайтесь в трёх раз, какая же особенность клиента. Что его отличает от сервера? Совершенно верно, на клиенте работают программы, характерные для клиента.

  17. 03:07

    Сервер гоняет через свой процессор программы для сервера, а клиент — программы для клиента. Например, клиентская программа, которая умеет разговаривать с веб-сервером — это веб-браузер.

  18. 03:18

    Например, Chrome, Internet Explorer, Firefox — это всё клиентские программы. А если я хочу скачать или закачать файлы с FTP-сервера, то мне, соответственно, нужна клиентская программа для FTP.

  19. 03:30

    Например, я люблю программу Total Commander, которая умеет состыковаться с серверской программой для FTP-сервера Filezilla. А, например, клиент какой-нибудь компьютерной игры — это, собственно, то, что вы покупаете в магазине как геймер.

  20. 03:44

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

  21. 03:57

    всего игрового мира. Вот что такое клиент и вот что такое сервер. Теперь мы можем вернуться к номерам портов.

  22. 04:03

    Допустим, что клиент 1, C1, хочет отправить какую-то информацию. Назовём это дата, принадлежащая C1. Он это хочет отослать серверу и получить от него ответ.

  23. 04:15

    Допустим, там веб-сервер, и клиент послал запрос: "Дай мне веб-страничку". И в то же время C3 тоже хочет послать информацию серверу. Data C3. Он это посылает той же самой машине.

  24. 04:27

    Но на этой машине, на этом сервере, установлена также программа FTP Server. И C3 домогается именно туда. На двух клиентах работают два клиентских приложения.

  25. 04:37

    Веб-браузер на одном, а на другом Total Commander. И они создали свою информацию для отправки в верхних уровнях OSI. и спустили это на транспортный уровень.

  26. 04:47

    А на транспортном уровне, помните, у нас есть два протокола, которые умеют передавать информацию. Я говорю о протоколах TCP и UDP. TCP служит для надёжной связи, а UDP — для связи в реальном времени.

  27. 05:00

    В нашем случае мы хотим получить интернет-страничку и файлы через FTP, и поэтому нам нужен TCP. Наши клиентские приложения выберут использовать TCP, потому что и получить файлы мы хотим без погрешностей.

  28. 05:15

    без искажений, и интернет-странички тоже. Итак, на 4 уровне выбран TCP. Всё упаковано и спущено на более нижние уровни – OSI. На 3 уровне наши посылки получат указание адресов IP.

  29. 05:29

    Посылки обоих наших клиентов получат одно и то же поле адресат с точки зрения адреса IP. Оба запроса пойдут к адресу IP 12 30 31, потому что это IP-адрес нашего FTP-сервера и веб-сервера.

  30. 05:42

    Поэтому именно этот адрес будет указан в поле IP-адрес получателя, и информация пойдёт передаваться по сети и попадёт в наш сервер.

  31. 05:51

    Сервер откроет посылки, увидит, что это для его IP-адреса, и посылки попадут в четвёртый уровень, в TCP. И тут сервер задастся таким вопросом:

  32. 06:01

    «Эй, у меня тут есть информация от C1». Для какого сервера эта посылка? Для моего FTP-сервера или для моего веб-сервера? Или же вовсе для моего сервера, на котором творится компьютерная игра?

  33. 06:14

    На мне ведь установлены 3 программы сервера. А также я тут вижу, что C3 мне тоже послал какой-то запрос, какие-то данные. Куда это он послал?

  34. 06:23

    В веб-сервер, в FTP-сервер или в сервер компьютерной игры? На мне работают 3 разных сервера, откуда я знаю, к какому серверу предназначается запрос.

  35. 06:33

    Какой программе-серверу я должен передать эту информацию и какой программе-серверу я должен передать эту информацию.

  36. 06:40

    А теперь догадайтесь трёх раз, как компьютер ответит себе на этот вопрос. Верно! Правильный ответ — это номера портов. И это как раз и есть роль номеров портов.

  37. 06:52

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

  38. 07:00

    Обозначать, что определённая посылка направляется к веб-серверу. И обозначить, что иная информация направлена к серверу FTP. Чтобы у каждого запроса обозначить, к какой программе он направляется.

  39. 07:13

    И это делается с помощью просто указания номера. Это и называется номер порта. Например, когда на нашем сервере мы включили программу веб-сервер, она объявила, что мой номер порта — это 80.

  40. 07:25

    Если хотите что-то послать мне, укажите номер порта 80. И когда C1 хочет послать веб-серверу какой-то запрос, какую-то посылку, то он должен добавить в сегменте TCP, тут на уровне 4, на 4 уровне OSI он должен добавить, что это адресуется к порту 80.

  41. 07:43

    И компьютер-получатель, который по адресу 123031, поймет, что данные C1 предназначены для веб-сервера, который работает на нем, на сервере.

  42. 07:54

    Его веб-сервер прослушивает порт 80. А программа FTP-сервер, когда мы ее запустили, зарезервировала для себя порт 21. FTP-сервер сказал, что он хочет порт 21.

  43. 08:06

    Если кто-то присылает информацию для порта 21, то это мне. Если кто-то хочет послать что-то мне, то пусть укажет, что это для порта 21. И когда посылка попадет в 12.30.31, то тамошний компьютер сможет направить информацию именно в FTP-сервер.

  44. 08:23

    А наш игровой сервер, когда мы его запустили, сказал, что он хочет порт. Тут у нас пример нестандартного порта. Допустим, игровой сервер захотел порт 27001.

  45. 08:34

    Это не маленький номер, который все зарезервированы жестко и стандартно на уровне Общемирового соглашения. Авторы же нашего игрового сервера просто выбрали какой-то номер порта.

  46. 08:46

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

  47. 09:03

    И вообще есть ещё очень много приложений, есть, например, DNS-сервер. Он получит номер порта 53, а, например, SSH получит 22, а Telnet получит 21, а IMAP для скачивания почты получит 143, если я не ошибаюсь.

  48. 09:19

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

  49. 09:31

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

  50. 09:46

    На компьютере C1 пользователь открыл веб-браузер и отправил запрос к 123031 получить страничку интернета.

  51. 09:54

    И когда он открыл веб-браузер, веб-браузер случайным образом выбрал себе номер порта, который он будет прослушивать. Допустим, он выбрал номер 1027 и сказал веб-браузере:

  52. 10:06

    «1027 — это будет мой номер порта». Лектор пишет на иврите «web-браузер». Зачем же нужен этот номер 1027? А именно на этот номер порта будет возвращать сервер, запрошенную страничку интернета.

  53. 10:19

    Множество разных посылок, разных информаций могут прийти на компьютер C1. Но только та информация, которая предназначена для порта 1027, попадёт в веб-браузер на компьютере C1.

  54. 10:31

    А на компьютере C3 пользователь включил какую-то клиентскую программу, которая общается с FTP-сервером. И его FTP-клиент случайно получил номер порта, допустим, 2032, потому что в тот момент на компьютере C3 это был свободный порт.

  55. 10:45

    И когда наш FTP-сервер даст свой ответ, компьютер, у которого IP 64002, то этот ответ попадёт в программу FTP-клиент, которая ждёт за портом 2032.

  56. 11:00

    И только эта программа, связанная с портом 2032, получит ту информацию, ответ FTP-сервера. Я надеюсь, теперь стало ясно, что такое номера портов и зачем они нужны.

  57. 11:11

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

  58. 11:19

    Допустим, на нашем сервере сейчас работают

Полный курс: Курс техников Windows

Предыдущая лекция: Proxy

Следующая лекция: Углублённый урок о TCP и UDP

Похожие лекции из других курсов

  • Модель TCP/IP - TCP и UDP - сравнение
  • Сканирование портов - UDP

Другие курсы этого направления

  • Курс системных администраторов - MCSE / MCSA / MCTIP
  • Системный администратор - Учимся за 3 минуты
  • Собеседование - Системный администратор