What are TCP Ports and Why Are They Important?

Quick Definition of TCP: Transmission Control Protocol (TCP) is a global communication standard that devices use to reliably transmit data. TCP is defined by being connection-oriented, which means that both the client and the server have to be established before the data gets sent. This means the data is reliable, ordered and error-checked in transit. It is one of the main protocols of the Internet protocol suite — and the entire suite is often referred to as TCP/IP.
Quick Definition of TCP Ports: A "port" is a logical distinction in computer networking. Ports are numbered and used as global standards to identify specific processes or types of network services.
Much like before shipping something to a foreign country, you'd agree where you'd be shipping out of and where you'd have it arriving, TCP ports allow for standardized communication between devices. One device can receive information for many different processes and services, and which port the information flows on helps to keep it organized.
An Overview of TCP Ports [VIDEO]
OSI Layers, Ports, and Protocols
USD / learner / month
USD / learner / month
In this video, Tim Warner covers what TCP ports are as well as where and how TCP port numbers are used. He further describes how you can use the netstat command-line tool to find port use information. He also explains how, on Windows computers, you can use a free GUI-based tool called TCPView to better view and work with this information.
How Do TCP and TCP Ports Work?
Transmission Control Protocol is a key component of the TCP/IP protocol stack. TCP is a connection-oriented protocol that requires a connection or a circuit between the source sending computer and the destination one. TCP is one of the two main ways to transmit data in a TCP/IP network. UDP, which is a best-effort connectionless protocol, is the other one.
For devices to communicate via TCP, they use TCP ports. Generally, a TCP port represents an application or service-specific endpoint identifier.
Think of opening a web browser. When you type in "CBTNuggets.com", your browser translates that to "http://www.cbtnuggets.com". And with that, you're specifying the hypertext transfer protocol — and hopefully, you get the page without issue. That happens because CBT Nuggets' web server aka its HTTP server is listening for incoming connections on a particular port address.
The well-known port for HTTP is 80. By contrast, you might download some software from ftp.microsoft.com, their FTP server is going to be listening on the well-known Port 23. And so forth. Protip: If you're planning to earn an IT certification exam, you may need to have many of the most common TCP ports memorized.
How Many TCP Ports are There?
A TCP port is a 16-bit, unsigned value, so there's a finite number of TCP ports available in the world. Specifically, there are 65,535 available TCP ports.
You've probably heard that the world is moving from IPv4 to IPv6 due to address depletion. It's also entirely likely that the time will come when we'll have to expand the port range to accommodate additional services.
That said, the first 1,024 TCP ports are called well-known port numbers, and they're agreed upon among technology vendors. So if you and I were to go into business and sell a really nice FTP client software, we'd agree to work with the standard, well-known FTP port numbers.
How Do Sockets Work with TCP Connections?
A socket allows for a connection to another system that's already running some TCP server software. A socket takes a combination of an IP address and a port number. That means a single host can host multiple instances of the same service by using different port numbers.
For instance, we can set up a web server that has "Site 1" listening on the default port of 80 and another web server. That is to say another website on the same server with the same IP address, "Site 2", but listening on Port 8080.
Where and How Do We Use Port Numbers?
One place is during server application configuration. Enterprise apps like Oracle, SQL, SharePoint, all require you to set up services on discrete port numbers. Which is also why working with your network administrator to allow for that traffic to flow on those port IDs are important. Firewalls monitor ports to keep systems secure.
Service addressing is another way to use port numbers. Once we install our enterprise application, we advertise the service using, generally speaking, a hostname and the port number. For example, "http://cbtnuggets:1988". We wouldn't have to do that if it were a well-known port. If it's well known, we can leave it off.
We use port numbers for troubleshooting purposes. Specifically, we can troubleshoot malware and identify rogue processes.
Firewall configuration often uses rules that denote both aspects of a socket. You might create allowances or traffic blocks based on IP addresses, port numbers, or both.
How to View TCP Connections on Your Machine
Regardless of your OS, you can always get to the netstat command line tool, although the specific parameters you use will depend on your OS. In Windows, start with a command prompt and type:
This will output a table of all current TCP connections on the system. Unfortunately, you can't do all that much besides looking at it.
There's another option, though, and that's to type:
This outputs a lot more data that's much more useful. This includes all the parameters.
What's a Good Tool for Viewing TCP Information?
If you're working on a Windows machine, TCPView.exe is strongly recommended. A Microsoft property now, it was originally developed by Mark Russinovich. There's also a command line version of the tool called TCPVcon that's also free.
What's great about TCPView is its graphical interface. And the interface is more than just a netstat query on steroids, there's a lot of context and information in its interface.
Running TCPView, you may discover that you have quite a lot more running on your system in terms of remote connections than you might have otherwise been aware. That's one of the reasons TCPView is an excellent way to diagnose rogue processes. It could be a trojan horse, some sort of backdoor administrative application that phones home. You can easily identify those tools, by taking a look.
Don't be surprised if you see many applications running with processes going like Outlook, Chrome, or Dropbox. If you right-click one of these items that's listed, you'll get a specific ID of the image or the executable program that's running. You can also end the process — terminate it from there — by right-clicking and pressing "close application". You can right-click a process and do a WHOIS lookup. There's a lot of good things to do in TCPView and you should play around with it.
The bottom line with TCPView is that by using it you can see that for each process that you have running on your system, you can see at a glance if it's TCP or UDP. And you can see the local and remote port. You'll see that UDP doesn't have remote ports, that's because UDP is a connectionless protocol and doesn't require an end-to-end circuit like TCP does. Which is why TCP tells us on this interface where we're connected, both locally and to a remote system.
Wrapping Up
TCP is an important concept for any network professional to understand. It's one of the tools that has made our modern digital age possible. All this information about understanding TCP/IP lends itself to learning much more about IT professions. If you're looking for more detail, check out our CompTIA A+ training.
TCP-порт
Это условное число от 0 до 65535, позволяющие различным программам, выполняемым на одном хосте, получать данные независимо друг от друга (предоставляют так называемые сетевые сервисы). Каждая программа обрабатывает данные, поступающие на определённый порт (иногда говорят, что программа «слушает» этот номер порта).
Обычно за некоторыми распространёнными сетевыми протоколами закреплены стандартные номера портов (например, веб-серверы обычно принимают данные по протоколу TCP-порт 80), хотя в большинстве случаев программа может использовать любой порт.
Содержание
Номера портов
Порты TCP не пересекаются с портами UDP. То есть, порт 1234 протокола TCP не будет мешать обмену по UDP через порт 1234.
Ряд номеров портов стандартизован (см. Список портов TCP и UDP). Список поддерживается некоммерческой организацией операционных систем прослушивание портов с номерами 0—1023 (почти все из которых зарегистрированы) требует особых привилегий. Каждый из остальных портов может быть захвачен первым запросившим его процессом. Однако, зарегистрировано номеров намного больше, чем 1023.
Краткий список номеров портов
Подразумевается использование протокола TCP там, где не оговорено иное.
Порты отправителя и получателя
На самом деле, TCP- или UDP-пакеты всегда содержат два поля номера порта: отправителя и получателя. Тип обслуживающей программы определяется портом получателя поступающих запросов, и этот же номер является портом отправителя ответов. «Обратный» порт (порт отправителя запросов, он же порт получателя ответов) при подключении по TCP определяется клиентом произвольно (хотя номера меньше 1024 и уже занятых портов не назначаются), и для пользователя интереса не представляет. Использование обратных номеров портов в UDP зависит от реализации.
Использование портов для различных кодировок
Разные порты веб-сервера могут использоваться для поддержки различных кодировок текста, отправляемого браузеру посетителя. При этом по стандартному порту (80) находится сплеш-скрин с выбором кодировки, перенаправляющий в зависимости от кодировки на различные порты того же самого хоста. [1]
Эта технология в настоящее время практически не применяется для веб-сайтов в связи с развитием поддержки кодировок в браузерах. У многих
Ссылки
Примечания
- ↑Использование разных портов для разных кодировок
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое «TCP-порт» в других словарях:
TCP — Название: Transport Control Protocol Уровень (по модели OSI): Транспортный Семейство: TCP/IP Порт/ID: 6/IP Спецификация: RFC 793 / STD 7 Основные реализации … Википедия
TCP/IP — Стек протоколов TCP/IP (англ. Transmission Control Protocol/Internet Protocol) набор сетевых протоколов разных уровней модели сетевого взаимодействия DOD, используемых в сетях. Протоколы работают друг с другом в стеке (англ. stack, стопка)… … Википедия
Порт (TCP/UDP) — Сетевой порт параметр протоколов UDP, определяющий назначение пакетов данных в формате Это условное число от 0 до 65535, позволяющие различным программам, выполняемым на одном хосте, получать данные независимо друг от друга (предоставляют так… … Википедия
Порт (IP) — Сетевой порт параметр протоколов UDP, определяющий назначение пакетов данных в формате Это условное число от 0 до 65535, позволяющие различным программам, выполняемым на одном хосте, получать данные независимо друг от друга (предоставляют так… … Википедия
Порт (Интернет) — Сетевой порт параметр протоколов UDP, определяющий назначение пакетов данных в формате Это условное число от 0 до 65535, позволяющие различным программам, выполняемым на одном хосте, получать данные независимо друг от друга (предоставляют так… … Википедия
Порт (протокол) — Сетевой порт параметр протоколов UDP, определяющий назначение пакетов данных в формате Это условное число от 0 до 65535, позволяющие различным программам, выполняемым на одном хосте, получать данные независимо друг от друга (предоставляют так… … Википедия
Порт (сетевые протоколы) — Сетевой порт параметр протоколов UDP, определяющий назначение пакетов данных в формате Это условное число от 0 до 65535, позволяющие различным программам, выполняемым на одном хосте, получать данные независимо друг от друга (предоставляют так… … Википедия
Tcp — Название: Transmission Control Protocol Уровень (по модели OSI): Транспортный Семейство: TCP/IP Порт/ID: 6/IP Спецификация: RFC 793 / STD 7 Основные реализации: Linux, Windows Расширяемость … Википедия
Порт (значения) — Порт: В Викисловаре есть статья «порт» Порт (лат. portus «гавань», «пристань») … Википедия
Порт — номер порта TCP, который идентифицирует процесс или приложение внутри компьютера. Для клиентских приложений номер порта динамически назначается операционной системой. Для программных серверов номера портов не изменяются и предписаны Internet… … Финансовый словарь
Протокол TCP

TCP — это протокол транспортного уровня, предоставляющий транспортировку (передачу) потока данных, с необходимостью предварительного установления соединения, благодаря чему гарантирует уверенность в целостности получаемых данных, также выполняет повторный запрос данных в случае потери данных или искажения. Помимо этого протокол TCP отслеживает дублирование пакетов и в случае обнаружения — уничтожает дублирующиеся пакеты. TCP — это аббревиатура от Transmission Control Protocol (Протокол Управления Передачей) — является обязательным протоколом стандарт TCP/IP, определенный в стандарте RFC 793, «Transmission Control Protocol (TCP)».
В отличие от протокола UDP гарантирует целостность передаваемых данных и подтверждения отправителя о результатах передачи. Используется при передаче файлов, где потеря одного пакета может привести к искажению всего файла.
TCP обеспечивает свою надежность благодаря следующему:
- Данные от приложения разбиваются на блоки определенного размера, которые будут отправлены.
- Когда TCP посылает сегмент, он устанавливает таймер, ожидая, что с удаленного конца придет подтверждение на этот сегмент. Если подтверждение не получено по истечении времени, сегмент передается повторно.
- Когда TCP принимает данные от удаленной стороны соединения, он отправляет подтверждение. Это подтверждение не отправляется немедленно, а обычно задерживается на доли секунды
- TCP осуществляет расчет контрольной суммы для своего заголовка и данных. Это контрольная сумма, рассчитываемая на концах соединения, целью которой является выявить любое изменение данных в процессе передачи. Если сегмент прибывает с неверной контрольной суммой, TCP отбрасывает его и подтверждение не генерируется. (Ожидается, что отправитель отработает тайм-аут и осуществит повторную передачу.)
- Так как TCP сегменты передаются в виде IP датаграмм, а IP датаграммы могут прибывать беспорядочно, также беспорядочно могут прибывать и TCP сегменты. После получения данных TCP может по необходимости изменить их последовательность, в результате приложение получает данные в правильном порядке.
- Так как IP датаграмма может быть продублирована, принимающий TCP должен отбрасывать продублированные данные.
- TCP осуществляет контроль потока данных. Каждая сторона TCP соединения имеет определенное пространство буфера. TCP на принимающей стороне позволяет удаленной стороне посылать данные только в том случае, если получатель может поместить их в буфер. Это предотвращает от переполнения буферов медленных хостов быстрыми хостами.
Заголовок TCP


- Порядковый номер выполняет две задачи:
-
- Если установлен флаг SYN, то это начальное значение номера последовательности — ISN (Initial Sequence Number), и первый байт данных, которые будут переданы в следующем пакете, будет иметь номер последовательности, равный ISN + 1.
- В противном случае, если SYN не установлен, первый байт данных, передаваемый в данном пакете, имеет этот номер последовательности.
Рассмотрим структуру заголовка TCP с помощью сетевого анализатора Wireshark:

TCP порты
Так как на одном и том же компьютере могут быть запущены несколько программ, то для доставки TCP-пакета конкретной программе, используется уникальный идентификатор каждой программы или номер порта.
Номер порта — это условное 16-битное число от 1 до 65535, указывающее, какой программе предназначается пакет.
TCP порты используют определенный порт программы для доставки данных, передаваемых с помощью протокола управления передачей (TCP). TCP порты являются более сложными и работают иначе, чем порты UDP. В то время как порт UDP работает как одиночная очередь сообщений и как точка входа для UDP-соединения, окончательной точкой входа для всех соединений TCP является уникальное соединение. Каждое соединение TCP однозначно идентифицируется двумя точками входа.
Каждый отдельный порт сервера TCP может предложить общий доступ к нескольким соединениям, потому что все TCP соединения идентифицируются двумя значениями: IP-адресом и TCP портом (сокет).
Все номера портов TCP, которые меньше чем 1024 — зарезервированы и зарегистрированы в Internet Assigned Numbers Authority (IANA).
Номера портов UDP и TCP не пересекаются.
TCP программы используют зарезервированные или хорошо известные номера портов, как показано на следующем рисунке.

Установление соединения TCP
Давайте теперь посмотрим, как устанавливается TCP-соединения. Предположим, что процесс, работающий на одном хосте, хочет установить соединение с другим процессом на другом хосте. Напомним, что хост, который инициирует соединение называется «клиентом», в то время как другой узел называется «сервером».
Перед началом передачи каких-либо данных, согласно протоколу TCP, стороны должны установить соединение. Соединение устанавливается в три этапа (процесс «трёхкратного рукопожатия» TCP).
- Запрашивающая сторона (которая, как правило, называется клиент) отправляет SYN сегмент, указывая номер порта сервера, к которому клиент хочет подсоединиться, и исходный номер последовательности клиента (ISN).
- Сервер отвечает своим сегментом SYN, содержащим исходный номер последовательности сервера. Сервер также подтверждает приход SYN клиента с использованием ACK (ISN + 1). На SYN используется один номер последовательности.
- Клиент должен подтвердить приход SYN от сервера своим сегментов SYN, содержащий исходный номер последовательности клиента (ISN+1) и с использованием ACK (ISN+1). Бит SYN установлен в 0, так как соединение установлено.

После установления соединения TCP, эти два хоста могут передавать данные друг другу, так как TCP-соединение является полнодуплексным, они могут передавать данные одновременно.
Сетевые порты – что это такое?
В одной из наших статей мы рассказывали Вам о физических портах. Однако в компьютерах есть и виртуальные – сетевые – порты. Сегодня нет программ еще, которые не используют для своей работы сетевой протокол. Довольно часто можно услышать про использование сетевых портов, но не все понимают, что это такое. И для начала давай дадим определение:
Сетевой порт – это некое виртуальное расширение, дополнение к сетевому адресу (IP-адресу). Для большего понимания можно сказать, что без сетевого порта информация с другого устройства вряд ли дойдет до нашего компьютера, так как она будет идти только по IP. Компьютер просто не поймёт, как обработать её, с помощью какого приложения.
Но с технической точки зрения также можно выделить и другое понятие – это натуральное число от 0 до 65535, которое записывается в заголовках протоколов транспортного уровня сетевой модели OSI.
Для передачи данных используются транспортные протоколы, самые популярные – это TCP/IP (Transmission Control Protocol/Internet Protocol) и UDP (User Datagram Protocol). Обычно приложение либо ожидает входящие данные (или запроса на соединение), либо посылает данные (или запрос на соединение) на известный порт, открытый приложением-сервером (роль клиента).
По умолчанию приложению выдается порт с произвольным номером (к примеру, ближайшим свободным, большим 1234). При необходимости приложение может запросить конкретный (предопределённый) номер порта. Так веб-серверы обычно открывают для ожидания соединения предопределённый порт 80 протокола TCP.
Порты TCP не пересекаются с портами UDP. То есть, порт 1234 протокола TCP не будет мешать обмену по UDP через порт 1234.
В компьютере точное количество портов – 65 535. И ух них есть своя градация. То есть порты с номерами до 1023 Линукс и Unix-подобными ОС считаются за «критически важные» для сетевой деятельности системы, так что для доступа к ним и службам, с ними связанными часто требуются root права. Windows также их считает системными и пристально следит за ними.
Порты от 1024 до 49151 имеют статус «готовые к регистрации». Это значит, что эти порты зарезервированы или могут быть зарезервированы за определёнными службами. Однако стоит отметить, что они за этими сервисами не закреплены прочными правилами, но могут дать ключ для распознавания запущенной программы на стороне хоста.
Остальные (начиная с 49152) порты не зарегистрированы и используются по усмотрению пользователей ОС и имеют название – «динамические» порты. Так что запоминать, какой порт для какой службы установлен, просто бесполезно.
Однако есть несколько уже хорошо известных портов:
- FTP-Data. Канал данных файлового транспортного протокола, используется для передачи файлов между системами по протоколу TCP. Используется 21 порт;
- FTP. Управляющий канал FTP. Используется участниками сеанса этого канала для обмена командами и откликами на них по протоколу TCP. Использует 20 порт;
- Telnet. Используется для выполнения команд на удаленном компьютере через порт № 23 через протокол TCP;
- SMTP. Простой почтовый протокол для передачи данных по email. Раньше использовался порт под номером 25, сейчас используется шифрование и номер порта уже другой. Зависит от поставщика услуг;
- Domain. Использует 53 порт по протоколам UDP и TCP для получения запросов на разрешение имен хостов;
- HTTP. Транспортный протокол для гипертекстовой разметки. Используется для передачи запросов от браузера (например, ваши запросы в Яндексе). Используется 80 порт;
- POP3. Используется для получения электронной почты. до шифрования использовал 110 порт, сейчас номер изменился. Номера портов нужно уточнять у поставщика услуг.
Возьмем пример: на сервере с одним IP может быть размещен сайт и установлены дополнительные программы, кроме самого сайта. Как в таком случае получить доступ к конкретному сервису? Необходимо указать при обращении не только IP-адрес, но и соответственно порт. Сайту отводится один порт, каждому другому сервису назначается другой уникальный порт. В результате по одному IP-адресу доступно множество сервисов.
При обращении к сайту браузер обычно не указывает порт в строке адреса, он подставляет его автоматически. Например, запрос к сайту https://example.com на самом деле выглядит как https://fenix.host:443. Порт в URL-адресе указывается после двоеточия, в данном примере 443 – для https (если бы использовался http – порт был бы 80).
Когда трафик перенаправляется другой системе, TCP/IP использует комбинацию IP адреса и определенного порта. Такая связка называется сокетом. Сокет – это файловые дескрипторы, конкретизирующие IP адрес и ассоциированный с ним номер порта плюс специальный протокол передачи, который будет работать с данными. К примеру, из Интернета можно получить доступ к папке FTP-сервера, указав через двоеточие IP-адрес и порт.
Порты хоть и обеспечивают доступ в глобальную сеть программам, возможны ситуации, когда вредоносные программы устанавливаются в систему и открывают порт без ведома пользователя. И именно с помощью открытого порта считывают информацию, поэтому необходимо быть осведомленным, какие основные порты требуются пользователю и как их можно открывать/закрывать.