Tcp udp порты что это

Что такое TCP- и UPD-порты

Сервисы и порты

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

Каждая приходящая на сервер порция данных предназначена для обработки определенным сервисом.

Для того, чтобы сетевая подсистема сервера различала данные, адресованные определенным сервисам, и правильно распределяла их, в протокол TCP/IP было введено понятие номера порта.

Пакеты данных и их заголовки

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

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

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

Tcp udp порты что это. dcc7dc31b09ea914c27629518ef21a7d. Tcp udp порты что это фото. Tcp udp порты что это-dcc7dc31b09ea914c27629518ef21a7d. картинка Tcp udp порты что это. картинка dcc7dc31b09ea914c27629518ef21a7d

Распределение пакета данных IP по сервисам в соответствии с номером порта

TCP- и UDP-порты

Порты используются протоколами TCP или UDP.

Протокол UDP предназначен для быстрой передачи порции данных без гарантии доставки и без предварительной установки соединения.

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

Диапазоны портов

Номер порта может находиться в диапазоне от 0 до 65535. Как и другие используемые в сети Интернет ресурсы, номера портов стандартизированы. Все порты в диапазоне 1-1023 называются “системными портами” и распределены, согласно списку, от координационного центра Internet организации IANA.

Порты в диапазоне 1024-49151 называются “пользовательскими”, и они предназначены для настройки дополнительных сервисов по выбору пользователя.

Оставшиеся порты из диапазона 49152-65535 называются “динамическими” и предназначены для использования операционной системой для установки соединений в рамках протокола TCP/IP.

Система Linux применяет в качестве динамических портов диапазон 32768-60999.

Список портов и протоколов

Технически администратор сервера может гибко настраивать используемые порты для каждого из запускаемых на сервере сетевых сервисов. Например, при желании он может изменить номер порта, на котором работает web-сервер, с 80 на 8080. Но при этом, если пользователи не знают, что номер порта изменен, то они не смогут присоединиться к web-серверу. Поэтому для публичных сетевых сервисов принято применять стандартные номера портов.

Если вы работаете с интернет-сервисами, то будет лучше выучить наизусть номера портов, используемых для наиболее часто встречающихся сервисов: HTTP, HTTPS, FTP, SSH, почтовых протоколов.

Таблица наиболее важных и распространенных номеров портов выглядит так:

Порты и URL

Номер порта можно указывать в ссылках на web-ресурсы, то есть в URL (Universal Resource Locator). Это делается с помощью двоеточия, за которым следует номер порта. Если используется стандартный порт протокола HTTP (80) или HTTPS (443), то тогда он не указывается в URL.

Пример URL с указанным номером порта: HTTP://www.myserver.ru:1500/manager

Как просмотреть список используемых портов на сервере

Для пользователей виртуальных и выделенных серверов может понадобиться просмотреть список применяемых на сервере портов TCP и UDP. Для этой задачи в операционной системе Linux имеется утилита Netstat.

Утилита Netstat работает из командной строки. Чтобы просмотреть список используемых для входящих соединений портов, прослушиваемых запущенными на сервере сетевыми сервисами, примените следующую команду:

Netstat выводит информацию в несколько колонок. Номер порта, на который принимаются соединения, можно увидеть в колонке “Local address”. Также в колонке “PID/Program name” можно увидеть, какая программа на сервере слушает конкретный порт.

Tcp udp порты что это. cf42aca8b9eb5cc1caa3c37813af47be. Tcp udp порты что это фото. Tcp udp порты что это-cf42aca8b9eb5cc1caa3c37813af47be. картинка Tcp udp порты что это. картинка cf42aca8b9eb5cc1caa3c37813af47be

Порты и безопасность сервера

Порты TCP и UDP используются для соединения с сервером, а значит, могут подвергаться атакам. Например, протокол SSH работает по умолчанию на порте 22, и злоумышленники часто ведут атаку на этот порт, пытаясь подобрать пароль от сервера.

Для повышения уровня безопасности вы можете изменить номер порта для SSH. Например, замените порт 22 на 2222.

1. Отредактируйте на сервере файл /etc/ssh/sshd_config.

Tcp udp порты что это. 376e23336153f57d113cffb50dafe29e. Tcp udp порты что это фото. Tcp udp порты что это-376e23336153f57d113cffb50dafe29e. картинка Tcp udp порты что это. картинка 376e23336153f57d113cffb50dafe29e

2. Найдите в файле строку “Port 22” и измените ее на “Port 2222”.

Tcp udp порты что это. 8bf615d36a7fca685658906face6ad25. Tcp udp порты что это фото. Tcp udp порты что это-8bf615d36a7fca685658906face6ad25. картинка Tcp udp порты что это. картинка 8bf615d36a7fca685658906face6ad25

3. Перезагрузите программу-сервис sshd командой:

Tcp udp порты что это. a8678f9f4899a9b2631503508f105f4f. Tcp udp порты что это фото. Tcp udp порты что это-a8678f9f4899a9b2631503508f105f4f. картинка Tcp udp порты что это. картинка a8678f9f4899a9b2631503508f105f4f

Теперь сервер будет принимать SSH-соединения по нестандартному порту 2222, который не известен злоумышленникам.

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

Выводы

1. TCP и UPD- протоколы транспортного уровня:

2. Для просмотра списка используемых на сервере портов TCP и UDP используйте утилиту Netstst в операционной системе Linux.

3. Номера портов сервисов HTTP, HTTPS, FTP, SSH и почтовых протоколов лучше выучить наизусть для более комфортной работы.

Источник

Как найти открытые и заблокированные порты TCP / UDP

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

Tcp udp порты что это. Title Image.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-Title Image.jpg.optimal. картинка Tcp udp порты что это. картинка Title Image.jpg.optimal

Что такое сетевой порт?

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

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

Tcp udp порты что это. Network.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-Network.jpg.optimal. картинка Tcp udp порты что это. картинка Network.jpg.optimal

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

Что такое порты TCP и UDP?

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

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

Tcp udp порты что это. Message in a Bottle.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-Message in a Bottle.jpg.optimal. картинка Tcp udp порты что это. картинка Message in a Bottle.jpg.optimal

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

TCP, с другой стороны, больше похож на телефонный звонок. Приемник должен «установить» соединение, и существует поток информации, пока кто-то намеренно не положит трубку.

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

Tcp udp порты что это. tcp ip. Tcp udp порты что это фото. Tcp udp порты что это-tcp ip. картинка Tcp udp порты что это. картинка tcp ip

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

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

Какие порты обычно открыты по умолчанию?

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

Tcp udp порты что это. Open Sign.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-Open Sign.jpg.optimal. картинка Tcp udp порты что это. картинка Open Sign.jpg.optimal

Порты 0-1023 связаны с некоторыми из наиболее важных и основных сетевых служб. Это имеет смысл, поскольку порты с меньшими номерами были назначены первыми. Например, протокол SMTP для электронной почты используется исключительно портом 25.

Порты 1024-49151 известны как «зарегистрированные порты» и назначаются важным общим службам, таким как OpenVPN на порт 1194 или Microsoft SQL на портах 1433 и 1434.

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

Tcp udp порты что это. port numbers.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-port numbers.jpg.optimal. картинка Tcp udp порты что это. картинка port numbers.jpg.optimal

Хотя невозможно перечислить все важные порты, эти общие порты полезно знать наизусть:

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

Найти открытые порты в Windows

Tcp udp порты что это. Binoculars.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-Binoculars.jpg.optimal. картинка Tcp udp порты что это. картинка Binoculars.jpg.optimal

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

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

Tcp udp порты что это. CMD 1.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-CMD 1.jpg.optimal. картинка Tcp udp порты что это. картинка CMD 1.jpg.optimal

Tcp udp порты что это. CMD 2.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-CMD 2.jpg.optimal. картинка Tcp udp порты что это. картинка CMD 2.jpg.optimal

Tcp udp порты что это. Netstat AB.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-Netstat AB.jpg.optimal. картинка Tcp udp порты что это. картинка Netstat AB.jpg.optimal

Сканирование для заблокированных портов

Tcp udp порты что это. Radar.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-Radar.jpg.optimal. картинка Tcp udp порты что это. картинка Radar.jpg.optimal

Это позволяет определить, какие порты используются и каким приложением, но не сообщает нам, какие порты активно блокируются брандмауэром Windows.

netsh firewall показать состояние

Tcp udp порты что это. Netsh Show.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-Netsh Show.jpg.optimal. картинка Tcp udp порты что это. картинка Netsh Show.jpg.optimal

Это отображение заблокированных и открытых портов согласно конфигурации вашего брандмауэра Windows.

Вы увидите примечание об устаревании этой команды, но новая команда не показывает нам информацию, которую мы хотим. Так что на данный момент использование команды «show state» по-прежнему является самым быстрым и простым способом получения информации о порте.

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

Tcp udp порты что это. Netstat Ano.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-Netstat Ano.jpg.optimal. картинка Tcp udp порты что это. картинка Netstat Ano.jpg.optimal

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

Полезные приложения для отображения статуса вашего порта

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

Tcp udp порты что это. SolarWinds.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-SolarWinds.jpg.optimal. картинка Tcp udp порты что это. картинка SolarWinds.jpg.optimal

SolarWinds требует, чтобы вы указали свое имя и данные, чтобы загрузить его, но вам решать, вносите ли вы свою реальную информацию в форму или нет. Мы опробовали несколько бесплатных инструментов, прежде чем остановиться на SolarWinds, но это был единственный инструмент, который работал правильно в Windows 10 и имел простой интерфейс.

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

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

Tcp udp порты что это. Can You See Me.jpg.optimal. Tcp udp порты что это фото. Tcp udp порты что это-Can You See Me.jpg.optimal. картинка Tcp udp порты что это. картинка Can You See Me.jpg.optimal

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

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

Вывод

Для большинства пользователей порты — это не то, о чем вам нужно беспокоиться. Они управляются вашей операционной системой, приложениями и сетевым оборудованием.

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

Источник

Как защитить порты TCP и UDP и почему некоторые из них опасны

На транспортном уровне модели TCP / IP у нас есть два типа протоколов: TCP и UDP. Оба они постоянно используются различными программами и протоколами прикладного уровня, такими как порт 80 и 443 для просмотра веб-страниц, порт 22 для протокола SSH или популярный порт 1194 для виртуальных частных сетей OpenVPN. Некоторые из этих портов весьма опасны, если мы не отфильтруем их правильно с помощью брандмауэр, потому что они могли проводить разные виды атак и даже взламывать наше оборудование. Сегодня в этой статье мы покажем вам, какие порты мы должны защищать, чтобы избежать проблем.

Что такое порты TCP и UDP?

Как в TCP, так и в UDP у нас есть в общей сложности 65535 доступных портов, у нас есть классификация в зависимости от используемого номера порта, поскольку некоторые порты обычно называются «известными», и они зарезервированы для определенных приложений, хотя есть много других портов. Они обычно используются различным программным обеспечением для связи как в локальной сети, так и через Интернет. У нас также есть зарегистрированные порты и временные порты.

Известные порты

Известные порты в диапазоне от порта 0 до 1023 регистрируются и назначаются Управлением по присвоению номеров Интернета (IANA). Например, в этом списке портов есть порт 20 для FTP-Data, порт 21 для FTP-Control, порт 22 для SSH, порт 23 для Telnet, порт 80 и 443 для Интернета (HTTP и HTTPS соответственно), а также почта. port среди многих других протоколов прикладного уровня.

Зарегистрированные порты

Зарегистрированные порты варьируются от порта 1024 до порта 49151. Основное отличие этих портов состоит в том, что разные организации могут делать запросы в IANA, чтобы предоставить им определенный порт по умолчанию, и он будет назначен для использования с определенным приложением. Эти зарегистрированные порты зарезервированы, и никакая другая организация не сможет зарегистрировать их снова, однако они обычно являются «частично зарезервированными», потому что, если организация прекращает их использовать, они могут быть повторно использованы другой компанией. Наглядным примером зарегистрированного порта является 3389, который используется для RDP-подключений к удаленному рабочему столу в Windows.

Эфемерные порты

Диапазон этих портов от 49152 до 65535, этот диапазон портов используется клиентскими программами, и они постоянно используются повторно. Этот диапазон портов обычно используется при передаче на известный или зарезервированный порт с другого устройства, такого как пассивный Интернет или FTP. Например, когда мы посещаем веб-сайт, порт назначения всегда будет 80 или 443, но порт источника (чтобы данные знали, как возвращаться) использует порт эпиметра.

Какие порты я должен особенно защищать?

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

Как мне правильно защитить порты?

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

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

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

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

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

Источник

Тема 4. Информационное и программное обеспечение сетей

Оглавление

Цель темы — сформировать представление о принципах работы и реализации в стеке TCP/IP транспортных и служебных протоколов передачи информационных данных через сеть. Реализуются эти протоколы программными средствами операционных систем.

В результате изучения темы студенты должны усвоить:

4.1. Протоколы транспортного уровня UDP и TCP

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

Следует дать пояснение терминам «процесс» и «приложение»: процесс в компьютере создается операционной системой после запуска на выполнение прикладного приложения.

4.1.1. Общие принципы работы протоколов UDP и TCP

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

Поскольку к одному транспортному протоколу могут обращаться множество прикладных процессов, то вводится условная адресация этих процессов в виде так называемых портов — точек доступа прикладных процессов к транспортному уровню. Номер порта однозначно определяет приложение в пределах одного компьютера, а набор из IP-адреса компьютера и номера порта, который называют сокетом, однозначно определяет приложение в составной сети. В обозначении сокета IP-адрес и номер порта разделяются двоеточием. Пример обозначения сокета: 10.112.0.2:80.

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

Существует два способа присвоения порта приложению — централизованный и локальный (динамический). Для централизованного способа используются номера портов от 0 до 1023, а для локального — все остальные: 1024—65 535.

Если процессы, запущенные на компьютере, представляют известные сетевые службы, например HTTP, DNS, FTP и т. п., то за ними закрепляются стандартные номера портов, которые еще называют хорошо известными номерами портов. Такое централизованное присвоение сетевым службам номеров портов выполняется организацией Internet Assigned Numbers Authority (IANA) и публикуется в Интернете. Например, номер 21 портов протокола TCP закреплен за службой файлового обмена FTP, а номер 80 — за службой HTTP.

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

Следует отметить, что как у протокола UDP, так и у протокола TCP отдельный набор номеров портов от 0 до 65 535, т. е., говоря о номере порта, следует указывать и протокол — TCP или UDP. Следовательно, в компьютере одновременно может использоваться по два номера порта — один для протокола TCP, другой — для протокола UDP.

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

Транспортный протокол забирает сообщение из порта частями фиксированной длины, называемыми сегментами. Максимальная длина сегмента зависит от максимальной величины поля данных пакета IP, которая в свою очередь определяется параметром MTU используемой сетевой технологии.

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

Рис. 4.1 иллюстрирует процедуры мультиплексирования и демультиплексирования данных протоколами TCP и UDP.

Tcp udp порты что это. 4 1. Tcp udp порты что это фото. Tcp udp порты что это-4 1. картинка Tcp udp порты что это. картинка 4 1

Рис. 4.1. Мультиплексирование и демультиплексирование данных на транспортом уровне

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

Аналогично функционирует и протокол UDP, обслуживая свои процессы через собственные порты.

В заголовках принимаемых IP-пакетов указывается протокол верхнего уровня, поэтому IP-протокол однозначно определяет, какому протоколу следует отдать очередной пакет данных.

4.1.2. Протокол пользовательских дейтаграмм UDP

Протокол UDP (User Datagram Protocol) только дополняет IP-протокол адресом прикладного процесса и возможностью проверки правильности передачи сегмента данных. Это дейтаграммный (без предварительного установления соединения) и поэтому потенциально ненадежный протокол. В нем отсутствуют механизмы контроля за достижением сегментов узла назначения. При использовании прикладным приложением транспортного протокола UDP это приложение должно самостоятельно осуществлять проверку целостности передачи сообщений и выполнять их повторный запрос в случае отсутствия отдельных сегментов.

Заголовок UDP сегмента состоит из 8 байт и имеет структуру, представленную на рис. 4.2.

№ порта источника

(2 байта)

№ порта назначения

(2 байта)

Длина сегмента UDP

(2 байта)

Контрольная сумма

(2 байта)

Рис. 4.2. Структура заголовка сегмента UDP

Поле длины сегмента содержит общее количество байт сегмента вместе с заголовком.

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

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

4.1.3. Протокол надежной доставки сообщений TCP

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

Логическое соединение TCP — это договоренность о параметрах процедуры передачи данных между двумя прикладными процессами сети посредством протокола TCP. Ключевым моментом логического соединения является квитирование (подтверждение) приема переданных данных посредством отправки квитанций.

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

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

Структура сегмента TCP представлена на рис. 4.3.

Tcp udp порты что это. 4 2. Tcp udp порты что это фото. Tcp udp порты что это-4 2. картинка Tcp udp порты что это. картинка 4 2

Рис. 4.3. Структура сегмента TCP

Сегмент TCP состоит из заголовка и поля данных. Заголовок сегмента имеет размер не менее 20 байт и содержит следующие поля:

4.1.4. Метод скользящего окна

В протоколе TCP в рамках установленного логического соединения правильность передачи данных должна подтверждаться квитанцией получателя. В протоколе TCP используется частный случай квитирования — метод скользящего окна (sliding window).

В этом методе для повышения коэффициента использования линии передачи источнику разрешается передать некоторое количество сегментов данных подряд в непрерывном режиме — в максимально возможном для источника темпе, без получения на эти сегменты положительных квитанций от получателя. Объем данных, которые разрешается передавать таким образом, называется размером окна.

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

Tcp udp порты что это. 4 4. Tcp udp порты что это фото. Tcp udp порты что это-4 4. картинка Tcp udp порты что это. картинка 4 4

Рис. 4.4. Скользящее окно в протоколе TCP

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

В передаваемом потоке на рис. 4.4 получена квитанция с номером N в поле ACK, которая означает, что все предыдущие байты потока безошибочно приняты противоположной стороной и можно передавать следующие байты потока, начиная с номера N. Одновременно получено значение окна W, которое указывает, что передавать можно не один сегмент, а столько, сколько переносят байты с номера N до номера, не превышающего N+W.

Поскольку в протоколе TCP каждая сторона выступает и как отправитель, и как получатель данных, то у каждой стороны есть пара буферов памяти: один — для хранения принятых сегментов, другой — для передаваемых сегментов.

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

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

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

4.1.5. Алгоритм установления логического соединения TCP

Установление соединения TCP выполняется в следующей последовательности:

На рис. 4.5 представлена процедура обмена служебными сообщениями TCP при установлении логического соединения.

Tcp udp порты что это. 4 5. Tcp udp порты что это фото. Tcp udp порты что это-4 5. картинка Tcp udp порты что это. картинка 4 5

Рис. 4.5. Обмен сообщениями TCP при установлении соединения

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

Первое TCP-сообщение не содержит сегмента данных, а является запросом на установление соединения, поэтому бит SYN=1. Нулевое значение бита ASК говорит, что сторона-инициатор еще ничего не принимала, поэтому квитанции в данном TCP-сообщении пока нет.

Другая сторона в ответ на это предложение высылает тоже служебное TCP сообщение, но уже с предложением передавать данные, начиная с первого байта (ASК=1) и указывает свое окно приема (WIN).

Сторона-инициатор отправляет первый сегмент данных, предлагает передавать данные в свою сторону (ASК=1) и указывает размер своего окна приема.

4.1.6. Преобразование сетевых адресов: технология NAT

Технология NAT (Network Address Translation — преобразование сетевых адресов) широко используется с целью подмены частных IP-адресов (из таких диапазонов, как 10.х.x.x, 192.168.x.x, 172.16.x.x —172.31.х.х) компьютеров локальных сетей публичным IP-адресом, разрешенным в глобальной сети Интернет.

Основная причина растущей популярности технологии NAT связана со все более обостряющимся дефицитом адресов протокола IPv4. Средство общего доступа к подключению Интернета в операционных системах Windows XP, а также многие шлюзы Интернета активно используют NAT, особенно для подключения к широкополосным сетям, например через DSL или кабельные модемы.

На рис. 4.6 приведен пример использования технологии NAT для выхода в Интернет компьютеров локальной сети 10.0.0.0/24 под одним IP-адресом 157.55.1.10.

Tcp udp порты что это. 4 6. Tcp udp порты что это фото. Tcp udp порты что это-4 6. картинка Tcp udp порты что это. картинка 4 6

Рис. 4.6. Пример использования технологии NAT для локальной сети

NAT устройство — это программа, размещаемая на шлюзе между локальной сетью и сетью Интернет, которая на основе портов транспортного уровня обеспечивает замену IP-адресов в проходящих IP-пакетах.

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

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

Устройство NAT перехватывает исходящий пакет и производит сопоставление порта, используя IP-адрес назначения в сети Интернет, порт назначения, внешний IP-адрес устройства NAT, внешний порт, сетевой протокол, а также внутренние IP-адрес и порт клиента локальной сети.

Устройство NAT ведет таблицу сопоставлений портов и сохраняет созданное сопоставление в этой таблице. Внешние IP-адрес и порт — это общие IP-адрес и порт, которые будут использоваться в текущем сеансе передачи данных вместо внутренних IP-адреса и порта клиента.

Затем устройство NAT «транслирует» пакет, преобразуя в пакете поля источника: внутренние (Internal) IP-адрес и порт клиента заменяются внешними (External) IP-адресом и портом устройства NAT.

Преобразованный пакет пересылается по внешней сети и в итоге попадает на узел назначения (Remote host). Пример работы устройства NAT представлен на рис. 4.7.

Tcp udp порты что это. 4 7. Tcp udp порты что это фото. Tcp udp порты что это-4 7. картинка Tcp udp порты что это. картинка 4 7

Рис. 4.7. Пример преобразования исходящего пакета

Внешний удаленный узел сети Интернет будет направлять ответные пакеты на внешние IP-адрес и порт устройства NAT, указывая в полях источника свои собственные IP-адрес и порт.

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

Затем NAT отправляет пакет клиенту по внутренней сети. Однако если NAT не находит подходящего сопоставления портов, входящий пакет отвергается и соединение разрывается.

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

Однако не все сетевые приложения пользуются протоколами, способными взаимодействовать с NAT.

4.2. Протокол обмена управляющими сообщениями ICMP

4.2.1. Назначение протокола ICMP

Протокол обмена управляющими сообщениями ICMP (Internet Control Message Protocol) позволяет маршрутизатору сообщить конечному узлу об ошибках, с которыми маршрутизатор столкнулся при передаче какого-либо IP-пакета от данного конечного узла.

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

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

Таким образом, несмотря на то, что протокол ICMP для передачи своих сообщений пользуется услугами протокола IP (как транспортные протоколы), он в стеке протоколов TCP/IP находится на одном уровне с протоколом IP — уровне межсетевого взаимодействия. Такое положение протокола ICMP определяется тем, что он работает, как и протокол IP, на всех узлах составной сети.

4.2.2. Формат сообщений протокола ICMP

На рис. 4.8 представлена структура IP-пакета, содержащего сообщение ICMP.

Tcp udp порты что это. 4 8. Tcp udp порты что это фото. Tcp udp порты что это-4 8. картинка Tcp udp порты что это. картинка 4 8

Рис. 4.8. Структура IP-пакета с сообщением ICMP

Существует несколько типов сообщений ICMP. Каждый тип сообщения имеет свой формат, при этом все они начинаются с общих трех полей: 8-битного целого числа, обозначающего тип сообщения (TYPE), 8-битного поля кода (CODE), который конкретизирует назначение сообщения, и 16-битного поля контрольной суммы (CHECKSUM). Кроме того, сообщение ICMP всегда содержит заголовок и первые 64 бита данных пакета IP, который вызвал ошибку. Это делается для того, чтобы узел-отправитель смог более точно проанализировать причину ошибки, т. к. все протоколы прикладного уровня стека TCP/IP содержат наиболее важную информацию для анализа в первых 64 битах своих сообщений.

Возможные значения поля типа сообщения представлены в табл. 4.1.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *