Как использовать TCP- и UPD-порты: таблица номеров портов

Всем привет! В интернете полно статей про сетевые порты, но очень мало где используется нормальный человеческий язык. Именно поэтому я решил написать свою подробную статью по разбору этой темы. Давайте для начала ответим на вопрос – а что же такое сетевой порт в компьютере и информатике в целом.

Определение

Лучше всего расскажу на примере. Представим себе, что у вас есть компьютер, который уже подключен к интернету. У данного компьютера есть свой IP адрес, который определяет его среди множества других сетевых устройств, находящихся в интернет пространстве.

Как использовать TCP- и UPD-порты: таблица номеров портов

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

Но тут встаёт небольшая проблема, когда пакет информации доходит, компьютер или сервер не понимает – в каком приложении его открывать?! Вот за данную функцию частично и отвечают порты. Например, пользователь сделал запрос в интернете на определенный сайт. Далее пакет данных доходит до сервера, на котором работает одновременно много системных служб и программ.

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

Как использовать TCP- и UPD-порты: таблица номеров портов

Если говорить грубо, то IP (в нашем примере) – это адрес дома. Но когда почтальон приходит к дому, он не знает в какую квартиру отнести письмо. И вот порт – это и есть номер квартиры. На данный момент существует определенное число портов – 65 535. Вы можете заметить аналогию с многоквартирным домом, по сути в каждом доме есть определенное количество квартир.

Некоторые порты компьютера могут быть открыты или закрыты в зависимости от настроек системы. Также некоторые приложения открывают свои порты или используют смежные. Также не забываем, что для передачи информации по сети используется модель TCP/IP или UDP. Ещё один пример, который сможет более точно объяснить – для чего же нужны сетевые порты на компьютере.

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

Интернет у него подключен напрямую к системному блоку.

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

Вот тут и будет вступать в силу порт. В данном случае чаще всего используется номера: 80 или 8080. Именно поэтому Вася должен на своем компьютере открыть локальный порт для своего сайта.

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

Потому что почему-то нигде толкового объяснения нет, а многие оперируют сложными техническими понятиями.

Номера портов

И так товарищ, ты теперь почти просветлел и понял – что же такое порт. Теперь же давайте поговорим про понятие «номер порта». Как я уже и говорил, в каждом компьютере, сервере, маршрутизаторе существует ровно 65 535 портов. Конечно, используются они не все и есть свободные «адреса».

С 0 до 1023-го – это зарезервированные «квартиры» для систем как Windows, так и Linux. Насчет Mac OS сказать не могу, с данной ОС не работал. Далее с 1024 по 49151 идут свободно используемые входы. То есть их могут использовать отдельные приложения, утилиты или даже системные службы. Некоторые программы могут одновременно использовать один и тот же номер.

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

Но со временем за определенными портами закрепились отведенные службы. Вот пример нескольких из них:

  • 20, 21: FTP
  • 22: SSH
  • 23: Telnet
  • 25: SMTP
  • 43: WHOIS
  • 53: DNS
  • 67, 68: DHCP
  • 80: HTTP (Веб-port)
  • 110: POP3
  • 113: аутентификация в IRC
  • 143: IMAP
  • 161: SNMP
  • 194: IRC
  • 389: LDAP
  • 443: HTTPS
  • 587: SMTP
  • 631: CUPS

Чаще всего обычный пользователь не задумывается о пробросе, открытии или закрытии портов. Этим занимается сама операционная система, а в частности Брандмауер.

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

Некоторые программы используют сразу несколько.

ПРИМЕЧАНИЕ! Портовая конфигурация также есть у роутеров и провайдера.

Просмотр открытых и закрытых портов

Чтобы посмотреть все входные номера, которые используются, заблокированы или ждут своей очереди – можно через консоль. В Windows достаточно зайти в командную строку: для этого нажимаем на кнопки и R и прописываем команду «cmd». Далее нужно будет ввести:

netstat -a

Как использовать TCP- и UPD-порты: таблица номеров портов

В Kali Linux прописываем другую команду:

less /usr/share/nmap/nmap-services

Для удобства я все же советую использовать удобную программку «Process and port analyzer». Она в более удобном виде выводит все задействованный список портов на данном устройстве. Вы можете посмотреть зарезервированные, свободные и используемые номера.

Как использовать TCP- и UPD-порты: таблица номеров портов

Таблица портов

Открытие и закрытие

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

Для начала вам нужно определиться с тем – какой «вход» вы хотите открыть и для чего. Номер и название приложение вы можете посмотреть в том PDF файле, который я прикрепил выше. Покажу на примере игры World of Warcraft.

Будем открывать официально зарезервированный номерной «вход» – 3724. Вообще в играх чаще всего используется именно UDP порт, который работает в потоковой передаче данных.

Но вам нужно смотреть именно в столбец с портом: там будет подсказка, какой протокол надо использовать в выбранном приложении (TCP или UDP).

  1. В Windows нужно открыть меню «Пуск» и перейти в «Панель управления».
  2. Заходим в «Брандмауэр»

Как использовать TCP- и UPD-порты: таблица номеров портов

  1. «Дополнительные параметры»

Как использовать TCP- и UPD-порты: таблица номеров портов

  1. Слева в окне нажимаем «Правила для входящих подключений». Вы сразу тут увидите очень много правил под каждое установленное приложение.

Как использовать TCP- и UPD-порты: таблица номеров портов

  1. В окошке справа выбираем «Создать правило…». Так как мы будем открывать порт для игры, то выбираем вторую галочку.

Как использовать TCP- и UPD-порты: таблица номеров портов

  1. Создаем UDP правило и вводим только номер, указанные в том PDF файлике – в моем случае это: 3724 (я показываю на примере игры WOW у вас может быть совершенно другой номер). Вы также можете указать диапазон номеров. Для TCP и UDP лучше создать два правила отдельно.

Как использовать TCP- и UPD-порты: таблица номеров портов

  1. Оставляем значение по умолчанию «Разрешить подключение».

ПРИМЕЧАНИЕ! Таким образом вы можете закрыть определенный «вход», выбрав «Блокировать подключение».

Как использовать TCP- и UPD-порты: таблица номеров портов

  1. Далее идут правила профилей – можно оставить все. Самое главное, чтобы при подключении к удаленному ресурсу через интернет был включен «Публичный» профиль.
  1. В самом конце вводим название и описание. В название я советую добавлять номер порта, который вы открыли, чтобы потом его не потерять.
Читайте также:  Как зарегистрировать домен для сайта бесплатно

Проброс

Открытие и проброс портов – это разные вещи, хоть некоторые их и путают. Когда вы открываете какой-то «вход», то вы делаете это на конкретном устройстве – например, на своём компьютере.

Проброс портов – обычно делается на сетевом шлюзе, который из внешней сети принимает какой-то запрос от пользователя. Далее он или разрешает данный запрос, или запрещает.

Чаще всего если порт не проброшен, то идет точный запрет, и пользователь не получит ответа.

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

Чтобы просматривать камеру через интернет, отдыхая на Бали или во Вьетнаме, нужно пробросить порт. После проброса, чтобы попасть на камеру, нужно будет зайти в браузер, ввести внешний IP адрес вместе с проброшенным номером, и тогда можно увидеть изображение с камеры.

По пробросу у нас уже есть отдельные инструкции на сайте:

  • D-Link
  • ASUS
  • TP-Link
  • Tenda
  • Upvel
  • ZyXEL Keenetic

Если у вас ещё остались вопрос или есть дополнения, то пишите в х.

Сети и системы передачи информации

10100000.01010001.00000101.10000011 = 160.81.5.131

Как использовать TCP- и UPD-порты: таблица номеров портов

Перевод адреса из двоичной системы в десятичную

IP-адрес хоста состоит из номера IP-сети, который занимает старшую область адреса, и номера хоста в этой сети, который занимает младшую часть.

160.81.5.131 — IP-адрес

160.81.5. — номер сети

  • 131 — номер хоста
  • Базовые протоколы (IP, TCP, UDP)
  • Стек протоколов TCP/IP 
  • TCP/IP — собирательное название для набора (стека) сетевых протоколов разных уровней, используемых в Интернет. Особенности TCP/IP:
  • Открытые стандарты протоколов, разрабатываемые независимо от программного и аппаратного обеспечения;
  • Независимость от физической среды передачи;
  • Система уникальной адресации;
  • Стандартизованные протоколы высокого уровня для распространенных пользовательских сервисов.

Как использовать TCP- и UPD-порты: таблица номеров портов

Стек протоколов TCP/IP

Стек протоколов TCP/IP делится на 4 уровня:

  • Прикладной,
  • Транспортный,
  • Межсетевой,
  • Физический и канальный.

Позже была принята 7-ми уровневая модель ISO.

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

Как использовать TCP- и UPD-порты: таблица номеров портов

Пример инкапсуляции пакетов в стеке TCP/IP

Физический и канальный уровень.

Стек TCP/IP не подразумевает использования каких-либо определенных протоколов уровня доступа к среде передачи и физических сред передачи данных. От уровня доступа к среде передачи требуется наличие интерфейса с модулем IP, обеспечивающего передачу IP-пакетов.

Также требуется обеспечить преобразование IP-адреса узла сети, на который передается IP-пакет, в MAC-адрес. Часто в качестве уровня доступа к среде передачи могут выступать целые протокольные стеки, тогда говорят об IP поверх ATM, IP поверх IPX, IP поверх X.25 и т.

п.

  1. Межсетевой уровень и протокол IP.
  2. Основу этого уровня составляет IP-протокол.
  3. IP (Internet Protocol) – интернет протокол.
  4. Первый стандарт IPv4 определен в RFC-760 (DoD standard Internet Protocol J. Postel Jan-01-1980)

Последняя версия IPv4 — RFC-791 (Internet Protocol J. Postel Sep-01-1981).

Первый стандарт IPv6 определен в RFC-1883 (Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden December 1995)

Последняя версия IPv6 — RFC-2460 (Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden December 1998).

Основные задачи:

  • Адресация
  • Маршрутизация
  • Фрагментация датаграмм
  • Передача данных
  • Протокол IP доставляет блоки данных от одного IP-адреса к другому.
  • Программа, реализующая функции того или иного протокола, часто называется модулем, например, “IP-модуль”, “модуль TCP”.
  • Когда модуль IP получает IP-пакет с нижнего уровня, он проверяет IP-адрес назначения.
  • Если IP-пакет адресован данному компьютеру, то данные из него передаются на обработку модулю вышестоящего уровня (какому конкретно — указано в заголовке IP-пакета).
  • Если же адрес назначения IP-пакета — чужой, то модуль IP может принять два решения: первое — уничтожить IP-пакет, второе — отправить его дальше к месту назначения, определив маршрут следования — так поступают маршрутизаторы.

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

Если модуль IP по какой-либо причине не может доставить IP-пакет, он уничтожается.

При этом модуль IP может отправить компьютеру-источнику этого IP-пакета уведомление об ошибке; такие уведомления отправляются с помощью протокола ICMP, являющегося неотъемлемой частью модуля IP.

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

Как использовать TCP- и UPD-порты: таблица номеров портов

Структура дейтограммы IP. Слова по 32 бита.

Версия — версия протокола IP (например, 4 или 6)

Длина заг. — длина заголовка IP-пакета.

Тип сервиса (TOS — type of service) — Тип сервиса (подробнее рассмотрен в лекции 8).

TOS играет важную роль в маршрутизации пакетов. Интернет не гарантирует запрашиваемый TOS, но многие маршрутизаторы учитывают эти запросы при выборе маршрута (протоколы OSPF и IGRP).

  1. Идентификатор дейтаграммы, флаги (3 бита) и указатель фрагмента — используются для распознавания пакетов, образовавшихся путем фрагментации исходного пакета.
  2. Время жизни (TTL — time to live) — каждый маршрутизатор уменьшает его на 1, что бы пакеты не блуждали вечно.
  3. Протокол — Идентификатор протокола верхнего уровня указывает, какому протоколу верхнего уровня принадлежит пакет (например: TCP, UDP).
  4. Коды некоторые протоколов RFC-1700 (1994)
Код Протокол Описание
Зарезервировано
1 ICMP Протокол контрольных сообщений
2 IGMP Групповой протокол управления
4 IP IP-поверх-IP (туннели)
6 TCP Протокол управления передачей
8 EGP Протокол внешней маршрутизации
9 IGP Протокол внутренней маршрутизации
17 UDP Протокол дейтограмм пользователя
35 IDRP Междоменный протокол маршрутизации
36 XTP Xpress транспортный протокол
46 RSVP Протокол резервирования ресурсов канала
88 IGRP внутренний протокол маршрутизации
89 OSPFIGP внутренний протокол маршрутизации
97 ETHERIP Ethernet-поверх-IP
101-254 не определены
255 зарезервировано
  • Маршрутизация.
  • Протокол IP является маршрутизируемый, для его маршрутизации нужна маршрутная информация.
  • Маршрутная информация, может быть:
  • Статической (маршрутные таблицы прописываются вручную)
  • Динамической (маршрутную информацию распространяют специальные протоколы)

Протоколы динамической маршрутизации:

  • RIP (Routing Information Protocol) — протокол передачи маршрутной информации, маршрутизаторы динамически создают маршрутные таблицы.
  • OSPF (Open Shortest Path First) — протокол «Открой кротчайший путь первым», является внутренним протоколом маршрутизации.
  • IGP (Interior Gateway Protocols) — внутренние протоколы маршрутизации, распространяет маршрутную информацию внутри одной автономной системе.
  • EGP (Exterior Gateway Protocols) — внешние протоколы маршрутизации, распространяет маршрутную информацию между автономными системами.
  • BGP (Border Gateway Protocol) — протокол граничных маршрутизаторов.
  1. Протокол ICMP
  2. ICMP (Internet Control Message Protocol) — расширение протокола IP, позволяет передавать сообщения об ошибке или проверочные сообщения.
  3. Другие служебные IP-протоколы
  4. IGMP (Internet Group Management Protocol) — позволяет организовать многоадресную рассылку средствами IP.
  5. RSVP (Resource Reservation Protocol) — протокол резервирования ресурсов.
  6. ARP (Address Resolution Protocol) — протокол преобразования IP-адреса и адреса канального уровня.
  7. Транспортный уровень

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

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

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

  • На транспортном уровне работают два основных протокола: UDP и TCP.
  • Протокол надежной доставки сообщений TCP
  • TCP (Transfer Control Protocol) – протокол контроля передачи, протокол TCP применяется в тех случаях, когда требуется гарантированная доставка сообщений.
Читайте также:  Как грамотно продать или купить сайт, советы экспертов

Первая и последняя версия TCP — RFC-793 (Transmission Control Protocol J. Postel Sep-01-1981).

Основные особенности:

  • Устанавливается соединение.
  • Данные передаются сегментами. Модуль TCP нарезает большие сообщения (файлы) на пакеты, каждый из которых передается отдельно, на приемнике наоборот файлы собираются. Для этого нужен порядковый номер (Sequence Number — SN) пакета.
  • Посылает запрос на следующий пакет, указывая его номер в поле «Номер подтверждения» (AS). Тем самым, подтверждая получение предыдущего пакета.
  • Делает проверку целостности данных, если пакет битый посылает повторный запрос.

Как использовать TCP- и UPD-порты: таблица номеров портов

Структура дейтограммы TCP. Слова по 32 бита.

  1. Длина заголовка — задается словами по 32бита.
  2. Размер окна — количество байт, которые готов принять получатель без подтверждения.
  3. Контрольная сумма — включает псевдо заголовок, заголовок и данные.
  4. Указатель срочности — указывает последний байт срочных данных, на которые надо немедленно реагировать.
  5. URG — флаг срочности, включает поле «Указатель срочности», если =0 то поле игнорируется.
  6. ACK — флаг подтверждение, включает поле «Номер подтверждения, если =0 то поле игнорируется.
  7. PSH — флаг требует выполнения операции push, модуль TCP должен срочно передать пакет программе.
  8. RST — флаг прерывания соединения, используется для отказа в соединении
  9. SYN — флаг синхронизация порядковых номеров, используется при установлении соединения.
  10. FIN — флаг окончание передачи со стороны отправителя
  11. Протокол UDP
  12. UDP (Universal Datagram Protocol) универсальный протокол передачи данных, более облегченный транспортный протокол, чем TCP.

Первая и последняя версия UDP — RFC-768 (User Datagram Protocol J. Postel Aug-28-1980).

Основные отличия от TCP:

  • Отсутствует соединение между модулями UDP.
  • Не разбивает сообщение для передачи
  • При потере пакета запрос для повторной передачи не посылается

UDP используется если не требуется гарантированная доставка пакетов , например, для потокового видео и аудио, DNS (т.к. данные небольших размеров).

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

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

Как использовать TCP- и UPD-порты: таблица номеров портов

Структура дейтограммы UDP. Слова по 32 бита.

Не все поля UDP-пакета обязательно должны быть заполнены. Если посылаемая дейтаграмма не предполагает ответа, то на месте адреса отправителя могут помещаться нули.

Протокол реального времени RTP

RTP (Real Time Protocol) — транспортный протокол для приложений реального времени.

RTCP (Real Time Control Protocol) — транспортный протокол обратной связи для приложения RTP..

  • Назначение портов
  • По номеру порта транспортные протоколы определяют, какому приложению передать содержимое пакетов.
  • Порты могут принимать значение от 0-65535 (два байта 2^16).
  • Номера портам присваиваются таким образом: имеются стандартные номера (например, номер 21 закреплен за сервисом FTP, 23 — за telnet, 80 — за HTTP), а менее известные приложения пользуются произвольно выбранными локальными номерами (как правило, больше>1024), некоторые из них также зарезервированы.
  • Некоторые заданные порты RFC-1700 (1994)

43%

Порт Служба Описание
Зарезервировано
13 Daytime Синхронизация времени
20 ftp-data Канал передачи данных для FTP
21 ftp Передача файлов
23 telnet Сетевой терминал
25 SMTP Передача почты
37 time Синхронизация времени
43 Whois Служба Whois
53 DNS Доменные имена
67 bootps BOOTP и DHCP — сервер
68 bootps BOOTP и DHCP — клиент
69 tftp Упрощенная передача почты
80 HTTP Передача гипертекста
109 POP2 Получение почты
110 POP3 Получение почты
119 NNTP Конференции
123 NTP Синхронизация времени
137 netbios-ns NETBIOS — имена
138 netbios-dgm NETBIOS Datagram Service
139 netbios-ssn NETBIOS Session Service
143 imap2 Получение почты
161 SNMP Протокол управления
210 z39.50 Библиотечный протокол
213 IPX IPX — протокол
220 imap3 Получение почты
443 HTTPs HTTP с шифрованием
520 RIP Динамическая маршрутизация
Диапазон 1024-65535
1024 Зарезервировано
6000-6063 X11 Графический сетевой терминал
  1. Программа Ping
  2. Программа для проверки соединения и работы с удаленным хостом.
  3. Программа TraceRoute — позволяет проверитьмаршрут до удаленного хоста.
  4. Программа nmap — позволяет сканировать порты.
  5. Работу порта, также можно проверить с помощью telnet.

Последнее изменение: Понедельник, 10 Апрель 2017, 14:40
2. Лекция — Статическая маршрутизация. ►

Пропустить Люди

  • Садыков Александр Мунирович
  • Богомолов Владислав Афанасьевич

Просмотр списка участников запрещен в этом курсе Пропустить Категории курсов

TCP

Как упоминалось в самом начале, на транспортном уровне присутствуют два протокола – TCP и UDP. TCP используется для гарантированной передачи данных, в то время как UDP используется для передачи потоковых данных.

Функции TCP

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

Использование портов

TCP и UDP используют порты, которые в свою очередь, делятся на зарезервированные порты и динамические:

  • с 1 по 1023 – зарезервированные порты (well-known ports, общеизвестные или системные, пример в таблице 5.1);
  • с 1024 по 49151 – зарезервированные порты (пользовательские);
  • с 49152 по 65535 – динамически распределяемые порты.

Таблица 5.1 Список зарезервированных портов

Номер портаПротокол Транспортного УровняПротокол Уровня Приложений

20,21 TCP FTP
22 TCP SSH
23 TCP Telnet
53 TCP,UDP DNS
67,68 UDP DHCP
69 UDP TFTP
80 TCP HTTP
443 TCP HTTPS

Чтобы лучше понять, что такое порты и как их “едят”, разберем пример соединений с использованием портов.

Наверно, самое часто используемое приложение – браузер. Часто мы открываем несколько “вкладок” с одним и тем же сайтом, и у каждой вкладки должно быть отличие, по которому компьютер сможет определить какой вкладке предназначены приходящие данные.

Как использовать TCP- и UPD-порты: таблица номеров портовРисунок 5.1 Передача данных с использованием портов

Компьютер Андрея запросил с веб-сервера три веб-страницы (открыл три “вкладки” в браузере). На рисунке 5.1, Веб-сервер отправляет пакеты с одинаковыми заголовками (в заголовках одинаковые IP адреса), но заголовки сегментов различаются ( обратите внимание на порт отправителя (S_PORT) и порт получателя (D_PORT)).

Изначально компьютер Андрея привязал к каждому соединению определенный порт, который был определен случайным образом из динамически распределяемого диапазона (от 49152 по 65535), а обратился он на зарезервированный порт 80 (HTTP).

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

Как использовать TCP- и UPD-порты: таблица номеров портовРисунок 5.2 Схематичное представление соединений
На заметку. TCP и UDP могут устанавливать соединения с одинаковыми номерами портов, но при этом они будут считаться разными соединениями, так например, порт UDP 69 и порт TCP 69 – это два различных соединения.

Сегментация

Сегментация – разбивание данных на сегменты.

Прежде чем данные будут переданы по сети они должны быть разбиты на сегменты, обычно не превышающие 1460 байт.

Например, вы хотите передать видео файл размером 200Кбайт. Видео не будет передаваться одним целым файлом, оно будет разбито на сегменты, после чего по сети будут передаваться около 137 сегментов (200 000/1460~137).

Читайте также:  Как загрузить сайт на хостинг

Установление соединений

Устанавливаются соединения в 3 сообщения, рисунок 5.3.

Как использовать TCP- и UPD-порты: таблица номеров портовРисунок 5.3 Установка соединения TCP

  1. TCP устанавливает порт для приложения (для клиента, чаще всего, он находится случайным образом из диапазона от 49152 по 65535, в нашем примере, Source PORT 61734), определяет порт получателя/сервера (Destination PORT 80), случайно выставляет номер сегмента ( SEQuence 300, каждый передаваемый сегмент имеет порядковый номер) и устанавливает параметр SYN (SYNchronization – этот параметр означает инициализацию соединения) в одно из полей заголовка сегмента (напомню, что в каждом заголовке много разных полей – настроек, с помощью которых осуществляется одноуровневое взаимодействие). Такой сегмент приходит на сервер, который просматривает все, что приходит на 80-й порт.
  2. Сервер формирует ответный сегмент, где он так же указывает порты отправителя и получателя. Но на этом шаге он указывает свой номер сегмента (случайно подобранный, SEQ 900), параметр SYN и новый параметр ACK (ACKnowledgment) – это подтверждение. В нашем примере параметр ACK равен 301, тем самым сервер подтверждает получение сегмента с номером 300, и ожидает получения сегмента с порядковым номером 301.
  3. Третьим сообщением является ответ клиента на сегмент сервера, в нем указывается следующий порядковый номер (SEQ=301, а был SEQ=300) и подтверждается получение предыдущего сегмента от сервера (ACK=901, подтверждает получение сегмента SEQ=900).

После этих трех сообщений соединение считается установленным, и клиент отправляет запрос на получение данных с сервера.

Завершаются соединения в четыре сегмента, здесь этот процесс рассмотрен не будет.

Восстановление после ошибок

Восстановление данных осуществляется за счет подтверждений (а обнаружение ошибок происходит на канальном уровне, за счет FCS).

Как использовать TCP- и UPD-порты: таблица номеров портовРисунок 5.4 Восстановление данных

На рисунке 5.4 изображена передача сегментов, и 3-й сегмент не приходит получателю. Введем некоторое пояснение, SEQ, помимо номера сегмента, обозначает количество переданных байт, например, первый сегмент 1400 байт, второй сегмент имеет такой же размер, но номер его 2800, он означает, что при получении этого сегмента будет передано уже 2800 байт. Вернемся к нашему примеру, веб-сервер передает не сразу все сегменты, а по частям, ожидая подтверждения каждой части. Так например, если бы передача прошла успешно, веб сервер бы получил ACK=7000. В нашем примере 3-й сегмент потерялся, поэтому клиент отправляет подтверждение ACK=4200 (как бы спрашивая у сервера, “Где сегмент №4200?”), а сервер это будет трактовать как сегмент с номером 4200 был потерян, и веб-сервер отправляет его еще раз. Вот так и осуществляется восстановление данных после ошибок.

Управление потоком с использованием окон

Окно, в понятии TCP – количество сегментов передаваемых до подтверждения. Окно может менять свой размер, уменьшаться (сужаться), т.е. уменьшать кол-во передаваемых сегментов, при возникновении ошибок и расширяться при успешной передаче данных, т.е. увеличивать количество передаваемых сегментов.

Максимальная единица передаваемых данных (MTU)

Maximum Transmission Unit – это максимальный размер пакета, который может быть передан, без дробления на более мелкие пакеты. Этой величиной может управлять транспортный уровень, за счет увеличения или уменьшения сегмента.

Если вы нашли в тексте ошибку, выделите текст и нажмите Ctrl + Enter

ID: 113 Created: Oct 19, 2016 Modified Oct 07, 2019

Самые популярные номера портов TCP и UDP

Протокол управления передачей (TCP) использует набор каналов связи, называемых портами, для управления системным обменом сообщениями между несколькими различными приложениями, работающими на одном физическом устройстве. В отличие от физических портов на компьютерах, таких как USB-порты или Ethernet-порты, TCP-порты являются виртуально программируемыми записями, пронумерованными от 0 до 65535.

Большинство портов TCP являются каналами общего назначения, которые могут вызываться при необходимости, но в остальном бездействуют. Однако некоторые порты с меньшими номерами предназначены для определенных приложений. Хотя многие TCP-порты принадлежат приложениям, которые больше не существуют, некоторые из них очень популярны.

TCP порт 0

TCP фактически не использует порт 0 для сетевого взаимодействия, но этот порт хорошо известен сетевым программистам. Программы сокетов TCP используют порт 0 по соглашению, чтобы запросить доступный порт, который будет выбран и выделен операционной системой. Это избавляет программиста от необходимости выбирать («жесткий код») номер порта, который может не сработать в данной ситуации.

TCP-порты 20 и 21

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

TCP-порт 22

Secure Shell использует порт 22. Серверы SSH прослушивают на этом порту входящие запросы на вход от удаленных клиентов.

Из-за характера такого использования порт 22 любого общедоступного сервера часто проверяется сетевыми хакерами и является предметом тщательного изучения в сообществе по сетевой безопасности.

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

TCP-порт 23

Порт 23 управляет telnet , текстовой системой для входа в удаленные системы. Хотя современные подходы к удаленному доступу основаны на Secure Shell на порте 22, порт 23 остается зарезервированным для более старого и менее безопасного приложения telnet.

TCP-порты 25, 110 и 143

Электронная почта опирается на несколько стандартных портов. Порт 25 управляет протоколом Simple Mail Transfer Protocol – инструментом, с помощью которого электронная почта на вашем компьютере направляется на почтовый сервер, а затем с этого сервера в более крупный Интернет для маршрутизации и доставки.

На принимающей стороне порт 110 управляет протоколом почтовой связи версии 3, а порт 143 выделен для протокола доступа к почте через Интернет. POP3 и IMAP контролируют поток электронной почты с сервера вашего провайдера на ваш почтовый ящик.

Безопасные версии SMTP и IMAP различаются в зависимости от конфигурации, но порты 465 и 587 являются общими.

UDP порты 67 и 68

Серверы протокола динамической конфигурации хоста используют UDP-порт 67 для прослушивания запросов, в то время как клиенты DHCP обмениваются данными через UDP-порт 68.

TCP-порты 80 и 443

Возможно, самый известный порт в Интернете – TCP-порт 80 – это значение по умолчанию, которое веб-серверы HyperText Transfer Protocol прослушивают для запросов веб-браузера.

Порт 443 по умолчанию для безопасного HTTP.

UDP-порт 88

Интернет-игра Xbox Live использует несколько разных номеров портов, включая UDP-порт 88.

UDP-порты 161 и 162

По умолчанию простой протокол управления сетью использует UDP-порт 161 для отправки и получения запросов в управляемой сети. Он использует UDP-порт 162 по умолчанию для получения прерываний SNMP от управляемых устройств.

TCP-порт 194

Несмотря на то, что такие инструменты, как приложения для обмена сообщениями на смартфонах, такие как Slack и Microsoft Teams, стали использовать Internet Relay Chat, IRC по-прежнему пользуется популярностью среди людей по всему миру. По умолчанию IRC использует порт 194.

Порты выше 1023

Номера портов TCP и UDP между 1024 и 49151 называются зарегистрированными портами . Управление по присвоению номеров в Интернете ведет список услуг, использующих эти порты, чтобы минимизировать конфликты при использовании.

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

Ссылка на основную публикацию